附属書B(参考) 例

この附属書は,規定の残りの部分で開発された概念の例を提供する。

B.1 抽象構文からRDFグラフへの対応付けの例

4.の変換規則の次のオントロジの変換を検討する。

Ontology(ex:ontology
  DatatypeProperty(ex:name)
  ObjectProperty(ex:author)
  Class(ex:Book)
  Class(ex:Person)

  Individual(type(ex:Book) 
        value(ex:author Individual(type(ex:Person) value(ex:name "Fred"^^xsd:string)))))

上のオントロジを次に変換する。

  ex:ontology rdf:type owl:Ontology .
  ex:name rdf:type owl:DatatypeProperty .
  ex:author rdf:type owl:ObjectProperty .
  ex:Book rdf:type owl:Class .
  ex:Person rdf:type owl:Class .

  _:x rdf:type ex:Book .
  _:x ex:author _:x1 .
  _:x1 rdf:type ex:Person .
  _:x1 ex:name "Fred"^^xsd:string .

さらに,次を検討する。

Ontology(ex:ontology2
  Class(ex:Person)
  Class(ex:Student)
  ObjectProperty(ex:enrolledIn)
  Class(ex:Student complete ex:Person
                   restriction(ex:enrolledIn allValuesFrom(ex:School) minCardinality(1))))

上のオントロジを次に変換することができる。

  ex:ontology2 rdf:type owl:Ontology .
  ex:enrolledIn rdf:type owl:ObjectProperty .
  ex:Person rdf:type owl:Class .
  ex:School rdf:type owl:Class .

  ex:Student rdf:type owl:Class .
  ex:Student owl:equivalentClass _:x .

  _:x owl:intersectionOf _:l1 .
  _:l1 rdf:first  ex:Person .
  _:l1 rdf:rest _:l2 .
  _:l2 rdf:first  _:lr .
  _:l2 rdf:rest rdf:nil .

  _:lr owl:intersectionOf _:lr1 .
  _:lr1 rdf:first _:r1 .
  _:lr1 rdf:rest _:lr2 .
  _:lr2 rdf:first _:r2 .
  _:lr2 rdf:rest rdf:nil .

  _:r1 rdf:type owl:Restriction .
  _:r1 owl:onProperty ex:enrolledIn .
  _:r1 owl:allValuesFrom ex:School .

  _:r2 rdf:type owl:Restriction .
  _:r2 owl:onProperty ex:enrolledIn .
  _:r2 owl:minCardinality "1"^^xsd:nonNegativeInteger .

B.2 OWL DL及びOWL Fullにおける論理的帰結の例

OWL DLは,語い(彙)が議論の領域の適切な部分に属することを示すことができさえすれば,思いどおりの論理的帰結をサポートする。次に例を示す。

John friend Susan .

上の記述は次をOWL DLで論理的に帰結しない。

John rdf:type owl:Thing .

Susan rdf:type owl:Thing .

friend rdf:type owl:ObjectProperty .

上の三つの三つ組は,次の制限の結論付けが可能となる前に,追加される必要がある。

John rdf:type _:x .

_:x owl:onProperty friend .

_:x owl:minCardinality "1"^^xsd:nonNegativeInteger .

しかし,いったんこの特別な情報を追加すると,ループをもつ記述を含む論理的帰結以外の,すべての自然論理的帰結が続く。次に例を示す。

John rdf:type owl:Thing .

friend rdf:type owl:ObjectProperty .

John rdf:type _:x .

_:x owl:onProperty friend .

_:x owl:maxCardinality "0"^^xsd:nonNegativeInteger .

上の記述は次を論理的に帰結しない。

John rdf:type _:y .

_:y owl:onProperty friend .

_:y owl:allValuesFrom _:y .

これは,これらのループ記述について,包括原理が存在しないためである。自然論理的帰結を保持する間,OWL DLの矛盾形成を避けるのは,まさにこれらの包括原理の欠落である。

OWL DLでは,次の形式のすべての三つ組から構成される表明を局所化する特定の集合を追加することによって,あらゆる分離構文KBにおいて,欠落している局所化を修復することができる。

<individual> rdf:type owl:Thing .

<class> rdf:type owl:Class .

<oproperty> rdf:type owl:ObjectProperty .

<dtproperty> rdf:type owl:DatatypeProperty .

これらの表明のすべてをKBのOWL DL KB局所化に追加した結果を呼び出す。

OWL Fullは,望みどおりの論理的帰結をサポートし,語い(彙)に型付け情報を提供する必要はない。次に例を示す。

John friend Susan .

上の記述は次をOWL Fullで論理的に帰結する。

John rdf:type _:x .

_:x owl:onProperty friend .

_:x owl:minCardinality "1"^^xsd:nonNegativeInteger .