OWL抽象構文及び意味論規定 [OWL S&AS] は,RDFの三つ組の対応付けとともに, 抽象構文に関して,OWLオントロジの特徴付けを提供する。
次の規則は,RDFグラフがDLオントロジであるための条件の非形式的な特徴づけを与える。 これは,S&ASで提供される特徴付けに取って代わることを意図したものではないが, 代わりに,幾つかの一般的な助言を提供する。 すなわち,これらの指針を遵守すれば,OWL DLオントロジを作成しやすくなることを意図している。 さらに,これは,三つ組表現を抽象構文によって近い何かに変える方法を知らせることを意図したものでもない。
組込みの特性及びクラスは,再定義されてはならない。 一般に,これは,OWL,RDF,又はRDFS名前空間の中の事物が, 三つ組の主語として現れてはならないことを意味する。
すべてのものが型1をもたねばならない。
あらゆるURI参照x
をクラスが期待される場所で使用する場合,
グラフは,次を言明する三つ組を含まねばならない。
x rdf:type owl:Class
同様に,
特性p
をオブジェクト特性が期待される場所で使用する場合,
次の三つ組2が存在しなければならない。
p rdf:type owl:ObjectProperty
特性q
をデータ特性が期待される場所で使用する場合,
次の三つ組が存在しなければならない。
q rdf:type owl:DatatypeProperty
特性o
をオントロジ特性が期待される場所で使用する場合,
それは,組込み式のオントロジ特性,
owl:imports
, owl:priorVersion
,
owl:backwardCompatibleWith
及びowl:incompatibleWith
のいずれかであるか,
若しくは次の三つ組が存在しなければならない。
o rdf:type owl:OntologyProperty
特性a
を注記特性が期待される場所で使用する場合,
それは,組込み式の注記特性owl:versionInfo
,
rdfs:label
, rdfs:comment
,
rdfs:seeAlso
及びrdfs:isDefinedBy
のいずれか
であるか,若しくは次の三つ組が存在しなければならない。
a rdf:type owl:AnnotationProperty
オントロジに現れるあらゆる個体は,
少なくとも一つの指定された型をもたねばならない。
すなわち,個体i
に対して,
次の三つ組が存在しなければならない。
i rdf:type c
この場合,c
はowl:Class
であるか,
又はowl:Restriction
である。
クラス,特性(オブジェクト,データ型,オントロジ及び注記)及び個体のURI参照は互いに素でなければならない。 したがって,次の種類の事物をもつことはできない。
x rdf:type owl:Class x rdf:type owl:ObjectProperty
特に,これは,インスタンスとしてのクラス, すなわち次を使用できないことを意味する。
x rdf:type owl:Class y rdf:type owl:Class x rdf:type y
上の記述は有効なOWL DLではない。
ここで,一般的な規則を次に示す。
三つ組を用いるグラフにノードx
が存在する場合を検討する。
x rdf:type owl:Class
この場合,
x
は,述語rdf:type
3をもつ
他のいかなる三つ組の主語としても現れてはならない。
ノードx
が
rdf:type
owl:Restriction
をもつ場合,
次のとおりでなければならない。
rdf:type
3
を述語にもついかなる他の三つ組の主語ともならない。owl:onProperty
を述語にもつ厳密に
一つの三つ組の主語であり,
その三つ組の目的語が owl:ObjectProperty
又は
owl:DatatypeProperty
となる。owl:someValuesFrom
を述語にもつ三つ組。
この場合,owl:onProperty
三つ組の目的語である特性の型は妥当でなければならない。
これによって,この三つ組の目的語がデータ型である場合,
特性はowl:DatatypeProperty
でなければならないという意味になる。
目的語がクラス記述である場合,
特性はowl:ObjectProperty
でなければならない。
この型付け情報は,上で説明された制限のため,
存在しなければならない。owl:allValuesFrom
を述語にもつ三つ組。
owl:someValuesFrom
の場合と同様の制限が課される。owl:hasValue
を述語にもつ三つ組。
owl:onProperty
三つ組に含まれる特性の型が
owl:ObjectProperty
である場合,
この三つ組の目的語は個体でなければならない。
owl:onProperty
三つ組に含まれる特性の型が
owl:DatatypeProperty
である場合,
この三つ組の目的語はデータリテラルでなければならない。owl:minCardinality
を述語にもつ三つ組。
この三つ組の目的語は,
負ではない整数を表現するデータリテラルでなければならない。owl:maxCardinality
を述語にもつ三つ組。
owl:minCardinality
の場合と同様の制限が課される。owl:cardinality
を述語にもつ三つ組。
owl:minCardinality
の場合と同様の制限が課される。x
が主語である他の三つ組はいずれも述語に
owl:equivalentClass
又は
owl:disjointWith
をもたねばならない。rdfs:subClassOf
,owl:equivalentClass
又は
owl:disjointWith
を述語にもつ三つ組については,
その三つ組のすべてについて,
主語も述語もowl:Class
又はowl:Restriction
でなければならない。
次の例を検討する。
x rdfs:subClassOf y
上の記述の場合, グラフは次のうちの一つを含まなければならない。
x rdf:type owl:Class
又は
x rdf:type owl:Restriction.
さらに次のうちの一つを含まなければならない。
y rdf:type owl:Class
又は
y rdf:type owl:Restriction
rdfs:subPropertyOf
又は
owl:equivalentProperty
を述語にもつ三つ組の場合,
その三つ組のいずれについても,主語と述語は同じ型をもたねばならない。
その場合,
型は,owl:ObjectProperty
又は
owl:DatatypeProperty
のいずれかでなければならない。
次の例を検討する。
p owl:equivalentProperty q
上の記述の場合,グラフは次のいずれかを含まなければならない。
p rdf:type owl:ObjectProperty q rdf:type owl:ObjectProperty.
又は
p rdf:type owl:DatatypeProperty q rdf:type owl:DatatypeProperty.
rdfs:domain
を述語にもつ三つ組は,
その主語としてowl:ObjectProperty
又は
owl:DatatypeProperty
をもち,
その目的語として
owl:Class
又はowl:Restriction
をもたなければならない。
rdfs:range
を述語にもつ三つ組は,
その主語として,owl:ObjectProperty
か
owl:DatatypeProperty
のいずれかをもたねばならない。
前者の場合では,三つ組の目的語が
owl:Class
又はowl:Restriction
でなければならず,
後者の場合では,目的語が
XMLスキーマのデータ型,rdfs:Literal
,又は
owl:DataRange
型でデータ値域を指定する
owl:oneOf
のいずれかでなければならない。
owl:inverseOf
三つ組の主語も目的語も
owl:ObjectProperty
型をもたなければならない。
owl:sameAs
又は
owl:differentFrom
を述語にもつ三つ組の場合,
そのいずれについても,主語及び述語は個体でなければならない。
owl:sameAs
を介して二つのクラスを関係付けることと,
owl:equivalentClass
を介して二つのクラスを関係付けることは全く別物であることに注意されたい。
前者は,二つのオブジェクトが事実上同じことを意味し,
実際には インスタンスとしてのクラスの1例となる。
そのため,このオントロジはOWL DLで記述できる範囲から外れてしまう。
後者は,要素のコレクションなど,
その二つのクラスの拡張が等しいことを表明したものである。
ノードx
がrdf:type
owl:AllDifferent
をもつ場合,次のとおりでなければならない。
owl:distinctMembers
を述語としてもつ
三つ組の主語となる。
その場合,目的語は整形式の
rdf:List
でなければならず,
その要素はすべて個体となる。ブール演算子(AND,OR,NOT)は,
OWLでは,owl:intersectionOf
,
owl:unionOf
及びowl:complementOf
を使用して表現される。
owl:complementOf
三つ組の主語は
owl:Class
でなければならず,目的語は,
owl:Class
かowl:Restriction
のいずれかでなければならない。
owl:unionOf
又はowl:intersectionOf
三つ組の主語はowl:Class
でなければならず,
目的語は,整形式のrdf:List
でなければならない。
その要素はすべてowl:Class
かowl:Restriction
の
いずれかとなる。
これらを明示的に表現するためには,
拡張されたrdf:Lists
を使用するか,
RDF-XMLが使用されていれば,
rdf:parseType="Collection"
属性を使用するかすればよい。
<owl:Class> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="x"/> <owl:Class rdf:about="y"/> </owl:intersectionOf> </owl:Class>
owl:Class
が空ノードである場合,
すなわち,クラスが名前付けされていない場合は,
それは,owl:intersectionOf
,
owl:unionOf
又はowl:complementOf
を述語としてもつ
一つ以下の三つ組の主語となることしかできない。
クラスが名前付けされている場合は,
これらの三つ組をいくらでも使用することができる。
owl:oneOf
を述語としてもつ三つ組の主語は
いずれもowl:Class
かowl:DataRange
のいずれかでなければならない。
前者の場合,目的語は整形式のrdf:List
でなければならず,
その要素はすべて個体となる。
後者の場合,目的語は整形式のrdf:List
でなければならず,
その要素はすべてデータリテラルとなる。
さらに,ブール演算子と同様に,
rdf:parseType="Collection"
を使用することができる。
オントロジを述語としてもつ三つ組の主語及び述語は
いずれもオントロジでなければならない。
例えば,
ノードx
において次のような三つ組がなければならない。
x rdf:type owl:Ontology
注記特性の述語をもつ三つ組の主語はいずれも名前付き, すなわち無名ノードではないクラス,特性,個体又はオントロジでなければならない。 注記特性の述語をもつ三つ組の目的語は, 個体,データリテラル又は任意のURI参照でなければならない。
OWL,RDF及びRDFSの語い(彙)に含まれる述語を除けば, 注記特性が,クラス又は特性を主語としてもつ三つ組で現れねばならない 唯一の述語である。
注記特性及びオントロジ特性そのものは,
型付けされねばならず,
rdf:type
を述語にもつ三つ組の主語又は注記特性の主語として以外に,
三つ組の主語又は目的語としてあらわれてはならない。
一般に,OWL 意味論及び抽象構文の記述は, RDF表現での構造共有を認めない。 これは,事実上,何らかの記述を表現するRDFのグラフの匿名ノードは, 三つ組の目的語として,ただ一度だけしか現れてはならないことを意味する。 次の例を検討する。
x1 rdf:type owl:Class x1 rdfs:subClassOf _:y x2 rdf:type owl:Class x2 rdfs:subClassOf _:y _:y rdf:type owl:Class _:y owl:complementOf z
上の記述は避けるのが望ましい。 注意を要するが,ごくまれにこれが容認される例も幾つか存在する。 しかし,一般に,クラス記述を一箇所以上で使用する場合は, 常に,グラフは別の空ノードを使用するのが望ましい。
一般に,グラフの中に現れる空ノードは, 名前付けされない個体を表現するか, 次のうちの厳密に一つであるかのいずれかである。
rdfs:subClassOf
,
owl:equivalentClass
, owl:disjointWith
,
owl:someValuesFrom
, owl:allValuesFrom
又は
rdf:type
三つ組の目的語。owl:AllDifferent
を目的語にもつ
rdf:type
三つ組の主語。rdf:List
の中の要素。孤立空ノード,
すなわち三つ組の目的語ではないノードは,
一般に,上に記述した
owl:AllDifferent
の場合以外では使用できない。
オントロジは,
個体の特性を表明する三つ組など,
基底の事実の表明を含んでもよい。
これらの表明で使用される特性は,
owl:ObjectProperty
又は
owl:DatatypeProperty
でなければならない。
これらの三つ組の主語はいずれも個体でなければならなず,
それは型付けされねばならない。
目的語は,特性がowl:ObjectProperty
である場合は個体の参照,
特性がowl:DatatypeProperty
である場合はデータリテラルである。
OWL Liteの文書は, OWL DLの文書と同じ規則に従わねばならなず,さらに幾つもの追加の制限がある。 これらの制限は主に許可される語い(彙)に関してのものである。 OWL Liteの文書では,次の語い(彙)をいずれも使用してはならない。
owl:unionOf
owl:complementOf
owl:oneOf
owl:hasValue
owl:disjointWith
owl:equivalentClass
を述語にもつ三つ組の目的語又は主語となるオブジェクトはいずれも空ノードであってはならない。
owl:minCardinality
, owl:maxCardinality
又は
owl:cardinality
を述語にもつ三つ組の目的語はいずれも,
整数0又は1を表すデータリテラルでなければならない。
OWL Liteでowl:intersectionOf
を使用する場合は,
若干ではあるが,さらに複雑である。
述語を,任意の表現の形成に使用してはならないが,
完全なクラス定義を表現するためには必要とされる。
上の制限から,owl:intersectionOf
を述語にもつ三つ組の主語は
いずれもowl:Class
でなければならないことがわかる。
OWL Liteでは,このクラスを名前付けしなければならない,
すなわち,主語が空ノードであってはならないというさらに強い制限が存在する。
owl:Thing
の使用には注意されたい。
例えば,次のOWL-RDFの断片を検討する。
<owl:Class rdf:about="#A"> <rdfs:subClassOf> <owl:Thing/> </rdfs:subClassOf> </owl:Class>
この断片は,
owl:Thing
の下位クラスであるクラスA
を記述しているのではなく,
実際には,
owl:Thing
のある匿名インスタンスの下位クラスであるクラス
A
を記述している。
したがって,これは,インスタンスとしてのクラスの使用であり,
OWL DLの範囲外である。
上で行おうとしているようなowl:Thing
の下位クラスの効果は,
次によって得られる。
<owl:Class rdf:about="#A"> <rdfs:subClassOf> <owl:Class rdf:about="http://www.w3.org/2002/07/owl#Thing"/> </rdfs:subClassOf> </owl:Class>
owl:Class
とrdfs:Class
とを混同しないように注意されたい。
次は,c
が適切な型を提供されないという事実によって,
DLの範囲にはない。
c rdf:type rdfs:Class
[1] すべてを型付けするという必要性は, 当然,OWL,RDF又はRDFS名前空間からの事物には適用されない。
[2] 厳密に言えば,特性が
owl:TransitiveProperty
,
owl:SymmetricProperty
又は
owl:InverseFunctionalProperty
であると定義される場合,
これは必要ではない。
[3] ここで例外となるものを次に示す。
x rdf:type rdfs:Class x rdf:type owl:Class
p rdf:type rdf:Property p rdf:type owl:ObjectProperty
又は
q rdf:type rdf:Property q rdf:type owl:DatatypeProperty
さらに,制限に関する例外を次に示す。
x rdf:type owl:Restriction x rdf:type rdfs:Class x rdf:type owl:Class