Simple Knowledge Organization System (SKOS)データ・モデルのコア・サブセットは、それに基づいて推論を実行することが可能であり、シソーラス、分類スキーム、分類学、その他のタイプの統制語彙を表す場合に特に役立ちます。SKOSは、RDFおよびOWLを含む標準的なセマンティクWebテクノロジに基づくもので、これによって知識組織化システムの形式意味論の定義およびアプリケーション間でのセマンティク共有が容易になります。
SKOSの機能は、すべてではありませんが、そのほとんどがサポートされます(仕様の詳細は、http://www.w3.org/TR/skos-reference/
を参照)。
約40個のSKOS固有の語句が、RDFセマンティク・グラフ・サポートに含まれています(skos:broader
、skos:relatedMatch
、skos:Concept
など)。SKOSの公理トリプルが100個以上追加されて、SKOSセマンティクの基本が網羅されています。ただし、SKOSの仕様に記述されている整合性条件に関するサポートは含まれていません。
SKOSベースの推論を実行するには、次の例に示すように、SEM_APIS.CREATE_ENTAILMENTプロシージャへのコールでrulebases_in
パラメータにシステム定義のSKOSCORE
ルールベースを指定します。
EXECUTE sem_apis.create_entailment('tstidx',sem_models('tst'), sem_rulebases('skoscore'));
例3-1では、Turtle形式で、簡単な電子機器スキームと2つの関連概念(カメラとデジタル・カメラ)を定義しています。その意味は単純で、RDFで表現されています。これは、他のRDFおよびOWLデータと同様にOracle Databaseで管理できます。
例3-1 電子機器スキームのSKOS定義
ex1:electronicsScheme rdf:type skos:ConceptScheme; ex1:cameras rdf:type skos:Concept; skos:prefLabel "cameras"@en; skos:inScheme ex1:electronicsScheme. ex1:digitalCameras rdf:type skos:Concept; skos:prefLabel "digital cameras"@en; skos:inScheme ex1:electronicsScheme. ex1:digitalCameras skos:broader ex1:cameras.
この項では、SKOSセマンティクの機能のうち、Oracle Databaseでサポートされるもの、およびサポートされないものについて説明します。
ラベル用にSKOSとSKOS拡張で定義される語句は、すべて認識されます。SKOSCOREルールベースを推論に選択した場合に、認識される語句には次のものがあります。
skos:altLabel skos:broader skos:broaderTransitive skos:broadMatch skos:changeNote skos:closeMatch skos:Collection skos:Concept skos:ConceptScheme skos:definition skos:editorialNote skos:exactMatch skos:example skos:hasTopConcept skos:hiddenLabel skos:historyNote skos:inScheme skos:mappingRelation skos:member skos:memberList skos:narrower skos:narrowerTransitive skos:narrowMatch skos:notation skos:note skos:OrderedCollection skos:prefLabel skos:related skos:relatedMatch skos:scopeNote skos:semanticRelation skos:topConceptOf skosxl:altLabel skosxl:hiddenLabel skosxl:Label skosxl:labelRelation skosxl:literalForm skosxl:prefLabel
SKOS公理および定義のほとんどが、S1-S8、S10-S11、S15-S26、S28-S31、S33-S36、S38-S45、S47-S50およびS53-S54を含めてサポートされています。(定義については、SKOSの詳細な仕様を参照してください。)
SKOSの整合性条件のほとんどが、S9、S13、S27、S37およびS46を含めてサポートされています。
S52は、部分的にサポートされています。
S55、S56およびS57は、デフォルトではサポートされていません。
S55: プロパティ・チェーン(skosxl:prefLabel, skosxl:literalForm
)は、skos:prefLabel
のサブプロパティです。
S56: プロパティ・チェーン(skosxl:altLabel, skosxl:literalForm
)は、skos:altLabel
のサブプロパティです。
S57: プロパティ・チェーン(skosxl:hiddenLabel, skosxl:literalForm
)は、skos:hiddenLabel.chains
のサブプロパティです。
ただし、S55、S56およびS57は、OWL 2サブプロパティ・チェーン構成要素を使用して実装できます。プロパティ・チェーンの処理の詳細は、「プロパティ・チェーンの処理」を参照してください。
SKOSセマンティクの次の機能は、サポートされていません。
S12およびS51: 関連する述語のrdfs:range
は、RDFプレーン・リテラルのクラスです。これらの述語の目的語値が本当にプレーン・リテラルであるかどうかのチェックは存在しませんが、アプリケーションでそのようなチェックを実行できます。
S14: リソースは、言語タグごとにskos:prefLabel
の値を1つのみ持ちます。この整合性条件はOWL FULLセマンティクの範囲も超えており、現在のリリースでは実施されません。
S32: skos:memberのrdfs:range
は、クラスskos:Concept
およびskos:Collection
の和集合です。この整合性条件は実施されません。
S55、S56およびS57は、デフォルトではサポートされませんが、OWL 2サブプロパティ・チェーン構成要素を使用して実装できます(「サポートされるSKOSセマンティクス」を参照)。
SKOSモデルを作成するには、セマンティク・モデルの作成に関して同じプロシージャ(SEM_APIS.CREATE_SEM_MODEL)を使用します。セマンティク・モデルの場合と同様に、データをSKOSモデルにロードできます。
1つ以上のSKOSモデルに関して新しい関係を推論するには、SEM_APIS.CREATE_ENTAILMENTプロシージャをシステム定義のルールベースSKOSCORE
とともに使用します。次に例を示します。
EXECUTE sem_apis.create_entailment('tstidx',sem_models('tst'), sem_rulebases('skoscore'));
推論データは、SKOSの詳細な仕様で定義される多くの公理を含むことになります。他のシステム定義のルールベースのように、SKOSCOREは明示的なルールを持たず、サポートされるすべてのセマンティクが実装にコーディングされます。
SEM_APIS.VALIDATE_ENTAILMENTおよびSEM_APIS.VALIDATE_MODELプロシージャを使用すると、サポートされる整合性条件を検証できます。その出力には、サポートされる整合性条件(OWL 2 propertyDisjointWith
、S52
など)によって発生する不整合が含まれます。
例3-2では、SKOS伴意を検証します。
例3-2 SKOS伴意の検証
set serveroutput on declare lva mdsys.rdf_longVarcharArray; idx int; begin lva := sem_apis.validate_entailment(sdo_rdf_models('tstskos'), sem_rulebases('skoscore')); 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 S55、S56およびS57セマンティクは、デフォルトではサポートされません。ただし、OWL 2サブプロパティ・チェーン構成要素を使用して、これらのサポートを追加できます。
例3-3では、S55の必要なチェーン定義トリプルをSKOSモデルに挿入しています。挿入の後、SKOSCORE
ルールベースを指定するSEM_APIS.CREATE_ENTAILMENTの起動によって、S55で定義されるセマンティクが含まれます。
例3-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')); 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>')); INSERT INTO tst VALUES(sdo_rdf_triple_s('tst','_:jA1', '<http://www.w3.org/1999/02/22-rdf-syntax-ns#rest>', '_:jA2')); 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>')); 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>'));