OWLウェブ・オントロジー言語
セマンティクスおよび抽象構文
2項. 抽象構文

編集者:
Peter F. Patel-Schneider, Bell Labs Research, Lucent Technologies
Ian Horrocks, Department of Computer Science, University of Manchester

このドキュメントに対する正誤表を参照してください。いくつかの規範的な修正が含まれているかもしれません。

翻訳版も参照してください。


目次


2. 抽象構文(規範)

この項のOWLの構文は、OWLの交換構文を要約し、したがって、言語へのアクセスおよびその評価を容易にします。この特殊な構文は、フレーム状のスタイルを持っており、多くの小さな塊に分割されたり(ほとんどの記述論理と同様に)、ましてや、さらに多くのトリプルに分割されたりする(RDFグラフ[RDF Concepts]としてOWLを書く場合と同様に)のではなく、クラスあるいはプロパティーに関する情報のコレクションが1つの大きな構文構成子の形で提供されます。ここで使用される構文は、抽象構文に対してさえも、やや非形式的です - 一般に、順序が構成子の意味に影響しないのであればどのような場合でも、構成子の引数は順序づけされていないと考えられるべきです。

抽象構文は、ここでは、拡張BNF(Extended BNF)バージョンによって指定されます(XML[XML]に対して使用されるEBNF表記法に非常に似ています)。終端記号は引用符で記述され、非終端記号は引用符なしのボールド体で記述されます。選択肢は、垂直線(|)によって分離されるか、異なる生成物として提供されます。高々1つ生じることができる構成要素は、角括弧で囲まれ([…])、何度でも生じることができる(0を含む)構成要素は、中括弧({…})で囲まれています。空白は、ここの生成物では無視されます。

抽象構文の名前は、RDF URI参照[RDF Concepts]です。しばしば、これらの名前は、以下の名前空間の名前のうちの1つを使用して、修飾名(qualified names)へ短縮されるでしょう。

名前空間の名前名前空間
rdfhttp://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfshttp://www.w3.org/2000/01/rdf-schema#
xsdhttp://www.w3.org/2001/XMLSchema#
owlhttp://www.w3.org/2002/07/owl#

抽象構文のそれぞれの構成子の意味は、導入時には、非形式的に記述されます。これらの構成子の形式的な意味は、3項で、モデル理論セマンティクスによって与えられます。

OWLのような表現力のある言語のすべての機能が重要なユーザもいることが広く認識されている一方で、言語全体のためのツール一式をサポートしようとしているいくつかのグループにとってそのような言語が手ごわいものであるかもしれないことも理解されています。より簡単な実装のターゲットを提供するために、OWL Lite[OWL Overview]と呼ばれる、より小さな言語が定義されました。このより小さな言語は、ウェブ・アプリケーションをサポートするために重要だけれども、RDFスキーマ[RDF Schema]には不足している機能を提供することを目指して作られました。(しかし、OWL DLとOWL Liteの両方が、RDFスキーマの機能のすべてを提供するとは限らないことに注意してください。)抽象構文は、ここでOWL Lite抽象構文と呼ばれるこのより小さな言語に対しても、ここでOWL DL抽象構文と呼ばれるより完全な形式のOWLに対しても使用されます。

ここの抽象構文は、OWLの交換構文ほど一般的ではありません。特に、自己参照型の構文構成子の構築を許しません。クラス、プロパティーおよび個体が互いに素であるコレクションを形成するようなケースにおける使用も対象となります。これらは、大ざっぱに言って、OWLの推論を決定可能にするために必要な制限であり、したがって、この抽象構文は、OWL DLに対する構文であると考えられるべきです。

注:OWL LiteおよびOWL DLは、データ型がどのように扱われるかにいくらかの制限がありますが、SHIF(D)およびSHION(D)として知られている記述論理に密接に対応します。OWL Liteに対する抽象構文は、SHIF(D)に関連する共通の明示的なコンストラクタの多くを含みませんが、表現力はそのままです。

