【文献】
宇津宮孝一、外5名,知識表現機構をもつハイパメディア文書モデルとその試作,情報処理学会研究報告,社団法人情報処理学会,1990年 5月25日,Vol.90,No.45(90-DSP-45),pp.109〜117
(58)【調査した分野】(Int.Cl.,DB名)
A)少なくとも下記4つのフィールドa1)〜a4)から構成されたテーブルであって、1レコードで1の素子データが構成されるテーブルを有するデータベース管理装置であって、
a1)当該素子データの素子データIDが記憶される素子データIDフィールド、
a2)当該素子データの上位に位置する上位素子データのIDである上位素子データIDが記憶される上位素子データフィールド、
a3)当該素子データと前記上位素子データとの連結属性を表す連結属性素子データのIDである連結属性素子データIDが記憶される連結属性素子データフィールド、
a4)前記連結属性の内容を表す内容素子データを特定する内容素子データIDが記憶される内容素子データ特定フィールド、
B)前記テーブルは、b1)素子関連データを記憶する素子関連データ記憶部、b2)複数素子群データを記憶する複数素子群データ記憶部、およびb3)前記素子関連データと前記複数素子群データの複数素子群最上位素子データとを連結する複数素子群データ連結データを記憶する複数素子群データ連結データ記憶部を、少なくとも有しており、
b1)前記素子関連データは、主素子データと従素子データの関連性を特定するデータであり、前記従素子データの素子データIDが前記内容素子データ特定フィールドに、前記主素子データの素子データIDが前記上位素子データフィールドに、前記従素子データからみた前記主素子データの述語関係情報である逆述語関係情報を示す素子データIDが前記連結属性素子データフィールドに、それぞれ記憶されている、
b2)前記複数素子群データは、少なくとも、起点素子データ、着点素子データおよび経路素子データと、これらを連結する複数素子群最上位素子データとを有しており、
b21)前記複数素子群最上位素子データは、当該素子データのIDが前記素子データIDフィールドおよび前記内容素子データ特定フィールドにそれぞれ記憶されている、
b22)前記起点素子データは、前記主素子データの素子データIDが前記内容素子データ特定フィールドに、前記最上位素子データの素子データIDが前記上位素子データフィールドに、基格を意味する素子データIDが前記連結属性素子データ特定フィールドにそれぞれ記憶されている、
b23)前記着点素子データは、前記従素子データの素子データIDが前記内容素子データ特定フィールドに、前記最上位素子データの素子データIDが前記上位素子データフィールドに、先格を意味する素子データIDが前記連結属性素子データ特定フィールドにそれぞれ記憶されている、
b24)前記経路素子データは、前記主素子データからみた前記従素子データの述語関係情報を示す素子データIDが前記内容素子データ特定フィールドに、前記最上位素子データの素子データIDが前記上位素子データフィールドに、路格を意味する素子データIDが前記連結属性素子データ特定フィールドにそれぞれ記憶されている、
b3)前記複数素子群データ連結データは、前記複数素子群データの複数素子群最上位素子データIDが前記内容素子データ特定フィールドに、前記素子関連データの素子データIDが前記上位素子データ特定フィールドに、当該複数素子群最上位素子データが当該素子関連データに連結されていることを示す焦点化属性の連結属性IDが連結属性素子データ特定フィールドに記憶されている、
C)前記上位素子データフィールドについて、主素子データIDを特定した検索要求が与えられると、この主素子データを含む素子関連データを、抽出し、当該抽出した素子関連データの素子データIDを含む複数素子群データ連結データを抽出し、抽出した複数素子群データ連結データで特定される複数素子群データを抽出して、連結されている素子データを抽出する抽出手段、
を備えたことを特徴とするデータベース管理装置。
A)少なくとも下記4つのフィールドa1)〜a4)から構成されたテーブルであって、1レコードで1の素子データが構成されるテーブルを有するデータベース管理装置であって、
a1)当該素子データの素子データIDが記憶される素子データIDフィールド、
a2)当該素子データの上位に位置する上位素子データのIDである上位素子データIDが記憶される上位素子データフィールド、
a3)当該素子データと前記上位素子データとの連結属性を表す連結属性素子データのIDである連結属性素子データIDが記憶される連結属性素子データフィールド、
a4)前記連結属性の内容を表す内容素子データを特定する内容素子データIDが記憶される内容素子データ特定フィールド、
B)前記テーブルは、b1)素子関連データを記憶する素子関連データ記憶部、b2)複数素子群データを記憶する複数素子群データ記憶部、およびb3)前記素子関連データと前記複数素子群データの複数素子群最上位素子データとを連結する複数素子群データ連結データを記憶する複数素子群データ連結データ記憶部を、少なくとも有しており、
b1)前記素子関連データは、主素子データと従素子データの関連性を特定するデータであり、前記従素子データの素子データIDが前記内容素子データ特定フィールドに、前記主素子データの素子データIDが前記上位素子データフィールドに、前記従素子データからみた前記主素子データの述語関係情報である逆述語関係情報を示す素子データIDが前記連結属性素子データフィールドに、それぞれ記憶されている、
b2)前記複数素子群データは、少なくとも、起点素子データ、着点素子データおよび経路素子データと、これらを連結する複数素子群最上位素子データとを有しており、
b21)前記複数素子群最上位素子データは、当該素子データのIDが前記素子データIDフィールドおよび前記内容素子データ特定フィールドにそれぞれ記憶されている、
b22)前記起点素子データは、前記主素子データの素子データIDが前記内容素子データ特定フィールドに、前記最上位素子データの素子データIDが前記上位素子データフィールドに、基格を意味する素子データIDが前記連結属性素子データ特定フィールドにそれぞれ記憶されている、
b23)前記着点素子データは、前記従素子データの素子データIDが前記内容素子データ特定フィールドに、前記最上位素子データの素子データIDが前記上位素子データフィールドに、先格を意味する素子データIDが前記連結属性素子データ特定フィールドにそれぞれ記憶されている、
b24)前記経路素子データは、前記主素子データからみた前記従素子データの述語関係情報を示す素子データIDが前記内容素子データ特定フィールドに、前記最上位素子データの素子データIDが前記上位素子データフィールドに、路格を意味する素子データIDが前記連結属性素子データ特定フィールドにそれぞれ記憶されている、
b3)前記複数素子群データ連結データは、前記複数素子群データの複数素子群最上位素子データIDが前記内容素子データ特定フィールドに、前記素子関連データの素子データIDが前記上位素子データ特定フィールドに、当該複数素子群最上位素子データが当該素子関連データに連結されていることを示す焦点化属性の連結属性IDが連結属性素子データ特定フィールドに記憶されている、
C)新たな複数素子群データとして、起点素子データ、着点素子データ、経路素子データが与えられると、下記ステップを実行する書き込み手段、
c1)起点素子データ、着点素子データ、経路素子データの複数素子群最上位素子データを生成して、与えられた起点素子データ、着点素子データ、経路素子データとともに、複数素子群データとして前記テーブルに書き込む複数素子群データ生成ステップ、
c2)その起点素子データの内容素子データ特定フィールドの素子データIDを上位素子データフィールドに、その着点素子データの内容素子データ特定フィールドの素子データIDを内容素子データ特定フィールドに、その経路素子データの内容素子データ特定フィールドの素子データIDと逆関係にある素子データIDを連結属性素子データフィールドに、それぞれ書き込んだ素子関連データを生成して前記テーブルに書き込む素子関連データ生成ステップ、
c3)前記生成した複数素子群最上位素子データの素子データIDを内容素子データ特定フィールドに、前記生成した素子関連データの素子データIDを上位素子データフィールドに、前記焦点化属性の連結属性の素子データIDを連結属性素子データ特定フィールドに、それぞれ書き込んだ複数素子群データ連結データを生成して前記テーブルに書き込む複数素子群データ連結データ生成ステップ、
を備えたことを特徴とするデータベース管理装置。
A)少なくとも下記4つのフィールドa1)〜a4)から構成されたテーブルであって、1レコードで1の素子データが構成されるテーブルを有するデータベース管理装置であって、
a1)当該素子データを特定する素子データ特定情報が記憶される素子データ特定情報フィールド、
a2)当該素子データの上位に位置する上位素子データを特定する上位素子データ特定情報が記憶される上位素子データフィールド、
a3)当該素子データと前記上位素子データとの連結属性を表す連結属性素子データを特定する連結属性素子データ特定情報が記憶される連結属性素子データフィールド、
a4)前記連結属性の内容を表す内容素子データを特定する内容素子データ特定情報が記憶される内容素子データ特定フィールド、
B)前記テーブルは、b1)素子関連データを記憶する素子関連データ記憶部、b2)複数素子群データを記憶する複数素子群データ記憶部、およびb3)前記素子関連データと前記複数素子群データの複数素子群最上位素子データとを連結する複数素子群データ連結データを記憶する複数素子群データ連結データ記憶部を、少なくとも有しており、
b1)前記素子関連データは、主素子データと従素子データの関連性を特定するデータであり、前記従素子データの素子データ特定情報が前記内容素子データ特定フィールドに、前記主素子データの素子データ特定情報が前記上位素子データフィールドに、前記従素子データからみた前記主素子データの述語関係情報である逆述語関係情報を示す素子データ特定情報が前記連結属性素子データフィールドに、それぞれ記憶されている、
b2)前記複数素子群データは、少なくとも、起点素子データ、着点素子データおよび経路素子データと、これらを連結する複数素子群最上位素子データとを有しており、
b21)前記複数素子群最上位素子データは、当該素子データの素子データ特定情報が前記素子データ特定情報フィールドおよび前記内容素子データ特定フィールドにそれぞれ記憶されている、
b22)前記起点素子データは、前記主素子データの素子データ特定情報が前記内容素子データ特定フィールドに、前記最上位素子データの素子データ特定情報が前記上位素子データフィールドに、基格を意味する素子データ特定情報が前記連結属性素子データ特定フィールドにそれぞれ記憶されている、
b23)前記着点素子データは、前記従素子データの素子データ特定情報が前記内容素子データ特定フィールドに、前記最上位素子データの素子データ特定情報が前記上位素子データフィールドに、先格を意味する素子データ特定情報が前記連結属性素子データ特定フィールドにそれぞれ記憶されている、
b24)前記経路素子データは、前記主素子データからみた前記従素子データの述語関係情報を示す素子データ特定情報が前記内容素子データ特定フィールドに、前記最上位素子データの素子データ特定情報が前記上位素子データフィールドに、路格を意味する素子データ特定情報が前記連結属性素子データ特定フィールドにそれぞれ記憶されている、
b3)前記複数素子群データ連結データは、前記複数素子群データの複数素子群最上位素子データ特定情報が前記内容素子データ特定フィールドに、前記素子関連データの素子データ特定情報が前記上位素子データ特定フィールドに、当該複数素子群最上位素子データが当該素子関連データに連結されていることを示す焦点化属性の連結属性特定情報が連結属性素子データ特定フィールドに記憶されている、
C)前記内容素子データ特定フィールドについて、第1素子データ特定情報を特定した検索要求が与えられると、前記第1素子データを含む素子関連データを抽出するとともに、これに関連する複数素子群データおよび複数素子群データ連結データを抽出して、これにより、連結されている素子データを抽出する抽出手段、
を備えたことを特徴とするデータベース管理装置。
A)少なくとも下記4つのフィールドa1)〜a4)から構成されたテーブルであって、1レコードで1の素子データが構成されるテーブルを有するデータベース管理装置であって、
a1)当該素子データを特定する素子データ特定情報が記憶される素子データ特定情報フィールド、
a2)当該素子データの上位に位置する上位素子データを特定する上位素子データ特定情報が記憶される上位素子データフィールド、
a3)当該素子データと前記上位素子データとの連結属性を表す連結属性素子データを特定する連結属性素子データ特定情報が記憶される連結属性素子データフィールド、
a4)前記連結属性の内容を表す内容素子データを特定する内容素子データ特定情報が記憶される内容素子データ特定フィールド、
B)前記テーブルは、b1)素子関連データを記憶する素子関連データ記憶部、b2)複数素子群データを記憶する複数素子群データ記憶部、およびb3)前記素子関連データと前記複数素子群データの複数素子群最上位素子データとを連結する複数素子群データ連結データを記憶する複数素子群データ連結データ記憶部を、少なくとも有しており、
b1)前記素子関連データは、主素子データと従素子データの関連性を特定するデータであり、前記従素子データの素子データ特定情報が前記内容素子データ特定フィールドに、前記主素子データの素子データ特定情報が前記上位素子データフィールドに、前記従素子データからみた前記主素子データの述語関係情報である逆述語関係情報を示す素子データ特定情報が前記連結属性素子データフィールドに、それぞれ記憶されている、
b2)前記複数素子群データは、少なくとも、起点素子データ、着点素子データおよび経路素子データと、これらを連結する複数素子群最上位素子データとを有しており、
b21)前記複数素子群最上位素子データは、当該素子データの素子データ特定情報が前記素子データ特定情報フィールドおよび前記内容素子データ特定フィールドにそれぞれ記憶されている、
b22)前記起点素子データは、前記主素子データの素子データ特定情報が前記内容素子データ特定フィールドに、前記最上位素子データの素子データ特定情報が前記上位素子データフィールドに、基格を意味する素子データ特定情報が前記連結属性素子データ特定フィールドにそれぞれ記憶されている、
b23)前記着点素子データは、前記従素子データの素子データ特定情報が前記内容素子データ特定フィールドに、前記最上位素子データの素子データ特定情報が前記上位素子データフィールドに、先格を意味する素子データ特定情報が前記連結属性素子データ特定フィールドにそれぞれ記憶されている、
b24)前記経路素子データは、前記主素子データからみた前記従素子データの述語関係情報を示す素子データ特定情報が前記内容素子データ特定フィールドに、前記最上位素子データの素子データ特定情報が前記上位素子データフィールドに、路格を意味する素子データ特定情報が前記連結属性素子データ特定フィールドにそれぞれ記憶されている、
b3)前記複数素子群データ連結データは、前記複数素子群データの複数素子群最上位素子データ特定情報が前記内容素子データ特定フィールドに、前記素子関連データの素子データ特定情報が前記上位素子データ特定フィールドに、当該複数素子群最上位素子データが当該素子関連データに連結されていることを示す焦点化属性の連結属性特定情報が連結属性素子データ特定フィールドに記憶されている、
C)新たな複数素子群データとして、起点素子データ、着点素子データ、経路素子データが与えられると、複数素子群最上位素子データを生成して複数素子群データとして書き込むとともに、素子関連データおよび複数素子群データ連結データを生成して、書き込む書き込み手段、
を備えたことを特徴とするデータベース管理装置。
A)少なくとも下記4つのフィールドa1)〜a4)から構成されたテーブルであって、1レコードで1の素子データが構成されるテーブルを有するデータベース管理装置であって、
a1)当該素子データを特定する素子データ特定情報が記憶される素子データ特定情報フィールド、
a2)当該素子データの上位に位置する上位素子データを特定する上位素子データ特定情報が記憶される上位素子データフィールド、
a3)当該素子データと前記上位素子データとの連結属性を表す連結属性素子データを特定する連結属性素子データ特定情報が記憶される連結属性素子データフィールド、
a4)前記連結属性の内容を表す内容素子データを特定する内容素子データ特定情報が記憶される内容素子データ特定フィールド、
B)前記テーブルは、
素子関連データを記憶する素子関連データ記憶部、を、少なくとも有しており、
前記素子関連データは、主素子データと従素子データの関連性を特定するデータであり、前記従素子データの素子データ特定情報が前記内容素子データ特定フィールドに、前記主素子データの素子データ特定情報が前記上位素子データフィールドに、前記従素子データからみた前記主素子データの述語関係情報である逆述語関係情報を示す素子データ特定情報が前記連結属性素子データフィールドに、それぞれ記憶されている、
C)前記データベース管理装置は、前記内容素子データ特定フィールドについて、第1素子データ特定情報を特定した検索要求が与えられると、前記第1素子データを含む素子関連データを抽出して、連結されている素子データを抽出すること、
を特徴とするデータベース管理装置。
A)少なくとも下記4つのフィールドa1)〜a4)から構成されたテーブルであって、1レコードで1の素子データが構成されるテーブルを有するデータベース管理装置であって、
a1)当該素子データを特定する素子データ特定情報が記憶される素子データ特定情報フィールド、
a2)当該素子データの上位に位置する上位素子データを特定する上位素子データ特定情報が記憶される上位素子データフィールド、
a3)当該素子データと前記上位素子データとの連結属性を表す連結属性素子データを特定する連結属性素子データ特定情報が記憶される連結属性素子データフィールド、
a4)前記連結属性の内容を表す内容素子データを特定する内容素子データ特定情報が記憶される内容素子データ特定フィールド、
B)前記テーブルは、
素子関連データを記憶する素子関連データ記憶部を、少なくとも有しており、
前記素子関連データは、主素子データと従素子データの関連性を特定するデータであり、前記従素子データの素子データ特定情報が前記内容素子データ特定フィールドに、前記主素子データの素子データ特定情報が前記上位素子データフィールドに、前記従素子データからみた前記主素子データの述語関係情報である逆述語関係情報を示す素子データ特定情報が前記連結属性素子データフィールドに、それぞれ記憶されている、
C)起点素子データ、着点素子データ、経路素子データを特定した複数素子群データが与えられると、前記素子関連データを生成して、書き込む書き込み手段、
を備えたことを特徴とするデータベース管理装置。
請求項13のデータベース管理装置において、前記下位個別素子データには、さらに連結している個別素子データとの連結属性およびその連結属性の値が定義された叙述節データが関連づけられており、この叙述節データは、前記下位個別素子データからみた前記上位個別素子データの述語関係情報である逆述語関係情報で構成されており、前記関係付け手段は、各叙述節データをも併せて抽出すること、
を特徴とするデータベース管理装置。
請求項23のデータベース管理装置において、前記下位個別素子データからみた前記上位個別素子データの述語関係情報である逆述語関係情報で構成された叙述節データが与えられると、これを複数のレコードに分けて、下記のように関連づけて記憶すること、前記下位個別素子データを基格個別素子データとし、前記上位個別素子データを先格個別素子データとし、および前記逆述語関係を示すデータを路格個別素子データとして、それぞれ関連づけるとともに、これらの個別素子データを束ねる個別素子データを叙述節トップ個別素子データとし、叙述節連結個別素子データで前記下位個別素子データに連結させる、
を特徴とするデータベース管理装置。
【発明を実施するための最良の形態】
【0058】
1.機能ブロック図
図1に、本発明にかかるデータベース管理装置1の機能ブロック図を示す。データベース管理装置1は、素子関連データ記憶部3、複数素子群データ記憶部4、および複数素子群データ連結データ記憶部5を有するテーブル10および抽出手段6、および書き込み手段7を備えている。
【0059】
テーブル10のデータ構造を、
図2を用いて説明する。テーブル10は、複数のレコードで構成されており、各レコードは、素子データIDフィールド41、内容素子データ特定フィールド42、上位素子データフィールド43、連結属性素子データフィールド44を有する。
【0060】
素子データIDフィールド41には、当該素子データの素子データIDが記憶される。上位素子データフィールド43には、当該素子データの上位に位置する上位素子データのIDである上位素子データIDが記憶される。連結属性素子データフィールド44には、当該素子データと前記上位素子データとの連結属性を表す連結属性素子データのIDである連結属性素子データIDが記憶される。内容素子データ特定フィールド42には前記連結属性の内容を表す内容素子データを特定する内容素子データIDが記憶される。
【0061】
素子関連データ56、複数素子群データ50、および複数素子群データ連結データ58について、各フィールドに記憶されているデータを説明する。
【0062】
素子関連データ56は、主素子データと従素子データの関連性を特定するデータであり、従素子データの素子データIDが内容素子データ特定フィールド42に、主素子データの素子データIDが上位素子データフィールド43に、従素子データからみた主素子データの述語関係情報である逆述語関係情報を示す素子データIDが連結属性素子データフィールド44に、それぞれ記憶される。
【0063】
複数素子群データ50は、少なくとも、起点素子データ52、着点素子データ54および経路素子データ53と、これらを連結する複数素子群最上位素子データ51とを有している。
【0064】
複数素子群最上位素子データ51は、当該素子データのIDが前記素子データIDフィールド41および内容素子データ特定フィールド42にそれぞれ記憶されている。起点素子データ52は、主素子データの素子データIDが内容素子データ特定フィールド42に、最上位素子データの素子データIDが上位素子データフィールド43に、基格を意味する素子データIDが連結属性素子データ特定フィールド44にそれぞれ記憶されている。着点素子データ54は、従素子データの素子データIDが内容素子データ特定フィールド42に、最上位素子データの素子データIDが上位素子データフィールド43に、先格を意味する素子データIDが連結属性素子データ特定フィールド44に、それぞれ記憶されている。経路素子データ53は、主素子データからみた従素子データの述語関係情報を示す素子データIDが内容素子データ特定フィールド42に、最上位素子データの素子データIDが上位素子データフィールド43に、路格を意味する素子データIDが連結属性素子データ特定フィールド44に、それぞれ記憶されている。
【0065】
複数素子群データ連結データ58は、複数素子群データ50の複数素子群最上位素子データIDが内容素子データ特定フィールド42に、素子関連データの素子データIDが上位素子データ特定フィールド43に、当該複数素子群最上位素子データが当該素子関連データに連結されていることを示す焦点化属性の連結属性IDが連結属性素子データ特定フィールド44に記憶されている。
【0066】
図1に示す抽出手段6は、上位素子データフィールド43について、主素子データIDを特定した検索要求が与えられると、この主素子データを含む素子関連データを、抽出し、当該抽出した素子関連データの素子データIDを含む複数素子群データ連結データ58を抽出し、抽出した複数素子群データ連結データで特定される複数素子群データ50を抽出して、連結されている素子データを抽出する。
【0067】
書き込み手段7は、新たな複数素子群データとして、起点素子データ52、着点素子データ54、経路素子データ53が与えられると、下記複数素子群データ生成ステップ、素子関連データ生成ステップおよび複数素子群データ連結データ生成ステップを実行する。
【0068】
書き込み手段7は、複数素子群データ生成ステップでは、与えられた起点素子データ52、着点素子データ54、経路素子データ53の複数素子群最上位素子データ51を生成して、与えられた起点素子データ52、着点素子データ53、経路素子データ54とともに、複数素子群データ50としてテーブル10に書き込む。また、素子関連データ生成ステップでは、書き込み手段7は、その起点素子データの内容素子データ特定フィールドの素子データIDを上位素子データフィールドに、その着点素子データの内容素子データ特定フィールドの素子データIDを内容素子データ特定フィールドに、その経路素子データの内容素子データ特定フィールドの素子データIDと逆関係にある素子データIDを連結属性素子データフィールドに、それぞれ書き込んだ素子関連データ56を生成してテーブル10に書き込む。複数素子群データ連結データ生成ステップでは、書き込み手段7は、前記生成した複数素子群最上位素子データの素子データIDを内容素子データ特定フィールド42に、前記生成した素子関連データの素子データIDを上位素子データフィールド43に、前記焦点化属性の連結属性の素子データIDを連結属性素子データ特定フィールド44に、それぞれ書き込んだ複数素子群データ連結データ58を生成してテーブル10に書き込む。
【0069】
これにより、簡易なデータ構造で、複数の知識が連結されたデータを得ることができる。
【0070】
2.ハードウェア構成
図1に示すデータベース管理装置1のハードウェア構成について、
図3を用いて説明する。同図は、データベース管理装置1を、CPUを用いて構成したハードウェア構成の一例である。
【0071】
データベース管理装置1は、CPU23、メモリ27、ハードディスク26、モニタ30、光学式ドライブ25、入力デバイス28、通信ボード31、およびバスライン29を備えている。CPU23は、ハードディスク26に記憶された各プログラムにしたがいバスライン29を介して、各部を制御する。
【0072】
ハードディスク26は、オペレーティングシステムプログラム26o(以下OSと略す)、メインプログラム26pが記憶される。
【0073】
メインプログラム26pの処理は、一般的なデータベース管理処理における処理について、データ書き込み処理、および検索(抽出)処理以外は、従来と同様である。かかる書き込みおよび検索処理については後述する。データ記憶部26k には、
図4に示すようなテーブルが記憶される。
【0074】
かかるテーブルの構成について説明する。IDフィールド61、ミーニングフィールド62、コネクションフィールド63、リレーションフィールド64はそれぞれ、
図2の素子データIDフィールド41、内容素子データ特定フィールド42、上位素子データフィールド43、連結属性素子データフィールド44に該当する。リファレンスフィールド65は、参照先を示すフィールドである。
【0075】
かかる5元のデータで構成される各レコードを、本実施形態においては、モナドと命名した。5元すべてにデータが記憶されているわけではなく、空のフィールドも存在する。
【0076】
図4において、レコードR4〜R72は定義モナドである。定義モナドとは、IDフィールド61およびミーニングフィールド62は同じIDが記憶されており、それ以外のフィールドは空であるモナドをいう。
【0077】
ミーニングフィールド62における各IDの対応を
図5に示す。例えば、ID26は、「場所」に対応している。したがって、
図4におけるレコードR26のモナドは、ミーニングフィールド62に「場所」が記憶されているモナドを意味する。
【0078】
レコードR161は、主従モナドである。主従モナドとは、2つの定義モナドに関する上位下位の連結関係がコネクションフィールドに、前記連結関係における連結属性がリレーションフィールドに記憶されている。主従モナドは
図2の素子関連データ56に該当する。
【0079】
レコードR131〜135は、それぞれ叙述節構成モナドであり、
図2の複数素子群データ50に該当する。レコードR131が最上位モナドであり、レコードR132が起点モナド、レコードR133が経路モナド、レコードR134が、着点モナドである。起点モナド、経路モナド、着点モナドは、
図2の起点素子データ52、経路素子データ53、着点素子データ54にそれぞれ該当する。レコードR135は、レコード132のモナド(起点モナド)が連結する叙述節構成モナドである。
【0080】
レコードR162は、叙述節連結モナドであり、
図2の複数素子群データ連結データ58に該当する。
【0081】
かかるレコードR131〜R135、R161〜R164をメインプログラムが読み出して、各モナドを連結することにより、
図6Aに示すようなツリー構造のデータ(以下、ミーニングツリーと称する)を生成することができる。かかる処理については後述する。
【0082】
また同様にして、レコードR131〜R135、R191、R192が読み出され、各モナドを連結することにより、
図6Bに示すようなミーニングツリーを、レコードR131〜R135、R193、R194が読み出され、各モナドを連結することにより、
図6Cに示すようなミーニングツリーを、それぞれ、生成することができる。
【0083】
図6における表記について説明する。ミーニングツリーにおける一番上のモナドをトップモナドという。
図6Aであれば、「61〔61〕(本田リサ)」と表記されている。これは、ID61のレコードについてミーニングフィールドが「61」であることを示している。また、括弧内の(本田リサ)は、ミーニングツリーにおけるモナドの関係を理解しやすくするために、
図5の対応表から「61」に対応するワードを表記したものである。
【0084】
ID61のモナドの下位には、ID161のモナドが連結されている。ID161のモナドは、「161〔51〕(りんご)」と表記されている。これは、ID161のレコードについてミーニングフィールド62が「51」であることを示している。また、括弧内の「りんご」は、
図5の対応表から「51」に対応するワード(りんご)を表記したものである。また、「〔34〕(−食べる)」は、ID61〔61〕(本田リサ)とID61〔51〕(りんご)との関係を示しているのでこのように表記されている。
【0085】
本実施形態においては、オペレーティングシステムプログラム(OS)26oとして、LINUX(登録商標または商標)を採用したが、これに限定されるものではない。
【0086】
なお、上記各プログラムは、光学式ドライブ25を介して、プログラムが記憶されたCD−ROM25aから読み出されてハードディスク26にインストールされたものである。なお、CD−ROM以外に、フレキシブルディスク(FD)、ICカード等のプログラムをコンピュータ可読の記録媒体から、ハードディスクにインストールさせるようにしてもよい。さらに、通信回線を用いてダウンロードするようにしてもよい。
【0087】
本実施形態においては、プログラムをCD−ROMからハードディスク26にインストールさせることにより、CD−ROMに記憶させたプログラムを間接的にコンピュータに実行させるようにしている。しかし、これに限定されることなく、CD−ROMに記憶させたプログラムを光学式ドライブ25から直接的に実行するようにしてもよい。なお、コンピュータによって、実行可能なプログラムとしては、そのままインストールするだけで直接実行可能なものはもちろん、一旦他の形態等に変換が必要なもの(例えば、データ圧縮されているものを、解凍する等)、さらには、他のモジュール部分と組合して実行可能なものも含む。
【0088】
3.フローチャート
3.1 読み出し処理について
各モナドを読み出して、ミーニングツリーを生成するメインプログラム26pの処理について
図7を用いて説明する。この場合、「本田リサ」に対応する「61」で読み出す場合について説明する。
【0089】
CPU23は、コネクションフィールド63に検索対象IDが記憶されているレコードを主従モナドとして抽出する(ステップS1)。この場合、「本田リサ」は、ID「61」であるので、「61」をコネクションフィールド63に有するレコードが抽出される。
図4の場合、レコードR161、R163が該当する。
【0090】
CPU23は主従モナドの上位モナドをトップモナドとして抽出する(ステップS2)。
図4の場合、レコードR161およびレコードR163のコネクションフィールド63には「61」が記憶されている。したがって、レコードR61がトップモナドとして抽出される。
【0091】
CPU23は、処理番号iを初期化し(ステップS3)、抽出したi番目の主従モナドの叙述節連結モナドを全て抽出する(ステップS4)。本実施形態においては、叙述節連結モナドか否かは、主従モナドのレコードIDが、コネクションフィールド63に記憶されており、かつ、リレーションフィールドに「焦点化」が記憶されているレコードか否かで判断した。この場合、
図5を参照すると、「24」は「焦点化」を意味する。
【0092】
この場合、抽出した0番目の主従モナドR161のレコードID「161」がコネクションフィールド63に記憶され、リレーションフィールド64が「24」であるレコードであるレコードR162が、叙述節連結モナドとして抽出される。
【0093】
CPU23は、処理番号jを初期化する(ステップS5)。
【0094】
CPU23は、抽出した叙述節連結モナドのうち、j番目の叙述節連結モナドについての、叙述節構成モナドの最上位モナドを抽出する(ステップS7)。この場合、0番目の叙述節連結モナドであるレコードR162のミーニングフィールドは「131」が記憶されている。したがって、レコードR131を対応する叙述節構成モナドの最上位モナドとして抽出する。
【0095】
CPU23は、抽出した最上位モナドのIDが既に抽出済みか否か判断する(ステップS9)。この場合、抽出済みではないので、CPU23は、抽出した最上位モナドのIDがコネクションフィールド63に記憶するレコードを抽出し、連結関係を決定する(ステップS11)。
【0096】
具体的には、CPU23は、レコードR131のミーニングフィールド62に記憶されている「131」をコネクションフィールド63に記憶するレコードR132〜R134を抽出する。レコードR132〜R134は、コネクションフィールド63が「131」であるので、それぞれ、レコードR131の下位に位置することがわかる。また、レコードR132は、リレーションフィールド64が「4」であり、ミーニングフィールド62が「61」である。したがって、
図5を参照すると、レコード131の下位に基格Sの関係で、「本田リサ」が接続されていることになる。レコードR133、R134についても、レコードR131の下位に路格Pの関係で、「食べる」が、先格Gの関係で、「りんご」が、それぞれ接続されていることになる。
【0097】
CPU23は、抽出した叙述節構成モナドに接続されているモナドがあるか否か判断する(
図7ステップS13)。具体的には、叙述節構成モナドとして抽出したレコードR132〜R134のいずれかのIDがコネクションフィールド63に記憶されたレコードがあるかを判断する。
【0098】
この場合、
図4には、「132」がコネクションフィールド63に記憶されたレコードR135が存在する。よって、CPU23は、レコードR135を抽出するとともに、連結関係を決定する(ステップS15)。この場合、連結関係としては、レコードR135は、コネクションフィールド63が「132」であるので、レコードR132の下位に位置することがわかる。また、レコードR135は、リレーションフィールド64が「26」であり、ミーニングフィールド62が「71」である。したがって、
図5を参照すると、レコード131の下位に、「場所」の関係で、「カフェテリア」が接続されていることになる。
【0099】
CPU23は、すべての叙述節連結モナドについての処理が終了したか否か判断する(ステップS16)。この場合、すべての叙述節連結モナドについての処理が終了しているので、CPU23は、すべての主従モナドについての処理が終了したか否か判断する(ステップS17)。この場合、レコード163についての処理が終了していないので、CPU23は、処理番号iをインクリメントし(ステップS18)、ステップS4へ進む。
【0100】
CPU23は、1番目の主従モナドの叙述節連結モナドを全て抽出する(ステップS4)。この場合、抽出した1番目の主従モナドR163のレコードID「163」がコネクションフィールド63に記憶され、リレーションフィールド64が「24」であるレコードであるレコードR164が、叙述節連結モナドとして抽出される。
【0101】
CPU23は、処理番号jを初期化し(ステップS5)、抽出した叙述節連結モナドのうち、0番目の叙述節連結モナドについての、叙述節構成モナドの最上位モナドを抽出する(ステップS7)。この場合、0番目の叙述節連結モナドであるレコードR164のミーニングフィールドは「131」が記憶されている。したがって、レコードR131を対応する叙述節構成モナドの最上位モナドとして抽出する(ステップS7)。
【0102】
CPU23は、抽出した最上位モナドのIDが既に抽出済みか否か判断する(ステップS9)。この場合、レコードR131は抽出済みであるので、CPU23は、ステップS11、ステップS13,ステップS15の処理を行わずに、すべての叙述節連結モナドについての処理が終了したか否か判断する(ステップS16)。この場合、すべての叙述節連結モナドについての処理が終了しているので、CPU23は、すべての主従モナドについての処理が終了したか否か判断する(ステップS17)。
【0103】
この場合、すべて終了しているので、CPU23は、抽出したモナドを連結した知識データベースを生成する(ステップS20)。
【0104】
具体的には、ステップS11,ステップS15で決定した連結関係で抽出したレコードを接続すればよい。これにより、
図6Aに示すミーニングツリーを得ることができる。
【0105】
なお、かかる読み出し処理により連結関係をさらに続けることにより、次々と連想することもできる。
【0106】
たとえば、ID161のレコードのミーニングフィールド62はID51でである。ID51をコネクションフィールド63に記憶されているレコードを抽出すると、レコードID191が該当する。抽出したレコードを主従モナドとして、
図7ステップS2以下の処理を行えばよい。これにより、
図8aに示すような複数のミーニングツリーに関する連結関係のデータを得ることができる。
【0107】
3.2 書き込み処理
メインプログラム26pによる各モナドの書き込み処理について
図9を用いて説明する。以下では、「本田リサが、カフェテリアで、みかんを食べる」という文章を分析して、データ「本田リサ」(基格)、「みかん」(先格)、および「食べる」(路格)、「カフェテリア」(場所)が与えられた場合に、
図8A、B、Cに示す叙述節構成データ、叙述節連結モナドおよび主従モナドが生成される場合について説明する。
【0108】
3.2.1 叙述節構成モナドの書き込み処理
CPU23は、叙述節構成モナドを生成して、書き込みを行う(
図9ステップS41)。ステップS41の詳細を
図10に示す。CPU23は起点モナド、経路モナド、および着点モナドを決定する(
図10ステップS51)。具体的には、与えられたデータ「本田リサ」、「みかん」、「食べる」「カフェテリア」のうち、「基格」、「先格」、および「路格」が属性として付加されているデータを抽出する。
【0109】
CPU23は、「基格」、「先格」、および「路格」以外のモナド候補のデータがあるか否か判断する(ステップS53)。この場合、「本田リサ」(基格)、「みかん」(先格)、および「食べる」(路格)以外にモナド候補のデータが存在するので、SPG連結モナドとして、「カフェテリア」を決定する。CPU23は、ステップS57に進み、最上位モナドを生成し、叙述節構成モナドを書き込む。
【0110】
具体的には、CPU23は下記の処理を行う。まず、最上位モナドのIDを決定する。かかるIDは空いているIDを使用する。ここでは、ID「125」とする。CPU23は、IDフィールド61およびミーニングフィールド62に「125」を書き込む。つぎに、CPU23は、起点モナドのIDを決定する。これも空いているIDが使用される。ここでは、ID「126」とする。CPU23は、
図5を参照して、「本田リサ」、「基格」は、それぞれ、「61」、「4」に対応することがわかる。したがって、CPU23は、IDフィールド61に「126」を、ミーニングフィールド62に「61」を、コネクションフィールド63に最上位モナドのID「125」を、リレーションフィールド64に「4」を書き込む。
【0111】
「みかん」(先格)、および「食べる」(路格)についても同様である。
【0112】
また、「基格」、「先格」、および「路格」としては抽出されなかったモナドについては、所定のルールに基づいて、起点モナド、経路モナド、または着点モナドのいずれかに連結されるモナドとする。
【0113】
本実施形態においては、「場所」については起点モナドおよび着点モナドに、「時」および「道具」については経路モナドに連結するようにした。なお、連結されるモナドについては変更できるようにしてもよい。ここで、「時」とは日時、時刻に関する属性情報である。「道具」とは例えば、「包丁で」というような属性情報である。
【0114】
なお、本実施形態においては、「場所」については、冗長さを省くために、起点モナドにのみ、関係づけるようにした。
【0115】
したがって、「カフェテリア」は「場所」を示すので、起点モナドに関連づけられる。具体的には、「カフェテリア」に対応する「71」をミーニングフィールド62に、レコード126のミーニングフィールド62に記憶されているID「126」をコネクションフィールド63に、「場所」に対応する「26」をリレーションフィールド64に記憶させたレコードとして、記憶する。かかるレコードのレコードIDについては上記と同じく、任意であるが、ここでは、ID「129」に記憶されたものとする。
【0116】
これにより
図8Aに示す叙述節構成モナドがレコードR129として、テーブルに書き込まれる。
【0117】
3.2.2 ミーニングツリーモナドおよび叙述節連結モナドの書き込み
つぎに、CPU23はミーニングツリーモナドおよび叙述節連結モナドを生成して、テーブルに書き込む(
図9ステップS43)。ステップS43の詳細を、
図11を用いて説明する。
【0118】
CPU23は、ミーニングツリーモナドの候補を決定する(
図11ステップS61)。本実施形態においては、ミーニングツリーモナドの候補として、2種類のモナドを候補とした。一つは、主従モナドである。主従モナドとは、叙述節構成モナドの起点モナドのミーニングフィールド62に記憶されているIDで特定されるモナドと、着点モナドのミーニングフィールド62に記憶されているIDで特定されるモナドとの関連を示すモナドである。かかる主従モナドはさらに、2種類生成される。一つめの主従モナドが、「本田リサ」の上位に「みかん」が連結されており、その関係は「本田リサ」から「みかん」をみると、「食べる」の述語関係にあることを示すモナドである。また、もう一つは、その逆に、「みかん」の上位に「本田リサ」が連結されており、その関係は「みかん」から「本田リサ」をみると、「マイナス(以下「−」と略す)食べる」の逆述語関係にあることを示すモナドである。
【0119】
ここで、述語関係情報とは、起点モナドのミーニングフィールド62に記憶されているIDで特定される定義モナドからみた、着点モナドのミーニングフィールド62に記憶されているIDで特定される定義モナドの述語関係を示す情報である。これに対して、逆述語関係情報とは、着点モナドのミーニングフィールド62に記憶されているIDで特定される定義モナドからみた、起点モナドのミーニングフィールド62に記憶されているIDで特定される定義モナドの述語関係を示す情報である。すなわち、「−食べる」とは「食べる」の逆方向の述語関係を表している。
【0120】
本実施形態においては、コネクションフィールド63に記憶するモナドは、ミーニングフィールド62に記憶するモナドよりも上位に位置し、リレーション64に記憶するモナドはミーニングフィールド62に記憶するモナドから見た場合の、両者の関係を表している。したがって、述語関係で定義されている場合、上下関係を逆にすると、逆述語関係で定義されることとなり、2種類の主従モナドを生成できる。
【0121】
ミーニングツリーモナドの候補として、主従モナド以外のモナドが詳細モナドである。詳細モナドとは、前記叙述節構成モナドを構成する前記起点モナド、前記経路モナド、または前記着点モナドのいずれかに関連づけられるモナドである。例えば、後述する
図16におけるID365〜ID368がそれぞれ該当する。
【0122】
本実施形態においては、属性として「場所」、「時」、「道具」をリレーションフィールドに記憶されるモナドを詳細モナドとした。この場合、「カフェテリア」は属性「場所」を有している。本実施形態においては、既に説明したように、「場所」については起点モナドに関連づけるものとしたので、「カフェテリア」が、起点モナドのミーニングフィールド62で特定されるモナドである「本田リサ」と、「場所」で関連づけられていることを表すモナドも、ミーニングツリーモナドの候補とされる。このよう関連づけられるモナドについても、主従モナドと同様に、「本田リサ」が「カフェテリア」と、「−場所」で関連づけられているという逆方向からのミーニングツリーモナド候補が生成される。したがって、この場合、合計4つの候補が決定される。
【0123】
CPU23は、処理番号iを初期化し(
図11ステップS63)、0番目のミーニングツリーモナド候補からミーニングツリーモナドを生成する(ステップS65)。この場合、ステップS61で決定したモナド候補「みかん」は「本田リサ」に対して「−食べる」の関係にあることを示すモナドが生成される。具体的には、ミーニングフィールド62に「みかん」が、コネクションフィールド63に「本田リサ」が、リレーションフィールド64に「−食べる」を示すIDがそれぞれ、記憶される。これによりミーニングツリーモナドが生成される。
【0124】
CPU23は、生成したミーニングツリーモナドがテーブルに既に存在するか否か判断する(
図11ステップS67)。この場合、生成したミーニングツリーモナドは、テーブルには存在しないので、CPU23は、テーブルに書き込む(ステップS69)。書き込むIDは、空いているIDを使用する。ここでは、ID「166」とする。CPU23は、
図5を参照して、「本田リサ」、「みかん」「−食べる」は、それぞれ、「61」、「72」「34」に対応することがわかる。したがって、CPU23は、IDフィールド61に「166」を、ミーニングフィールド62に「72」を、コネクションフィールド63に「61」を、リレーションフィールド64に「34」を書き込む。
【0125】
CPU23は、叙述節連結モナドを生成して、テーブルに書き込む(ステップS70)。叙述節連結モナドは、叙述節構成モナドの最上位モナドと、ミーニングツリーモナドとを連結するモナドである。この場合、叙述節構成モナドの最上位モナドは、「125」であり、接続するミーニングツリーモナドは、「166」である。また、本実施形態においては、これらの関係を示す属性として「焦点化」という属性を採用した。したがって、CPU23は、空きのあるID61「167」のミーニングフィールド62に「125」を、コネクションフィールド63に「166」を、リレーションフィールド64に「24」を書き込む。
【0126】
CPU23はステップS61で決定した候補について、すべて処理が終了したか否か判断する(
図11ステップS72)。この場合、すべて終了していないので、処理番号iをインクリメントして(ステップS73)、1番目の候補について、ミーニングツリーモナドを生成する(ステップS65)。
【0127】
この場合、ステップS61で決定したモナド候補「本田リサ」は「みかん」に対して「食べる」の関係にあることを示すモナドが生成される。具体的には、ミーニングフィールド62に「本田リサ」が、コネクションフィールド63に「みかん」が、リレーションフィールド64に「食べる」を示すIDがそれぞれ、記憶される。これによりミーニングツリーモナドが生成される。
【0128】
CPU23は、生成したミーニングツリーモナドがテーブルに既に存在するか否か判断する(
図11ステップS67)。この場合、生成したミーニングツリーモナドはテーブルには存在しないので、CPU23は、テーブルに、生成したミーニングツリーモナドを書き込む(ステップS69)。書き込むIDは、同様に空いているIDを使用する。ここでは、ID「195」とする。CPU23は、
図5を参照して、「みかん」「本田リサ」「食べる」は、それぞれ、「72」「61」「31」に対応することがわかる。したがって、CPU23は、IDフィールド61に「195」を、ミーニングフィールド62に「61」を、コネクションフィールド63に「72」を、リレーションフィールド64に「31」を書き込む。
【0129】
つぎに、CPU23は、叙述節連結モナドを生成して、ステップS69で書き込みをしたミーニングツリーモナドについて、叙述節連結モナドを生成して書き込む(ステップS70)。
【0130】
この場合、叙述節構成モナドの最上位モナドは、「125」であり、前記生成したミーニングツリーモナドは、「195」である。したがって、CPU23は、IDフィールド61に空きのある「196」を、ミーニングフィールド62に「125」を、コネクションフィールド63に「195」を、リレーションフィールド64に「24」を書き込む。
【0131】
CPU23はステップS61で決定した候補について、すべて処理が終了したか否か判断する(
図11ステップS72)。この場合、すべて終了していないので、処理番号iをインクリメントして(ステップS73)、2番目の候補について、ミーニングツリーモナドを生成する(ステップS65)。
【0132】
この場合、ステップS61で決定したモナド候補「カフェテリア」は「本田リサ」に対して「場所」の関係にあることを示すモナドが生成される。
【0133】
具体的には、ミーニングフィールド62に「カフェテリア」が、コネクションフィールド63に「本田リサ」が、リレーションフィールド64に「場所」を示すIDがそれぞれ、記憶されたミーニングツリーモナドが生成される。
【0134】
CPU23は、生成したミーニングツリーモナドがテーブルに既に存在するか否か判断する(
図11ステップS67)。この場合、生成したミーニングツリーモナド(ミーニングフィールド62に「71」、コネクションフィールド63に「61」、リレーションフィールド64に「26」)は、テーブルに存在するので(レコードR163)、CPU23は、かかるミーニングツリーモナドをテーブルに書き込むことなく、前記既に存在するミーニングツリーモナド(レコードR163)と、叙述節構成モナドとを連結する叙述節連結モナドを生成し、書き込み処理を行う(ステップS77)。
【0135】
この場合、叙述節構成モナドの最上位モナドは、「125」であり、前記既に存在するミーニングツリーモナドは、「163」である。したがって、CPU23は、IDフィールド61に空きのある「197」を、ミーニングフィールド62に「125」を、コネクションフィールド63に「163」を、リレーションフィールド64に「24」を書き込む。
【0136】
CPU23は、前記既に存在するミーニングツリーモナド(レコードR163)の省略フラグをオンにする(ステップS78)。かかる省略フラグについては後述する。
【0137】
CPU23はステップS61で決定した候補について、すべて処理が終了したか否か判断する(
図11ステップS72)。この場合、すべて終了していないので、処理番号iをインクリメントして(ステップS73)、3番目の候補について、ミーニングツリーモナドを生成する(ステップS65)。
【0138】
この場合、ステップS61で決定したモナド候補「本田リサ」は「カフェテリア」に対して「−場所」の関係にあることを示すモナドが生成される。
【0139】
具体的には、ミーニングフィールド62に「本田リサ」が、コネクションフィールド63に「カフェテリア」が、リレーションフィールド64に「−場所」を示すIDがそれぞれ、記憶されたミーニングツリーモナドが生成される。
【0140】
CPU23は、生成したミーニングツリーモナドがテーブルに既に存在するか否か判断する(
図11ステップS67)。この場合、生成したミーニングツリーモナド(ミーニングフィールド62に「61」、コネクションフィールド63に「71」、リレーションフィールド64に「42」)は、テーブル10に同じデータが記憶されたレコードR193が既に存在する。したがって、CPU23は、生成したミーニングツリーモナドをテーブルに書き込むことなく、前記既に存在するミーニングツリーモナド(レコードR193)と、叙述節構成モナドとを連結する叙述節連結モナドを生成し、書き込み処理を行う(ステップS77)。
【0141】
この場合、叙述節構成モナドの最上位モナドは、「125」であり、前記既に存在するミーニングツリーモナドは、「193」である。したがって、CPU23は、IDフィールド61に空きのある「198」を、ミーニングフィールド62に「125」を、コネクションフィールド63に「193」を、リレーションフィールド64に「24」を書き込む。
【0142】
CPU23は、前記、既に存在するミーニングツリーモナド(レコードR163)の省略フラグをオンにする(ステップS78)。
【0143】
CPU23はステップS61で決定した候補について、すべて処理が終了したか否か判断する(
図11ステップS72)。この場合、生成した4つの候補について処理は、終了したので、CPU23は書き込み処理を終了する。
【0144】
このように、本実施形態においては、テーブルに既に同じミーニングツリーモナドが記憶されている場合には当該ミーニングツリーモナドを重ねてテーブルに書き込まないようにした。これは、同じ組み合わせのミーニングツリーモナドが複数あるよりも、後述するように重みとして処理した方が、重複データを排除するとともに、検索速度の向上、データ容量の低減を図れるからである。
【0145】
生成したテーブルのデータについて、既に説明したような読み出し処理をおこなうことにより、新たなミーニングツリーが得られる。例えば、「本田りさ」で検索することにより、
図12に示すようなミーニングツリーを得ることができる。これは、
図6Aのミーニングツリーに「みかん」に関する情報が追加されたミーニングツリーである。
【0146】
また、「みかん」で検索することにより、
図13Aに示すようなミーニングツリーを得ることができる。
【0147】
また、「カフェテリア」で検索することにより、
図13Bに示すようなミーニングツリーを得ることができる。これは、
図6Cのミーニングツリーに「カフェテリア」と「本田リサ」との関連についての叙述節データが追加されたミーニングツリーである。
【0148】
なお、この実施形態では、「基格」と「先格」が、「路格」で接続されているとして、主従モナドを決定するとともに、詳細モナドについては、つながっている関係のみ、
図6に示すようになミーニングツリーが生成できるレコードをテーブルに記憶するようにしたが、3つのモナドがあれば、それらからそれぞれの関係性を定義するようにしたミーニングツリーモナドが生成されるレコードを生成することも可能である。例えば、「路格」である「食べる」をトップモナドとし、「カフェテリア」を「場所」で接続してもよく、さらに、直接はつながっていない「リンゴ」と、「カフェテリア」を「場所」で接続するミーニングツリーが生成できるレコードを生成してもよい。
【0149】
4.第2実施形態
上記実施形態では、ミーニングツリーモナドを書き込む際、既に存在する場合には既にあるモナドを使用するようにして、重複して書き込まないようにしている。すなわち、同じモナドが書き込まれても、その頻度は分からない。
【0150】
これに対して、第2実施形態では、書き込み時および読み出し時に、各モナドに重みモナドおよび時モナドを付与するようにした。このように、各モナドに重みを付与しておき、重みが大きいモナドまたは新しい日付が付与されているモナドを抽出することにより、時代の流れなどを考慮した知識データを得ることができる。
【0151】
重み付けモナド・時モナドの書き込み処理は、第1実施形態における
図9ステップS43の後に、
図14のフローチャートが実行されることにより実行される。かかる処理を説明する前に、重み付けがある場合とない場合でのミーニングツリーとして読み出した場合の違いについて説明する。
【0152】
図15は第1実施形態と同じく、重み付けがない場合のミーニングツリーモナドを関連づけて表示したものである。
図15に対応する各レコードデータの各フィールドに記憶されているデータを
図17A,Bに示す。個々のレコードのデータについては、第1実施形態と同様である。また各レコードのIDが何を意味しているかは、既に説明したように
図5に記憶しているがここでは省略する。以下では
図15のミーニングツリーを用いて説明する。
【0153】
図15のミーニングツリーについて簡単に説明すると、ID304[81](タミフル)が、ID73〔73〕(インフルエンザ)と、〔74〕(治療薬)で関係づけられている。また、ID374[67](高橋四郎)が、ID73〔73〕(インフルエンザ)と、〔77〕(−病気)で関係づけられている。また、叙述節連結モナドであるID305〔361〕が、ID304[81](タミフル)と、〔24〕(焦点化)で関係づけられている。叙述節構成モナドの最上位モナドID361には、「4〔4〕(S)」の関係でID362〔62〕(村上三郎)が、「5〔5〕(P)」の関係で、ID363〔35〕(治療する)が、「6〔6〕(G)」の関係で、ID364〔67〕(高橋四郎)が、関係づけられている。
【0154】
また、ID362〔62〕(村上三郎)には、〔26〕(場所)の関係で、ID365〔68〕(京都病院)が関係づけられている。ID363〔35〕(治療する)には、〔74〕(治療薬)の関係で、ID366〔81〕(タミフル)および、〔25〕(時)の関係で、ID367〔91〕(2014/11/5)が関係づけられている。ID364〔67〕(高橋四郎)には、〔75〕(病気)の関係で、ID368〔73〕(インフルエンザ)が関係づけられている。
【0155】
ちなみに、かかる叙述節構成モナドが意味しているのは、「村上三郎は、2014/11/5に京都病院で、インフルエンザの高橋四郎を、治療薬としてタミフルを用いて治療した」である。かかる叙述節連結モナドによりID304[81](タミフル)が叙述節構成モナドに関係づけられている。
【0156】
図15に示すミーニングツリーモナドに重みモナドおよび時モナドが付与されたミーニングツリーを
図16に示す。
図16では叙述節構成モナド以外については、重みモナドおよび時モナドが付与されている。ここで時モナドとしては、データ書き込み時である2014/11/6とした。
【0157】
この場合であれば、ID374[67](高橋四郎)に重みモナドであるID505[43](重み1)が、[27](重み)で連結され、時モナドであるID404[92](2014/11/6)が、[25](時)で連結される。ID73〔73〕(インフルエンザ)、ID304[81](タミフル)、ID305〔361〕についても同様である。
【0158】
重みモナドおよび時モナドの具体的なレコードの構成について
図17Cを用いて説明する。重みモナドであるレコードR505は、コネクションフィールド63に「374」、ミーニングフィールド62に「43」、リレーションフィールド64に「27」が記憶されている。時モナドであるレコードR404も同様にレコードR404は、コネクションフィールド63に「374」、ミーニングフィールド62に「92」、リレーションフィールド64に「25」が記憶されている。
【0159】
図16に示す重みモナドおよび時モナドを追加する場合の、ミーニングツリーの生成処理について、
図14を用いて説明する。
【0160】
まず、
図9ステップS41,ステップS43の処理により、
図15のミーニングツリーの場合、
図17A,Bに示すようなデータが生成されている。
図17Aは叙述節構成モナドであり、
図17Bは主従モナド、詳細モナドおよび叙述節連結モナドである。
【0161】
なお、第1実施形態では、ミーニングツリーモナドについては、限定的なもののみ生成する場合について説明したが、この実施形態では、叙述節構成モナドの関係づけについて制約を外した組み合わせを生成し、さらにその関係づけが定義された場合のみ、生成を許可するようにした。すなわち、
図15に示す叙述節構成モナドの関係であれば、[62](村上三郎)と[81](タミフル)は直接は関係づけられていない。しかし、[62](村上三郎)と[81](タミフル)が[74](治療薬)で関係づけられたミーニングツリーを構成するレコードなど、各種の組み合わせが可能である。この実施形態では、これらの組み合わせのミーニングツリーモナドが生成されるレコードを全て生成するようにした。さらに組み合わせが許される定義として設定しておき、設定された組み合わせのみミーニングツリーモナドに対応するレコードを生成するようにした。
図15は、[81](タミフル)と[73](インフルエンザ)を[74](治療薬)で関係づけることが、定義されていた場合である。
【0162】
CPU23は書き込んだモナドのうち主従モナド、詳細モナドおよび叙述節連結モナドおよびトップモナドを全て抽出する(
図14ステップS81)。この場合であれば、
図17A,Bから、ID304,ID305,ID374、ID73の各モナドが抽出される。
【0163】
CPU23は、省略フラグがあるか否か判断する(
図14ステップS83)。これは、
図11ステップS77にて、既に存在するモナドである場合には、重複したモナドを生成してないので、そのモナドについても重み・時モナドの付加処理をするためである。
【0164】
この場合、省略フラグがオンのモナドは存在しないので、ステップS87に進み、CPU23は処理番号pを初期化し(
図14ステップS87)、0番目のモナドが、書き込んだモナドか否か判断する(ステップS89)。この場合、0番目のモナドは、ID304のモナドであり、ステップS85にて処理対象に追加したモナドではないので、CPU23は、0番目のモナドのID304をコネクションフィールドに、リレーションフィールドに「27」を、ミーニングフィールドを「43」(重み1)としたレコードを生成する。かかるレコードのIDは空きレコードを用いればよい。ここでは、ID503が採用されたものとする。
【0165】
CPU23は、0番目のモナドのID「304」をコネクションフィールド63に、リレーションフィールド64に「25」を、ミーニングフィールド62に日時を表すモナドのIDを書き込んだレコードを生成する(ステップS95)。
【0166】
CPU23は、処理対象モナドが全て検討済みか否か判断する(ステップS97)。この場合、全て終了していないので、処理番号pをインクリメントし、ステップS89以下を繰り返す。
【0167】
1番目のモナドは、ID305のモナドであり、書き込んだモナドであるので、CPU23は、1番目のモナドのID305をコネクションフィールドに、リレーションフィールドに「27」を、ミーニングフィールドを「43」(重み1)としたレコードを生成する(ステップS91)。ここでは、ID504が採用されたものとする。
【0168】
1番目のモナドのID「305」をコネクションフィールド63に、リレーションフィールド64に「25」を、ミーニングフィールド62に日時を表すモナドのIDを書き込んだレコードを生成する(ステップS95)。
【0169】
CPU23は、処理対象モナドが全て検討済みか否か判断する(ステップS97)。この場合、全て終了していないので、処理番号pをインクリメントし、ステップS89以下を繰り返す。
【0170】
以下同様にして、重みモナドおよび時モナドが付加される。
【0171】
図17Cに追加された重みモナドおよび時モナドのレコードを示す。これらを追記することにより、ID73で読み出すと、
図16のようなミーニングツリーモナドを読み出すことができる。
【0172】
また、
図16に対応するレコードが記憶されている状態で、「木村五郎は、2015/6/10に大阪病院で、インフルエンザの鈴木次郎を、治療薬としてタミフルを用いて治療した」に対応する叙述節構成モナドのデータが与えられると、同様にして、
図9、
図11および
図14の処理によって、
図18に示すような状態となるようにテーブルにレコードが追加される。
【0173】
なお、
図16の状態から、「木村五郎は、2015/6/10に大阪病院で、インフルエンザの鈴木次郎を、治療薬としてタミフルを用いて治療した」に対応する叙述節構成モナドのデータが与えられた場合、モナドID304[81](タミフル)については、既に存在するので、書き込み時に、
図11ステップS67からステップS77に進む。ステップS77では、既に存在するミーニングツリーモナドの叙述節連結モナドを生成し、レコードとして書き込む。この場合であれば、ID370のモナドが生成される。CPU23は、モナドID304について省略フラグをオンとする(ステップS78)。
【0174】
このように書き込みを省略した省略フラグがオンとなっているので、
図14にて、ステップS83からステップS85に進み、処理対象として、モナドID304が追加される。また、モナドID304が処理対象モナドとなったときに、ステップS89からステップS93に進み、そのモナドのIDがコネクションフィールド63に記憶され、リレーションフィールド64が「27」のレコードについて、重みをインクリメント(+1)する。例えば、この場合、ID503が「重み2」を表す「44」となる。なお、かかる処理については、重みを+1したときの結果の重み(たとえば重み2)を表すモナドのIDをあらかじめ決めておけばよい。
【0175】
これにより、
図18に示すように、テーブルに記憶するモナドのうち、叙述節構成モナド以外については重みを付与することができる。例えば、ID73〔73〕(インフルエンザ)およびID304[81](タミフル)については、ID501〔44〕(重み2)、ID503〔44〕(重み2)とそれぞれ重みが増加している。
【0176】
また、テーブルに
図18に示すようなツリー構造に対応するレコードが記憶されている状態で、ID73〔73〕(インフルエンザ)について、治療薬として、ID330[82](リレンザ)が与えられると、
図19に示すように、ID73〔73〕(インフルエンザ)については、502〔45〕(重み3)と重みが増加する。
【0177】
本実施形態においては、重みを示すIDについては変更することなく、ミーニングフィールド62のデータを+1の重みのレコードIDに変更することにより、重みを変更するようにしたが、新たなレコードを生成して、以前のIDは削除するようにしてもよい。
【0178】
読み出し処理における、重みモナドおよび時モナドの追加処理フローチャートについて説明する。
図16の状態で、2015年12月6日に、「インフルエンザ」and「タミフル」の検索条件で読み出されると、
図20に示すように、重みモナドの重みが増加するとともに、時モナドが追加される。例えば、ID73〔73〕(インフルエンザ)については、ID501〔43〕(重み1)が、ID501〔44〕(重み2)となっており、ID422〔97〕(2015/12/6)が追加されている。
【0179】
かかる処理について
図21および
図22を用いて説明する。
図21は、
図7のステップS17とステップS20の間にステップS19が追加されている。
【0180】
ステップS19の詳細を
図22に示す。
【0181】
CPU23は読み出したモナドから、叙述節構成モナド以外のモナドを全て抽出する(ステップS101)。この場合、
図20に示すモナドが抽出されているので、ID305、ID304、ID43のモナドが読み出される。
【0182】
CPU23は、リレーションフィールド64が「27」のレコードについて重みをインクリメント(+1)する処理を行う(ステップS103)。具体的には、ミーニングフィールド62のデータを、+1の重みのレコードIDに変更すればよい。この場合、ID501、ID505、ID503、ID504が全て「重み2」を意味するID44に変更される。
【0183】
CPU23は、リレーションフィールド64が「25」のレコードを全て抽出し、各レコードのコネクションフィールド63で特定されるレコードについて時モナドを追加する(ステップS105)。この場合、ID73、ID374、ID304、ID305についてそれぞれ、読み出した「2015年12月6日」を示す時モナドが追加される。
【0184】
このような「重み」および「時」を記憶することにより以下の様なメリットがある。例えば、
図17に示すような「インフルエンザ」について、「タミフル」が使用された使用実例が増えるほど、その頻度が高まる。よって、全体的な傾向を知ることができる。また、その詳細として叙述節構成モナドも連結されているので、その詳細を参照にすることにより、例えば、属性として年齢が記憶されていれば、大人にはインフルエンザの治療には「タミフル」がよく使われ、子供は別の薬が使われるなど、少し異なる使用例がある場合に、特性に応じて使い分けられているなども知ることができる。
【0185】
また、時期を参照することにより、後発薬品などについて何時頃からどんな症状に対して、ある薬品が使われたのかなども知ることができる。また、抽出時に、「インフルエンザ」「治療薬」で検索した時に、以前は「タミフル」が高い頻度で用いられていたが、最近は新薬「リレンザ」が用いられているというような傾向などもわかるようになる。
【0186】
このような治療薬についての使用実績をデータベース化することにより、これを参照することにより、ある分野については知識があまりない医者であっても、適確な判断が可能となる。さらには自動診断も可能となる。たとえば、医療の進歩はあまりにも早く、自動診断に必要な医療データを組み込んだシステムを作ろうとしても、医療の進歩にシステム製作が追い付かない。本システムであれば60%くらいの基本的な情報をいれておけば、多くのユーザの使用例によりこれを成長させ、100%に近い自動診断が可能となる。
【0187】
本実施形態においては、検索による読み出しおよび書き込み時のいずれにも、重みモナドおよび時モナドを付与するようにした。また、重みモナドは重みを+1ずつ増やすようにしたが、読み出しと書き込みで加算する重みを変更してもよい。
【0188】
本実施形態においては、叙述節構成モナドのうち、直接連結されたモナドだけでなく、間接的に連結されているモナドでも、あらかじめ設定した組み合わせについては、ミーニングツリーモナドに対応するレコードを生成するようにした。しかしこれに限定されず、かかる設定による制約なしに、可能性があるものは全て関係づけたモナドを生成するようにしてもよい。
【0189】
第2実施形態においては、重みモナドを追加するようにしている。その際、書き込み時に主従モナドが既にある場合には生成したモナドを書き込むことなく、叙述節連結モナドによってモナド〔24〕(焦点化)にて、主従モナドに叙述節構成モナドの最上位モナドに接続するようにしている。したがって、重みを記憶しなくても、かかる焦点化モナドで接続されている叙述節構成モナドの最上位モナドの数をカウントすることにより、書き込み頻度が分かる。
【0190】
また、矛盾するデータが記憶されても、矛盾することなく知識データベースとして使用することができる。例えば、「本田リサはピーマンが嫌いだ」という叙述節構成モナドが与えられると、ピーマンを示すIDがミーニングフィールドに、本田リサを示すIDがコネクションフィールドに、「−嫌い(嫌われている)」を示すIDが、リレーションフィールドに記憶されたモナドが生成され、与えられた叙述節構成モナドと叙述節連結モナドで連結される。
【0191】
ここに、叙述節「本田リサはピーマンが好きだ」が与えられると、同様にして、ピーマンを示すIDがミーニングフィールドに、本田リサを示すIDがコネクションフィールドに、「−好きだ(好かれている)」を示すIDが、リレーションフィールドに記憶されたモナドが生成され、与えられた叙述節構成モナドと叙述節連結モナドで連結される。この状態では矛盾する知識が記憶されている状態となる。
【0192】
その後、叙述節「本田リサはピーマンが好きだ」が、さらに、与えられると、ピーマンを示すIDがミーニングフィールドに、本田リサを示すIDがコネクションフィールドに、「−好きだ(好かれている)」を示すIDが、リレーションフィールドに記憶されたモナドについて、叙述節連結モナドで連結される叙述節構成モナドが増える。
【0193】
この状態で、「本田リサ」*「ピーマン」で検索する場合には、叙述節連結モナドで連結される叙述節構成モナドが多い方を読み出すことにより、矛盾するミーニングツリーが読み出されることを防止できる。
【0194】
前記重みモナドを付加している場合には、前記重みモナドが表している重みが重いミーニングツリーを読み出すようにすればよい。
【0195】
このように書き込みの頻度の高い方を読み出すことにより、矛盾する概念を取り扱うことができる。また、読み出しについても同様である。
【0196】
時モナドについても、同様で時間的に新しいものを読み出すようにすれば矛盾するデータを適切に扱うこともできる。
【0197】
本実施形態においては、時モナドとして、年月日を採用したが、時刻まで記憶するようにしてもよい。
【0198】
本実施形態においては、重みモナドについて、書き込みおよび読み出し時に重み+1するようにしたが、時モナドを利用して、重み付けをするようにしてもよい。例えば、書き込み時であれば、元々の重み2である場合に、直近の時モナドの時との差分が大きい場合には、係数kを0.3として、2+0.3*1=2.3とするなどである。かかる係数は動的に変更してもよい。また、直近だけでなく、全ての時モナドと書き込み時の差分を総計して、これが大きい場合に、重みが軽くなるようにしてもよい。逆に最近よく使われた場合には、重みを大きくするようにしてもよい。読み出し時についても同様である。
【0199】
5.他の実施形態
上記各実施形態においては、主従モナドの下位モナドから、上位モナドに連結した場合の関係をリレーションフィールド64に記憶するようにしている。これは、詳細モナドにおける関係性と一致させるためである。
【0200】
第1実施形態においては、書き込み時に「本田リサが、カフェテリアで、みかんを食べる」という文章を分析して、データ「本田リサ」(基格)、「みかん」(先格)、および「食べる」(路格)、「カフェテリア」(場所)が与えられた場合としたが、テンプレートとして、各データの連結状態が特定された状態でデータが与えられてもよい。
【0201】
上記実施形態では、1台の装置として適用した場合について説明したが、複数のコンピュータのテーブルデータを集めることにより、より正確な知識データベースを得ることができる。
【0202】
このような複数のデータベースを統合するには以下のようにすればよい。1)ミーニングツリーモナドのトップモナドを全て抽出する。2)1つのトップモナドを選出して、このトップモナドを主とする従モナドを全て抽出する。3)従モナドのうち同じものは、叙述節のみ追加する。4)これを全ての従モナドについておこなう。5)これを全トップモナドについて繰り返す。
【0203】
また、重みモナドがある場合には、さらに、両者を合体させた値とし、時モナドはそのまま連結を増やせばよい。
【0204】
上記実施形態においては、
図1に示す機能を実現するために、CPUを用い、ソフトウェアによってこれを実現している。しかし、その一部若しくはすべてを、ロジック回路等のハードウェアによって実現してもよい。
【0205】
なお、上記プログラムの一部の処理をオペレーティングシステム(OS)にさせるようにしてもよい。
【0206】
本明細書においては、読み出し時に、叙述節構成モナドまでを読み出すようにしたが、叙述節構成モナドを読み出すことは必須ではない。なぜなら、ミーニングツリーにおける連想を次々と行うだけでも知識データベースとしては意義があるからである。たとえば、
図12において、さらに各種の情報が連結されると、「本田リサ」→「リンゴ」→「果物」→「ジュース」→「健康」などの連想が可能となる。
【0207】
また、書き込みにおいても叙述節連結モナドおよび叙述節構成モナドを書き込むことは必須ではない。例えば、簡易なデータベースであれば、叙述節連結モナドおよび叙述節構成モナドを書き込まないようにしてもよい。
【0208】
6.第3実施形態
6.1 〈第1実施形態との違い〉
上記実施形態では、理解を容易にするために、
図5に示すような1のラベルに対して1の実体が対応していること、具体的には、
図12のミーニングツリーで特定されるID61の実体は、「本田リサ」というラベルに1対1で対応していることを前提として説明をした(
図5参照)。
【0209】
かかるラベルデータについては、
図23に示すように、そのラベルデータを生成するとともに、そのラベルデータをリファレンスフィールド65(
図4参照)に記憶させ、そのレコードIDの参照処理をすることにより、これらを読みだすことも可能である。
【0210】
図25において、直線矢印は連結関係を示しており、曲線矢印は参照関係を示している。かかる参照関係としては、異なるミーニングツリー間の参照、ミーニングツリーとリファレンスツリー間の参照、およびリファレンスツリー間の参照の3種類がある。これらについては後述する。
【0211】
また、
図26において、第1実施形態と同様に、ミーニングフィールド62に記憶されているIDを〔 〕で、その対応文字列を( )内に表している。また、リレーションフィールド64のIDは直線矢印近傍に〔 〕で表している。また、リファレンスフィールド65に記憶されている文字列は《 》内に表している。
【0212】
以下では、ID61の実体が、連結属性「姓名である」を持ち、その属性値「本田リサ」である場合のデータ構造について説明する。なお、このように、属性値としては、ラベルである場合も、意味である場合も含む。
【0213】
図23において、レコードR80,R81、およびR641は、参照定義モナドである。参照定義モナドとは、IDフィールド61およびミーニングフィールド62は同じIDが記憶されており、コネクションフィールド63およびリレーションフィールド64は空であり、リファレンスフィールド65に参照されるデータが記憶されているモナドをいう。本実施形態においては、リファレンスフィールド65に参照されるデータは文字列としたが、これに限定されない。さらに、かかる文字列がURIのように、特定の画像データ、または音声データなどの格納先を示すファイル特定IDであってもよい。
【0214】
レコードR640は、参照主従モナドである。参照主従モナドとは、2つの定義モナドに関する上位下位の連結関係がコネクションフィールド63に、前記連結属性の値を表す属性値を特定する属性値特定IDを記憶するミーニングフィールド62が空で、前記連結関係における属性がリレーションフィールド64に、前記連結関係の表記データのIDがリファレンスフィールド65に記憶されているモナドをいう。
【0215】
なお、第1実施形態では、定義モナドとは、IDフィールド61およびミーニングフィールド62に同じIDが記憶されており、それ以外のフィールドは空であるモナドと定義した。これに対して、5元すべて利用する場合には、リファレンスフィールド65も空でない場合も定義モナドに含まれる。すなわち、R641で特定される個別素子データは定義モナドである。
【0216】
なお、レコードR691〜694は叙述節構成モナドであり、レコードR700は、叙述節連結モナドである。これらについては第1実施形態と同様である。
【0217】
6.2 〈読み出し処理〉
図23A、Bの各レコードをメインプログラムが読み出して、各モナドを連結することにより、
図24に示すようなミーニングツリーおよびリファレンスツリーを生成することができる。
【0218】
たとえば、第1実施形態にて説明したように、テーブルに
図4に示すレコードが記憶されており、これを読み出すと
図25のようなミーニングツリーが構築される。以下では、さらに、これに加えて、
図23に示すレコードが記憶されており、これらのレコードを読み出して、
図26に示すミーニングツリーおよびリファレンスツリーが構築される場合について説明する。また、ハードウェア構成としては第1実施形態と同様であるので、説明は省略する。
【0219】
図26において、破線で囲った領域β1が
図25のツリー状態に追加されるツリーである。また、
図26において、第1実施形態と同様に、ID51について、51〔51〕(りんご)、ID163について、163〔71〕(カフェテリア)と記載しているが、これは理解を容易にするためであり、実際には、ラベル「本田リサ」と同様に、リファレンスツリーにてそのラベルが参照されている。
【0220】
図27にかかる処理のフローチャートを示す。CPU23は、コネクションフィールド63に検索対象IDが記憶されているレコードを主従モナドとして抽出する(
図27ステップS101)。この場合、検索対象は、ID「61」であるので、「61」をコネクションフィールド63に有するレコード、すなわち、
図4のレコードR161、R163とともに、
図23のレコードR640が抽出される。
【0221】
CPU23は、処理番号iを初期化し(ステップS103)、i番目の主従モナドについてコネクションフィールドのIDのレコードを既に抽出済みか否か判断する(ステップS105)。レコードR161が0番目の主従モナドだとすると、そのコネクションフィールドのID「61」は未抽出であるので、コネクションフィールドのIDのレコードをトップモナドとして抽出する(ステップS107)。
【0222】
CPU23は、レコードR161とR61とを位置連結関係であると決定する(ステップS108)。
【0223】
CPU23は、0番目の主従モナドは参照主従モナドか否か判断する(ステップS109)。参照主従モナドか否かはそのレコードのミーニングフィールド62が空か否かで判断すればよい。この場合、レコードR161のミーニングフィールド62は空ではないので、CPU23は、ミーニングフィールドのID「51」のレコードを連結対象として抽出し、意味連結関係であると決定する(ステップS111)。
【0224】
CPU23は、0番目の主従モナドの叙述節を構成するレコードを抽出する(ステップS123)。
【0225】
ステップS123の処理の詳細を
図28に示す。
図28は、
図7ステップS7〜ステップS22とほぼ同じであるが、以下簡単に説明する。
【0226】
CPU23は、叙述節処理番号jを初期化する(ステップS130)。
【0227】
CPU23は、i番目の主従モナドについて、j番目の叙述節連結モナドを抽出する(ステップS131)。叙述節連結モナドか否かの判断は第1実施形態と同様である。この場合、抽出した0番目の主従モナドR161のレコードID「161」がコネクションフィールド63に記憶され、リレーションフィールド64が「24」であるレコードであるレコードR162が、叙述節連結モナドとして抽出される。
【0228】
CPU23はこの叙述節連結モナドについての、叙述節構成モナドの最上位モナドを抽出する(ステップS133)。この場合、0番目の叙述節連結モナドであるレコードR162のミーニングフィールドは「131」が記憶されている。よって、レコードR131が対応する叙述節構成モナドの最上位モナドとして抽出される。
【0229】
CPU23は、抽出した最上位モナドのIDが既に抽出済みか否か判断する(ステップS135)。この場合、抽出済みではないので、CPU23は、抽出した最上位モナドのIDがコネクションフィールド63に記憶するレコードを抽出し、連結関係を決定する(ステップS137)。
【0230】
CPU23は、抽出した叙述節構成モナドに接続されているモナドがあるか否か判断する(ステップS139)。この場合、
図4には、「132」がコネクションフィールド63に記憶されたレコードR135が存在する。よって、CPU23は、レコードR135を抽出するとともに、連結関係を決定する(ステップS141)。
【0231】
CPU23は、i番目の主従モナドについて、すべての叙述節連結モナドを抽出したか否か判断し(ステップS145)、残っている場合には、叙述節処理番号jをインクリメントし(ステップS147)、ステップS131以下の処理を繰り返す。この場合、すべての叙述節連結モナドを抽出したので、CPU23は、叙述節を構成するレコード抽出処理が終了するとすべての主従モナドについての処理が終了したか否か判断する(
図27ステップS125)。
【0232】
なお、本実施形態においては、叙述節構成モナドとしてレコードR135の1段だけである場合について説明したが、後述するように、さらに各レコードに修飾がなされており多段で構成されている場合もある。このような場合には、全ての連結関係が決定される。
【0233】
図27ステップS125にて、この場合、レコードR163についての処理が終了していないので、CPU23は、処理番号iをインクリメントし(ステップS127)、ステップS105へ進む。
【0234】
CPU23は、1番目の主従モナドのレコードR163について、ステップS105以下の処理を行う。この場合、処理としては、以下の点を除き、レコードR161と同様である。
【0235】
図27ステップS105でコネクションフィールドのID「61」は既に抽出済みであるので、ステップS107の処理は実行されない。また、
図28ステップS135にて、レコードR131が既に抽出済みであるので、ステップS137〜ステップS141なしに、叙述節連結モナドと叙述節構成モナドとの連結関係が決定される(ステップS143)。
【0236】
CPU23は、叙述節を構成するレコード抽出処理が終了すると、すべての主従モナドについての処理が終了したか否か判断する(
図27ステップS125)。この場合、レコードR640についての処理が終了していないので、CPU23は、処理番号iをインクリメントし(ステップS127)、ステップS105へ進む。
【0237】
CPU23は、2番目の主従モナドのレコードR640について、ステップS105以下の処理を行う。
【0238】
CPU23は、2番目の主従モナドについてコネクションフィールドのIDのレコードを既に抽出済みか否か判断する(ステップS105)。この場合、レコードR640のコネクションフィールドのID「61」は既に抽出済みであるので、ステップS108に進み、2番目の主従モナドと抽出済みのトップモナドとの位置連結関係が決定される。
【0239】
CPU23は、この主従モナドが、参照主従モナドか否か判断する(ステップS109)。この場合、レコードR640は、ミーニングフィールド62が空である。したがって、CPU23は、ステップS115に進み、リファレンスフィールド65のIDのレコードを抽出済みか否か判断する。この場合、リファレンスフィールド65のID「641」のレコードは抽出済みではないので、CPU23は、リファレンスフィールド65のID「641」のレコードをトップモナドとして抽出する(ステップS117)。CPU23は、抽出したトップモナドと前記参照主従モナドとを参照連結関係であると決定する(ステップS119)。
【0240】
CPU23は、前記抽出したトップモナドID641をコネクションフィールドに持つレコードを、追加主従モナドとして抽出し、これを追加する(ステップS121)。この場合、レコードR642(
図23B参照)が抽出され、追加主従モナドとして追加される。
【0241】
CPU23は、レコードR640を主従モナドとする叙述節を構成するレコードを抽出する(ステップS123)。かかるステップは以下のように実行される。CPU23は、叙述節処理番号jを初期化する(
図28ステップS130)。
【0242】
CPU23は、2番目の主従モナドについて、0番目の叙述節連結モナドを抽出する(
図28ステップS131)。この場合、ID640がコネクションフィールド63に記憶され、かつ、リレーションフィールド64が「24」であるレコードであるレコードR700(
図23A参照)が、0番目の叙述節連結モナドとして抽出される。
【0243】
CPU23は、この叙述節連結モナドについての、叙述節構成モナドの最上位モナドを抽出する(ステップS133)。この場合、レコードR700のミーニングフィールドは「691」が記憶されている。よって、レコードR691が対応する叙述節構成モナドの最上位モナドとして抽出される。
【0244】
CPU23は、抽出した最上位モナドのIDが既に抽出済みか否か判断する(ステップS135)。この場合、抽出済みではないので、CPU23は、抽出した最上位モナドのIDがコネクションフィールド63に記憶されているレコードを抽出し、連結関係を決定する(ステップS137)。
【0245】
CPU23は、抽出した叙述節構成モナドに接続されているモナドがあるか否か判断する(ステップS139)。この場合、CPU23はコネクションフィールド63に、抽出された叙述節構成モナドのIDが記憶されているレコードは存在しない。よって、叙述節処理は終了する。
【0246】
CPU23は、叙述節を構成するレコード抽出処理が終了すると、連結関係を決定する(ステップS141)。
【0247】
CPU23は、i番目の主従モナドについて、すべての叙述節連結モナドを抽出したか否か判断し(ステップS145)、残っている場合には、叙述節処理番号jをインクリメントし(ステップS147)、ステップS131以下の処理を繰り返す。この場合、すべての叙述節連結モナドを抽出したので、CPU23は、叙述節を構成するレコード抽出処理が終了するとすべての主従モナドについての処理が終了したか否か判断する(
図27ステップS125)。この場合、ステップS115にて追加したレコードR642についての処理が終了していないので、CPU23は、処理番号iをインクリメントし(ステップS123)、ステップS105へ進む。
【0248】
CPU23は、レコードR642のコネクションフィールドのID「641」は抽出済みであるので、レコードR641とR642を、位置連結関係であると決定する(ステップS108)。
【0249】
CPU23は、3番目の主従モナドは参照主従モナドか否か判断する(ステップS109)。この場合、レコードR642のミーニングフィールド62は空ではないので、CPU23は、ミーニングフィールドのID「61」のレコードを連結対象として抽出し、意味連結関係であると決定する(ステップS111)。
【0250】
CPU23はレコードR642を主従モナドとする叙述節を構成するレコードを抽出する(ステップS123)。具体的には、CPU23は、3番目の主従モナドの叙述節連結モナドを抽出する(
図28ステップS131)。この場合、ID642がコネクションフィールド63に記憶され、リレーションフィールド64が「24」であるレコードであるレコードR703が、叙述節連結モナドとして抽出される。
【0251】
CPU23は、この叙述節連結モナドについての、叙述節構成モナドの最上位モナドを抽出する(ステップS133)。この場合、レコードR703のミーニングフィールドは「691」が記憶されている。よって、レコードR691が、対応する叙述節構成モナドの最上位モナドとして抽出される。
【0252】
CPU23は、抽出した最上位モナドのIDが既に抽出済みか否か判断する(ステップS135)。この場合、抽出済みであるので、叙述節連結モナドと叙述節構成モナドとの連結関係が決定される(ステップS143)。
【0253】
なお、本実施形態においては、リファレンスツリーについても全て抽出するようにしたが、リファレンスツリーのトップモナドのレコードだけを抽出するようにしてもよい。たとえば、
図26において、ID642およびID703については、抽出しないようにしてもよい。これは、ID640から参照されているID641のラベルが分かれば十分な場合もあるからである。この場合、
図27ステップS121の処理を除去、さらに、リファレンスツリーである場合には、ステップS123〜127の処理をせずに、ステップS129の処理をするようにすればよい。
【0254】
なお、最初からリファレンスフィールドのラベルで連想検索することも可能である。たとえば、「HONDA」を入力して連想検索する場合には、リファレンスフィールド65に「HONDA」が記憶されているレコードを特定し、当該レコードのIDがコネクションフィールド64に記憶されているレコードを抽出する。抽出できたレコードから、ミーニングツリーを抽出することにより、リファレンスツリーからミーニングツリーへの連想が可能となる。
【0255】
なお、コネクションフィールド64ではなく、リファレンスフィールド65に記憶されているレコードを抽出するようにしてもよい。
【0256】
CPU23は、叙述節処理を終了すると、すべての主従モナドについての処理が終了したか否か判断する(
図27ステップS125)。この場合、全ての処理が終了したので、CPU23は、抽出したモナドを連結した知識データベースを生成する(ステップS129)。
【0257】
具体的には、位置連結関係、意味連結関係および参照連結関係に基づいて、各素子を連結させればよい。本実施形態においては、位置連結関係については直線で、意味連結関係および参照連結関係については、曲線で連結するようにした。これにより、
図26に示す連結関係を得ることができる。
図26においては、トップモナドについては2重丸にて、リファレンスツリーのトップモナドについて二重丸の中に文字「R」を表記するようにしたがこれに限定されない。
【0258】
位置連結関係とは2つの素子が上下関係が定められてつながっており、かつ、その連結属性が定められており、かつ、ミーニングフィールドまたはリファレンスフィールドに値が入っている関係をいう。
【0259】
意味連結関係とは、ミーニングフィールドのIDで連結されている関係をいい、参照連結関係とはリファレンスフィールドのIDで連結されている関係をいう。
【0260】
この知識データベースは、位置連結関係、意味連結関係および参照連結関係で連結されている。従って、これらの連結関係を順次たどっていくことにより、関連するレコード情報を順次読みだすことができる。
【0261】
6.3 〈リファレンス関係について〉
図23ではID61の実体のラベルが「本田リサ」である場合について説明したが、かかるラベルは複数の実体に対して1のラベルがある場合(多対1)、1の実体に対して複数のラベルがある場合(1対多)、複数の実体に対して複数のラベルがある場合(多対多)に、あるミーニングツリーからラベルモナドをたどり、さらにそのラベルモナドから別のミーニングツリーと、つぎつぎに連想させることもできる。
【0262】
6.3.1 〈多対1のリファレンス関係について〉
多対1の場合について説明する。テーブルに
図29に示すレコードが記憶されており、2つの実体ID61および実体ID1061のラベルが「本田リサ」である場合に、
図27に示す読み出し処理により、
図30のようなミーニングツリーおよびリファレンスツリーが構築される。
【0263】
図30では、1のリファレンスツリーに対して、複数の実体から1の参照連結関係が構築されている。具体的には
図30では、ID640とID1062のモナドから、ID641が参照連結されている。
【0264】
すなわち、この実施形態では、第1の連結知識データの上位個別素子データに関連づけられる複数の下位個別素子データのうち、少なくとも1の下位個別素子データ(ID640)は、前記属性値データを有しておらず、かつ、前記参照先の個別素子データの素子データIDによって参照される個別素子データ(モナドID641)が関連づけられており、第2の連結知識データの上位個別素子データに関連づけられる複数の下位個別素子データのうち、少なくとも1の下位個別素子データ(モナドID1062)は、前記属性値データを有しておらず、かつ、前記参照先の個別素子データの素子データIDによって参照される個別素子データ(モナドID641)が関連づけられており、この参照先の個別素子データは同じ個別素子データ(IモナドD641)である。
【0265】
ミーニングツリーおよびリファレンスツリーがこのような関係にある場合、ID61のモナドをトップとするミーニングツリーから、ID641のモナドが参照され、このモナドから、ID1061のモナドをトップとするミーニングツリーを連想することができる。
【0266】
6.3.2 〈1対多のリファレンス関係について〉
1対多の場合について説明する。テーブルに
図31に示すレコードが記憶されている場合、1の実体ID61が「本田」および「HONDA」の2つのラベルを有する場合、
図32のような2つのリファレンスツリーに対して、1のID61の実体から参照連結関係が構築される。
【0267】
具体的には
図32では、ID61は2つのモナドID1100とID1110を有しており、モナドID1100とID1110から、ID632およびID631がそれぞれ、参照連結されている。これにより、ID61の実体は、2つのラベルを有することを表すことができる。
【0268】
すなわち、この実施形態では、複数の連結知識データ(この場合、モナドID61をトップとするミーニングツリー、モナドID632およびモナドID631をトップとするリファレンスツリー)のうち、少なくとも2以上の連結知識データ(この場合、モナドID632およびモナドID631をトップとするリファレンスツリー)について、下記が成立する個別素子データが前記記憶手段に記憶されている。
【0269】
第1の連結知識データ(モナドID61をトップとするミーニングツリー)の上位個別素子データに関連づけられる複数の下位個別素子データのうち、第1の下位個別素子データ(モナドID1100)および第2の下位個別素子データ(モナドID1110)は、前記属性値データを有しておらず、かつ、前記参照先の個別素子データの素子データIDによって参照される参照先の個別素子データ(モナドID632、モナドID631)が関連づけられており、前記参照個別素子データは、各々異なる個別素子データ(モナドID632,モナドID631)である。
【0270】
ミーニングツリーおよびリファレンスツリーがこのような関係にある場合、たとえば、ID632のモナドから、ID61のモナドをトップとするミーニングツリーを連結し、さらに、その下位のモナドから、ID631のモナドを参照することができる。
【0271】
6.3.3 〈多対多のリファレンス関係について〉
多対多の場合について説明する。テーブルに
図31および
図33に示すレコードが記憶されている場合、実体であるモナドID61、ID656がそれぞれ
図34のような2つのリファレンスツリー(「本田」および「HONDA」)に対して、ID61およびID656の実体からそれぞれ参照連結関係が構築される。具体的には、
図34では、
図32に加えて、ID656は2つのモナドID1131とID1141を有しており、モナドID1131とID1141から、ID632およびID631がそれぞれ、参照連結されている。これにより、ID61およびID656の実体は、同じ2つのラベルをそれぞれ有することを表すことができる。
【0272】
なお、
図34のツリーα1、α2、およびα3が
図33で示すレコードから構築される部分である。ツリーα1、α2がリファレンスツリーであり、ツリーα3がミーニングツリーである。
【0273】
なお、
図34では叙述節構成データの最上位のモナドのみ表示し、他は省略表示している。また、ID631、632の下位モナド1125,1223,1121,1211からの参照を示す曲線矢印は省略表記している。
【0274】
すなわち、この実施形態では、前記複数の連結知識データのうち、少なくとも2以上の連結知識データ(モナドID61をトップとするミーニングツリー、ID656をトップとするミーニングツリー)について、下記が成立する個別素子データが記憶手段に記憶されている。第1の連結知識データ(モナドID61をトップとするミーニングツリー)の上位個別素子データ(モナドID61)に関連づけられる複数の下位個別素子データのうち、第1および第2の下位個別素子データ(モナドID1100、ID1110)は、前記属性値データを有しておらず、かつ、前記参照先の個別素子データの素子データIDによって参照される個別素子データ(モナドID632、ID631)が関連づけられており、前記第1、第2の下位個別素子データは、互いに異なる個別素子データ(モナドID632、ID631)を参照している。また、第2の連結知識データ(モナドID656をトップとするミーニングツリー)の上位個別素子データ(モナドID656)に関連づけられる複数の下位個別素子データのうち、少なくとも2の下位個別素子データ(モナドID1131、モナドID1141)は、前記属性値データを有しておらず、かつ、一方は、前記第1の下位個別素子データ(モナドID1100)が関連づけられた個別素子データ(モナドID632)と関連づけられた第3の下位個別素子データ(モナドID1131)であり、他方は、前記第2の下位個別素子データ(モナドID1110)が関連づけられた個別素子データ(モナドID631)と関連づけられた第4の下位個別素子データ(モナドID1141)である。
【0275】
なお、この上記各実施形態においても、リファレンスツリーのトップモナドのレコードだけを抽出するようにしてもよい。
【0276】
ミーニングツリーおよびリファレンスツリーがこのような関係にある場合、ID61のモナドをトップとするミーニングツリーから、ID631のモナドが参照され、このモナドから、ID656のモナドをトップとするミーニングツリーを連結した知識データを得ることができる。
【0277】
また、ID632のモナドから、ID61のモナドをトップとするミーニングツリーを連結し、さらに、その下位のID1110のモナドから、ID631のモナドを参照した知識データを得ることができる。
【0278】
なお、
図34では、ID61のモナドの下位モナドから参照しているID632、ID631のリファレンスモナドについて、ID656のミーニングモナドからも参照している場合を例として説明したが、ID656のミーニングモナドの下位モナドのうち、一方のみ参照する場合であってもよい。また、ID656のミーニングモナドの下位モナドのうち、一方は、ID61のミーニングモナドが参照しているID632、ID631以外のリファレンスモナドを参照する場合であってもよい。
【0279】
6.4 〈応用について〉
以上説明した、実体とラベルとの対応、1対多、多対1、または多対多の関係を応用すると、同音異義語の処理が可能となる。たとえば、1の読み「くも」について、実体「雲」も「蜘蛛」も存在する。英語の場合、”bean”と”been”が該当する。
【0280】
また、異なる言語間の翻訳処理も可能となる。なぜなら、言語が異なると1の実体について、複数の表記があるからである。たとえば、同じ果物について、日本語では「リンゴ」、英語では「apple」と表記される。なお、言語が同じでも地方によって呼び名が異なるような場合も同様である。
【0281】
本実施形態においては、実体のラベルが判明しており、そのIDで読み出す場合について説明したが、実体のラベルのIDが判明していない場合には、まず該当する文字列をリファレンスフィールド65に記憶されているレコードを読み出し、そのIDで上記のようにコネクションフィールド63を検索するようにすればよい。
【0282】
たとえば、
図29のレコードが記憶されている場合に、文字列「本田リサ」でリファレンスフィールド65を検索すると、ID641が抽出できる。このID641をコネクションフィールド63に記憶するレコードを抽出すると、レコードR642、R1066が抽出される。これらのミーニングフィールド63のIDをたどっていくことにより、ID61およびID1061にたどり着くことができる。
【0283】
なお、このID641をリファレンスフィールド65に記憶するレコードを抽出するようにしてもよい。
【0284】
なお、参照連結関係でつながっている場合、ミーニングフィールド62は空であるので、ミーニングフィールド62は空であるレコードに限定することにより、より短時間で目的とするトップモナドにたどり着くことができる。
【0285】
6.5〈書き込み処理〉
メインプログラム26pによる各モナドの書き込み処理について説明する。以下では、
図35に示すテーブルが記憶されている場合に、叙述節「本田は豊田一郎の部下である本田リサの姓の日本語表記である」のデータが与えられた場合について、説明する。この場合、以下の処理により、
図36に示すレコードが追加される。
【0286】
6.5.1 叙述節データの入力処理
まず、叙述節データ「”本田”は豊田一郎の部下である本田リサの姓の日本語表記である」の入力手法について
図37を用いて説明する。
【0287】
CPU23は入力用のテンプレート入力画面を表示する(
図37ステップS151)。
図38にその一例を示す。このような場合、「姓○○は姓保持者XXに対して姓の日本語表記である」という関係を表すテンプレートを記憶しておく。これを読み出して、ユーザに主語である文字列および目的語を入力させればよい。テンプレートについては候補を複数記憶しておき、ユーザに選択させるようにしてもよい。
【0288】
ユーザは、姓「本田」を入力ボックス151に、対象「本田リサ」を入力ボックス153に入力する。また、対象「本田リサ」には「豊田一郎の部下である」という修飾語があるので、ユーザはアイコン154を選択する。
【0289】
CPU23は終了ボタン159が選択されているか否か判断し(ステップS153)、この場合選択されていないので、ステップS155に進み、追加ボタンが選択された否か判断する。この場合、アイコン154が選択されたので、修飾する入力ボックスの特定を促す(ステップS157)。本実施形態においては、「修飾対象の入力ボックスを選択してください」との画面表示をするようにしたが、これに限定されない。
【0290】
この場合、修飾を希望する入力ボックスは入力ボックス153に入力された「本田リサ」であるので、ユーザは入力ボックス153を選択する。
【0291】
これにより、CPU23は指定された入力ボックスの修飾関係を示す追加の入力ボックスを表示する(ステップS159)。この場合の一例を
図39に示す。
【0292】
この場合、「主語(○○)は対象(XX)に対して部下である」という3つの入力ボックスのうち、関係が決まっていないのは入力ボックス163である。ユーザは、入力ボックス163に「豊田一郎」を入力し、終了ボタンを選択する。
【0293】
CPU23は終了ボタン159が選択されているか否か判断し(ステップS153)、この場合選択されているので、ラベル検索を行い(ステップS161)、入力ボックスに入力されたラベルが存在するか否か判断する(ステップS163)。具体的には、テーブルのリファレンスフィールド65にかかる文字列が存在するか否か判断すればよい。
【0294】
この場合、入力ボックス153に入力された「本田リサ」は既に存在するが、入力ボックス151に入力された「本田」はまだ存在しない。したがって、CPU23は、ラベル「本田」を新規登録する(ステップS165)。これにより、空いているIDのレコードに、同じIDがミーニングフィールド62に記憶され、リファレンスフィールド65に「本田」が記憶されたレコードが生成される。この場合、レコードID「632」に登録されたものとする。
【0295】
もし、新規登録するラベルが複数ある場合には、ステップS165を繰り返せばよい。
【0296】
CPU23は、ラベルと実体との対応付けを行う(ステップS167)。これは「本田リサ」という1つのラベルが、
図30に示すように、ID61、ID1061のように複数の実体が対応づけられている場合があるからである。本実施形態においては、CPU23は複数の実体が存在する場合には、双方のミーニングツリーで表される実体の連結属性を画面上に表示して、ユーザが選択する際の参考とするようにしたが、これに限定されない。
【0297】
この場合であれば、ユーザによって、ID61のレコードのモナドが選択されることとなる。また、テンプレートとして採用した「姓の日本語表記である」という動詞における基格Sは、ラベルが入力されると決められているので、ラベル「本田」については、実体との対応付けはなされない。また、「豊田一郎」についても、上記と同様に実体との対応付けがなされる。この場合、ID63のレコードのモナドが選択されたものとする。
【0298】
このようにして叙述節データ「”本田”は豊田一郎の部下である本田リサの姓の日本語表記である」についてのデータ入力が完了する。
【0299】
なお、本実施形態においては、終了ボタンが選択された場合に、リファレンスフィールド65の文字列を有するレコードが存在するか否かを判断するようにしたが、判断時期はこれに限定されず、たとえば、入力ボックスに入力されると、前記存在判断をするようにしてもよい。また、実体との対応付けについても同様である。
【0300】
6.5.2〈テーブル書き込み処理〉
その後の書き込み処理については、リファレンスフィールドへの書き込み処理以外は第1実施形態とほぼ同じである。なお、
図40では、さらに内容を理解しやすくするために、第1実施形態とは処理の順番を入れ替えている。
【0301】
6.5.3 叙述節構成モナド書き込み処理
CPU23は、叙述節構成モナドを生成して、書き込みを行う(
図40ステップS41)。叙述節構成モナドの生成処理について
図41を用いて説明する。CPU23は、起点モナド、経路モナドおよび着点モナドを決定する(
図41ステップS171)。この実施形態では、ユーザは叙述節データを入力する時に、基格S、路格P、先格Gを決めて入力されている。したがって、第1実施形態のように、形態素解析なしに、起点モナド、経路モナドおよび着点モナドを決定することができる。この場合、与えられたデータ”本田”は基格S、”姓の日本語表記である”は路格P、”本田リサ”は先格Gとなる。
【0302】
CPU23は、最上位モナドのIDを生成して、書き込む(ステップS173)。かかるIDは空いているIDを使用する。ここでは、ID「1102」とする。CPU23は、レコード「1102」のミーニングフィールド62に「1102」を書き込む。
【0303】
CPU23は、基格Sはラベルが入力されるべきか否か判断する(ステップS175)。ラベルが入力されるべきか否かは、基格Pである動詞(この場合、「姓の日本語表記である」)において、基格Sがラベルが入力されると決められているか否かで判断される。このため、各動詞には、基格Sまたは先格Gについてラベルが入力されるか否かが記憶されている(図示せず)。
【0304】
この場合、この動詞は、基格Sにラベルが入ると決められているので、CPU23は、他参照モナドフラグ(リファレンスモナドを参照するモナドであることを示すフラグ)をオンとするとともに、リファレンスフィールド65で特定したモナドを生成し、書き込む(ステップS177)。この場合、CPU23は、空いているID「1103」のミーニングフィールド62に「−(空き)」を、コネクションフィールド63に、上位モナドのID「1102」を、「基格」のID「4」をリレーションフィールド64に、リファレンスフィールド65に「本田」のID「632」を書き込む。なお、「本田」のIDは、リファレンスフィールド65を文字列「本田」で検索すればよい。
【0305】
CPU23は、路格Pのレコードを書き込む(ステップS181)。この場合、「姓の日本語表記である」はID「82」、路格PはID「5」、上位モナドはID「1102」である。したがって、つぎの空きID「1104」のミーニングフィールド62に「82」を、コネクションフィールド63に上位モナドID「1102」を「路格P」のID「5」をリレーションフィールド64に、リファレンスフィールド65に「−(空き)」を書き込む。
【0306】
CPU23は、先格Gはラベルが入力されるべきか否か判断する(ステップS183)。ラベルが入力されるべきか否かは、既に述べたように、動詞によって決められている。この場合、先格Gはラベルが入らないと定められているので、CPU23は、ミーニングフィールド62で特定したモナドを生成し、書き込む(ステップS187)。この場合、空いているID「1105」のミーニングフィールド62に本田リサの実体を示すID「61」を、コネクションフィールド63に上位モナドのID「1102」を、リレーションフィールド64に先格GのID「6」を、リファレンスフィールド65に「−(空き)」を書き込む。
【0307】
CPU23は、
図42に進み、拡張モナドがある間、ステップS193〜ステップS199を繰り返す(ステップS191〜ステップS199)。なお、拡張モナドとは、基格、先格、および路格以外のモナド候補をいう。
【0308】
この場合、「本田」(基格)、「本田リサ」(先格)、および「姓の日本語表記である」(路格)以外にモナド候補のデータが存在するので、拡張モナドがあると判断する。具体的には、CPU23は、本田リサを修飾している「豊田一郎」と「部下である」のうち、基格である「豊田一郎」が拡張モナドであると判断する。
【0309】
本実施形態においては、「豊田一郎」は基格として取り扱われる。これは、以下のような理由による。このような拡張モナドについては、路格「部下である」について、修飾対象である「本田リサ」が「豊田一郎」の部下である場合と、「豊田一郎」が修飾対象である「本田リサ」の部下である場合と2つあり得る。このシステムでは、前者であるものとして規則化したからである。
【0310】
CPU23は拡張モナドについて、ラベルが入力されるべきか否か判断する(ステップS193)。この場合、拡張モナド「豊田一郎」は、対応する路格Pである「部下である」は、ラベルが入力されないと設定されているので、ステップS195に進み、CPU23は、ミーニングフィールド62で特定したモナドを生成し、書き込む。
【0311】
ここで、「本田リサ」が「豊田一郎」の部下である場合、「豊田一郎」から見ると、「本田リサ」は「−部下である」という関係にある。したがって、空いているID「1106」のミーニングフィールド62に豊田一郎の実体を示すID「63」を、コネクションフィールド63に上位モナドのID「1102」を、リレーションフィールド64に「−部下である」のID「53」を、リファレンスフィールド65に「−(空き)」を書き込む。
【0312】
CPU23は、ステップS199にて拡張モナドがなくなったか否か判断し、この場合、拡張モナドは1つであるので、叙述節構成モナドの書き込み処理を終了する。
【0313】
かかる処理により、
図36のレコードR1102〜1106が書き込まれる。
【0314】
本実施形態においては、既に説明したように、路格Pを構成する動詞について、ラベルが入力されるか否かの情報を記憶しておき、これにより、ミーニングに値を持つモナドかリファレンスに値を持つモナドかが区別して書き込まれる。この前提として、動詞は、少なくとも、基格、先格、および路格を有するものと扱っている。ここで、一般の文法では目的語を有していない自動詞およびBe動詞が存在する。この明細書では、これらの動詞について、目的語を取る形式で取り扱う。たとえば、「本田リサが走る」という自動詞の場合、「本田リサが本田リサを走らせる」として扱う。また、「リンゴは赤い」というBe動詞の場合、「赤はリンゴに対し色である」というように、色であるという動詞を用いて取り扱われる。
【0315】
また、この場合、動詞は、第1実施形態と同様に、下位個別素子データから見た「路格」として扱われる。
【0316】
6.5.4 〈ツリーモナドおよび叙述節連結モナドの書き込み処理〉
つぎに、CPU23はツリーモナドおよび叙述節連結モナドの書き込み処理を行う(
図40ステップS44)。ツリーモナドとはミーニングツリーモナドおよびリファレンスツリーモナドの総称である。この実施形態では、リファレンスモナドを参照するモナド(以下、他参照モナドという)の書き込みか否かを判断している点で、以下のように、第1実施形態とは異なる。
【0317】
ステップS44の詳細を、
図43を用いて説明する。CPU23は、ツリーモナドの候補を決定する(
図43ステップS201)。ツリーモナドの候補として、2種類の主従モナドがある。この場合、2種類の主従モナドとして、トップモナドが実体である場合と、ラベルである場合がある。前者は、ミーニングツリーモナドであり、後者はリファレンスツリーモナドである。前者は、さらに2種類に分かれて、ラベルを参照する場合と、ラベルを参照しない場合がある。ラベルを参照しない場合、およびその際、詳細モナドがある場合の処理は第1実施形態と同じであるので説明は省略する。
【0318】
以下では、まず、ミーニングツリーモナドであり、かつ、ラベルを参照するツリーモナドの書き込み処理、さらに、リファレンスモナドの書き込み処理について説明する。
【0319】
CPU23は、処理番号iを初期化し(
図43ステップS203)、0番目のツリーモナド候補について、リファレンスモナドを参照するフラグ(他参照モナドフラグ)がオンか否か判断する(ステップS205)。この場合、
図42のステップS197にて、0番目のツリーモナド候補「本田」は、他参照モナドフラグがオンに設定されているので、リファレンスフィールド65にて他のモナドを参照するモナドを生成する(
図43ステップS209)。具体的には、ミーニングフィールド62に「−」が、コネクションフィールド63に「61」が、リレーションフィールド64に「姓の日本語表記である」を示すID「82」が、リファレンスフィールド65にラベル「本田」を表す「632」が、それぞれ、記憶される。これによりリファレンスモナドを参照するミーニングツリーモナド(他参照モナド)が生成される。
【0320】
CPU23は、生成した他参照モナドがテーブルに既に存在するか否か判断する(ステップS211)。この場合、生成した他参照モナドは、テーブルには存在しないので、CPU23は、テーブルに書き込む(ステップS213)。書き込むIDは、空いているIDを使用する。ここでは、ID「1100」とする。
【0321】
CPU23は、叙述節連結モナドを生成して、テーブルに書き込む(ステップS215)。叙述節連結モナドの書き込みについては、第1実施形態と同様である。この場合、ステップS213で決定したのはID「1100」であり、接続する叙述節構成モナドの最上位モナドは、「1102」である。したがって、CPU23は、空きのあるID「1101」のミーニングフィールド62に「1102」を、コネクションフィールド63に「1100」を、リレーションフィールド64に「24」を書き込む。
【0322】
CPU23は、逆ツリーモナドを生成する(ステップS216)。逆ツリーモナドとは、第1実施形態でも説明したように、i番目のツリーモナド候補とは逆述語関係となるモナドをいう。たとえば、第1実施形態では、「本田リサ」は「リンゴ」を「食べる」に対して、「リンゴ」は「本田リサ」に「食べられる(−食べる)」の逆関係となるツリーモナドが生成された。これと同様に、この場合、実体である「本田リサ」は、ラベル「本田」について「−姓の日本語表記である」が生成される。この場合、他参照モナドフラグのミーニングツリーの逆述語関係のモナドとして、リファレンスモナドをトップにするリファレンスツリーモナドとなる。
【0323】
ステップS216の詳細を
図44に示す。
【0324】
CPU23は、基格S、路格P、先格Gのうち、路格P「姓の日本語表記である」の逆関係の「−姓の日本語表記である」を特定する(ステップS231)。CPU23は、基格Sと先格Gを入れ替えたモナドを生成する(ステップS233)。この場合であれば、ミーニングフィールド62に「61」が、コネクションフィールド63に「632」が、リレーションフィールド64に「−姓の日本語表記である」を示すID「83」が、リファレンスフィールド65に「−」が、それぞれ、記憶される。
【0325】
CPU23は、かかるモナドがすでに存在するか否か判断する(ステップS235)。この場合、存在しないので、テーブルに書き込む(ステップS237)。具体的には、CPU23は、空きのあるID「1121」のミーニングフィールド62に「61」を、コネクションフィールド63に「632」を、リレーションフィールド64に「83」を書き込む。これによりリファレンスツリーモナドが生成される。
【0326】
CPU23は、
図43ステップS215で生成した叙述節連結モナドを連結する叙述節連結モナドを生成して、書き込みを行う(ステップS239)。かかる処理については、ステップS215と同様であるので、具体的な説明は省略するが、この場合、ステップS213で決定したのはID「1121」であり、接続する叙述節構成モナドの最上位モナドは、「1102」である。したがって、CPU23は、空きのあるID「1122」のミーニングフィールド62に「1102」を、コネクションフィールド63に「1121」を、リレーションフィールド64に「24」を書き込む。
【0327】
なお、ステップS235にてすでに存在する場合には、重みフラグをオンにする(ステップS238)。かかる処理は
図43ステップS221と同様であるので説明は省略する。
【0328】
CPU23は
図43ステップS201で決定した候補について、すべて処理が終了したか否か判断する(
図43ステップS217)。この場合、すべて終了したので、CPU23は
図40に戻り、書き込み処理を終了する。この場合、
図36のレコードR1100、R1101、R1121,R1122が書き込まれる。
【0329】
図36に示すレコードが追記される前のレコードを
図35とすると、これを
図27に示す読み出しフローチャートで読み出すと、
図45に示すミーニングツリーおよびリファレンスツリーが得られる。ここに、前記書き込み処理によって、
図36に示すレコードが追記され、これらをも併せて読み出すと、
図46に示すツリー構造が得られる。
【0330】
なお、
図45,
図46において、追加したリファレンスツリー以外のラベルについて理解を容易にするために、第1実施形態と同様にしている。
【0331】
また、
図43ステップS221については、
図11のステップS78と同様にである。
【0332】
なお、
図35にて、R4〜R72,R80〜83,R641,R643は予め記憶されているが、他のモナドに連結された場合にのみ、
図44には表示される。また、
図35のレコードR63は「豊田一郎」のミーニングモナドのトップモナドであるが、
図35では、かかるミーニングモナドのレコードは省略している。
【0333】
本実施形態においては、
図44ステップS216にて逆関係のモナドを生成するようにした。しかし、これに限定されず、第1実施形態のように、逆関係のモナドについても、ツリーモナドとして、繰り返し処理により生成するようにしてもよい。また、逆に、第1実施形態にて、ステップS216のような処理を設けて、処理するようにしてもよい。
【0334】
6.6 〈その他の実施形態〉
上記実施形態では、ミーニングツリーとリファレンスツリー間の参照について説明したが、リファレンスツリー間の参照も可能である。たとえば、
図32にて、ラベル「HONDA」を表すID631のモナドが存在する場合に、「HONDAはhondaの大文字表記である」という叙述節を追加すると、以下のような参照関係となる。
【0335】
「大文字表記である」という路格Pについては、基格Sも先格Gもいずれも、ラベルであると決められている。したがって、
図41ステップS177およびステップS185にて、いずれもリファレンスフィールド65で特定した書き込みが行われる。
【0336】
まず定義モナドとして、モナドID1201として、ミーニングフィールドに「1201」が、リファレンスフィールド65に「honda」が、モナドID1202として、ミーニングフィールドに「1202」が、ミーニングフィールド62に「大文字表記である」が存在したとする。これを参照する形式で、モナドID1203として、ミーニングフィールド62が空、コネクションフィールド63に「631」、リレーションフィールド64に「1202」、リファレンスフィールド65に「1201」が記載されたモナドが追加される。
【0337】
なお、上記実施形態と同様にして、逆関係のモナドを生成するようにしてもよい(
図44ステップS216参照)。
【0338】
重みおよび時モナドについて、第3実施形態についても同様に適用することができる。これにより、たとえば、翻訳などに用いた場合、第2実施形態にて説明したのと同様に、その頻度、最近の使用傾向などに応じた翻訳結果を得ることができる。かかる重みおよび時モナドについては、ミーニングツリーだけでなく、リファレンスツリーについても同様に適用することができる。
【0339】
また本実施形態においては、路格Pを構成するモナドについて、モナドごとに、基格Sおよび/または先格Gがラベルであるとのルールを記憶しておき、それに該当する場合は実体との対応付けがないと判断するようにした。しかしこれに限定されず、たとえば、実体との対応付けがなされたか否かで、ミーニングフィールドのIDで連結するか、リファレンスフィールドのIDで連結するかを変更するようにしてもよい。もちろん、かかる属性について、同様のツリー構造によって記憶すればよい。
【0340】
7.1〈機能ブロック図〉
図47に、第3実施形態にかかるデータベース管理装置1の機能ブロック図を示す。データベース管理装置1は、記憶部203、関係付け部205、読出し部207、および書き込み部209を備えている。
【0341】
記憶部203は、少なくとも下記5つのフィールドa1)〜a5)から構成されたテーブルであって、1レコードで1の素子データが構成されるテーブルが記憶されている。a1)当該素子データの素子データIDが記憶される素子データIDフィールド、a2)当該素子データの上位に位置する上位素子データのIDである上位素子データIDが記憶される上位素子データフィールド、a3)当該素子データと前記上位素子データとの連結属性を表す連結属性素子データのIDである連結属性素子データIDが記憶される連結属性素子データフィールド、a4)前記連結属性の値を表す属性値を特定する属性値特定IDが記憶される属性値データフィールド、a5)前記属性値データフィールドに記憶される属性値特定IDが表す表記データ、または、参照先の素子データIDが記憶される参照素子データフィールド。
【0342】
関係付け部205は、あるレコードについて、そのミーニングフィールドに記憶されているIDが、上位素子データフィールドに記憶されているレコードを、前記あるレコードを上位レコードとしてその下位レコードとして位置づけるとともに、前記下位レコードの連結属性素子データフィールドに記憶された連結属性素子データで示される連結属性が、前記下位レコードの属性値データフィールドに記憶された属性値であるとして前記上位レコードと前記下位レコードとを関係づける。また、関係付け部205は、前記下位レコードについて属性値データフィールドが空の場合、前記参照素子データフィールドに記憶されているIDで参照されるレコードを特定し、特定したレコードの参照素子データフィールドに記憶されているデータを前記ミーニングフィールドが空のレコードのラベルとして関係づける。
【0343】
読出し部207は、関係付け部205に前記関係付けを繰り返させることにより、前記上位レコードに対して複数の下位レコードを連結させた連結知識データを読み出す。
【0344】
書き込み部209は、書き込み対象の素子について、上位素子IDおよびこの上位素子との連結属性における連結属性素子データおよびその属性値が与えられると、前記上位素子IDを上位素子データフィールドに、前記連結属性素子データを連結属性素子データフィールドに、その属性値を属性値データフィールドに書き込む。また、前記書き込み手段は、書き込み対象の素子について、上位素子IDおよびこの上位素子との連結属性における連結属性素子データおよび参照先の素子データIDが与えられると、前記上位素子IDを上位素子データフィールドに、前記連結属性素子データを連結属性素子データフィールドに、参照先の素子データIDを参照素子データフィールドに書き込む。
【0345】
これにより、簡易なデータ構造で、複数の知識が連結されたデータを得ることができる。
【0346】
第1実施形態の発明は下記で特定することも可能である。
【0347】
本発明にかかるデータベース管理装置はA)少なくとも下記4つのフィールドa1)〜a4)から構成されたテーブルであって、1レコードで1の素子データが構成されるテーブルを有するデータベース管理装置であって、a1)当該素子データを特定する素子データ特定情報が記憶される素子データ特定情報フィールド、a2)当該素子データの上位に位置する上位素子データを特定する上位素子データ特定情報が記憶される上位素子データフィールド、a3)当該素子データと前記上位素子データとの連結属性を表す連結属性素子データを特定する連結属性素子データ特定情報が記憶される連結属性素子データフィールド、a4)前記連結属性の値を表す属性値を特定する属性値特定IDが記憶される属性値データフィールド、B)前記テーブルは、b1)素子関連データを記憶する素子関連データ記憶部、b2)複数素子群データを記憶する複数素子群データ記憶部、およびb3)前記素子関連データと前記複数素子群データの複数素子群最上位素子データとを連結する複数素子群データ連結データを記憶する複数素子群データ連結データ記憶部を、少なくとも有しており、b1)前記素子関連データは、主素子データと従素子データの関連性を特定するデータであり、前記従素子データの素子データ特定情報が前記属性値データフィールドに、前記主素子データの素子データ特定情報が前記上位素子データフィールドに、前記従素子データからみた前記主素子データの述語関係情報である逆述語関係情報を示す素子データ特定情報が前記連結属性素子データフィールドに、それぞれ記憶されている、b2)前記複数素子群データは、少なくとも、起点素子データ、着点素子データおよび経路素子データと、これらを連結する複数素子群最上位素子データとを有しており、b21)前記複数素子群最上位素子データは、当該素子データの素子データ特定情報が前記素子データ特定情報フィールドおよび前記属性値データフィールドにそれぞれ記憶されている、b22)前記起点素子データは、前記主素子データの素子データ特定情報が前記属性値データフィールドに、前記最上位素子データの素子データ特定情報が前記上位素子データフィールドに、基格を意味する素子データ特定情報が前記連結属性素子データ特定フィールドにそれぞれ記憶されている、b23)前記着点素子データは、前記従素子データの素子データ特定情報が前記属性値データフィールドに、前記最上位素子データの素子データ特定情報が前記上位素子データフィールドに、先格を意味する素子データ特定情報が前記連結属性素子データ特定フィールドにそれぞれ記憶されている、b24)前記経路素子データは、前記主素子データからみた前記従素子データの述語関係情報を示す素子データ特定情報が前記属性値データフィールドに、前記最上位素子データの素子データ特定情報が前記上位素子データフィールドに、路格を意味する素子データ特定情報が前記連結属性素子データ特定フィールドにそれぞれ記憶されている、b3)前記複数素子群データ連結データは、前記複数素子群データの複数素子群最上位素子データ特定情報が前記属性値データフィールドに、前記素子関連データの素子データ特定情報が前記上位素子データ特定フィールドに、当該複数素子群最上位素子データが当該素子関連データに連結されていることを示す焦点化属性の連結属性特定情報が連結属性素子データ特定フィールドに記憶されている、
C)前記属性値データフィールドについて、第1素子データ特定情報を特定した検索要求が与えられると、前記第1素子データを含む素子関連データを抽出するとともに、これに関連する複数素子群データおよび複数素子群データ連結データを抽出して、これにより、連結されている素子データを抽出する抽出手段を備えている。
【0348】
したがって、前記素子データ特定情報フィールド、前記上位素子データフィールド、前記連結属性素子データフィールドおよび前記属性値データフィールドという共通の形式のテーブルにて、各種のデータを連結させたデータベース管理装置を提供することができる。
【0349】
本発明にかかるデータベース管理装置はA)少なくとも下記4つのフィールドa1)〜a4)から構成されたテーブルであって、1レコードで1の素子データが構成されるテーブルを有するデータベース管理装置であって、a1)当該素子データを特定する素子データ特定情報が記憶される素子データ特定情報フィールド、a2)当該素子データの上位に位置する上位素子データを特定する上位素子データ特定情報が記憶される上位素子データフィールド、a3)当該素子データと前記上位素子データとの連結属性を表す連結属性素子データを特定する連結属性素子データ特定情報が記憶される連結属性素子データフィールド、a4)前記連結属性の値を表す属性値を特定する属性値特定IDが記憶される属性値データフィールド、B)前記テーブルは、b1)素子関連データを記憶する素子関連データ記憶部、b2)複数素子群データを記憶する複数素子群データ記憶部、およびb3)前記素子関連データと前記複数素子群データの複数素子群最上位素子データとを連結する複数素子群データ連結データを記憶する複数素子群データ連結データ記憶部を、少なくとも有しており、b1)前記素子関連データは、主素子データと従素子データの関連性を特定するデータであり、前記従素子データの素子データ特定情報が前記属性値データフィールドに、前記主素子データの素子データ特定情報が前記上位素子データフィールドに、前記従素子データからみた前記主素子データの述語関係情報である逆述語関係情報を示す素子データ特定情報が前記連結属性素子データフィールドに、それぞれ記憶されている、b2)前記複数素子群データは、少なくとも、起点素子データ、着点素子データおよび経路素子データと、これらを連結する複数素子群最上位素子データとを有しており、b21)前記複数素子群最上位素子データは、当該素子データの素子データ特定情報が前記素子データ特定情報フィールドおよび前記属性値データフィールドにそれぞれ記憶されている、b22)前記起点素子データは、前記主素子データの素子データ特定情報が前記属性値データフィールドに、前記最上位素子データの素子データ特定情報が前記上位素子データフィールドに、基格を意味する素子データ特定情報が前記連結属性素子データ特定フィールドにそれぞれ記憶されている、b23)前記着点素子データは、前記従素子データの素子データ特定情報が前記属性値データフィールドに、前記最上位素子データの素子データ特定情報が前記上位素子データフィールドに、先格を意味する素子データ特定情報が前記連結属性素子データ特定フィールドにそれぞれ記憶されている、b24)前記経路素子データは、前記主素子データからみた前記従素子データの述語関係情報を示す素子データ特定情報が前記属性値データフィールドに、前記最上位素子データの素子データ特定情報が前記上位素子データフィールドに、路格を意味する素子データ特定情報が前記連結属性素子データ特定フィールドにそれぞれ記憶されている、b3)前記複数素子群データ連結データは、前記複数素子群データの複数素子群最上位素子データ特定情報が前記属性値データフィールドに、前記素子関連データの素子データ特定情報が前記上位素子データ特定フィールドに、当該複数素子群最上位素子データが当該素子関連データに連結されていることを示す焦点化属性の連結属性特定情報が連結属性素子データ特定フィールドに記憶されている、C)新たな複数素子群データとして、起点素子データ、着点素子データ、経路素子データが与えられると、複数素子群最上位素子データを生成して複数素子群データとして書き込むとともに、素子関連データおよび複数素子群データ連結データを生成して、書き込む書き込み手段を備えている。
【0350】
したがって、前記素子データ特定情報フィールド、前記上位素子データフィールド、前記連結属性素子データフィールド、および前記属性値データフィールドという共通の形式のテーブルにて、各種のデータを連結させたデータベース管理装置を提供することができる。
【0351】
上記においては、本発明を好ましい実施形態として説明したが、限定のために用いたのではなく、説明のために用いたものであって、本発明の範囲および精神を逸脱することなく、添付のクレームの範囲において、変更することができるものである。
【解決手段】 複数素子群データ連結データ58は、複数素子群データ50の複数素子群最上位素子データIDがフィールド42に、素子関連データIDがフィールド43に、焦点化属性IDがフィールド44に記憶されている。主素子データIDを特定した検索要求が与えられると、この主素子データを含む素子データを抽出し、当該抽出したデータIDを含む複数素子群データ連結データ58を抽出し、抽出した複数素子群データ連結データで特定される複数素子群データ50を抽出して、連結されている素子データを抽出する。