3.1 オントロジ

オントロジは、特定の領域で共有される知識を概念化したものです。

オントロジは、クラス、プロパティおよび(オプションの)インスタンスの集合で構成されます。クラスは、通常、クラス階層(サブクラスとスーパークラスの関係)によって関連付けられます。同様に、プロパティは、プロパティ階層(サブプロパティとスーパープロパティの関係)によって関連付けられます。プロパティは、対称的または推移的(あるいはその両方)です。プロパティには、それぞれ指定されたドメイン、レンジおよびカーディナリティの制約があります。

RDFSベースのオントロジでは、クラス階層、プロパティ階層、instanceOf関係、およびプロパティのドメインとレンジの指定のみが可能です。

OWLオントロジは、RDFSベースのオントロジを基盤としますが、追加でプロパティ特性を指定できます。OWLオントロジは、さらにOWL-Lite、OWL-DLおよびOWL Fullに分類されます。OWL-Liteでは、カーディナリティの最大値と最小値が0または1に制限されています。OWL-DLでは、この制限が緩和されており、最大値と最小値を指定できます。OWL Fullでは、OWL-DLやOWL-Liteオントロジとは異なり、インスタンスをクラスとしても定義できます。

RDFデータでサポートされるOWL機能またはサポートされないOWL機能の詳細は、「サポートされるOWLサブセット」を参照してください。

3.1.1 例: 疾患オントロジ

図3-1に、疾患オントロジ(特定の疾患に関連するクラスとプロパティの記述)の一部を示します。この場合の要件は、DIAGNOSIS列を持つPATIENTSデータ表が存在することです(DIAGNOSIS列には、Diseases_and_Disorders(疾患と障害)クラス階層の値が含まれる必要があります)。

図3-1 疾患オントロジの例

図3-1の説明が続きます
「図3-1 疾患オントロジの例」の説明

図3-1の疾患オントロジでは、診断Immune_System_Disorder (免疫系障害)にAutoimmune_Disease (自己免疫疾患)およびImmunodeficiency_Syndrome (免疫不全症候群)という2つのサブクラスが含まれています。診断Autoimmune_Diseaseには、サブクラスRheumatoid_Arthritis(関節リウマチ)が含まれます。また、診断Immunodeficiency_Syndromeには、サブクラスT_Cell_Immunodeficiency(T細胞免疫不全)が含まれ、このサブクラスにはさらにサブクラスAIDSが含まれます。

PATIENTS表のデータには、表3-1に示すようなPATIENT_ID列およびDIAGNOSIS列の値が含まれます。

表3-1 PATIENTS表のデータの例

PATIENT_ID DIAGNOSIS

1234

Rheumatoid_Arthritis

2345

Immunodeficiency_Syndrome

3456

AIDS

オントロジの問合せには、SEM_MATCH表関数またはSEM_RELATED演算子およびその補助演算子を使用できます。

3.1.2 サポートされるOWLサブセット

この項では、サポートされるOWLボキャブラリのサブセットについて説明します。