2.1. オントロジー

抽象構文におけるOWLオントロジーは、アノテーション、公理、および事実の数列を含んでいます。OWLオントロジーは、名前を持つことができます。OWLオントロジーのアノテーションは、オントロジーに関連する著作者や、他のオントロジーへのインポート参照を含む、その他の情報を記録するために使用することができます。OWLオントロジーの主要な内容は、その公理と事実に運び込まれ、オントロジーのクラス、プロパティーおよび個体に関する情報を提供します。

ontology ::= 'Ontology(' [ ontologyID ] { directive } ')'
directive ::= 'Annotation(' ontologyPropertyID ontologyID ')'
	 | 'Annotation(' annotationPropertyID URIreference ')'
         | 'Annotation(' annotationPropertyID dataLiteral ')'
         | 'Annotation(' annotationPropertyID individual ')'
         | axiom
         | fact

抽象構文では、ウェブ上のオントロジーの公表に関連する意味を伝えるために、オントロジーの名前が使用されます。したがって、これはOWLの形式的な意味の一部ではありませんが、抽象構文におけるオントロジーの名前が、それを見つけうるURIであろうということが意図されます。実際のところ、インポート・アノテーションは、ウェブ・ドキュメントを検索してOWLオントロジーとして扱うための命令です。しかし、見つからない、利用できない、そして時間依存のドキュメントなどの、ウェブのほとんどの側面は、OWLの仕様外にあり、ここで扱うのは、URIがOWLオントロジーへ「逆参照(dereferenced)」されうるということです。したがって、このドキュメントのいくつかの場所で、インポートに対するこの運用上の意味の理念化が使用されます。

オントロジーは、クラス、プロパティー、および個体に関する情報を組み込み、これらは、それぞれURI参照である識別子を持つことができます。2.3項で詳述しているように、これらの識別子のいくつかに公理を与える必要があります。

datatypeID ::= URIreference
classID ::= URIreference
individualID ::= URIreference
ontologyID ::= URIreference
datavaluedPropertyID ::= URIreference
individualvaluedPropertyID ::= URIreference
annotationPropertyID ::= URIreference
ontologyPropertyID ::= URIreference

URI参照は、1つのオントロジーにおいて、datatypeIDclassIDの両方にはなりえません。URI参照は、1つのオントロジーにおいて、1つ以上のdatavaluedPropertyIDindividualvaluedPropertyIDannotationPropertyID、あるいはontologyPropertyIDにもなりえません。しかし、後からオントロジーをOWL DL RDFグラフに翻訳することはできませんが、URI参照は、個体の識別子のみならず、プロパティーの識別子、さらにクラスあるいはデータ型の識別子になりえます。

OWLでは、データ型は、データ型に対する値空間である、データ値の集合を示します。クラスは、個体の集合を示します。プロパティーは、個体を他の情報に関連付け、また、データ値プロパティー(data-valued properties)、個体値プロパティー(individual-valued properties)、アノテーション・プロパティー(annotation properties)、およびオントロジー・プロパティー(ontology properties)の、互いに素である4つのグループに分割されます。データ値プロパティーは、個体をデータ値に関連付けます。個体値プロパティーは、個体を他の個体に関連付けます。アノテーション・プロパティーは、個体、クラス名、プロパティー名、およびオントロジー名にアノテーションを置くために使用されます。オントロジー・プロパティーは、オントロジーを他のオントロジーに関連付け、特に、他のオントロジーから情報をインポートするために使用されます。個体の識別子は、資源を参照するために使用され、データ・リテラルは、データ値を参照するために使用されます。

