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:type3をもつ
他のいかなる三つ組の主語としても現れてはならない。
ノードxが
rdf:type owl:Restrictionをもつ場合,
次のとおりでなければならない。
rdf:type3
を述語にもついかなる他の三つ組の主語ともならない。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:unionOfowl:complementOfowl:oneOfowl:hasValueowl:disjointWithowl: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