Oracle Databaseでは、表現度の向上に従ってRDFS++、OWLSIFおよびOWLPrimeボキャブラリに加え、OWL 2 RLがサポートされます。サポートされる各ボキャブラリには、対応するルールベースがあります。ただし、これら3つのボキャブラリの基礎となる推論ルールが内部的に実装されるため、ルールベースの内容を指定する必要はありません。サポートされるボキャブラリは、次のとおりです。

  • RDFS++: RDFSの最小限の拡張です。RDFSにowl:sameAsowl:InverseFunctionalPropertyが追加されています。

  • OWLSIF: IFセマンティクを含むOWLであり、『Completeness, decidability and complexity of entailment for RDF Schema and a semantic extension involving the OWL vocabulary』(H.J. Horst、Journal of Web Semantics 3、2(2005)、79-115)のpD*セマンティクで提案されたボキャブラリおよびセマンティクが含まれます。

  • OWLPrime: 次のOWL機能が含まれます。

    • 基本: クラス、サブクラス、プロパティ、サブプロパティ、ドメイン、レンジ、タイプ

    • プロパティ特性: 推移的、対称的、関数的、逆関数的、逆関係

    • クラス比較: 等価、排他

    • プロパティ比較: 等価

    • 個体比較: 同一、別個

    • クラス式: 補集合

    • プロパティ制限: hasValuesomeValuesFromallValuesFrom

      pD*と同様に、これらの値制約でサポートされるセマンティクは、常に内包的です(IFセマンティク)。

  • OWL 2 RL: W3Cの「OWL 2 Web Ontology Language Profiles」に記載された推奨事項のOWL 2RLの項(http://www.w3.org/TR/owl2-profiles/#OWL_2_RL)では、「OWL 2 RLプロファイルは、あまり表現力を犠牲にせずにスケーラブルな推論を必要とするアプリケーションを対象としています。これは、言語の最大限の表現性と引き換えに効率を提供するアプリケーション、およびOWL 2による表現性の強化を必要とするRDF(S)アプリケーションの両方のOWL 2アプリケーションに対応するように設計されています」と説明されています。

    システム定義のルールベースOWL2RLでは、OWL 2 RL用に定義されたすべての標準の本番ルールがサポートされます。OWLPRIMEと同様に、このOWL2RLルールベースのルールはユーザーに表示されません。ルールベースOWL2RLがまだ存在しない場合は、自動的に作成されます。

    次のコードの抜粋では、OWL2RLルールベースを使用しています。

    CREATE TABLE m1_tpl (triple SDO_RDF_TRIPLE_S) COMPRESS;
    EXECUTE sem_apis.create_rdf_graph('m1','m1_tpl','triple',network_owner=>'RDFUSER',network_name=>'NET1');
    -- Insert data into RDF graph M1. Details omitted
    ...
    -- Now run inference using the OWL2RL rulebase
    EXECUTE sem_apis.create_inferred_graph('m1_inf',sem_models('m1'),sem_rulebases('owl2rl'),network_owner=>'RDFUSER',network_name=>'NET1');
    

    OWL2RLルールベースを使用すると、推論関連の最適化(パラレル推論、RAW8など)がすべて適用可能になります。

  • OWL 2 EL: W3Cの「OWL 2 Web Ontology Language Profiles」に記載された推奨事項のOWL 2 ELの項(http://www.w3.org/TR/owl2-profiles/#OWL_2_EL)では、OWL 2 ELプロファイルはOWL 2のサブセットとして設計されており、次の特色を持つと記述されています。

    • 非常に多数のクラスまたはプロパティ、あるいはその両方を定義するオントロジを採用するアプリケーションに特に適しています。

    • このような多数のオントロジで使用される表現力を獲得しています。

    • オントロジの一貫性、クラス表現の組込みおよびインスタンス・チェックを多項式時間で決定できます。

    OWL 2 ELオントロジの主な例は、生物医学オントロジのSNOMED Clinical Terms (SNOMED CT)です。SNOMED CTの詳細は、http://www.ihtsdo.org/snomed-ct/を参照してください。

    システム定義のルールベースOWL2ELは、EL構文をサポートしています。

    OWLPRIMEおよびOWL2RLと同様に、このOWL2ELルールベースのルールはユーザーに表示されず、OWL2ELルールベースがまだ存在しない場合は自動的に作成されます。

    次のコードの抜粋では、有名なSNOMEDオントロジに対してOWL2ELルールベースを使用しています。

    CREATE TABLE snomed_tpl (triple SDO_RDF_TRIPLE_S) COMPRESS;
    EXECUTE sem_apis.create_rdf_graph('snomed','snomed_tpl','triple',network_owner=>'RDFUSER',network_name=>'NET1') compress;
    -- Insert data into RDF graph SNOMED. Details omitted
    ...
    -- Now run inference using the OWL2EL rulebase
    EXECUTE sem_apis.create_inferred_graph('snomed_inf',sem_models('snomed'),sem_rulebases('owl2el'),network_owner=>'RDFUSER',network_name=>'NET1');
    

    OWL2ELルールベース・サポートには再帰オブジェクト・プロパティ(ReflexiveObjectProperty)は含まれていませんが、これは、再帰オブジェクト・プロパティがそれ自体ですべての個体をリンクし、推論グラフの不必要かつ高コストな拡張が行われる可能性があるためです。

表3-2に、サポートされる各ルールベースに含まれるRDFSおよびOWLのボキャブラリ構成要素を示します。

表3-2 サポートされる各ルールベースに含まれるRDFS/OWLボキャブラリ構成要素

ルールベース名 含まれるRDFS/OWL構成要素

RDFS++

すべてのRDFSボキャブラリ構成要素

owl:InverseFunctionalProperty

owl:sameAs

OWLSIF

すべてのRDFSボキャブラリ構成要素

owl:FunctionalProperty

owl:InverseFunctionalProperty

owl:SymmetricProperty

owl:TransitiveProperty

owl:sameAs

owl:inverseOf

owl:equivalentClass

owl:equivalentProperty

owl:hasValue

owl:someValuesFrom

owl:allValuesFrom

OWLPrime

rdfs:subClassOf

rdfs:subPropertyOf

rdfs:domain

rdfs:range

owl:FunctionalProperty

owl:InverseFunctionalProperty

owl:SymmetricProperty

owl:TransitiveProperty

owl:sameAs

owl:inverseOf

owl:equivalentClass

owl:equivalentProperty

owl:hasValue

owl:someValuesFrom

owl:allValuesFrom

owl:differentFrom

owl:disjointWith

owl:complementOf

OWL2RL

(http://www.w3.org/TR/owl2-profiles/#OWL_2_RLを参照)

OWL2EL

(http://www.w3.org/TR/owl2-profiles/#OWL_2_ELを参照)