OWLには、2つの組み込みクラスがあり、それらは、両方ともOWL名前空間のURI参照(つまり、http://www.w3.org/2002/07/owl#で始る名前)を使用し、この場合、名前空間の名前、owlが使用されます。(このドキュメントの全体で、URI参照の略語として修飾名(qualified names)を使用します。)識別子owl:Thingを持つクラスは、すべての個体のクラスです。識別子owl:Nothingを持つクラスは、空のクラスです。両方のクラスとも、OWL Liteの一部です。

以下のXMLスキーマ・データ型[XML Schema Datatypes]は、データ型(http://www.w3.org/2001/XMLSchema#名前)(名前はデータ型のローカル名)に対するXMLスキーマの正統なURI参照によって組み込みデータ型としてOWLで使用することができます:xsd:stringxsd:booleanxsd:decimalxsd:floatxsd:doublexsd:dateTimexsd:timexsd:datexsd:gYearMonthxsd:gYearxsd:gMonthDayxsd:gDayxsd:gMonthxsd:hexBinaryxsd:base64Binaryxsd:anyURIxsd:normalizedStringxsd:tokenxsd:languagexsd:NMTOKENxsd:Namexsd:NCNamexsd:integerxsd:nonPositiveIntegerxsd:negativeIntegerxsd:longxsd:intxsd:shortxsd:bytexsd:nonNegativeIntegerxsd:unsignedLongxsd:unsignedIntxsd:unsignedShortxsd:unsignedByte、およびxsd:positiveIntegerRDFセマンティクスの5.1[RDF Semantics]で議論されているように、他の組み込みXMLスキーマ・データ型は、OWLでは問題になりえます。組み込みRDFデータ型、rdf:XMLLiteralも、OWLの組み込みデータ型です。XMLスキーマではURI参照からXMLスキーマ・データ型へ展開するための標準的な手段がないため、OWLではユーザ定義のXMLスキーマ・データ型を使用する標準的な手段はありません。

OWLには、いくつかの組み込みアノテーション・プロパティー、すなわちowl:versionInfordfs:labelrdfs:commentrdfs:seeAlso、およびrdfs:isDefinedByがあります。RDFのこれらの定義に沿って、rdfs:labelrdfs:commentは、データ・リテラルと共にしか使用できません。

いくつかの組み込みオントロジー・プロパティーもあり、それらは、owl:importsowl:priorVersionowl:backwardCompatibleWith、およびowl:incompatibleWithです。owl:importsを使用するオントロジー・アノテーションには、ターゲット・オントロジーをインポートするという、さらなる効果があります。

多くのOWL構成子がアノテーションを使用し、それは、ちょうどアノテーション命令のように、構成子のある部分に関連した情報を記録するために使用されます。

annotation ::= 'annotation(' annotationPropertyID URIreference ')'
            | 'annotation(' annotationPropertyID dataLiteral ')'
            | 'annotation(' annotationPropertyID individual ')'

2.2. 事実

OWL抽象構文には2種類の事実があります。

最初のタイプの事実は、特定の個体に関する情報について、個体が属するクラスの形で、その個体のプロパティーおよび値を加えて述べます。個体は、その個体を示し、その個体を参照ために使用できるindividualIDを与えることができます。しかし、個体はindividualIDを与えられなくても良く、そのような個体は、匿名(RDF用語での空白)であり、他の場所から直接参照することはできません。ここの構文は、rdf:nodeIDを使用せずに、RDF/XMLシンタックス[RDF Syntax]を多少反映するように設定されています。

fact ::= individual 
individual ::= 'Individual(' [ individualID ] { annotation } { 'type(' type ')' } { value } ')'
value ::= 'value(' individualvaluedPropertyID individualID ')'
        | 'value(' individualvaluedPropertyID  individual ')'
        | 'value(' datavaluedPropertyID  dataLiteral ')'

事実は、何がタイプになりうるかを除いて、OWL LiteでもOWL DL抽象構文でも同じです。OWL Liteでは、タイプはクラスIDあるいはOWL Lite制限でありえます(2.3.1.2項を参照)。

type ::= classID
       | restriction

OWL DL抽象構文では、タイプは一般的な記述でありえ、クラスIDおよびOWL Lite制限や他の構成子も含んでいます。

type ::= description

抽象構文のデータ・リテラルは、プレーンなリテラルか型付きリテラルのどちらかです。プレーンなリテラルは、正規形C(Normal Form C)のUnicodeの文字列とオプションの言語タグから構成されます(RDFプレーン・リテラル[RDF Concepts]と同様に)。型付きリテラルは、字句表現およびURI参照から構成されます(RDF型付きリテラル [RDF Concepts]と同等に)。

dataLiteral ::= typedLiteral | plainLiteral
typedLiteral ::= lexicalForm^^URIreference
plainLiteral ::= lexicalForm | lexicalForm@languageTag
lexicalForm ::= as in RDF, a unicode string in normal form C
languageTag ::= as in RDF, an XML language tag

2番目のタイプの事実は、個体の識別子を同じにするか、対で異なるものにするために使用されます。

fact ::= 'SameIndividual(' individualID individualID {individualID} ')'
      | 'DifferentIndividuals(' individualID individualID {individualID} ')'

2.3. 公理

OWL LiteとOWL DL抽象構文の最大の違いは公理において現われ、それはクラスとプロパティーに関する情報を提供するために使用されます。OWL Liteは小さな言語であるため、OWL Lite公理は最初に、2.3.1項で提供します。OWL DL公理は、2.3.2項で提供されます。OWL DL公理は、特殊なケースとしてOWL Lite公理を含みます。

公理は、その特性の部分的あるいは完全な仕様にクラスとプロパティーの識別子を関連付け、クラスとプロパティーに関する他の情報を与えるために使用されます。公理は、かつては定義と呼ばれていましたが、用語の通常の意味の定義と完全には一致せず、したがって、より中立的な名前が選ばれました。

ここで使用される構文は、いくつかの構フレーム・システムで使用される構文にいくぶん似せています。OWL Liteの各クラス公理は、より一般的なクラスのコレクションやローカル・プロパティー制限のコレクションを、制限構成子の形で含んでいます。制限構成子は、プロパティーのローカル値域、いくつの値が許されるか、そして/または、要求された値のコレクションを提供します。クラスは、これらのより一般的なクラスおよび制限の積集合と、同等になるか、サブセットになるかのどちらかです。OWL DL抽象構文では、クラス公理は記述のコレクションを含んでおり、それは、より一般的なクラス、制限、個体の集合、および記述のブール組合せでありえます。クラスは、列挙によって指定することや、同等あるいは互いに素にすることもできます。

プロパティーは、他のものと同等になるかサブプロパティーになりえ、関数型、逆関数型、対称的、あるいは推移的になることができ、グローバルな定義域および値域を与えられることができます。しかし、プロパティーに関するほとんどの情報は、制限で表現するほうがより自然で、それによってローカルの値域およびカーディナリティー情報を指定できるようになります。

クラスIDあるいはデータ型IDとして使用されるURI参照は区別されなければならず、したがって、組み込みOWLクラスおよびデータ型、およびrdfs:Literalを除いて、1つの公理を必要とします。クラスあるいはデータ型に対し、2つ以上の公理が存在しえます。抽象構文オントロジーで使用されるプロパティーは、データ値か個体値かアノテーション・プロパティーかで分類されなければなりません。したがって、プロパティーは、少なくともこの目的の公理も必要とします。オントロジーが別のオントロジーをインポートする場合、インポートされたオントロジー(および、それがインポートする任意のオントロジー、など)の公理は、これらの目的のために使用することができます。

2.3.1. OWL Lite公理

2.3.1.1. OWL Liteクラス公理

OWL Liteでは、クラスが、スーパークラスとOWL Lite制限のコレクションの積集合と、厳密に同等(完全モード(modality complete))であるか、そのサブクラス(部分モード(modality partial))であるかを述べるために、クラス公理が使用されます。クラスの使用が非推奨であることを示すことも可能です。

axiom ::= 'Class(' classID ['Deprecated'] modality { annotation } { super } ')'
modality ::= 'complete' | 'partial'
super ::= classID | restriction

OWL Liteでは、2つ以上のクラスが同等であると述べることができます。

axiom ::= 'EquivalentClasses(' classID classID { classID } ')'

データ型公理は、より単純で、データ型IDがデータ型のIDであると述べ、データ型に対してアノテーションを与える役目を務めるだけです。

axiom ::= 'Datatype(' datatypeID ['Deprecated']  { annotation } )'
2.3.1.2. OWL Lite制限

OWL Liteクラス公理では、制限は、クラスにおけるプロパティー上のローカル制約を提供するために使用されます。制限のそれぞれのallValuesFrom部分は、クラスの個体に対するプロパティーの値がすべて指定されたクラスかデータ型に属していなければならないという制約を作ります。それぞれのsomeValuesFrom部分は、指定されたクラスかデータ型に属するプロパティーに対して、少なくとも1つの値がなければならないという制約を作ります。カーディナリティー部分は、クラスにおける各個体のプロパティーに対して、どれだけの別個の値が存在するかを述べます。OWL Liteでは、許されているカーディナリティーは、0と1のみです。

制限においてどのプロパティーがカーディナリティー部分を持つことができるかの限界に関しては、2.3.1.3項を参照してください。

restriction ::= 'restriction(' datavaluedPropertyID dataRestrictionComponent ')'
            | 'restriction(' individualvaluedPropertyID individualRestrictionComponent ')'
dataRestrictionComponent ::= 'allValuesFrom(' dataRange ')'
            | 'someValuesFrom(' dataRange ')'
            | cardinality
individualRestrictionComponent ::= 'allValuesFrom(' classID ')'
            | 'someValuesFrom(' classID ')'
            | cardinality 
cardinality ::= 'minCardinality(0)' | 'minCardinality(1)'
            | 'maxCardinality(0)' | 'maxCardinality(1)'
            | 'cardinality(0)'    | 'cardinality(1)'
2.3.1.3. OWL Liteプロパティー公理

プロパティーも、フレーム状の構文を使用して指定されます。データ値プロパティーは、整数のようなデータ値に個体を関連付けます。個体値プロパティーは、個体を他の個体に関連付けます。これらの2種類のプロパティーには、スーパープロパティーを与えることができ、それによってプロパティー階層の構築が可能になります。個体値プロパティーをデータ値プロパティーのスーパープロパティーにすること、あるいはその逆は、意味をなしません。データ値および個体値プロパティーには、定義域値域を与えることもできます。プロパティーの定義域は、全くRDFSでと同様に、どの個体が述語としてプロパティーを持つステートメントの潜在的な主語かを明示します。OWL Liteでは、プロパティーの定義域はクラスです。多数の定義域の存在が可能であり、その場合、定義域のすべてに属する個体だけが潜在的な主語です。プロパティーの値域は、どの個体あるいはデータ値が、述語としてプロパティーを持つステートメントの目的語でありえるかを明示します。やはり、多数の値域の存在が可能であり、その場合、値域のすべてに属する個体あるいはデータ値だけが潜在的な目的語です。OWL Liteでは、個体値プロパティーに対する値域がクラスで、データ値プロパティーに対する値域がデータ型です。

データ値プロパティーは、(部分的に)関数型であると明示することができます、つまり、個体が与えられれば、プロパティーにおいて、その個体に対するデータ値との高々1つの関係が存在しえます。個体値プロパティーは、別のプロパティーの逆であると明示することができます。個体値プロパティーは、部分的に関数型、部分的に逆関数型、あるいは推移的であるということだけでなく、対称的であると明示することもできます。

OWL Liteにおいて推論の決定可能性を保持するためには、すべてのプロパティーがそれらにカーディナリティー制限を置くことや、関数型あるいは逆関数型の指定をすることはできません。個体値プロパティーは、次の場合、複合的です。1) 関数型あるいは逆関数型であると指定されている場合、2) それを使用するあるカーディナリティー制限が存在する場合、3) 複合的な逆を持っている、あるいは、4) 複合的なスーパープロパティーを持っている場合。複合プロパティーを推移的であると指定することはできません。

