4.2 SKOS RDFグラフでの推論の実行
SKOS RDFグラフでの推論の実行は、RDFグラフでの推論の実行に似ています。
SKOS RDFグラフを作成するには、RDFグラフの作成と同じ手順(SEM_APIS.CREATE_RDF_GRAPH)を使用します。RDFグラフの場合と同様に、SKOS RDFグラフにデータをロードできます。
1つ以上のSKOS RDFグラフの新しい関係を推論するには、SEM_APIS.CREATE_INFERRED_GRAPHプロシージャをシステム定義のルールベースSKOSCOREとともに使用します。たとえば、次のようにします。
EXECUTE sem_apis.create_inferred_graph('tstidx',sem_models('tst'), sem_rulebases('skoscore')), network_owner=>'RDFUSER', network_name=>'NET1');
推論データには、SKOSの詳細な仕様で定義されている多くの公理が含まれます。他のシステム定義のルールベースのように、SKOSCOREは明示的なルールを持たず、サポートされるすべてのセマンティクは、実装にコーディングされています。
4.2.1 SKOS RDFグラフおよび推論グラフの検証
SEM_APIS.VALIDATE_INFERRED_GRAPHおよびSEM_APIS.VALIDATE_RDF_GRAPHプロシージャを使用すると、サポートされる整合性条件を検証できます。その出力には、サポートされる整合性条件(OWL 2 propertyDisjointWith、S52など)によって発生する不整合が含まれます。
例4-2では、SKOS推論グラフを検証します。
例4-2 SKOS推論グラフの検証
set serveroutput on
declare
lva sem_longvarchararray;
idx int;
begin
lva := sem_apis.validate_inferred_graph(sem_models('tstskos'), sem_rulebases('skoscore'), network_owner=>'RDFUSER',network_name=>'NET1');
if (lva is null) then
dbms_output.put_line('No conflicts');
else
for idx in 1..lva.count loop
dbms_output.put_line('entry ' || idx || ' ' || lva(idx));
end loop;
end if;
end;
/親トピック: SKOS RDFグラフでの推測の実行
4.2.2 プロパティ・チェーンの処理
SKOS S55、S56およびS57セマンティクは、デフォルトではサポートされません。ただし、OWL 2サブプロパティ・チェーン構成要素を使用して、それらのサポートを追加できます。
例4-3では、S55の必要なチェーン定義トリプルをSKOSモデルに挿入しています。挿入の後、SKOSCOREルールベースを指定するSEM_APIS.CREATE_INFERRED_GRAPHの起動によって、S55で定義されるセマンティクが含まれます。
例4-3 S55を実装するためのプロパティ・チェーンの挿入
INSERT INTO tst VALUES(sdo_rdf_triple_s('tst','<http://www.w3.org/2004/02/skos/core#prefLabel>', '<http://www.w3.org/2002/07/owl#propertyChainAxiom>', '_:jA1', 'RDFUSER', 'NET1'));
INSERT INTO tst VALUES(sdo_rdf_triple_s('tst','_:jA1', '<http://www.w3.org/1999/02/22-rdf-syntax-ns#first>', '<http://www.w3.org/2008/05/skos-xl#prefLabel>', 'RDFUSER', 'NET1'));
INSERT INTO tst VALUES(sdo_rdf_triple_s('tst','_:jA1', '<http://www.w3.org/1999/02/22-rdf-syntax-ns#rest>', '_:jA2', 'RDFUSER', 'NET1'));
INSERT INTO tst VALUES(sdo_rdf_triple_s('tst','_:jA2', '<http://www.w3.org/1999/02/22-rdf-syntax-ns#first>', '<http://www.w3.org/2008/05/skos-xl#literalForm>', 'RDFUSER', 'NET1'));
INSERT INTO tst VALUES(sdo_rdf_triple_s('tst','_:jA2', '<http://www.w3.org/1999/02/22-rdf-syntax-ns#rest>', '<http://www.w3.org/1999/02/22-rdf-syntax-ns#nil>', 'RDFUSER', 'NET1'));
親トピック: SKOS RDFグラフでの推測の実行