15.35 SEM_APIS.CREATE_INFERRED_GRAPH
形式
SEM_APIS.CREATE_INFERRED_GRAPH( inferred_graph_name IN VARCHAR2, rdf_graphs_in IN SEM_MODELS, rulebases_in IN SEM_RULEBASES, passes IN NUMBER DEFAULT SEM_APIS.REACH_CLOSURE, inf_components_in IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL, delta_in IN SEM_MODELS DEFAULT NULL, label_gen IN RDFSA_LABELGEN DEFAULT NULL, include_named_g IN SEM_GRAPHS DEFAULT NULL, include_default_g IN SEM_MODELS DEFAULT NULL, include_all_g IN SEM_MODELS DEFAULT NULL, inf_ng_name IN VARCHAR2 DEFAULT NULL, inf_ext_user_func_name IN VARCHAR2 DEFAULT NULL, ols_ladder_inf_lbl_sec IN VARCHAR2 DEFAULT NULL, network_owner IN VARCHAR2 DEFAULT NULL, network_name IN VARCHAR2 DEFAULT NULL);
説明
OWLまたはRDFS推論を実行する(およびオプションでユーザー定義ルールを使用する)際に使用できる推論グラフ(ルール索引)を作成します。
パラメータ
- inferred_graph_name
-
作成する推論グラフの名前。
- rdf_graphs_in
-
1つ以上のRDFグラフ名。そのデータ型は、
TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。 - rulebases_in
-
1つ以上のルールベース名。そのデータ型は、
TABLE OF VARCHAR2(25)という定義を持つSEM_RULEBASESです。ルールおよびルールベースの詳細は、「推論: ルールとルールベース」を参照してください。 - passes
-
推論エンジンを実行する回数。デフォルト値は
SEM_APIS.REACH_CLOSUREであり、推論エンジンは閉包に到達するまで実行されます。指定した実行回数が、閉包に到達するのに必要な実際の実行回数より少ない場合、推論グラフのステータスはINCOMPLETEに設定されます。 - inf_components_in
-
選択的またはコンポーネント・ベースの推論を実行する場合の推論コンポーネントを示すキーワードのカンマ区切りの文字列。このパラメータがNULLの場合、推論コンポーネントのデフォルト・セットが使用されます。推論コンポーネントの詳細は、「使用上のノート」を参照してください。
- options
-
カンマ区切りの文字列で、デフォルトの推論の動作をオーバーライドすることにより推論プロセスを制御するためのオプション。オプションを有効化するには、
option-name=Tを指定し、オプションを無効化するには、option-name=Fを指定します(デフォルト)。option-nameに設定できる値は、COL_COMPRESS、DEST_MODEL、DISTANCE,DOP、ENTAIL_ANYWAY、HASH_PART、INC、LOCAL_NG_INF、OPT_SAMEAS、RAW8、PROOFおよびUSER_RULESです。各値の詳細は、「使用上のノート」を参照してください。 - delta_in
-
増分推論が有効な場合は、増分推論を実行する1つ以上のRDFグラフを指定します。そのデータ型は、
TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。delta_inの1つ目のRDFグラフのトリプルがrdf_graphs_inの1つ目のRDFグラフにコピーされ、rules_index_inの推論グラフ(ルール索引)が更新されます。次に、delta_inの2つ目のRDFグラフ(ある場合)のトリプルがrdf_graphs_inの2つ目のRDFグラフ(ある場合)にコピーされ、rules_index_inの推論グラフが更新されます。このようにすべてのトリプルがコピーされ、推論グラフが更新されるまで続きます。(増分推論が推論グラフで有効にされていない場合、delta_inパラメータは無効です。) - label_gen
-
RDFSA_LABELGENのインスタンスまたはそのサブタイプで、推論されたトリプルに対するOracle Label Security (OLS)ラベルを生成するロジックを定義します。このパラメータに何を指定するかは、デフォルトのラベル・ジェネレータまたはカスタム・ラベル・ジェネレータを使用するかどうかによって応じて異なります。
-
デフォルトのラベル・ジェネレータを使用する場合、次の定数のいずれかを指定します。
SEM_RDFSA.LABELGEN_RULE(ルール・ラベルの使用の場合)、SEM_RDFSA.LABELGEN_SUBJECT(主語ラベルの使用の場合)、SEM_RDFSA.LABELGEN_PREDICATE(述語ラベルの使用の場合)、SEM_RDFSA.LABELGEN_OBJECT(目的語ラベルの使用の場合)、SEM_RDFSA.LABELGEN_DOMINATING(優位ラベルの使用の場合)、SEM_RDFSA.LABELGEN_ANTECED(前件ラベルの使用の場合)。 -
カスタム・ラベル・ジェネレータを使用する場合、カスタム・ラベル・ジェネレータ・タイプを指定します。
-
- include_named_g
-
指定された名前付きグラフからのすべてのトリプル(すべてのソースRDFグラフ全体)を、名前付きグラフ・ベースのグローバル推論(NGGI、「名前付きグラフ・ベースのグローバル推論(NGGI)」を参照)に加えます。たとえば
include_named_g => sem_graphs('<urn:G1>','<urn:G2>')は、名前付きグラフG1およびG2からのトリプルがNGGIに含められることを意味します。 - include_default_g
-
指定されたSEM_MODELSのグラフ名がNULLであるすべてのトリプルを、名前付きグラフ・ベースのグローバル推論(NGGI、「名前付きグラフ・ベースのグローバル推論」を参照)に加えます。たとえば、
include_default_g => sem_models('m1')は、M1からのグラフ名がNULLであるすべてのトリプルをNGGIに含めます。 - include_all_g
-
指定されたモデル内にあるすべてのトリプルを、そのグラフ名の値に関わらず、名前付きグラフ・ベースのグローバル推論(NGGI、「名前付きグラフ・ベースのグローバル推論」を参照)に加えます。たとえば、
include_all_g => sem_models('m2')は、M2のすべてのトリプルをNGGIに含めます。 - inf_ng_name
-
名前付きグラフ・ベースのグローバル推論(NGGI、「名前付きグラフ・ベースのグローバル推論(NGGI)」を参照)で推論された新しいトリプルすべてに、指定されたグラフ名を割り当てます。
- inf_ext_user_func_name
-
ユーザー定義の推論ファンクションの名前、またはユーザー定義ファンクションの名前のカンマ区切りのリスト。特定のパラメータの形式要件やオプションなど、ユーザー定義の推論ファンクションの作成の詳細は、「ユーザー定義の推論のAPIサポート」を参照してください。(例を含むユーザー定義の推論の詳細は、ユーザー定義の推論と問合せを参照してください。)
- ols_ladder_inf_lbl_sec
- network_owner
-
RDFネットワークの所有者。(表1-2を参照してください。)
- network_name
-
RDFネットワークの名前。(表1-2を参照してください。)
使用に関するノート
inf_components_inパラメータには、キーワードSCOHCOMPH、DISJH、SYMMH、INVH、SPIH、MBRH、SPOH、DOMH、RANH、EQCH、EQPH、FPH、IFPH、DOM、RAN、SCO、DISJ、COMP、INV、SPO、FP、IFP、SYMM、TRANS、DIF、SAM、CHAIN、HASKEY、ONEOF、INTERSECT、INTERSECTSCOH、MBRLST、PROPDISJH、SKOSAXIOMS、SNOMED、SVFH、THINGH、THINGSAM、UNION、RDFP1、RDFP2、RDFP3、RDFP4、RDFP6、RDFP7、RDFP8AX、RDFP8BX、RDFP9、RDFP10、RDFP11、RDFP12A、RDFP12B、RDFP12C、RDFP13A、RDFP13B、RDFP13C、RDFP14A、RDFP14BX、RDFP15、RDFP16、RDFS2、RDFS3、RDFS4a、RDFS4b、RDFS5、RDFS6、RDFS7、RDFS8、RDFS9、RDFS10、RDFS11、RDFS12、RDFS13の任意の組合せを指定できます。これらのキーワードの意味の説明は、キーワードのアルファベット順のリストである表15-1を参照してください。
OWLPrimeボキャブラリの推論コンポーネントのデフォルト・セットには、SCOH、COMPH、DISJH、SYMMH、INVH、SPIH、SPOH、DOMH、RANH、EQCH、EQPH、FPH、IFPH、SAMH、DOM、RAN、SCO、DISJ、COMP、INV、SPO、FP、IFP、SYMM、TRANS、DIF、RDFP14A、RDFP14BX、RDFP15、RDFP16が含まれます。ただし、次のことに注意してください。
-
コンポーネント
SAMは、一部のオントロジで多数の新規トリプルを生成することが多いため、このデフォルトのOWLPrimeリストには含まれません。 -
リリース11.2では、ネイティブOWL推論エンジンにより、新しい推論コンポーネントである
CHAIN、HASKEY、INTERSECT、INTERSECTSCOH、MBRLST、ONEOF、PROPDISJH、SKOSAXIOMS、SNOMED、SVFH、THINGH、THINGSAM、UNIONがサポートされます。ただし、下位互換のために、OWLPrimeルールベースや既存のルールベースには、デフォルトでは前述の新しいコンポーネントは含まれていないため、これらの新しい推論コンポーネントを使用するには、明示的に指定する必要があります(これらを表15-1に示します)。次の例では、LUBMおよびUNIVという2つのOWLオントロジ用のOWLPrime推論グラフを作成します。追加の推論コンポーネントの設定により、この推論グラフには、それらの推論コンポーネントによって導入された新しいセマンティクが含まれるようになります。EXECUTE sem_apis.create_inferred_rdf_graph('lubm1000_idx',sem_models('lubm','univ'), sem_rulebases('owlprime'), SEM_APIS.REACH_CLOSURE, 'INTERSECT,INTERSECTSCOH,SVFH,THINGH,THINGSAM,UNION');
表15-3 inf_components_inパラメータの推論キーワード
| キーワード | 説明 |
|---|---|
|
CHAIN |
OWL 2で定義されるプロパティ・チェーン・セマンティクを取得します。長さが2のチェーンのみがサポートされます。デフォルトでは、これは |
|
COMPH |
owl:complementOf表明、およびowl:complementOfと他の言語構成要素との相互作用に基づいて推論を実行します。 |
|
DIF |
owl:differentFromの対称性に基づいてowl:differentFrom表明を生成します。 |
|
DISJ |
owl:disjointWith表明を使用してインスタンス・レベルでowl:differentFrom関係を推論します。 |
|
DISJH |
owl:disjointWith表明、および他の言語構成要素との相互作用に基づいて推論を実行します。 |
|
DOM |
RDFS2に基づいて推論を実行します。 |
|
DOMH |
rdfs:domain表明、および他の言語構成要素との相互作用に基づいて推論を実行します。 |
|
EQCH |
owl:equivalentClassに関連する推論を実行します。 |
|
EQPH |
owl:equivalentPropertyに関連する推論を実行します。 |
|
FP |
owl:FunctionalPropertyのインスタンスを使用してインスタンス・レベルの推論を実行します。 |
|
FPH |
owl:FunctionalPropertyのインスタンスを使用して推論を実行します。 |
|
HASKEY |
OWL 2で定義された「キー」の背後にあるセマンティクを網羅します。OWL 2では、プロパティのコレクションをクラス式のキーとして判定できます。効率を考慮して、コレクションのサイズは3以下にしてください。(リリース11.2の新機能。) |
|
IFP |
owl:InverseFunctionalPropertyのインスタンスを使用してインスタンス・レベルの推論を実行します。 |
|
IFPH |
owl:InverseFunctionalPropertyのインスタンスを使用して推論を実行します。 |
|
INTERSECT |
owl:intersectionOfのコア・セマンティクを処理します。たとえば、クラスCがクラスC1、C2およびC3の積集合の場合、CはC1、C2およびC3のサブクラスです。また、C1、C2およびC3すべての共通インスタンスは、Cのインスタンスでもあります。(リリース11.2の新機能。) |
|
INTERSECTSCOH |
積集合は最大の共通サブセットであるということを処理します。たとえば、クラスCがクラスC1、C2およびC3の積集合である場合は、C1、C2およびC3すべての任意の共通サブクラスはCのサブクラスです。(リリース11.2の新機能。) |
|
INV |
owl:inverseOf表明を使用してインスタンス・レベルの推論を実行します。 |
|
INVH |
owl:inverseOf表明、および他の言語構成要素との相互作用に基づいて推論を実行します。 |
|
MBRLST |
どのリソースにおいても、 |
|
ONEOF |
列挙クラスの定義に基づいて、分類表明を生成します。OWLでは、クラス拡張を |
|
PROPDISJH |
|
|
RANH |
|
|
RDFP* |
(接頭辞RDFP付きのコンポーネントに対応するルールの詳細は、『Completeness, decidability and complexity of entailment for RDF Schema and a semantic extension involving the OWL vocabulary』(H.J. Horst)を参照してください。) |
|
RDFS2, ... RDFS13 |
RDFS2、RDFS3、RDFS4a、RDFS4b、RDFS5、RDFS6、RDFS7、RDFS8、RDFS9、RDFS10、RDFS11、RDFS12およびRDFS13の詳細は、「RDF Semantics」( |
|
SAM |
各個体およびowl:sameAsの既存の表明に基づいてそれらの個体に関する推論を実行します。 |
|
SAMH |
owl:sameAsの推移性および対称性を使用してowl:sameAs表明を推論します。 |
|
SCO |
RDFS9に基づいて推論を実行します。 |
|
SCOH |
既存のrdfs:subClassOf表明に基づいてsubClassOf階層を生成します。基本的には、推移性に基づいてC1 rdfs:subClassOf C2およびC2 rdfs:subClassOf C3からC1 rdfs:subClassOf C3が推論されます。SCOHは、RDFS11の別名でもあります。 |
|
SKOSAXIOMS |
SKOSの詳細な指定で定義されるほとんどの公理を取得します。デフォルトでは、これは |
|
最も表現が多様で複雑な医学用語集の1つであるSNOMED CT (Systematized Nomenclature of Medicine - Clinical Terms)の表現を取得する、OWL 2 ELプロファイルのセマンティクに基づいて推論を実行します。(リリース11.2の新機能。) |
|
|
SPIH |
rdfs:subPropertyOf表明とowl:inverseOf表明間の相互作用に基づいて推論を実行します。 |
|
SPO |
RDFS7に基づいて推論を実行します。 |
|
SPOH |
rdfs:subPropertyOfの推移性に基づいてrdfs:subPropertyOf階層を生成します。これは、RDFS5の別名です。 |
|
SVFH |
owl:someValuesFromとrdfs:subClassOf間の相互作用に関する次のセマンティクを処理します。同じ制限プロパティをどちらも使用する2つの存在する制限クラスC1およびC2を考えてみます。さらにC1のowl:someValuesFrom制約クラスが、C2のその制約クラスのサブクラスであるとします。これによって、C1はC2のサブクラスとして推論できます。(リリース11.2の新機能。) |
|
SYMM |
owl:SymmetricPropertyのインスタンスを使用してインスタンス・レベルの推論を実行します。 |
|
SYMH |
owl:SymmetricPropertyタイプのプロパティに関する推論を実行します。 |
|
THINGH |
すべての定義済OWLクラスがowl:Thingのサブクラスであるというセマンティクを処理します。このルールの結果、すべての定義済OWLクラスのインスタンスはowl:Thingのインスタンスになります。推論されたグラフのサイズは、このコンポーネントが選択されたことで、より大きくなる可能性があります。(リリース11.2の新機能。) |
|
THINGSAM |
owl:Thingのインスタンスは(owl:sameAs)自身と等価であるというセマンティクを処理します。このコンポーネントは、一部のアプリケーションの利便性のために提供されます。アプリケーションでは、この推論コンポーネントを選択して個体がそれ自身と等価であることがわかるようにする必要はありません(この種の情報はアプリケーション・ロジックで簡単に構築できます)。(リリース11.2の新機能。) |
|
TRANS |
owl:TransitivePropertyのインスタンスの推移閉包を計算します。 |
|
UNION |
|
コンポーネントを選択解除するには、コンポーネント名の次にマイナス記号(-)を付けます。たとえば、SCOH-と指定すると、subClassOf階層の推論が選択解除されます。
optionsパラメータでは、次のオプションを有効化してデフォルトの推論動作を上書きできます。
-
COL_COMPRESS=Tは一時的な、中間作業表を作成します。このオプションは、このような表に必要な領域を減らすことができ、大きなデータセットのCREATE_INFERRED_GRAPH操作のパフォーマンスを向上できます。デフォルトでは、
COL_COMPRESS=Tは「問合せのための圧縮レベルが低い」設定を使用しますが、CPQH=Tを追加して「問合せのための圧縮レベルが高い」設定に変更できます。ノート:
COL_COMPRESS=Tは、ハイブリッド列圧縮(HCC) をサポートするシステムでのみ指定できます。HCCの詳細は、『Oracle Database概要』を参照してください。 -
DEST_MODEL=<rdf_graph_name>は、増分推論のために、delta_inRDFグラフを追加する宛先グラフを指定します。指定する宛先グラフは、rdf_graphs_inパラメータで指定するグラフの1つである必要があります。 -
DISTANCE=T: セマンティク演算子に有効な補助的距離情報を生成します。 -
DOP=nには、パラレル推論の並列度を指定します。これにより推論パフォーマンスを向上させることができます。パラレル推論の詳細は、「パラレル推論の使用」を参照してください。 -
ENTAIL_ANYWAY=T: 推論グラフのステータスが有効の場合、OWL推論を強制的に続行し、既存の推論データ(推論グラフ)を再利用します。デフォルトでは、RDFグラフとルールベースの組合せに対して有効な推論グラフがすでに存在する場合、SEM_APIS.CREATE_INFERRED_GRAPHはただちに終了します。 -
HASH_PART=nを指定すると、指定した数のハッシュ・パーティションが、内部の作業表に作成されます。(この数は、2、4、8、16、32など、2の累乗値である必要があります。)RDFグラフに異なる述語が多数ある場合、値を指定できます。ベンチマーク・オントロジのOracle内部のテストで、HASH_PART=32は適切に動作しました。 -
INC=Tは、推論グラフの増分推論を有効にします。増分推論の詳細は、「増分推論の実行」を参照してください。 -
LOCAL_NG_INF=Tは、名前付きグラフ・ベースのグローバル推論(NGGI)のかわりに名前付きグラフ・ベースのローカル推論(NGLI)が使用されるようにします。NGLIの詳細は、「名前付きグラフ・ベースのローカル推論(NGLI)」を参照してください。 -
MODEL_PARTITIONS=nは、コンポジット・パーティション化RDFネットワーク内のサブパーティションのデフォルト数をオーバーライドし、指定された数(n)のサブパーティションをRDF_LINK$の最後の推論グラフ・パーティション内に作成します。 -
OPT_SAMEAS=Tは、推論グラフに連結されたowl:sameAs推論グラフを使用します。このオプションを指定する場合、PROOF=Tは指定できません。owl:sameAs推論の最適化に関する詳細は、「owl:sameAs推論の最適化」を参照してください。 -
RAW8=Tは、補助推論表にRAW8データ型を使用します。このオプションによって、グラフの推測パフォーマンスが最大で30%向上する可能性があります。 -
PROOF=Tで、推論トリプルの証明が生成されます。必要のない場合はこのオプションを指定しないでください。生成されるデータが多くなり、推論パフォーマンスが低下するためです。このオプションを指定する場合、OPT_SAMEAS=Tは指定できません。 -
USER_RULES=Tとすると、任意のユーザー定義ルールが適用されます。このオプションを指定する場合、PROOF=TまたはDISTANCE=Tは指定できません。また、passesパラメータのデフォルト値を使用する必要があります。
delta_inパラメータでは、値がこれらのRDFグラフの全体的なサイズと比較して小さい場合、推論パフォーマンスは最適です。一般的なシナリオでは、デルタに10,000未満のトリプルが含まれているときに最適な結果に達する場合がありますが、一部のテストでは、100,000トリプルのデルタでもかなりの推論パフォーマンスの向上が見られました。
label_genパラメータでは、デフォルトのOLSラベル・ジェネレータを使用する場合、表15-2から適切なSEM_RDFSAパッケージ定数値を指定します。
表15-4 label_genパラメータのSEM_RDFSAパッケージ定数
| 定数 | 説明 |
|---|---|
|
SEM_RDFSA.LABELGEN_SUBJECT |
トリプルのラベルとして、推論されたトリプルの主語に関連付けられているラベルを適用するラベル・ジェネレータ。 |
|
SEM_RDFSA.LABELGEN_PREDICATE |
トリプルのラベルとして、推論されたトリプルの主語に関連付けられているラベルを適用するラベル・ジェネレータ。 |
|
SEM_RDFSA.LABELGEN_OBJECT |
トリプルのラベルとして、推論されたトリプルの主語に関連付けられているラベルを適用するラベル・ジェネレータ。 |
|
SEM_RDFSA.LABELGEN_RULE |
トリプルのラベルとして、推論されたトリプルを直接生成したルールに関連付けられているラベルを適用するラベル・ジェネレータ。このオプションを指定する場合、 |
|
SEM_RDFSA.LABELGEN_DOMINATING |
トリプルのコンポーネント(主語、述語、目的語およびルール)のためのすべての使用可能なラベルのうち、優位ラベルを計算して、推論されたトリプルのラベルとしてそれを適用するラベル・ジェネレータ。 |
ファイングレイン・アクセス制御(OLS)で考慮すべき点
OLSを使用するネットワーク全体に対してファイングレイン・アクセス制御を有効にした場合、関連ポリシーに対してFULLアクセス権限を持つユーザーのみが推論グラフを作成できます。OLSが有効な場合、OLSポリシーへの完全なアクセス権限はSA_USER_ADMIN.SET_USER_PRIVSプロシージャを使用して付与されます。
生成されたラベルを通じてアクセスされる推論されたトリプルは、ユーザー・アクセス可能なトリプルおよびルールから直接推論される概念上のトリプルとは異なることがあります。トリプルのコンポーネントのサブセットを使用して生成されるラベルは、意図していたものよりも弱い場合があります。たとえば、推論されたトリプルの前件の1つは、トリプルのコンポーネントのどれよりも高いラベルを持つ場合があります。ラベルがトリプルのコンポーネントのみに基づいて生成される場合、前件の1つにアクセス権がないエンド・ユーザーが、推論されたトリプルへのアクセス権を持つ場合があります。前件がカスタム・ラベル生成に使用されるときでも、生成されたラベルが意図したものよりも強い場合があります。推論プロセスは完全なものではなく、同じトリプルを推論する他の代替方法に関連する情報も使用できません。したがって、代替パスのすべてのトリプルへのアクセス権を持つユーザーが、より低いアクセス権でトリプルを推論できるため、ある一連の前件を使用して生成されたラベルが強すぎる場合があります。
コンポーネントおよび前件すべてに対して優位であるラベルを生成するときでも、ラベルが正確でない場合があります。これは、関係において優位であると考えられるラベルに、重ならないグループ情報がある場合です。たとえば、2つのラベルL:C:NYおよびL:C:NH (Lはレベル、Cはコンポーネント、NYおよびNHは2つのグループ)について考えてみます。これらの2つのラベルより優位である単純なラベルはL:C:NY,NHであり、2つのラベルの真の最上位はL:C:US(USはNYおよびNH両方の親グループ)です。ただし、最初の2つのラベルを持つトリプルから推論されたトリプルには、これらの2つの優位ラベルはどちらも正確ではありません。推論されるトリプルにL:C:NY,NHが使用される場合、これらのどちらのグループのメンバーシップを持つユーザーにも、推論されるトリプルへのアクセス権がありますが、同じユーザーにその前件の1つへのアクセス権はありません。一方、推論されるトリプルにL:C:USが使用される場合、両方のグループに属するがUSグループには属さないメンバーシップを持つユーザーは推論されるトリプルにアクセスできませんが、そのコンポーネントと前件に直接アクセスすることによって、そのユーザーはトリプルを推論できます。
推論されるトリプルに伴うこれらの固有の問題のため、ラベル・ジェネレータを選択または実装する場合は、特別に注意する必要があります。
例の項のOLSの例も参照してください。
RDFネットワークのタイプおよびオプションの詳細は、「RDFネットワーク」を参照してください。
ノート:
OWL2RL推論を使用したSEM_APIS.CREATE_INFERRED_GRAPHプロシージャの実行に時間がかかる場合は、「例」の項のOWL2RLルールベースの例に示すように、オプションを使用して推論グラフの作成プロシージャを実行する必要があります。
例
次の例では、OWLPrimeルールベースを使用して推論グラフOWLTST_IDXを作成し、推論されたトリプルに対して証明を生成します。
EXECUTE sem_apis.create_inferred_graph('owltst_idx', sem_models('owltst'), sem_rulebases('OWLPRIME'), SEM_APIS.REACH_CLOSURE, null, 'PROOF=T');
次の例では、OLS環境が前提となります。ルールベースをルールと一緒に作成し、推論グラフを作成します。
-- Create an inferred graph with a rule. --
exec sdo_rdf_inference.create_inferred_graph('contracts_rb');
insert into rdfr_contracts_rb values (
'projectLedBy', '(?x :drivenBy ?y) (?y :hasVP ?z)', NULL,
'(?x :isLedBy ?z)',
SDO_RDF_Aliases(SDO_RDF_Alias('','http://www.myorg.com/pred/')));
-- Assign sensitivity label for the predicate to be inferred. --
-- Yhe predicate label may be set globally or it can be assign to --
-- the one or the RDF graphs used to infer the data – e.g: CONTRACTS.
begin
sem_rdfsa.set_predicate_label(
model_name => 'rdf$global',
predicate => 'http://www.myorg.com/pred/isLedBy',
label_string => 'TS:US_SPCL');
end;
/
-- Create index with a specific label generator. --
begin
sem_apis.create_inferred_graph(
inferred_graph_name => 'contracts_inf',
rdf_graphs_in => sem_models('contracts'),
rulebases_in => sem_Rulebases('contracts_rb'),
options => 'USER_RULES=T',
label_gen => sem_rdfsa.LABELGEN_PREDICATE);
end;
/
-- Check for any label exceptions and update them accordingly. --
update rdfi_contracts_inf set ctxt1 = 1100 where ctxt1 = -1;
-- The new inferred graph is now ready for use in SEM_MATCH queries. --次の例は、OWL2RLルールベースを使用して推論グラフを作成する際に長い実行時間を解決するステップを示しています。
ALTER SESSION SET "_OPTIMIZER_GENERATE_TRANSITIVE_PRED"=FALSE;
EXECUTE SEM_APIS.CREATE_INFERRED_GRAPH
('m1_inf',SEM_MODELS('m1'),SEM_RULEBASES('OWL2RL'),NULL,NULL,
'RAW8=T,DOP=8,HINTS=[rule:SCM-CLS,use_hash(m1),rule:SCM-OP-DP,use_hash(m1)],PROCSVF=F,PROCAVF=F,PROCSCMHV=F,PROCSVFH=F,PROCAVFH=F,PROCDOM=F,PROCRAN=F'
);親トピック: SEM_APISパッケージのサブプログラム