以下,本発明の実施の形態について,図を用いて説明する。
図1は,本実施の形態による識別子短縮表示装置の構成例を示す図である。
図1において,識別子短縮表示装置10は,長い識別子を表示領域に収まるように短縮し,表示装置20の画面上の表示領域に表示する。識別子短縮表示装置10は,識別子を短縮する際に,表示領域内に収まる範囲内で可能な限り,識別子内の文字列が有する意味が失われないように,また並べて表示される他の識別子と識別可能となるように,識別子を短縮する。識別子短縮表示装置10は,コンピュータが備えるCPU,メモリ等のハードウェアと,ソフトウェアプログラムとにより実現される。
識別子短縮表示装置10は,表示領域情報取得部11,表示識別子取得部12,表示部13,短縮形識別子生成部14,辞書定義部15,記憶部(メモリ)16,辞書記憶部17を備える。
表示領域情報取得部11は,識別子を表示する表示領域の情報を取得する。表示領域の情報は,例えば,表示領域の大きさなどの情報である。表示識別子取得部12は,表示領域に表示する識別子の情報を取得する。
表示部13は,表示装置20の画面上の表示領域に識別子を表示する。このとき,表示部13は,表示領域に表示できる識別子の文字数を計算する。ここでは,表示領域に表示できる文字数を,表示可能文字数と呼ぶものとする。表示部13は,表示可能文字数を超える長い識別子が存在する場合には,短縮形識別子生成部14に,識別子の短縮形の作成を依頼する。以下では,表示のために短縮された識別子を,短縮形識別子と呼ぶものとする。
ここで,表示部13における表示可能文字数の判断の例について説明する。通常,表示する文字列と文字列を表示する際に使用するフォントやサイズ等の情報とから,文字列を表示するのに必要な表示サイズを計算する手段が,OS(Operating System)等により用意されている。例えば,Windows(登録商標)の言語環境,NET Framework (登録商標)では,MeasureString というメソッドに,上記の表示する文字列に関する情報を与えることによって,文字列を表示するために必要な高さや幅などのサイズが得られる。表示部13は,得られた文字列を表示するために必要なサイズと,表示領域のサイズとを比較して,識別子が表示領域に表示可能か否かを判断する。
表示部13は,短縮形識別子生成部14から渡された短縮形識別子のリスト情報である短縮形識別子リストを参照して,識別子を表示領域に表示する。すなわち,表示部13は,表示領域に収まらない長い識別子については,短縮形識別子生成部14により生成された短縮形識別子を,表示領域に表示する。
また,表示部13は,短縮形識別子の元となる文字列を参照する機能を提供する。表示部13が提供する識別子参照機能としては,例えば次のようなものが考えられる。
・表示領域に表示された短縮形識別子をユーザが選択できるようにしておき,表示部13が,ユーザに選択された短縮形識別子の近くに,短縮前の識別子を表示する。
・短縮形識別子と短縮前の識別子との対応一覧を表示するためのボタンやメニューを用意しておき,表示部13が,ユーザの指示に応じて,短縮形識別子と短縮前の識別子との対応一覧を表示する。
短縮形識別子生成部14は,表示部13の要求に従って,表示領域に収まらない長い識別子について,その短縮形識別子を生成する。短縮形識別子生成部14は,生成された短縮形識別子のリストを表示部13に送る。本実施の形態の短縮形識別子生成部14による短縮形識別子生成の処理の詳細については,後述する。
短縮形識別子生成部14は,表示領域に収まるように,識別子を短縮する。
文字がすべて同一の幅で表示されるフォントを使用して識別子を表示する場合には,短縮形識別子生成部14は,単純に表示領域の幅を文字の幅で割ることによって表示可能文字数を求め,求めれた表示可能文字数内に収まるように識別子を短縮する。
文字によって表示幅が異なるフォントを使用して識別子を表示する場合には,識別子を構成する文字の文字数ではなく,識別子を構成する文字の内容で,識別子の表示に必要な表示領域の幅が異なる。このような場合には,短縮形識別子生成部14は,表示可能文字数を求めるために,まず,例えば前述のMeasureString メソッドなどのシステムの機能を使用して,識別子の表示幅wを求める。短縮形識別子生成部14は,得られた識別子の表示幅wから,目安となる表示可能文字数nを計算する。
表示可能文字数n=表示領域の幅W÷(識別子の表示幅w÷識別子の文字数)
短縮形識別子生成部14は,算出された表示可能文字数nを目安にして,短縮形識別子を生成する。さらに,短縮形識別子生成部14は,生成された短縮形識別子の表示幅を求め,短縮形識別子が表示領域に収まるかを判断する。
辞書定義部15は,例えばユーザの入力を受け付け,短縮形識別子生成部14が表示領域に収まらない長い識別子を短縮するために参照する情報を生成する。本実施の形態では,短縮形識別子生成部14が識別子を短縮するために参照する情報を,辞書と呼ぶものとする。
辞書定義部15により作成された辞書は,識別子短縮表示装置10のコンピュータが備える記憶装置に保存される。例えば,辞書定義部15は,作成された辞書が1回のみの使用であり,かつ辞書のサイズが大きくなければ,作成された辞書を記憶部(メモリ)16にだけ保存する。また,辞書定義部15は,作成された辞書を複数回使用するのであれば,作成された辞書をディスクなどの記憶装置である辞書記憶部17に保存し,次回以降も使用できるようにする。
作成される辞書としては,例えば,短縮形辞書171,削除文字列/表示形式辞書172,区切り文字辞書173,非短縮文字列辞書174などが考えられる。
図2は,本実施の形態による辞書の例を示す図である。
図2(A)は,短縮形辞書171の例である。図2(B)は,削除文字列/表示形式辞書172の例である。図2(C)は,区切り文字辞書173の例である。図2(D)は,非短縮文字列辞書174の例である。短縮形辞書171,削除文字列/表示形式辞書172,区切り文字辞書173,非短縮文字列辞書174の詳細については,後述する。
これらの辞書は,あらかじめシステム側で用意されていてもよいし,ユーザにより定義されてもよい。どちらの場合でも,複数回の使用を考慮して,辞書への追加や改良を行うためのインタフェースが用意されているものとする。
図3は,本実施の形態による辞書の形式の例を示す図である。
検索の効率化が図られた辞書の形式としては,例えば図3(A)に示すように,アルファベットや五十音の順番にソートする形式がある。
また,例えば図3(B)に示すように,単純に五十音順などでソートするのではなく,同一の文字列から始まる文字列をすべて連続させてリストする形式がある。図3(B)に示す例では,同一の文字列から始まる文字列のうちの先頭となる文字列にインデックスが付けられている。
以下,本実施の形態による短縮形識別子生成部14による短縮形識別子生成の処理の詳細な例を説明する。
本実施の形態による短縮形識別子生成部14は,以下で説明する(1)〜(4)の識別子の短縮方法を用いて,表示領域に収まらない識別子について,短縮形識別子を生成する。
図4は,本実施の形態による短縮形識別子生成部の構成例を示す図である。
本実施の形態の短縮形識別子生成部14は,文字列置換短縮処理部141,表示形式対応文字列削除短縮処理部142,区切り文字単位短縮処理部143,非短縮文字列指定短縮処理部144を備える。
文字列置換短縮処理部141は,文字列の短縮形が定義された短縮形辞書171を用いて,識別子内の文字列を短縮された文字列に置き換えることにより,短縮形識別子を生成する。文字列置換短縮処理部141による識別子の短縮方法については,以下の(1)で詳細を説明する。
表示形式対応文字列削除短縮処理部142は,識別子から削除する文字列と識別子の表示形式との対応が定義された削除文字列/表示形式辞書172を用いて,識別子内の文字列を削除することにより,短縮形識別子を生成する。また,表示形式対応文字列削除短縮処理部142は,削除文字列/表示形式辞書172を用いて,生成された短縮形識別子と削除された文字列に対応する表示形式との対応付けを行う。表示形式対応文字列削除短縮処理部142による識別子の短縮方法については,以下の(2)で詳細を説明する。
区切り文字単位短縮処理部143は,区切り文字が指定された区切り文字辞書173を用いて,区切り文字で分けられた文字列の単位で識別子内の文字列を削除することにより,短縮形識別子を生成する。区切り文字単位短縮処理部143による識別子の短縮方法については,以下の(3)で詳細を説明する。
非短縮文字列指定短縮処理部144は,短縮を行わない文字列が定義された非短縮文字列辞書174等の指定情報を用いて,指定された文字列を短縮しないように識別子の短縮を行うことにより,短縮形識別子を生成する。非短縮文字列指定短縮処理部144による識別子の短縮方法については,以下の(4)で詳細を説明する。
短縮形識別子生成部14は,以下の(1)〜(4)に示すいずれか1つの識別子の短縮方法で,同時に表示する識別子が識別可能となれば,その時点で処理を終了する。短縮形識別子生成部14は,ある識別子の短縮方法で同時に表示する識別子が識別可能とならなければ,他の短縮方法を適用して,同時に表示する識別子が識別可能となるような短縮形識別子を生成する。
各短縮方法の適用順番は,以下で説明する(1),(2),(3),(4)の順でもよいし,識別子の種類に応じて各短縮方法の適用順番を変えるようにしてもよい。また,各短縮方法の適用順番をユーザが指定できるようにしてもよい。本実施の形態では,短縮形識別子生成部14は,以下で説明する(1),(2),(3),(4)の順に短縮方法を適用して,表示領域に収まらない識別子についての短縮形識別子の生成を行う。
また,表示領域の特徴ごとに,以下で説明する(1)〜(4)のどの短縮方法を利用するかがあらかじめ設定されていてもよいし,識別子の表示時にユーザが指定できるようにしてもよい。
なお,短縮形識別子生成部14は,短縮された識別子であることがユーザに簡単に分かるように,短縮形識別子を生成する。本実施の形態では,短縮形識別子生成部14は,識別子の短縮した部分に短縮されたことを示す記号“…”を挿入して,短縮形識別子を生成する。
図5は,本実施の形態の短縮形識別子生成部による短縮形識別子生成処理フローチャートである。
短縮形識別子生成部14は,表示領域に表示する識別子のリストから,識別子を1つ選択する(ステップS10)。
短縮形識別子生成部14は,選択された識別子が表示領域内に収まるか否かを判定する(ステップS11)。
短縮形識別子生成部14は,識別子が表示領域内に収まらない場合には(ステップS11のNO),下記の(1)〜(4)に示す識別子の短縮方法を1つ選択する(ステップS12)。短縮形識別子生成部14は,選択された短縮方法を用いた識別子短縮処理を行う(ステップS13)。
識別子が短縮された場合には,短縮形識別子生成部14は,生成された短縮形識別子を短縮形識別子リストに記録する(ステップS14)。短縮形識別子リストには,短縮前の識別子,短縮形識別子,識別子の短縮に用いた短縮方法などの情報が記録される。短縮形識別子の表示形式の指定がある場合には,表示形式の指定情報も短縮形識別子リストに記録される。ステップS11に戻り,短縮形識別子生成部14は,生成された短縮形識別子が表示領域内に収まるかを判定する(ステップS11)。生成された短縮形識別子が表示領域内に収まらなければ(ステップS11のNO),短縮形識別子生成部14は,別の短縮方法を選択し(ステップS12),識別子短縮処理を行う(ステップS13)。
なお,図示はされていないが,識別子が短縮されなかった場合には,短縮形識別子生成部14は,別の短縮方法を選択し(ステップS12),識別子短縮処理を行う(ステップS13)。
短縮形識別子生成部14は,識別子または短縮形識別子が表示領域内に収まる場合には(ステップS11のYES),表示領域に表示するすべての識別子について短縮の処理が終了したかを判定する(ステップS15)。
すべての識別子について短縮の処理が終了していなければ(ステップS15のNO),短縮形識別子生成部14は,ステップS10に戻り,次の識別子を選択し(ステップS10),短縮の処理を行う。
すべての識別子について短縮の処理が終了していれば(ステップS15のYES),短縮形識別子生成部14は,短縮形識別子リストに同じ短縮形識別子が存在するかを判定する(ステップS16)。
同じ短縮形識別子が存在すれば(ステップS16のYES),短縮形識別子生成部14は,ステップ10に戻り,それらの短縮形識別子について,識別子の短縮方法を変えて,再度,識別子の短縮処理を行う。
同じ短縮形識別子が存在しなければ(ステップS16のNO),短縮形識別子生成部14は,生成された短縮形識別子の情報が記録された短縮形識別子リストを表示部13に通知し(ステップS17),処理を終了する。
なお,例えば表示領域が非常に狭い場合など,どのような短縮方法を用いても同じ短縮形識別子が生成されてしまう場合がある。極端な例としては,表示領域が一文字分しかなければ,表示するすべての識別子について異なる短縮形識別子を生成することは難しい。このような場合には,図示はされていないが,短縮形識別子生成部14は,同じ短縮形識別子を含む短縮形識別子リストを表示部13に通知する。
図5に示すフローチャートは,表示領域内に収まらない識別子1つ1つごとに,短縮形識別子生成部14が下記の(1)〜(4)に示す短縮方法を順に用いて短縮形識別子を生成していく短縮形識別子生成処理のフローチャートである。短縮形識別子生成部14が,下記の(1)〜(4)に示す短縮方法ごとに,表示領域に収まらないすべての識別子の短縮形識別子を生成していくようにしてもよい。
以下,本実施の形態の短縮形識別子生成部14による短縮形識別子生成の各処理手法(1)〜(4)の例を説明する。
(1)短縮形辞書を利用した識別子の短縮方法
ユーザは,辞書定義部15により,例えば図2(A)に示すような,文字列と,文字列の短縮形との対応を示す情報である短縮形辞書171を用意する。このとき,ユーザは,自分が見て意味が分かるような文字列の短縮形を定義する。システム側にあらかじめ短縮形辞書171が用意されている場合でも,短縮形辞書171には,一般的に意味がわかるような文字列の短縮形が定義されている。
短縮形識別子生成部14において,文字列置換短縮処理部141は,短縮形辞書171に登録されている文字列が識別子に含まれている場合に,その文字列を短縮形辞書171に登録された対応する短縮形文字列に置き換える。
具体的には,文字列置換短縮処理部141は,識別子が表示領域に収まらない場合に,その識別子に短縮形辞書171に定義された文字列が含まれているかを,識別子の先頭の方から調べる。文字列置換短縮処理部141は,短縮形辞書171に定義された文字列が識別子に含まれている場合には,その文字列を短縮形辞書171で対応付けられた短縮形文字列に置き換える。
例えば,短縮形辞書171に文字列“知的財産”と短縮形文字列“知財”との対応が登録されているものとする。このとき,文字列置換短縮処理部141は,識別子に“知的財産戦略”という文字列が含まれていれば,その文字列を“知財…戦略”と短縮する。
また,例えば,表示領域に表示する識別子として,3つの識別子“/opt/FJSVawjbk/jdk14/bin/java ”,“/opt/FJSVssagt/j2sdk1.4.2 _11/jre/bin/java ”,“/oracle/product/10.2.0/db _1/jdk/bin/java”があるものとする。
このとき,文字列置換短縮処理部141は,図2(A)に示す短縮形辞書171を用いて,次に示すように,それぞれの識別子から短縮形識別子を生成する。
識別子“/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”は,登録商標である。
図6は,本実施の形態の文字列置換短縮処理部による短縮形辞書を用いた識別子短縮処理フローチャートである。
図6に示す識別子短縮処理フローチャートは,表示領域に表示するある1つの識別子を短縮する処理のフローチャートである。
文字列置換短縮処理部141は,短縮形識別子の生成に成功した場合にのみ,短縮形識別子を短縮形識別子生成部14に返す。短縮形識別子生成部14では,返された短縮形識別子が表示領域に収まるかどうかを調べ,表示領域に収まらなければ,別の短縮方法で短縮形識別子の短縮を試みる。また,短縮形識別子生成部14は,文字列置換短縮処理部141により識別子が短縮できなかった場合に,別の短縮方法で元の識別子の短縮を試みる。
文字列置換短縮処理部141は,カウンタiを0に初期化する(ステップS20)。
文字列置換短縮処理部141は,識別子のi番目の文字とi+1番目の文字とからなる文字列を,文字列Sとする(ステップS21)。
文字列置換短縮処理部141は,文字列Sがあるか(ステップS22),すなわち識別子の最後まで処理が終了したか否かを確認する。i番目の文字が識別子の最後の文字であれば,識別子にi+1番目の文字は存在しないので,文字列Sがないことになる。
文字列Sがなければ(ステップS22のNO),文字列置換短縮処理部141は,短縮形辞書171を用いて当該識別子を短縮できなかったものとして,処理を終了する。
文字列Sがあれば(ステップS22のYES),文字列置換短縮処理部141は,文字列Sから始まる文字列が,短縮形辞書171に登録されているか否かを判定する(ステップS23)。
文字列Sから始まる文字列が短縮形辞書171に登録されていなければ(ステップS23のNO),文字列置換短縮処理部141は,カウンタiをインクリメントし(ステップS24),ステップS21に戻って次の文字列Sによる探索に移る。
文字列Sから始まる文字列が短縮形辞書171に登録されていれば(ステップS23のYES),文字列置換短縮処理部141は,短縮形辞書171から文字列Sで始まる文字列SSを1つ抽出する(ステップS25)。このとき,文字列置換短縮処理部141は,短縮形辞書171から未処理の文字列SSが抽出されたか(ステップS26),すなわち短縮形辞書171に登録された文字列Sで始まるすべての文字列SSについて処理が終了したかを判定する。
短縮形辞書171から未処理の文字列SSが抽出されなかった場合には(ステップS26のNO),文字列置換短縮処理部141は,カウンタiをインクリメントし(ステップS24),ステップS21に戻って次の文字列Sによる探索に移る。
短縮形辞書171から未処理の文字列SSが抽出された場合には(ステップS26のYES),文字列置換短縮処理部141は,抽出された文字列SSが識別子に含まれているかを判定する(ステップS27)。
文字列SSが識別子に含まれていなければ(ステップS27のNO),文字列置換短縮処理部141は,ステップS25に戻って次の文字列SSの処理に移る。
文字列SSが識別子に含まれていれば(ステップS27のYES),文字列置換短縮処理部141は,識別子内の文字列SSを,短縮形辞書171で文字列SSに対応付けられて定義された短縮形文字列に置き換え,短縮を示す記号“…”を付加することにより(ステップS28),短縮形識別子を生成し,処理を終了する。
図6に示す短縮形辞書を用いた短縮形識別子生成処理の例では,文字列置換短縮処理部141は,識別子の先頭から短縮形辞書171で短縮が指定された文字列の検出を行う。文字列置換短縮処理部141は,短縮形辞書171に登録された文字列と最初に一致した文字列を,対応する短縮形文字列に置き換えている。
なお,文字列置換短縮処理部141が,短縮形辞書171に定義された文字列と一致する文字列を識別子からすべて検出し,検出されたすべての文字列についてそれぞれ対応する短縮形文字列での置き換えを行うことにより,最も短くなる短縮形識別子を生成するようにしてもよい。
このように,あらかじめ文字列の短縮形が定義された短縮形辞書171を用いて,識別子に含まれる文字列を短縮形文字列に置き換えることにより,ユーザが識別しやすい短縮形識別子を生成することができる。
(2)削除文字列/表示形式辞書を利用した識別子の短縮方法
ユーザは,辞書定義部15により,例えば図2(B)に示すような,識別子から削除する文字列と,識別子の表示形式との対応を登録した情報である削除文字列/表示形式辞書172を用意する。図2(B)に示す削除文字列/表示形式辞書172では,識別子の表示形式として,識別子の表示色が指定されている。
短縮形識別子生成部14において,表示形式対応文字列削除短縮処理部142は,削除文字列/表示形式辞書172に登録されている文字列が識別子に含まれている場合に,その文字列を削除することにより短縮形識別子を生成する。このとき,短縮形識別子生成部14は,削除文字列/表示形式辞書172から削除された文字列に対応する表示形式を取得し,取得された表示形式を生成された短縮形識別子に対応づけて,表示部13に渡す短縮形識別子リストに記録する。
具体的には,表示形式対応文字列削除短縮処理部142は,識別子が表示領域に収まらない場合に,その識別子に削除文字列/表示形式辞書172に定義された文字列が含まれているかを,識別子の先頭の方から調べる。表示形式対応文字列削除短縮処理部142は,削除文字列/表示形式辞書172に定義された文字列が含まれている場合には,その文字列を削除する。
短縮形識別子生成部14は,削除文字列/表示形式辞書172を用いて生成された短縮形識別子について,削除された文字列に対応する識別子の表示色を,削除文字列/表示形式辞書172から取得する。短縮形識別子生成部14は,識別子の表示色の情報を生成された短縮形識別子に対応付けて,短縮形識別子リストに設定する。表示部13は,短縮形識別子リストを参照して,短縮形識別子の表示色を決定する。
例えば,識別子が関数名である場合に,ユーザは,辞書定義部15により,あらかじめモジュール名の削除文字列/表示形式辞書172を用意する。ここでは,削除文字列/表示形式辞書172に,図2(B)に示すようなモジュール名の文字列と表示色との対応が登録されているものとする。
例えば,表示領域に表示する識別子として,2つの識別子“analyzer_init”,“interface _end ”があるものとする。
このとき,表示形式対応文字列削除短縮処理部142は,図2(B)に示す削除文字列/表示形式辞書172を用いて,それぞれの識別子から短縮形識別子を生成する。
識別子“analyzer_init” → 短縮形識別子“…init”
識別子“interface _end ” → 短縮形識別子“…end ”
表示部13は,生成された短縮形識別子“…init”を表示領域に表示する場合には,図2(B)に示す削除文字列/表示形式辞書172において削除文字列“analyzer_”への対応が定義された表示形式“赤”で,短縮形識別子“…init”表示する。また,表示部13は,生成された短縮形識別子“…end ”を表示領域に表示する場合には,図2(B)に示す削除文字列/表示形式辞書172において削除文字列“interface _”への対応が定義された表示形式“青”で,短縮形識別子“…end ”を表示する。
図7は,本実施の形態の表示形式対応文字列削除短縮処理部による削除文字列/表示形式辞書を用いた識別子短縮処理フローチャートである。
図7に示す識別子短縮処理フローチャートは,表示領域に表示するある1つの識別子を短縮する処理のフローチャートである。
表示形式対応文字列削除短縮処理部142は,短縮形識別子の生成に成功した場合にのみ,短縮形識別子と表示形式との対応を短縮形識別子生成部14に返す。短縮形識別子生成部14では,返された短縮形識別子が表示領域に収まるかどうかを調べ,表示領域に収まらなければ,別の短縮方法で短縮形識別子の短縮を試みる。また,短縮形識別子生成部14は,表示形式対応文字列削除短縮処理部142により識別子が短縮できなかった場合に,別の短縮方法で元の識別子の短縮を試みる。
表示形式対応文字列削除短縮処理部142は,カウンタiを0に初期化する(ステップS30)。
表示形式対応文字列削除短縮処理部142は,識別子のi番目の文字とi+1番目の文字とからなる文字列を,文字列Sとする(ステップS31)。
表示形式対応文字列削除短縮処理部142は,文字列Sがあるか(ステップS32),すなわち識別子の最後まで処理が終了したか否かを確認する。i番目の文字が識別子の最後の文字であれば,識別子にi+1番目の文字は存在しないので,文字列Sがないことになる。
文字列Sがなければ(ステップS32のNO),表示形式対応文字列削除短縮処理部142は,削除文字列/表示形式辞書172を用いて当該識別子を短縮できなかったものとして,処理を終了する。
文字列Sがあれば(ステップS32のYES),表示形式対応文字列削除短縮処理部142は,文字列Sから始まる文字列が,削除文字列/表示形式辞書172に登録されているか否かを判定する(ステップS33)。
文字列Sから始まる文字列が削除文字列/表示形式辞書172に登録されていなければ(ステップS33のNO),表示形式対応文字列削除短縮処理部142は,カウンタiをインクリメントし(ステップS34),ステップS31に戻って次の文字列Sによる探索に移る。
文字列Sから始まる文字列が削除文字列/表示形式短縮形辞書172に登録されていれば(ステップS33のYES),表示形式対応文字列削除短縮処理部142は,削除文字列/表示形式辞書172から文字列Sで始まる文字列SSを1つ抽出する(ステップS35)。このとき,表示形式対応文字列削除短縮処理部142は,削除文字列/表示形式辞書172から未処理の文字列SSが抽出されたか(ステップS36),すなわち削除文字列/表示形式辞書172に登録された文字列Sで始まるすべての文字列SSについて処理が終了したかを判定する。
削除文字列/表示形式辞書172から未処理の文字列SSが抽出されなかった場合には(ステップS36のNO),表示形式対応文字列削除短縮処理部142は,カウンタiをインクリメントし(ステップS34),ステップS31に戻って次の文字列Sによる探索に移る。
削除文字列/表示形式辞書172から未処理の文字列SSが抽出された場合には(ステップS36のYES),表示形式対応文字列削除短縮処理部142は,抽出された文字列SSが識別子に含まれているかを判定する(ステップS37)。
文字列SSが識別子に含まれていなければ(ステップS37のNO),表示形式対応文字列削除短縮処理部142は,ステップS35に戻って次の文字列SSの処理に移る。
文字列SSが識別子に含まれていれば(ステップS37のYES),表示形式対応文字列削除短縮処理部142は,識別子内の文字列SSを削除し,短縮を示す記号“…”を付加することにより(ステップS38),短縮形識別子を生成し,処理を終了する。
表示形式対応文字列削除短縮処理部142は,削除文字列/表示形式辞書172から削除された文字列SSに対応する表示形式の情報を取得し,生成された短縮形識別子と識別子から削除された表示形式との対応を,短縮形識別子生成部14に返す。
なお,識別子が関数名であり,表示形式対応文字列削除短縮処理部142が削除文字列/表示形式辞書172を用いて識別子からモジュール名を削除する場合には,識別子短縮処理を簡略化することもできる。モジュール名は,識別子の先頭に出現することが多い。そのため,表示形式対応文字列削除短縮処理部142は,削除文字列/表示形式辞書172に定義された文字列を1つずつ取り出し,取り出された文字列が識別子の先頭に含まれているかをチェックするだけで,識別子から削除する文字列を見つけることができる。
このように,あらかじめ識別子から削除する文字列と,識別子の表示形式との対応が定義された削除識別子/表示形式辞書172を用いて,識別子に含まれる文字列を削除し,削除された文字列に対応する表示形式で短縮形識別子を表示領域に表示することにより,ユーザが識別しやすい短縮形識別子の表示ができる。
(3)区切り文字を利用した識別子の短縮方法
ユーザは,辞書定義部15により,例えば図2(C)に示すような,識別子の区切りとなる文字の定義情報である区切り文字辞書173を用意する。このとき,ユーザは,識別子の対象分野に応じた区切り文字を定義する。例えば,識別子がファイル名である場合に,Windows(登録商標)では“¥”が,UNIX(登録商標)では“/”がフォルダ・ディレクトリの区切り文字として使用される。区切り文字辞書173で区切り文字ごとに対象分野が指定されるようにしてもよい。システム側にあらかじめ短縮形辞書171が用意されている場合には,区切り文字辞書173には,一般的に単語などの区切りに用いられる文字が区切り文字として定義されている。
なお,区切り文字辞書173で定義される区切り文字には,区切りとなる文字列も含まれる。例えば,図2(C)に示す区切り文字辞書173でも定義されている文字列“->”は,右矢印を示す区切りとなる文字列として,よく使用される。
短縮形識別子生成部14において,区切り文字単位短縮処理部143は,区切り文字辞書173に登録されている文字列が識別子に含まれている場合に,その区切り文字で分けられる文字列の単位で,識別子に含まれる文字列を削除する。
例えば,区切り文字単位短縮処理部143は,識別子に区切り文字辞書173で定義された同一の区切り文字が複数含まれている場合に,最後の区切り文字以降の文字列だけを取り出して,短縮形識別子とする。また,区切り文字単位短縮処理部143は,識別子の最後の区切り文字以降の文字列だけでは,同時に表示する他の識別子と識別できない場合に,さらに前にある区切り文字を探し,検出された区切り文字以降の文字列を短縮形文字列とする。
具体的には,区切り文字単位短縮処理部143は,識別子が表示領域に収まらない場合に,その識別子の中に区切り文字辞書173で定義された区切り文字が含まれているかを調べる。区切り文字単位短縮処理部143は,識別子の最後から調べて最初に出現した区切り文字から,識別子の最後までの文字列を取り出す。区切り文字単位短縮処理部143は,同時に表示するすべての識別子に対して同様の処理を行う。
取り出された文字列が他の識別子のものと識別できない識別子があれば,区切り文字単位短縮処理部143は,その識別子について,さらに次の区切り文字を識別子の後ろから検索し,見つかった区切り文字から最後までの文字列を取り出す。区切り文字単位短縮処理部143は,取り出された文字列が他の識別子のものと識別できない識別子について,識別できる文字列が得られるまで,同じ処理を繰り返す。
例えば,表示領域に表示する識別子として,最後の区切り文字以降の文字列が“java”である識別子が,識別子“/opt/FJSVawjbk/jdk14/bin/java ”の1つだけであるものとする。このとき,区切り文字単位短縮処理部143は,その識別子の短縮形識別子として,文字列“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”の3つであるものとする。このとき,区切り文字単位短縮処理部143は,3個の識別子を識別するために,次に示すように,最後から3個目の区切り文字以降の文字列を,短縮形文字列とする。
識別子“/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”は,登録商標である。
図8は,本実施の形態の区切り文字単位短縮処理部による区切り文字辞書を用いた識別子短縮処理フローチャートである。
図8に示す識別子短縮処理フローチャートは,表示領域に表示する識別子をまとめて短縮する処理のフローチャートである。
区切り文字単位短縮処理部143は,短縮形識別子の生成に成功した場合にのみ,短縮形識別子を短縮形識別子生成部14に返す。短縮形識別子生成部14では,返された短縮形識別子が表示領域に収まるかどうかを調べ,表示領域に収まらなければ,別の短縮方法で短縮形識別子の短縮を試みる。また,短縮形識別子生成部14は,区切り文字単位短縮処理部143により識別子が短縮できなかった場合に,別の短縮方法で元の識別子の短縮を試みる。
区切り文字単位短縮処理部143は,区切り文字辞書173から,表示する識別子の対象分野で使用される区切り文字SSを取得する(ステップS40)。図8に示すフローチャートでは,区切り文字単位短縮処理部143は,表示対象の識別子内で使用される区切り文字が,分野ごとに決まっているものとして処理を行う。例えば,区切り文字単位短縮処理部143は,識別子がファイル名である場合に,Windows(登録商標)では“¥”を,UNIX(登録商標)では“/”を区切り文字として,処理を行う。なお,区切り文字単位短縮処理部143が,対象分野ごとに決まった区切り文字で処理を行うのではなく,区切り文字辞書173に定義された区切り文字で順番に処理を行っていくようにしてもよい。
区切り文字単位短縮処理部143は,表示領域に表示する識別子の個数n分の配列num()を用意する。区切り文字単位短縮処理部143は,n個の配列num()の各要素を,−1に初期化する(ステップS41)。また,区切り文字単位短縮処理部143は,カウンタiを1に初期化する(ステップS41)。配列num()は,識別子ごとの区切り文字SSの出現回数や,その時点で処理対象となっている区切り文字が識別子の前の方から何番目の区切り文字であるかを示す。
区切り文字単位短縮処理部143は,表示領域に表示する識別子のリストから,i番目の識別子を抽出する(ステップS42)。区切り文字単位短縮処理部143は,num(i)の値によって処理を判断する(ステップS43)。
num(i)の値が0である場合には(ステップS43のnum(i)=0),区切り文字単位短縮処理部143は,カウンタiをインクリメントし(ステップS44),ステップS42に戻って次の識別子の処理に移る。num(i)の値が0であるときは,該当識別子に区切り文字SSが使われていないときか,または該当識別子を区切り文字SS以降の文字列に短縮できなかったときである。
num(i)の値が0より小さい場合(ステップS43のnum(i)<0),すなわちnum(i)の値が初期値−1である場合には,区切り文字単位短縮処理部143は,該当識別子内の区切り文字SSの出現回数をチェックし,得られた区切り文字SSの出現回数をnum(i)に代入する(ステップS45)。num(i)の値が初期値−1であるときは,まだ該当識別子内の区切り文字SSの出現回数が分からないときである。区切り文字単位短縮処理部143は,num(i)>0であるかを判定する(ステップS46)。num(i)>0でなければ(ステップS46のNO),すなわちnum(i)=0であれば,区切り文字単位短縮処理部143は,カウンタiをインクリメントし(ステップS44),ステップS42に戻って次の識別子の処理に移る。num(i)>0であれば(ステップS46のYES),区切り文字単位短縮処理部143は,次のステップS47の処理に進む。
num(i)の値が0より大きい場合には(ステップS43のnum(i)>0),そのままステップS47の処理に進む。
区切り文字単位短縮処理部143は,該当識別子の前からnum(i)番目に出現する区切り文字SS以降の文字列に,短縮を示す記号“…”を付加することにより(ステップS47),短縮形識別子を生成する。
区切り文字単位短縮処理部143は,カウンタiがnであるか(ステップS48),すなわちその時点で処理中の識別子がリストの最後の識別子であるかを確認する。
カウンタi=nでなければ(ステップS48のNO),すなわちまだ未処理の識別子があれば,区切り文字単位短縮処理部143は,カウンタiをインクリメントし(ステップS44),ステップS42に戻って次の識別子の処理に移る。
カウンタi=nであれば(ステップS48のYES),すなわちリストのすべての識別子の処理が終了していれば,区切り文字単位短縮処理部143は,同じ短縮形識別子が存在するかを確認する(ステップS49)。
同じ短縮形識別子が存在しなければ(ステップS49のNO),区切り文字単位短縮処理部143は,処理を終了する。
同じ短縮形識別子が存在すれば(ステップS49のYES),区切り文字単位短縮処理部143は,同じ短縮形識別子となってしまった識別子について,num(i)の値をデクリメントする(ステップS50)。
区切り文字単位短縮処理部143は,配列num()の全要素が0であるかを判定する(ステップS51)。
配列num()の全要素が0でなければ(ステップS51のNO),区切り文字単位短縮処理部143は,カウンタiを1に初期化し(ステップS52),ステップS42に戻って最初の識別子から再度短縮処理を試みる。なお,同じ短縮形識別子となってしまった識別子についてのみ,区切り文字単位短縮処理部143が再度処理を行うようにしてもよい。
配列num()の全要素が0であれば(ステップS51のYES),区切り文字単位短縮処理部143は,区切り文字SSを用いてすべての識別子を短縮できなかったものとして,処理を終了する。配列num()の全要素が0であるということは,すべての識別子が,区切り文字SSがない識別子または先頭から最初の区切り文字までの文字列でしか一意に識別できない識別子のいずれかであることを示している。
図8に示すフローチャートにおいて,区切り文字単位短縮処理部143は,表示領域に同時に表示するすべての識別子について,他の識別子との識別が可能であるかの判断までをまとめて行っている。図6や図7に示すような他の短縮方法と同様に,区切り文字単位短縮処理部143が,短縮形識別子生成部14から1つずつ識別子を受け取って,短縮形識別子を生成するようにしてもよい。区切り文字単位短縮処理部143は,識別子を1つずつ処理する場合には,他の短縮形識別子と同じになってしまった短縮形識別子についてのみ,再短縮を試みる。このとき,区切り文字単位短縮処理部143は,何番目の区切り文字以降の文字列が抽出されたのかを分かるように,短縮の試行回数も短縮形識別子生成部14に渡す。
なお,本実施の形態では,区切り文字単位短縮処理部143は,区切り文字で分けられた文字列の単位で,識別子の前の方から文字列を削除し,短縮形識別子を生成している。区切り文字単位短縮処理部143が,区切り文字で分けられた文字列の単位で,識別子の中の方の文字列を削除したり,後方の文字列を削除したりするようにしてもよい。
このように,区切り文字が定義された区切り文字辞書173を用いて,識別子に含まれる文字列を,区切り文字で分けられる単位で削除することにより,ユーザが識別しやすい短縮形識別子を生成することができる。識別子は,区切り文字単位で意味があることが多いので,区切り文字単位で文字列を省略した短縮形識別子の表示は,ユーザにとって分かりやすい短縮形識別子の表示となる。
(4)非短縮文字列が指定された場合の識別子の短縮方法
従来の識別子の短縮の方法としては,例えば,次のようなものがある。
・識別子の先頭から,表示可能文字数の範囲内で,他の識別子との識別が可能となる文字列を取り出す。
・識別子の先頭と最後のそれぞれから,表示可能文字数の範囲内で,他の識別子との識別が可能となる文字列を取り出す。
・同時に表示する識別子の先頭あるいは末尾に同じ文字列が付いている場合に,その文字列を削除する。
ただし,従来の識別子の短縮の方法では,意味のある文字列が途中で途切れた形で表示されることがあり,ユーザが分かりにくくなってしまうことがある。本実施の形態による非短縮文字列が指定された場合の識別子の短縮方法では,上記の識別子の短縮方法を含めたさまざまな識別子の短縮方法によって識別子を短縮する際に,指定された文字列を短縮しないことにより,意味のある短縮形識別子を生成する。
ユーザは,短縮を制限する文字列の指定情報を,識別子短縮表示装置10に入力する。または,識別子短縮表示装置10のシステム側で,あらかじめ短縮を制限する文字列の指定情報を保持しておく。
短縮を制限する文字列の指定により,短縮が制限される非短縮文字列は,例えば,
・短縮形辞書171に登録された短縮形文字列
・区切り文字辞書173に登録された区切り文字で分けられた単位の文字列
・非短縮文字列辞書174に登録された文字列
などである。
非短縮文字列辞書174であらかじめ短縮を行わない文字列を指定する場合には,ユーザは,辞書定義部15により,例えば図2(D)に示すような,短縮が禁止された文字列の指定情報である非短縮文字列辞書174を用意する。
短縮形識別子生成部14において,非短縮文字列指定短縮処理部144は,識別子を短縮する際に,識別子に非短縮文字列が含まれているかを調べる。識別子に非短縮文字列が含まれている場合には,非短縮文字列指定短縮処理部144は,短縮形識別子の生成時に識別子から取り出す文字列が,非短縮文字列の部分文字列になっているかを調べる。識別子から取り出す文字列が非短縮文字列の部分文字列である場合には,非短縮文字列指定短縮処理部144は,非短縮文字列を短縮せずにそのまま取り出すようにする。
例えば,“第10回顧客向け展示会−説明資料−小野”,“第10回顧客向け展示会−配布資料−田中”という2つの識別子があり,これらの識別子を表示領域に表示する場合の表示可能文字数が13文字であるものとする。
単純に識別子の先頭と最後からそれぞれ6文字ずつ取り出し,真中に省略を示す“…”を挿入して短縮形識別子を生成すると,2つの識別子は,以下のような短縮形識別子となる。
“第10回顧客…明資料−小野”
“第10回顧客…布資料−田中”
この場合,“説明”と“配布”という文字列が途中で切れてしまっているため,それぞれの識別子が何の識別子であるかがユーザに分かりにくくなってしまう。ここで,非短縮文字列として“説明”と“配布”が非短縮文字列辞書174に登録されていれば,非短縮文字列指定短縮処理部144は,“説明”と“配布”の文字列が途中で切れてしまわないように,例えば,
“第10回顧…説明資料−小野”
“第10回顧…配布資料−田中”
というように識別子を短縮する。
図9,図10は,本実施の形態の非短縮文字列指定短縮処理部による非短縮文字列辞書を用いた識別子短縮処理フローチャートである。
図9,図10に示す識別子短縮処理フローチャートは,表示領域に収まらないある1つの識別子を短縮する処理のフローチャートである。
図9,図10に示すフローチャートでは,識別子の先頭と最後の両側から表示可能な長さいっぱいの文字列を抽出し,短縮形識別子を生成する場合の例を示している。非短縮文字列指定短縮処理部144は,抽出した文字列の中に非短縮文字列辞書174で指定された文字列が存在するかを調べる。短縮形識別子が他の識別子と同じになってしまう場合には,別の短縮方法を試すようにしてもよい。
非短縮文字列指定短縮処理部144は,表示可能文字数nを算出する(ステップS60)。非短縮文字列指定短縮処理部144は,算出された表示可能文字数nから,次の式を用いて,識別子の両端からそれぞれ抽出する文字列の文字数mを算出する(ステップS61)。
抽出文字数m=(n−1)/2
ただし,小数点以下は切り捨てるものとする。
非短縮文字列指定短縮処理部144は,識別子の先頭からm番目の文字とm+1番目の文字とを抽出し,文字列S1 とする(ステップS62)。文字列S1 は,識別子の先頭から抽出する文字列と,識別子から省略する文字列との境界部分の文字列となる。
非短縮文字列指定短縮処理部144は,識別子の先頭からl−m番目の文字とl−m+1番目の文字とを抽出し,文字列S2 とする(ステップS63)。lは,識別子の文字数である。文字列S2 は,識別子の末尾から抽出する文字列と,識別子から省略する文字列との境界部分の文字列となる。
非短縮文字列指定短縮処理部144は,文字列S1 を含む文字列が,非短縮文字列辞書174に登録されているか否かを判定する(ステップS64)。
文字列S1 を含む文字列が非短縮文字列辞書174に登録されていなければ(ステップS64のNO),非短縮文字列指定短縮処理部144は,先頭から抽出する文字列と識別子から省略する文字列との境界部分に非短縮文字列がないものと判断し,識別子の先頭からm番目までの文字列を抽出して文字列S11とし(ステップS65),ステップS69の処理に進む。
文字列S1 を含む文字列が非短縮文字列辞書174に登録されていれば(ステップS64のYES),非短縮文字列指定短縮処理部144は,非短縮文字列辞書174から文字列S1 を含む文字列SS1 を1つ抽出する(ステップS66)。このとき,非短縮文字列指定短縮処理部144は,非短縮文字列辞書174から未処理の文字列SS1 が抽出されたか(ステップS67),すなわち非短縮文字列辞書174に登録された文字列S1 を含むすべての文字列SS1 について処理が終了したかを判定する。
非短縮文字列辞書174から未処理の文字列SS1 が抽出されなかった場合には(ステップS67のNO),非短縮文字列指定短縮処理部144は,先頭から抽出する文字列と識別子から省略する文字列との境界部分に非短縮文字列がないものと判断し,識別子の先頭からm番目までの文字列を抽出して文字列S11とし(ステップS65),ステップS69の処理に進む。
非短縮文字列辞書174から未処理の文字列SS1 が抽出された場合には(ステップS67のYES),非短縮文字列指定短縮処理部144は,抽出された文字列SS1 が識別子に含まれているかを判定する(ステップS68)。
文字列SS1 が識別子に含まれていなければ(ステップS68のNO),非短縮文字列指定短縮処理部144は,ステップS66に戻って次の文字列SS1 の処理に移る。
文字列SS1 が識別子に含まれていれば(ステップS68のYES),非短縮文字列指定短縮処理部144は,先頭から抽出する文字列と識別子から省略する文字列との境界部分に非短縮文字列が存在すると判断し,文字列S11を生成せずにステップS69の処理に進む。
非短縮文字列指定短縮処理部144は,文字列S2 を含む文字列が,非短縮文字列辞書174に登録されているか否かを判定する(ステップS69)。
文字列S2 を含む文字列が非短縮文字列辞書174に登録されていなければ(ステップS69のNO),非短縮文字列指定短縮処理部144は,末尾から抽出する文字列と識別子から省略する文字列との境界部分に非短縮文字列がないものと判断し,識別子のl−m+1番目から最後までの文字列を抽出して文字列S22とし(ステップS70),ステップS74の処理に進む。
文字列S2 を含む文字列が非短縮文字列辞書174に登録されていれば(ステップS69のYES),非短縮文字列指定短縮処理部144は,非短縮文字列辞書174から文字列S2 を含む文字列SS2 を1つ抽出する(ステップS71)。このとき,非短縮文字列指定短縮処理部144は,非短縮文字列辞書174から未処理の文字列SS2 が抽出されたか(ステップS72),すなわち非短縮文字列辞書174に登録された文字列S2 を含むすべての文字列SS2 について処理が終了したかを判定する。
非短縮文字列辞書174から未処理の文字列SS2 が抽出されなかった場合には(ステップS72のNO),非短縮文字列指定短縮処理部144は,末尾から抽出する文字列と識別子から省略する文字列との境界部分に非短縮文字列がないものと判断し,識別子のl−m+1番目から最後までの文字列を抽出して文字列S22とし(ステップS70),ステップS74の処理に進む。
非短縮文字列辞書174から未処理の文字列SS2 が抽出された場合には(ステップS72のYES),非短縮文字列指定短縮処理部144は,抽出された文字列SS2 が識別子に含まれているかを判定する(ステップS73)。
文字列SS2 が識別子に含まれていなければ(ステップS73のNO),非短縮文字列指定短縮処理部144は,ステップS71に戻って次の文字列SS2 の処理に移る。
文字列SS2 が識別子に含まれていれば(ステップS73のYES),非短縮文字列指定短縮処理部144は,末尾から抽出する文字列と識別子から省略する文字列との境界部分に非短縮文字列が存在すると判断し,文字列S22を生成せずにステップS74の処理に進む。
非短縮文字列指定短縮処理部144は,文字列S11,文字列S22の有無を判定する(ステップS74)。
文字列S11と文字列S22がともにある場合には(ステップS74のS11:あり,S22:あり),識別子の両端から抽出した文字列に非短縮文字列が存在しない。このような場合には,非短縮文字列指定短縮処理部144は,文字列S11と文字列S22とを短縮を示す記号“…”で連結したものを短縮形識別子とし(ステップS75),処理を終了する。
文字列S11があるが,文字列S22がない場合には(ステップS74のS11:あり,S22:なし),非短縮文字列指定短縮処理部144は,識別子の後ろの方にある非短縮文字列を残すように,短縮文字列を生成する。すなわち,非短縮文字列指定短縮処理部144は,文字列S11の最後から(非短縮文字列SS2 の長さ−1)個の文字を削除した文字列と,非短縮文字列SS2 が出現してから識別子の最後までの文字列とを短縮を示す記号“…”で連結したものを短縮形識別子とし(ステップS76),処理を終了する。
文字列S11がないが,文字列S22がある場合には(ステップS74のS11:なし,S22:あり),非短縮文字列指定短縮処理部144は,識別子の前の方にある非短縮文字列を残すように,短縮文字列を生成する。すなわち,非短縮文字列指定短縮処理部144は,識別子の先頭から非短縮文字列SS1 までの文字列と,文字列S22の先頭から(非短縮文字列SS1 の長さ−1)個の文字を削除した文字列とを短縮を示す記号“…”で連結したものを短縮形識別子とし(ステップS77),処理を終了する。
このように,識別子の一方の側の抽出文字列にのみ非短縮文字列が存在する場合には,非短縮文字列指定短縮処理部144は,非短縮文字列が存在しない側の抽出文字列を短くすることによって,非短縮文字列を残すように識別子を短縮する。
文字列S11と文字列S22がともにない場合には(ステップS74のS11:なし,S22:なし),識別子の両端の抽出文字列に非短縮文字列が存在する。このような場合には,非短縮文字列指定短縮処理部144は,非短縮文字列が途中で切れないようにするために,非短縮文字列が削除された短縮形識別子を生成する。すなわち,短縮文字列指定短縮処理部144は,先頭から非短縮文字列SS1 が出現するまでの文字列と,非短縮文字列SS2 の次から識別子の最後までの文字列とを短縮を示す記号“…”で連結したものを短縮形識別子とし(ステップS78),処理を終了する。なお,この場合には,削除する文字数をカウントし,可能な限りどちらかの側の非短縮文字列を短縮形識別子に含めるようにしてもよい。
このように,非短縮文字列辞書174等を用いて,識別子に含まれる非短縮文字列を短縮しないように,識別子を短縮することにより,ユーザが識別しやすい短縮形識別子を生成することができる。
図11は,本実施の形態による短縮形識別子リストの例を示す図である。
図11に示す短縮形識別子リストには,短縮形識別子生成部14が短縮を行った識別子ごとに,短縮する前の識別子と,短縮形識別子との対応が記録されている。また,図11に示す短縮形識別子リストには,上記の(1)〜(4)のどの短縮方法で短縮形識別子が生成されたかを示す情報や,上記の(2)の方法で短縮された場合には短縮形識別子をどのように表示するかを示す表示形式の情報なども記録されている。
短縮形識別子生成部14は,図11に示すような短縮形識別子リストを結果として表示部13に返す。
表示部13は,表示領域に収まらない識別子については,図11に示すような短縮形識別子リストを参照して,表示領域に短縮形識別子を表示する。表示形式が指定されている短縮形識別子については,表示部13は,指定された表示形式で短縮形識別子を表示する。
図12は,本実施の形態による長い識別子の短縮表示例を示す図である。
本実施の形態によって,例えば,“20080220133816013216_eventannex1 ”,“20080220133816013216_eventannex2 ”いう名前の2つのファイルについては,図12に示すように,それぞれ“…eventannex1 ”,“…eventannex2 ”という短縮形識別子が表示領域に表示される。これは,区切り文字として“_”が区切り文字辞書173に定義されており,短縮形識別子生成部14が区切り文字辞書173の定義に従って識別子を短縮した場合の例である。
また,本実施の形態によって,例えば,“ブラッシュアップ会結果0706”,“ブラッシュアップ会結果0806”いう名前の2つのファイルについては,図12に示すように,それぞれ“BU…会結果0706”,“BU…会結果0806”という短縮形識別子が表示領域に表示される。これは,文字列“ブラッシュアップ”の短縮形文字列として“BU”が短縮形辞書171に定義されており,短縮形識別子生成部14が短縮形辞書171の定義に従って識別子を短縮した場合の例である。
図13に示す従来の長い識別子の短縮表示と比較すると,図12に示す本実施の形態による長い識別子の短縮表示では,それぞれの短縮形識別子が,他の短縮形識別子との区別が可能であり,かつユーザにとって何の識別子であるかが分かりやすい表示となっている。
以上説明した識別子短縮表示装置10による処理は,コンピュータが備えるCPU,メモリ等のハードウェアとソフトウェアプログラムとにより実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも,ネットワークを通して提供することも可能である。
以上,本実施の形態について説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。
例えば,本実施の形態による識別子短縮表示装置10は,上述の(1)〜(4)の短縮方法を実行する機能をすべて備えているが,上述の(1)〜(4)の短縮方法を実行する機能のうち少なくともいずれか1つの機能を備えた識別子短縮表示装置10であってもよい。
また,例えば,システムで扱っている識別子の全体に対して統一した識別子の短縮を行うようにしてもよいし,識別子の表示を行うたびに表示領域への表示対象となる識別子だけを短縮するようにしてもよい。前者には,どのような画面を開いたときでも,同じ識別子は同じ短縮形識別子で表示できるという利点がある。後者には,識別子の表示を行うたびに表示領域のサイズに合わせた最良の短縮形識別子が表示できるという利点がある。