アノテーションおよびオントロジーのプロパティーは、データ値および個体値プロパティーよりはるかに単純です。これらに対する公理における唯一の情報はアノテーションです。

axiom ::= 'DatatypeProperty(' datavaluedPropertyID ['Deprecated'] { annotation } 
              { 'super(' datavaluedPropertyID ')' } ['Functional'] 
              { 'domain(' classID' ')' } { 'range(' dataRange ')' } ')'
       | 'ObjectProperty(' individualvaluedPropertyID ['Deprecated'] { annotation } 
              { 'super(' individualvaluedPropertyID ')' }
              [ 'inverseOf(' individualvaluedPropertyID ')' ] [ 'Symmetric' ] 
              [ 'Functional' | 'InverseFunctional' | 'Functional' 'InverseFunctional' | 'Transitive' ]
              { 'domain(' classID ')' } { 'range(' classID ')' } ')'
       | 'AnnotationProperty(' annotationPropertyID { annotation } ')'
       | 'OntologyProperty(' ontologyPropertyID { annotation } ')'
dataRange ::= datatypeID | 'rdfs:Literal'

以下の公理は、いくつかのプロパティーを同等にするか、あるいは、あるプロパティーを別のもののサブプロパティーにします。

axiom ::= 'EquivalentProperties(' datavaluedPropertyID datavaluedPropertyID  { datavaluedPropertyID } ')'
        | 'SubPropertyOf(' datavaluedPropertyID  datavaluedPropertyID ')'
        | 'EquivalentProperties(' individualvaluedPropertyID individualvaluedPropertyID  { individualvaluedPropertyID } ')'
        | 'SubPropertyOf(' individualvaluedPropertyID  individualvaluedPropertyID ')'

