(57)【要約】【課題】表示領域に識別子を短縮して表示する場合に，他の識別子との識別が可能であり，かつ利用者に分かりやすい短縮形での識別子の表示が可能となる技術を提供する。【解決手段】識別子短縮表示装置１０において，表示領域情報取得部１１は，表示装置２０の画面上の表示領域に関する情報を取得する。表示識別子取得部１２は，表示領域に表示する識別子を取得する。短縮形識別子生成部１４は，辞書記憶部１７に記憶された，文字列の短縮形が定義された短縮形辞書１７１，削除する文字列と識別子の表示形式との対応が定義された削除文字列／表示形式辞書１７２，区切り文字が定義された区切り文字辞書１７３，短縮を行わない文字列が定義された非短縮文字列辞書１７４等を用いて，他の識別子との識別が可能であり，かつ意味のある文字列が残るように，識別子を短縮する。表示部１３は，短縮された識別子を表示領域に表示する。【選択図】図１
2010140404.tif 000002
【特許請求の範囲】
【請求項１】
表示装置の画面上の表示領域に識別子を表示するプログラムであって，
コンピュータを，
文字列の短縮形が定義された情報である短縮形情報を記憶する短縮形情報記憶部と，
識別子を表示する表示領域の情報を取得する表示領域情報取得部と，
前記表示領域に表示する識別子を取得する表示識別子取得部と，
前記取得された識別子に含まれる文字列を，前記短縮形情報記憶部に記憶された短縮形情報を用いて短縮形に置き換えることにより，前記識別子を前記表示領域に収まる範囲内の文字列に短縮した短縮形識別子を生成する短縮形識別子生成部と，
前記表示領域に前記短縮形識別子を表示する表示部として
機能させるための識別子短縮表示プログラム。
【請求項２】
前記コンピュータを，区切りとなる文字または文字列の定義情報である区切り文字情報を記憶する区切り文字情報記憶部としてさらに機能させ，
前記短縮形識別子生成部は，前記区切り文字情報記憶部に記憶された区切り文字情報で定義された区切りとなる文字または文字列で分けられる文字列の単位で，前記取得された識別子に含まれる文字列を削除し，短縮形識別子を生成する
ことを特徴とする請求項１に記載された識別子短縮表示プログラム。
【請求項３】
前記コンピュータを，識別子から削除する文字列と識別子の表示形式との対応情報である削除文字列／表示形式情報を記憶する削除文字列／表示形式情報記憶部としてさらに機能させ，
前記短縮形識別子生成部は，前記削除文字列／表示形式情報記憶部に記憶された削除文字列／表示形式情報で指定された文字列を，前記取得された識別子から削除することにより，短縮形識別子を生成し，
前記表示部は，前記削除文字列／表示形式情報によって前記削除された文字列に対応付けられた識別子の表示形式で，前記短縮形識別子を前記表示領域に表示する
ことを特徴とする請求項１または請求項２に記載された識別子短縮表示プログラム。
【請求項４】
前記コンピュータを，短縮が禁止された文字列の指定情報である非短縮文字列情報を記憶する非短縮文字列情報記憶部として機能させ，
前記短縮形識別子生成部は，前記非短縮文字列情報記憶部に記憶された非短縮文字列情報で指定された文字列を短縮しないようにしながら，前記取得された識別子を短縮することにより，短縮形識別子を生成する
ことを特徴とする請求項１から請求項３までのいずれかに記載された識別子短縮表示プログラム。
【請求項５】
表示装置の画面上の表示領域に識別子を表示する識別子短縮表示装置であって，
文字列の短縮形が定義された情報である短縮形情報を記憶する短縮形情報記憶部と，
識別子を表示する表示領域の情報を取得する表示領域情報取得部と，
前記表示領域に表示する識別子を取得する表示識別子取得部と，
前記取得された識別子に含まれる文字列を，前記短縮形情報記憶部に記憶された短縮形情報を用いて短縮形に置き換えることにより，前記識別子を前記表示領域に収まる範囲内の文字列に短縮した短縮形識別子を生成する短縮形識別子生成部と，
前記表示領域に前記短縮形識別子を表示する表示部とを備える
ことを特徴とする識別子短縮表示装置。
【請求項６】
表示装置の画面上の表示領域に識別子を表示するコンピュータによる識別子短縮表示方法であって，
前記コンピュータが，
識別子を表示する表示領域の情報を取得する過程と，
前記表示領域に表示する識別子を取得する過程と，
前記コンピュータが備えた記憶装置に記憶された文字列の短縮形が定義された情報である短縮形情報を用いて，前記取得された識別子に含まれる文字列を短縮形に置き換えることにより，前記識別子を前記表示領域に収まる範囲内の文字列に短縮した短縮形識別子を生成する過程と，
前記表示領域に前記短縮形識別子を表示する過程とを実行する
ことを特徴とする識別子短縮表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，表示装置の画面上の表示領域に識別子を表示する技術に関するものであり，例えば，表示領域に収まらない長い識別子を短縮して表示する識別子短縮表示プログラム，識別子短縮表示装置および識別子短縮表示方法に関するものである。
【背景技術】
【０００２】
ファイル名やＵＲＬ，データの表示など，画面の表示領域に文字列を表示することが通常に行われている。ここでは，ファイル名やＵＲＬ，データなど，何らかのものを識別するための文字列を，識別子と呼ぶものとする。
【０００３】
このような識別子には，表示領域には収まらない長いものが存在する。表示領域に収まらない長い識別子は，多くの場合，先頭から表示領域内に収まる長さまでがそのまま表示され，その後に例えば“…”などの一部省略を示す文字が付けられて表示される。また，表示領域をスクロール可能にすることによって，長い識別子の全体を見ることができるようにする技術もある。
【０００４】
長い識別子を表示することが必要なツールとしては，例えば，関数名を表示するソフトウェアの性能分析ツールやデバッガ，ファイル名を表示するｆｔｐ（File Transfer Protocol）サイトなど，様々なものがある。
【０００５】
長い識別子を表示領域に収まる長さに短縮して表示する様々な技術が知られている。例えば，複数の識別子に共通する文字列を簡略化して表示する技術が知られている。また，複数の識別子に共通する文字列を簡略化するが，表示可能文字数未満の場合には，さらに識別子の先頭と最後から表示できるだけの文字数を取り出して表示する技術が知られている。
【特許文献１】特開２００８−１１０５２４号公報
【特許文献２】特開２００６−２７０５１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
単純に識別子の先頭から表示可能文字数分の文字列を表示する方法には，元の識別子が分かりにくいという問題がある。
【０００７】
また，長い識別子が複数存在し，かつ表示される範囲の文字列が同じものが複数存在する場合には，他の識別子と識別することができないという問題がある。
【０００８】
図１３は，従来の長い識別子の短縮表示例を示す図である。
【０００９】
例えば，“20080220133816013216＿eventannex1 ”と“20080220133816013216＿eventannex2 ”という名前の２つのファイルが存在するものとする。また，識別子の表示領域には，１５文字分しか識別子が表示できないものとする。
【００１０】
この場合，上述の識別子の先頭から表示可能文字数分の文字列を表示する方法では，図１３に示すように双方のファイルが“20080220133816…”と表示されるため，ユーザは，どちらがどちらのファイルであるかがわからない。また，ファイル名の表示領域をスクロール可能にしても，いちいちスクロールして識別子を確認するのは，ユーザにとって面倒である。
【００１１】
また，上述の複数の識別子に共通する文字列を簡略化して表示する技術では，識別子に使用されている文字列の意味が考慮されずに，文字数から表示する文字列が決定される。そのため，他の識別子との区別は可能であるが，ユーザにとって分かりにくい識別子になる可能性がある。
【００１２】
本発明は，上記の問題点の解決を図り，表示領域に収まらない識別子を短縮して表示する場合において，他の識別子との識別が可能であり，かつ利用者に分かりやすい短縮形の識別子で表示することが可能となる技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
表示装置の画面上の表示領域に識別子を表示するプログラムは，コンピュータを次のように機能させる。すなわち，前記プログラムがインストールされ，実行されるコンピュータは，文字列の短縮形が定義された情報である短縮形情報を記憶する短縮形情報記憶部と，識別子を表示する表示領域の情報を取得する表示領域情報取得部と，表示領域に表示する識別子を取得する表示識別子取得部と，取得された識別子に含まれる文字列を短縮形情報記憶部に記憶された短縮形情報を用いて短縮形に置き換えることにより，識別子を表示領域に収まる範囲内の文字列に短縮した短縮形識別子を生成する短縮形識別子生成部と，表示領域に短縮形識別子を表示する表示部とを備える。
【発明の効果】
【００１４】
文字列の短縮形が定義された情報である短縮形情報を用いて，表示領域に表示する識別子に含まれる文字列を短縮形の文字列に置き換えて短縮形の識別子を生成し，生成された短縮形の識別子を表示領域に表示することにより，他の識別子との識別が可能であり，かつ利用者に分かりやすい短縮形の識別子で表示することが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下，本発明の実施の形態について，図を用いて説明する。
【００１６】
図１は，本実施の形態による識別子短縮表示装置の構成例を示す図である。
【００１７】
図１において，識別子短縮表示装置１０は，長い識別子を表示領域に収まるように短縮し，表示装置２０の画面上の表示領域に表示する。識別子短縮表示装置１０は，識別子を短縮する際に，表示領域内に収まる範囲内で可能な限り，識別子内の文字列が有する意味が失われないように，また並べて表示される他の識別子と識別可能となるように，識別子を短縮する。識別子短縮表示装置１０は，コンピュータが備えるＣＰＵ，メモリ等のハードウェアと，ソフトウェアプログラムとにより実現される。
【００１８】
識別子短縮表示装置１０は，表示領域情報取得部１１，表示識別子取得部１２，表示部１３，短縮形識別子生成部１４，辞書定義部１５，記憶部（メモリ）１６，辞書記憶部１７を備える。
【００１９】
表示領域情報取得部１１は，識別子を表示する表示領域の情報を取得する。表示領域の情報は，例えば，表示領域の大きさなどの情報である。表示識別子取得部１２は，表示領域に表示する識別子の情報を取得する。
【００２０】
表示部１３は，表示装置２０の画面上の表示領域に識別子を表示する。このとき，表示部１３は，表示領域に表示できる識別子の文字数を計算する。ここでは，表示領域に表示できる文字数を，表示可能文字数と呼ぶものとする。表示部１３は，表示可能文字数を超える長い識別子が存在する場合には，短縮形識別子生成部１４に，識別子の短縮形の作成を依頼する。以下では，表示のために短縮された識別子を，短縮形識別子と呼ぶものとする。
【００２１】
ここで，表示部１３における表示可能文字数の判断の例について説明する。通常，表示する文字列と文字列を表示する際に使用するフォントやサイズ等の情報とから，文字列を表示するのに必要な表示サイズを計算する手段が，ＯＳ（Operating System）等により用意されている。例えば，Ｗｉｎｄｏｗｓ（登録商標）の言語環境，NET Framework （登録商標）では，MeasureString というメソッドに，上記の表示する文字列に関する情報を与えることによって，文字列を表示するために必要な高さや幅などのサイズが得られる。表示部１３は，得られた文字列を表示するために必要なサイズと，表示領域のサイズとを比較して，識別子が表示領域に表示可能か否かを判断する。
【００２２】
表示部１３は，短縮形識別子生成部１４から渡された短縮形識別子のリスト情報である短縮形識別子リストを参照して，識別子を表示領域に表示する。すなわち，表示部１３は，表示領域に収まらない長い識別子については，短縮形識別子生成部１４により生成された短縮形識別子を，表示領域に表示する。
【００２３】
また，表示部１３は，短縮形識別子の元となる文字列を参照する機能を提供する。表示部１３が提供する識別子参照機能としては，例えば次のようなものが考えられる。
【００２４】
・表示領域に表示された短縮形識別子をユーザが選択できるようにしておき，表示部１３が，ユーザに選択された短縮形識別子の近くに，短縮前の識別子を表示する。
【００２５】
・短縮形識別子と短縮前の識別子との対応一覧を表示するためのボタンやメニューを用意しておき，表示部１３が，ユーザの指示に応じて，短縮形識別子と短縮前の識別子との対応一覧を表示する。
【００２６】
短縮形識別子生成部１４は，表示部１３の要求に従って，表示領域に収まらない長い識別子について，その短縮形識別子を生成する。短縮形識別子生成部１４は，生成された短縮形識別子のリストを表示部１３に送る。本実施の形態の短縮形識別子生成部１４による短縮形識別子生成の処理の詳細については，後述する。
【００２７】
短縮形識別子生成部１４は，表示領域に収まるように，識別子を短縮する。
【００２８】
文字がすべて同一の幅で表示されるフォントを使用して識別子を表示する場合には，短縮形識別子生成部１４は，単純に表示領域の幅を文字の幅で割ることによって表示可能文字数を求め，求めれた表示可能文字数内に収まるように識別子を短縮する。
【００２９】
文字によって表示幅が異なるフォントを使用して識別子を表示する場合には，識別子を構成する文字の文字数ではなく，識別子を構成する文字の内容で，識別子の表示に必要な表示領域の幅が異なる。このような場合には，短縮形識別子生成部１４は，表示可能文字数を求めるために，まず，例えば前述のMeasureString メソッドなどのシステムの機能を使用して，識別子の表示幅ｗを求める。短縮形識別子生成部１４は，得られた識別子の表示幅ｗから，目安となる表示可能文字数ｎを計算する。
【００３０】
表示可能文字数ｎ＝表示領域の幅Ｗ÷（識別子の表示幅ｗ÷識別子の文字数）
短縮形識別子生成部１４は，算出された表示可能文字数ｎを目安にして，短縮形識別子を生成する。さらに，短縮形識別子生成部１４は，生成された短縮形識別子の表示幅を求め，短縮形識別子が表示領域に収まるかを判断する。
【００３１】
辞書定義部１５は，例えばユーザの入力を受け付け，短縮形識別子生成部１４が表示領域に収まらない長い識別子を短縮するために参照する情報を生成する。本実施の形態では，短縮形識別子生成部１４が識別子を短縮するために参照する情報を，辞書と呼ぶものとする。
【００３２】
辞書定義部１５により作成された辞書は，識別子短縮表示装置１０のコンピュータが備える記憶装置に保存される。例えば，辞書定義部１５は，作成された辞書が１回のみの使用であり，かつ辞書のサイズが大きくなければ，作成された辞書を記憶部（メモリ）１６にだけ保存する。また，辞書定義部１５は，作成された辞書を複数回使用するのであれば，作成された辞書をディスクなどの記憶装置である辞書記憶部１７に保存し，次回以降も使用できるようにする。
【００３３】
作成される辞書としては，例えば，短縮形辞書１７１，削除文字列／表示形式辞書１７２，区切り文字辞書１７３，非短縮文字列辞書１７４などが考えられる。
【００３４】
図２は，本実施の形態による辞書の例を示す図である。
【００３５】
図２（Ａ）は，短縮形辞書１７１の例である。図２（Ｂ）は，削除文字列／表示形式辞書１７２の例である。図２（Ｃ）は，区切り文字辞書１７３の例である。図２（Ｄ）は，非短縮文字列辞書１７４の例である。短縮形辞書１７１，削除文字列／表示形式辞書１７２，区切り文字辞書１７３，非短縮文字列辞書１７４の詳細については，後述する。
【００３６】
これらの辞書は，あらかじめシステム側で用意されていてもよいし，ユーザにより定義されてもよい。どちらの場合でも，複数回の使用を考慮して，辞書への追加や改良を行うためのインタフェースが用意されているものとする。
【００３７】
図３は，本実施の形態による辞書の形式の例を示す図である。
【００３８】
検索の効率化が図られた辞書の形式としては，例えば図３（Ａ）に示すように，アルファベットや五十音の順番にソートする形式がある。
【００３９】
また，例えば図３（Ｂ）に示すように，単純に五十音順などでソートするのではなく，同一の文字列から始まる文字列をすべて連続させてリストする形式がある。図３（Ｂ）に示す例では，同一の文字列から始まる文字列のうちの先頭となる文字列にインデックスが付けられている。
【００４０】
以下，本実施の形態による短縮形識別子生成部１４による短縮形識別子生成の処理の詳細な例を説明する。
【００４１】
本実施の形態による短縮形識別子生成部１４は，以下で説明する（１）〜（４）の識別子の短縮方法を用いて，表示領域に収まらない識別子について，短縮形識別子を生成する。
【００４２】
図４は，本実施の形態による短縮形識別子生成部の構成例を示す図である。
【００４３】
本実施の形態の短縮形識別子生成部１４は，文字列置換短縮処理部１４１，表示形式対応文字列削除短縮処理部１４２，区切り文字単位短縮処理部１４３，非短縮文字列指定短縮処理部１４４を備える。
【００４４】
文字列置換短縮処理部１４１は，文字列の短縮形が定義された短縮形辞書１７１を用いて，識別子内の文字列を短縮された文字列に置き換えることにより，短縮形識別子を生成する。文字列置換短縮処理部１４１による識別子の短縮方法については，以下の（１）で詳細を説明する。
【００４５】
表示形式対応文字列削除短縮処理部１４２は，識別子から削除する文字列と識別子の表示形式との対応が定義された削除文字列／表示形式辞書１７２を用いて，識別子内の文字列を削除することにより，短縮形識別子を生成する。また，表示形式対応文字列削除短縮処理部１４２は，削除文字列／表示形式辞書１７２を用いて，生成された短縮形識別子と削除された文字列に対応する表示形式との対応付けを行う。表示形式対応文字列削除短縮処理部１４２による識別子の短縮方法については，以下の（２）で詳細を説明する。
【００４６】
区切り文字単位短縮処理部１４３は，区切り文字が指定された区切り文字辞書１７３を用いて，区切り文字で分けられた文字列の単位で識別子内の文字列を削除することにより，短縮形識別子を生成する。区切り文字単位短縮処理部１４３による識別子の短縮方法については，以下の（３）で詳細を説明する。
【００４７】
非短縮文字列指定短縮処理部１４４は，短縮を行わない文字列が定義された非短縮文字列辞書１７４等の指定情報を用いて，指定された文字列を短縮しないように識別子の短縮を行うことにより，短縮形識別子を生成する。非短縮文字列指定短縮処理部１４４による識別子の短縮方法については，以下の（４）で詳細を説明する。
【００４８】
短縮形識別子生成部１４は，以下の（１）〜（４）に示すいずれか１つの識別子の短縮方法で，同時に表示する識別子が識別可能となれば，その時点で処理を終了する。短縮形識別子生成部１４は，ある識別子の短縮方法で同時に表示する識別子が識別可能とならなければ，他の短縮方法を適用して，同時に表示する識別子が識別可能となるような短縮形識別子を生成する。
【００４９】
各短縮方法の適用順番は，以下で説明する（１），（２），（３），（４）の順でもよいし，識別子の種類に応じて各短縮方法の適用順番を変えるようにしてもよい。また，各短縮方法の適用順番をユーザが指定できるようにしてもよい。本実施の形態では，短縮形識別子生成部１４は，以下で説明する（１），（２），（３），（４）の順に短縮方法を適用して，表示領域に収まらない識別子についての短縮形識別子の生成を行う。
【００５０】
また，表示領域の特徴ごとに，以下で説明する（１）〜（４）のどの短縮方法を利用するかがあらかじめ設定されていてもよいし，識別子の表示時にユーザが指定できるようにしてもよい。
【００５１】
なお，短縮形識別子生成部１４は，短縮された識別子であることがユーザに簡単に分かるように，短縮形識別子を生成する。本実施の形態では，短縮形識別子生成部１４は，識別子の短縮した部分に短縮されたことを示す記号“…”を挿入して，短縮形識別子を生成する。
【００５２】
図５は，本実施の形態の短縮形識別子生成部による短縮形識別子生成処理フローチャートである。
【００５３】
短縮形識別子生成部１４は，表示領域に表示する識別子のリストから，識別子を１つ選択する（ステップＳ１０）。
【００５４】
短縮形識別子生成部１４は，選択された識別子が表示領域内に収まるか否かを判定する（ステップＳ１１）。
【００５５】
短縮形識別子生成部１４は，識別子が表示領域内に収まらない場合には（ステップＳ１１のＮＯ），下記の（１）〜（４）に示す識別子の短縮方法を１つ選択する（ステップＳ１２）。短縮形識別子生成部１４は，選択された短縮方法を用いた識別子短縮処理を行う（ステップＳ１３）。
【００５６】
識別子が短縮された場合には，短縮形識別子生成部１４は，生成された短縮形識別子を短縮形識別子リストに記録する（ステップＳ１４）。短縮形識別子リストには，短縮前の識別子，短縮形識別子，識別子の短縮に用いた短縮方法などの情報が記録される。短縮形識別子の表示形式の指定がある場合には，表示形式の指定情報も短縮形識別子リストに記録される。ステップＳ１１に戻り，短縮形識別子生成部１４は，生成された短縮形識別子が表示領域内に収まるかを判定する（ステップＳ１１）。生成された短縮形識別子が表示領域内に収まらなければ（ステップＳ１１のＮＯ），短縮形識別子生成部１４は，別の短縮方法を選択し（ステップＳ１２），識別子短縮処理を行う（ステップＳ１３）。
【００５７】
なお，図示はされていないが，識別子が短縮されなかった場合には，短縮形識別子生成部１４は，別の短縮方法を選択し（ステップＳ１２），識別子短縮処理を行う（ステップＳ１３）。
【００５８】
短縮形識別子生成部１４は，識別子または短縮形識別子が表示領域内に収まる場合には（ステップＳ１１のＹＥＳ），表示領域に表示するすべての識別子について短縮の処理が終了したかを判定する（ステップＳ１５）。
【００５９】
すべての識別子について短縮の処理が終了していなければ（ステップＳ１５のＮＯ），短縮形識別子生成部１４は，ステップＳ１０に戻り，次の識別子を選択し（ステップＳ１０），短縮の処理を行う。
【００６０】
すべての識別子について短縮の処理が終了していれば（ステップＳ１５のＹＥＳ），短縮形識別子生成部１４は，短縮形識別子リストに同じ短縮形識別子が存在するかを判定する（ステップＳ１６）。
【００６１】
同じ短縮形識別子が存在すれば（ステップＳ１６のＹＥＳ），短縮形識別子生成部１４は，ステップ１０に戻り，それらの短縮形識別子について，識別子の短縮方法を変えて，再度，識別子の短縮処理を行う。
【００６２】
同じ短縮形識別子が存在しなければ（ステップＳ１６のＮＯ），短縮形識別子生成部１４は，生成された短縮形識別子の情報が記録された短縮形識別子リストを表示部１３に通知し（ステップＳ１７），処理を終了する。
【００６３】
なお，例えば表示領域が非常に狭い場合など，どのような短縮方法を用いても同じ短縮形識別子が生成されてしまう場合がある。極端な例としては，表示領域が一文字分しかなければ，表示するすべての識別子について異なる短縮形識別子を生成することは難しい。このような場合には，図示はされていないが，短縮形識別子生成部１４は，同じ短縮形識別子を含む短縮形識別子リストを表示部１３に通知する。
【００６４】
図５に示すフローチャートは，表示領域内に収まらない識別子１つ１つごとに，短縮形識別子生成部１４が下記の（１）〜（４）に示す短縮方法を順に用いて短縮形識別子を生成していく短縮形識別子生成処理のフローチャートである。短縮形識別子生成部１４が，下記の（１）〜（４）に示す短縮方法ごとに，表示領域に収まらないすべての識別子の短縮形識別子を生成していくようにしてもよい。
【００６５】
以下，本実施の形態の短縮形識別子生成部１４による短縮形識別子生成の各処理手法（１）〜（４）の例を説明する。
【００６６】
（１）短縮形辞書を利用した識別子の短縮方法
ユーザは，辞書定義部１５により，例えば図２（Ａ）に示すような，文字列と，文字列の短縮形との対応を示す情報である短縮形辞書１７１を用意する。このとき，ユーザは，自分が見て意味が分かるような文字列の短縮形を定義する。システム側にあらかじめ短縮形辞書１７１が用意されている場合でも，短縮形辞書１７１には，一般的に意味がわかるような文字列の短縮形が定義されている。
【００６７】
短縮形識別子生成部１４において，文字列置換短縮処理部１４１は，短縮形辞書１７１に登録されている文字列が識別子に含まれている場合に，その文字列を短縮形辞書１７１に登録された対応する短縮形文字列に置き換える。
【００６８】
具体的には，文字列置換短縮処理部１４１は，識別子が表示領域に収まらない場合に，その識別子に短縮形辞書１７１に定義された文字列が含まれているかを，識別子の先頭の方から調べる。文字列置換短縮処理部１４１は，短縮形辞書１７１に定義された文字列が識別子に含まれている場合には，その文字列を短縮形辞書１７１で対応付けられた短縮形文字列に置き換える。
【００６９】
例えば，短縮形辞書１７１に文字列“知的財産”と短縮形文字列“知財”との対応が登録されているものとする。このとき，文字列置換短縮処理部１４１は，識別子に“知的財産戦略”という文字列が含まれていれば，その文字列を“知財…戦略”と短縮する。
【００７０】
また，例えば，表示領域に表示する識別子として，３つの識別子“/opt/FJSVawjbk/jdk14/bin/java ”，“/opt/FJSVssagt/j2sdk1.4.2 ＿11/jre/bin/java ”，“/oracle/product/10.2.0/db ＿1/jdk/bin/java”があるものとする。
【００７１】
このとき，文字列置換短縮処理部１４１は，図２（Ａ）に示す短縮形辞書１７１を用いて，次に示すように，それぞれの識別子から短縮形識別子を生成する。
【００７２】
識別子“/opt/FJSVawjbk/jdk14/bin/java ”
→  短縮形識別子“…FJSVawjbk ＿java”
識別子“/opt/FJSVssagt/j2sdk1.4.2 ＿11/jre/bin/java ”
→  短縮形識別子“…FJSVssagt ＿java”
識別子“/oracle/product/10.2.0/db ＿1/jdk/bin/java”
→  短縮形識別子“…oracle＿java”
なお，“java”，“oracle”は，登録商標である。
【００７３】
図６は，本実施の形態の文字列置換短縮処理部による短縮形辞書を用いた識別子短縮処理フローチャートである。
【００７４】
図６に示す識別子短縮処理フローチャートは，表示領域に表示するある１つの識別子を短縮する処理のフローチャートである。
【００７５】
文字列置換短縮処理部１４１は，短縮形識別子の生成に成功した場合にのみ，短縮形識別子を短縮形識別子生成部１４に返す。短縮形識別子生成部１４では，返された短縮形識別子が表示領域に収まるかどうかを調べ，表示領域に収まらなければ，別の短縮方法で短縮形識別子の短縮を試みる。また，短縮形識別子生成部１４は，文字列置換短縮処理部１４１により識別子が短縮できなかった場合に，別の短縮方法で元の識別子の短縮を試みる。
【００７６】
文字列置換短縮処理部１４１は，カウンタｉを０に初期化する（ステップＳ２０）。
【００７７】
文字列置換短縮処理部１４１は，識別子のｉ番目の文字とｉ＋１番目の文字とからなる文字列を，文字列Ｓとする（ステップＳ２１）。
【００７８】
文字列置換短縮処理部１４１は，文字列Ｓがあるか（ステップＳ２２），すなわち識別子の最後まで処理が終了したか否かを確認する。ｉ番目の文字が識別子の最後の文字であれば，識別子にｉ＋１番目の文字は存在しないので，文字列Ｓがないことになる。
【００７９】
文字列Ｓがなければ（ステップＳ２２のＮＯ），文字列置換短縮処理部１４１は，短縮形辞書１７１を用いて当該識別子を短縮できなかったものとして，処理を終了する。
【００８０】
文字列Ｓがあれば（ステップＳ２２のＹＥＳ），文字列置換短縮処理部１４１は，文字列Ｓから始まる文字列が，短縮形辞書１７１に登録されているか否かを判定する（ステップＳ２３）。
【００８１】
文字列Ｓから始まる文字列が短縮形辞書１７１に登録されていなければ（ステップＳ２３のＮＯ），文字列置換短縮処理部１４１は，カウンタｉをインクリメントし（ステップＳ２４），ステップＳ２１に戻って次の文字列Ｓによる探索に移る。
【００８２】
文字列Ｓから始まる文字列が短縮形辞書１７１に登録されていれば（ステップＳ２３のＹＥＳ），文字列置換短縮処理部１４１は，短縮形辞書１７１から文字列Ｓで始まる文字列ＳＳを１つ抽出する（ステップＳ２５）。このとき，文字列置換短縮処理部１４１は，短縮形辞書１７１から未処理の文字列ＳＳが抽出されたか（ステップＳ２６），すなわち短縮形辞書１７１に登録された文字列Ｓで始まるすべての文字列ＳＳについて処理が終了したかを判定する。
【００８３】
短縮形辞書１７１から未処理の文字列ＳＳが抽出されなかった場合には（ステップＳ２６のＮＯ），文字列置換短縮処理部１４１は，カウンタｉをインクリメントし（ステップＳ２４），ステップＳ２１に戻って次の文字列Ｓによる探索に移る。
【００８４】
短縮形辞書１７１から未処理の文字列ＳＳが抽出された場合には（ステップＳ２６のＹＥＳ），文字列置換短縮処理部１４１は，抽出された文字列ＳＳが識別子に含まれているかを判定する（ステップＳ２７）。
【００８５】
文字列ＳＳが識別子に含まれていなければ（ステップＳ２７のＮＯ），文字列置換短縮処理部１４１は，ステップＳ２５に戻って次の文字列ＳＳの処理に移る。
【００８６】
文字列ＳＳが識別子に含まれていれば（ステップＳ２７のＹＥＳ），文字列置換短縮処理部１４１は，識別子内の文字列ＳＳを，短縮形辞書１７１で文字列ＳＳに対応付けられて定義された短縮形文字列に置き換え，短縮を示す記号“…”を付加することにより（ステップＳ２８），短縮形識別子を生成し，処理を終了する。
【００８７】
図６に示す短縮形辞書を用いた短縮形識別子生成処理の例では，文字列置換短縮処理部１４１は，識別子の先頭から短縮形辞書１７１で短縮が指定された文字列の検出を行う。文字列置換短縮処理部１４１は，短縮形辞書１７１に登録された文字列と最初に一致した文字列を，対応する短縮形文字列に置き換えている。
【００８８】
なお，文字列置換短縮処理部１４１が，短縮形辞書１７１に定義された文字列と一致する文字列を識別子からすべて検出し，検出されたすべての文字列についてそれぞれ対応する短縮形文字列での置き換えを行うことにより，最も短くなる短縮形識別子を生成するようにしてもよい。
【００８９】
このように，あらかじめ文字列の短縮形が定義された短縮形辞書１７１を用いて，識別子に含まれる文字列を短縮形文字列に置き換えることにより，ユーザが識別しやすい短縮形識別子を生成することができる。
【００９０】
（２）削除文字列／表示形式辞書を利用した識別子の短縮方法
ユーザは，辞書定義部１５により，例えば図２（Ｂ）に示すような，識別子から削除する文字列と，識別子の表示形式との対応を登録した情報である削除文字列／表示形式辞書１７２を用意する。図２（Ｂ）に示す削除文字列／表示形式辞書１７２では，識別子の表示形式として，識別子の表示色が指定されている。
【００９１】
短縮形識別子生成部１４において，表示形式対応文字列削除短縮処理部１４２は，削除文字列／表示形式辞書１７２に登録されている文字列が識別子に含まれている場合に，その文字列を削除することにより短縮形識別子を生成する。このとき，短縮形識別子生成部１４は，削除文字列／表示形式辞書１７２から削除された文字列に対応する表示形式を取得し，取得された表示形式を生成された短縮形識別子に対応づけて，表示部１３に渡す短縮形識別子リストに記録する。
【００９２】
具体的には，表示形式対応文字列削除短縮処理部１４２は，識別子が表示領域に収まらない場合に，その識別子に削除文字列／表示形式辞書１７２に定義された文字列が含まれているかを，識別子の先頭の方から調べる。表示形式対応文字列削除短縮処理部１４２は，削除文字列／表示形式辞書１７２に定義された文字列が含まれている場合には，その文字列を削除する。
【００９３】
短縮形識別子生成部１４は，削除文字列／表示形式辞書１７２を用いて生成された短縮形識別子について，削除された文字列に対応する識別子の表示色を，削除文字列／表示形式辞書１７２から取得する。短縮形識別子生成部１４は，識別子の表示色の情報を生成された短縮形識別子に対応付けて，短縮形識別子リストに設定する。表示部１３は，短縮形識別子リストを参照して，短縮形識別子の表示色を決定する。
【００９４】
例えば，識別子が関数名である場合に，ユーザは，辞書定義部１５により，あらかじめモジュール名の削除文字列／表示形式辞書１７２を用意する。ここでは，削除文字列／表示形式辞書１７２に，図２（Ｂ）に示すようなモジュール名の文字列と表示色との対応が登録されているものとする。
【００９５】
例えば，表示領域に表示する識別子として，２つの識別子“analyzer＿init”，“interface ＿end ”があるものとする。
【００９６】
このとき，表示形式対応文字列削除短縮処理部１４２は，図２（Ｂ）に示す削除文字列／表示形式辞書１７２を用いて，それぞれの識別子から短縮形識別子を生成する。
【００９７】
識別子“analyzer＿init”  →  短縮形識別子“…init”
識別子“interface ＿end ”  →  短縮形識別子“…end ”
表示部１３は，生成された短縮形識別子“…init”を表示領域に表示する場合には，図２（Ｂ）に示す削除文字列／表示形式辞書１７２において削除文字列“analyzer＿”への対応が定義された表示形式“赤”で，短縮形識別子“…init”表示する。また，表示部１３は，生成された短縮形識別子“…end ”を表示領域に表示する場合には，図２（Ｂ）に示す削除文字列／表示形式辞書１７２において削除文字列“interface ＿”への対応が定義された表示形式“青”で，短縮形識別子“…end ”を表示する。
【００９８】
図７は，本実施の形態の表示形式対応文字列削除短縮処理部による削除文字列／表示形式辞書を用いた識別子短縮処理フローチャートである。
【００９９】
図７に示す識別子短縮処理フローチャートは，表示領域に表示するある１つの識別子を短縮する処理のフローチャートである。
【０１００】
表示形式対応文字列削除短縮処理部１４２は，短縮形識別子の生成に成功した場合にのみ，短縮形識別子と表示形式との対応を短縮形識別子生成部１４に返す。短縮形識別子生成部１４では，返された短縮形識別子が表示領域に収まるかどうかを調べ，表示領域に収まらなければ，別の短縮方法で短縮形識別子の短縮を試みる。また，短縮形識別子生成部１４は，表示形式対応文字列削除短縮処理部１４２により識別子が短縮できなかった場合に，別の短縮方法で元の識別子の短縮を試みる。
【０１０１】
表示形式対応文字列削除短縮処理部１４２は，カウンタｉを０に初期化する（ステップＳ３０）。
【０１０２】
表示形式対応文字列削除短縮処理部１４２は，識別子のｉ番目の文字とｉ＋１番目の文字とからなる文字列を，文字列Ｓとする（ステップＳ３１）。
【０１０３】
表示形式対応文字列削除短縮処理部１４２は，文字列Ｓがあるか（ステップＳ３２），すなわち識別子の最後まで処理が終了したか否かを確認する。ｉ番目の文字が識別子の最後の文字であれば，識別子にｉ＋１番目の文字は存在しないので，文字列Ｓがないことになる。
【０１０４】
文字列Ｓがなければ（ステップＳ３２のＮＯ），表示形式対応文字列削除短縮処理部１４２は，削除文字列／表示形式辞書１７２を用いて当該識別子を短縮できなかったものとして，処理を終了する。
【０１０５】
文字列Ｓがあれば（ステップＳ３２のＹＥＳ），表示形式対応文字列削除短縮処理部１４２は，文字列Ｓから始まる文字列が，削除文字列／表示形式辞書１７２に登録されているか否かを判定する（ステップＳ３３）。
【０１０６】
文字列Ｓから始まる文字列が削除文字列／表示形式辞書１７２に登録されていなければ（ステップＳ３３のＮＯ），表示形式対応文字列削除短縮処理部１４２は，カウンタｉをインクリメントし（ステップＳ３４），ステップＳ３１に戻って次の文字列Ｓによる探索に移る。
【０１０７】
文字列Ｓから始まる文字列が削除文字列／表示形式短縮形辞書１７２に登録されていれば（ステップＳ３３のＹＥＳ），表示形式対応文字列削除短縮処理部１４２は，削除文字列／表示形式辞書１７２から文字列Ｓで始まる文字列ＳＳを１つ抽出する（ステップＳ３５）。このとき，表示形式対応文字列削除短縮処理部１４２は，削除文字列／表示形式辞書１７２から未処理の文字列ＳＳが抽出されたか（ステップＳ３６），すなわち削除文字列／表示形式辞書１７２に登録された文字列Ｓで始まるすべての文字列ＳＳについて処理が終了したかを判定する。
【０１０８】
削除文字列／表示形式辞書１７２から未処理の文字列ＳＳが抽出されなかった場合には（ステップＳ３６のＮＯ），表示形式対応文字列削除短縮処理部１４２は，カウンタｉをインクリメントし（ステップＳ３４），ステップＳ３１に戻って次の文字列Ｓによる探索に移る。
【０１０９】
削除文字列／表示形式辞書１７２から未処理の文字列ＳＳが抽出された場合には（ステップＳ３６のＹＥＳ），表示形式対応文字列削除短縮処理部１４２は，抽出された文字列ＳＳが識別子に含まれているかを判定する（ステップＳ３７）。
【０１１０】
文字列ＳＳが識別子に含まれていなければ（ステップＳ３７のＮＯ），表示形式対応文字列削除短縮処理部１４２は，ステップＳ３５に戻って次の文字列ＳＳの処理に移る。
【０１１１】
文字列ＳＳが識別子に含まれていれば（ステップＳ３７のＹＥＳ），表示形式対応文字列削除短縮処理部１４２は，識別子内の文字列ＳＳを削除し，短縮を示す記号“…”を付加することにより（ステップＳ３８），短縮形識別子を生成し，処理を終了する。
【０１１２】
表示形式対応文字列削除短縮処理部１４２は，削除文字列／表示形式辞書１７２から削除された文字列ＳＳに対応する表示形式の情報を取得し，生成された短縮形識別子と識別子から削除された表示形式との対応を，短縮形識別子生成部１４に返す。
【０１１３】
なお，識別子が関数名であり，表示形式対応文字列削除短縮処理部１４２が削除文字列／表示形式辞書１７２を用いて識別子からモジュール名を削除する場合には，識別子短縮処理を簡略化することもできる。モジュール名は，識別子の先頭に出現することが多い。そのため，表示形式対応文字列削除短縮処理部１４２は，削除文字列／表示形式辞書１７２に定義された文字列を１つずつ取り出し，取り出された文字列が識別子の先頭に含まれているかをチェックするだけで，識別子から削除する文字列を見つけることができる。
【０１１４】
このように，あらかじめ識別子から削除する文字列と，識別子の表示形式との対応が定義された削除識別子／表示形式辞書１７２を用いて，識別子に含まれる文字列を削除し，削除された文字列に対応する表示形式で短縮形識別子を表示領域に表示することにより，ユーザが識別しやすい短縮形識別子の表示ができる。
【０１１５】
（３）区切り文字を利用した識別子の短縮方法
ユーザは，辞書定義部１５により，例えば図２（Ｃ）に示すような，識別子の区切りとなる文字の定義情報である区切り文字辞書１７３を用意する。このとき，ユーザは，識別子の対象分野に応じた区切り文字を定義する。例えば，識別子がファイル名である場合に，Ｗｉｎｄｏｗｓ（登録商標）では“￥”が，ＵＮＩＸ（登録商標）では“／”がフォルダ・ディレクトリの区切り文字として使用される。区切り文字辞書１７３で区切り文字ごとに対象分野が指定されるようにしてもよい。システム側にあらかじめ短縮形辞書１７１が用意されている場合には，区切り文字辞書１７３には，一般的に単語などの区切りに用いられる文字が区切り文字として定義されている。
【０１１６】
なお，区切り文字辞書１７３で定義される区切り文字には，区切りとなる文字列も含まれる。例えば，図２（Ｃ）に示す区切り文字辞書１７３でも定義されている文字列“->”は，右矢印を示す区切りとなる文字列として，よく使用される。
【０１１７】
短縮形識別子生成部１４において，区切り文字単位短縮処理部１４３は，区切り文字辞書１７３に登録されている文字列が識別子に含まれている場合に，その区切り文字で分けられる文字列の単位で，識別子に含まれる文字列を削除する。
【０１１８】
例えば，区切り文字単位短縮処理部１４３は，識別子に区切り文字辞書１７３で定義された同一の区切り文字が複数含まれている場合に，最後の区切り文字以降の文字列だけを取り出して，短縮形識別子とする。また，区切り文字単位短縮処理部１４３は，識別子の最後の区切り文字以降の文字列だけでは，同時に表示する他の識別子と識別できない場合に，さらに前にある区切り文字を探し，検出された区切り文字以降の文字列を短縮形文字列とする。
【０１１９】
具体的には，区切り文字単位短縮処理部１４３は，識別子が表示領域に収まらない場合に，その識別子の中に区切り文字辞書１７３で定義された区切り文字が含まれているかを調べる。区切り文字単位短縮処理部１４３は，識別子の最後から調べて最初に出現した区切り文字から，識別子の最後までの文字列を取り出す。区切り文字単位短縮処理部１４３は，同時に表示するすべての識別子に対して同様の処理を行う。
【０１２０】
取り出された文字列が他の識別子のものと識別できない識別子があれば，区切り文字単位短縮処理部１４３は，その識別子について，さらに次の区切り文字を識別子の後ろから検索し，見つかった区切り文字から最後までの文字列を取り出す。区切り文字単位短縮処理部１４３は，取り出された文字列が他の識別子のものと識別できない識別子について，識別できる文字列が得られるまで，同じ処理を繰り返す。
【０１２１】
例えば，表示領域に表示する識別子として，最後の区切り文字以降の文字列が“java”である識別子が，識別子“/opt/FJSVawjbk/jdk14/bin/java ”の１つだけであるものとする。このとき，区切り文字単位短縮処理部１４３は，その識別子の短縮形識別子として，文字列“java”のみの短縮形文字列を生成する。
【０１２２】
識別子“/opt/FJSVawjbk/jdk14/bin/java ”  →  短縮形識別子“…/java ”
なお，“java”は，登録商標である。
【０１２３】
また，例えば，表示領域に表示する識別子として，最後の区切り文字以降の文字列が“java”である識別子が，識別子“/opt/FJSVawjbk/jdk14/bin/java ”，“/opt/FJSVssagt/j2sdk1.4.2 ＿11/jre/bin/java ”，“/oracle/product/10.2.0/db ＿1/jdk/bin/java”の３つであるものとする。このとき，区切り文字単位短縮処理部１４３は，３個の識別子を識別するために，次に示すように，最後から３個目の区切り文字以降の文字列を，短縮形文字列とする。
【０１２４】
識別子“/opt/FJSVawjbk/jdk14/bin/java ”
→  短縮形識別子“…/jdk14/bin/java ”
識別子“/opt/FJSVssagt/j2sdk1.4.2 ＿11/jre/bin/java ”
→  短縮形識別子“…/jre/bin/java ”
識別子“/oracle/product/10.2.0/db ＿1/jdk/bin/java”
→  短縮形識別子“…/jdk/bin/java ”
なお，“java”，“oracle”は，登録商標である。
【０１２５】
図８は，本実施の形態の区切り文字単位短縮処理部による区切り文字辞書を用いた識別子短縮処理フローチャートである。
【０１２６】
図８に示す識別子短縮処理フローチャートは，表示領域に表示する識別子をまとめて短縮する処理のフローチャートである。
【０１２７】
区切り文字単位短縮処理部１４３は，短縮形識別子の生成に成功した場合にのみ，短縮形識別子を短縮形識別子生成部１４に返す。短縮形識別子生成部１４では，返された短縮形識別子が表示領域に収まるかどうかを調べ，表示領域に収まらなければ，別の短縮方法で短縮形識別子の短縮を試みる。また，短縮形識別子生成部１４は，区切り文字単位短縮処理部１４３により識別子が短縮できなかった場合に，別の短縮方法で元の識別子の短縮を試みる。
【０１２８】
区切り文字単位短縮処理部１４３は，区切り文字辞書１７３から，表示する識別子の対象分野で使用される区切り文字ＳＳを取得する（ステップＳ４０）。図８に示すフローチャートでは，区切り文字単位短縮処理部１４３は，表示対象の識別子内で使用される区切り文字が，分野ごとに決まっているものとして処理を行う。例えば，区切り文字単位短縮処理部１４３は，識別子がファイル名である場合に，Ｗｉｎｄｏｗｓ（登録商標）では“￥”を，ＵＮＩＸ（登録商標）では“／”を区切り文字として，処理を行う。なお，区切り文字単位短縮処理部１４３が，対象分野ごとに決まった区切り文字で処理を行うのではなく，区切り文字辞書１７３に定義された区切り文字で順番に処理を行っていくようにしてもよい。
【０１２９】
区切り文字単位短縮処理部１４３は，表示領域に表示する識別子の個数ｎ分の配列ｎｕｍ（）を用意する。区切り文字単位短縮処理部１４３は，ｎ個の配列ｎｕｍ（）の各要素を，−１に初期化する（ステップＳ４１）。また，区切り文字単位短縮処理部１４３は，カウンタｉを１に初期化する（ステップＳ４１）。配列ｎｕｍ（）は，識別子ごとの区切り文字ＳＳの出現回数や，その時点で処理対象となっている区切り文字が識別子の前の方から何番目の区切り文字であるかを示す。
【０１３０】
区切り文字単位短縮処理部１４３は，表示領域に表示する識別子のリストから，ｉ番目の識別子を抽出する（ステップＳ４２）。区切り文字単位短縮処理部１４３は，ｎｕｍ（ｉ）の値によって処理を判断する（ステップＳ４３）。
【０１３１】
ｎｕｍ（ｉ）の値が０である場合には（ステップＳ４３のｎｕｍ（ｉ）＝０），区切り文字単位短縮処理部１４３は，カウンタｉをインクリメントし（ステップＳ４４），ステップＳ４２に戻って次の識別子の処理に移る。ｎｕｍ（ｉ）の値が０であるときは，該当識別子に区切り文字ＳＳが使われていないときか，または該当識別子を区切り文字ＳＳ以降の文字列に短縮できなかったときである。
【０１３２】
ｎｕｍ（ｉ）の値が０より小さい場合（ステップＳ４３のｎｕｍ（ｉ）＜０），すなわちｎｕｍ（ｉ）の値が初期値−１である場合には，区切り文字単位短縮処理部１４３は，該当識別子内の区切り文字ＳＳの出現回数をチェックし，得られた区切り文字ＳＳの出現回数をｎｕｍ（ｉ）に代入する（ステップＳ４５）。ｎｕｍ（ｉ）の値が初期値−１であるときは，まだ該当識別子内の区切り文字ＳＳの出現回数が分からないときである。区切り文字単位短縮処理部１４３は，ｎｕｍ（ｉ）＞０であるかを判定する（ステップＳ４６）。ｎｕｍ（ｉ）＞０でなければ（ステップＳ４６のＮＯ），すなわちｎｕｍ（ｉ）＝０であれば，区切り文字単位短縮処理部１４３は，カウンタｉをインクリメントし（ステップＳ４４），ステップＳ４２に戻って次の識別子の処理に移る。ｎｕｍ（ｉ）＞０であれば（ステップＳ４６のＹＥＳ），区切り文字単位短縮処理部１４３は，次のステップＳ４７の処理に進む。
【０１３３】
ｎｕｍ（ｉ）の値が０より大きい場合には（ステップＳ４３のｎｕｍ（ｉ）＞０），そのままステップＳ４７の処理に進む。
【０１３４】
区切り文字単位短縮処理部１４３は，該当識別子の前からｎｕｍ（ｉ）番目に出現する区切り文字ＳＳ以降の文字列に，短縮を示す記号“…”を付加することにより（ステップＳ４７），短縮形識別子を生成する。
【０１３５】
区切り文字単位短縮処理部１４３は，カウンタｉがｎであるか（ステップＳ４８），すなわちその時点で処理中の識別子がリストの最後の識別子であるかを確認する。
【０１３６】
カウンタｉ＝ｎでなければ（ステップＳ４８のＮＯ），すなわちまだ未処理の識別子があれば，区切り文字単位短縮処理部１４３は，カウンタｉをインクリメントし（ステップＳ４４），ステップＳ４２に戻って次の識別子の処理に移る。
【０１３７】
カウンタｉ＝ｎであれば（ステップＳ４８のＹＥＳ），すなわちリストのすべての識別子の処理が終了していれば，区切り文字単位短縮処理部１４３は，同じ短縮形識別子が存在するかを確認する（ステップＳ４９）。
【０１３８】
同じ短縮形識別子が存在しなければ（ステップＳ４９のＮＯ），区切り文字単位短縮処理部１４３は，処理を終了する。
【０１３９】
同じ短縮形識別子が存在すれば（ステップＳ４９のＹＥＳ），区切り文字単位短縮処理部１４３は，同じ短縮形識別子となってしまった識別子について，ｎｕｍ（ｉ）の値をデクリメントする（ステップＳ５０）。
【０１４０】
区切り文字単位短縮処理部１４３は，配列ｎｕｍ（）の全要素が０であるかを判定する（ステップＳ５１）。
【０１４１】
配列ｎｕｍ（）の全要素が０でなければ（ステップＳ５１のＮＯ），区切り文字単位短縮処理部１４３は，カウンタｉを１に初期化し（ステップＳ５２），ステップＳ４２に戻って最初の識別子から再度短縮処理を試みる。なお，同じ短縮形識別子となってしまった識別子についてのみ，区切り文字単位短縮処理部１４３が再度処理を行うようにしてもよい。
【０１４２】
配列ｎｕｍ（）の全要素が０であれば（ステップＳ５１のＹＥＳ），区切り文字単位短縮処理部１４３は，区切り文字ＳＳを用いてすべての識別子を短縮できなかったものとして，処理を終了する。配列ｎｕｍ（）の全要素が０であるということは，すべての識別子が，区切り文字ＳＳがない識別子または先頭から最初の区切り文字までの文字列でしか一意に識別できない識別子のいずれかであることを示している。
【０１４３】
図８に示すフローチャートにおいて，区切り文字単位短縮処理部１４３は，表示領域に同時に表示するすべての識別子について，他の識別子との識別が可能であるかの判断までをまとめて行っている。図６や図７に示すような他の短縮方法と同様に，区切り文字単位短縮処理部１４３が，短縮形識別子生成部１４から１つずつ識別子を受け取って，短縮形識別子を生成するようにしてもよい。区切り文字単位短縮処理部１４３は，識別子を１つずつ処理する場合には，他の短縮形識別子と同じになってしまった短縮形識別子についてのみ，再短縮を試みる。このとき，区切り文字単位短縮処理部１４３は，何番目の区切り文字以降の文字列が抽出されたのかを分かるように，短縮の試行回数も短縮形識別子生成部１４に渡す。
【０１４４】
なお，本実施の形態では，区切り文字単位短縮処理部１４３は，区切り文字で分けられた文字列の単位で，識別子の前の方から文字列を削除し，短縮形識別子を生成している。区切り文字単位短縮処理部１４３が，区切り文字で分けられた文字列の単位で，識別子の中の方の文字列を削除したり，後方の文字列を削除したりするようにしてもよい。
【０１４５】
このように，区切り文字が定義された区切り文字辞書１７３を用いて，識別子に含まれる文字列を，区切り文字で分けられる単位で削除することにより，ユーザが識別しやすい短縮形識別子を生成することができる。識別子は，区切り文字単位で意味があることが多いので，区切り文字単位で文字列を省略した短縮形識別子の表示は，ユーザにとって分かりやすい短縮形識別子の表示となる。
【０１４６】
（４）非短縮文字列が指定された場合の識別子の短縮方法
従来の識別子の短縮の方法としては，例えば，次のようなものがある。
・識別子の先頭から，表示可能文字数の範囲内で，他の識別子との識別が可能となる文字列を取り出す。
・識別子の先頭と最後のそれぞれから，表示可能文字数の範囲内で，他の識別子との識別が可能となる文字列を取り出す。
・同時に表示する識別子の先頭あるいは末尾に同じ文字列が付いている場合に，その文字列を削除する。
【０１４７】
ただし，従来の識別子の短縮の方法では，意味のある文字列が途中で途切れた形で表示されることがあり，ユーザが分かりにくくなってしまうことがある。本実施の形態による非短縮文字列が指定された場合の識別子の短縮方法では，上記の識別子の短縮方法を含めたさまざまな識別子の短縮方法によって識別子を短縮する際に，指定された文字列を短縮しないことにより，意味のある短縮形識別子を生成する。
【０１４８】
ユーザは，短縮を制限する文字列の指定情報を，識別子短縮表示装置１０に入力する。または，識別子短縮表示装置１０のシステム側で，あらかじめ短縮を制限する文字列の指定情報を保持しておく。
【０１４９】
短縮を制限する文字列の指定により，短縮が制限される非短縮文字列は，例えば，
・短縮形辞書１７１に登録された短縮形文字列
・区切り文字辞書１７３に登録された区切り文字で分けられた単位の文字列
・非短縮文字列辞書１７４に登録された文字列
などである。
【０１５０】
非短縮文字列辞書１７４であらかじめ短縮を行わない文字列を指定する場合には，ユーザは，辞書定義部１５により，例えば図２（Ｄ）に示すような，短縮が禁止された文字列の指定情報である非短縮文字列辞書１７４を用意する。
【０１５１】
短縮形識別子生成部１４において，非短縮文字列指定短縮処理部１４４は，識別子を短縮する際に，識別子に非短縮文字列が含まれているかを調べる。識別子に非短縮文字列が含まれている場合には，非短縮文字列指定短縮処理部１４４は，短縮形識別子の生成時に識別子から取り出す文字列が，非短縮文字列の部分文字列になっているかを調べる。識別子から取り出す文字列が非短縮文字列の部分文字列である場合には，非短縮文字列指定短縮処理部１４４は，非短縮文字列を短縮せずにそのまま取り出すようにする。
【０１５２】
例えば，“第１０回顧客向け展示会−説明資料−小野”，“第１０回顧客向け展示会−配布資料−田中”という２つの識別子があり，これらの識別子を表示領域に表示する場合の表示可能文字数が１３文字であるものとする。
【０１５３】
単純に識別子の先頭と最後からそれぞれ６文字ずつ取り出し，真中に省略を示す“…”を挿入して短縮形識別子を生成すると，２つの識別子は，以下のような短縮形識別子となる。
【０１５４】
“第１０回顧客…明資料−小野”
“第１０回顧客…布資料−田中”
この場合，“説明”と“配布”という文字列が途中で切れてしまっているため，それぞれの識別子が何の識別子であるかがユーザに分かりにくくなってしまう。ここで，非短縮文字列として“説明”と“配布”が非短縮文字列辞書１７４に登録されていれば，非短縮文字列指定短縮処理部１４４は，“説明”と“配布”の文字列が途中で切れてしまわないように，例えば，
“第１０回顧…説明資料−小野”
“第１０回顧…配布資料−田中”
というように識別子を短縮する。
【０１５５】
図９，図１０は，本実施の形態の非短縮文字列指定短縮処理部による非短縮文字列辞書を用いた識別子短縮処理フローチャートである。
【０１５６】
図９，図１０に示す識別子短縮処理フローチャートは，表示領域に収まらないある１つの識別子を短縮する処理のフローチャートである。
【０１５７】
図９，図１０に示すフローチャートでは，識別子の先頭と最後の両側から表示可能な長さいっぱいの文字列を抽出し，短縮形識別子を生成する場合の例を示している。非短縮文字列指定短縮処理部１４４は，抽出した文字列の中に非短縮文字列辞書１７４で指定された文字列が存在するかを調べる。短縮形識別子が他の識別子と同じになってしまう場合には，別の短縮方法を試すようにしてもよい。
【０１５８】
非短縮文字列指定短縮処理部１４４は，表示可能文字数ｎを算出する（ステップＳ６０）。非短縮文字列指定短縮処理部１４４は，算出された表示可能文字数ｎから，次の式を用いて，識別子の両端からそれぞれ抽出する文字列の文字数ｍを算出する（ステップＳ６１）。
【０１５９】
抽出文字数ｍ＝（ｎ−１）／２
ただし，小数点以下は切り捨てるものとする。
【０１６０】
非短縮文字列指定短縮処理部１４４は，識別子の先頭からｍ番目の文字とｍ＋１番目の文字とを抽出し，文字列Ｓ1 とする（ステップＳ６２）。文字列Ｓ1 は，識別子の先頭から抽出する文字列と，識別子から省略する文字列との境界部分の文字列となる。
【０１６１】
非短縮文字列指定短縮処理部１４４は，識別子の先頭からｌ−ｍ番目の文字とｌ−ｍ＋１番目の文字とを抽出し，文字列Ｓ2 とする（ステップＳ６３）。ｌは，識別子の文字数である。文字列Ｓ2 は，識別子の末尾から抽出する文字列と，識別子から省略する文字列との境界部分の文字列となる。
【０１６２】
非短縮文字列指定短縮処理部１４４は，文字列Ｓ1 を含む文字列が，非短縮文字列辞書１７４に登録されているか否かを判定する（ステップＳ６４）。
【０１６３】
文字列Ｓ1 を含む文字列が非短縮文字列辞書１７４に登録されていなければ（ステップＳ６４のＮＯ），非短縮文字列指定短縮処理部１４４は，先頭から抽出する文字列と識別子から省略する文字列との境界部分に非短縮文字列がないものと判断し，識別子の先頭からｍ番目までの文字列を抽出して文字列Ｓ11とし（ステップＳ６５），ステップＳ６９の処理に進む。
【０１６４】
文字列Ｓ1 を含む文字列が非短縮文字列辞書１７４に登録されていれば（ステップＳ６４のＹＥＳ），非短縮文字列指定短縮処理部１４４は，非短縮文字列辞書１７４から文字列Ｓ1 を含む文字列ＳＳ1 を１つ抽出する（ステップＳ６６）。このとき，非短縮文字列指定短縮処理部１４４は，非短縮文字列辞書１７４から未処理の文字列ＳＳ1 が抽出されたか（ステップＳ６７），すなわち非短縮文字列辞書１７４に登録された文字列Ｓ1 を含むすべての文字列ＳＳ1 について処理が終了したかを判定する。
【０１６５】
非短縮文字列辞書１７４から未処理の文字列ＳＳ1 が抽出されなかった場合には（ステップＳ６７のＮＯ），非短縮文字列指定短縮処理部１４４は，先頭から抽出する文字列と識別子から省略する文字列との境界部分に非短縮文字列がないものと判断し，識別子の先頭からｍ番目までの文字列を抽出して文字列Ｓ11とし（ステップＳ６５），ステップＳ６９の処理に進む。
【０１６６】
非短縮文字列辞書１７４から未処理の文字列ＳＳ1 が抽出された場合には（ステップＳ６７のＹＥＳ），非短縮文字列指定短縮処理部１４４は，抽出された文字列ＳＳ1 が識別子に含まれているかを判定する（ステップＳ６８）。
【０１６７】
文字列ＳＳ1 が識別子に含まれていなければ（ステップＳ６８のＮＯ），非短縮文字列指定短縮処理部１４４は，ステップＳ６６に戻って次の文字列ＳＳ1 の処理に移る。
【０１６８】
文字列ＳＳ1 が識別子に含まれていれば（ステップＳ６８のＹＥＳ），非短縮文字列指定短縮処理部１４４は，先頭から抽出する文字列と識別子から省略する文字列との境界部分に非短縮文字列が存在すると判断し，文字列Ｓ11を生成せずにステップＳ６９の処理に進む。
【０１６９】
非短縮文字列指定短縮処理部１４４は，文字列Ｓ2 を含む文字列が，非短縮文字列辞書１７４に登録されているか否かを判定する（ステップＳ６９）。
【０１７０】
文字列Ｓ2 を含む文字列が非短縮文字列辞書１７４に登録されていなければ（ステップＳ６９のＮＯ），非短縮文字列指定短縮処理部１４４は，末尾から抽出する文字列と識別子から省略する文字列との境界部分に非短縮文字列がないものと判断し，識別子のｌ−ｍ＋１番目から最後までの文字列を抽出して文字列Ｓ22とし（ステップＳ７０），ステップＳ７４の処理に進む。
【０１７１】
文字列Ｓ2 を含む文字列が非短縮文字列辞書１７４に登録されていれば（ステップＳ６９のＹＥＳ），非短縮文字列指定短縮処理部１４４は，非短縮文字列辞書１７４から文字列Ｓ2 を含む文字列ＳＳ2 を１つ抽出する（ステップＳ７１）。このとき，非短縮文字列指定短縮処理部１４４は，非短縮文字列辞書１７４から未処理の文字列ＳＳ2 が抽出されたか（ステップＳ７２），すなわち非短縮文字列辞書１７４に登録された文字列Ｓ2 を含むすべての文字列ＳＳ2 について処理が終了したかを判定する。
【０１７２】
非短縮文字列辞書１７４から未処理の文字列ＳＳ2 が抽出されなかった場合には（ステップＳ７２のＮＯ），非短縮文字列指定短縮処理部１４４は，末尾から抽出する文字列と識別子から省略する文字列との境界部分に非短縮文字列がないものと判断し，識別子のｌ−ｍ＋１番目から最後までの文字列を抽出して文字列Ｓ22とし（ステップＳ７０），ステップＳ７４の処理に進む。
【０１７３】
非短縮文字列辞書１７４から未処理の文字列ＳＳ2 が抽出された場合には（ステップＳ７２のＹＥＳ），非短縮文字列指定短縮処理部１４４は，抽出された文字列ＳＳ2 が識別子に含まれているかを判定する（ステップＳ７３）。
【０１７４】
文字列ＳＳ2 が識別子に含まれていなければ（ステップＳ７３のＮＯ），非短縮文字列指定短縮処理部１４４は，ステップＳ７１に戻って次の文字列ＳＳ2 の処理に移る。
【０１７５】
文字列ＳＳ2 が識別子に含まれていれば（ステップＳ７３のＹＥＳ），非短縮文字列指定短縮処理部１４４は，末尾から抽出する文字列と識別子から省略する文字列との境界部分に非短縮文字列が存在すると判断し，文字列Ｓ22を生成せずにステップＳ７４の処理に進む。
【０１７６】
非短縮文字列指定短縮処理部１４４は，文字列Ｓ11，文字列Ｓ22の有無を判定する（ステップＳ７４）。
【０１７７】
文字列Ｓ11と文字列Ｓ22がともにある場合には（ステップＳ７４のＳ11：あり，Ｓ22：あり），識別子の両端から抽出した文字列に非短縮文字列が存在しない。このような場合には，非短縮文字列指定短縮処理部１４４は，文字列Ｓ11と文字列Ｓ22とを短縮を示す記号“…”で連結したものを短縮形識別子とし（ステップＳ７５），処理を終了する。
【０１７８】
文字列Ｓ11があるが，文字列Ｓ22がない場合には（ステップＳ７４のＳ11：あり，Ｓ22：なし），非短縮文字列指定短縮処理部１４４は，識別子の後ろの方にある非短縮文字列を残すように，短縮文字列を生成する。すなわち，非短縮文字列指定短縮処理部１４４は，文字列Ｓ11の最後から（非短縮文字列ＳＳ2 の長さ−１）個の文字を削除した文字列と，非短縮文字列ＳＳ2 が出現してから識別子の最後までの文字列とを短縮を示す記号“…”で連結したものを短縮形識別子とし（ステップＳ７６），処理を終了する。
【０１７９】
文字列Ｓ11がないが，文字列Ｓ22がある場合には（ステップＳ７４のＳ11：なし，Ｓ22：あり），非短縮文字列指定短縮処理部１４４は，識別子の前の方にある非短縮文字列を残すように，短縮文字列を生成する。すなわち，非短縮文字列指定短縮処理部１４４は，識別子の先頭から非短縮文字列ＳＳ1 までの文字列と，文字列Ｓ22の先頭から（非短縮文字列ＳＳ1 の長さ−１）個の文字を削除した文字列とを短縮を示す記号“…”で連結したものを短縮形識別子とし（ステップＳ７７），処理を終了する。
【０１８０】
このように，識別子の一方の側の抽出文字列にのみ非短縮文字列が存在する場合には，非短縮文字列指定短縮処理部１４４は，非短縮文字列が存在しない側の抽出文字列を短くすることによって，非短縮文字列を残すように識別子を短縮する。
【０１８１】
文字列Ｓ11と文字列Ｓ22がともにない場合には（ステップＳ７４のＳ11：なし，Ｓ22：なし），識別子の両端の抽出文字列に非短縮文字列が存在する。このような場合には，非短縮文字列指定短縮処理部１４４は，非短縮文字列が途中で切れないようにするために，非短縮文字列が削除された短縮形識別子を生成する。すなわち，短縮文字列指定短縮処理部１４４は，先頭から非短縮文字列ＳＳ1 が出現するまでの文字列と，非短縮文字列ＳＳ2 の次から識別子の最後までの文字列とを短縮を示す記号“…”で連結したものを短縮形識別子とし（ステップＳ７８），処理を終了する。なお，この場合には，削除する文字数をカウントし，可能な限りどちらかの側の非短縮文字列を短縮形識別子に含めるようにしてもよい。
【０１８２】
このように，非短縮文字列辞書１７４等を用いて，識別子に含まれる非短縮文字列を短縮しないように，識別子を短縮することにより，ユーザが識別しやすい短縮形識別子を生成することができる。
【０１８３】
図１１は，本実施の形態による短縮形識別子リストの例を示す図である。
【０１８４】
図１１に示す短縮形識別子リストには，短縮形識別子生成部１４が短縮を行った識別子ごとに，短縮する前の識別子と，短縮形識別子との対応が記録されている。また，図１１に示す短縮形識別子リストには，上記の（１）〜（４）のどの短縮方法で短縮形識別子が生成されたかを示す情報や，上記の（２）の方法で短縮された場合には短縮形識別子をどのように表示するかを示す表示形式の情報なども記録されている。
【０１８５】
短縮形識別子生成部１４は，図１１に示すような短縮形識別子リストを結果として表示部１３に返す。
【０１８６】
表示部１３は，表示領域に収まらない識別子については，図１１に示すような短縮形識別子リストを参照して，表示領域に短縮形識別子を表示する。表示形式が指定されている短縮形識別子については，表示部１３は，指定された表示形式で短縮形識別子を表示する。
【０１８７】
図１２は，本実施の形態による長い識別子の短縮表示例を示す図である。
【０１８８】
本実施の形態によって，例えば，“20080220133816013216＿eventannex1 ”，“20080220133816013216＿eventannex2 ”いう名前の２つのファイルについては，図１２に示すように，それぞれ“…eventannex1 ”，“…eventannex2 ”という短縮形識別子が表示領域に表示される。これは，区切り文字として“＿”が区切り文字辞書１７３に定義されており，短縮形識別子生成部１４が区切り文字辞書１７３の定義に従って識別子を短縮した場合の例である。
【０１８９】
また，本実施の形態によって，例えば，“ブラッシュアップ会結果0706”，“ブラッシュアップ会結果0806”いう名前の２つのファイルについては，図１２に示すように，それぞれ“ＢＵ…会結果0706”，“ＢＵ…会結果0806”という短縮形識別子が表示領域に表示される。これは，文字列“ブラッシュアップ”の短縮形文字列として“ＢＵ”が短縮形辞書１７１に定義されており，短縮形識別子生成部１４が短縮形辞書１７１の定義に従って識別子を短縮した場合の例である。
【０１９０】
図１３に示す従来の長い識別子の短縮表示と比較すると，図１２に示す本実施の形態による長い識別子の短縮表示では，それぞれの短縮形識別子が，他の短縮形識別子との区別が可能であり，かつユーザにとって何の識別子であるかが分かりやすい表示となっている。
【０１９１】
以上説明した識別子短縮表示装置１０による処理は，コンピュータが備えるＣＰＵ，メモリ等のハードウェアとソフトウェアプログラムとにより実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも，ネットワークを通して提供することも可能である。
【０１９２】
以上，本実施の形態について説明したが，本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【０１９３】
例えば，本実施の形態による識別子短縮表示装置１０は，上述の（１）〜（４）の短縮方法を実行する機能をすべて備えているが，上述の（１）〜（４）の短縮方法を実行する機能のうち少なくともいずれか１つの機能を備えた識別子短縮表示装置１０であってもよい。
【０１９４】
また，例えば，システムで扱っている識別子の全体に対して統一した識別子の短縮を行うようにしてもよいし，識別子の表示を行うたびに表示領域への表示対象となる識別子だけを短縮するようにしてもよい。前者には，どのような画面を開いたときでも，同じ識別子は同じ短縮形識別子で表示できるという利点がある。後者には，識別子の表示を行うたびに表示領域のサイズに合わせた最良の短縮形識別子が表示できるという利点がある。
【図面の簡単な説明】
【０１９５】
【図１】本実施の形態による識別子短縮表示装置の構成例を示す図である。
【図２】本実施の形態による辞書の例を示す図である。
【図３】本実施の形態による辞書の形式の例を示す図である。
【図４】本実施の形態による短縮形識別子生成部の構成例を示す図である。
【図５】本実施の形態の短縮形識別子生成部による短縮形識別子生成処理フローチャートである。
【図６】本実施の形態の文字列置換短縮処理部による短縮形辞書を用いた識別子短縮処理フローチャートである。
【図７】本実施の形態の表示形式対応文字列削除短縮処理部による削除文字列／表示形式辞書を用いた識別子短縮処理フローチャートである。
【図８】本実施の形態の区切り文字単位短縮処理部による区切り文字辞書を用いた識別子短縮処理フローチャートである。
【図９】本実施の形態の非短縮文字列指定短縮処理部による非短縮文字列辞書を用いた識別子短縮処理フローチャートである。
【図１０】本実施の形態の非短縮文字列指定短縮処理部による非短縮文字列辞書を用いた識別子短縮処理フローチャートである。
【図１１】本実施の形態による短縮形識別子リストの例を示す図である。
【図１２】本実施の形態による長い識別子の短縮表示例を示す図である。
【図１３】従来の長い識別子の短縮表示例を示す図である。
【符号の説明】
【０１９６】
１０  識別子短縮表示装置
１１  表示領域情報取得部
１２  表示識別子取得部
１３  表示部
１４  短縮形識別子生成部
１４１  文字列置換短縮処理部
１４２  表示形式対応文字列削除短縮処理部
１４３  区切り文字単位短縮処理部
１４４  非短縮文字列指定短縮処理部
１５  辞書定義部
１６  記憶部（メモリ）
１７  辞書記憶部
１７１  短縮形辞書
１７２  削除文字列／表示形式辞書
１７３  区切り文字辞書
１７４  非短縮文字列辞書
２０  表示装置
【図１】
2010140404.tif 000003
【図２】
2010140404.tif 000004
【図３】
2010140404.tif 000005
【図４】
2010140404.tif 000006
【図５】
2010140404.tif 000007
【図６】
2010140404.tif 000008
【図７】
2010140404.tif 000009
【図８】
2010140404.tif 000010
【図９】
2010140404.tif 000011
【図１０】
2010140404.tif 000012
【図１１】
2010140404.tif 000013
【図１２】
2010140404.tif 000014
【図１３】
2010140404.tif 000015