(57)【要約】      （修正有）【課題】１つ以上のプロパティを有するクラスのプロパティ値を編集する際に、ユーザの意図を考慮した柔軟な配置でプロパティ列を表示可能にする情報編集支援技術を提供する。【解決手段】操作情報抽出部１０５は、入力受付部１０２が入力を受け付けた各種操作の内容を抽出し、所定の種類の操作に関する操作情報を生成してこれを操作対象のクラスと対応付けて操作情報記憶部１０６に記憶させる。配置情報生成部１０７は、操作情報を用いて、プロパティ列の配置を決定し、当該配置を示す配置情報を生成してこれを操作対象のクラスと対応付けて配置情報記憶部１０８に記憶させる。表示データ生成部１０４は、配置情報によって示される配置で、操作対象のクラスの有するプロパティ列を表示装置１０１に表示させるための表示データを生成する。【選択図】図２
2010157004.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のプロパティを有するクラスについて、当該クラスのインスタンスデータを編集する手段として、当該プロパティをヘッダとし、当該プロパティの値であるプロパティ値をデータとする複数のプロパティ列からなるインスタンスデータを表示するための情報編集支援装置であって、
ユーザの操作の入力を受け付ける入力受付部と、
入力が受け付けられた前記操作が前記プロパティ値の編集に関する操作及び前記プロパティ値の参照に関する操作のうち少なくとも一方の操作である場合、当該操作に関連する操作情報を当該操作に関連するプロパティが属するクラスと対応付けて生成する操作情報生成部と、
前記操作情報を用いて前記クラスの有する各プロパティの値がプロパティ毎に並ぶ各プロパティ列の配置を決定する配置決定部と、
決定された各プロパティ列の配置を示す配置情報を生成する配置情報生成部と、
前記配置情報を前記クラスと対応付けて記憶する配置情報記憶部と、
前記配置情報に基づいて、前記クラスの有する前記プロパティ列を表示させるための表示データを生成する表示データ生成部とを備える
ことを特徴とする情報編集支援装置。
【請求項２】
前記配置決定部は、前記操作情報を用いて、前記複数のプロパティ列の移動の操作毎に行なわれ得た前記プロパティ値の編集に関する操作及び前記プロパティ値の参照に関する操作のうち少なくとも一方の操作に応じて、前記クラスに属する各々の前記プロパティのスコアを計算するスコア計算部を有し、前記スコアを用いて、前記クラスが有する各前記プロパティ列の配置を決定する
ことを特徴とする請求項１に記載の情報編集支援装置。
【請求項３】
複数の前記クラスを構成要素とする階層構造を有し、上位のクラスが有するプロパティがその下位のクラスに継承されるオブジェクト指向に従った辞書情報を記憶する辞書記憶部を更に備え、
前記表示データ生成部は、前記辞書情報を用いて前記表示データを生成する
ことを特徴とする請求項１又は２に記載の情報編集支援装置。
【請求項４】
前記辞書情報は、前記クラス間の階層関係及び各前記クラスが有するプロパティを特定可能に示し、
前記辞書情報を用いて、前記クラスが有する全部又は一部のプロパティの各前記プロパティ値を含むインスタンスを前記複数のプロパティ列で表示するインスタンステーブルを生成するテーブル生成部を更に備え、
前記表示データ生成部は、前記配置情報に基づいて、前記インスタンステーブルを前記表示装置に表示させるための前記表示データを生成する
ことを特徴とする請求項３に記載の情報編集支援装置。
【請求項５】
前記入力受付部は、操作対象のクラスを指定する入力を更に受け付け、
前記表示データ生成部は、指定された前記クラスに対応付けられた前記配置情報が前記配置情報記憶部に記憶されている場合に、当該当該配置情報によって示されるプロパティ列の配置で前記インスタンステーブルを前記表示装置に表示させるための前記表示データを生成する
ことを特徴とする請求項４に記載の情報編集支援装置。
【請求項６】
前記表示データ生成部は、指定された前記クラスに対応付けられた前記配置情報が前記配置情報記憶部に記憶されていない場合であって、当該クラスの上位のクラスに対応付けられた前記配置情報が前記配置情報記憶部に記憶されている場合、当該配置情報によって示されるプロパティ列の配置で前記インスタンステーブルを前記表示装置に表示させるための前記表示データを生成する
ことを特徴とする請求項５に記載の情報編集支援装置。
【請求項７】
指定された前記クラスについて前記インスタンステーブルにおける前記プロパティ値の編集状況を抽出する編集状況抽出部を更に備え、
前記配置情報記憶部は、前記クラスに対して複数の前記配置情報を記憶しており、
前記表示データ生成部は、指定された前記クラスに対応付けられた前記配置情報記憶部に記憶された前記配置情報の中から、前記インスタンステーブルに記憶された各インスタンスの編集状況を取得し、当該状況と前記配置情報とを照らし合わせて以降の操作を推定することで、編集状況に適したプロパティ列の配置で前記インスタンステーブルを前記表示装置に表示させるための前記表示データを生成する
ことを特徴とする請求項５又は６に記載の情報編集支援装置。
【請求項８】
前記辞書情報は、前記プロパティの属するグループを更に示し、
前記配置決定部は、前記操作情報と、前記プロパティのグループとを用いて、前記クラスの有する各前記プロパティ列の配置を決定する
ことを特徴とする請求項７に記載の情報編集支援装置。
【請求項９】
前記インスタンステーブルには、前記インスタンスを識別するためのキー情報と、当該インスタンステーブルの中で当該インスタンスのプロパティ値が他のインスタンスの当該プロパティ値と重複しないことを規定する一意性制約情報又は各インスタンスが必ずプロパティ値を持つことを規定するNOT NULL制約情報とのうち少なくとも１つの情報が設定されており、
前記配置決定部は、前記操作情報及び前記インスタンステーブルに設定された前記情報を用いて、前記クラスの有する各前記プロパティ列の配置を決定する
ことを特徴とする請求項５乃至８のいずれか一項に記載の情報編集支援装置。
【請求項１０】
前記操作情報に関連するプロパティとクラスとを対応付けて記憶する操作情報記憶部を更に備える
ことを特徴とする請求項１乃至９いずれか一項に記載の情報編集支援装置。
【請求項１１】
前記操作情報記憶部は、前記クラスに対して複数の前記操作情報を記憶する
ことを特徴とする請求項１０に記載の情報編集支援装置。
【請求項１２】
前記ユーザを識別するユーザ情報と、当該ユーザが属するロールを示すロール情報とを対応付けて記憶するユーザ情報記憶部を更に備え、
前記入力受付部は、前記ユーザ情報の入力を受け付け、
前記操作情報記憶部は、前記操作情報と、前記クラスと、前記ロール情報とを対応付けて記憶する
ことを特徴とする請求項１乃至１１のいずれか一項に記載の情報編集支援装置。
【請求項１３】
前記配置決定部は、前記ロール情報に対応付けられて前記操作情報記憶部に記憶された前記操作情報を用いて、前記クラスの有する各前記プロパティ列の配置を決定する
ことを特徴とする請求項１２に記載の情報編集支援装置。
【請求項１４】
前記ユーザを識別するユーザ情報と、当該ユーザが属するグループを示すグループ情報とを対応付けて記憶するグループ情報記憶部を更に備え、
前記入力受付部は、前記ユーザ情報の入力を受け付け、
前記操作情報記憶部は、前記操作情報と、前記クラスと、前記グループ情報とを対応付けて記憶する
ことを特徴とする請求項１乃至１２のいずれか一項に記載の情報編集支援装置。
【請求項１５】
前記配置情報生成部は、クエリ形式で表現される前記配置情報を生成する
ことを特徴とする請求項１乃至１４のいずれか一項に記載の情報編集支援装置。
【請求項１６】
前記クラスが有する全てのプロパティの各前記プロパティ値を含みユーザの操作に応じて編集可能なインスタンスを前記複数のプロパティ列で表示する表示装置を更に備える
ことを特徴とする請求項１乃至１１いずれか一項に記載の情報編集支援装置。
【請求項１７】
前記プロパティ値の参照に関する操作は、前記プロパティ列の移動及び前記表示装置における表示範囲の変更のうち少なくとも１つであり、
前記操作情報生成部は、前記操作が前記プロパティ列の移動に関する操作である場合、操作対象のプロパティ列と、当該プロパティ列の前及び後のうち少なくとも一方のプロパティ列と、移動後に前記表示範囲に含まれるプロパティ列とを示す操作情報を生成し、前記操作が前記プロパティ値の編集に関する操作である場合、操作対象のプロパティ列を示す操作情報を生成し、前記操作が前記表示範囲の変更に関する操作である場合、前記表示範囲に含まれるプロパティ列及びその配置を示す操作情報を生成する
ことを特徴とする請求項１６に記載の情報編集支援装置。
【請求項１８】
１つ以上のプロパティを有するクラスについて、当該クラスのインスタンスデータを編集する手段として、当該プロパティをヘッダとし、当該プロパティの値であるプロパティ値をデータとする複数のプロパティ列からなるインスタンスデータを表示するための情報編集支援装置で実行される情報編集支援方法であって、
前記情報編集支援装置は、入力受付部と、操作情報生成部と、配置決定部と、配置情報生成部と、配置情報記憶制御部と、表示データ生成部とを備え、
前記入力受付部が、ユーザの操作の入力を受け付ける入力受付ステップと、
前記操作情報生成部が、入力が受け付けられた前記操作が前記プロパティ値の編集に関する操作及び参照に関する操作のうち少なくとも一方の操作である場合、当該操作に関連する操作情報を当該操作に関連するプロパティが属するクラスと対応付けて生成する操作情報生成ステップと、
前記配置決定部が、前記操作情報を用いて前記クラスの有する各プロパティの値がプロパティ毎に並ぶ各プロパティ列の配置を決定する配置決定ステップと、
前記配置情報生成部が、決定された各プロパティ列の配置を示す配置情報を生成する配置情報生成ステップと、
前記配置情報記憶制御部が、前記配置情報を前記クラスと対応付けて第２記憶部に記憶させる順序記憶制御ステップと、
前記表示データ生成部が、前記配置情報に基づいて、前記クラスの有する前記プロパティ列を表示させるための表示データを生成する表示データ生成ステップとを含む
ことを特徴とする情報編集支援方法。
【請求項１９】
請求項１８に記載の情報編集支援方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報編集支援装置、方法及びプログラムに関する。
【背景技術】
【０００２】
オブジェクト指向では、クラスを構成要素とする階層構造を有し、当該階層構造において下位のクラスが上位のクラスのプロパティを継承する仕組みを有する。各クラスには、当該クラスの実体を表すデータが対応付けられており、一般に個々のデータをインスタンスと呼ぶ。インスタンスは、クラスが有するプロパティとその値とのペアを最小要素として、そのペアの組み合わせでデータとして表現される。
【０００３】
工業製品や部品の電子カタログに関する国際規格であるISO13584（ＰＬＩＢ）もオブジェクト指向的に下位のクラスが上位のクラスのプロパティを継承するデータ構造を有する。ＰＬＩＢでは、ユニークなＩＤを表す「ＢＳＵコード」や「推奨名称」などクラス及びプロパティのスキーマが定義されており、これらに従って各クラスや各プロパティのメタデータが記述される。このようにして記述されたクラス及びプロパティの情報は辞書と呼ばれ、この辞書に従ってカタログが記述される。
【０００４】
ユーザがクラスのインスタンスを編集したり閲覧したりする場合、その一覧性や操作性の観点から、列毎に各種のプロパティが配置され行毎に各列にインスタンスを配して対応するプロパティの値であるインスタンスが記述される複数のプロパティ列からなる表を、インタフェースとして表示する場合が多い。特に、記述や閲覧するインスタンスの数が多くなるほど、その利点は大きくなる。ここで、各列はプロパティのＩＤなど互いを一意に識別できるものを見出し、さらにプロパティの名称やデータ型などの付加情報を含めるなどして構成される。
【０００５】
上述のISO13584でも、その分冊であるISO/TS13584-35で、複数のプロパティ列からなる表形式のインタフェースが規格化されている。ISO/TS13584-35では、メタデータやスキーマを記述するヘッダセクションと、スキーマに従って値を記述するデータセクションとから構成されるシートで、辞書やインスタンスを表現する。ここで、ヘッダセクションの各列には、各列を識別するための見出しとして少なくともプロパティのＩＤが付与される。
【０００６】
一般に、複数のプロパティ列からなる表をインタフェースとしてデータを表示するアプリケーションでは、列の配置が物理的又は論理的に制限されていない限り、ユーザはデータの編集前、編集中及び編集後のそれぞれの過程で自由に列の配置を変更することができる。この時、ユーザはポインティングデバイスなどを利用して列全体をドラッグし、所定の位置にドロップする。また、一部のアプリケーションでは列の「切り取り」や「貼り付け」で、同様のオペレーションを実現している。ここで、いくつかのアプリケーションでは、１度のオペレーションで複数の列を移動することができる。この場合、いくつかのアプリケーションでは、物理的に離れた位置に表示される列を選択することができる。これにより、値を直接編集する列や関連する他の列を編集の過程で表示領域に適宜移動することで、画面を何度もスクロールするなどのオペレーションが不要になる。このため、ユーザの負担を減らすことができ、操作効率の大幅な向上が期待できる。
【０００７】
列の配置が物理的又は論理的に規定されていない場合、ファイルやデータベースなどで永続化されたデータを読み込んで複数のプロパティ列からなる表で表示する際に、何らかの方法で配置が決定される。例えば、表計算アプリケーションでファイルからデータを読み込んだ場合には、ファイル中の物理的な位置情報を利用して、データが表示される。しかしながら、この配置はユーザにとって必ずしも最適なものとは限らない。例えば、プロパティの識別子の昇順による配置など、固定的な配置で表示した場合、ユーザはデータを表示する度に、その操作の効率化のために参照するプロパティの列を所望の位置に移動する必要があるという問題点がある。また、ワークフロー中で多数のユーザがデータを順次編集していく場合、前のユーザが編集した状態が次のユーザに引き継がれることが多い。この時、ユーザの操作内容ごとに直接編集するプロパティや参照するプロパティが異なると、散在するプロパティを所望の位置に再配置する必要が生じる、という問題点がある。
【０００８】
これに対して、例えば特許文献１では、ユーザがクラス毎に参照するプロパティ及びその配置を設定することで、当該クラスのインスタンスの表示に所望の列の配置を適用する方法が提案されている。しかしながら、特許文献１においては、プロパティの数が増加するほどその操作が煩雑になるという問題点がある。また、ユーザがプロパティの選択や構成を明示的に決定する必要があるため、実際の操作内容をよく理解したユーザ以外には、操作効率の向上のための設定を行うことが難しいという問題点がある。一方、特許文献２では、プロパティに対するアクセス回数を記録し、アクセス回数の大きなものから順に配置する方法が提案されている。
【０００９】
【特許文献１】特開２００４−１７７９９６号公報
【特許文献２】特開２０００−３２２２６０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献２においては、個々のプロパティのアクセスにのみ着目したものであるため、プロパティの値であるインスタンスの編集に際して関連する他のプロパティが存在しても、参照先のプロパティの表示位置をユーザが探し出す必要があるという問題点がある。また、ユーザが行う列の移動操作による配置の変更を考慮していないため、ユーザの意図を考慮した柔軟な配置を行うことが難しいという問題点がある。
【００１１】
本発明は、上記に鑑みてなされたものであって、１つ以上のプロパティを有するクラスのプロパティ値を編集する際に、ユーザの意図を考慮した柔軟な配置でプロパティ列を表示することを容易に実現可能な情報編集支援装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、本発明は、１つ以上のプロパティを有するクラスについて、当該クラスのインスタンスデータを編集する手段として、当該プロパティをヘッダとし、当該プロパティの値であるプロパティ値をデータとする複数のプロパティ列からなるインスタンスデータを表示するための情報編集支援装置であって、ユーザの操作の入力を受け付ける入力受付部と、入力が受け付けられた前記操作が前記プロパティ値の編集に関する操作及び参照に関する操作のうち少なくとも一方の操作である場合、当該操作に関連する操作情報を当該操作に関連するプロパティが属するクラスと対応付けて生成する操作情報生成部と、前記操作情報を用いて前記クラスの有する各プロパティの値がプロパティ毎に並ぶ各プロパティ列の配置を決定する配置決定部と、決定された各プロパティ列の配置を示す配置情報を生成する配置情報生成部と、前記配置情報を前記クラスと対応付けて記憶する配置情報記憶部と、前記配置情報に基づいて、前記クラスの有する前記プロパティ列を表示させるための表示データを生成する表示データ生成部とを備えることを特徴とする。
【００１３】
また、本発明は、１つ以上のプロパティを有するクラスについて、当該クラスのインスタンスデータを編集する手段として、当該プロパティをヘッダとし、当該プロパティの値であるプロパティ値をデータとする複数のプロパティ列からなるインスタンスデータを表示するための情報編集支援装置で実行される情報編集支援方法であって、前記情報編集支援装置は、入力受付部と、操作情報生成部と、配置決定部と、配置情報生成部と、配置情報記憶制御部と、表示データ生成部とを備え、前記入力受付部が、ユーザの操作の入力を受け付ける入力受付ステップと、前記操作情報生成部が、入力が受け付けられた前記操作が前記プロパティ値の編集に関する操作及び参照に関する操作のうち少なくとも一方の操作である場合、当該操作に関連する操作情報を当該操作に関連するプロパティが属するクラスと対応付けて生成する操作情報生成ステップと、前記配置決定部が、前記操作情報を用いて前記クラスの有する各プロパティの値がプロパティ毎に並ぶ各プロパティ列の配置を決定する配置決定ステップと、前記配置情報生成部が、決定された各プロパティ列の配置を示す配置情報を生成する配置情報生成ステップと、前記配置情報記憶制御部が、前記配置情報を前記クラスと対応付けて第２記憶部に記憶させる順序記憶制御ステップと、前記表示データ生成部が、前記配置情報に基づいて、前記クラスの有する前記プロパティ列を表示させるための表示データを生成する表示データ生成ステップとを含むことを特徴とする。
【００１４】
また、本発明は、プログラムであって、上記の情報編集支援方法をコンピュータに実行させる。
【発明の効果】
【００１５】
本発明によれば、１つ以上のプロパティを有するクラスのプロパティ値を編集する際に、ユーザの意図を考慮した柔軟な配置でプロパティ列を表示することが可能になる。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照して、この発明にかかる情報編集支援装置、方法及びプログラムの最良な実施の形態を詳細に説明する。
【００１７】
[実施の形態]
（１）構成
まず、本実施の形態にかかる情報編集支援装置のハードウェア構成について説明する。図１は、本実施の形態において情報編集支援装置として機能するクライアント端末１００のハードウェア構成を例示する図である。クライアント端末１００は、装置全体を制御するＣＰＵ（Central Processing Unit）等の制御部１０１と、各種データや各種プログラムを記憶するＲＯＭ（Read Only Memory）１０４やＲＡＭ１０５（Random Access Memory）等の記憶部と、各種データや各種プログラムを記憶するＨＤＤ（Hard Disk Drive）やＣＤ（Compact Disk）ドライブ装置等の外部記憶部１０７と、これらを接続するバス１０８とを備えており、通常のコンピュータを利用したハードウェア構成となっている。また、クライアント端末１００には、情報を表示する表示部１０３と、ユーザの指示入力を受け付けるキーボードやマウス等の操作部１０２と、外部装置の通信を制御する通信Ｉ／Ｆ（interface）とが有線又は無線により各々接続される。
【００１８】
次に、このようなハードウェア構成において、クライアント端末１００のＣＰＵが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について具体的に説明する。図２は、クライアント端末１００の機能的構成を例示する図である。クライアント端末１００は、入力受付部１０２と、辞書記憶部１０３と、表示データ生成部１０４と、操作情報抽出部１０５と、操作情報記憶部１０６と、配置情報生成部１０７と、配置情報記憶部１０８とを有する。これらの各部のうち、入力受付部１０２と、表示データ生成部１０４と、操作情報抽出部１０５と、配置情報生成部１０７とは、制御部１０１のプログラム実行時にＲＡＭ１０５などの記憶部上に生成されるものである。辞書記憶部１０３と、操作情報記憶部１０６と、配置情報記憶部１０８とは、例えば外部記憶部１０７に記憶されるものである。
【００１９】
辞書記憶部１０３は、上述したクラスを構成要素とする階層構造を有し、クラスの階層及び各クラスが有するプロパティを特定可能に示す辞書情報を記憶している。辞書情報は、具体的には、少なくともクラス間の階層関係を情報として示すクラステーブルと、少なくとも各クラスが有し且つその上位のクラスが有さないプロパティをクラス毎に対応付けた情報を示すプロパティテーブルとを含む。尚、各クラスには、当該クラスを一意に識別可能なクラスＩＤが付与されており、各プロパティには、当該プロパティを一意に識別可能なプロパティＩＤが付与されている。
【００２０】
図３は、クラスを構成要素とする階層構造を概念的に例示する図である。図３では、各クラスにはＣ０１からＣ０６までの各クラスＩＤが各々付与されており、クラスＣ０１からクラスＣ０６までの６個のクラスで階層構造が構成されていることが示されている。それぞれのクラスは、上位である親クラスを矢印の先端とする実線の矢印で結ばれている。図３では、各クラスで１個から３個のプロパティが定義され、その場で利用されていることが示されている。例えば、クラスＣ０１では２つのプロパティＰ０１とＰ０２とが定義され、その場で利用が開始されている。同様に、クラスＣ０２では３つのプロパティＰ０３とＰ０４とＰ０５とが定義されて、その場で利用が開始されている。オブジェクト指向に従い、上位のクラスが有するプロパティは下位のクラスに継承されている。例えば、クラスＣ０２はクラスＣ０１が有するプロパティＰ０１とＰ０２を継承して有している。同様に、クラスＣ０３はクラスＣ０２が有するプロパティＰ０１からＰ０５を継承して有している。
【００２１】
図４は、図３に例示した階層構造に応じて、辞書記憶部１０３で辞書情報として記憶されるクラステーブル３０１及びプロパティテーブル３０２を例示する図である。同図に示されように、クラステーブル３０１は、クラス毎に当該クラスのクラスＩＤと当該クラスの直上のクラスである親クラスのクラスＩＤとを対応付けて記憶する。プロパティテーブル３０２は、プロパティ毎に当該プロパティのプロパティＩＤと当該プロパティを定義し、かつ利用を開始するクラスのクラスＩＤとを対応付けて記憶する。尚、同図において、プロパティテーブル３０２では、上位のクラスから継承されるプロパティを省略しているが、クラステーブル３０１から得られるクラス間の階層関係とプロパティテーブル３０２とから、継承されるプロパティを特定することができる。例えば、クラスＣ０２の有するプロパティはＰ０３〜Ｐ０５であることがプロパティテーブル３０２によって特定することができ、クラスＣ０２の親クラスはＣ０１であることがクラステーブル３０１によって特定することができる。そして、クラスＣ０１の有するプロパティは、Ｐ０１〜Ｐ０２であることがプロパティテーブル３０２によって特定することができる。従って、クラスＣ０２の有するプロパティは、Ｐ０１〜Ｐ０５であることが特定できる。このようにして、クラステーブル３０１及びプロパティテーブル３０２によって、図３に例示した階層構造を完全に特定することができる。
【００２２】
図２の説明に戻る。入力受付部１０２は、入力装置を介して各種操作の入力を受け付ける。また、入力受付部１０２は、入力装置を介して、操作対象のクラスを指定する入力を受け付ける。操作情報抽出部１０５は、入力受付部１０２が入力を受け付けた各種操作の内容を抽出して、所定の種類の操作に関連するプロパティに対する操作情報を生成してこれを、操作対象のクラスのクラスＩＤと対応付けて操作情報記憶部１０６に記憶させる。所定の種類の操作とは、プロパティの値であるプロパティ値の編集及びプロパティ値の参照のうち少なくとも一方に関する操作である。操作情報記憶部１０６は、操作情報抽出部１０５が生成した操作情報を操作対象のクラスと対応付けて記憶する。尚、所定の種類の操作及び操作情報の詳細については後述の動作欄で説明する。配置情報生成部１０７は、操作情報記憶部１０６に記憶された操作情報を用いて、ユーザの操作よって行われ得るプロパティ値の編集及びプロパティ値の参照のうち少なくとも一方に応じて、操作対象のクラスの有するプロパティの値がプロパティ毎に並ぶ各プロパティ列の配置を決定する。そして、配置情報生成部１０７は、決定した配置を示す配置情報を生成してこれを、操作対象のクラスと対応付けて配置情報記憶部１０８に記憶させる。配置情報記憶部１０８は、配置情報生成部１０７が生成した配置情報を、操作対象のクラスと対応付けて記憶する。
【００２３】
表示データ生成部１０４は、操作対象のクラスの有するプロパティのプロパティ列を表示装置１０１に表示させる際に、当該クラスの配置情報が配置情報記憶部１０８に記憶されているか否かに基づいて、当該クラスの有するプロパティ列の配置を決定し、辞書記憶部１０３に記憶された辞書情報を用いて、決定した配置で当該クラスの有する全部又は一部のプロパティ及び当該プロパティの値であるインスタンスを表示装置１０１に表示させるための表示データを生成する。具体的には、配置情報記憶部１０８に当該クラスの配置情報が記憶されている場合は、表示データ生成部１０４は、当該配置情報によって示される配置を、各プロパティ列を表示する際の配置として決定する。配置情報記憶部１０８に当該クラスの配置情報が記憶されていない場合は、表示データ生成部１０４は、所定の方法又は任意の方法により当該プロパティ列の配置を決定する。その後表示データ生成部１０４は、いずれかの場合において決定した配置で当該プロパティ列を表示装置１０１に表示させるための表示データを生成する。表示データの生成については、具体的には、表示データ生成部１０４は、辞書記憶部１０３に記憶された辞書情報を用いて、当該クラスの有するプロパティ及びインスタンスを示すインスタンステーブルを生成し、このインスタンステーブルにおいて示される一部又は全部のプロパティ列を表示装置１０１に表示させるための表示データを生成する。
【００２４】
図５は、インスタンステーブルを例示する図である。図５においては、図３に例示したクラスＣ０３を操作対象として、当該クラスＣ０３のインスタンスを編集するためのインスタンステーブルが例示されている。同図に示されるように、クラスＣ０３が有するプロパティＰ０１からＰ０７までが順に列として配置されている。また、同図に示されるように、プロパティ値が入力されるセルが空白の場合、この値は「NULL」として解釈される。尚、以降、同図に示される各プロパティに対応する各列であり行毎にプロパティ値が示される各列がプロパティ列である。
【００２５】
尚、インスタンステーブルは、プロパティ列の項目として、プロパティ列を識別するためのプロパティＩＤ以外に、人やコンピュータが利用するメタデータを暗黙的又は明示的に含んでいても良い。たとえば、図５の例では、２行目に、リレーショナルデータベースで一般的に利用されているテーブル制御用の情報がヘッダとして付与されている。テーブル制御用の情報としては、例えば、「KEY」キーワード（キー情報）と、「UNIQUE」キーワード（一意性制約）と、「NOT NULL」キーワード（「NOT NULL」制約）とがある。「KEY」キーワードは、インスタンステーブル内の各行に記述されるインスタンスと他の行に記述されるインスタンスとの識別に用いるプロパティを規定するものであり、インスタンステーブルごとに複数の「KEY」プロパティを設定することができる。「UNIQUE」キーワードは、これが設定されたプロパティの各行の値が当該プロパティの他の行の値であるインスタンスと重複しないことを規定するものである。「NOT NULL」キーワードは、各インスタンスに対して、これが設定されたプロパティの値が必須であることを規定するものである。但し、テーブル制御のために記述するキーワードや種類や用途はこれに限るものではなく、他の様々な情報を記述しても良い。また、テーブル制御の他に様々な情報を示すようインスタンステーブルを構成しても良い。また、本実施の形態にかかるクライアント端末１００ではインスタンステーブルによって示される情報の管理形態は限定されず、例えば、情報を個々のファイルに直接設定したり、サーバなどに登録することで複数のアプリケーションで情報を共有したりしても良い。また、クラスの継承関係を利用して上位のクラスに設定された情報を下位のクラスが参照して利用しても良い。
【００２６】
図６は、図５に例示されたインスタンステーブルの一部であり、表示装置１０１の画面に実際に表示される範囲である表示範囲Ｇ１を例示する図である。この例では、インスタンステーブルにおいて示されるプロパティ列のうち、プロパティＰ０１〜Ｐ０３までが一画面の表示範囲Ｇ１として同時に表示されることが示されている。なお、この例は、クラスＣ０３の配置情報が配置情報記憶部１０８に記憶されていない場合に、表示データ生成部１０４が図６の通りプロパティＩＤの昇順で各プロパティ列を表示させるために生成した表示データによって画面に表示される例である。また、ここでは、インスタンスが一つも登録されていないため、プロパティＩＤとテーブル制御情報で構成されるヘッダ以外の情報は表示されていないことが示されている。
【００２７】
（２）動作
次に、本実施の形態にかかるクライアント端末１００の行う処理の手順について説明する。本実施の形態においては、図５に例示したクラスＣ０３のインスタンステーブルにおいて示される一部のプロパティ列を表示装置１０１に表示させて、インスタンスを編集する操作がユーザにより行われる場合を例にして説明する。この場合、まず、操作対象のクラスとしてクラスＣ０３が入力装置を介して指定される。クライアント端末１００は、操作対象のクラスＣ０３の指定の入力を受け付けると、当該クラスＣ０３のインスタンステーブルにおいて示される一部のプロパティ列を表示装置１０１に表示させるべく、表示データ生成部１０４の機能により、辞書記憶部１０３に記憶されている辞書情報を用いて当該クラスＣ０３のインスタンステーブルにおいて示される一部のプロパティ列を表示装置１０１に表示させるための表示データを生成してこれを記憶装置上にロードする。その際に、クライアント端末１００は、操作情報を生成する操作情報抽出処理を行い、生成された操作情報を用いて配置情報を生成する配置情報生成処理を行う。その後、クライアント端末１００は、クラスＣ０３のインスタンステーブルにおいて示される一部のプロパティ列を表示装置１０１に改めて表示させる際に、配置情報生成処理で生成した配置情報を用いた表示を行うことができる。
【００２８】
ここで、まず、操作情報抽出処理の手順について図７を用いて説明する。操作情報抽出部１０５の機能により、クラスＣ０３に対応付けられた配置情報が配置情報記憶部１０８に記憶されているか否かを確認する（ステップＳ６０１）。ここで、クラスＣ０３に対応付けられた配置情報が記憶されていない場合は（ステップＳ６０２：ｎｏ）、クライアント端末１００は、処理を継続して、ステップＳ６０３に進む。ここでは、クラスＣ０３に対応付けられた配置情報が配置情報記憶部１０８に記憶されていないとして以降の説明を続ける。尚、クラスＣ０３に対応付けられた配置情報が記憶されている場合は（ステップＳ６０２：ｙｅｓ）、クライアント端末１００は、処理を終了する。そして、クライアント端末１００は、クラスＣ０３に対応付けられた配置情報に示される配置でクラスＣ０３のインスタンステーブルにおいて示される一部のプロパティ列を表示装置１０１に表示させるための表示データを生成してこれを記憶装置上にロードすることになる。
【００２９】
ステップＳ６０３では、クライアント端末１００は、表示データ生成部１０４の機能により、クラスＣ０３のインスタンステーブルにおいて示される一部のプロパティ列を表示するための表示データをロードしたとき、配置情報生成部１０７の機能により、その時点のプロパティ列の配置を示す配置情報を生成してこれを配置情報記憶部１０８に記憶させる。更に、クライアント端末１００は、当該表示データをロードした時点で表示装置１０１に表示されている表示範囲を抽出し、当該表示範囲内に表示されるプロパティ列に対応するプロパティＩＤをＲＡＭなどの記憶装置に記憶させる（ステップＳ６０４）。
【００３０】
次に、クライアント端末１００は、操作情報抽出部１０５の機能により、表示装置１０１上でユーザがインスタンスを編集する際に行う各種操作のうち、所定の種類の操作について当該操作を示す操作情報を生成しこれを操作情報記憶部１０６に記憶する（Ｓ６０５）。図８は、操作情報を生成する処理の詳細な手順を示すフローチャートである。表示装置１０１に表示されたインスタンステーブルにおいて示される一部のプロパティ列に対して、ユーザが入力装置を介して各種操作を行うと、クライアント端末１００は、入力受付部１０２の機能により、当該操作の入力を受け付け、操作情報抽出部１０５の機能により、当該操作の内容を抽出し（ステップＳ７０１）、当該操作の種類を判定する（ステップＳ７０２）。ここで、クライアント端末１００は、操作の種類が、所定の種類の操作であるか否かを判定することになる。所定の種類の操作には、プロパティ値の編集に関する操作として、以下に説明するように、プロパティ値の編集の操作自体があり、プロパティ値の参照に関する操作として、プロパティ列の移動及び表示範囲の変更の各操作がある。
【００３１】
操作の種類が、プロパティ列の移動である場合（ステップＳ７０２：ｍｏｖｅ）、即ち、あるプロパティ列を他のプロパティ列間に挿入することにより当該プロパティ列を移動させてその配置を変更するものである場合、クライアント端末１００は以下の処理を行う。クライアント端末１００は、移動した全てのプロパティ列についてのプロパティＩＤの順列と、あるプロパティ列が挿入された前後の各プロパティ列についての各プロパティＩＤと、移動後に表示装置１０１に表示されるプロパティ列についてのプロパティＩＤとを示す操作情報を生成してこれを操作対象のクラスＣ０３と対応付けて操作情報記憶部１０６に記憶させる（ステップＳ７０３）。その後クライアント端末１００は、次の操作が入力されるまで待機する。尚、あるプロパティ列が挿入される位置が特定できる場合は、クライアント端末１００は、あるプロパティ列が挿入された前後の各プロパティ列については、前後の各プロパティ列の両方ではなく、前及び後ろのいずれか一方のプロパティ列についてのプロパティＩＤを示すように操作情報を生成するようにしても良い。
【００３２】
図９は、図６に例示したクラスＣ０３のインスタンステーブルにおいて、プロパティＰ０４,Ｐ０５の２つのプロパティ列を、プロパティＰ０１，Ｐ０２のプロパティ列間に移動させた場合の表示範囲Ｇ２を例示する図である。図９の例では、プロパティＰ４，Ｐ５の各プロパティ列の移動により表示装置１０１に表示される表示範囲Ｇ２内のプロパティ列はＰ０１とＰ０４とＰ０５とになる。この場合、ステップＳ７０３では、クライアント端末１００は、移動した全てのプロパティ列についてのプロパティＩＤの順列としてＰ０４，Ｐ０５と、プロパティＰ０４，Ｐ０５の各プロパティ列が挿入された直前および直後のプロパティ列の各プロパティＩＤであるＰ０１，Ｐ０２と、移動後に表示装置１０１に表示されるプロパティ列についてのプロパティＩＤであるＰ０１，Ｐ０４，Ｐ０５とを示す操作情報を生成してこれを操作対象のクラスＣ０３と対応付けて操作情報記憶部１０６に記憶させる。
【００３３】
一方、操作の種類が、プロパティ値を編集するものである場合（ステップＳ７０２：ｅｄｉｔ）、クライアント端末１００は、値を編集したプロパティのプロパティＩＤを抽出し、当該プロパティＩＤと、編集した値の行とを示す操作情報を生成してこれを操作対象のクラスＣ０３と対応付けて操作情報記憶部１０６に記憶させる（ステップＳ７０４）。その後クライアント端末１００は、次の操作が入力されるまで待機する。
【００３４】
図１０は、図９の例でプロパティＰ０１，Ｐ０４，Ｐ０５の１行目及び２行目の各プロパティ値を編集した場合の表示範囲Ｇ３を例示する図である。同図においては、プロパティＰ０１，Ｐ０４，Ｐ０５の各々について１行目及び２行目に編集された値が示されている。この場合、ステップＳ７０４では、クライアント端末１００は、値を編集したプロパティのプロパティＩＤとしてＰ０１，Ｐ０４，Ｐ０５を抽出し、当該Ｐ０１，Ｐ０４，Ｐ０５と、編集したプロパティ値の行である「１行目」及び「２行目」とを示す操作情報を生成してこれを操作対象のクラスＣ０３と対応付けて操作情報記憶部１０６に記憶させる。
【００３５】
また、操作の種類が、プロパティ列の表示範囲を変更するものである場合（ステップＳ７０２：ｓｃｒｏｌｌ）、即ち、インスタンステーブルにおける列方向にスクロールすることにより表示対象のプロパティ列を変更するものである場合、クライアント端末１００は以下の処理を行う。クライアント端末１００は、スクロール後に表示装置１０１に表示されるプロパティ列のプロパティＩＤの順列を抽出し、当該プロパティＩＤを示す操作情報を生成してこれを操作対象のクラスＣ０３と対応付けて操作情報記憶部１０６に記憶させる（ステップＳ７０５）。その後クライアント端末１００は、次の操作が入力されるまで待機する。
【００３６】
図１１は、図１０の例でプロパティＰ０４に対応するプロパティ列をプロパティＰ０７に対応するプロパティ列の直後に移動させた後、プロパティＰ０６,Ｐ０７,Ｐ０４の各プロパティ列が表示されるように列方向へのスクロールによって表示範囲を変更し、更に、プロパティＰ０６,Ｐ０７の１行目の各プロパティ値を編集した場合の表示範囲Ｇ４を示す図である。この場合、ステップＳ７０２では、ｍｏｖｅの場合のステップＳ７０３の処理と、ｅｄｉｔの場合のステップＳ７０４の処理と、ｓｃｒｏｌｌの場合のステップＳ７０５の処理とを全て行うことになる。この場合、ステップＳ７０３では、クライアント端末１００は、移動された全てのプロパティ列についてのプロパティＩＤの順列としてＰ０４と、プロパティＰ０４が挿入された位置の直前のプロパティ列の各プロパティＩＤであるＰ０７と、移動後に表示装置１０１に表示されるプロパティ列についてのプロパティＩＤであるＰ０１，Ｐ０５，Ｐ０３とを示す操作情報を生成してこれを操作対象のクラスＣ０３と対応付けて操作情報記憶部１０６に記憶させる。また、ステップＳ７０４では、クライアント端末１００は、値を編集したプロパティのプロパティＩＤとしてＰ０６，Ｐ０７を抽出し、当該Ｐ０６，Ｐ０７及びそれらの値を編集した行である「１行目」及び「２行目」とを示す操作情報を生成してこれを操作対象のクラスＣ０３と対応付けて操作情報記憶部１０６に記憶させる。更に、ステップＳ７０５では、クライアント端末１００は、スクロール後に表示装置１０１に表示されるプロパティ列のプロパティＩＤの順列としてＰ０６，Ｐ０７，Ｐ０４を抽出し、当該Ｐ０６，Ｐ０７，Ｐ０４を示す操作情報を生成してこれを操作対象のクラスＣ０３と対応付けて操作情報記憶部１０６に記憶させる。尚、これらの操作は一連の操作であるため、クライアント端末１００は、これらの３つの操作情報を１つのデータとして生成してクラスＣ０３と対応付けて操作情報記憶部１０６に記憶させる。
【００３７】
操作の種類が、編集の終了である場合（ステップＳ７０２：ｅｎｄ）、クライアント端末１００は、操作情報抽出処理を終了する。また、操作の種類が、上記（ｍｏｖｅ，ｅｄｉｔ，ｓｃｒｏｌｌ，ｅｎｄ）以外である場合（ステップＳ７０２：ｏｔｈｅｒ）、クライアント端末１００は、次の操作が入力されるまで待機する。
【００３８】
尚、ｍｏｖｅ，ｅｄｉｔ，ｓｃｒｏｌｌ，ｅｎｄ以外に、表示領域の遷移、ユーザが参照しているかどうかを明示的に示すための方法（チェックボタンなど）等の編集操作を含んでもよい。例えば、表形式のデータの中にある値の「検索」機能において、該当のデータを検出した領域に自動的にフォーカスが移動して該当箇所が表示される場合などが表示領域の遷移である。また、検索の機能によって誤ったセルを参照する場合などを考慮し、参照しているかどうかのチェックボタンを導入した場合、同様に操作情報抽出処理を行っても良い。
【００３９】
図１２は、操作情報記憶部１０６で記憶される操作情報を例示する図である。同図に例示される操作情報は、図５に例示したクラスＣ０３のインスタンステーブルにおいてユーザが行った各操作に応じて生成されたものである。各操作は、図９〜１１に示した一連の操作である。このため、これらの操作に関する操作情報が１つのデータとして生成されている。同図の操作情報においては、操作情報抽出部１０５がその内容を抽出した各操作について一行毎に示されている。例えば、「begin」で開始される１行目には、初期状態のプロパティのプロパティＩＤの順列が示されている。「display」で開始される２行目には、表示に関し、表示範囲内にあるプロパティのプロパティＩＤの順列が示されている。「move」で開始される３行目には、移動の操作に関し、移動対象のプロパティ列のプロパティＩＤと当該プロパティが挿入される直前および直後のプロパティ列のプロパティＩＤが示されている。「edit」で開始される各行では、編集の操作に関し、インスタンスが編集されるプロパティのプロパティＩＤ及びその値を編集した行が示されている。
【００４０】
次に、以上のようにして生成して操作情報記憶部１０６に操作対象のクラスＣ０３と対応付けて記憶させた操作情報を用いて配置情報を生成する配置情報生成処理の手順について図１３を用いて説明する。まず、クライアント端末１００は、配置情報生成部１０７の機能により、ユーザが入力装置を介して指定した操作対象のクラスに対応付けられて操作情報記憶部１０６に記憶された操作情報を読み出す（ステップＳ１２０１）。例えば、操作対象としてクラスＣ０３が指定された場合、上記で説明した図１２に例示される操作情報が読み出される。
【００４１】
次に、クライアント端末１００は、読み出した操作情報について、プロパティ列の移動の操作を基本単位として、処理ブロックを抽出する（ステップＳ１２０２）。プロパティ列の移動の操作が連続している場合はそれらを１つの単位としてクライアント端末１００は処理を行う。
【００４２】
次に、クライアント端末１００は、抽出した各処理ブロックに対して、プロパティ列の移動毎に行なわれ得たプロパティ値の編集及びプロパティ値の参照のうち少なくとも一方に応じて各プロパティのスコアを計算するスコア計算処理を行う。具体的には、まず、クライアント端末１００は、スコア計算処理を行っていない処理ブロックがある場合（ステップＳ１２０３：ｙｅｓ）、当該処理ブロックに対してスコア計算処理を行う（ステップＳ１２０４）。スコア計算処理では、クライアント端末１００は、値の編集されたプロパティと、編集の際に値が参照されたであろうプロパティ、即ち、編集の前にプロパティ列の移動や画面のスクロールによって表示装置１０１の画面に表示されたプロパティ列のプロパティとに対して、その頻度に応じてスコアを計算する。そして、クライアント端末１００は、各プロパティに対して計算したスコアをＲＡＭなどの記憶装置に記憶させる（ステップＳ１２０５）。
【００４３】
図１４は、図１２に例示した操作情報について、各処理ブロックで各プロパティに対して計算されるスコアを例示する図である。この例では、スコアの計算の際に重み付けを行うものとする。具体的には、その値が編集された場合にプロパティに「１」の重みを与え、編集されてはいないが値が参照されたであろうプロパティに「０．５」の重みを与えるものとする。最初に抽出される第１処理ブロックは、「move」で開始される３行目から「edit」で開始される８行目までである。当該第１処理ブロックでは、プロパティＰ０１，Ｐ０４，Ｐ０５が画面に表示された状態でそれぞれの値が２回ずつ編集されているため、それぞれのスコアは「２」として計算される。一方、次に抽出される第２処理ブロックは、「move」で開始される９行目から「edit」で開始される１２行目までである。当該第２処理ブロックでは、プロパティＰ０６，Ｐ０７,Ｐ０４が画面に表示された状態で、プロパティＰ０６，Ｐ０７の各値がそれぞれ１回ずつ編集されているため、それぞれのスコアは「１」として計算される。プロパティＰ０４については、その値は編集されていないが、移動によって表示装置１０１の画面に表示されているため、その値が参照されたであろうから、そのスコアは「０．５」として計算される。
【００４４】
このようにして、全ての処理ブロックに対してスコア計算処理を行った場合（ステップＳ１２０３：ｎｏ）、クライアント端末１００は、次いで、以下のようにして配置情報を生成する（ステップＳ１２０６）。
【００４５】
図１５は、ステップＳ１２０６で行う配置情報を生成する処理の詳細な手順を示すフローチャートである。まず、クライアント端末１００は、スコア計算処理で各処理ブロックにおいて計算して記憶したプロパティのスコアのうち、最も高いスコアを当該処理ブロックのスコアとして例えば記憶装置に記憶する（ステップＳ１５０１）。次に、クライアント端末１００は、処理ブロックのスコアのうち、スコアの高い処理ブロックを優先するよう、各処理ブロックの優先順位を決定する（ステップＳ１５０２）。次に、クライアント端末１００は、各プロパティについて、各処理ブロックでのスコアを参照し、最も高いスコアが計算された処理ブロックを当該プロパティの所属先として設定する（ステップＳ１５０３）。最後に、クライアント端末１００は、各処理ブロックの中で、当該処理ブロックに所属するプロパティのスコアの高さに従って、プロパティの列の配置を決定する（ステップＳ１５０４）。そして、クライアント端末１００は、ステップＳ１５０４で決定した、プロパティ列の配置を示す配置情報を生成する（ステップＳ１５０５）。
【００４６】
図１３の説明に戻る。その後、クライアント端末１００は、ステップＳ１２０６のステップＳ１５０５で生成した配置情報を操作対象のクラスと対応付けて配置情報記憶部１０８に記憶させる（ステップＳ１２０７）。
【００４７】
図１６は、図１４に例示したクラスＣ０３の配置情報を例示する図である。図１４で例示したように、クラスＣ０３については、ステップＳ１５０１で、第１処理ブロックについてスコアは「２」と計算され、第２処理ブロックについてスコアは「１」と計算される。このため、ステップＳ１５０２では、この順が当該各処理ブロックの優先順位として決定される。そして、ステップＳ１５０３では、各プロパティの所属先として、プロパティＰ０１，Ｐ０５については第１処理ブロックが決定され、プロパティＰ０６，Ｐ０７については第２処理ブロックが決定される。プロパティＰ０４については、所属先として、第１処理ブロック及び第２処理ブロックの両方の可能性があるが、ここでは、よりスコアの大きい第１処理ブロックとして決定され、第２処理ブロックに近い位置での表示が決定される。プロパティＰ０２，Ｐ０３についてはどの処理ブロックにも所属しないため、当該各プロパティの列の配置は最後尾に決定される。従って、クラスＣ０３については、プロパティ列の配置は、Ｐ０１，Ｐ０５，Ｐ０４，Ｐ０６，Ｐ０７，Ｐ０２，Ｐ０３の順で決定され、当該配置を示す配置情報が操作対象のクラスＣ０３と対応付けられて配置情報記憶部１０８に記憶される。
【００４８】
以上のようにして配置情報記憶部１０８に操作対象のクラスＣ０３と対応付けられて配置情報が記憶されると、次に、操作対象としてクラスＣ０３が指定されて、当該クラスＣ０３の一部のプロパティ列を表示装置１０１に改めて表示させる場合、図７の操作情報抽出処理が行われると、ステップＳ６０２の判定結果が肯定的となる。この場合、クライアント端末１００は、当該クラスＣ０３に対応付けられた配置情報に示される配置でインスタンステーブルにおいて示される一部のプロパティ列を表示装置１０１に表示させるための表示データを生成してこれを記憶装置上にロードする。この結果、ユーザの実際の編集操作に基づいてユーザの操作内容や嗜好などに応じた配置でクラスＣ０３のインスタンステーブルにおいて示される一部のプロパティ列が表示されることになる。即ち、ユーザがインスタンスを編集するのに最適な配置で各プロパティが表示される。
【００４９】
以上のような構成によれば、従来手動で行っていたプロパティの列の配置の設定を自動的に行うことができ、特にプロパティ数が増大した場合に設定にかかるユーザの負荷を大幅に軽減することができる。
【００５０】
また、手動で行っていたプロパティ列の配置の従来の設定方法では、設定内容が必ずしもユーザの実際の操作に適しているわけではないという問題があった。しかし、本実施の形態の構成によれば、ユーザの実際の操作に基づいてプロパティ列の配置が決定されるため、ユーザが意識することなく最適な表示を行うことが可能となる。
【００５１】
また、手動で行っていたプロパティ列の配置の従来の設定方法では、ユーザの編集操作の経験が浅いほど正確な設定を行うことが難しいという問題があった。しかし、本実施の形態の構成によれば、同じ編集操作を行うユーザの間で操作情報を共有可能になり、経験者の信頼性の高い操作情報から、編集内容に適した表示状態を生成することができる。このため、経験の浅いユーザの編集操作の効率の向上やノウハウの継承などが可能となる。
【００５２】
また、プロパティのアクセス回数の大きさに従って行っていたプロパティの列の配置の従来の設定方法では、プロパティの値であるインスタンスの編集に際して関連するプロパティが必ずしも近辺に表示されるわけではないという問題があった。しかし、本実施の形態の構成によれば、プロパティの値を編集中の表示状態を考慮することで、編集中に参照される可能性が高いプロパティを考慮した配置でプロパティ列を表示することができ、ユーザが、編集対象のプロパティに関連するプロパティの値を容易に参照することが可能となる。
【００５３】
以上のことから、本実施の形態によれば、ユーザに特別な設定を強いることなく操作内容や嗜好に最適な配置でプロパティ列を表示させることができ、効率の良い編集環境を提供することができる。従って、プロパティを有するクラスのインスタンスが複数のプロパティ列で表示されるインスタンスデータにおいてユーザが編集することを効果的に支援することができる。
【００５４】
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
【００５５】
＜変形例１＞
上述した実施の形態において、クライアント端末１００で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該各種プログラムを、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。
【００５６】
＜変形例２＞
上述した実施の形態において、情報編集支援装置として機能するものとしてクライアント端末１００を例にして説明したが、これに限るものではなく、サーバクライアントシステムの形態で実施しても良い。この場合、上述したクライアント端末１００の有する機能の全部又は一部をサーバ側で実現するように構成し、上述したクライアント端末１００の有する機能を、クライアント端末１００が例えばＷｅｂブラウザを介してサーバと通信することにより実現させるように構成しても良い。例えば、辞書記憶部１０３はクライアント端末１００が有するのではなくサーバが有するように構成しても良い。
＜変形例３＞
上述した実施の形態において、辞書記憶部１０３の有する階層構造を図３では単純木で示しているが、これに限らず、例えば、複数の親クラスを持つ「多重継承」や、厳密な親子関係ではないが、いくつかのプロパティを輸入する関係で形成される「部分継承」といった様々な階層構造を辞書記憶部１０３は有するようにしても良い。
【００５７】
また、階層構造の特殊な場合として、階層を持たないフラットな構造を辞書記憶部１０３は有するようにしても良い。すなわち、どのクラスも他のクラスの下位クラスにならず、自らが定義したプロパティのみを有するものであっても良い。
【００５８】
また、クラステーブル３０１においては、親子関係を定義することにより階層構造を表すように構成しているが、これに限らず、複数世代の子孫関係を定義することにより階層構造を表すように構成しても良い。
【００５９】
また、図３に例示した階層構造を表す辞書情報として、図４にクラステーブル３０１及びプロパティテーブル３０２を例示したが、本実施の形態においてはこれに限らない。また、クラスやプロパティに対する名称や定義などの情報を辞書情報が含むようにしても良く、これを情報の表示や制御に当該辞書情報を用いるようにしても良い。
【００６０】
また、プロパティにグループが設定され、辞書情報は、プロパティの属するグループを更に示すように構成しても良い。この場合、クライアント端末１００は、操作情報と、プロパティの属するグループとを用いて、プロパティ列の配置を決定するようにしても良い。
【００６１】
＜変形例４＞
上述した実施の形態において、操作対象のクラスの配置情報が配置情報記憶部１０８に記憶されていない場合、表示データ生成部１０４は、所定の方法又は任意の方法により当該クラスの有するプロパティ列の配置を決定するようにした。しかし、当該クラスの配置情報が配置情報記憶部１０８に記憶されていなくても、当該クラスの上位のクラスの配置情報が記憶されている場合は、表示データ生成部１０４はこれを、操作対象のクラスの配置情報として用いるようにしても良く、当該列情報によって示される配置を、インスタンステーブルにおいて示される各プロパティ列の配置の初期状態として用いるようにしても良い。
【００６２】
＜変形例５＞
上述した実施の形態において、操作情報の書式を図１２に例示したが、操作情報の書式はこれに限るものではなく、コンピュータ可読であればその書式は限定されない。また、操作情報は、コメントデータなど、上記以外の情報を記憶しても良い。
【００６３】
また、操作の種類が、プロパティ値を編集するものである場合、クライアント端末１００は、値を編集したプロパティのプロパティＩＤと、編集した値の行とを含む操作情報を生成したが、編集した値の行を含まない操作情報を生成するようにしても良い。
【００６４】
また、操作情報は、クラス毎に複数存在しても良く、即ち、各クラスに対して各々異なる複数の操作情報が操作情報記憶部１０６に記憶されても良い。
【００６５】
＜変形例６＞
上述した実施の形態において、クライアント端末１００は、ステップＳ１５０１で各処理ブロックのスコアを計算する際、最も高いプロパティのスコアを当該処理ブロックのスコアとして計算したが、これに限らず、各プロパティのスコアの合計値を当該処理ブロックのスコアとして計算するようにしても良い。
【００６６】
また、クライアント端末１００は、ステップＳ１５０３で各プロパティの所属先の処理ブロックを決定する際、予め設定された閾値以上のスコアが計算された処理ブロックを抽出し、これらが複数抽出された場合に、ステップＳ１５０２で決定された優先順位を用いて、最も優先順位の高い処理ブロックを所属先として決定しても良い。
【００６７】
また、クライアント端末１００は、ステップＳ１５０４で、各処理ブロックの中でプロパティ列の配置を決定する際、当該処理ブロックの前の処理ブロックまたは後ろの処理ブロックにも属する可能性があるプロパティを、それぞれ前の処理ブロック、後ろの処理ブロックに近い位置に配置するよう当該プロパティ列の配置を決定しても良い。
【００６８】
＜変形例７＞
上述した実施の形態において、クライアント端末１００は、ステップＳ１５０４で、各処理ブロックの中でプロパティ列の配置を決定する際、辞書記憶部１０３に記憶された辞書情報以外にインスタンステーブルに個々に設定された情報を利用しても良い。例えば、図５に示したように、インスタンステーブルにキー情報が設定されている場合は、クライアント端末１００は、これを先頭に表示し、これと残りのプロパティのスコアに基づいてプロパティ列の配置を決定しても良い。また、プロパティ列に一意性制約や「NOT NULL」制約などの各種制約が設定されている場合、同じスコアのプロパティの中でこれらの制約が付随するものを優先してプロパティ列の配置を決定しても良い。
【００６９】
＜変形例８＞
上述した実施の形態において、インスタンスが１つも登録されていない初期状態のインスタンステーブルの一部のプロパティ列を表示装置１０１に表示するための表示データが生成されるようにしたが、これに限らず、ユーザが一時的に保存したデータなど、いくらかのインスタンスが既に登録された状態でインスタンステーブルの一部のプロパティ列を表示するための表示データが生成され、当該表示データにより表示装置１０１において表示が行われるようにしても良い。この場合、クライアント端末１００は、ステップＳ１２０６では、配置情報生成部１０７の機能により、インスタンスの登録状態に応じて一部の処理ブロックの情報のみを用いてプロパティ列の配置を再生成し、これに従って表示データを生成しても良い。
【００７０】
また、クライアント端末１００は、ステップＳ１５０４で、各処理ブロックの中でプロパティ列の配置を決定する際、プロパティの値であるインスタンスの編集状況を抽出しても良い。即ち、クライアント端末１００は、インスタンステーブルにおいてどのプロパティの値が登録されているかを編集状況として抽出する。また、配置情報記憶部１０８は、各クラスに対して複数の配置情報が記憶可能である。この場合、クライアント端末１００は、表示データを生成する際、各行のプロパティの値の編集状況と当該クラスに対応付けられた各操作情報とを照らし合わせ、以降の操作を推定して参照する操作情報を推定することで、選択した操作情報から決定される配置でインスタンステーブルにおいて示される一部のプロパティ列を表示装置１０１に表示させるための表示データを生成すれば良い。
【００７１】
＜変形例９＞
上述した実施の形態において、クライアント端末１００は、図１３に示した配置情報生成処理では、操作情報記憶部１０６が記憶する操作情報を用いたが、これに限らず、例えばサーバなどの共有空間で管理されるユーザのグループやロールに基づいた共有の操作情報を用いるようにしても良い。図１７は、本変形例にかかるクライアント端末１００の機能的構成を例示する図である。クライアント端末１００は、入力受付部１０２と、辞書記憶部１０３と、表示データ生成部１０４と、操作情報抽出部１０５と、操作情報記憶部１０６と、配置情報生成部１０７と、配置情報記憶部１０８とに加え、ユーザ情報記憶部１０９を有する。ユーザ情報記憶部１０９は、例えばＨＤＤなどの外部記憶装置やＲＡＭなどの記憶装置に記憶される。ユーザ情報記憶部１０９は、入力装置を介して各種操作を行うユーザを識別するユーザ情報と、当該ユーザの操作分担や権限などのユーザの属するロールを示すロール情報を対応付けて記憶する。ユーザのロールとは、例えば、辞書情報の閲覧のみが可能であるとか、辞書情報の登録や削除が可能であるとかなどであり、各ユーザに対して予め設定されているものである。入力受付部１０２は、入力装置を介して、各種操作の入力と共に、当該操作を行ったユーザのユーザ情報の入力とを受け付ける。操作情報抽出部１０５は、入力受付部１０２が入力を受け付けた各種操作の内容を抽出して、所定の種類の操作についての操作情報を生成してこれを、操作対象のクラスのクラスＩＤと、入力受付部１０２が入力を受け付けたユーザ情報に対応付けられたロール情報とを対応付けて操作情報記憶部１０６に記憶させる。そして、配置情報生成部１０７は、ユーザが入力装置を介して指定した操作対象のクラスに対応付けられ且つ当該ユーザのユーザ情報に対応するロール情報に対応付けられて操作情報記憶部１０６に記憶された操作情報を読み出して、上述の配置情報生成処理を行えば良い。また、ユーザ情報記憶部１０９は、ロール情報と同様にして、ユーザが属するグループを示すグループ情報をユーザ情報と対応付けて記憶するようにしても良い。このような構成によれば、同一のグループやロールに属する複数のユーザで操作情報を共有することが可能になり、グループやロールに特有の編集操作に適した配置での表示を行うことが可能になる。
【００７２】
プロパティのアクセス回数の大きさに従って行っていたプロパティ列の配置の従来の設定方法では、プロパティ列の移動やユーザのロールや表示データがロードされた時点のインスタンステーブルの編集状況などを考慮していないため、ユーザの編集状況に応じた柔軟なプロパティ列の配置が難しいという問題があった。しかし、本変形例で説明した上述した様々な情報を選択的に適用することで、ユーザの編集状況に適した配置でプロパティ列を表示することが可能となる。
【００７３】
＜変形例１０＞
上述した実施の形態において、クライアント端末１００は、配置情報について、プロパティ列の配置をクエリ形式で表現しても良い。例えば、リレーショナルデータベースの問い合わせ言語であるＳＱＬのＳｅｌｅｃｔ句でプロパティを指定し、Ｆｒｏｍ句以降で様々な条件を設定して利用しても良い。
【００７４】
＜変形例１１＞
上述した実施の形態において、クライアント端末１００は、ステップＳ６０２の判定結果が肯定的となる場合、操作対象のクラスに対応付けられて配置情報記憶部１０８に記憶された配置情報を用いて表示を行うか否かをユーザに問い合わせるダイアログを表示装置１０１に表示させるようにしても良い。そして、当該問い合わせに対して肯定的な回答が入力装置を介して入力された場合に、クライアント端末１００は、上述したように、操作対象のクラスに対応付けられた配置情報に示される配置でインスタンステーブルにおいて示される一部のプロパティ列を表示装置１０１に表示させるための表示データを生成してこれを記憶装置上にロードすれば良い。
【図面の簡単な説明】
【００７５】
【図１】一実施の形態にかかるクライアント端末１００のハードウェア構成を例示する図である。
【図２】同実施の形態にかかるクライアント端末１００の機能的構成を例示する図である。
【図３】クラスを構成要素とする階層構造を概念的に例示する図である。
【図４】図３に例示した階層構造に応じて、辞書記憶部１０３で辞書情報として記憶されるクラステーブル３０１及びプロパティテーブル３０２を例示する図である。
【図５】同実施の形態にかかるインスタンステーブルを例示する図である。
【図６】図５に例示されたインスタンステーブルの一部であり、表示装置１０１の画面に実際に表示される範囲である表示範囲Ｇ１を例示する図である。
【図７】同実施の形態にかかる操作情報抽出処理の手順を示すフローチャートである。
【図８】同実施の形態にかかる操作情報を生成する処理の詳細な手順を示すフローチャートである。
【図９】図６に例示したクラスＣ０３のインスタンステーブルにおいて、プロパティＰ０４,Ｐ０５の２つのプロパティ列を、プロパティＰ０１，Ｐ０２のプロパティ列間に移動させた場合の表示範囲Ｇ２を例示する図である。
【図１０】図９の例でプロパティＰ０１，Ｐ０４，Ｐ０５の１行目及び２行目の各インスタンスを編集した場合の表示範囲Ｇ３を例示する図である。
【図１１】図１０の例でプロパティＰ０４に対応するプロパティ列をプロパティＰ０７に対応するプロパティ列の直後に移動させた後、プロパティＰ０６,Ｐ０７,Ｐ０４の各プロパティ列が表示されるように列方向へのスクロールによって表示範囲を変更し、更に、プロパティＰ０６,Ｐ０７の１行目の各インスタンスを編集した場合の表示範囲Ｇ４を示す図である。
【図１２】同実施の形態にかかる操作情報記憶部１０６で記憶される操作情報を例示する図である。
【図１３】同実施の形態にかかる配置情報を生成する配置情報生成処理の手順を示すフローチャートである。
【図１４】図１２に例示した操作情報について、各処理ブロックで各プロパティに対して計算されるスコアを例示する図である。
【図１５】同実施の形態にかかるステップＳ１２０６で行う配置情報を生成する処理の詳細な手順を示すフローチャートである。
【図１６】図１４に例示したクラスＣ０３の配置情報を例示する図である。
【図１７】一実施の形態の一変形例にかかるクライアント端末１００の機能的構成を例示する図である。
【符号の説明】
【００７６】
１００  クライアント端末
１０１  表示装置
１０２  入力受付部
１０３  辞書記憶部
１０４  表示データ生成部
１０５  操作情報抽出部
１０６  操作情報記憶部
１０７  配置情報生成部
１０８  配置情報記憶部
１０９  ユーザ情報記憶部
３０１  クラステーブル
３０２  プロパティテーブル
【図１】
2010157004.tif 000003
【図２】
2010157004.tif 000004
【図３】
2010157004.tif 000005
【図４】
2010157004.tif 000006
【図５】
2010157004.tif 000007
【図６】
2010157004.tif 000008
【図７】
2010157004.tif 000009
【図８】
2010157004.tif 000010
【図９】
2010157004.tif 000011
【図１０】
2010157004.tif 000012
【図１１】
2010157004.tif 000013
【図１２】
2010157004.tif 000014
【図１３】
2010157004.tif 000015
【図１４】
2010157004.tif 000016
【図１５】
2010157004.tif 000017
【図１６】
2010157004.tif 000018
【図１７】
2010157004.tif 000019