2.3.2. OWL DL公理

2.3.2.1. OWL DLクラス公理

OWL DL抽象構文は、スーパークラス、より一般的な制限、およびこれらのブール組合せが許される、OWL Liteクラス公理のより一般的なバージョンを持っています。これらの構成子は、合わせて、記述(descriptions)と呼ばれます。

axiom ::= 'Class(' classID  ['Deprecated'] modality { annotation } { description } ')'
modality ::= 'complete' | 'partial'

下記のように、OWL DL抽象構文では、個体のある集合で厳密に構成されるクラスを作ることもできます。

axiom ::= 'EnumeratedClass(' classID ['Deprecated'] { annotation } { individualID } ')'

最後に、OWL DL抽象構文では、記述のコレクションが対で互いに素であることや、同じインスタンスを持つこと、あるいはある記述が別の記述のサブクラスであることを要求することが可能です。アノテーションを欠いている場合を除いて、これらの公理の最後の2つが、すぐ上にあげた、最初のクラス公理を一般化したものであることに注意してください。

axiom ::= 'DisjointClasses(' description description { description } ')'
        | 'EquivalentClasses(' description { description } ')'
        | 'SubClassOf(' description description ')'

OWL DLでは、EquivalentClasses構成子において、たった1つの記述を持つことが可能です。これによって、オントロジーが、何にも関連していない記述を含むことが可能になり、意味論的には実用的ではありませんが、最適ではないオントロジーの編集が可能になります。

