(57)【要約】【課題】  入力画面、検索画面などを作成する手間を大幅に省略する。【解決手段】  複数のｋｅｙ−Ｖａｌｕｅ型データを構成する複数のキーの名称を取得するキー名称取得部と、複数のキーの名称に基づいて、複数のキーの名称を構成する複数の単語のツリー構造を決定するツリー構造決定部と、ツリー構造が複数の葉ノードを有する場合に、複数の葉ノードのそれぞれに対応する複数の行又は列を有する表を作成する表作成部とを備える。【選択図】図２
2018055504.tif 000002
【特許請求の範囲】
【請求項１】
複数のｋｅｙ−Ｖａｌｕｅ型データを構成する複数のキーの名称を取得するキー名称取得部と、
前記複数のキーの名称に基づいて、前記複数のキーの名称を構成する複数の単語のツリー構造を決定するツリー構造決定部と、
前記ツリー構造が複数の葉ノードを有する場合に、前記複数の葉ノードのそれぞれに対応する複数の行又は列を有する表を作成する表作成部と、
を備える、情報処理装置。
【請求項２】
前記複数のキーの名称のそれぞれを１以上の単語に分割して、前記複数の単語を生成するキー名称分割部をさらに備え、
前記ツリー構造決定部は、前記複数のキーのそれぞれに含まれる前記１以上の単語を比較して、共通する又は類似する単語の有無を判定することで、前記複数の単語のツリー構造を決定する、
請求項１に記載の情報処理装置。
【請求項３】
前記キー名称分割部は、
前記複数のキーのそれぞれについて、当該キーの名称が予め定められた第３の文字列を含むか否かを判定し、
当該キーの名称が予め定められた第３の文字列を含む場合、前記第３の文字列の位置で当該キーの名称を分割する、
請求項２に記載の情報処理装置。
【請求項４】
前記キー名称分割部は、
前記複数のキーのうちの２以上のキーの名称の語頭又は語尾において、当該２以上のキーの名称に共通する第１の共通文字列を抽出し、
前記第１の共通文字列を有するキーの名称を、前記第１の共通文字列の位置で分割する、
請求項２又は請求項３に記載の情報処理装置。
【請求項５】
前記ツリー構造決定部は、
前記複数のキーの少なくとも一部について、
当該キーの名称に含まれる前記１以上の単語のうち、語頭に配された単語を根ノードとし、語頭に近い単語ほど上位のノードとなるように、又は、
当該キーの名称に含まれる前記１以上の単語のうち、語尾に配された単語を根ノードとし、語尾に近い単語ほど上位のノードとなるように、
前記複数の単語のツリー構造を決定する、
請求項２から請求項４までの何れか一項に記載の情報処理装置。
【請求項６】
複数のＫｅｙ−Ｖａｌｕｅ型データを構成する複数のキーのうちの少なくとも第１キー及び第２キーの名称を取得するキー名称取得部と、
前記第１キーの名称及び前記第２キーの名称に共通する第１共通文字列を抽出する共通文字列抽出部と、
前記共通文字列抽出部が前記第１共通文字列を抽出した場合に、前記第１キーの名称から前記第１共通文字列を削除した文字列に対応する行又は列、及び、前記第２キーの名称から前記第１共通文字列を削除した文字列に対応する行又は列を有する表を作成する表作成部と、
を備える、情報処理装置。
【請求項７】
前記表は、データベースのユーザインターフェース画面の一部を構成し、
前記複数のＫｅｙ−Ｖａｌｕｅ型データは、前記データベースに格納される複数のデータであり、
前記複数のキーの名称のそれぞれは、前記データベースに格納される複数のデータのそれぞれのキーの名称である、
請求項１から請求項６までの何れか一項に記載の情報処理装置。
【請求項８】
前記表作成部は、前記表に含まれる複数のセルの少なくとも一部に、当該セルに対するユーザからの入力を受け付けて、入力された情報を、前記複数のＫｅｙ−Ｖａｌｕｅ型データを格納するデータベースに格納するための命令が配された表を作成する、
請求項１から請求項７までの何れか一項に記載の情報処理装置。
【請求項９】
前記表作成部は、前記表に含まれる複数のセルの少なくとも一部に、前記複数のＫｅｙ−Ｖａｌｕｅ型データを格納するデータベースを参照して、各セルに対応するバリューを表示するための命令が配された表を作成する、
請求項１から請求項８までの何れか一項に記載の情報処理装置。
【請求項１０】
前記表作成部は、前記複数のｋｅｙ−Ｖａｌｕｅ型データの少なくとも一部を構成するキーの識別情報及びバリューの少なくとも一方が予め定められた条件を満足する場合、当該キーに対応するバリュー又は当該バリューをスクランブル表示又はマスク表示する、
請求項１から請求項９までの何れか一項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
構造化文書おいて定義された文書型定義を利用して、当該構造化文書と、データベースのテーブルとの対応関係を設定し、文書の入力画面、検索画面などを設計するための情報を設定する技術が知られている（例えば、特許文献１を参照されたい）。
（先行技術文献）
（特許文献）
（特許文献１）特開２００４−３１８２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来技術においては、予め、構造化文書の構造を定義する文書型定義を作成しておく必要があり、データベースのテーブルとの対応関係を設定したり、入力画面、検索画面などを作成したりする手間を大幅に省略することはできなかった。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、情報処理装置が提供される。上記の情報処理装置は、複数のｋｅｙ−Ｖａｌｕｅ型データを構成する複数のキーの名称を取得するキー名称取得部を備える。上記の情報処理装置は、複数のキーの名称に基づいて、複数のキーの名称を構成する複数の単語のツリー構造を決定するツリー構造決定部を備える。上記の情報処理装置は、ツリー構造が複数の葉ノードを有する場合に、複数の葉ノードのそれぞれに対応する複数の行又は列を有する表を作成する表作成部を備える。
【０００５】
上記の情報処理装置は、複数のキーの名称のそれぞれを１以上の単語に分割して、複数の単語を生成するキー名称分割部をさらに備えてよい。上記の情報処理装置において、ツリー構造決定部は、複数のキーのそれぞれに含まれる１以上の単語を比較して、共通する又は類似する単語の有無を判定することで、複数の単語のツリー構造を決定してよい。上記の情報処理装置において、キー名称分割部は、複数のキーのそれぞれについて、当該キーの名称が予め定められた第３の文字列を含むか否かを判定し、当該キーの名称が予め定められた第３の文字列を含む場合、第３の文字列の位置で当該キーの名称を分割してよい。上記の情報処理装置において、キー名称分割部は、複数のキーのうちの２以上のキーの名称の語頭又は語尾において、当該２以上のキーの名称に共通する第１の共通文字列を抽出し、第１の共通文字列を有するキーの名称を、第１の共通文字列の位置で分割してよい。上記の情報処理装置において、ツリー構造決定部は、複数のキーの少なくとも一部について、当該キーの名称に含まれる１以上の単語のうち、語頭に配された単語を根ノードとし、語頭に近い単語ほど上位のノードとなるように、又は、当該キーの名称に含まれる１以上の単語のうち、語尾に配された単語を根ノードとし、語尾に近い単語ほど上位のノードとなるように、複数の単語のツリー構造を決定してよい。
【０００６】
本発明の第２の態様においては、情報処理装置が提供される。上記の情報処理装置は、複数のＫｅｙ−Ｖａｌｕｅ型データを構成する複数のキーのうちの少なくとも第１キー及び第２キーの名称を取得するキー名称取得部を備える。上記の情報処理装置は、第１キーの名称及び第２キーの名称に共通する第１共通文字列を抽出する共通文字列抽出部を備える。上記の情報処理装置は、共通文字列抽出部が第１共通文字列を抽出した場合に、第１キーの名称から第１共通文字列を削除した文字列に対応する行又は列、及び、第２キーの名称から第１共通文字列を削除した文字列に対応する行又は列を有する表を作成する表作成部を備える。
【０００７】
上記の情報処理装置において、表は、データベースのユーザインターフェース画面の一部を構成してよい。上記の情報処理装置において、複数のＫｅｙ−Ｖａｌｕｅ型データは、データベースに格納される複数のデータであってよい。上記の情報処理装置において、複数のキーの名称のそれぞれは、データベースに格納される複数のデータのそれぞれのキーの名称であってよい。上記の情報処理装置において、表作成部は、表に含まれる複数のセルの少なくとも一部に、当該セルに対するユーザからの入力を受け付けて、入力された情報を、複数のＫｅｙ−Ｖａｌｕｅ型データを格納するデータベースに格納するための命令が配された表を作成してよい。上記の情報処理装置において、表作成部は、表に含まれる複数のセルの少なくとも一部に、複数のＫｅｙ−Ｖａｌｕｅ型データを格納するデータベースを参照して、各セルに対応するバリューを表示するための命令が配された表を作成してよい。上記の情報処理装置において、表作成部は、複数のｋｅｙ−Ｖａｌｕｅ型データの少なくとも一部を構成するキーの識別情報及びバリューの少なくとも一方が予め定められた条件を満足する場合、当該キーに対応するバリュー又は当該バリューをスクランブル表示又はマスク表示してよい。
【０００８】
本発明の第３の態様においては、コンピュータを、上記の第１の態様又は第２の態様に係る情報処理装置として機能させるためのプログラムが提供される。上記のプログラムを格納する非一時的コンピュータ可読媒体が提供されてもよい。
【０００９】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００１０】
【図１】データベースシステム１００の一例を概略的に示す。
【図２】データ管理装置１０２における情報処理の一例を概略的に示す。
【図３】データテーブル３００の一例を概略的に示す。
【図４】データテーブル４００の一例を概略的に示す。
【図５】ＵＩ作成部１３０の内部構成の一例を概略的に示す。
【図６】名称分割部５２６の内部構成の一例を概略的に示す。
【図７】格納部５３０の内部構成の一例を概略的に示す。
【図８】ＵＩ作成部１３０における情報処理の一例を概略的に示す。
【図９】構造解析部５２０における情報処理の一例を概略的に示す。
【図１０】構造解析部５２０における情報処理の一例を概略的に示す。
【図１１】データテーブル１１００の一例を概略的に示す。
【図１２】表１２００の一例を概略的に示す。
【図１３】ＵＩ作成部１３０における情報処理の一例を概略的に示す。
【図１４】ＵＩ作成部１３０における情報処理の一例を概略的に示す。
【図１５】ＵＩ作成部１３０における情報処理の一例を概略的に示す。
【図１６】データ管理装置１０２における情報処理の一例を概略的に示す。
【発明を実施するための形態】
【００１１】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、図面において、同一または類似の部分には同一の参照番号を付して、重複する説明を省く場合がある。
【００１２】
図１は、データベースシステム１００の一例を概略的に示す。本実施形態において、データベースシステム１００は、データ管理装置１０２と、入出力装置１０４とを備える。データ管理装置１０２は、データ格納部１１０と、データ処理部１２０と、ＵＩ作成部１３０とを備える。入出力装置１０４は、キー名称入力部１４０と、出力部１５０と、バリュー入力部１６０とを備える。
【００１３】
データ管理装置１０２及びＵＩ作成部１３０は、情報処理装置の一例であってよい。なお、本実施形態においては、ＵＩ作成部１３０が、データベースの入力処理若しくは更新処理、又は、照会若しくは検索処理に用いられるユーザインターフェース（ＵＩと称する場合がある。）用の画面を作成する場合を例として、情報処理装置について説明する。しかしながら、情報処理装置は、本実施形態に限定されない。他の実施形態において、情報処理装置は、複数の文字列が入力されると、当該複数の文字列に含まれる複数の単語の一部を表形式に変換して出力する。
【００１４】
本実施形態において、データベースシステム１００は、情報を管理する。例えば、本実施形態によれば、データ管理装置１０２が、ユーザにより入力された情報を格納する。データ管理装置１０２は、ユーザからの検索要求に応じて、当該要求に合致する情報を出力してもよい。また、本実施形態によれば、入出力装置１０４が、ＵＩを介して、ユーザに情報を提示したり、ユーザからの入力を受け付けたりする。ＵＩ画面は、データベースシステム１００がユーザに単に情報を提示するための画面であってもよく、ユーザがデータベースシステム１００を操作したり、情報を入力したりするための画面であってもよい。ＵＩ画面は、ディスプレイ上に表示されてもよく、プロジェクタにより投影面に投影されてもよい。
【００１５】
データベースシステム１００及びデータベースシステム１００の各部は、ハードウェアにより実現されてもよく、ソフトウエアにより実現されてもよく、ハードウェア及びソフトウエアにより実現されてもよい。データベースシステム１００及びデータベースシステム１００の各部は、単一のサーバによって実現されてもよく、複数のサーバによって実現されてもよい。データベースシステム１００の少なくとも一部は、仮想サーバ又はクラウドシステムにより実現されてよい。また、データベースシステム１００の少なくとも一部の機能が、外部のアプリケーションインターフェースサービスにより代替されてもよい。
【００１６】
データベースシステム１００及びデータベースシステム１００の各部は、一般的な構成の情報処理装置において、データベースシステム１００の各部の動作を規定したソフトウエア又はプログラムを起動することにより実現されてよい。上記の情報処理装置は、ＣＰＵ等のプロセッサ、ＲＯＭ、ＲＡＭ、通信インターフェースなどを有するデータ処理装置と、キーボード、タッチパネル、マイクなどの入力装置と、表示装置、スピーカなどの出力装置と、メモリ、ＨＤＤなどの記憶装置とを備えてよい。上記の情報処理装置は、仮想サーバ又はクラウドシステムであってもよい。上記の情報処理装置において、データ処理装置又は記憶装置は、上記のソフトウエア又はプログラムを記憶してよい。上記のソフトウエア又はプログラムは、プロセッサによって実行されることにより、上記の情報処理装置に、当該ソフトウエア又はプログラムによって規定された動作を実行させる。上記のソフトウエア又はプログラムは、非一時的コンピュータ可読記憶媒体に格納されてもよい。
【００１７】
データ格納部１１０は、データベースを構成する１以上のデータ又はデータファイルを格納する。１以上のデータ又はデータファイルのそれぞれは、任意の型（データベースモデルと称される場合がある。）のデータベースを構成する。１以上のデータ又はデータファイルのそれぞれは、リレーショナルデータベースを構成してもよく、Ｋｅｙ−Ｖａｌｕｅ型データベース（キーバリューストア、キーバリュー型データストアなどと称される場合がある。）を構成してもよい。データ格納部１１０、又は、データ格納部１１０に格納される１以上のデータ又はデータファイルのそれぞれは、データベースの一例であってよい。
【００１８】
上記のデータにおいて、各キーは、複数の識別記号を有してよい。例えば、各キーに対して、データ管理装置１０２の内部において各キーを一意に識別するための内部ＩＤと、ユーザなどが各キーを識別するための名称とが付与される。各キーに対して、複数の名称が付与されてもよい。例えば、一実施形態において、各キーに対して、日本語の名称と、英語の名称とが付与される。他の実施形態において、各キーに対して、特定の部署における名称又は略称と、他の部署における名称又は略称とが付与される。なお、内部ＩＤも、キー名称の一例であってよい。
【００１９】
データ処理部１２０は、各種のデータ処理を実行する。データ処理部１２０は、データベースシステム１００を制御してもよい。例えば、データ処理部１２０は、データ格納部１１０へのアクセスを管理する。データ処理部１２０は、ユーザインターフェースを介したデータ格納部１１０へのアクセスを管理してよい。
【００２０】
一実施形態において、データ処理部１２０は、ユーザからの要求（ユーザ要求と称する場合がある。）を受信して、ＵＩ作成部１３０が作成した１以上のＵＩ画面の中から、ユーザ要求に応じたＵＩ画面を選択する。ユーザ要求としては、入力要求、照会要求、検索要求などを例示することができる。データ処理部１２０は、選択されたＵＩ画面を出力部１５０に表示させる。データ処理部１２０は、ユーザがＵＩ画面を介してバリュー入力部１６０に入力した情報と、複数のキーのそれぞれとを対応付けて、データ格納部１１０に格納する。
【００２１】
他の実施形態において、データ処理部１２０は、ユーザからの要求に応じて、データ格納部１１０を参照して、当該要求に合致するデータを出力部１５０に表示させる。データ処理部１２０は、当該要求に合致するデータを出力するためのＵＩ画面を出力部１５０に表示させるときに、データ格納部１１０に格納されたデータの一部を、ＵＩ画面上の対応する位置に表示させてもよい。
【００２２】
ＵＩ作成部１３０は、ＵＩ画面を作成する。ＵＩ画面としては、入力画面、照会画面、検索画面などを例示することができる。本実施形態において、ＵＩ作成部１３０は、複数の文字列を解析して、各文字列を構成する要素間の関係を決定する。ＵＩ作成部１３０は、各文字列を構成する複数の要素のうち、一部の要素（代表要素と称する場合がある。）の間の関係を決定してもよい。キー名称は、文字列の一例であってよい。キー名称に含まれる単語は、要素又は代表要素の一例であってよい。例えば、「ＬＡＮ０１＿ＩＰアドレス」という文字列に含まれる「ＬＡＮ」、「０１」又は「ＩＰアドレス」という単語は、当該文字列の要素である。
【００２３】
「文字列」は、ひらがな、カタカナ、漢字、アルファベット、キリル文字、アラビア文字、ギリシア文字などの「文字」だけでなく、「数字」、「記号」、「特殊文字」を含んでよい。「特殊文字」としては、改行、タブ、ヌル文字、制御記号などを例示することができる。「文字列」は、単一の文字、数字、記号又は特殊文字であってもよい。「代表要素」は、（ｉ）名詞、動詞などの単語、（ｉｉ）当該単語の一部、（ｉｉｉ）当該単語と予め定められた文字列との結合、並びに、（ｉｖ）当該単語の修飾句及び（ｖ）当該修飾句と当該単語との結合から選択される少なくとも１つであってよい。名詞は、数詞、助数詞、序数詞、動名詞などを含んでよい。
【００２４】
本実施形態において、ＵＩ作成部１３０は、複数のキー名称を構成する単語同士の関係に基づいて、ＵＩ画面を作成する。例えば、ＵＩ作成部１３０は、キー名称を構成する単語同士の関係に基づいて、各キーのバリューを入力するための入力欄を作成する。また、ＵＩ作成部１３０は、キー名称を構成する単語間の関係に基づいて、ＵＩ画面の構成要素のレイアウトを決定する。
【００２５】
一実施形態において、ＵＩ作成部１３０は、ツリー構造を構成する複数のノードのそれぞれと、複数の代表要素のそれぞれとの対応関係を決定することで、各文字列を構成する要素間の関係を決定する。例えば、ＵＩ作成部１３０は、「代表要素Ａ、代表要素Ｂ１及び代表要素Ｃ１を含む文字列Ｘ１」と、「代表要素Ａ、代表要素Ｂ１及び代表要素Ｃ２を含む文字列Ｘ２」と、「代表要素Ａ、代表要素Ｂ２及び代表要素Ｃ１を含む文字列Ｘ３」と、「代表要素Ａ、代表要素Ｂ２及び代表要素Ｃ２を含む文字列Ｘ４」とを解析して、ツリー構造の第１階層のノード（根ノードと称される場合がある。）と、「代表要素Ａ」とを対応付ける。
【００２６】
また、ＵＩ作成部１３０は、ツリー構造の第２階層のノードのそれぞれと、「代表要素Ｂ１」及び「代表要素Ｂ２」のそれぞれとを対応づける。さらに、ツリー構造の第３階層のノードのうち、「代表要素Ｂ１」に対応付けられるノードの下位ノードのそれぞれと、「代表要素Ｃ１」及び「代表要素Ｃ２」とを対応付ける。同様に、ツリー構造の第３階層のノードのうち、「代表要素Ｂ２」に対応付けられるノードの下位ノードのそれぞれと、「代表要素Ｃ１」及び「代表要素Ｃ２」とを対応付ける。本実施形態における第３階層のノードは、葉ノードと称される場合がある。
【００２７】
ＵＩ作成部１３０は、複数の代表要素間の関係を示すツリー構造に関する情報を利用して、表形式の入出力ＵＩを作成する。ＵＩ作成部１３０は、一部のキーについて、表形式の入出力ＵＩを作成してよい。この場合、他のキーについては、単に、各キーに対応する入力欄が設けられてよい。
【００２８】
上記の入出力ＵＩの表は、ツリー構造を構成する複数の葉ノードのそれぞれに対応する複数の行又は列を有してよい。ＵＩ画面において、表形式の入出力ＵＩに対応する葉ノードの上位の根ルートが、当該入出力ＵＩのタイトル又はラベルとして表示されてもよい。例えば、入出力ＵＩは、複数の葉ノードのそれぞれに対応する複数の列（フィールドと称する場合がある。）を有する。なお、入出力ＵＩのフィールド数は特に限定されるものではない。フィールド数は１つであってもよく、複数であってもよい。
【００２９】
一実施形態において、ＵＩ作成部１３０は、複数の文字列の集合を一度に解析して、当該解析により得られたツリー構造に関する情報を利用して、１以上の表形式の入出力ＵＩを作成する。ＵＩ作成部１３０は、解析対象の文字列がなくなるまで、上記の処理を繰り返してもよい。上記の処理方式は、ＤＯＭ方式と称される場合がある。
【００３０】
他の実施形態において、ＵＩ作成部１３０は、ＵＩ作成部１３０は、複数の文字列を順番に解析して、その都度、解析結果を反映しながら、１以上の表形式の入出力ＵＩを作成する。この場合、ＵＩ作成部１３０は、複数の代表要素間の関係を示すツリー構造に関する情報を決定しなくてもよい。上記の処理方式は、ＳＡＸ方式と称される場合がある。
【００３１】
さらに他の実施形態において、ＵＩ作成部１３０は、ＤＯＭ方式及びＳＡＸ方式の任意の組み合わせにより、表形式の入出力ＵＩを作成する。例えば、５０個の文字列を解析して、ＵＩ画面を作成する場合において、ＵＩ作成部１３０は、第１番目から第２０番目までの文字列をＤＯＭ方式で解析して、１以上の表形式の入出力ＵＩを作成する。また、表形式の入出力ＵＩに含まれない文字列を、表形式の入出力ＵＩの外部に配置する。その後、第２１番目から第５０番目までの文字列をＳＡＸ方式で解析して、既成の表形式の入出力ＵＩを更新したり、新たな表形式の入出力ＵＩを作成したり、表形式の入出力ＵＩに含まれない文字列を、表形式の入出力ＵＩの外部に配置したりする。
【００３２】
キー名称入力部１４０は、ユーザから、ｋｅｙ−Ｖａｌｕｅ型データを構成するキーの名称を取得する。キー名称入力部１４０は、ユーザから、キー名称の入力を受け付けてもよく、ユーザから、キー名称が記憶されたデータファイルを読み込むことを示す指示を受け付けてもよい。キー名称が記憶されたデータファイルは、データ格納部１１０に格納されたデータファイルであってもよい。出力部１５０は、各種の情報を出力する。例えば、出力部１５０は、ＵＩ作成部１３０が作成したＵＩ画面を出力する。バリュー入力部１６０は、ユーザから、ｋｅｙ−Ｖａｌｕｅ型データを構成するバリューを取得する。
【００３３】
キー名称入力部１４０及びバリュー入力部１６０としては、キーボード、ポインティングデバイス、タッチパネル、タッチパネルディスプレイ、音声入力装置、ジェスチャー入力装置などを例示することができる。出力部１５０としては、ディスプレイ、プロジェクタなどの表示装置、プリンタなどの印刷装置、スピーカなどの音声出力装置などを例示することができる。
【００３４】
図２は、データ管理装置１０２におけるデータの入力処理の一例を概略的に示す。本実施形態において、データ管理装置１０２は、複数のキー名称１２を含むユーザ入力１０に基づいて、入力画面２０を作成する。入力画面２０は、ＵＩ又はＵＩ画面の一例であってよい。また、データ管理装置１０２は、ユーザが入力したバリュー３４と、各キーとが対応付けられた出力データ３０を出力する。
【００３５】
一実施形態によれば、データベースシステム１００の構築時に、ユーザが、ユーザ入力１０をデータベースシステム１００に入力する。ユーザ入力１０は、ユーザがキー名称入力部１４０に入力した情報であってもよく、データ格納部１１０に格納されたデータファイルに記録された情報であってもよい。ユーザ入力１０は、例えば、テキストデータであってよい。ユーザ入力１０は、ＸＭＬ文書などの構造化文書であってもよい。キー名称１２は、データ管理装置１０２が管理するデータ又はデータファイルにおけるキーの名称（キー名称と称する場合がある。）であってよい。複数のキー名称１２のそれぞれは、Ｋｅｙ−Ｖａｌｕｅ型データを構成する複数のキーの名称の一例であってよい。
【００３６】
本実施形態において、入力画面２０は、入力欄２２と、入力欄２２のタイトル２４と、表形式の入力欄２６と、入力欄２６のタイトル２８とを含む。入力画面２０は、その他の情報を含んでもよい。入力欄２２及び入力欄２６はデータ格納部１１０の入出力を管理するための入出力ＵＩの一例であってよい。入力欄２６は、表形式の入出力ＵＩの一例であってよい。
【００３７】
本実施形態において、ＵＩ作成部１３０は、キー名称１２を構成する単語同士の関係に基づいて、入力欄２２及び入力欄２６を作成する。例えば、特定のキー名称に、他のキー名称と共通する単語が含まれる又は表形式の入出力ＵＩを作成すべきことを示す記号が含まれる場合、ＵＩ作成部１３０は、入力欄２６を作成する。一方、ＵＩ作成部１３０は、特定のキー名称に、他のキー名称と共通する単語が含まれない場合又は表形式の入出力ＵＩを作成すべきではないことを示す記号が含まれる場合、ＵＩ作成部１３０は、入力欄２２を作成する。
【００３８】
ＵＩ作成部１３０は、入力欄２２、タイトル２４、入力欄２６及びタイトル２８のレイアウトを決定し、入力画面２０を作成する。ＵＩ作成部１３０は、キー名称を構成する単語間の関係に基づいて、レイアウトを決定してもよい。例えば、ＵＩ作成部１３０は、複数のキー名称を構成する複数の単語のツリー構造に基づいて、レイアウトを決定する。ＵＩ作成部１３０は、タイトル２８を入力欄２６の近傍に配置するか、タイトル２８を入力欄２６の内部に配置するかを決定してもよい。
【００３９】
一実施形態によれば、ＵＩ作成部１３０は、複数の代表要素間の関係を示すツリー構造に関する情報を利用して、表形式の入出力ＵＩを作成する。本実施形態において、ＵＩ作成部１３０は、複数のキー名称を構成する複数の単語のツリー構造に基づいて、表形式の入出力ＵＩを作成する。上記の表は、ツリー構造を構成する複数の葉ノードのそれぞれに対応する複数の行又は列を有してよい。例えば、入力欄２６は、代表要素「ＩＰアドレス」及び「ＬＡＮ  ＩＤ」に関する２つの葉ノードのそれぞれに対応する２つの列（フィールドと称する場合がある。）を有する。なお、入力欄２６のフィールド数は特に限定されるものではない。フィールド数は１つであってもよく、複数であってもよい。
【００４０】
ＵＩ作成部１３０は、上記の葉ノードの上位に位置する根ルートを、上記の表形式の入出力ＵＩのタイトルとして配置してよい。本実施形態においては、代表要素「ＩＰアドレス」及び「ＬＡＮ  ＩＤ」の上位に位置する根ノードである代表要素「ＬＡＮ」が、入力欄２６のタイトル２８として利用される。
【００４１】
入力画面２０を介して、バリュー入力部１６０に入力された情報は、データ処理部１２０において、キーと対応付けられる。これにより、複数のキー名称１２のそれぞれと、複数のバリュー３４のそれぞれとが対応付けられた出力データ３０が生成される。一実施形態において、データ処理部１２０は、出力データ３０をＵＩ作成部１３０に送信する。ＵＩ作成部１３０は、入力欄２２及び入力欄２６の適切な位置にバリュー３４が配置された入力画面２０を作成する。ＵＩ作成部１３０は、入力画面２０を出力部１５０に入力画面２０を出力させる。他の実施形態において、データ処理部１２０は、出力データ３０をデータ格納部１１０に格納する。さらに他の実施形態において、データ処理部１２０は、出力データ３０を外部の端末に送信してもよく、外部の記憶媒体に格納してもよい。
【００４２】
本実施形態においては、バリュー入力部１６０に入力された情報が、データ処理部１２０において、キーと対応付けられて、出力データ３０が生成される場合について説明した。しかしながら、データ処理部１２０における処理は本実施形態に限定されない。他の実施形態において、データ処理部１２０は、入力画面２０に配された複数の入力欄のそれぞれに入力された情報を、バリュー入力部１６０を介して取得し、当該情報を、データ格納部１１０に格納されているデータテーブルの対応するセルに格納する。このとき、入力画面２０に配された複数の入力欄の少なくとも一部に、データ格納部１１０に格納されている情報が表示されてもよい。
【００４３】
入力画面２０のレイアウトは特に限定されない。入力画面２０のレイアウトとしては、画面上に配される１以上のＵＩのそれぞれの位置、大きさ、範囲、形状、色彩、模様などを例示することができる。ユーザ又はユーザの属性に応じて異なる入力画面２０が用意されていてもよい。１以上の入出力箇所のうち、ユーザ又はユーザの属性に応じた箇所が強調表示されてもよい。また、入力画面２０に配された複数の入力欄の少なくとも一部に関する入出力が制限されてもよい。入力画面２０における１以上の入出力箇所に対して、ユーザ又はユーザの属性に応じた制限が設定されてもよい。
【００４４】
図３は、データテーブル３００の一例を概略的に示す。データテーブル３００は、データ格納部１１０に格納されるリレーショナルデータベースを構成するデータファイルの一例であってよい。データテーブル３００は、１以上のレコードを格納する。本実施形態において、データテーブル３００は、データテーブル３００に格納される各レコードを識別するレコードＩＤに関するフィールド３０２と、各レコードを構成する具体的なデータが格納される１以上のフィールドとを対応付けて格納する。
【００４５】
図３に記載された例によれば、データテーブル３００は、「サーバ名」に関するフィールド３０４と、「ＬＡＮ０１＿ＩＰアドレス」に関するフィールド３０６と、「ＬＡＮ０１＿ＬＡＮ  ＩＤ」に関するフィールド３０８と、「ＬＡＮ０２＿ＩＰアドレス」に関するフィールド３１０と、「ＬＡＮ０２＿ＬＡＮ  ＩＤ」に関するフィールド３１２と、「ＬＡＮ０３＿ＩＰアドレス」に関するフィールド３１４と、「ＬＡＮ０３＿ＬＡＮ  ＩＤ」に関するフィールド３１６とを含む。各フィールドの名称は、キー名称の一例であってよい。
【００４６】
図４は、データテーブル４００の一例を概略的に示す。データテーブル４００は、データ格納部１１０に格納されるＫｅｙ−Ｖａｌｕｅ型データベースを構成するデータファイルの一例であってよい。データテーブル４００は、１以上のレコードを格納する。本実施形態において、データテーブル４００は、各キーの内部ＩＤに関するフィールド４０２と、各キーの第１の名称に関するフィールド４０４と、各キーの第２の名称に関するフィールド４０６と、バリューに関するフィールド４０８とを対応付けて格納する。
【００４７】
図４に記載された例によれば、フィールド４０４には、「サーバ名」、「ＬＡＮ０１＿ＩＰアドレス」、「ＬＡＮ０１＿ＬＡＮ  ＩＤ」、「ＬＡＮ０２＿ＩＰアドレス」、「ＬＡＮ０２＿ＬＡＮ  ＩＤ」、「ＬＡＮ０３＿ＩＰアドレス」、「ＬＡＮ０３＿ＬＡＮ  ＩＤ」などの日本語のキー名称が格納されている。一方、フィールド４０６には、「Ｓｅｖｅｒ  Ｎａｍｅ」、「ＬＡＮ０１＿ＩＰ  Ａｄｒｅｓｓ」、「ＬＡＮ０１＿ＬＡＮ  ＩＤ」、「ＬＡＮ０２＿ＩＰ  Ａｄｒｅｓｓ」、「ＬＡＮ０２＿ＬＡＮ  ＩＤ」、「ＬＡＮ０３＿ＩＰ  Ａｄｒｅｓｓ」、「ＬＡＮ０３＿ＬＡＮ  ＩＤ」などの英語のキー名称が格納されている。
【００４８】
各キーに対して複数の名称又は識別情報が付与されている場合、一実施形態によれば、ＵＩ作成部１３０は、複数のキー名称のうちの単一のキー名称に基づいて表形式の入出力ＵＩを作成する。これにより、例えば、ユーザの使用する言語又は用語によって、異なる入出力ＵＩを作成することができる。また、ユーザの使用する言語又は用語に依存しない入出力ＵＩを作成することもできる。他の実施形態によれば、複数のキー名称のうちの２以上のキー名称に基づいて、表形式の入出力ＵＩを作成する。例えば、第１のキー名称に基づいて決定したツリー構造と、第２のキー名称に基づいて決定したツリー構造とを比較して、階層のより多いツリー構造を採用する。また、第１のキー名称に基づいて決定したツリー構造と、第２のキー名称に基づいて決定したツリー構造とを比較して、一致する部分のみを採用してもよい。これにより、ツリー構造をより精密に解析することができる。
【００４９】
図５は、ＵＩ作成部１３０の内部構成の一例を概略的に示す。本実施形態において、ＵＩ作成部１３０は、名称取得部５１０と、構造解析部５２０と、格納部５３０と、画面作成部５４０とを備える。また、構造解析部５２０は、前処理部５２２と、分類部５２４と、名称分割部５２６と、構造決定部５２８とを有する。ＵＩ作成部１３０の各部は、互いに情報を送受するように構成されてよい。名称取得部５１０は、キー名称取得部の一例であってよい。名称分割部５２６は、キー名称分割部の一例であってよい。構造決定部５２８は、ツリー構造決定部の一例であってよい。画面作成部５４０は、表作成部又は画面作成装置の一例であってよい。
【００５０】
名称取得部５１０は、構造解析部５２０における構造解析処理の対象となる複数の文字列を取得する。本実施形態において、名称取得部５１０は、データ格納部１１０に格納されているデータファイルにおいて使用されている複数のキーの名称を取得する。
【００５１】
構造解析部５２０は、複数の文字列を解析して、各文字列を構成する要素間の関係を決定する。構造解析部５２０は、例えば、ツリー構造を構成する複数のノードのそれぞれと、複数の代表要素のそれぞれとの対応関係を決定することで、各文字列を構成する要素間の関係を決定する。
【００５２】
本実施形態において、構造解析部５２０は、名称取得部５１０が取得した複数のキー名称のそれぞれを１以上の単語に分割し、複数のキー名称に基づいて、１以上の単語のツリー構造を決定する。構造解析部５２０は、名称取得部５１０が取得した複数のキーの全てを、構造解析処理の対象としてもよく、名称取得部５１０が取得した複数のキーの一部を、構造解析処理の対象としてもよい。構造解析部５２０は、ツリー構造を構成する複数のノードと、上記の１以上の単語とが、一対一に対応するように、ツリー構造を決定してよい。構造解析部５２０は、複数のノードのそれぞれの名称を決定してよい。複数のノードの名称は、対応する単語であってもよく、対応する単語の一部を含む文字列であってもよい。
【００５３】
前処理部５２２は、分類部５２４、名称分割部５２６及び構造決定部５２８の少なくとも１つにおける処理の前処理を実行する。本実施形態において、前処理部５２２は、名称取得部５１０が取得した複数のキーの名称を受信し、全てのキーの名称について前処理を実施する。また、前処理部５２２は、前処理後の文字列を、分類部５２４に送信する。
【００５４】
前処理としては、（ｉ）処理対象となる複数のキーのそれぞれについて、当該キーの名称に含まれる第１の文字列を、予め定められた第２の文字列に置換する処理、及び、（ｉｉ）処理対象となる複数のキーのそれぞれについて、当該キーの名称から、当該キーの名称に含まれる第１の文字列を除去する処理の少なくとも一方を例示することができる。なお、第２の文字列は、第１の文字列とは異なる文字列であってよい。
【００５５】
これにより、入力者、入力部署などが異なることによる表記の変動が、構造解析処理の精度に及ぼす影響を抑制することができる。また、各キー名称の代表要素の抽出が容易になる。例えば、数字などの連続性又は規則性のある文字列を、同一の文字列に置換したり、削除したりすることで、連続性又は規則性のある文字列を含む文字列を、同一の単語として認識することができる。これにより、キー名称の分割が容易になり、その結果、代表要素の抽出が容易になる。
【００５６】
一実施形態において、前処理部５２２は、削除すべき文字列を定義する情報に基づいて、前処理を実施してよい。削除すべき文字列は、文字列そのもの、及び、文字列の品詞の少なくとも一方により定義されてよい。上記の情報は、例えば、格納部５３０に格納される。他の実施形態において、前処理部５２２は、第１の文字列及び第２の文字列の対応関係を定義する情報（辞書情報と称する場合がある。）に基づいて、前処理を実施してよい。辞書情報は、例えば、格納部５３０に格納される。
【００５７】
辞書情報は、表記方法の変動を統一するための情報を含んでよい。表記方法の変動を統一するための情報としては、音便変化前の文字列と、音便変化後の文字列との対応関係に関する情報、全角の文字列と、半角の文字列との対応関係に関する情報、カタカナの文字列と、ひらがなの文字列との対応関係に関する情報などを例示することができる。表記方法の変動を統一するための情報は、長音、ハイフン、括弧などのように、複数の方法により表される記号を統一するための情報を含んでもよい。
【００５８】
辞書情報は、連続性又は規則性のある文字列を統一するための情報を含んでよい。連続性又は規則性のある文字列を統一するための情報は、置換前の文字列そのもの、及び、当該文字列の品詞の少なくとも一方と、置換後の文字列との対応関係に関する情報であってもよい。一実施形態によれば、１、２、３、０１、０２、０３という文字列のそれぞれと、「？」又は「＊」という文字列とが対応づけられる。他の実施形態によれば、数詞という品詞と、「？」又は「＊」という文字列とが対応付けられる。
【００５９】
分類部５２４は、複数のキーの名称に基づいて、複数のキーを１以上のグループに分類する。例えば、分類部５２４は、同一の文字列を含むキーが同一のグループを構成するように、複数のキーを分類する。一実施形態において、分類部５２４は、キー名称の語頭に同一の文字列が配されるキーが同一のグループを構成するように、複数のキーを分類する。他の実施形態において、分類部５２４は、キー名称の語尾に同一の文字列が配されるキーが同一のグループを構成するように、複数のキーを分類する。
【００６０】
分類部５２４は、複数のキーをソートすることにより、同一の文字列を抽出してもよい。ソートのアルゴリズムとしては、交換ソート、選択ソート、挿入ソート、マージソート、非比較ソート、並行ソート、混成ソートなどの任意のアルゴリズムを利用することができる。任意のアルゴリズムの組み合わせによりソートが実行されてもよい。また、ソートの方向は、キー名称の語頭から語尾に向かう方向（前方と称する場合がある。）であってもよく、キー名称の語尾から語頭に向かう方向（前方と称する場合がある。）であってもよい。ソート結果の並び順は、昇順であってもよく、降順であってもよい。
【００６１】
分類部５２４は、複数のキーを、構造解析処理の対象となるキーのグループと、構造解析処理の対象とならないキーのグループとに分類してもよい。例えば、分類部５２４は、複数のキーを、キー名称中に表作成処理の対象となることを示す文字列が含まれるキーのグループと、キー名称中に表作成処理の対象となることを示す文字列が含まれないキーのグループとに分類する。
【００６２】
分類部５２４は、特定のキーの識別情報（例えば、キー名称である。）が予め定められた条件を満足するか否かによって、当該特定のキーが構造解析処理の対象となるか否かを決定してよい。これにより、上記の特定のキーを表形式の入出力ＵＩに含めるか否かを制御することができる。予め定められた条件としては、キー名称に特定の文字列が含まれるという条件を例示することができる。予め定められた条件は、表形式の入出力ＵＩに含めることを希望する文字列のリストであってもよく、表形式の入出力ＵＩに含めることを希望しない文字列のリストであってもよい。予め定められた条件を定義したファイルが、格納部５３０に格納されていてもよい。
【００６３】
本実施形態において、分類部５２４は、前処理部５２２から、前処理後の複数のキー名称を受信する。分類部５２４は、受信した複数のキーを、それらのキー名称に基づいて、構造解析処理の対象となるグループと、構造解析処理の対象とならないグループとに分類する。また、分類部５２４は、構造解析処理の対象となるグループを構成するキーの前処理後の名称を、名称分割部５２６に送信する。
【００６４】
しかしながら、分類部５２４は、本実施形態に限定されない。他の実施形態において、分類部５２４は、名称取得部５１０が取得した複数のキーの名称を受信し、受信した複数のキーを、構造解析処理の対象となるキーのグループと、構造解析処理の対象とならないキーのグループとに分類する。また、分類部５２４は、構造解析処理の対象となるキーのグループを構成するキーの名称を、前処理部５２２に送信する。その後、前処理部５２２は、受信したキー名称の前処理を実施して、前処理後のキー名称を名称分割部５２６に送信する。
【００６５】
名称分割部５２６は、複数のキーのそれぞれを１以上の単語に分割する。本実施形態において、名称分割部５２６は、前処理部５２２により第１の文字列が置換又は除去されたキーの名称を、１以上の単語に分割する。名称分割部５２６は、分割位置に関する情報を構造決定部５２８に送信する。例えば、名称分割部５２６は、各キーを識別するキーＩＤと、各キーに含まれる１以上の単語とが対応付けられた情報を、構造決定部５２８に送信する。
【００６６】
一実施形態において、名称分割部５２６は、処理対象となる複数のキーの名称に基づいて、各キーを１以上の単語に分割する。例えば、名称分割部５２６は、処理対象となる複数のキーの名称のうちの２以上のキーの名称の語頭又は語尾において、当該２以上のキーの名称に共通する共通文字列を抽出する。名称分割部５２６は、共通文字列を有するキーの名称を、当該共通文字列の位置で分割する。共通文字列の位置は、当該共通文字列の直前であってもよく、当該共通文字列の直後であってもよい。
【００６７】
他の実施形態において、名称分割部５２６は、処理対象となる複数のキーのそれぞれについて、当該キーの名称が予め定められた文字列（分割記号と称する場合がある。）を含むか否かを判定する。名称分割部５２６は、キーの名称が分割記号を含む場合、分割記号の位置で当該キーの名称を分割する。分割記号の位置は、当該分割記号の直前であってもよく、当該分割記号の直後であってもよい。分割記号は、数字又は記号であってよい。分割記号は、第３の文字列の一例であってよい。
【００６８】
さらに他の実施形態において、名称分割部５２６は、処理対象となる複数のキーのそれぞれについて、当該キーが、複数の種類の文字列を含むか否かを判定する。文字列の種類としては、文字、数字、記号、特殊文字などを例示することができる。名称分割部５２６は、キーの名称が複数の種類の文字列を含む場合、当該文字列の種類が変更する位置で当該キーの名称を分割する。文字列の種類が変更する位置は、当該変更位置の直前であってもよく、当該変更位置の直後であってもよい。
【００６９】
構造決定部５２８は、複数のキーの名称を構成する複数の単語同士の関係を決定する。本実施形態において、構造決定部５２８は、複数のキーの名称を構成する複数の単語のツリー構造を決定する。構造決定部５２８は、名称取得部５１０が取得した全てのキーの名称に基づいて、ツリー構造を決定してもよく、名称取得部５１０が取得したキーのうち、一部のキーの名称に基づいて、ツリー構造を決定してもよい。
【００７０】
例えば、構造決定部５２８は、分類部５２４により分類されたグループのうち、２以上のキーを含むグループの少なくとも１つを構成するキーの名称に含まれる単語について、ツリー構造を決定する。構造決定部５２８は、分類部５２４により構造解析処理の対象となるグループに分類されたキーの名称に含まれる単語について、ツリー構造を決定してよい。構造決定部５２８は、分類部５２４によりキー名称中に表作成処理の対象となることを示す文字列を含むキーのグループに分類されたキーの名称に含まれる単語について、ツリー構造を決定してもよい。
【００７１】
構造決定部５２８は、予め定められた条件に基づいて、キー名称に含まれる特定の単語の階層を決定してよい。予め定められた条件としては、特定の単語と、ツリー構造における階層とを対応付けた条件を例示することができる。これにより、一の単語と、他の単語との階層を一致させることができる。その結果、ユーザは、表形式のＵＩを意図したとおりに作成することができる。予め定められた条件を定義したファイルが、格納部５３０に格納されていてもよい。
【００７２】
本実施形態において、構造決定部５２８は、名称分割部５２６から、複数のキーの少なくとも一部について、当該キー名称の分割位置に関する情報を取得する。上述のとおり、名称分割部５２６は、複数のキーのそれぞれの名称に基づいて、各キー名称の分割位置を決定している。構造決定部５２８は、複数のキーの少なくとも一部について、分割後の文字列に関する情報を取得してもよい。構造決定部５２８は、名称分割部５２６から取得した情報に基づいて、各キーの名称を構成する単語を決定する。構造決定部５２８は、例えば、各キー名称を分割位置で分割して得られた複数の文字列を、各キーの名称を構成する単語として決定する。
【００７３】
一実施形態において、構造決定部５２８は、複数のキーの少なくとも一部について、語頭に配された単語を根ノードとし、語頭に近い単語ほど上位のノードとなるように、１以上の単語のツリー構造を決定する。他の実施形態において、構造決定部５２８は、処理対象となる複数のキーの少なくとも一部について、語尾に配された単語を根ノードとし、語尾に近い単語ほど上位のノードとなるように、１以上の単語のツリー構造を決定する。
【００７４】
さらに他の実施形態において、構造決定部５２８は、処理対象となる複数のキーの少なくとも一部について、当該キーの名称に含まれる文字列の言語の種類、又は、データベースシステム１００において主に使用される言語の種類に基づいて、１以上の単語のツリー構造を決定してよい。例えば、上記の言語の種類が日本語又は韓国語である場合、構造決定部５２８は、語頭に配された単語を根ノードとし、語頭に近い単語ほど上位のノードとなるように、１以上の単語のツリー構造を決定する。一方、上記の言語の種類が英語である場合、構造決定部５２８は、語尾に配された単語を根ノードとし、語尾に近い単語ほど上位のノードとなるように、１以上の単語のツリー構造を決定する。
【００７５】
構造決定部５２８は、ツリー構造を構成する１以上のノードのそれぞれの名称を決定してもよい。ノードの名称は、対応する単語であってもよく、対応する単語の一部を含む文字列であってもよい。
【００７６】
格納部５３０は、ＵＩ作成部１３０により使用される情報を格納する。格納部５３０は、ＵＩ作成部１３０により作成された情報を格納してもよい。
【００７７】
画面作成部５４０は、ＵＩ画面を作成する。本実施形態において、画面作成部５４０は、構造決定部５２８が決定した構造に基づいて画面を作成する。例えば、画面作成部５４０は、構造決定部５２８が決定したツリー構造が複数の葉ノードを有する場合に、複数の葉ノードのそれぞれに対応する複数の行又は列を有する表形式の入出力ＵＩを作成する。また、画面作成部５４０は、入力画面２０に配されるＵＩのレイアウトなどを決定し、入力画面２０を作成する。
【００７８】
画面作成部５４０は、上記の表の適切な位置に、データ格納部１１０へのアクセスを制御する命令を配置して、入力欄２６を作成する。一実施形態によれば、画面作成部５４０は、表に含まれる複数のセルの少なくとも一部に、当該セルに対するユーザからの入力を受け付けて、データベースに格納するための命令を配置する。他の実施形態によれば、画面作成部５４０は、表に含まれる複数のセルの少なくとも一部に、データベースを参照して、当該セルに対応するバリューを表示するための命令を配置する。
【００７９】
画面作成部５４０は、予め定められた条件に基づいて、表における複数のキー名称の順番を決定してよい。予め定められた条件としては、表において、特定の単語を含むキー名称を、他のキー名称よりも上位に表示させることを示す条件であってもよく、表において、特定の単語を含むキー名称を、他のキー名称よりも下位に表示させることを示す条件であってもよい。予め定められた条件を定義したファイルが、格納部５３０に格納されていてもよい。
【００８０】
画面作成部５４０は、特定のキーの識別情報（例えば、キー名称である。）及びバリューの少なくとも一方が予め定められた条件を満足する場合、当該バリューをスクランブル表示又はマスク表示することを決定してもよい。例えば、画面作成部５４０は、特定のセルに対応するバリューの値を表示する代わりに、当該バリューの値とは異なる他の文字列又は記号に置き換えて表示する。予め定められた条件としては、特定のセルに対応するバリューの値が秘密情報又は機密情報である場合を例示することができる。
【００８１】
予め定められた条件としては、キー名称又はバリューに特定の文字列が含まれるという条件を例示することができる。例えば、キー名称に、パスワード又は個人情報に関連する文字列が含まれる場合、又は、バリューに個人情報に関する文字列が含まれる場合である。個人情報に関連する文字列としては、性別、住所、氏名、年齢、職業などを例示することができる。予め定められた条件を定義したファイルが、格納部５３０に格納されていてもよい。
【００８２】
本実施形態においては、構造解析部５２０が、複数のキーの名称に基づいて、当該複数のキーに含まれる複数の単語同士の関係を、ツリー構造を用いて決定する場合について説明した。しかしながら、構造解析部５２０は本実施形態に限定されない。構造解析部５２０は、キー名称以外の文字列（主文字列と称する場合がある。）に含まれる文字列（サブ文字列と称する場合がある。）を対象として、構造解析処理を実行してもよい。例えば、構造解析部５２０は、複数の主文字列に基づいて、当該複数の主文字列を構成する複数のサブ文字列の関係を決定してよい。また、ＵＩ作成部１３０は、サブ文字列の関係に基づいて、表を作成してもよい。さらに他の実施形態において、構造解析部５２０は、複数のキーの名称に基づいて、当該複数のキーに含まれる複数の単語同士の関係を、ツリー構造を用いて決定しなくてもよい。
【００８３】
図６は、名称分割部５２６の内部構成の一例を概略的に示す。本実施形態において、名称分割部５２６は、分割記号検出部６１０と、種類変更検出部６２０と、共通文字列検出部６３０と、分割位置決定部６４０とを備える。また、共通文字列検出部６３０は、前方ソート部６３２と、後方ソート部６３４とを有する。
【００８４】
一実施形態において、名称分割処理の対象となるキーは、分割記号検出部６１０、種類変更検出部６２０及び共通文字列検出部６３０の少なくとも２つにおいて、並列に処理される。例えば、名称分割処理の対象となるキーは、分割記号検出部６１０、種類変更検出部６２０及び共通文字列検出部６３０において並列に処理される。名称分割処理の対象となるキーは、分割記号検出部６１０及び種類変更検出部６２０において並列に処理された後、共通文字列検出部６３０において処理されてもよい。この場合、共通文字列検出部６３０は、分割記号検出部６１０及び種類変更検出部６２０の結果を利用してよい。
【００８５】
他の実施形態において、名称分割処理の対象となるキーは、分割記号検出部６１０、種類変更検出部６２０及び共通文字列検出部６３０において、順番に処理される。処理の順番は特に限定されるものではないが、共通文字列検出部６３０における処理は、分割記号検出部６１０及び種類変更検出部６２０の少なくとも一方における処理の後で実行されてよい。
【００８６】
分割記号検出部６１０は、処理対象となるキーのそれぞれについて、当該キーの名称が分割記号を含むか否かを判定する。分割記号検出部６１０は、キー名称中に分割記号が含まれる場合、その旨を分割位置決定部６４０に通知する。分割記号検出部６１０は、分割記号の位置でキー名称を分割して、分割後の文字列を分割位置決定部６４０に通知してもよい。分割記号検出部６１０は、分割後の文字列から分割記号を削除して、分割記号を含まない文字列を分割位置決定部６４０に通知してもよい。
【００８７】
種類変更検出部６２０は、処理対象となるキーのそれぞれについて、当該キーの名称を構成する文字列において、文字列の種類が変化する箇所（変更箇所と称する場合がある。）を検出する。種類変更検出部６２０は、キー名称中で文字列の種類が変化する場合、その旨を分割位置決定部６４０に通知する。種類変更検出部６２０は、文字列の種類が変化する位置でキー名称を分割して、分割後の文字列を分割位置決定部６４０に通知してもよい。
【００８８】
共通文字列検出部６３０は、処理対象となる複数のキーの名称のうちの２以上のキーの名称の語頭又は語尾において、当該２以上のキーの名称に共通する第１の共通文字列を抽出する。例えば、共通文字列検出部６３０は、前方ソート部６３２による前方ソート処理、後方ソート部６３４による後方ソート処理、及び、これらの組み合わせの少なくとも１つを含む処理を実行することで、共通文字列を抽出する。分類部５２４において、既にソート処理が実行されている場合、共通文字列検出部６３０は、分類部５２４からソート結果を受信してもよい。
【００８９】
前方ソート部６３２は、各キーの名称を、語頭から語尾に向かう方向に沿って解析して、複数のキー名称を昇順又は降順に並べ替える。後方ソート部６３４は、各キーの名称を、語尾から語頭に向かう方向に沿って解析して、複数のキー名称を昇順又は降順に並べ替える。ソートのアルゴリズムとしては、交換ソート、選択ソート、挿入ソート、マージソート、非比較ソート、並行ソート、混成ソートなどの任意のアルゴリズムを利用することができる。任意のアルゴリズムの組み合わせによりソートが実行されてもよい。
【００９０】
共通文字列の抽出処理の実行回数は特に限定されない。共通文字列検出部６３０は、共通文字列の抽出処理を繰り返してもよい。一実施形態において、共通文字列検出部６３０は、第１の共通文字列を有するキーの名称のそれぞれについて、第１の共通文字列を除去する。その後、共通文字列検出部６３０は、第１の共通文字列が除去されたキーの名称のうちの２以上のキーの名称の語頭又は語尾において、当該２以上のキーの名称に共通する第２の共通文字列を抽出する。
【００９１】
共通文字列検出部６３０は、共通文字列が抽出できなくなるまで、上記の処理を繰り返してよい。共通文字列検出部６３０は、予め定められた回数だけ、上記の処理を繰り返してもよい。予め定められた回数は、キーの名称に含まれる文字列の言語の種類、又は、データベースシステム１００において主に使用される言語の種類に基づいて、決定されてよい。
【００９２】
共通文字列検出部６３０は、複数のキー名称に共通する共通文字列を検出した場合、その旨を分割位置決定部６４０に通知する。例えば、共通文字列検出部６３０は、共通文字列を示す情報と、当該共通文字列を含む複数のキーのキーＩＤとを対応付けて、分割位置決定部６４０に送信する。共通文字列検出部６３０は、共通文字列の位置でキー名称を分割して、分割後の文字列を分割位置決定部６４０に通知してもよい。
【００９３】
分割位置決定部６４０は、名称分割処理の対象となる複数のキー名称のそれぞれについて、分割位置を決定する。本実施形態において、分割位置決定部６４０は、分割記号検出部６１０から、各キー名称における分割記号の位置を取得する。分割位置決定部６４０は、種類変更検出部６２０から、各キー名称において文字列の種類が変化する位置を取得する。また、分割位置決定部６４０は、共通文字列検出部６３０から、各キー名称における共通文字列の位置を取得する。分割位置決定部６４０は分割記号の位置、文字列の種類が変化する位置及び共通文字列の位置の少なくとも１つの位置で、キー名称を分割することを決定する。
【００９４】
分割位置決定部６４０は、決定された分割位置でキー名称を分割してよい。一実施形態によれば、分割位置決定部６４０は、決定された分割位置の直前でキー名称を分割する。他の実施形態によれば、分割位置決定部６４０は、決定された分割位置の直後でキー名称を分割する。
【００９５】
分割位置決定部６４０は、各キー名称の分割位置に関する情報を、構造決定部５２８に送信する。分割位置決定部６４０は、同一の共通文字列を含む複数のキー名称に関する情報を、構造決定部５２８に送信してもよい。分割位置決定部６４０は、分割処理後の文字列を構造決定部５２８に送信してもよい。
【００９６】
本実施形態においては、名称分割部５２６が、分割記号、文字列の種類の変更、及び、共通文字列の少なくとも１つを検出することで、分割位置を検出する場合について説明した。しかしながら、名称分割部５２６は本実施形態に限定されない。他の実施形態において、名称分割部５２６は、形態素解析により各キー名称を解析して、当該解析結果に基づいて、各キー名称の分割位置を決定してもよい。さらに他の実施形態において、名称分割部５２６は、辞書情報を利用して、各キー名称の分割位置を決定してもよい。
【００９７】
図７は、格納部５３０の内部構成の一例を概略的に示す。本実施形態において、格納部５３０は、辞書情報格納部７１０と、構造情報格納部７２０と、画面情報格納部７３０とを備える。
【００９８】
辞書情報格納部７１０は、辞書情報を格納する。構造情報格納部７２０は、構造決定部５２８が決定したツリー構造に関する情報（構造情報と称する場合がある。）を格納する。例えば、構造情報格納部７２０は、各ツリー構造のＩＤと、当該ツリー構造に関連する複数のキーのＩＤと、当該ツリー構造を構成する複数のノードに関する情報とを対応付けて格納する。ノードに関する情報としては、各ノードのＩＤ、各ノードの名称、各ノードの階層、各ノードの上位ノードのＩＤ又は各ノードの下位ノードのＩＤなどを例示することができる。画面情報格納部７３０は、画面作成部５４０が作成したＵＩ画面に関する情報を格納する。ＵＩ画面に関する情報は、ＨＴＭＬファイルであってもよい。
【００９９】
図８は、ＵＩ作成部１３０における情報処理の一例を概略的に示す。本実施形態によれば、まず、ステップ８０２（ステップをＳと省略して表現する場合がある。）において、名称取得部５１０が、複数のキー名称１２を含むユーザ入力１０を取得する。次に、Ｓ８０４において、構造解析部５２０が、複数のキー名称に基づいて、各キー名称を構成する文字列同士の関係を解析する。構造解析部５２０は、各キー名称を構成する複数の文字列のそれぞれと、ツリー構造を構成する複数のノードのそれぞれとを対応づけることで、各キー名称を構成する文字列同士の関係を決定する。その後、Ｓ８０６において、画面作成部５４０が、構造解析部５２０の解析結果に基づいて、表形式の入力欄２６を含む入力画面２０を作成する。
【０１００】
図９は、構造解析部５２０における情報処理の一例を概略的に示す。本実施形態によれば、まず、Ｓ９０２において、前処理部５２２が、名称取得部５１０から複数のキー名称を取得する。また、前処理部５２２は、複数のキー名称のそれぞれに対して前処理を実行する。前処理部５２２は、前処理後のキー名称を、分類部５２４に送信する。
【０１０１】
Ｓ９０４において、分類部５２４が、前処理部５２２から受信した複数のキー名称を、１以上のグループに分類する。また、分類部５２４は、１以上のグループのうち、構造解析処理の対象となるグループを決定する。分類部５２４は、構造解析処理の対象となるグループに含まれる複数のキーに関する情報を、名称分割部５２６に送信する。
【０１０２】
Ｓ９１０において、分割記号検出部６１０及び種類変更検出部６２０のそれぞれが、分類部５２４から受信した複数のキー名称のそれぞれについて、分割記号及び文字列の種類の変更箇所を検出する。Ｓ９１０において分割記号及び文字列の種類の変更箇所が検出されなかった場合（Ｓ９１２のＮＯの場合）、分類部５２４から受信した複数のキー名称が、共通文字列検出部６３０に送信され、Ｓ９２０の処理が実行される。
【０１０３】
一方、Ｓ９１０において分割記号が検出された場合（Ｓ９１２のＹＥＳの場合）、Ｓ９１４において、分割記号検出部６１０が、分割記号を含むキー名称を、分割記号の位置で分割する。その後、各キーに関するＩＤ及び分割後の文字列が共通文字列検出部６３０に送信され、Ｓ９２０の処理が実行される。また、Ｓ９１０において変更箇所が検出された場合（Ｓ９１２のＹＥＳの場合）、Ｓ９１４において、種類変更検出部６２０が、変更箇所を含むキー名称を、変更箇所の位置で分割する。その後、各キーに関するＩＤ及び分割後の文字列が共通文字列検出部６３０に送信され、Ｓ９２０の処理が実行される。
【０１０４】
Ｓ９２０において、共通文字列検出部６３０が、処理対象となる複数の文字列の少なくとも２つが、共通の文字列を含むか否かを判定する。これにより、共通文字列の有無を検出する。Ｓ９２０において共通文字列が検出されなかった場合（Ｓ９２２のＮＯの場合）、共通文字列検出部６３０は、共通文字列の検出処理を終了して、各キー名称の分割位置に関する情報を、構造決定部５２８に送信する。
【０１０５】
一方、Ｓ９２０において共通文字列が検出された場合（Ｓ９２２のＹＥＳの場合）、Ｓ９２４において、共通文字列検出部６３０が、当該共通文字列を含む文字列を、当該共通文字列の位置で分割する。また、Ｓ９２６において、共通文字列検出部６３０が、当該共通文字列を含む文字列から、当該共通文字列を削除する。その後、共通文字列検出部６３０は、共通文字列が削除された文字列について、再度、共通文字列の検出処理を実行する。共通文字列検出部６３０は、共通文字列が検出されなくなるまで、Ｓ９２０、Ｓ９２２、Ｓ９２４及びＳ９２６の処理を繰り返す。
【０１０６】
その後、Ｓ９３０において、構造決定部５２８が、ツリー構造を決定する。構造決定部５２８は、決定されたツリー構造の構造情報を構造情報格納部７２０に格納する。
【０１０７】
本実施形態においては、分割記号検出部６１０及び種類変更検出部６２０における処理が並列に実行された後、共通文字列検出部６３０における処理が実行される場合について説明した。しかしながら、構造解析部５２０における情報処理は本実施形態に限定されない。他の実施形態において、分割記号検出部６１０における処理、種類変更検出部６２０における処理、及び、共通文字列検出部６３０における処理がこの順に実行される。さらに他の実施形態において、分割記号検出部６１０における処理、種類変更検出部６２０における処理、及び、共通文字列検出部６３０における処理が並列に実行される。
【０１０８】
また、本実施形態においては、分割記号又は変更箇所の検出されたキー名称が分割された後、共通文字列の検出処理が実行される場合について説明した。しかしながら、構造解析部５２０における情報処理は本実施形態に限定されない。他の実施形態において、分割記号又は変更箇所の検出されたキー名称が分割されることなく、共通文字列の検出処理が実行されてもよい。
【０１０９】
図１０は、構造解析部５２０における情報処理の一例を概略的に示す。本実施形態によれば、まず、構造解析部５２０に、「サーバ名」、「ＬＡＮ０１＿ＩＰアドレス」、「ＬＡＮ０１＿ＬＡＮ  ＩＤ」、「ＬＡＮ０２＿ＩＰアドレス」、「ＬＡＮ０２＿ＬＡＮ  ＩＤ」、「ＬＡＮ０３＿ＩＰアドレス」、及び、「ＬＡＮ０３＿ＬＡＮ  ＩＤ」という７個のキー名称を含むインプット１０１０が入力される。インプット１０１０は、ユーザ入力１０の一例であってよい。
【０１１０】
次に、前処理部５２２が、各キーの名称に含まれる数字を「＊」という文字列に置換し、各キーの名称に含まれる「＿」という文字列を削除する。前処理部５２２は、前処理後のキー名称を、分類部５２４に出力する。分類部５２４は、入力された複数のキーのうち、キー名称に「ＬＡＮ＊」という文字列を含むキーのグループと、「サーバ名」とに分類して、アウトプット１０２０を出力する。また、分類部５２４は、前処理後のキー名称に「ＬＡＮ＊」という文字列を含むキーのグループを、名称分割部５２６のインプット１０３０として選択する。
【０１１１】
名称分割部５２６は、インプット１０３０に含まれる前処理後のキー名称を、１以上の単語に分割して、アウトプット１０４０を出力する。例えば、前方ソート部６３２は、インプット１０３０に含まれる前処理後のキー名称をソートして、各キー名称の語頭に、「ＬＡＮ＊」という共通文字列が検出されたことを示すアウトプット１０４２を出力する。また、後方ソート部６３４は、インプット１０３０に含まれる前処理後のキー名称をソートして、一部のキー名称の語尾に、「＊ＬＡＮ  ＩＤ」という共通文字列が検出され、他の一部のキー名称の語尾に、「＊ＩＰアドレス」という共通文字列が検出されたことを示すアウトプット１０４４を出力する。
【０１１２】
構造決定部５２８は、名称分割部５２６のアウトプットに基づいて、インプット１０３０に含まれるキー名称を構成する複数の単語の構造を解析する。本実施形態において、データベースシステム１００において使用される主な言語は、日本語に設定されている。そこで、構造決定部５２８は、語頭に配された単語を根ノードとし、語頭に近い単語ほど上位のノードとなるように、１以上の単語のツリー構造を決定する。その結果、「ＬＡＮ」という名称の根ノードの下位に、「ＬＡＮ  ＩＤ」及び「ＩＰアドレス」という葉ノードが配されたツリー構造を示すアウトプット１０５０を出力する。
【０１１３】
図１１は、データテーブル１１００の一例を概略的に示す。データテーブル１１００は、構造情報格納部７２０に格納される構造情報の一例であってよい。本実施形態において、データテーブル１１００は、キーＩＤ１１０２と、キー名称１１０４と、リスト化の要否１１０６と、ツリーＩＤ１１０８と、ノードＩＤ１１１０と、ノード名称１１１２と、上位ノード１１１４とを対応付けて格納する。
【０１１４】
ツリーＩＤ１１０８には、各キー名称に関連するツリー構造のＩＤが格納される。ノードＩＤ１１１０及びノード名称１１１２のそれぞれには、各キー名称に含まれる単語に対応するノードのＩＤ及び名称が格納される。上位ノード１１１４には、例えば、各ノードの上位ノードのＩＤが格納される。
【０１１５】
図１２は、ＵＩ画面の少なくとも一部を構成する表１２００の一例を概略的に示す。表１２００は、複数のキーの名称に含まれる複数の文字列が３階層のツリー構造を構成する場合に、画面作成部５４０により作成される表の一例であってよい。表１２００は、画面作成部５４０により作成される表形式の入力欄の一例であってよい。
【０１１６】
本実施形態において、表１２００は、表タイトル１２１０と、表本体１２２０とを含む。また、表本体１２２０は、表本体１２２０に格納される各レコードを識別するレコードＩＤが格納されるフィールド１２３０と、各レコードを構成する具体的なデータが格納されるフィールド１２４０及びフィールド１２５０とを含む。本実施形態において、フィールド１２４０は、フィールド１２４２及びフィールド１２４４を含み、フィールド１２５０は、フィールド１２５２及びフィールド１２５４を含む。
【０１１７】
図１２に記載された例によれば、表タイトル１２１０として、ツリー構造の第１階層の名称が割り当てられる。フィールド１２４０及びフィールド１２５０のそれぞれの名称として、ツリー構造の第２階層のそれぞれの名称が割り当てられる。また、フィールド１２４２及びフィールド１２４４のそれぞれの名称として、フィールド１２４０に対応する第２階層の下位に位置する第３階層のそれぞれの名称が割り当てられる。同様に、フィールド１２５２及びフィールド１２５４のそれぞれの名称として、フィールド１２５０に対応する第２階層の下位に位置する第３階層のそれぞれの名称が割り当てられる。
【０１１８】
表本体１２２０の複数のセルの少なくとも一部には、当該セルに対するユーザからの入力を受け付けて、データ格納部１１０に格納するための命令が配されてよい。また、表本体１２２０の複数のセルの少なくとも一部には、データ格納部１１０を参照して、当該セルに対応するバリュー又はデータを表示するための命令が配されてよい。ユーザ又はユーザの属性に応じて、特定のセルが強調して表示されるように、当該特定のセルの表示態様が調整されてもよい。
【０１１９】
図１３、図１４及び図１５を用いて、ＵＩ作成部１３０における情報処理の他の例を概略的に示す。本実施形態によれば、ＵＩ作成部１３０は、ＳＡＸ方式でデータを解析する。ＵＩ作成部１３０は、複数のキーの名称のうちの一部を受け付け、解析結果を、順次、表形式の入出力ＵＩに反映させながら、ＵＩ画面を作成する。ＵＩ作成部１３０は、複数のキーの名称を１つずつ受け付けて、解析結果を、順次、表形式の入出力ＵＩに反映させながら、ＵＩ画面を作成してもよい。
【０１２０】
図８及び図９に関連した情報処理方法によれば、構造決定部５２８は、複数のキーに含まれる複数の単語同士の関係を、ツリー構造を用いて決定した。これに対して、本実施形態によれば、構造決定部５２８が、解析対象となる文字列と、既に解析済の複数の文字列のそれぞれとを比較して、両者に共通する文字列の有無を判断する点で、図８及び図９に関連した情報処理方法と相違する。本実施形態において、構造決定部５２８は、キー名称取得部、又は、共通文字列抽出部の一例であってよい。
【０１２１】
本実施形態によれば、まず、Ｓ１３０２において、前処理部５２２が、名称取得部５１０から複数のキー名称を取得する。また、前処理部５２２は、複数のキー名称のそれぞれに対して前処理を実行する。前処理部５２２は、前処理後のキー名称を、順番に、構造決定部５２８に送信する。Ｓ１３０４において、構造決定部５２８は、前処理後のキー名称のうち、少なくとも、第１のキー名称及び第２のキー名称を取得する。Ｓ１３０６において、構造決定部５２８は、第１のキー名称及び第２のキー名称を比較して、両者に共通する文字列である第１の共通文字列を抽出する。
【０１２２】
第１の共通文字列が抽出された場合（Ｓ１３０６のＹＥＳ）、構造決定部５２８は、解析結果として、第１の共通文字列を示す情報を画面作成部５４０に送信する。この場合、Ｓ１３０８において、画面作成部５４０は、第１のキー名称から第１の共通文字列を削除した文字列に対応する行又は列と、第２のキー名称から第１の共通文字列を削除した文字列に対応する行又は列とを有する表を含む画面を作成する。上記の表は、表形式の入出力ＵＩであってもよい。その後、図１４のＡの処理に進む。
【０１２３】
図１４のＳ１４０２において、構造決定部５２８は、前処理後のキー名称のうち、少なくとも第３のキー名称を取得する。Ｓ１４０４において、構造決定部５２８は、第３のキー名称と、第１のキー名称及び第２のキー名称とを比較して、第１のキー名称、第２のキー名称及び第３のキー名称に共通する文字列である第２の共通文字列を抽出する。
【０１２４】
第２の共通文字列が抽出された場合（Ｓ１４０４のＹＥＳ）、構造決定部５２８は、解析結果として、第２の共通文字列を示す情報を画面作成部５４０に送信する。この場合、Ｓ１４０６において、画面作成部５４０は、Ｓ１３０８において作成された表に、第３のキー名称に対応する行又は列を追加する。次に、Ｓ１４０８において、第１の共通文字列及び第２の共通文字列を比較して、両者が同一であるか否かを判定する。
【０１２５】
第１の共通文字列及び第２の共通文字列が同一の文字列である場合（Ｓ１４０８のＹＥＳ）、画面作成部５４０は、第１のキー名称から第１の共通文字列を削除した文字列に対応する行又は列、第２のキー名称から第１の共通文字列を削除した文字列に対応する行又は列、及び、第３のキー名称から第１の共通文字列を削除した文字列に対応する行又は列を有する表を作成する。その後、複数のキー名称の全てに対して、図１４と同様の処理を繰り返した後、処理を終了する。
【０１２６】
第１の共通文字列は、例えば、図１２に関連して説明した表１２００における第１階層の名称に相当する。第１のキー名称から第１の共通文字列を削除した文字列、第２のキー名称から第１の共通文字列を削除した文字列、及び、第３のキー名称から第１の共通文字列を削除した文字列のそれぞれは、第２階層の名称に相当する。
【０１２７】
第１の共通文字列及び第２の共通文字列が同一の文字列でない場合（Ｓ１４０８のＮＯ）、Ｓ１４１０において、画面作成部５４０は、第１のキー名称から、第１の共通文字列及び第２の共通文字列を削除した文字列に対応する行又は列、第２のキー名称から、第１の共通文字列及び第２の共通文字列を削除した文字列に対応する行又は列、並びに、第３のキー名称から第２の共通文字列を削除した文字列に対応する行又は列を有する表を作成する。その後、複数のキー名称の全てに対して、図１４と同様の処理を繰り返した後、処理を終了する。
【０１２８】
第２の共通文字列は、例えば、図１２に関連して説明した表１２００における第１階層の名称に相当する。第１の共通文字列は、第２階層の名称に相当する。第３のキー名称から第２の共通文字列を削除した文字列は、第２階層の名称に相当する。第１のキー名称から、第１の共通文字列及び第２の共通文字列を削除した文字列、及び、第２のキー名称から第１の共通文字列及び第２の共通文字列を削除した文字列のそれぞれは、第３階層の名称に相当する。
【０１２９】
また、第２の共通文字列が抽出されなかった場合（Ｓ１４０４のＮＯ）、Ｓ１４１２において、画面作成部５４０は、画面作成部５４０は、Ｓ１３０８において作成された表の外部に、第３のキー名称に対応する文字列が配置された画面を作成する。その後、複数のキー名称の全てに対して、図１４と同様の処理を繰り返した後、処理を終了する。
【０１３０】
一方、第１の共通文字列が抽出されなかった場合（Ｓ１３０６のＮＯ）、構造決定部５２８は、解析結果として、第１の共通文字列が抽出されなかったことを示す情報を画面作成部５４０に送信する。この場合、Ｓ１３１０において、画面作成部５４０は、第１のキー名称から第１共通文字列を削除した文字列に対応する行又は列と、第２のキー名称から第１共通文字列を削除した文字列に対応する行又は列とを有する表を含まない画面を作成する。その後、図１５のＢの処理に進む。
【０１３１】
図１５のＳ１５０２において、構造決定部５２８は、前処理後のキー名称のうち、少なくとも第３のキー名称を取得する。Ｓ１５０４において、構造決定部５２８は、第３のキー名称及び第１のキー名称を比較して、両者に共通する文字列である第３の共通文字列を抽出する。
【０１３２】
第３の共通文字列が抽出された場合（Ｓ１５０４のＹＥＳ）、Ｓ１５０６において、画面作成部５４０は、Ｓ１３０８と同様の方法により、第１のキー名称から第３の共通文字列を削除した文字列に対応する行又は列と、第３のキー名称から第３の共通文字列を削除した文字列に対応する行又は列とを有する表を含む画面を作成する。上記の表は、表形式の入出力ＵＩであってもよい。その後、複数のキー名称の全てに対して、図１４と同様の処理を繰り返した後、処理を終了する。
【０１３３】
第３の共通文字列が抽出されなかった場合（Ｓ１５０４のＮＯ）、Ｓ１５０８において、構造決定部５２８は、第３のキー名称及び第２のキー名称を比較して、両者に共通する文字列である第４の共通文字列を抽出する。第４の共通文字列が抽出された場合（Ｓ１５０８のＹＥＳ）、Ｓ１５１０において、画面作成部５４０は、Ｓ１３０８と同様の方法により、第２のキー名称から第４の共通文字列を削除した文字列に対応する行又は列と、第３のキー名称から第４の共通文字列を削除した文字列に対応する行又は列とを有する表を含む画面を作成する。上記の表は、表形式の入出力ＵＩであってもよい。その後、複数のキー名称の全てに対して、図１４と同様の処理を繰り返した後、処理を終了する。
【０１３４】
第４の共通文字列が抽出されなかった場合（Ｓ１５０８のＮＯ）、Ｓ１５１２において、画面作成部５４０は、Ｓ１３１０と同様にして、表を含まない画面を作成する。その後、複数のキー名称の全てに対して、図１５又は図１４と同様の処理を繰り返した後、処理を終了する。
【０１３５】
図１６は、データ管理装置１０２におけるデータの更新処理の一例を概略的に示す。本実施形態によれば、ユーザ入力６０に含まれる複数のキー名称１２で識別されるキーのうち、一部のキーに対応するバリュー６４が既に入力されている点で、図２に関連して説明したユーザ入力１０と相違する。ユーザ入力６０は、例えば、データ格納部１１０に格納されているデータ又はデータファイルであってよい。本実施形態によれば、ＵＩ作成部１３０は、ユーザの指示に応じて、データ格納部１１０から、ユーザ入力６０を読み込む。そして、ＵＩ作成部１３０は、入力画面２０の入力欄２２及び入力欄２６の適切な位置に、バリュー６４が記載された入力画面２０を作成する。その他の点については、図２に関連した実施形態と同様の構成を有してよい。
【０１３６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。また、技術的に矛盾しない範囲において、特定の実施形態について説明した事項を、他の実施形態に適用することができる。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１３７】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
［付記］
本願明細書には下記の事項が記載されている。
［項目１］
表を含む画面を作成する画面作成装置であって、
複数のＫｅｙ−Ｖａｌｕｅ型データを構成する複数のキーの名称を取得するキー名称取得部と、
上記複数のキーの名称に基づいて、上記複数のキーの名称を構成する複数の単語のツリー構造を決定するツリー構造決定部と、
上記ツリー構造が複数の葉ノードを有する場合に、上記複数の葉ノードのそれぞれに対応する複数の行又は列を有する上記表を作成する表作成部と、
を備える、画面作成装置。
［項目２］
上記複数のキーのそれぞれを１以上の単語に分割して、上記複数の単語を生成するキー名称分割部をさらに備える、
項目１に記載の画面作成装置。
［項目３］
上記キー名称分割部は、
上記複数のキーのそれぞれについて、当該キーの名称が予め定められた第３の文字列を含むか否かを判定し、
当該キーの名称が予め定められた第３の文字列を含む場合、上記第３の文字列の位置で当該キーの名称を分割する、
項目２に記載の画面作成装置。
［項目４］
上記キー名称分割部は、
上記複数のキーのそれぞれについて、当該キーの名称を構成する文字列において、文字列の種類が変化する箇所を検出し、
上記文字列の種類が変化する位置で当該キーの名称を分割する、
項目２又は項目３に記載の画面作成装置。
［項目５］
上記キー名称分割部は、
上記複数のキーの名称のうちの２以上のキーの名称の語頭又は語尾において、当該２以上のキーの名称に共通する第１の共通文字列を抽出し、
上記第１の共通文字列を有するキーの名称を、上記第１の共通文字列の位置で分割する、
項目２から項目４までの何れか一項に記載の画面作成装置。
［項目６］
上記キー名称分割部は、
上記第１の共通文字列を有するキーの名称のそれぞれについて、上記第１の共通文字列を除去し、
上記第１の共通文字列が除去されたキーの名称のうちの２以上のキーの名称の語頭又は語尾において、当該２以上のキーの名称に共通する第２の共通文字列を抽出し、
上記第２の共通文字列を有するキーの名称を、上記第２の共通文字列の位置で分割する、
項目５に記載の画面作成装置。
［項目７］
上記ツリー構造決定部は、
上記複数のキーの少なくとも一部について、
語頭に配された単語を根ノードとし、語頭に近い単語ほど上位のノードとなるように、又は、
語尾に配された単語を根ノードとし、語尾に近い単語ほど上位のノードとなるように、
上記１以上の単語のツリー構造を決定する、
項目１から項目６までの何れか一項に記載の画面作成装置。
［項目８］
上記複数のキーの名称に基づいて、上記複数のキーを１以上のグループに分類する分類部をさらに備え、
上記ツリー構造決定部は、２以上のキーを含むグループの少なくとも１つを構成するキーの名称に含まれる単語について、上記ツリー構造を決定する、
項目１から項目７までの何れか一項に記載の画面作成装置。
［項目９］
上記複数のキーを、名称中に表作成処理の対象となることを示す文字列を含むキーと、名称中に表作成処理の対象となることを示す文字列を含まないキーとに分類する分類部をさらに備え、
上記ツリー構造決定部は、名称中に表作成処理の対象となることを示す文字列を含むキーの名称に含まれる単語について、上記ツリー構造を決定する、
項目１から項目８までの何れか一項に記載の画面作成装置。
［項目１０］
表を含む画面を作成する画面作成装置であって、
複数のＫｅｙ−Ｖａｌｕｅ型データを構成する複数のキーのうちの少なくとも第１キー及び第２キーの名称を取得するキー名称取得部と、
上記第１キーの名称及び上記第２キーの名称に共通する第１共通文字列を抽出する共通文字列抽出部と、
上記共通文字列抽出部が上記第１共通文字列を抽出した場合に、上記第１キーの名称から上記第１共通文字列を削除した文字列に対応する行又は列、及び、上記第２キーの名称から上記第１共通文字列を削除した文字列に対応する行又は列を有する上記表を作成する表作成部と、
を備える、画面作成装置。
［項目１１］
上記キー名称取得部は、上記複数のキーのうちの第３キーの名称を取得し、
上記共通文字列抽出部は、上記第１キーの名称、上記第２キーの名称及び上記第３キーの名称に共通する第２共通文字列を抽出し、
上記表作成部は、
（ｉ）上記第１共通文字列及び上記第２共通文字列が同一の文字列である場合、上記第１キーの名称から上記第１共通文字列を削除した文字列に対応する行又は列、上記第２キーの名称から上記第１共通文字列を削除した文字列に対応する行又は列、及び、上記第３キーの名称から上記第１共通文字列を削除した文字列に対応する行又は列を有する上記表を作成し、
（ｉｉ）上記第１共通文字列及び上記第２共通文字列が異なる文字列である場合、上記第１キーの名称から、上記第１共通文字列及び上記第２共通文字列を削除した文字列に対応する行又は列、上記第２キーの名称から、上記第１共通文字列及び上記第２共通文字列を削除した文字列に対応する行又は列、並びに、上記第３キーの名称から上記第２共通文字列を削除した文字列に対応する行又は列を有する上記表を作成する、
項目１０に記載の画面作成装置。
［項目１２］
上記表作成部は、
（ｉｉｉ）上記第２共通文字列が抽出されなかった場合、上記第１キーの名称から上記第１共通文字列を削除した文字列に対応する行又は列、及び、上記第２キーの名称から上記第１共通文字列を削除した文字列に対応する行又は列を有する上記表、並びに、上記第３キーの名称に対応する文字列を作成する、
項目１１に記載の画面作成装置。
［項目１３］
上記画面は、データベースのユーザインターフェース画面であり、
上記複数のＫｅｙ−Ｖａｌｕｅ型データは、上記データベースに格納される複数のデータであり、
上記複数のキーの名称のそれぞれは、上記データベースに格納される複数のデータのそれぞれのキーの名称である、
項目１から項目１２までの何れか一項に記載の画面作成装置。
［項目１４］
上記表作成部は、上記表に含まれる複数のセルの少なくとも一部に、当該セルに対するユーザからの入力を受け付けて、入力された情報を、上記複数のＫｅｙ−Ｖａｌｕｅ型データを格納するデータベースに格納するための命令が配された表を作成する、
項目１から項目１３までの何れか一項に記載の画面作成装置。
［項目１５］
上記表作成部は、上記表に含まれる複数のセルの少なくとも一部に、上記複数のＫｅｙ−Ｖａｌｕｅ型データを格納するデータベースを参照して、各セルに対応するバリューを表示するための命令が配された表を作成する、
項目１から項目１４までの何れか一項に記載の画面作成装置。
［項目１６］
上記表作成部は、上記バリューが予め定められた条件を満足する場合、当該バリューをスクランブル表示又はマスク表示する、
項目１から項目１５までの何れか一項に記載の画面作成装置。
［項目１７］
上記複数のキーのそれぞれについて、当該キーの名称に含まれる第１の文字列を、予め定められた第２の文字列に置換する又は除去する前処理部をさらに備え、
上記キー名称分割部は、上記前処理部により上記第１の文字列が置換又は除去されたキーの名称のそれぞれを、上記１以上の単語に分割し、
上記第２の文字列は、上記第１の文字列とは異なる、
項目１から項目１６までの何れか一項に記載の画面作成装置。
［項目１８］
コンピュータを、項目１から項目１７までの何れか一項に記載の画面作成装置として機能させるためのプログラム。
【符号の説明】
【０１３８】
１０  ユーザ入力、１２  キー名称、２０  入力画面、２２  入力欄、２４  タイトル、２６  入力欄、２８  タイトル、３０  出力データ、３４  バリュー、６０  ユーザ入力、６４  バリュー、１００  データベースシステム、１０２  データ管理装置、１０４  入出力装置、１１０  データ格納部、１２０  データ処理部、１３０  ＵＩ作成部、１４０  キー名称入力部、１５０  出力部、１６０  バリュー入力部、３００  データテーブル、３０２  フィールド、３０４  フィールド、３０６  フィールド、３０８  フィールド、３１０  フィールド、３１２  フィールド、３１４  フィールド、３１６  フィールド、４００  データテーブル、４０２  フィールド、４０４  フィールド、４０６  フィールド、４０８  フィールド、５１０  名称取得部、５２０  構造解析部、５２２  前処理部、５２４  分類部、５２６  名称分割部、５２８  構造決定部、５３０  格納部、５４０  画面作成部、６１０  分割記号検出部、６２０  種類変更検出部、６３０  共通文字列検出部、６３２  前方ソート部、６３４  後方ソート部、６４０  分割位置決定部、７１０  辞書情報格納部、７２０  構造情報格納部、７３０  画面情報格納部、１０１０  インプット、１０２０  アウトプット、１０３０  インプット、１０４０  アウトプット、１０４２  アウトプット、１０４４  アウトプット、１０５０  アウトプット、１１００  データテーブル、１１０２  キーＩＤ、１１０４  キー名称、１１０６  要否、１１０８  ツリーＩＤ、１１１０  ノードＩＤ、１１１２  ノード名称、１１１４  上位ノード、１２００  表、１２１０  表タイトル、１２２０  表本体、１２３０  フィールド、１２４０  フィールド、１２４２  フィールド、１２４４  フィールド、１２５０  フィールド、１２５２  フィールド、１２５４  フィールド
【図１】
2018055504.tif 000003
【図２】
2018055504.tif 000004
【図３】
2018055504.tif 000005
【図４】
2018055504.tif 000006
【図５】
2018055504.tif 000007
【図６】
2018055504.tif 000008
【図７】
2018055504.tif 000009
【図８】
2018055504.tif 000010
【図９】
2018055504.tif 000011
【図１０】
2018055504.tif 000012
【図１１】
2018055504.tif 000013
【図１２】
2018055504.tif 000014
【図１３】
2018055504.tif 000015
【図１４】
2018055504.tif 000016
【図１５】
2018055504.tif 000017
【図１６】
2018055504.tif 000018