9.3 SPARQLのルールベースの推論
RDFグラフの推論の拡張アーキテクチャを使用すると、SPARQLのルールベースの推論を追加できます。
新しいRDFトリプルを推論するための照合条件を指定することで、SPARQL問合せ言語の能力を十分に利用できます。通常の推論の制約とは異なり、このプロセスを使用して作成された推論トリプルには、推論タスク開始前のRDFネットワークにはもともと存在していなかった新しいRDF用語が含まれる場合もあります。
SPARQLの更新のINSERT文を使用して、独自のルールを定義できます。
9.3.1 SPARQLルールの格納
自分の表のVARCHARまたはCLOB型の任意の列に、任意の数の自分のルールを照合オプションおよび更新オプションとともに格納できます。照合オプションと更新オプションは、それぞれSEM_APIS.UPDATE_RDF_GRAPHで使用されるmatch_optionsとoptionsと同じです。これらは、SPARQLの更新操作を最適化するヒントに使用されますが、NULLにしてもかまいません。
これらのルールはすべて、SEM_APIS.CREATE_SPARQL_INFERRED_GRAPH APIによる推論時にRDFトリプル・ストアに適用されます。
ユーザー・ルールは、INSERT WHERE (またはINSERT DATA)文として表すことができます。たとえば、次のようにします。
PREFIX ex: <http://my.org/>
INSERT { ?x a ex:Employee }
WHERE { ?x ex:hours ?hrs FILTER (?hrs >= 40) }任意ルールの性質上、推論が推移閉包に到達するという保証はありません。したがって、反復の最大数を指定する必要があります。また、RDF推論のベースになっている開世界仮定に、ユーザー・ルールが違反する可能性があります。閉世界仮定(つまりNOT EXISTS)に依存するSPARQL機能を使用すると、推測グラフの結果の一貫性が失われる場合があります。そのため、可能であれば使用を避けてください。
親トピック: SPARQLのルールベースの推論
9.3.2 SPARQL推論グラフを作成するためのサンプル・データの設定
親トピック: SPARQLのルールベースの推論
9.3.3 SPARQL推論グラフの作成および問合せのワークフローの例
親トピック: SPARQLのルールベースの推論