データ型公理は、OWL Liteと同じです。

axiom ::= 'Datatype(' datatypeID ['Deprecated']  { annotation } )'
2.3.2.2. OWL DL記述

OWL DL抽象構文の記述は、クラス識別子と制限を含んでいます。記述は、他の記述のブール組合せや、個体の集合でもありえます。

description ::= classID
            | restriction
            | 'unionOf(' { description } ')'
            | 'intersectionOf(' { description } ')'
            | 'complementOf(' description ')'
            | 'oneOf(' { individualID } ')'
2.3.2.3. OWL DL制限

OWL DL抽象構文の制限は、OWL Liteにおいてクラスが許される場所に記述を許し、データ型と同様にデータ値の集合を許すことにより、OWL Lite制限を一般化します。データ型とデータ値の集合の組合せは、データ値域と呼ばれます。OWL DL抽象構文では、クラスにおけるプロパティーに対し、値を与えることもできます。さらに、カーディナリティーは、0と1だけに制限されません。

restriction ::= 'restriction(' datavaluedPropertyID dataRestrictionComponent { dataRestrictionComponent } ')'
            | 'restriction(' individualvaluedPropertyID individualRestrictionComponent { individualRestrictionComponent } ')'
dataRestrictionComponent ::= 'allValuesFrom(' dataRange ')'
            | 'someValuesFrom(' dataRange ')'
            | 'value(' dataLiteral ')'
            | cardinality
