(57)【特許請求の範囲】
【請求項１】
データベースに記憶された、主語、述語、及び目的語を含むデータの検索処理方法において、
少なくとも述語が指定された検索要求を受け付けると、前記データベースから削除されたデータを記憶する記憶部を参照して、前記述語を含むデータが前記記憶部に記憶されているか否かを判定する処理と、
前記述語を含むデータが前記記憶部に記憶されている場合、該データに含まれる主語及び目的語を抽出する処理と、
抽出した前記主語及び目的語と、前記データベースに記憶された複数のデータそれぞれの主語及び目的語との一致度に基づき、前記複数のデータのいずれかのデータを取得する処理と、
取得した前記データの主語及び目的語を、前記検索要求の応答として出力する処理と、
をコンピュータが実行することを特徴とする検索処理方法。
【請求項２】
前記取得する処理は、前記データベースに記憶された複数のデータのうち、前記抽出した前記主語及び目的語と、当該データの主語及び目的語との間における一致部分について、前記抽出した前記主語及び目的語に対する割合と、当該データの主語及び目的語に対する割合との差分が第１の閾値以下である第１のデータが１以上有れば、いずれかの前記第１のデータを取得する、
ことを特徴とする請求項１記載の検索処理方法。
【請求項３】
前記取得する処理は、前記第１のデータが無い場合に、前記データベースに記憶されているデータのうち、前記抽出した主語及び目的語と、当該データの主語及び目的語との間における一致部分について、前記抽出した前記主語及び目的語に対する割合が、当該データの主語及び目的語に対する割合より第２の閾値を超えて大きい第２のデータが有れば、前記第２のデータのうちのいずれかのデータを取得する、
ことを特徴とする請求項２記載の検索処理方法。
【請求項４】
前記取得する処理は、前記第１のデータが無い場合に、前記データベースに記憶されているデータのうち、前記抽出した主語及び目的語と、当該データの主語及び目的語との間における一致部分について、当該データの主語及び目的語に対する割合が、前記抽出した前記主語及び目的語に対する割合より第２の閾値を超えて大きい第３のデータが有れば、前記第３のデータのうちのいずれかのデータを取得する、
ことを特徴とする請求項２又は３記載の検索処理方法。
【請求項５】
データベースに記憶された、主語、述語、及び目的語を含むデータの検索処理方法において、
前記データが更新されるたびに、更新対象とされたデータが含む述語と、前記データベースに記憶されたデータのうち当該述語を含むデータの集合おける主語の種類数に対する当該集合に含まれるデータの数の割合とを関連付けて記憶部に記憶し、
少なくとも述語が指定された検索要求を受け付けると、前記検索要求に指定された述語に関連付けられて前記記憶部に記憶されている前記割合の履歴において、前記割合の変化量が所定の範囲内であった最後の期間における前記割合を特定し、
特定した割合が１より大きく、前記検索要求に指定された述語に関して、前記検索要求を受け付けた時期より前の所定の時期に算出された前記割合が１である場合に、前記データベースにおいて前記検索要求に対応するデータのうち、主語が共通するごとに一つのデータを、前記検索要求の応答として出力する、
処理をコンピュータが実行することを特徴とする検索処理方法。
【請求項６】
データベースに記憶された、主語、述語、及び目的語を含むデータを検索する検索処理装置であって、
少なくとも述語が指定された検索要求を受け付けると、前記データベースから削除されたデータを記憶する記憶部を参照して、前記述語を含むデータが前記記憶部に記憶されているか否かを判定する判定部と、
前記述語を含むデータが前記記憶部に記憶されている場合、該データに含まれる主語及び目的語を抽出する抽出部と、
抽出した前記主語及び目的語と、前記データベースに記憶された複数のデータそれぞれの主語及び目的語との一致度に基づき、前記複数のデータのいずれかのデータを取得する取得部と、
取得した前記データの主語及び目的語を、前記検索要求の応答として出力する出力部と、
を有することを特徴とする検索処理装置。
【請求項７】
データベースに記憶された、主語、述語、及び目的語を含むデータを検索する検索処理装置であって、
前記データが更新されるたびに、更新対象とされたデータが含む述語と、前記データベースに記憶されたデータのうち当該述語を含むデータの集合おける主語の種類数に対する当該集合に含まれるデータの数の割合とを関連付けて記憶部に記憶する記憶処理部と、
少なくとも述語が指定された検索要求を受け付けると、前記検索要求に指定された述語に関連付けられて前記記憶部に記憶されている前記割合の履歴において、前記割合の変化量が所定の範囲内であった最後の期間における前記割合を特定する特定部と、
特定した割合が１より大きく、前記検索要求に指定された述語に関して、前記検索要求を受け付けた時期より前の所定の時期に算出された前記割合が１である場合に、前記データベースにおいて前記検索要求に対応するデータのうち、主語が共通するごとに一つのデータを、前記検索要求の応答として出力する出力部と、
を有することを特徴とする検索処理装置。
【請求項８】
データベースに記憶された、主語、述語、及び目的語を含むデータの検索処理プログラムであって、
少なくとも述語が指定された検索要求を受け付けると、前記データベースから削除されたデータを記憶する記憶部を参照して、前記述語を含むデータが前記記憶部に記憶されているか否かを判定する処理と、
前記述語を含むデータが前記記憶部に記憶されている場合、該データに含まれる主語及び目的語を抽出する処理と、
抽出した前記主語及び目的語と、前記データベースに記憶された複数のデータそれぞれの主語及び目的語との一致度に基づき、前記複数のデータのいずれかのデータを取得する処理と、
取得した前記データの主語及び目的語を、前記検索要求の応答として出力する処理と、
をコンピュータに実行させることを特徴とする検索処理プログラム。
【請求項９】
データベースに記憶された、主語、述語、及び目的語を含むデータの検索処理プログラムであって、
前記データが更新されるたびに、更新対象とされたデータが含む述語と、前記データベースに記憶されたデータのうち当該述語を含むデータの集合おける主語の種類数に対する当該集合に含まれるデータの数の割合とを関連付けて記憶部に記憶し、
少なくとも述語が指定された検索要求を受け付けると、前記検索要求に指定された述語に関連付けられて前記記憶部に記憶されている前記割合の履歴において、前記割合の変化量が所定の範囲内であった最後の期間における前記割合を特定し、
特定した割合が１より大きく、前記検索要求に指定された述語に関して、前記検索要求を受け付けた時期より前の所定の時期に算出された前記割合が１である場合に、前記データベースにおいて前記検索要求に対応するデータのうち、主語が共通するごとに一つのデータを、前記検索要求の応答として出力する、
処理をコンピュータに実行させることを特徴とする検索処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索処理方法、検索処理装置、及び検索処理プログラムに関する。
【背景技術】
【０００２】
ＲＤＦ（Resource  Description  Framework）によって記述されたデータ（以下、「ＲＤＦデータ」という。）に関して、ＲＤＦクエリ言語の一種であるＳＰＡＲＱＬ（SPARQL  Protocol  and  RDF  Query  Language）のエンドポイントを提供するシステムが有る。
【０００３】
このようなシステムは、アプリケーション等からのＳＰＡＱＬによるクエリに応じた操作を、管理対象のＲＤＦデータに対して行う。なお、ＲＤＦデータは、主語（ｓｕｂｊｅｃｔ）、述語（ｐｒｅｄｉｃａｔｅ）、及び目的語（ｏｂｊｅｃｔ）の３つの要素でリソースの関係情報を表現する。当該関係情報は、トリプル（ｔｒｉｐｌｅ）と呼ばれる。例えば、「企業Ａの従業員数は、１０００人」であるという関係情報において、「企業Ａ」が主語であり、「従業員数」が述語であり、「１０００」が目的語である。
【０００４】
ＳＰＡＲＱＬクエリでは、主語、述語、及び目的語のいずれか１以上の値を指定することで、操作対象とするＲＤＦデータを指定することができる。上記の例では、述語が「従業員数」であるＲＤＦデータの検索クエリによって、各企業の従業員数が検索される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１４５７９４号公報
【特許文献２】特開２０１３−１７５１８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＳＰＡＲＱＬクエリを発行するアプリケーションの中には、クエリがプログラム内にハードコードされているものが有ったり、クエリの結果が特定の構成に従うことを前提に、プログラムされているものが有ったりする。例えば、述語が「従業員数」であるＲＤＦデータの検索クエリに関して、「従業員数」という文字列がハードコードされていたり、「従業員数」に対する目的語が１つであることを前提にプログラムされているアプリケーションが有る。
【０００７】
しかしながら、例えば、データベースの統合や他の要因等に応じて、或る述語の値が更新されたり、或る述語に対する目的語の数が変化したりする可能性が有る。例えば、「従業員数」が「職員数」に変更されたり、共通の主語（例えば、企業）について、男性の「従業員数」を示す目的語と、女性の「従業員数」を示す目的語とが、データベースに含まれる可能性が有る。そうすると、アプリケーションの中には、想定していた結果が得られず、動作が不安定になってしまうものが有る。
【０００８】
そこで、本発明は、一側面では、データの更新に伴う検索結果への影響を低減することを目的とする。
【課題を解決するための手段】
【０００９】
一つの案では、データベースに記憶された、主語、述語、及び目的語を含むデータの検索処理方法は、少なくとも述語が指定された検索要求を受け付けると、前記データベースから削除されたデータを記憶する記憶部を参照して、前記述語を含むデータが前記記憶部に記憶されているか否かを判定する処理と、前記述語を含むデータが前記記憶部に記憶されている場合、該データに含まれる主語及び目的語を抽出する処理と、抽出した前記主語及び目的語と、前記データベースに記憶された複数のデータそれぞれの主語及び目的語との一致度に基づき、前記複数のデータのいずれかのデータを取得する処理と、取得した前記データの主語及び目的語を、前記検索要求の応答として出力する処理と、をコンピュータが実行する。
【発明の効果】
【００１０】
一側面によれば、データの更新に伴う検索結果への影響を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態におけるデータ管理システムの構成例を示す図である。
【図２】第１の実施の形態におけるデータ管理装置のハードウェア構成例を示す図である。
【図３】第１の実施の形態におけるデータ管理システムの機能構成例を示す図である。
【図４】述語の類似度の計算方法を説明するための第１の図である。
【図５】述語の類似度の計算方法を説明するための第２の図である。
【図６】述語の類似度の計算方法を説明するための第３の図である。
【図７】ＲＤＦデータの削除要求の受信時に実行される処理手順の一例を説明するためのフローチャートである。
【図８】削除要求及び削除済みＤＢの構成例を示す図である。
【図９】第１の実施の形態においてＲＤＦデータの検索要求の受信時に実行される処理手順の一例を説明するためのフローチャートである。
【図１０】検索要求の構成例を示す図である。
【図１１】述語の変更パターン及び読み替え先の推定処理の処理手順の一例を説明するためのフローチャートである。
【図１２】１：Ｎ又はＮ：１に関する推定処理の処理手順の一例を説明するためのフローチャートである。
【図１３】集合Ｓ１に基づく１：Ｎの変更パターンの候補の特定処理の処理手順の一例を説明するためのフローチャートである。
【図１４】集合Ｓ２に基づくＮ：１の変更パターンの候補の特定処理の処理手順の一例を説明するためのフローチャートである。
【図１５】変更パターンが１：Ｎ又はＮ：１である場合の読み替え先の特定処理の処理手順の一例を説明するためのフローチャートである。
【図１６】第１の実施の形態におけるＳＰＡＲＱＬに対する検索結果の一例を示す図である。
【図１７】第２の実施の形態におけるデータ管理システムの機能構成例を示す図である。
【図１８】検索要求に指定された述語に対して取得される主語別平均数を説明するための図である。
【図１９】ＲＤＦＤＢの更新時に実行される処理手順の一例を説明するためのフローチャートである。
【図２０】第２の実施の形態におけるＲＤＦＤＢの構成例を示す図である。
【図２１】平均数ＤＢの構成例を示す図である。
【図２２】第２の実施の形態においてＲＤＦデータの検索要求の受信時に実行される処理手順の一例を説明するためのフローチャートである。
【図２３】述語の基準平均数の取得処理の処理手順の一例を説明するためのフローチャートである。
【図２４】基準平均数ＤＢの構成例を示す図である。
【図２５】主語別平均数の整数への変換処理の処理手順の一例を説明するためのフローチャートである。
【図２６】第２の実施の形態におけるＳＰＡＲＱＬに対する検索結果の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、第１の実施の形態におけるデータ管理システムの構成例を示す図である。図１において、データ管理装置１０とＳＰＡＲＱＬサーバ装置２０とは、ＬＡＮ（Local  Area  Network）又はインターネット等のネットワークを介して接続される。ＳＰＡＲＱＬサーバ装置２０は、ＬＡＮ又はインターネット等のネットワークを介して１以上のクライアント装置３０に接続される。
【００１３】
データ管理装置１０は、ＲＤＦ（Resource  Description  Framework）によって記述され、主語、述語、及び目的語のトリプルを含むデータ（以下、「ＲＤＦデータ」という。）を管理する１以上のコンピュータである。主語は、記述対象のリソースを示す文字列である。述語は、主語の特徴や主語と目的語との関係を示す文字列である。目的語は主語との関係のある物や述語の値を示す文字列である。
【００１４】
ＳＰＡＲＱＬサーバ装置２０は、ＲＤＦ用のクエリ言語であるＳＰＡＲＱＬ（SPARQL  Protocol  and  RDF  Query  Language）での、ＲＤＦデータの操作用のインタフェース又はエンドポイントを提供する１以上のコンピュータである。ＳＰＡＲＱＬサーバ装置２０は、ＳＰＡＲＱＬに基づくＲＤＦデータの操作要求を受信すると、当該操作要求に応じた要求をデータ管理装置１０に送信する。ＳＰＡＲＱＬサーバ装置２０とデータ管理装置１０との間では、ＳＰＡＲＱＬに比べてよりプリミティブなレベルでのやり取りが行われる。
【００１５】
クライアント装置３０は、ＳＰＡＲＱＬを利用して、ＲＤＦデータの操作要求をＳＰＡＲＱＬサーバ装置２０に送信するコンピュータである。
【００１６】
図２は、第１の実施の形態におけるデータ管理装置のハードウェア構成例を示す図である。図２のデータ管理装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１７】
データ管理装置１０での処理を実現するプログラムは、記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１８】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってデータ管理装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１９】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard  Disk  Drive）又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００２０】
図３は、第１の実施の形態におけるデータ管理システムの機能構成例を示す図である。図３において、クライアント装置３０は、アプリ３１を有する。アプリ３１は、ＲＤＦデータを利用するアプリケーションプログラムである。アプリ３１は、ＳＰＡＲＱＬを利用して、ＲＤＦデータの操作要求をＳＰＡＲＱＬサーバ装置２０に送信する。
【００２１】
ＳＰＡＲＱＬサーバ装置２０は、ＳＰＡＲＱＬエンジン部２１を有する。ＳＰＡＲＱＬエンジン部２１は、ＳＰＡＲＱＬによるＲＤＦデータの操作要求を解釈し、当該操作要求に応じた処理要求を、データ管理装置１０に送信する。なお、ＳＰＡＲＱＬエンジン部２１は、ＳＰＡＲＱＬサーバ装置２０にインストールされた１以上のプログラムが、ＳＰＡＲＱＬサーバ装置２０のＣＰＵに実行させる処理により実現される。
【００２２】
データ管理装置１０は、データ処理部１１、拡張処理部１２、削除データ保存部１３、述語読替部１４、変更パターン推定部１５、及び類似度計算部１６等を有する。これら各部は、データ管理装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。データ管理装置１０は、また、ＲＤＦＤＢ１１１及び削除済みＤＢ１１２等のデータベースを利用する。これらの各データベースは、例えば、補助記憶装置１０２、又はデータ管理装置１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００２３】
データ処理部１１は、本来的には、ＳＰＡＲＱＬエンジン部２１から送信される処理要求に応じた処理をＲＤＦＤＢ１１１に対して行う。但し、本実施の形態では、ＳＰＡＲＱＬエンジン部２１からの処理要求は、拡張処理部１２によって受信される。すなわち、データ処理部１１は、拡張処理部１２によって外部に対して隠蔽又はラッピングされる。ＲＤＦＤＢ１１１は、ＲＤＦデータ群が記憶されたデータベースである。
【００２４】
拡張処理部１２は、ＳＰＡＲＱＬエンジン部２１から送信される処理要求に応じて、本実施の形態に特有の処理（以下、「拡張処理」という。）を割り込ませるために、データ処理部１１をラッピングする。すなわち、拡張処理部１２は、データ処理部１１と同様のインタフェースを有する。ＳＰＡＲＱＬエンジン部２１からの処理要求は、まず、拡張処理部１２によって受信され、拡張処理が実行される。拡張処理の終了後、当該処理要求は、データ処理部１１に通知される。
【００２５】
削除データ保存部１３は、ＳＰＡＲＱＬエンジン部２１からのＲＤＦデータの削除命令が拡張処理部１２によって受信された場合に、削除対象のＲＤＦデータを削除済みＤＢ１１２に保存する。削除済みＤＢ１１２は、削除対象とされたＲＤＦデータを記憶するためのデータベースである。
【００２６】
変更パターン推定部１５は、ＳＰＡＲＱＬエンジン部２１からのＲＤＦデータへの検索要求が拡張処理部１２によって受信された場合に、検索要求に指定されている述語が削除済みＤＢ１１２に記憶されていれば、当該述語について変更が行われた可能性が有ると判定する。そこで、変更パターン推定部１５は、当該述語の変更が、以下の５つの変更パターンのいずれに該当するのかを推定すると共に、当該述語について、変更先（以下、「読み替え先」という。）の述語を推定する。
【００２７】
１番目の変更パターンは、或る１つの述語が別の１つの述語に変わるパターンである。当該変更パターンを、以下「１：１の変更パターン」という。例えば、「ｐｒｏｐ−ｊａ：氏名」という述語が、「ｆｏａｆ：ｎａｍｅ」という述語に変更された場合、当該変更による述語の変化は、１：１の変更パターンに該当する。
【００２８】
２番目の変更パターンは、或る１つの述語が削除されるパターンである。当該変更パターンを、以下「１：０の変更パターン」という。
【００２９】
３番目の変更パターンは、新たな述語が追加されるパターンである。当該変更パターンを、以下「０：１の変更パターン」という。
【００３０】
４番目の変更パターンは、或る１つの述語が複数の（Ｎ個の）述語に分割されるパターンである。当該変更パターンを、以下「１：Ｎの変更パターン」という。例えば、「ｆｏａｆ：ｎａｍｅ」という述語が、「ｆｏａｆ：ｇｉｖｅｎＮａｍｅ」及び「ｆｏａｆ：ｆａｍｉｌｙＮａｍｅ」の２つの述語に分割された場合、当該分割による述語の変化は、１：Ｎの変更パターンに該当する。
【００３１】
５番目の変更パターンは、複数の（Ｎ個の）述語が１つの述語に統合されるパターンである。当該変更パターンを、以下「Ｎ：１の変更パターン」という。例えば、「ｐｒｏｐ−ｊａ：兄弟」及び「ｐｒｏｐ−ｊａ：子」の２つの述語が、「ｄｂｐｅｄｉａ−ｏｗｌ：ｗｉｋｉＰａｇｅＷｉｋｉＬｉｎｋ」という１つの述語に統合された場合、当該統合による述語の変化は、Ｎ：１の変更パターンに該当する。
【００３２】
なお、述語の変化は、例えば、ＲＤＦＤＢ１１１の管理者による操作等に応じて行われる。
【００３３】
変更パターンの推定は、検索対象のＲＤＦデータの述語ｄ１と、ＲＤＦＤＢ１１１に記憶されている各ＲＤＦデータにおける述語との類似度に基づいて行われる。当該類似度は、類似度計算部１６によって計算される。具体的には、ＲＤＦＤＢ１１１に記憶されているＲＤＦデータの全ての述語の種類の集合をＰとした場合、類似度計算部１６は、述語の集合Ｐに含まれる各述語ｐ∈Ｐと述語ｄ１との類似度を計算する。すなわち、述語ｐ１と述語ｄ１との類似度、述語ｐ２と述語ｄ１との類似度、・・・、述語ｄ１と述語ｐｎとの類似度といったように、Ｐに含まれる全ての述語ｐについて述語ｄ１との類似度が計算される。
【００３４】
図４は、述語の類似度の計算方法を説明するための第１の図である。本実施の形態では、類似度の算出対象の述語の組について、主語が同じ場合の目的語が比較されて類似度が算出される。但し、他の方法によって類似度が算出されてもよい。
【００３５】
図４の上段には、削除済みＤＢ１１２に記憶されており、述語ｄ１を含むＲＤＦデータのうち、主語が＜ａ＞であるＲＤＦデータの目的語が＜ａａａ＞であり、主語が＜ｂ＞であるＲＤＦデータの目的語が＜ｂｂｂ＞であり、主語が＜ｃ＞であるＲＤＦデータの目的語が＜ｃｃｃ＞であり、主語が＜ｄ＞であるＲＤＦデータの目的語が＜ｄｄｄ＞であることが示されている。
【００３６】
一方、図４の下段には、集合Ｐに含まれるいずれかの述語である述語ｐ１に関して、主語が＜ａ＞であるＲＤＦデータの目的語が＜ａａａ＞であり、主語が＜ｂ＞であるＲＤＦデータの目的語が＜ｂｂ＞であり、主語が＜ｃ＞であるＲＤＦデータの目的語が“ｃｃｃ”であり、主語が＜ｄ＞であるＲＤＦデータの目的語が“ｄｄｘｘ”であることが示されている。
【００３７】
なお、＜と＞とで囲まれた値は、ＵＲＩ（Uniform  Resource  Identifier）を示し、“と”とで囲まれた値は、リテラル（文字列等の直接表記の値）を示す。
【００３８】
ＵＲＩ同士の類似度は、完全一致によって評価される。すなわち、ＵＲＩ同士の類似度について、完全一致の場合の類似度は、１．０であり、そうでない場合の類似度は、０．０である。一方、リテラル同士の類似度は、一致する文字数の割合（一致部分の割合）で評価される。比較対象の型が違う場合（一方がＵＲＩで他方がリテラルである場合）の類似度は、０．０であるとする。
【００３９】
なお、リテラル同士の類似度は、一致する文字数の割合であるところ、割合は、比較対象のリテラルのいずれの文字数を分母とするかに応じて異なる。そこで、本実施の形態では、「類似度の方向」という概念が導入される。例えば“ａａａ”と“ａａａｘｘｘ”とについては、“ａａａ”から“ａａａｘｘｘ”を見た場合の類似度と、“ａａａｘｘｘ”から“ａａａ”を見た場合の類似度との２つの類似度が算出される。具体的には、“ａａａ”と  “ａａａｘｘｘ”との間で共通する部分は、“ａａａ”の３文字である。“ａａａ”から“ａａａｘｘｘ”を見た場合、“ａａａ”の文字数が分母とされる。したがって、この場合の類似度は、１．０である。一方、“ａａａｘｘｘ”から“ａａａ”を見た場合、“ａａａｘｘｘ”の文字数が分母とされる。したがって、この場合の類似度は、０．５である。
【００４０】
なお、類似度の方向は、ＵＲＩ同士、及び型が異なる場合にも適用される。但し、これらについては、いずれの方向においても、類似度は同じとなる。
【００４１】
上記をふまえ、図４の具体例に関する類似度を説明する。述語ｄ１と述語ｐ１との類似度は、主語が共通する場合の目的語の類似度の平均値となる。主語＜ａ＞の場合、双方向において、目的語の類似度は、１．０である。主語＜ｂ＞の場合、双方向において、目的語の類似度は、０．０である。主語＜ｃ＞の場合、双方向において、目的語の類似度は、０．０である。主語＜ｄ＞の場合、双方向において、目的語の類似度は、０．５である。
【００４２】
したがって、図４に関して、ｄ１からｐ１を見た場合の類似度は、以下の通りである。
（１．０＋０．０＋０．０＋０．５）／４＝０．３８
また、ｐ１からｄ１を見た場合の類似度は、以下の通りである。
（１．０＋０．０＋０．０＋０．５）／４＝０．３８
図５は、述語の類似度の計算方法を説明するための第２の図である。図４では、比較対象の述語の双方の目的語が１つである場合について説明したが、述語に対する目的語は、１つであるとは限らない。そこで、少なくとも一方の目的語が１個でない場合の類似度の計算方法について説明する。
【００４３】
図５では、図４と同様の表現によって、述語ｄ１及び述語ｐ１について、主語が共通する場合の目的語が示されている。例えば、主語が＜ａ＞である場合の述語ｄ１の目的語が、“ａａａ”及び“ｂｂｂ”であり、述語ｐ１の目的語が、“ａａａ”及び“ｂｂｂ”である例が示されている。
【００４４】
比較される目的語の一方が複数である場合は、目的語の集合としての類似度を計算される。例えば、図５では、一致する目的語の個数の割合が、類似度とされる例が示されている。具体的には、主語＜ａ＞の場合、双方向において、他方の目的語に一致する目的語の割合は、０．５である。したがって、この場合、双方向において、類似度は、０．５である。主語＜ｂ＞の場合、ｄ１の目的語のうち、ｐ１の目的語に一致する目的語の割合は、０．５である。したがって、ｄ１からｐ１を見た場合の類似度は、０．５である。一方、ｐ１の目的語のうち、ｄ１のいずれかの目的語に一致する目的語の割合は、１．０である。したがって、ｐ１からｄ１を見た場合の類似度は、１．０である。主語＜ｃ＞の場も同様に、ｄ１からｐ１を見た場合の類似度は、０．５であり、ｐ１からｄ１を見た場合の類似度は、１．０である。
【００４５】
上記より、図５に関して、ｄ１からｐ１を見た場合の類似度は、以下の通りである。
（０．５＋０．５＋０．５）／３＝０．５０
また、ｐ１からｄ１を見た場合の類似度は、以下の通りである。
（０．５＋１．０＋１．０）／３＝０．８３
なお、類似度の計算には、例えば、Ｊａｃｃａｒｄ係数が用いられてもよいし、他の方法によって類似度が算出されてもよい。
【００４６】
また、述語ｄ１との類似度は、全ての述語ｐ∈Ｐとの間で算出されるとは限らない。述語ｄ１と共通する主語を有さない述語ｐ∈Ｐについては、類似度は算出されない。
【００４７】
上記のような方法で、述語ｄ１と、各述語ｐとの組のそれぞれについて類似度が算出された結果、双方向において同程度の類似度を有する組が有る場合、変更パターン推定部１５は、述語ｄ１の変更パターンは、１：１であると推定する。この場合、該当する組における述語ｐが、述語ｄ１の読み替え先の述語であると推定される。
【００４８】
双方向において同程度の類似度を有する組が無い場合、すなわち、方向によって類似度の高さに差がある場合、変更パターン推定部１５は、述語ｄ１の変更パターンが、１：Ｎ又はＮ：１であると推定する。
【００４９】
具体的には、述語ｄ１から述語ｐを見た場合の類似度が低く、述語ｐから述語ｄ１を見た場合の類似度が高い場合、変更パターン推定部１５は、１：Ｎのパターンであると推定する。例えば、図５に示したような場合、１：Ｎのパターンであると推定される。この場合、類似度計算部１６は、１：ＮにおけるＮ個の述語ｐを特定するために、更に、述語ｄ１と、複数の述語ｐの全ての組み合わせとについて、類似度を算出する。最大の類似度に斯かる述語ｐの組み合わせが、Ｎに該当する述語（述語ｄ１の読み替え先の述語）であると推定される。
【００５０】
一方、述語ｄ１から述語ｐを見た場合の類似度が高く、述語ｐから述語ｄ１を見た場合の類似度が低い場合、変更パターン推定部１５は、Ｎ：１のパターンであると推定する。例えば、図６に示されるような場合、Ｎ：１のパターンであると推定される。すなわち、図６において、ｄ１からｐ１を見た場合の類似度は、０．８３であり、ｐ１からｄ１を見た場合の類似度は、０．５０である。この場合、類似度計算部１６は、Ｎ：１におけるＮ個の述語ｄ∈Ｄ（Ｄは、削除済みＤＢ１１２に記憶されているＲＤＦデータの集合）を特定するために、述語ｄ１と、述語ｄ１以外の述語ｄとの組み合わせと、述語ｐとの組の類似度を計算する。類似度の計算結果に基づいて選択される組における述語ｐが、Ｎ：１における１に該当する述語、すなわち、述語ｄ１の読み替え先の述語であると推定される。
【００５１】
述語読替部１４は、検索要求に指定されている述語ｄ１を、変更パターン推定部１５によって推定された読み替え先の述語に読み替える。例えば、変更パターンが１：１であると推定された場合において、述語ｐ１が述語ｄ１の読み替え先の述語であると推定された場合、述語読替部１４は、検索要求に指定された述語ｄ１を、述語ｐ１に置換する。また、変更パターンが１：Ｎであると推定された場合において、述語ｐ１、述語ｐ２、述語ｐ３が、述語ｄ１の読み替え先の述語であると推定された場合、述語読替部１４は、検索要求に指定された述語ｄ１を、述語ｐ１、述語ｐ２、述語ｐ３に置換する。この場合、検索要求は、３つ分割される。すなわち、述語ｄ１が指定された検索要求は、述語ｐ１が指定された検索要求と、述語ｐ２が指定された検索要求と、述語ｐ３が指定された検索要求に分割される。更に、変更パターンがＮ：１であると推定された場合、述語読替部１４は、検索要求に指定された述語ｄ１を、読み替え先であると推定された１つの述語ｐに置換する。
【００５２】
なお、１：０及び０：１の変更パターンについては、述語の読み替えは行われない。
【００５３】
以下、第１の実施の形態においてデータ管理装置１０が実行する処理手順について説明する。図７は、ＲＤＦデータの削除要求の受信時に実行される処理手順の一例を説明するためのフローチャートである。
【００５４】
アプリ３１から削除要求を受信したＳＰＡＲＱＬエンジン部２１からのＲＤＦデータの削除要求が拡張処理部１２によって受信されると（Ｓ１０１でＹｅｓ）、削除データ保存部１３は、削除要求に係るＲＤＦデータを、削除済みＤＢ１１２に保存する（Ｓ１０２）。
【００５５】
図８は、削除要求及び削除済みＤＢの構成例を示す図である。図８において、（１）は、削除要求の一例を示す。当該削除要求では、主語がｓ１であり、述語がｄ２であり、目的語がｏ１であるＲＤＦデータが削除対象とされている。
【００５６】
（２）は、削除済みＤＢ１１２の構成例を示す。削除済みＤＢ１１２は、削除対象とされたＲＤＦごとに、主語、述語、及び目的語等を記憶する。図８の例では、（２）において２番目のレコードが、削除済みＤＢ１１２に保存される。
【００５７】
続いて、拡張処理部１２は、削除要求をデータ処理部１１に転送する（Ｓ１０３）。データ処理部１１は、当該削除要求に指定されたＲＤＦデータを、ＲＤＦＤＢ１１１から削除する（Ｓ１０４）。
【００５８】
図９は、第１の実施の形態においてＲＤＦデータの検索要求の受信時に実行される処理手順の一例を説明するためのフローチャートである。
【００５９】
アプリ３１から検索要求を受信したＳＰＡＲＱＬエンジン部２１からのＲＤＦデータの検索要求が拡張処理部１２によって受信されると（Ｓ２０１でＹｅｓ）、変更パターン推定部１５は、検索要求に指定されたＲＤＦデータ（検索対象のＲＤＦデータ）の述語が削除済みであるか否かを判定する（Ｓ２０２）。
【００６０】
図１０は、検索要求の構成例を示す図である。図１０では、主語が及び目的語は特定されず、述語が「ｄ１」であるＲＤＦデータの検索要求が示されている。
【００６１】
ステップＳ２０２に関して、検索対象のＲＤＦデータの述語が削除済みであるとは、検索対象のＲＤＦデータがＲＤＦＤＢ１１１に存在せず、かつ、検索要求に指定された述語を含むレコードが、削除済みＤＢ１１２に存在することを意味する。すなわち、図１０に示される検索要求に関しては、述語が「ｄ１」であるＲＤＦデータがＲＤＦＤＢ１１１に存在せず、かつ、述語が「ｄ１」であるレコードが削除済みＤＢ１１２に存在するか否かがステップＳ２０２において判定される。図８の（２）において、１番目のレコードの述語は「ｄ１」である。したがって、述語が「ｄ１」であるＲＤＦデータが、ＲＤＦＤＢ１１１に存在しなければ、ステップＳ２０２における判定結果は、肯定的（「Ｙｅｓ」）となる。
【００６２】
検索対象のＲＤＦデータの述語ｄ１が削除済みである場合（Ｓ２０２でＹｅｓ）、変更パターン推定部１５は、述語ｄ１について、変更パターン及び読み替え先の推定処理を実行する（Ｓ２０３）。変更パターン及び読み替え先の推定処理では、述語ｄ１の変更パターンが推定されて、当該変更パターンにおける述語ｄ１の読み替え先の述語が推定される。
【００６３】
読み替え先の推定に成功した場合（Ｓ２０４でＹｅｓ）、述語読替部１４は、推定結果に従って、検索要求に指定された述語ｄ１を読み替え先の述語に置換する（Ｓ２０５）。
【００６４】
一方、読み替え先の推定に失敗した場合（Ｓ２０４でＮｏ）、ステップＳ２０５は実行されずにステップＳ２０６に進む。
【００６５】
続いて、拡張処理部１２は、述語が置換された検索要求を、データ処理部１１に転送する（Ｓ２０６）。なお、検索対象のＲＤＦデータの述語が削除済みでない場合（Ｓ２０２でＮｏ）、ステップＳ２０３〜Ｓ２０５は実行されない。したがって、この場合、ステップＳ２０６において、受信された検索要求がそのままデータ処理部１１に転送される。
【００６６】
続いて、データ処理部１１は、検索要求に対応するＲＤＦデータをＲＤＦＤＢ１１１から検索する（Ｓ２０７）。検索要求に対応するＲＤＦデータとは、検索要求に指定された検索条件を満たすＲＤＦデータをいう。データ処理部１１は、検索されたＲＤＦデータを含む検索結果（検索要求に対する応答）を、拡張処理部１２に送信する。
【００６７】
当該検索結果が拡張処理部１２によって受信されると、述語読替部１４は、当該検索結果に含まれているＲＤＦデータの述語を、検索要求に指定された述語に置換する（Ｓ２０８）。検索要求元のアプリ３１が想定していない述語を含むＲＤＦデータが返却されることによる、アプリ３１の不正動作を回避するためである。又は、述語読替部１４は、検索結果のＲＤＦデータの述語の置換を行わずに、検索要求に指定された述語が、他の述語に読み替えられたことを示す情報を、検索結果に付加してもよい。なお、検索対象のＲＤＦデータの述語が削除済みでない場合（Ｓ２０２でＮｏ）には、ステップＳ２０８は実行されなくてもよい。また、検索対象のＲＤＦデータの述語が削除済みである場合であっても、ステップＳ２０８が実行されないようにしてもよい。
【００６８】
続いて、拡張処理部１２は、検索結果を、ＳＰＡＲＱＬエンジン部２１に返信する（Ｓ２０９）。その後、当該検索結果は、ＳＰＡＲＱＬエンジン部２１からアプリ３１へ返信される。
【００６９】
続いて、ステップＳ２０３の詳細について説明する。図１１は、述語の変更パターン及び読み替え先の推定処理の処理手順の一例を説明するためのフローチャートである。図１１の説明において、検索要求に指定された述語をｄ１とし、ＲＤＦＤＢ１１１に記憶されている全ての述語の種類の集合をＰ＝｛ｐ１，ｐ２，．．，ｐｎ｝とする。なお、述語ｐ１，ｐ２，．．，ｐｎを区別しない場合、単に、述語ｐという。
【００７０】
ステップＳ３０１において、類似度計算部１６は、ｄ１と各ｐ１，ｐ２，．．．，ｐｎとのｎ個の組について、ｄ１から見た場合の類似度と、ｐから見た場合の類似度とを計算する。但し、全てのｐについて類似度が計算されるとは限らない。ｄ１と共通の主語を有するｐについてのみ、類似度が計算される。なお、類似度の計算において、ｄ１の主語及びｄ１の目的語は、削除済みＤＢ１１２においてｄ１を含むＲＤＦデータの主語及び目的語が採用される。
【００７１】
続いて、変更パターン推定部１５は、類似度が計算されたｄ１とｐとの組の中から、双方向の類似度のそれぞれが閾値αより高く、双方向の類似度の差分の絶対値が閾値βよりも小さい組を特定する（Ｓ３０２）。双方向とは、ｄ１からｐを見た場合と、ｐからｄ１を見た場合との双方をいう。すなわち、ｄ１とｐとが類似しており、双方向から類似度が同程度である組が特定される。以下、特定された組の集合をＲという。なお、閾値α及び閾値βは、予め設定される。
【００７２】
続いて、変更パターン推定部１５は、集合Ｒの要素数が１以上であるか否かを判定する（Ｓ３０３）。Ｒの要素が１以上である場合（Ｓ３０３でＹｅｓ）、変更パターン推定部１５は、集合Ｒの要素であるｄ１とｐとの組ごとに、ｙ／ｘを算出する（Ｓ３０４）。ここで、ｘは、双方向の類似度の合計である。ｙは、双方向の類似度の差分の絶対値である。すなわち、ｙ／ｘは、双方向の類似の度合いの高さを示す指標の一例であり、小さい程、双方向の類似の度合いことを示す。
【００７３】
続いて、変更パターン推定部１５は、ｙ／ｘが最小の組における述語ｐが、述語ｄ１の読み替え先の述語であると判定する（Ｓ３０５）。すなわち、この場合の変更パターンは、１：１であると推定される。
【００７４】
一方、集合Ｒが空である場合（Ｓ３０３でＮｏ）、変更パターン推定部１５は、１：Ｎ又はＮ：１に関する推定処理を実行する（Ｓ３０６）。
【００７５】
続いて、ステップＳ３０６の詳細について説明する。図１２は、１：Ｎ又はＮ：１に関する推定処理の処理手順の一例を説明するためのフローチャートである。
【００７６】
ステップＳ３１１において、変更パターン推定部１５は、集合Ｒの中から、双方向の類似度のうちの少なくとも一方の類似度が閾値αより高く、双方向の類似度の差分の絶対値が、閾値τよりも小さい組を抽出する。抽出された組の集合をＳという。なお、閾値τは、予め設定される。
【００７７】
続いて、変更パターン推定部１５は、集合Ｓの要素が１以上であるか否かを判定する（Ｓ３１２）。集合Ｓが空である場合（Ｓ３１２でＮｏ）、述語ｄ１の変更パターンは、読み替えが可能である、１：１、１：Ｎ、及びＮ：１のうちのいずれの変更パターンにも該当しないと推定される。したがって、この場合、変更パターン推定部１５は、読み替え先の推定が失敗であると判定し、変更パターン及び読み替え先の推定処理を終了する（Ｓ３１３）。
【００７８】
一方、集合Ｓの要素が１以上である場合（Ｓ３１２でＹｅｓ）、変更パターン推定部１５は、集合Ｓの要素を、以下の式（１）を満たす要素の集合であるＳ１と、満たさない要素の集合であるＳ２とに分類する（Ｓ３１４）。
ｄ１からｐを見た場合の類似度＜ｐからｄ１を見た場合の類似度  ・・・（１）
続いて、変更パターン推定部１５は、１：Ｎの変更パターンの候補となる組を、集合Ｓ１に基づいて特定する（Ｓ３１５）。続いて、変更パターン推定部１５は、Ｎ：１の変更パターンの候補となる組を、集合Ｓ２に基づいて特定する（Ｓ３１６）。続いて、変更パターン推定部１５は、集合Ｓ１に基づいて特定された組及と、集合Ｓ２に基づいて特定された組とに基づいて、述語ｄ１について、変更パターンが１：Ｎ又はＮ：１である場合の読み替え先の特定処理を実行する（Ｓ３１７）。
【００７９】
続いて、ステップＳ３１５の詳細について説明する。図１３は、集合Ｓ１に基づく１：Ｎの変更パターンの候補の特定処理の処理手順の一例を説明するためのフローチャートである。図１３の処理手順は、集合Ｓ１に含まれる要素ごとに実行される。以下、処理対象とされている要素において、述語ｄ１と組を形成している述語を、述語ｐｉという。
【００８０】
ステップＳ３２１において、変更パターン推定部１５は、集合Ｐから述語ｐｉを除いた集合Ｐ’の要素を１以上含む、集合Ｐ’の全通りの部分集合ごとに、述語ｐｉと組み合わせた場合の述語ｄ１との類似度を双方向について計算する。集合Ｐとは、ＲＤＦＤＢ１１１に記憶されているＲＤＦデータの全ての述語の種類の集合である。集合Ｐ＝｛ｐｉ，ｐｊ，ｐｋ｝である場合、集合Ｐ’＝｛ｐｊ，ｐｋ｝である。集合Ｐ’の要素を１以上含む、集合Ｐ’の全通りの部分集合は、｛ｐｊ｝、｛ｐｋ｝、｛ｐｊ，ｐｋ｝である。したがって、この場合、ｄ１と｛ｐｉ，ｐｊ｝との類似度、ｄ１と｛ｐｉ，ｐｋ｝との類似度、ｄ１と｛ｐｉ、ｐｊ，ｐｋ｝との類似度が計算される。なお、例えば、ｄ１と｛ｐｉ，ｐｊ｝との類似度は、ｄ１の目的語と、述語ｐｉの目的語、述語ｐｊの目的語の集合（但し、ｄ１と主語が共通する場合の目的語）との類似度である。
【００８１】
続いて、変更パターン推定部１５は、類似度が計算された組のうち、双方向の類似度のそれぞれが閾値αより高く、双方向の類似度の差分の絶対値が閾値βよりも小さい組を特定する（Ｓ３２２）。ここでの組は、ｄ１を含む組である。特定された組は、集合Ｒ１に追加される。集合Ｒ１は、ステップＳ３１５の開始時において空の集合である。したがって、ステップＳ３１５の終了時において、集合Ｒ１には、集合Ｓ１に含まれる各要素について図１３の処理手順が実行されることで特定された全ての組が含まれる。
【００８２】
続いて、図１２のステップＳ３１６の詳細について説明する。図１４は、集合Ｓ２に基づくＮ：１の変更パターンの候補の特定処理の処理手順の一例を説明するためのフローチャートである。図１４の処理手順は、集合Ｓ２に含まれる要素ごとに実行される。以下、処理対象とされている要素において、述語ｄ１と組を形成している述語を、述語ｐｉという。
【００８３】
ステップＳ３２１において、変更パターン推定部１５は、集合Ｄから述語ｄ１を除いた集合Ｄ’の要素を１以上含む、集合Ｄ’の全通りの部分集合ごとに、述語ｄ１と組み合わせた場合の述語ｐｉとの類似度を双方向について計算する。集合Ｄとは、削除済みＤＢ１１２に記憶されているＲＤＦデータの全ての述語の種類の集合である。集合Ｄ＝｛ｄ１，ｐ２，ｐ３｝である場合、集合Ｄ’＝｛ｄ２，ｄ３｝である。集合Ｄ’の要素を１以上含む、集合Ｄ’の全通りの部分集合は、｛ｄ２｝、｛ｄ３｝、｛ｄ２，ｄ３｝である。したがって、この場合、｛ｄ１，ｄ２｝とｐｉとの類似度、｛ｄ１，ｄ３｝とｐｉとの類似度、｛ｄ１、ｄ２，ｄ３｝とｐｉとの類似度が計算される。
【００８４】
続いて、変更パターン推定部１５は、類似度が計算された組のうち、双方向の類似度のそれぞれが閾値αより高く、双方向の類似度の差分の絶対値が閾値βよりも小さい組を特定する（Ｓ３２２）。特定された組は、集合Ｒ２に追加される。集合Ｒ２は、ステップＳ３１６の開始時において空の集合である。したがって、ステップＳ３１６の終了時において、集合Ｒ２には、集合Ｓ２に含まれる各要素について図１４の処理手順が実行されることで特定された全ての組が含まれる。
【００８５】
続いて、図１２のステップＳ３１７の詳細について説明する。図１５は、変更パターンが１：Ｎ又はＮ：１である場合の読み替え先の特定処理の処理手順の一例を説明するためのフローチャートである。
【００８６】
ステップＳ３４１において、変更パターン推定部１５は、集合Ｒ１と集合Ｒ２との和集合を、集合Ｒ３とする。続いて、変更パターン推定部１５は、集合Ｒ３の要素数が１以上であるか否かを判定する（Ｓ３４２）。集合Ｒ３が空である場合（Ｓ３４２でＮｏ）、変更パターン推定部１５は、読み替え先の推定が失敗であると判定し、変更パターン及び読み替え先の推定処理を終了する（Ｓ３４３）。
【００８７】
一方、集合Ｒ３の要素数が１以上である場合（Ｓ３４２でＹｅｓ）、集合Ｒ３の要素である組ごとに、ｙ／ｘを算出する（Ｓ３０４）。ここで、ｘは、双方向の類似度の合計である。ｙは、双方向の類似度の差分の絶対値である。すなわち、ｙ／ｘの意味は、図１１のステップＳ３０４におけるｙ／ｘの意味と同じである。
【００８８】
ｙ／ｘが最小である組が、集合Ｒ１の要素である場合（Ｓ３４５でＹｅｓ）、変更パターン推定部１５は、述語ｄ１の変更パターンが１：Ｎであると推定する。そこで、変更パターン推定部１５は、当該組の述語ｐ群が、述語ｄ１の読み替え先の述語であると判定する（Ｓ３４６）。述語ｐ群とは、述語ｄ１と共に当該組を形成している、ＲＤＦＤＢ１１１に含まれている述語である。
【００８９】
一方、ｙ／ｘが最小である組が、集合Ｒ２の要素である場合（Ｓ３４５でＹｅｓ）、変更パターン推定部１５は、述語ｄ１の変更パターンがＮ：１であると推定する。そこで、変更パターン推定部１５は、当該組の述語ｐを、述語ｄ１の読み替え先の述語であると判定する（Ｓ３４７）。
【００９０】
図１６は、第１の実施の形態におけるＳＰＡＲＱＬに対する検索結果の一例を示す図である。図１６において、画面５１０は、ＳＰＡＲＱＬでのクエリを入力すると、当該クエリに応じた検索結果を表示する画面である。画面５１０は、入力領域５１１、ボタン５１２、出力領域５１３、及び出力領域５１４等を含む。画面５１０は、例えば、アプリ３１によって表示されてもよい。
【００９１】
入力領域５１１は、クエリの入力を受け付ける領域である。ボタン５１２は、クエリに応じた検索要求の送信指示を受け付けるためのボタンである。出力領域５１４は、クエリに応じた検索結果が表示される領域である。出力領域５１４は、クエリに関して行われた述語の読み替え結果が表示される領域である。
【００９２】
入力領域５１１には、述語が＜ｐ１＞であるＲＤＦデータを検索するためのクエリが入力された例が示されている。ここで、ＲＤＦＤＢ１１１に、主語＝＜ｓ１＞、述語＝＜ｐ２＞、目的語＝＜ｏ１＞のトリプルを含むＲＤＦデータが記憶されており、主語＝＜ｓ１＞、述語＝＜ｐ１＞、目的語＝＜ｏ１＞のトリプルを含むＲＤＦデータが記憶されていない場合において、クエリにおける述語＜ｐ１＞の読み替え先が、述語＜ｐ２＞であることが図１１のステップＳ３０５において判定されたとする。この場合、＜ｓ１＞＜ｐ２＞＜ｏ１＞が検索結果に含められる。したがって、出力領域５１３には、＜ｓ１＞＜ｐ２＞＜ｏ１＞が表示される。また、出力領域５１４には、＜ｐ１＞が＜ｐ２＞に読み替えられたことを示すメッセージが表示される。すなわち、図１６では、図９のステップＳ２０８において、検索結果のＲＤＦデータの述語が読み替えられるのではなく、述語の読み替え情報が検索結果に付加される例が示されている。
【００９３】
上述したように、第１の実施の形態によれば、述語の変更が発生した場合であっても、述語の変更パターンが推定されて、変更先の述語が推定される。その推定結果に基づいて、少なくとも述語を含む検索要求について、述語の読み替えが行われて検索が行われる。したがって、ＲＤＦデータの更新（述語の変更）に伴う検索結果への影響を低減することができる。
【００９４】
次に、第２の実施の形態について説明する。第２の実施の形態では第１の実施の形態と異なる点について説明する。第２の実施の形態において、特に言及されない点については、第１の実施の形態と同様でもよい。
【００９５】
第２の実施の形態では、ＳＰＡＲＱＬにはトランザクションの概念が無いことに起因して生じうる問題点を解決する例について説明する。例えば、或るＲＤＦデータの複製をバックアップ用に生成し、複製元のＲＤＦデータに対する操作に成功した場合に、複製先のＲＤＦデータを削除し、複製元のＲＤＦデータに対する操作に失敗した場合に、複製元のＲＤＦデータを削除するといった操作を、ＲＤＦＤＢ１１１に対して行うアプリ３１が有るとする。この場合、当該操作の途中において、他のアプリ３１が、ＲＤＦデータを検索すると、正しいアクセス結果を得られない可能性が有る。具体的には、本来であれば１つであるＲＤＦデータについて、複製元及び複製先の２つの検索結果が得られてしまう可能性が有る。第２の実施の形態では、このような不都合を解決する方法について説明する。
【００９６】
図１７は、第２の実施の形態におけるデータ管理システムの機能構成例を示す図である。図１７中、図３と同一部分には同一符号を付し、その説明は省略する。
【００９７】
図１７において、データ管理装置１０は、データ処理部１１、拡張処理部１２、平均数計算部１７、平均数取得部１８、及び基準平均数取得部１９等を有する。これら各部は、データ管理装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。データ管理装置１０は、また、ＲＤＦＤＢ１１１、平均数ＤＢ１１３、及び基準平均数ＤＢ１１４等のデータベースを利用する。これらのデータベースは、例えば、補助記憶装置１０２、又はデータ管理装置１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００９８】
平均数計算部１７は、ＲＤＦＤＢ１１１が更新されるたびに、更新対象のＲＤＦデータに関する述語について、主語別平均数を算出する。或る述語に関する主語別平均数とは、当該述語を含むＲＤＦデータの集合における主語の種類数に対するＲＤＦデータ数の割合である、又は、主語別平均数は、当該述語を含むＲＤＦデータの集合における主語の種類別のＲＤＦデータの数の平均値であるともいえる。具体的には、述語ｐ１を含むＲＤＦデータとして、（ｓ１，ｐ１，ｏ１）、（ｓ１，ｐ１，ｏ２）、（ｓ２，ｐ１，ｏ３）が有る場合、主語の種類数は２であり、ＲＤＦデータのデータ数は３である。したがって、この場合の主語別平均数は、３÷２＝１．５となる。
【００９９】
算出された主語別平均数は、当該主語別平均数に係る述語に対応付けられて平均数ＤＢ１１３に記憶される。平均数ＤＢ１１３には、各述語について、主語別平均数の履歴が記憶される。なお、ＲＤＦＤＢ１１１の更新とは、ＲＤＦＤＢ１１１への新たなＲＤＦデータの追加、ＲＤＦＤＢ１１１からの既存のＲＤＦデータの削除、ＲＤＦＤＢ１１１に記憶されているＲＤＦデータの主語、述語、又は目的語の変更等をいう。
【０１００】
平均数取得部１８は、ＲＤＦデータの検索要求に指定された述語に関して平均数ＤＢ１１３に記憶されている主語別平均数の時系列（履歴）において、主語別平均数の変化量が最後に所定の範囲内であった最後の期間における主語別平均数を取得する。この点について、図を用いて説明する。
【０１０１】
図１８は、検索要求に指定された述語に対して取得される主語別平均数を説明するための図である。図１８では、検索要求に指定された述語（述語ｐ）について、平均数ＤＢ１１３に記憶されている主語別平均数の推移の一例が示されている。
【０１０２】
時刻ｔ１は、例えば、或るアプリ３１からの要求に応じ、述語ｐを含むＲＤＦデータの更新処理が開始された時刻である。例えば、時刻ｔ１において、当該更新処理の前処理として、述語ｐを含むＲＤＦデータの追加（例えば、当該ＲＤＦデータの複製の生成）が開始されたことにより、時刻ｔ１以降において、述語ｐに対する主語別平均数は増加している。その後、時刻ｔ３以降では、当該更新処理の後処理において、述語ｐを含むＲＤＦデータの削除（例えば、複製先の削除）が開始されたことにより、時刻ｔ３以降において、述語ｐに対する主語別平均数は減少している。
【０１０３】
このような状況において、時刻ｔ１から時刻ｔ３の間である時刻ｔ２に、他のアプリ３１から述語ｐを含むＲＤＦデータの検索要求が有ったとする。この場合、平均数取得部１８は、時刻ｔ２の時点で平均数ＤＢ１１３に記憶されている述語ｐに関する最新の主語別平均数ではなく、時刻ｔ０から時刻ｔ１の期間における述語ｐに関する主語別平均数を取得する。すなわち、検索要求の前において、述語ｐの主語別平均数の変化量が所定の範囲内（例えば、一定）であった最後の期間（ｔ０〜ｔ１）における主語別平均数が取得される。そうすることで、或るアプリ３１による更新処理による一時的なＲＤＦデータの増減の影響が解消された主語別平均数が取得される。
【０１０４】
図１７に戻る。基準平均数取得部１９は、検索要求に指定されたＲＤＦデータの検索要求に指定された述語に対する基準平均数を、基準平均数ＤＢ１１４から取得する。基準平均数とは、例えば、検索要求元のアプリ３１が、検索要求に指定した述語に関して期待している又は想定している主語別平均数をいう。
【０１０５】
以下、第２の実施の形態においてデータ管理装置１０が実行する処理手順について説明する。図１９は、ＲＤＦＤＢの更新時に実行される処理手順の一例を説明するためのフローチャートである。
【０１０６】
拡張処理部１２は、アプリ３１から更新要求を受信したＳＰＡＲＱＬエンジン部２１からのＲＤＦデータの更新要求を受信すると（Ｓ４０１でＹｅｓ）、当該更新要求をデータ処理部１１に転送する（Ｓ４０２）。ここでは、主語＝ｓ２、述語＝ｐ２、目的語＝ｏ２であるＲＤＦデータの追加要求が受信されたこととする。
【０１０７】
続いて、データ処理部１１は、当該更新要求に応じた処理をＲＤＦＤＢ１１１に対して実行する（Ｓ４０３）。例えば、データ処理部１１は、主語＝ｓ２、述語＝ｐ２、目的語＝ｏ２であるＲＤＦデータをＲＤＦＤＢ１１１に追加して、当該ＲＤＦデータの更新日時をＲＤＦＤＢ１１１に記憶する。
【０１０８】
図２０は、第２の実施の形態におけるＲＤＦＤＢの構成例を示す図である。図２０に示されるように、ＲＤＦＤＢ１１１には、ＲＤＦデータごとに、更新日時が記憶される。なお、第１の実施の形態におけるＲＤＦＤＢ１１１も、図２０と同様の構成を有していてもよい。
【０１０９】
データ処理部１１による更新処理が終了すると、平均数計算部１７は、更新対象のＲＤＦデータの述語（以下、「対象述語」という。）について、主語別平均数を算出する（Ｓ４０４）。
【０１１０】
例えば、ＲＤＦＤＢ１１１が図２０に示されるような状態において、更新対象のＲＤＦデータの述語ｐ２を含むＲＤＦデータは（ｓ２，ｐ２，ｏ２）、（ｓ２１，ｐ２，ｏ２１）、及び（ｓ２１，ｐ２，ｏ２１１）の３つである。この３つのＲＤＦデータの集合において、主語の種類数は、ｓ２とｓ２１の２つである。したがって、述語ｐ２の主語別平均数＝３／２＝１．５である。
【０１１１】
続いて、平均数計算部１７は、算出された主語別平均数を、現在日時と対象述語とに対応付けて平均数ＤＢ１１３に記憶する（Ｓ４０５）。
【０１１２】
図２１は、平均数ＤＢの構成例を示す図である。図２１に示されるように、平均数ＤＢ１１３には、計算された主語別平均数の履歴が記憶される。各主語別平均数は、主語別平均数が計算された日時（すなわち、現在日時）である計算日時と、主語別平均数の対象である述語とに対応付けられて記憶される。
【０１１３】
なお、図２１において、２番目のレコードが、今回（日時が２０１５−１０−２７Ｔ１２：２２：３２，０３０の時点）において記憶されたレコードである。一方、１番目のレコードは、日時２０１５−１０−２７Ｔ１２：２２：３２，０１０の時点において記憶されたレコードである。この時点においては、図２０における最後のレコードは追加されていない。したがって、この時点において、述語ｐ２を含むＲＤＦデータは（ｓ２１，ｐ２，ｏ２１）及び（ｓ２１，ｐ２，ｏ２１１）の２つである。この２つのＲＤＦデータの集合において、主語の種類数は、ｓ２１の１つである。したがって、述語ｐ２の主語別平均数＝２／１＝２．０である。
【０１１４】
図２２は、第２の実施の形態においてＲＤＦデータの検索要求の受信時に実行される処理手順の一例を説明するためのフローチャートである。
【０１１５】
拡張処理部１２は、アプリ３１から検索要求を受信した検索要求がＳＰＡＲＱＬエンジン部２１からのＲＤＦデータの検索要求を受信すると（Ｓ５０１でＹｅｓ）、当該検索要求をデータ処理部１１に転送する（Ｓ５０２）。続いて、データ処理部１１は、検索要求に対応するＲＤＦデータをＲＤＦＤＢ１１１から検索する（Ｓ５０３）。データ処理部１１は、検索されたＲＤＦデータを、拡張処理部１２に送信する。
【０１１６】
続いて、拡張処理部１２は、検索結果に含まれるＲＤＦデータが１つ以下であるか否かを判定する（Ｓ５０４）。検索結果に含まれるＲＤＦデータが１つ以下である場合（Ｓ５０４でＹｅｓ）、拡張処理部１２は、当該検索結果をＳＰＡＲＱＬエンジン部２１に返信する（Ｓ５１５）。
【０１１７】
一方、検索結果に含まれるＲＤＦデータが２以上である場合（Ｓ５０４でＮｏ）、基準平均数取得部１９は、検索要求に指定された述語（以下、「対象述語」という。）の基準平均数（以下、「基準平均数ｂ」という。）の取得処理を実行する（Ｓ５０５）。続いて、拡張処理部１２は、基準平均数ｂが１であるか否かを判定する（Ｓ５０６）。基準平均数ｂが１でない場合（Ｓ５０６でＮｏ）、拡張処理部１２は、データ処理部１１による検索結果をＳＰＡＲＱＬエンジン部２１に返信する（Ｓ５１５）。すなわち、基準平均数ｂが２以上である場合、複数のＲＤＦデータを含む検索結果がそのまま返信される。アプリ３１は、複数のＲＤＦデータが検索結果として返信されることを想定しているからである。
【０１１８】
一方、基準平均数ｂが１以下である場合（Ｓ５０６でＹｅｓ）、平均数取得部１８は、対象述語に関して平均数ＤＢ１１３に記憶されている主語別平均数の中で、最新の主語別平均数を平均数ＤＢ１１３から取得する（Ｓ５０７）。取得された主語別平均数は、変数ａｖ１に代入される。最新の主語別平均数とは、計算日時の値が最新である主語別平均数をいう。
【０１１９】
続いて、平均数取得部１８は、対象述語に関して平均数ＤＢ１１３に記憶されている主語別平均数の中から、ａｖ１に係る主語別平均数の１つ前の主語別平均数を取得する（Ｓ５０８）。取得された主語別平均数は、変数ａｖ２に代入される。ａｖ１に係る主語別平均数の１つ前の主語別平均数とは、計算日時の昇順（時系列順）において、ａｖ１に係る主語別平均数の１つ前に位置する主語別平均数をいう。
【０１２０】
続いて、平均数取得部１８は、｜ａｖ２−ａｖ１｜÷ｔを算出し、算出結果を変数ａに代入する（Ｓ５０９）。ここで、ｔの値は、主語別平均数ａｖ１の計算日時から主語別平均数ａｖ２の計算日時までの経過時間である。
【０１２１】
続いて、平均数取得部１８は、変数ａの値が、閾値γ未満であるか否かを判定する（Ｓ５１０）。閾値γは、主語別平均数の変化が小さいこと（例えば、当該変化が無いとみなせること）を判定するための閾値である。例えば、閾値γは、０．０１であってもよいし、０であってもよい。
【０１２２】
変数ａの値が、閾値γ以上である場合（Ｓ５１０でＮｏ）、平均数取得部１８は、変数ａｖ２の値を変数ａｖ１に代入して（Ｓ５１１）、ステップＳ５０３以降を繰り返す。すなわち、対象述語に係る主語別平均数の時系列を遡って、主語別平均数の変化量が閾値γ未満である期間における主語別平均数が探索される。
【０１２３】
変数ａの値が閾値γ未満である場合（Ｓ５１０でＹｅｓ）、平均数取得部１８は、変数ａの値を整数に変換する（Ｓ５１２）。続いて、拡張処理部１２は、変数ａの値が２以上であるか否かを判定する（Ｓ５１３）。変数ａの値が１である場合（Ｓ５１３でＮｏ）、拡張処理部１２は、データ処理部１１による検索結果をＳＰＡＲＱＬエンジン部２１に返信する（Ｓ５１５）。なお、一般的に、検索結果に複数のＲＤＦデータが含まれる場合に、基準平均数ｂが１であり、変数ａの値が１である可能性は低い。
【０１２４】
一方、変数ａの値が２以上である場合（Ｓ５１３でＹｅｓ）、拡張処理部１２は、検索結果に含まれている複数のＲＤＦデータの中から、主語の種類ごとに１つのＲＤＦデータを選択する（Ｓ５１４）。主語の種類ごとに１つであるため、例えば、検索結果に３つのＲＤＦデータが含まれており、そのうちの２つのＲＤＦデータの主語が共通している場合、２つのＲＤＦデータが選択される。例えば、主語が共通するＲＤＦデータの中で、更新日時が最新であるＲＤＦデータが選択されてもよい。又は、その他の選択方針が採用されてもよい。
【０１２５】
続いて、拡張処理部１２は、選択されたＲＤＦデータを検索結果として、ＳＰＡＲＱＬエンジン部２１に返信する（Ｓ５１５）。この際、拡張処理部１２は、検索結果から除かれたＲＤＦデータを示す情報を検索結果に付加してもよい。
【０１２６】
続いて、ステップＳ５０５の詳細について説明する。図２３は、述語の基準平均数の取得処理の処理手順の一例を説明するためのフローチャートである。
【０１２７】
ステップＳ６０１において、基準平均数取得部１９は、検索要求に指定されている述語（対象述語）とアプリＩＤとを、検索要求から抽出する。アプリＩＤとは、クライアント装置３０におけるアプリ３１ごとの識別情報である。本実施の形態では、検索要求に対して、検索要求元のアプリ３１のアプリＩＤが含まれていることとする。
【０１２８】
続いて、基準平均数取得部１９は、基準平均数ＤＢ１１４を参照して、抽出されたアプリＩＤ（以下、「対象アプリＩＤ」という。）を含むレコードの有無を判定する（Ｓ６０２）。
【０１２９】
図２４は、基準平均数ＤＢの構成例を示す図である。図２４に示されるように、基準平均数ＤＢ１１４には、アプリＩＤごとに、各述語の基準平均数が記憶されている。なお、図２４において、（１）は、ステップＳ６０２における状態であるとする。
【０１３０】
該当するレコードが基準平均数ＤＢ１１４に記憶されている場合（Ｓ６０２でＹｅｓ）、基準平均数取得部１９は、基準平均数ＤＢ１１４において、対象アプリＩＤ及び対象述語を含むレコードに記憶されている基準平均数を取得する（Ｓ６０５）。
【０１３１】
一方、該当するレコードが基準平均数ＤＢ１１４に記憶されていない場合（Ｓ６０２でＮｏ）、基準平均数取得部１９は、ＲＤＦＤＢ１１１に記憶されている全ての述語について、現時点における主語別平均数を計算する（Ｓ６０３）。なお、平均数ＤＢ１１３に主語別平均数が記憶されている述語については、改めて主語別平均数を計算せずに、最新の主語別平均数が平均数ＤＢ１１３から取得されてもよい。
【０１３２】
続いて、基準平均数取得部１９は、各述語を、当該述語に関して計算された主語別平均数と、対象アプリＩＤとに対応付けて基準平均数ＤＢ１１４に記憶する（Ｓ６０４）。すなわち、現時点における主語別平均数が、対象アプリＩＤに対する基準平均数とされる。ここで、現時点とは、対象アプリＩＤに係るアプリ３１が、初めてＲＤＦＤＢ１１１の検索を要求した時点である。すなわち、本実施の形態では、アプリ３１ごとに、初めてＲＤＦＤＢ１１１の検索を要求した時点における各述語の主語別平均数が、当該アプリ３１に関する各述語の基準平均数として採用される。
【０１３３】
なお、図２４の（２）における３番目及び４番目のレコードは、対象アプリＩＤが「ａｐｐ１」である場合にステップＳ６０４が実行された際に、基準平均数ＤＢ１１４に記憶されるレコードの一例を示す。
【０１３４】
続いて、基準平均数取得部１９は、ステップＳ６０３において計算された基準平均数の中で、対象述語に対応する基準平均数を取得する（Ｓ６０５）。
【０１３５】
なお、図２３では、アプリ３１ごとに各述語の基準平均数が計算され、各アプリ３１が最初にＲＤＦデータの検索を要求した際の述語の主語別平均数が基準平均数とされる例について説明した。但し、基準平均数の計算方法や計算のタイミング等は上記に限定されない。例えば、ＲＤＦＤＢ１１１に記憶されているデータセットごとに各述語の基準平均数が計算されてもよい。この場合、データセットが更新された際に、当該データセットに含まれる各述語の主語別平均数が基準平均数として計算されてもよい。なお、データセットとは、例えば、或る共通の概念に属するＲＤＦデータの集合をいい、一つのＲＤＦＤＢ１１１に複数のデータセットが含まれうる。
【０１３６】
続いて、図２２のステップＳ５１２の詳細について説明する。図２５は、主語別平均数の整数への変換処理の処理手順の一例を説明するためのフローチャートである。図２５において、変換対象の値は、ｎによって表現されている。ステップＳ５１２において図２５の処理手順が呼び出される場合、図２２における変数ａの値がｎに代入される。
【０１３７】
ステップＳ６１１において、平均数取得部１８は、ｎ−ｆｌｏｏｒ（ｎ）が閾値ε未満であるか否かを判定する。ｆｌｏｏｒ関数は、引数の小数点以下を切り捨てた値を返却する関数である。したがって、ｎ−ｆｌｏｏｒ（ｎ）によって、ｎの小数点以下の値が得られる。閾値εは、小数点以下を切り上げるか切り捨てるかを判定するための閾値である。例えば、閾値εの値は、０．５であってもよい。
【０１３８】
ｎ−ｆｌｏｏｒ（ｎ）が閾値ε未満である場合（Ｓ６１１でＹｅｓ）、平均数取得部１８は、ｎの小数点以下を切り捨てることによって得られる整数を返却する（Ｓ６１２、Ｓ６１４）。
【０１３９】
一方、ｎ−ｆｌｏｏｒ（ｎ）が閾値ε以上である場合（Ｓ６１１でＮｏ）、平均数取得部１８は、ｎの小数点以下を切り捨てることによって得られる整数に１を加算した値を返却する（Ｓ６１３、Ｓ６１４）。
【０１４０】
図２６は、第２の実施の形態におけるＳＰＡＲＱＬに対する検索結果の一例を示す図である。図２６において、画面５２０は、ＳＰＡＲＱＬでのクエリを入力すると、当該クエリに応じた検索結果を表示する画面である。画面５２０は、入力領域５２１、ボタン５２２、出力領域５２３、及び出力領域５２４等を含む。例えば、画面５２０は、アプリ３１によって表示されてもよい。
【０１４１】
入力領域５２１は、クエリの入力を受け付ける領域である。ボタン５２２は、クエリに応じた検索要求の送信指示を受け付けるためのボタンである。出力領域５２４は、クエリに応じた検索結果が表示される領域である。出力領域５２４は、検索結果から除去されたＲＤＦデータ（トリプル）が表示される領域である。
【０１４２】
入力領域５１１には、述語が＜ｐ１＞であるＲＤＦデータを検索するためのクエリが入力された例が示されている。ここで、ＲＤＦＤＢ１１１には、述語＜ｐ１＞を含むＲＤＦデータとして、主語＝＜ｓ１＞、述語＝＜ｐ１＞、目的語＝＜ｏ１＞、主語＝＜ｓ１＞、述語＝＜ｐ１＞、目的語＝＜ｏ３＞、及び主語＝＜ｓ２＞、述語＝＜ｐ１＞、目的語＝＜ｏ２＞の３つのＲＤＦデータが記憶されていることとする。また、画面５２０に係るアプリ３１に関して、基準平均数ＤＢ１１４に記憶されている述語＜ｐ１＞の基準平均数が１であるとする。この場合、述語ｐ１を含むＲＤＦデータは複数であるため、主語の種類ごとに１つのＲＤＦデータが選択される。具体的には、＜ｓ１＞＜ｐ１＞＜ｏ１＞及び＜ｓ１＞＜ｐ１＞＜ｏ３＞のうち、いずれか一方（例えば、更新日時が新しい方）が選択される。その結果、例えば、＜ｓ１＞＜ｐ１＞＜ｏ１＞及び＜ｓ２＞＜ｐ１＞＜ｏ２＞の２つのＲＤＦデータが検索結果に含まれる。したがって、出力領域５２４には、＜ｓ１＞＜ｐ１＞＜ｏ１＞及び＜ｓ２＞＜ｐ１＞＜ｏ２＞が表示される。また、出力領域５２４には、＜ｓ１＞＜ｐ１＞＜ｏ３＞が検索結果から除去されたことを示すメッセージが表示される。
【０１４３】
上述したように、第２の実施の形態によれば、少なくとも述語が指定された検索要求に対して、当該述語の主語別平均数と基準平均数とに基づいて、アプリ３１の想定内である個数のＲＤＦデータを出力できる可能性を高めることができる。したがって、ＲＤＦデータの更新に伴う検索結果への影響を低減することができる。
【０１４４】
なお、上記各実施の形態において、データ管理装置１０は、検索処理装置の一例である。変更パターン推定部１５は、判定部、抽出部、及び取得部の一例である。拡張処理部１２は、出力部の一例である。削除済みＤＢ１１２は、請求項１における記憶部の一例である。類似度は、一致度の一例である。閾値βは、第１の閾値の一例である。閾値τは、第２の閾値の一例である。平均数計算部１７は、記憶処理部の一例である。平均数取得部１８は、特定部の一例である。平均数ＤＢ１１３は、請求項５における記憶部の一例である。
【０１４５】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【０１４６】
以上の説明に関し、更に以下の項を開示する。
（付記１）
データベースに記憶された、主語、述語、及び目的語を含むデータの検索処理方法において、
少なくとも述語が指定された検索要求を受け付けると、前記データベースから削除されたデータを記憶する記憶部を参照して、前記述語を含むデータが前記記憶部に記憶されているか否かを判定する処理と、
前記述語を含むデータが前記記憶部に記憶されている場合、該データに含まれる主語及び目的語を抽出する処理と、
抽出した前記主語及び目的語と、前記データベースに記憶された複数のデータそれぞれの主語及び目的語との一致度に基づき、前記複数のデータのいずれかのデータを取得する処理と、
取得した前記データの主語及び目的語を、前記検索要求の応答として出力する処理と、
をコンピュータが実行することを特徴とする検索処理方法。
（付記２）
前記取得する処理は、前記データベースに記憶された複数のデータのうち、前記抽出した前記主語及び目的語と、当該データの主語及び目的語との間における一致部分について、前記抽出した前記主語及び目的語に対する割合と、当該データの主語及び目的語に対する割合との差分が第１の閾値以下である第１のデータが１以上有れば、いずれかの前記第１のデータを取得する、
ことを特徴とする付記１記載の検索処理方法。
（付記３）
前記取得する処理は、前記第１のデータが無い場合に、前記データベースに記憶されているデータのうち、前記抽出した主語及び目的語と、当該データの主語及び目的語との間における一致部分について、前記抽出した前記主語及び目的語に対する割合が、当該データの主語及び目的語に対する割合より第２の閾値を超えて大きい第２のデータが有れば、前記第２のデータのうちのいずれかのデータを取得する、
ことを特徴とする付記２記載の検索処理方法。
（付記４）
前記取得する処理は、前記第１のデータが無い場合に、前記データベースに記憶されているデータのうち、前記抽出した主語及び目的語と、当該データの主語及び目的語との間における一致部分について、当該データの主語及び目的語に対する割合が、前記抽出した前記主語及び目的語に対する割合より第２の閾値を超えて大きい第３のデータが有れば、前記第３のデータのうちのいずれかのデータを取得する、
ことを特徴とする付記２又は３記載の検索処理方法。
（付記５）
データベースに記憶された、主語、述語、及び目的語を含むデータの検索処理方法において、
前記データが更新されるたびに、更新対象とされたデータが含む述語と、前記データベースに記憶されたデータのうち当該述語を含むデータの集合おける主語の種類数に対する当該集合に含まれるデータの数の割合とを関連付けて記憶部に記憶し、
少なくとも述語が指定された検索要求を受け付けると、前記検索要求に指定された述語に関連付けられて前記記憶部に記憶されている前記割合の履歴において、前記割合の変化量が所定の範囲内であった最後の期間における前記割合を特定し、
特定した割合が１より大きく、前記検索要求に指定された述語に関して、前記検索要求を受け付けた時期より前の所定の時期に算出された前記割合が１である場合に、前記データベースにおいて前記検索要求に対応するデータのうち、主語が共通するごとに一つのデータを、前記検索要求の応答として出力する、
処理をコンピュータが実行することを特徴とする検索処理方法。
（付記６）
データベースに記憶された、主語、述語、及び目的語を含むデータを検索する検索処理装置であって、
少なくとも述語が指定された検索要求を受け付けると、前記データベースから削除されたデータを記憶する記憶部を参照して、前記述語を含むデータが前記記憶部に記憶されているか否かを判定する判定部と、
前記述語を含むデータが前記記憶部に記憶されている場合、該データに含まれる主語及び目的語を抽出する抽出部と、
抽出した前記主語及び目的語と、前記データベースに記憶された複数のデータそれぞれの主語及び目的語との一致度に基づき、前記複数のデータのいずれかのデータを取得する取得部と、
取得した前記データの主語及び目的語を、前記検索要求の応答として出力する出力部と、
を有することを特徴とする検索処理装置。
（付記７）
前記取得部は、前記データベースに記憶された複数のデータのうち、前記抽出した前記主語及び目的語と、当該データの主語及び目的語との間における一致部分について、前記抽出した前記主語及び目的語に対する割合と、当該データの主語及び目的語に対する割合との差分が第１の閾値以下である第１のデータが１以上有れば、いずれかの前記第１のデータを取得する、
ことを特徴とする付記６記載の検索処理装置。
（付記８）
前記取得部は、前記第１のデータが無い場合に、前記データベースに記憶されているデータのうち、前記抽出した主語及び目的語と、当該データの主語及び目的語との間における一致部分について、前記抽出した前記主語及び目的語に対する割合が、当該データの主語及び目的語に対する割合より第２の閾値を超えて大きい第２のデータが有れば、前記第２のデータのうちのいずれかのデータを取得する、
ことを特徴とする付記７記載の検索処理装置。
（付記９）
前記取得部は、前記第１のデータが無い場合に、前記データベースに記憶されているデータのうち、前記抽出した主語及び目的語と、当該データの主語及び目的語との間における一致部分について、当該データの主語及び目的語に対する割合が、前記抽出した前記主語及び目的語に対する割合より第２の閾値を超えて大きい第３のデータが有れば、前記第３のデータのうちのいずれかのデータを取得する、
ことを特徴とする付記７又は８記載の検索処理装置。
（付記１０）
データベースに記憶された、主語、述語、及び目的語を含むデータを検索する検索処理装置であって、
前記データが更新されるたびに、更新対象とされたデータが含む述語と、前記データベースに記憶されたデータのうち当該述語を含むデータの集合おける主語の種類数に対する当該集合に含まれるデータの数の割合とを関連付けて記憶部に記憶する記憶処理部と、
少なくとも述語が指定された検索要求を受け付けると、前記検索要求に指定された述語に関連付けられて前記記憶部に記憶されている前記割合の履歴において、前記割合の変化量が所定の範囲内であった最後の期間における前記割合を特定する特定部と、
特定した割合が１より大きく、前記検索要求に指定された述語に関して、前記検索要求を受け付けた時期より前の所定の時期に算出された前記割合が１である場合に、前記データベースにおいて前記検索要求に対応するデータのうち、主語が共通するごとに一つのデータを、前記検索要求の応答として出力する出力部と、
を有することを特徴とする検索処理装置。
（付記１１）
データベースに記憶された、主語、述語、及び目的語を含むデータの検索処理プログラムであって、
少なくとも述語が指定された検索要求を受け付けると、前記データベースから削除されたデータを記憶する記憶部を参照して、前記述語を含むデータが前記記憶部に記憶されているか否かを判定する処理と、
前記述語を含むデータが前記記憶部に記憶されている場合、該データに含まれる主語及び目的語を抽出する処理と、
抽出した前記主語及び目的語と、前記データベースに記憶された複数のデータそれぞれの主語及び目的語との一致度に基づき、前記複数のデータのいずれかのデータを取得する処理と、
取得した前記データの主語及び目的語を、前記検索要求の応答として出力する処理と、
をコンピュータに実行させることを特徴とする検索処理プログラム。
（付記１２）
前記取得する処理は、前記データベースに記憶された複数のデータのうち、前記抽出した前記主語及び目的語と、当該データの主語及び目的語との間における一致部分について、前記抽出した前記主語及び目的語に対する割合と、当該データの主語及び目的語に対する割合との差分が第１の閾値以下である第１のデータが１以上有れば、いずれかの前記第１のデータを取得する、
ことを特徴とする付記１１記載の検索処理プログラム。
（付記１３）
前記取得する処理は、前記第１のデータが無い場合に、前記データベースに記憶されているデータのうち、前記抽出した主語及び目的語と、当該データの主語及び目的語との間における一致部分について、前記抽出した前記主語及び目的語に対する割合が、当該データの主語及び目的語に対する割合より第２の閾値を超えて大きい第２のデータが有れば、前記第２のデータのうちのいずれかのデータを取得する、
ことを特徴とする付記１２記載の検索処理プログラム。
（付記１４）
前記取得する処理は、前記第１のデータが無い場合に、前記データベースに記憶されているデータのうち、前記抽出した主語及び目的語と、当該データの主語及び目的語との間における一致部分について、当該データの主語及び目的語に対する割合が、前記抽出した前記主語及び目的語に対する割合より第２の閾値を超えて大きい第３のデータが有れば、前記第３のデータのうちのいずれかのデータを取得する、
ことを特徴とする付記１２又は１３記載の検索処理プログラム。
（付記１５）
データベースに記憶された、主語、述語、及び目的語を含むデータの検索処理プログラムであって、
前記データが更新されるたびに、更新対象とされたデータが含む述語と、前記データベースに記憶されたデータのうち当該述語を含むデータの集合おける主語の種類数に対する当該集合に含まれるデータの数の割合とを関連付けて記憶部に記憶し、
少なくとも述語が指定された検索要求を受け付けると、前記検索要求に指定された述語に関連付けられて前記記憶部に記憶されている前記割合の履歴において、前記割合の変化量が所定の範囲内であった最後の期間における前記割合を特定し、
特定した割合が１より大きく、前記検索要求に指定された述語に関して、前記検索要求を受け付けた時期より前の所定の時期に算出された前記割合が１である場合に、前記データベースにおいて前記検索要求に対応するデータのうち、主語が共通するごとに一つのデータを、前記検索要求の応答として出力する、
処理をコンピュータに実行させることを特徴とする検索処理プログラム。
【符号の説明】
【０１４７】
１０          データ管理装置
１１          データ処理部
１２          拡張処理部
１３          削除データ保存部
１４          述語読替部
１５          変更パターン推定部
１６          類似度計算部
１７          平均数計算部
１８          平均数取得部
１９          基準平均数取得部
２０          ＳＰＡＲＱＬサーバ装置
２１          ＳＰＡＲＱＬエンジン部
３０          クライアント装置
３１          アプリ
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１１１        ＲＤＦＤＢ
１１２        削除済みＤＢ
１１３        平均数ＤＢ
１１４        基準平均数ＤＢ
Ｂ            バス
【図１】
0006645240.tif 000002
【図２】
0006645240.tif 000003
【図３】
0006645240.tif 000004
【図４】
0006645240.tif 000005
【図５】
0006645240.tif 000006
【図６】
0006645240.tif 000007
【図７】
0006645240.tif 000008
【図８】
0006645240.tif 000009
【図９】
0006645240.tif 000010
【図１０】
0006645240.tif 000011
【図１１】
0006645240.tif 000012
【図１２】
0006645240.tif 000013
【図１３】
0006645240.tif 000014
【図１４】
0006645240.tif 000015
【図１５】
0006645240.tif 000016
【図１６】
0006645240.tif 000017
【図１７】
0006645240.tif 000018
【図１８】
0006645240.tif 000019
【図１９】
0006645240.tif 000020
【図２０】
0006645240.tif 000021
【図２１】
0006645240.tif 000022
【図２２】
0006645240.tif 000023
【図２３】
0006645240.tif 000024
【図２４】
0006645240.tif 000025
【図２５】
0006645240.tif 000026
【図２６】
0006645240.tif 000027