individualRestrictionComponent ::= 'allValuesFrom(' description ')'
            | 'someValuesFrom(' description ')'
            | 'value(' individualID ')'
            | cardinality 
cardinality ::= 'minCardinality(' non-negative-integer ')'
            | 'maxCardinality(' non-negative-integer ')'
            | 'cardinality(' non-negative-integer ')'

OWL DL抽象構文において、データ値プロパティーの値域としてや他の場所で使用される、データ値域は、データ型あるいはデータ値の集合のどちらかです。


dataRange ::= datatypeID | 'rdfs:Literal'
            | 'oneOf(' { dataLiteral } ')'

どのプロパティーがそれらの制限においてカーディナリティー要素を持つことができるかのOWL Liteの限界は、OWL DLにもあります。

2.3.2.4. OWL DLプロパティー公理

OWL DL抽象構文のプロパティー公理は、クラスの代わりに記述を、そして、定義域と値域においてデータ型の代わりにデータ値域を許すことによって、OWL Liteプロパティー公理を一般化します。

axiom ::= 'DatatypeProperty(' datavaluedPropertyID ['Deprecated'] { annotation } 
                { 'super(' datavaluedPropertyID ')'} ['Functional']
                { 'domain(' description ')' } { 'range(' dataRange ')' } ')'
        | 'ObjectProperty(' individualvaluedPropertyID ['Deprecated'] { annotation } 
                { 'super(' individualvaluedPropertyID ')' }
                [ 'inverseOf(' individualvaluedPropertyID ')' ] [ 'Symmetric' ] 
                [ 'Functional' | 'InverseFunctional' | 'Functional' 'InverseFunctional' | 'Transitive' ]
                { 'domain(' description ')' } { 'range(' description ')' } ')'
        | 'AnnotationProperty(' annotationPropertyID { annotation } ')'
        | 'OntologyProperty(' ontologyPropertyID { annotation } ')'

どのプロパティーが関数型あるいは関数型かを指定できるかの限界は、OWL DLにもあります。

OWL Liteと同様に、以下の公理は、いくつかのプロパティーを同等にするか、1つのプロパティーを別のもののサブプロパティーにします。

axiom ::= 'EquivalentProperties(' datavaluedPropertyID datavaluedPropertyID  { datavaluedPropertyID } ')'
        | 'SubPropertyOf(' datavaluedPropertyID  datavaluedPropertyID ')'
        | 'EquivalentProperties(' individualvaluedPropertyID individualvaluedPropertyID
                                  { individualvaluedPropertyID } ')'
        | 'SubPropertyOf(' individualvaluedPropertyID  individualvaluedPropertyID ')'