CyberLibrarian

【注意】 このドキュメントは、W3CのOWL Web Ontology Language Semantics and Abstract Syntax W3C Recommendation 10 February 2004(単一ファイル版)の和訳です。
このドキュメントの正式版はW3Cのサイト上にある英語版であり、このドキュメントには翻訳に起因する誤りがありえます。誤訳、誤植などのご指摘は、訳者までお願い致します。

First Update: 2004年12月05日

W3C

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

W3C 勧告 2004年2月10日

本バージョン:
http://www.w3.org/TR/2004/REC-owl-semantics-20040210/
最新バージョン:
http://www.w3.org/TR/owl-semantics/
旧バージョン:
http://www.w3.org/TR/2003/CR-owl-semantics-20030818/
編集者:
Peter F. Patel-Schneider, Bell Labs Research, Lucent Technologies
Patrick Hayes, IHMC, University of West Florida
Ian Horrocks, Department of Computer Science, University of Manchester

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

このドキュメントの規範的な形式は複合形式のHTMLドキュメントです。

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


要約

OWL(W3Cウェブ・オントロジー・ワーキンググループによって設計されているウェブ・オントロジー言語)のこの記述は、OWLのサブ言語である、OWL DLとOWL Liteの両方に対するハイレベルな抽象構文を含んでいます。この抽象構文に記述されているOWLオントロジーに形式的な意味を与えるために、モデル理論セマンティクスを提供します。RDFグラフとしてのOWLオントロジーに形式的な意味を与えるために、RDFセマンティクスに対する拡張の形式をしているモデル理論セマンティクスも提供します(OWL Full)。抽象構文からRDFグラフへのマッピングを提供し、また、この2つのモデル理論が、抽象構文において記述することができるOWLオントロジーにおいて同じ結果を持っていることを示します。

このドキュメントのステータス

この項は、このドキュメントの公開時のステータスについて記述しています。他のドキュメントがこのドキュメントに取って代わることがありえます。現行のW3Cの刊行物およびこの技術報告の最新の改訂版のリストは、http://www.w3.org/TR/のW3C技術報告インデックスにあります。

これは、6つからなるOWL(ウェブ・オントロジー言語)のW3C勧告の1つです。2004年2月10日の公開に向けてW3Cセマンティック・ウェブ・アクティビティアクティビティ声明グループ憲章)の一部としてウェブ・オントロジー・ワーキンググループによって開発されてきたものです。

これらのドキュメントの初期バージョンで示されたOWLの設計は広くレビューされており、ワーキンググループの技術要件を満たしています。ワーキンググループは、必要に応じて変更を加えながら受理したすべてのコメントに取り組みました。勧告案バージョン以後のこのドキュメントに対する変更の詳細は、変更履歴に記述されています。

このドキュメントは、W3Cメンバーおよび他の利害関係者によりレビューされ、W3C勧告として管理者の協賛を得ました。これは安定したドキュメントであり、参照資料として使用したり、規範的な参照として別のドキュメントで引用することができます。勧告の作成におけるW3Cの役割は、仕様に注意を引き付け、広範囲な開発を促進することです。これによってウェブの機能性および相互運用性が増強されます。

コメントはpublic-webont-comments@w3.orgアーカイブ)で歓迎され、関連技術の一般的な議論はwww-rdf-logic@w3.orgアーカイブ)で歓迎されます。

実装のリストが利用可能です。

W3Cは、この事業に関するあらゆる特許の開示のリストを維持します。


目次


1. はじめに(参考情報)

このドキュメントは、OWL(ウェブ・オントロジー言語)の仕様の一部です。OWL概要[OWL Overview]は、仕様の各々の異なるドキュメントについて記述し、また、それらがどのように組み合わさるかについて記述します。

このドキュメントは、いくつかの形式のOWL(W3Cウェブ・オントロジー・ワーキンググループ(WebOnt)によって作成されているウェブ・オントロジー言語)の、いくつかの相関する標準仕様を含んでいます。最初に、2項は、OWL Lite(OWLのサブセット)およびOWL DL(OWLをよりフルに使用するものの、どのようにOWLオントロジーが構築されるかに対し、まだいくらかの制限を置く)の両者に対する、ハイレベルな抽象構文を含んでいます。これらの制限を除去すると、OWL Fullと呼ばれる、RDFと同じ構文を持つ、完全なOWL言語になります。OWLに対する規範的な交換構文はRDF/XML[RDF Syntax]であり、OWLリファレンス・ドキュメント[OWL Reference]はRDFシンタックスがOWLでどのように使用されるかを示します。しかし、OWL抽象構文からRDFグラフ[RDF Concepts]へのマッピングは、4項で提供されます。

このドキュメントは、OWLの2つの形式意味論(formal semantics)を含んでいます。これらのセマンティクスの1つ、3項で定義されているものは、抽象構文で書かれたOWLオントロジーに対する、直接的、標準的なモデル理論セマンティクスです。もう一方は、5項で定義されている、RDFグラフ形式でOWLオントロジーに対するセマンティクスを提供する、RDFセマンティクス[RDF Semantics]の語彙拡張です。この2番目のセマンティクスでは、2つのバージョンが提供されます。それらは、直接的なセマンティクスにより対応するもの(したがって、OWL DLに対するセマンティクスである)と、クラスを個体として扱う必要のある場合や、抽象構文で扱うことができないような状況で使用できるもの(したがって、OWL Fullに対するセマンティクスである)です。これらの2つのバージョンは、どのように議論領域(domain of discourse)を分割するかが異なっているだけで、実際には非常に似ています。

付録Aには、直接的なセマンティクスおよびRDFSと互換性を持っているセマンティクスが、OWLの個体、OWLのクラス、OWLのプロパティーを分離する抽象OWLオントロジー、およびRDF、RDFS、およびOWLの構造語彙に対応するOWLオントロジーにおいて同じ結果を持っているという証明(proof)が含まれています。さらに、付録Aには、OWL Fullに対するRDFS互換のセマンティクスにおける含意(entailments)が、OWL DLに対するRDFS互換のセマンティクスのすべての含意を含んでいるという証明のスケッチが含まれています。最後に、ドキュメントで定義されている様々な概念の少しの例を、付録Bで示しています。

このドキュメントは、OWLの技術に関する詳細に興味を持っている人のために書かれています。とりあえず読んでみたいという読者に対して書かれたというものではなく、恐らくそのような人は、OWLガイド[OWL Guide]を最初に読むべきでしょう。パーサーやOWLの他の構文ツールの開発者は、特に2項4項に関心を持つでしょう。推論システムやOWLの他のセマンティック・ツールの開発者は、特に3項および5項に関心を持つでしょう。


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 ')'

3. 直接モデル理論セマンティクス(規範)

このOWLのモデル理論セマンティクスは、OWL DL抽象構文(OWL Lite抽象構文を含む)のオントロジーから標準モデル理論へ直接的に展開します。これは、RDFSセマンティクスの語彙拡張である5項のセマンティクスより単純です。

3.1. 語彙と解釈

ここでは、セマンティクスは、語彙の概念で始まります。OWLオントロジーについて考える場合、語彙は、オントロジーによってインポートされるオントロジーのみならず、すべてのURI参照およびリテラルをそのオントロジーに含んでいなければなりませんが、他のURI参照およびリテラルを含むこともできます。

この項では、VOPは、組み込みOWLオントロジープロパティーに対するURI参照です。

定義: OWL語彙Vは、1組のリテラルVLおよび7組のURI参照、VC、VD、VI、VDP、VIP、VAP、およびVOから成ります。任意の語彙では、VCとVDは互いに素で、VDP、VIP、VAP、およびVOPは、対で互いに素です。VD(語彙のクラス名)は、owl:Thingおよびowl:Nothingを含んでいます。VD(語彙のデータ型名)は、組み込みOWLデータ型およびrdfs:Literalに対するURI参照を含んでいます。VAP(語彙のアノテーション・プロパティー名)は、owl:versionInfordfs:labelrdfs:commentrdfs:seeAlso、およびrdfs:isDefinedByを含んでいます。VIP(語彙の個体値プロパティー名)、VDP(語彙のデータ値プロパティー名)、およびVI(語彙の個体名)、VO(語彙のオントロジー名)には、既定のメンバーはありません。

定義: RDFと同様に、データ型dは、字句空間L(d)(1組のUnicode文字列)、値空間V(d)、および字句空間から値空間へのトータル・マッピングL2V(d)を特徴としています。

定義: データ型マップDは、xsd:stringおよびxsd:integerを適切なXMLスキーマ・データ型にマッピングする、URI参照からデータ型への部分的なマッピングです。

データ型マップは、他の組み込みOWLデータ型に対するデータ型を含むことができます。他のデータ型も含むことができますが、OWL構文には、これらのデータ型が何であるかを伝える方法が備わっていません。

定義: Dをデータ型マップとします。以下の場合、語彙VL VC、VD、VI、VDP、VIP,、VAP、VOを持つDに関する抽象OWL解釈は、1組の形式I = <R, EC, ER, L, S, LV>です(Pが、べき集合(power set)演算子である場合)。

ECは、OWLクラスおよびデータ型として使用されるURI参照に意味を与えます。ERは、OWLプロパティーとして使用されるURI参照に意味を与えます。(プロパティーrdf:typeは、非推奨に意味を与えるためにアノテーション・プロパティーに加えられます。下記を参照してください。)Lは、型付きリテラルに意味を与えます。Sは、OWL個体を示すために使用されるURI参照に意味を与え、アノテーションに意味を与えるのを助けます。不正形式のリテラル(つまり、1.5^^xsd:integerのように、その字句形式がデータ型では無効であるもの)に置かれた要件をすべて満たすことができる解釈がないことに注意してください。

Sは、リテラルを自身に(本質的に)マッピングすることにより、VLにおいてプレーンなリテラルに拡張されます、つまり、S("l") = l(言語タグのないプレーンなリテラルIに対して)、およびS("l"@t) = <l,t>(言語タグのないプレーンなリテラルIに対して)。Sは、Lの使用により型付きリテラル(S(l) = L(l))に拡張されます(型付きリテラルIに対して)。

3.2. 組み込み構成要素の解釈

ECは、EC拡張テーブルと同様に、記述、データ範囲、個体、値、およびアノテーションの構文構成要素に拡張されます。

EC拡張テーブル
抽象構文解釈(ECの値)
complementOf(c) O - EC(c)
unionOf(c1 … cn) EC(c1) ∪ … ∪ EC(cn)
intersectionOf(c1 … cn) EC(c1) ∩ … ∩ EC(cn)
oneOf(i1 … in), for ij individual IDs {S(i1), …, S(in)}
oneOf(v1 … vn), for vj literals {S(v1), …, S(vn)}
restriction(p x1 … xn), for n > 1 EC(restriction(p x1)) ∩…∩EC(restriction(p xn))
restriction(p allValuesFrom(r)) {x ∈ O | <x,y> ∈ ER(p) implies y ∈ EC(r)}
restriction(p someValuesFrom(e)) {x ∈ O | ∃ <x,y> ∈ ER(p) ∧ y ∈ EC(e)}
restriction(p value(i)), for i an individual ID {x ∈ O | <x,S(i)> ∈ ER(p)}
restriction(p value(v)), for v a literal {x ∈ O | <x,S(v)> ∈ ER(p)}
restriction(p minCardinality(n)) {x ∈ O | card({y ∈ O∪LV : <x,y> ∈ ER(p)}) ≥ n}
restriction(p maxCardinality(n)) {x ∈ O | card({y ∈ O∪LV : <x,y> ∈ ER(p)}) ≤ n}
restriction(p cardinality(n)) {x ∈ O | card({y ∈ O∪LV : <x,y> ∈ ER(p)}) = n}
Individual(annotation(p1 o1)annotation(pk ok)
    type(c1)type(cm) pv1 … pvn)
EC(annotation(p1 o1)) ∩ … EC(annotation(pk ok)) ∩
EC(c1) ∩ … ∩ EC(cm) ∩ EC(pv1) ∩…∩ EC(pvn)
Individual(i annotation(p1 o1)annotation(pk ok)
    type(c1)type(cm) pv1 … pvn)
{S(i)} ∩ EC(annotation(p1 o1)) ∩ … EC(annotation(pk ok)) ∩
EC(c1) ∩ … ∩ EC(cm) ∩ EC(pv1) ∩…∩ EC(pvn)
value(p Individual()) {x ∈ O | ∃ y∈EC(Individual()) : <x,y> ∈ ER(p)}
value(p id) for id an individual ID {x ∈ O | <x,S(id)> ∈ ER(p) }
value(p v) for v a literal {x ∈ O | <x,S(v)> ∈ ER(p) }
annotation(p o) for o a URI reference {x ∈ R | <x,S(o)> ∈ ER(p) }
annotation(p Individual(…)) {x ∈ R | ∃ y ∈ EC(Individual(…)) : <x,y> ∈ ER(p) }

3.3. 公理と事実の解釈

抽象OWLの解釈Iは、公理と事実の解釈テーブルで示されるような、OWLの公理と事実を満たします。テーブルでは、公理と事実のオプション部分は、角括弧([…])内で示され、対応するオプションの条件を持ち、これも角括弧内で示されます。

公理と事実の解釈
命令解釈に関する条件
Class(c [Deprecated] complete
    annotation(p1 o1)annotation(pk ok)
    descr1 … descrn)
[ <S(c),S(owl:DeprecatedClass)> ∈ ER(rdf:type) ]
S(c) ∈ EC(annotation(p1 o1)) … S(c) ∈ EC(annotation(pk ok))
EC(c) = EC(descr1) ∩…∩ EC(descrn)
Class(c [Deprecated] partial
    annotation(p1 o1)annotation(pk ok)
    descr1 … descrn)
[ <S(c),S(owl:DeprecatedClass)> ∈ ER(rdf:type) ]
S(c) ∈ EC(annotation(p1 o1)) … S(c) ∈ EC(annotation(pk ok))
EC(c) ⊆ EC(descr1) ∩…∩ EC(descrn)
EnumeratedClass(c [Deprecated]
    annotation(p1 o1)annotation(pk ok)
    i1 … in)
[ <S(c),S(owl:DeprecatedClass)> ∈ ER(rdf:type) ]
S(c) ∈ EC(annotation(p1 o1)) … S(c) ∈ EC(annotation(pk ok))
EC(c) = { S(i1), …, S(in) }
Datatype(c [Deprecated]
    annotation(p1 o1)annotation(pk ok) )
[ <S(c),S(owl:DeprecatedClass)> ∈ ER(rdf:type) ]
S(c) ∈ EC(annotation(p1 o1)) … S(c) ∈ EC(annotation(pk ok))
EC(c) ⊆ LV
DisjointClasses(d1 … dn) EC(di) ∩ EC(dj) = { } for 1 ≤ i < j ≤ n
EquivalentClasses(d1 … dn) EC(di) = EC(dj) for 1 ≤ i < j ≤ n
SubClassOf(d1 d2) EC(d1) ⊆ EC(d2)
DatatypeProperty(p [Deprecated]
    annotation(p1 o1)annotation(pk ok)
    super(s1)super(sn)
    domain(d1)domain(dn) range(r1)range(rn)
    [Functional])
[ <S(c),S(owl:DeprecatedProperty)> ∈ ER(rdf:type) ]
S(p) ∈ EC(annotation(p1 o1)) … S(p) ∈ EC(annotation(pk ok))
ER(p) ⊆ O×LV ∩ ER(s1) ∩…∩ ER(sn) ∩
       EC(d1)×LV ∩…∩ EC(dn)×LV ∩ O×EC(r1) ∩…∩ O×EC(rn)
[ER(p) is functional]
ObjectProperty(p [Deprecated]
    annotation(p1 o1)annotation(pk ok)
    super(s1)super(sn)
   
domain(d1)domain(dn) range(r1)range(rn)
   
[inverse(i)] [Symmetric]
    [
Functional] [ InverseFunctional]
    [
Transitive])
[ <S(c),S(owl:DeprecatedProperty)> ∈ ER(rdf:type)]
S(p) ∈ EC(annotation(p1 o1)) … S(p) ∈ EC(annotation(pk ok))
ER(p) ⊆ O×O ∩ ER(s1) ∩…∩ ER(sn) ∩
        EC(d1O ∩…∩ EC(dnOO×EC(r1) ∩…∩ O×EC(rn)
[ER(p) is the inverse of ER(i)] [ER(p) is symmetric]
[ER(p) is functional] [ER(p) is inverse functional]
[ER(p) is transitive]
AnnotationProperty(p annotation(p1 o1)annotation(pk ok)) S(p) ∈ EC(annotation(p1 o1)) … S(p) ∈ EC(annotation(pk ok))
OntologyProperty(p annotation(p1 o1)annotation(pk ok)) S(p) ∈ EC(annotation(p1 o1)) … S(p) ∈ EC(annotation(pk ok))
EquivalentProperties(p1 … pn) ER(pi) = ER(pj) for 1 ≤ i < j ≤ n
SubPropertyOf(p1 p2) ER(p1) ⊆ ER(p2)
SameIndividual(i1 … in) S(ij) = S(ik) for 1 ≤ j < k ≤ n
DifferentIndividuals(i1 … in) S(ij) ≠ S(ik) for 1 ≤ j < k ≤ n
Individual([i] annotation(p1 o1)annotation(pk ok)
   type(c1)type(cm) pv1 … pvn)
EC(Individual([i] annotation(p1 o1)annotation(pk ok)
   type(c1)type(cm) pv1 … pvn)) is nonempty

3.4. オントロジーの解釈

2項で見たように、OWLオントロジーはアノテーションを持つことができ、それは自身のセマンティック条件を必要とします。このローカルの意味のほかに、owl:importsアノテーションは、別のOWLオントロジーの内容を現在のオントロジーにインポートします。インポートされたオントロジーは、あるとすれば、インポート構成要素の引数を名前として持っているものです。(このようなインポートの処理は、ウェブの問題とは無縁です。OWLオントロジーの名前の使用は、その名前をウェブ上のオントロジーのロケーションにすることを意図していますが、これはこの形式的な処理の範囲外です。)

定義: Dをデータ型マップとします。抽象OWLの解釈I(VLVC、VD、VI、VDP、VIP、VAP、VOから成る語彙を持つDに関する)は、以下の場合に限り、OWLオントロジーOを満たします

  1. クラスID(データ型ID、個体ID、データ値プロパティーID、個体値プロパティーID、アノテーション・プロパティーID、アノテーションID、オントロジーID)として使用されるOの各URI参照が、VC(それぞれ、VD、VI、VDP、VIP、VAP、VO)に属している、
  2. Oの各リテラルが、VLに属している、
  3. Iが、オントロジー・アノテーションを除いて、Oの各命令を満たしている、
  4. 形式Annotation(p v)の各オントロジー・アノテーションに対し、<o,S(v)> ∈ ER(p)、かつ、Oが名前nを持つ場合にS(n) = oであるような、<o,S(owl:Ontology)> ∈ ER(rdf:type)を持つ、あるo ∈ Rが存在している、そして、
  5. Iが、Oのowl:importsアノテーション命令で言及された各オントロジーを満たしている。

定義: Iがコレクションにおける各オントロジーおよび公理と事実を満たすような、Dに関するある解釈Iが存在する場合に限り、抽象OWLオントロジーのコレクションおよび公理と事実は、データ型マップDに関して整合性があります

定義: Oにおいて各オントロジーおよび公理と事実を満たすマップDに関する各解釈がO'も満たす場合、抽象OWLオントロジーのコレクションOおよび公理と事実は、データ型マップDに関する抽象OWLオントロジーあるいは公理か事実O'を、含意(entail)します。


4. RDFグラフへのマッピング(規範)

ドキュメントのこの項は、2項で提供されるOWL DLおよびOWL Liteに対する抽象構文から、OWLに対する交換構文(すなわちRDF/XML[RDF Syntax])へのマッピングを提供します。このマッピング(また、その逆)は、抽象構文と交換構文の規範的な関係を提供します。このマッピングがOWL DLオントロジーの意味を保持するということが、5項および付録A.1で示されます。4.2項は、OWL DLおよびOWL LiteというOWLの方言を、抽象構文オントロジーからのマッピングの結果であるRDFグラフであると定義します。

OWL参照記述[OWL Reference]で指定されているように、OWLに対する交換構文はRDF/XML[RDF Syntax]です。さらに、RDF/XMLにおけるOWLオントロジーの意味は、RDF/XMLドキュメントのRDF解析の結果であるRDFグラフ[RDF Concepts]からのみ決定されます。したがって、抽象構文形式のOWLオントロジーを交換構文に翻訳する一つの方法は、各命令の変換をトリプルのコレクションに与えることによります。すべてのOWL Lite構成要素は完全な抽象構文における特例であるため、変換はOWL DLバージョンにのみ提供されます。

OWL DLは、RDFグラフのサブセットから成る抽象構文および具象構文に関してセマンティクスを定義します。従って、特定のRDF/XMLドキュメントおよびそれらの対応するグラフに、特定の抽象構文オントロジーを関連付ける必要があります。この項では、抽象構文オントロジーとRDFグラフの間の多対多関係を定義します。これは、1組の非決定的なマッピング規則を使用することで行えます。したがって、特定のRDFグラフにセマンティクスを適用するためには、マッピング規則に基いたそのグラフに対応する抽象構文オントロジーの1つを見つけ、その抽象オントロジーにセマンティクスを適用する必要があります。マッピングは、特定のRDFグラフに対応する抽象オントロジーがそうであるのと同様に、特定の抽象オントロジーに対応するRDFグラフのどれもが同じ意味を持つように設計されています。さらに、対応する抽象構文形式を持っていないRDFグラフにこのプロセスを適用することができないため、マッピング規則は1組のグラフを暗黙に定義し、RDF/XMLにおけるOWL DLを構文的に特徴づけます。

ここで使用されるトリプルに対する構文は、RDFセマンティクス[RDF Semantics]で使用されているものです。この変形においては、修飾名が許されます。RDFセマンティクスで詳述されているように、この構文を標準的なものに変えるためには、標準的なOWL名前空間を使用して、ローカル名と名前空間名を連結することにより、標準的なRDFの方法で修飾名をURI参照に拡張するだけです。

4.1. RDFグラフへの翻訳

変換表は、抽象構文をOWL交換構文に変換する変換規則を示します。少数ではあるが、特にDifferentIndividuals構成要素に対し、様々な変換規則が存在するケースもあります。そのような場合には、いずれかの規則を選ぶことができ、決定論的でない翻訳をもたらします。他の少数のケースでは、特にクラスおよびプロパティー公理に対し、生成されるかどうかが不確かなトリプルが存在します。これらのトリプルは、[opt]というフラグを立てることにより示されます。いくつかのケースでは、2つのトリプルのうちの1つが生成されなければなりません。これは、ORでトリプルを分離することによって示されます。これらの非決定性により、より多くのRDFグラフの生成が可能になります。

の左列は、抽象構文(S)を示し、中央列はそのトリプル(T(S))への変換を示し、右列は変換(M(T(S)))の主要ノードの識別子を示します(いくつかの命令として生じる構文構成要素の場合)。構成要素の繰り返しは、description1… descriptionnのような省略形を用いてリストアップされ、この形式によって、構文中で許されるn個のすべての値に対する変換の仕様が容易になります。抽象構文のオプション部分(角括弧で囲まれた)は、変換のオプション部分(角括弧で示された)です。同様に、組み込みOWLデータ型組み込みOWLクラス組み込みOWLアノテーション・プロパティー、および組み込みOWLオントロジー・プロパティーのいずれかに対して、それの翻訳における第1のrdf:typeトリプルか、それに対する任意の公理かはオプションです。

表のいくつかの変換は命令に対するものです。他の変換は命令の部分に対するものです。最後の変換は、シーケンスに対するもので、これらは抽象構文の一部ではありません。この最後の変換は、他の変換のいくつかのを、よりコンパクトで、読みやすくするために使用されます。

多くの命令に関しては、これらの変換規則は、他の変換規則を使用して、命令の構成要素の変換を要求します。構成要素の変換が、トリプルの主題、述語、あるいは目的語、オプションのトリプルとしてさえも使用される場合、構成要素の変換は生産の一部(しかし、1つの生産に対して一度だけ)であり、その変換の主要ノードはそのトリプルで使用されるべきです。

ここでは、Bノード識別子は、各変換に対してローカルであると考えなければなりません。つまり、異なる識別子はそれぞれの変換規則の実施のために使用されるべきです。名前のないオントロジーは、それらの主要ノードとしてbノードを与えられ、名前を持つオントロジーはその名前をそれらの主要ノードとして使用し、両方のケースにおいて、このノードは下記でOと呼ばれます。

トリプルへの変換
抽象構文(およびシーケンス)- S 変換 - T(S) 主要ノード - M(T(S))
Ontology(O directive1 … directiven) O rdf:type owl:Ontology .
T(directive1) … T(directiven)
Ontology(directive1 … directiven) O rdf:type owl:Ontology .
T(directive1) … T(directiven)
Annotation(ontologyPropertyID URIreference) ontologyPropertyID rdf:type owl:OntologyProperty .
O ontologyPropertyID URIreference .
URIreference rdf:type owl:Ontology .
Annotation(annotationPropertyID URIreference) annotationPropertyID rdf:type owl:AnnotationProperty .
annotationPropertyID rdf:type rdf:Property . [opt]
O annotationPropertyID URIreference .
Annotation(annotationPropertyID dataLiteral) annotationPropertyID rdf:type owl:AnnotationProperty .
annotationPropertyID rdf:type rdf:Property . [opt]
O annotationPropertyID T(dataLiteral) .
Annotation(annotationPropertyID individual) annotationPropertyID rdf:type owl:AnnotationProperty .
annotationPropertyID rdf:type rdf:Property . [opt]
O annotationPropertyID T(individual) .
rdfs:Literal rdfs:Literal
datatypeID datatypeID rdf:type rdfs:Datatype . datatypeID
classID classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt]
classID
individualID individualID
datavaluedPropertyID datavaluedPropertyID rdf:type owl:DatatypeProperty .
datavaluedPropertyID rdf:type rdf:Property . [opt]
datavalued-
PropertyID
individualvaluedPropertyID individualvaluedPropertyID rdf:type owl:ObjectProperty . [opt if there is a triple in the translation of the ontology that types the individualvaluedPropertyID as owl:InverseFunctionalProperty, owl:TransitiveProperty, or owl:SymmetricProperty] .
individualvaluedPropertyID rdf:type rdf:Property . [opt]
individualvalued-
PropertyID
dataLiteral dataLiteral dataLiteral
Individual(iID annotation1 … annotationm
      
type(type1)type(typen)
      value(pID1 v1)value(pIDk vk))
iID T(annotation1) … iID T(annotationm)
iID rdf:type T(type1) . … iID rdf:type T(typen) .
iID T(pID1) T(v1) . … iID T(pIDk) T(vk) .
iID
Individual(annotation1 … annotationm
      type(type1)type(typen)
      value(pID1 v1)value(pIDk vk))
(With at least one type.)
_:x T(annotation1) … _:x T(annotationm)
_:x rdf:type T(type1) . … _:x rdf:type T(typen) .
_:x T(pID1) T(v1) . … _:x T(pIDk) T(vk) .
_:x
Individual(annotation1 … annotationm
      value(pID1 v1)value(pIDk vk))
_:x T(annotation1) … _:x T(annotationm)
_:x rdf:type owl:Thing .
_:x T(pID1) T(v1) . … _:x T(pIDk) T(vk) .
_:x
SameIndividual(iID1 … iIDn) iIDi owl:sameAs iIDi+1 . 1≤i<n
iIDi owl:sameAs iIDj . [opt] 1≤i≠j≤n
DifferentIndividuals(iID1 … iIDn) iIDi owl:differentFrom iIDj . OR
iIDj owl:differentFrom iIDi . 1≤i<j≤n
iIDj owl:differentFrom iIDi . [opt] 1≤i≠j≤n
DifferentIndividuals(iID1 … iIDn) _:x rdf:type owl:AllDifferent .
_:x owl:distinctMembers T(SEQ iID1 … iIDn) .
Class(classID [Deprecated] partial
      annotation1 … annotationm
      description1 … descriptionn)
classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt]
[classID rdf:type owl:DeprecatedClass .]
classID T(annotation1) … classID T(annotationm)
classID rdfs:subClassOf T(description1) . …
classID rdfs:subClassOf T(descriptionn) .
Class(classID [Deprecated] complete
      annotation1 … annotationm
      description1 … descriptionn)
classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt]
[classID rdf:type owl:DeprecatedClass .]
classID T(annotation1) … classID T(annotationm)
classID owl:intersectionOf T(SEQ description1…descriptionn) .
Class(classID [Deprecated] complete
      annotation1 … annotationm
      description)
classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt]
[classID rdf:type owl:DeprecatedClass .]
classID T(annotation1) … classID T(annotationm)
classID owl:equivalentClass T(description) .
Class(classID [Deprecated] complete
      annotation1 … annotationm
      unionOf(description1 … descriptionn))
classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt]
[classID rdf:type owl:DeprecatedClass .]
classID T(annotation1) … classID T(annotationm)
classID owl:unionOf T(SEQ description1…descriptionn) .
Class(classID [Deprecated] complete
      annotation1 … annotationm
      complementOf(description))
classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt]
[classID rdf:type owl:DeprecatedClass .]
classID T(annotation1) … classID T(annotationm)
classID owl:complementOf T(description) .
EnumeratedClass(classID [Deprecated]
      annotation1 … annotationm
      iID1 … iIDn)
classID rdf:type owl:Class .
classID rdf:type rdfs:Class . [opt]
[classID rdf:type owl:DeprecatedClass .]
classID T(annotation1) … classID T(annotationm) .
classID owl:oneOf T(SEQ iID1…iIDn) .
DisjointClasses(description1 … descriptionn) T(descriptioni) owl:disjointWith T(descriptionj) . OR
T(descriptionj) owl:disjointWith T(descriptioni) . 1≤i<j≤n
T(descriptioni) owl:disjointWith T(descriptionj) . [opt] 1≤i≠j≤n
EquivalentClasses(description1 … descriptionn) T(descriptioni) owl:equivalentClass T(descriptionj) .
for all <i,j> in G where G is a set of pairs over {1,...,n}x{1,...,n}
that if interpreted as an undirected graph forms a connected graph for {1,...,n}
SubClassOf(description1 description2) T(description1) rdfs:subClassOf T(description2) .
Datatype(datatypeID [Deprecated]
      annotation1 … annotationm )
datatypeID rdf:type rdfs:Datatype .
datatypeID rdf:type rdfs:Class . [opt]
[datatypeID rdf:type owl:DeprecatedClass .]
datatypeID T(annotation1) … datatypeID T(annotationm)
unionOf(description1 … descriptionn) _:x rdf:type owl:Class .
_:x rdf:type rdfs:Class . [opt]
_:x owl:unionOf T(SEQ description1…descriptionn) .
_:x
intersectionOf(description1 … descriptionn) _:x rdf:type owl:Class .
_:x rdf:type rdfs:Class . [opt]
_:x owl:intersectionOf T(SEQ description1…descriptionn) .
_:x
complementOf(description) _:x rdf:type owl:Class .
_:x rdf:type rdfs:Class . [opt]
_:x owl:complementOf T(description) .
_:x
oneOf(iID1 … iIDn) _:x rdf:type owl:Class .
_:x rdf:type rdfs:Class . [opt]
_:x owl:oneOf T(SEQ iID1…iIDn) .
_:x
oneOf(v1 … vn) _:x rdf:type owl:DataRange .
_:x rdf:type rdfs:Class . [opt]
_:x owl:oneOf T(SEQ v1 … vn) .
_:x
restriction(ID component1 … componentn)
(With at least two components)
_:x rdf:type owl:Class .
_:x rdf:type rdfs:Class . [opt]
_:x owl:intersectionOf
  T(SEQ(restriction(ID component1) … restriction(ID componentn))) .
_:x
restriction(ID allValuesFrom(range)) _:x rdf:type owl:Restriction .
_:x rdf:type owl:Class . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owl:onProperty T(ID) .
_:x owl:allValuesFrom T(range) .
_:x
restriction(ID someValuesFrom(required)) _:x rdf:type owl:Restriction .
_:x rdf:type owl:Class . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owl:onProperty T(ID) .
_:x owl:someValuesFrom T(required) .
_:x
restriction(ID value(value)) _:x rdf:type owl:Restriction .
_:x rdf:type owl:Class . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owl:onProperty T(ID) .
_:x owl:hasValue T(value) .
_:x
restriction(ID minCardinality(min)) _:x rdf:type owl:Restriction .
_:x rdf:type owl:Class . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owl:onProperty T(ID) .
_:x owl:minCardinality "min"^^xsd:nonNegativeInteger .
_:x
restriction(ID maxCardinality(max)) _:x rdf:type owl:Restriction .
_:x rdf:type owl:Class . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owl:onProperty T(ID) .
_:x owl:maxCardinality "max"^^xsd:nonNegativeInteger .
_:x
restriction(ID cardinality(card)) _:x rdf:type owl:Restriction .
_:x rdf:type owl:Class . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owl:onProperty T(ID) .
_:x owl:cardinality "card"^^xsd:nonNegativeInteger .
_:x
DatatypeProperty(ID [Deprecated]
      annotation1 … annotationm
      super(super1)super(supern)
      domain(domain1)
      domain(domaink)
      range(range1)
      range(rangeh)
      [Functional])
ID rdf:type owl:DatatypeProperty .
ID rdf:type rdf:Property . [opt]
[ID rdf:type owl:DeprecatedProperty .]
ID T(annotation1) … ID T(annotationm)
ID rdfs:subPropertyOf T(super1) . …
ID rdfs:subPropertyOf T(supern) .
ID rdfs:domain T(domain1) . …
ID rdfs:domain T(domaink) .
ID rdfs:range T(range1) . …
ID rdfs:range T(rangeh) .
[ID rdf:type owl:FunctionalProperty . ]
ObjectProperty(ID [Deprecated]
      annotation1 … annotationm
      super(super1)super(supern)
      domain(domain1)
      domain(domaink)
      range(range1)
      range(rangeh)
      [inverseOf(inverse)]
      [Functional |
       InverseFunctional |
       Transitive])
      [Symmetric]
ID rdf:type owl:ObjectProperty .
    [opt if one of the last three triples is included]
ID rdf:type rdf:Property . [opt]
[ID rdf:type owl:DeprecatedProperty .]
ID T(annotation1) … ID T(annotationm)
ID rdfs:subPropertyOf T(super1) . …
ID rdfs:subPropertyOf T(supern) .
ID rdfs:domain T(domain1) . …
ID rdfs:domain T(domaink) .
ID rdfs:range T(range1) . …
ID rdfs:range T(rangeh) .
[ID owl:inverseOf T(inverse) .]
[ID rdf:type owl:FunctionalProperty . ]
[ID rdf:type owl:InverseFunctionalProperty . ]
[ID rdf:type owl:TransitiveProperty . ]
[ID rdf:type owl:SymmetricProperty . ]
AnnotationProperty(ID
      annotation1 … annotationm)
ID rdf:type owl:AnnotationProperty .
ID rdf:type rdf:Property . [opt]
ID T(annotation1) … ID T(annotationm)
OntologyProperty(ID
      annotation1 … annotationm)
ID rdf:type owl:OntologyProperty .
ID rdf:type rdf:Property . [opt]
ID T(annotation1) … ID T(annotationm)
EquivalentProperties(dvpID1 … dvpIDn) T(dvpIDi) owl:equivalentProperty T(dvpIDi+1) . 1≤i<n
SubPropertyOf(dvpID1 dvpID2) T(dvpID1) rdfs:subPropertyOf T(dvpID2) .
EquivalentProperties(ivpID1 … ivpIDn) T(ivpIDi) owl:equivalentProperty T(ivpIDi+1) . 1≤i<n
SubPropertyOf(ivpID1 ivpID2) T(ivpID1) rdfs:subPropertyOf T(ivpID2) .
annotation(annotationPropertyID URIreference) annotationPropertyID URIreference .
annotationPropertyID rdf:type owl:AnnotationProperty .
annotationPropertyID rdf:type rdf:Property . [opt]
annotation(annotationPropertyID dataLiteral) annotationPropertyID T(dataLiteral) .
annotationPropertyID rdf:type owl:AnnotationProperty .
annotationPropertyID rdf:type rdf:Property . [opt]
annotation(annotationPropertyID individual) annotationPropertyID T(individual) .
annotationPropertyID rdf:type owl:AnnotationProperty .
annotationPropertyID rdf:type rdf:Property . [opt]
SEQ rdf:nil
SEQ item1…itemn _:l1 rdf:type rdf:List . [opt]
_:l1 rdf:first T(item1) . _:l1 rdf:rest _:l2 .

_:ln rdf:type rdf:List . [opt]
_:ln rdf:first T(itemn) . _:ln rdf:rest rdf:nil .
_:l1

上記の予約された語彙(reserved vocabulary)を使用しないいくつかのOWL抽象オントロジーを同等のRDFグラフへマッピングすることができるため、この変換は単射ではありません。しかし、これが起こりうる唯一のケースは、構成要素が、より大きな1つのものと同じ効果を持ついくつかのDisjointClasses公理のような、同じ意味を持つ場合です。望めば、正統な逆変換を定義することができるでしょう。

4.2. RDFグラフ形式のOWL DLおよびOWL Liteオントロジーの定義

RDFグラフ形式のOWL LiteおよびDLのオントロジーについて考える場合、ある語彙を、OWLクラス、プロパティー、あるいは個体として使用しないように注意しなければなりません。これが行われない場合、組み込み定義やこの語彙の使用(RDFあるいはOWL仕様における)によって、OWLオントロジーの情報が増大するでしょう。RDF語彙のいくつかだけがこのカテゴリーに適合し、rdf:subjectのようなRDF語彙のいくつかはRDFの仕様によってほとんどあるいは全く意味を与えられず、RDF仕様書によって与えられた意味と一致している限り、使用しても問題にはなりません。

定義: RDFで許されていない語彙は、rdf:typerdf:Propertyrdf:nilrdf:Listrdf:firstrdf:restrdfs:domainrdfs:rangerdfs:Resourcerdfs:Datatyperdfs:Classrdfs:subClassOfrdfs:subPropertyOfrdfs:memberrdfs:Containerおよびrdfs:ContainerMembershipPropertyです。OWLで許されていない語彙は、owl:AllDifferentowl:allValuesFromowl:AnnotationPropertyowl:cardinalityowl:Classowl:complementOfowl:DataRangeowl:DatatypePropertyowl:DeprecatedClassowl:DeprecatedPropertyowl:differentFromowl:disjointWithowl:distinctMembersowl:equivalentClassowl:equivalentPropertyowl:FunctionalPropertyowl:hasValueowl:intersectionOfowl:InverseFunctionalPropertyowl:inverseOfowl:maxCardinalityowl:minCardinalityowl:ObjectPropertyowl:oneOfowl:onPropertyowl:Ontologyowl:OntologyPropertyowl:Restrictionowl:sameAsowl:someValuesFromowl:SymmetricPropertyowl:TransitiveProperty、およびowl:unionOfです。許されていない語彙は、RDFで許されていない語彙OWLで許されていないの和集合です。

定義: クラス限定語彙は、rdf:Statementrdf:Seqrdf:Bag、およびrdf:Altです。データ型限定語彙は、組み込みOWLデータ型です。プロパティー限定語彙は、rdf:subjectrdf:predicaterdf:object、および、すべてのコンテナ・メンバーシップ・プロパティー、つまり、rdf:_1rdf:_2、…です。

定義: 以下の場合、抽象構文形式のOWL DLオントロジーのコレクションおよび公理と事実Oは、分離された語彙を持ちます。

  1. Oのオントロジーは、総合すれば、クラスID、データ型ID、個体ID、個体値プロパティーID、データ値プロパティーID、アノテーション・プロパティーID、オントロジー・プロパティーID、あるいはオントロジーIDのうちの1つ以上としてURI参照を使用しません。
  2. Oのオントロジーは、総合すれば、すべての個体IDにタイプを提供します。
  3. Oのオントロジーは、アノテーションの値としての場合を除き、クラスIDとしてクラス限定語彙(class-only vocabulary)のみを使用し、データ型IDとしてデータ型限定語彙(datatype-only vocabulary)のみを使用し、データ範囲においてrdfs:Literalのみを使用し、datavaluedProperty ID、individualvaluedProperty ID、あるいはannotationProperty IDとしてプロパテイー限定語彙(property-only vocabulary)のみを使用し、クラスIDとして組み込みクラス(built-in classes)のみを使用し、データ型IDとして組み込みデータ型(built-in datatypes)のみを使用し、annotationProperty IDとして組み込みアノテーション・プロパティー(built-in annotation properties)のみを使用し、ontologyProperty IDとして組み込みオントロジー・プロパティー(built-in ontology properties)のみを使用し、どの許されていない語彙にも言及しません。

定義: 分離された語彙を持つ抽象構文形式のOWL DLオントロジーのコレクションおよび公理と事実の、上記のトリプルへの変換の結果と同じ(少し緩和した定義は以下を参照)である場合、RDFグラフはRDFグラフ形式のOWL DLオントロジーです。RDFグラフがRDFグラフ形式のOWL DLオントロジーかどうかを決定する目的で、カーディナリティー制限で、"1"^^xsd:integerのような構文を使用することが、そのようにコード化されたデータ値が負でない整数である限り、明示的に許されています。

定義: Oの内容が抽象構文形式のOWL Liteオントロジーあるいは公理か事実であるという点を除いて、上記のようである場合、RDFグラフはRDFグラフ形式のOWL Liteオントロジーです。


5. RDF互換モデル理論セマンティクス(規範)

このOWLのモデル理論セマンティクスは、RDFセマンティクス[RDF Semantics]で定義されているセマンティクスの拡張で、RDFのOWLセマンティック拡張を定義します。

:この項で定義されているOWL DLのセマンティクスと、3項で定義されている直接モデル理論セマンティクスの間には強い対応性があります(5.4項定理1および定理2を参照)。しかし、これらの2つの形式の間に矛盾が発じた場合は、直接モデル理論セマンティクスが優先します。

5.1. OWLおよびRDFの宇宙

すべてのOWLの語彙は、「OWL宇宙(OWL universe)」上で定義され、RDF宇宙の一部を3つの部分(つまり、OWLの個体、クラス、プロパティー)に分割したものです。owl:Thingのクラス拡張は、OWL宇宙の個体を含みます。owl:Classのクラス拡張は、OWL宇宙のクラスを含みます。owl:ObjectPropertyowl:DatatypePropertyowl:AnnotationProperty、およびowl:OntologyProperty のクラス拡張の和集合は、OWL宇宙のプロパティーを含みます。

OWLには2つの異なる形式の使い方があります。OWL Fullと呼ばれる、もっと自由な形式では、OWL宇宙の3つの部分は、それらのRDFの相当物(すなわち、rdfs:Resourcerdfs:Class、およびrdf:Propertyのクラス拡張)と同一視されます。OWL Fullでは、RDFと同様に、OWL宇宙の要素は、個体にもクラスにもなりえ、事実においては、個体、クラス、およびプロパティーにさえなりえます。ここでOWL DLと呼ぶ、より限定的な形式では、この3つの部分は、それらのRDFの相当物とは異なっており、さらに、対で互いに素です。より限定的なOWL DLの形式では、含意の決定可能性を得るために多少の表現力を犠牲にします。OWLのこの2つの形式は、DAML+OILモデル理論セマンティクスのRDFセマンティクスへの単純な翻訳に欠けている含意を提供します。

2つの形式の実際上の主な違いは、現実にURI参照がOWL宇宙の適切な部分になっていることを保証するために必要なケアにあります。OWL Fullでは、ケアは必要ありません。OWL DLでは、ローカライズの情報は、使用されるURI参照の多くに提供されなければなりません。OWL Fullでは、これらのローカライズの仮定はすべて自明的に真であり、OWL抽象構文を使用する場合には無視することもでき、これはOWL DLと緊密な対応関係にあります。しかし、トリプルでOWL DLを書く場合は、語彙のどの要素がOWL宇宙のどの部分に属しているかに細心の注意を払われなければなりません。

この項の全体にわたって、OWL語彙は、OWLで許されていない語彙に加え、組み込みクラス組み込みアノテーション・プロパティー、および組み込みオントロジー・プロパティーです。

5.2. OWLの解釈

OWL DLとOWL Fullのセマンティクスは、非常に類似しています。したがって、これらのセマンティックスの共通部分を最初に紹介し、違いについては後で紹介します。

RDFセマンティクス[RDF Semantics]から、RDFとRDFSの語彙およびデータ型マップDを含んでいるURI参照とリテラルの集合Vに対し、VのD解釈は、I = < RI, PI, EXTI, SI, LI, LVI >のタプルです。RIは、議論領域あるいは宇宙、つまり、URI参照およびVにおけるリテラルの外延を含んでいる非空の集合です。 PIは、RI(Iのプロパティー)のサブセットです。EXTIは、プロパティーに意味を与えるために使用され、PIからP(RI × RI)へのマッピングです。SIは、VにおけるURI参照から、RIにおけるそれらの外延へのマッピングです。LIは、Vにおける型付きリテラルから、RIにおけるそれらの外延へのマッピングです。LVIは、Dに少なくともUnicode文字列集合、Unicode文字列と言語タグの対の集合、およびDにおける各データ型の値空間を含んでいる、RIのサブセットです。クラスCIの集合は、CI = { x ∈RI | <x,SI(rdfs:Class)> ∈ EXTI(SI(rdf:type)) }と定義され、CIからP(RI)へのCEXTIのマッピングは、CEXTI(c) = { x∈RI | <x,c>∈EXTI(SI(rdf:type)) }と定義されます。 RDFセマンティクスで詳述されているように、D解釈は、他のいくつかの条件を満たさなければなりません。例えば、EXTI(SI(rdfs:subClassOf))は、推移的な関係でなければならず、すべてのデータ型のクラス拡張はLVIのサブクラスでなければなりません。

定義: Drdf:XMLLiteralxsd:integer、およびxsd:stringに対するデータ型を含むデータ型マップとします。VがRDFとRDFSの語彙およびOWL語彙を含んでいる場合、語彙VのOWL解釈、I = < RI, PI, EXTI, SI, LI, LVI >は、この項のすべての制約を満たすVのD解釈です。

注:抽象構文において記述を構築するOWL語彙の要素は、(他の)セマンティックの関係に相当するOWL語彙の要素とは異なる処理を与えられます。前者はonly-ifセマンティック条件および内包原理(comprehension principles)を持ち、後者はif-and-only-ifセマンティック条件を持っています。前者のonly-ifセマンティック条件は、セマンティックの逆説およびセマンティクスに関する他の問題を防ぐために必要です。前者の内包原理、および後者のif-and-only-ifセマンティック条件は、有用な含意が有効であるために必要です。

OWL宇宙および構文カテゴリーの部分に関する条件

If E is then
SI(E)∈ CEXTI(SI(E))= and
owl:Class CIIOCIOC⊆CI This defines IOC as the set of OWL classes.
rdfs:Datatype IDCIDC⊆CI This defines IDC as the set of OWL datatypes.
owl:RestrictionCIIORIOR⊆IOC This defines IOR as the set of OWL restrictions.
owl:Thing IOCIOT IOT⊆RI and IOT ≠ ∅ This defines IOT as the set of OWL individuals.
owl:Nothing IOC{}
rdfs:Literal IDCLVILVI⊆RI
owl:ObjectProperty CIIOOPIOOP⊆PI This defines IOOP as the set of OWL individual-valued properties.
owl:DatatypeProperty CIIODPIODP⊆PI This defines IODP as the set of OWL datatype properties.
owl:AnnotationProperty CIIOAPIOAP⊆PI This defines IOAP as the set of OWL annotation properties.
owl:OntologyProperty CIIOXPIOXP⊆PI This defines IOXP as the set of OWL ontology properties.
owl:Ontology CIIX This defines IX as the set of OWL ontologies.
owl:AllDifferent CIIAD
rdf:List ILIL⊆RI This defines IL as the set of OWL lists.
rdf:nilIL
"l"^^d CEXTI(SI(d)) SI("l"^^d) ∈ LVI Typed literals are well-behaved in OWL.

OWL組み込み構文クラスおよびプロパティー

I(owl:FunctionalProperty)I(owl:InverseFunctionalProperty)I(owl:SymmetricProperty)I(owl:TransitiveProperty)、I(owl:DeprecatedClass)、およびI(owl:DeprecatedProperty) は、CIにあります。

I(owl:equivalentClass)、I(owl:disjointWith)、I(owl:equivalentProperty)、 I(owl:inverseOf)、I(owl:sameAs)、I(owl:differentFrom), I(owl:complementOf)、I(owl:unionOf), I(owl:intersectionOf)、I(owl:oneOf), I(owl:allValuesFrom)、I(owl:onProperty), I(owl:someValuesFrom)、I(owl:hasValue), I(owl:minCardinality)、I(owl:maxCardinality)、I(owl:cardinality)、およびI(owl:distinctMembers)は、すべてPIにあります。

I(owl:versionInfo)、I(rdfs:label)、I(rdfs:comment)、I(rdfs:seeAlso)、およびI(rdfs:isDefinedBy)は、すべてIOAPにあります。I(owl:imports)、I(owl:priorVersion)、I(owl:backwardCompatibleWith)、およびI(owl:incompatibleWith)は、すべてIOXPにあります。

OWLクラス、データ型、およびプロパティーの特性

If E is then if e∈CEXTI(SI(E)) then
owl:ClassCEXTI(e)⊆IOT Instances of OWL classes are OWL individuals.
rdfs:DatatypeCEXTI(e)⊆LVI
owl:DataRange CEXTI(e)⊆LVI OWL dataranges are special kinds of datatypes.
owl:ObjectPropertyEXTI(e)⊆IOT×IOT Values for individual-valued properties are OWL individuals.
owl:DatatypePropertyEXTI(e)⊆IOT×LVI Values for datatype properties are literal values.
owl:AnnotationPropertyEXTI(e)⊆IOT×(IOT∪LVI) Values for annotation properties are less unconstrained.
owl:OntologyPropertyEXTI(e)⊆IX×IX Ontology properties relate ontologies to other ontologies.
If E is then c∈CEXTI(SI(E)) iff c∈IOOP∪IODP and
owl:FunctionalProperty <x,y1>, <x,y2> ∈ EXTI(c) implies y1 = y2 Both individual-valued and datatype properties can be functional properties.
If E is then c∈CEXTI(SI(E)) iff c∈IOOP and
owl:InverseFunctionalProperty <x1,y>, <x2,y>∈EXTI(c) implies x1 = x2 Only individual-valued properties can be inverse functional properties.
owl:SymmetricProperty <x,y> ∈ EXTI(c) implies <y, x>∈EXTI(c) Only individual-valued properties can be symmetric properties.
owl:TransitiveProperty <x,y>, <y,z>∈EXTI(c) implies <x,z>∈EXTI(c) Only individual-valued properties can be transitive properties.

rdfs:subClassOfrdfs:subPropertyOfrdfs:domain、およびrdfs:rangeに対するIf-and-only-if条件

If E is then for<x,y>∈EXTI(SI(E)) iff
rdfs:subClassOf x,y∈IOC CEXTI(x) ⊆ CEXTI(y)
rdfs:subPropertyOf x,y∈IOOP EXTI(x) ⊆ EXTI(y)
rdfs:subPropertyOf x,y∈IODP EXTI(x) ⊆ EXTI(y)
rdfs:domain x∈IOOP∪IODP,y∈IOC <z,w>∈EXTI(x) implies z∈CEXTI(y)
rdfs:range x∈IOOP∪IODP,y∈IOC∪IDC <w,z>∈EXTI(x) implies z∈CEXTI(y)

同等に関連するOWL語彙の特性

If E is then <x,y>∈EXTI(SI(E)) iff
owl:equivalentClass x,y∈IOC and CEXTI(x)=CEXTI(y)
owl:disjointWith x,y∈IOC and CEXTI(x)∩CEXTI(y)={}
owl:equivalentProperty x,y∈IOOP∪IODP and EXTI(x) = EXTI(y)
owl:inverseOf x,y∈IOOP and <u,v>∈EXTI(x) iff <v,u>∈EXTI(y)
owl:sameAs x = y
owl:differentFrom x ≠ y

ブール組合せおよび集合に関連するOWL語彙の条件

以下のような、n=0 and l1=SI(rdf:nil) or n>0 and l1∈IL and ∃ l2, …, ln ∈ ILの場合に限り、我々は、l1がCの上のy1,…,ynのシーケンスであると述べるでしょう。
<l1,y1>∈EXTI(SI(rdf:first)), y1∈C, <l1,l2>∈EXTI(SI(rdf:rest)), …,
<ln,yn>∈EXTI(SI(rdf:first)), yn∈C, and <ln,SI(rdf:nil)>∈EXTI(SI(rdf:rest))。

If E is then <x,y>∈EXTI(SI(E)) iff
owl:complementOf x,y∈ IOC and CEXTI(x)=IOT-CEXTI(y)
owl:unionOf x∈IOC and y is a sequence of y1,…yn over IOC and CEXTI(x) = CEXTI(y1)∪…∪CEXTI(yn)
owl:intersectionOf x∈IOC and y is a sequence of y1,…yn over IOC and CEXTI(x) = CEXTI(y1)∩…∩CEXTI(yn)
owl:oneOf x∈CI and y is a sequence of y1,…yn over IOT or over LVI and CEXTI(x) = {y1,..., yn}

owl:oneOfのさらなる条件

If E isand then if <x,l>∈EXTI(SI(E)) then
owl:oneOfl is a sequence of y1,…yn over LVI x∈IDC
owl:oneOfl is a sequence of y1,…yn over IOT x∈IOC

OWL制限の条件

If then x∈IOR, y∈IOC∪IDC, p∈IOOP∪IODP, and CEXTI(x) =
<x,y>∈EXTI(SI(owl:allValuesFrom))) ∧
<x,p>∈EXTI(SI(owl:onProperty)))
{u∈IOT | <u,v>∈EXTI(p) implies v∈CEXTI(y) }
<x,y>∈EXTI(SI(owl:someValuesFrom))) ∧
<x,p>∈EXTI(SI(owl:onProperty)))
{u∈IOT | ∃ <u,v>∈EXTI(p) such that v∈CEXTI(y) }
If then x∈IOR, y∈IOT∪LVI, p∈IOOP∪IODP, and CEXTI(x) =
<x,y>∈EXTI(SI(owl:hasValue))) ∧
<x,p>∈EXTI(SI(owl:onProperty)))
{u∈IOT | <u, y>∈EXTI(p) }
If then x∈IOR, y∈LVI, y is a non-negative integer, p∈IOOP∪IODP, and CEXTI(x) =
<x,y>∈EXTI(SI(owl:minCardinality))) ∧
<x,p>∈EXTI(SI(owl:onProperty)))
{u∈IOT | card({v ∈ IOT ∪ LV : <u,v>∈EXTI(p)}) ≥ y }
<x,y>∈EXTI(SI(owl:maxCardinality))) ∧
<x,p>∈EXTI(SI(owl:onProperty)))
{u∈IOT | card({v ∈ IOT ∪ LV : <u,v>∈EXTI(p)}) ≤ y }
<x,y>∈EXTI(SI(owl:cardinality))) ∧
<x,p>∈EXTI(SI(owl:onProperty)))
{u∈IOT | card({v ∈ IOT ∪ LV : <u,v>∈EXTI(p)}) = y }

理解条件(原理)

最初の2つの理解条件は、いくつかのOWLの構成要素で使用される有限シーケンスの存在を要求します。3番目の理解条件は、owl:AllDifferentのインスタンスの存在を要求します。残りの理解条件は、適切なOWL記述およびデータ範囲の存在を要求します。

If there exists then there exists l1,…,ln ∈ IL with
x1, …, xn ∈ IOC <l1,x1> ∈ EXTI(SI(rdf:first)), <l1,l2> ∈ EXTI(SI(rdf:rest)), …
<ln,xn> ∈ EXTI(SI(rdf:first)), <ln,SI(rdf:nil)> ∈ EXTI(SI(rdf:rest))
x1, …, xn ∈ IOT∪LVI <l1,x1> ∈ EXTI(SI(rdf:first)), <l1,l2> ∈ EXTI(SI(rdf:rest)), …
<ln,xn> ∈ EXTI(SI(rdf:first)), <ln,SI(rdf:nil)> ∈ EXTI(SI(rdf:rest))
If there exists then there exists y with
l, a sequence of x1,…,xn over IOT
with xi≠xj for 1≤i<j≤n
y∈IAD, <y,l>∈EXTI(SI(owl:distinctMembers))
If there exists then there exists y with
l, a sequence of x1,…,xn over IOC y∈IOC, <y,l> ∈ EXTI(SI(owl:unionOf))
l, a sequence of x1,…,xn over IOC y∈IOC, <y,l> ∈ EXTI(SI(owl:intersectionOf))
l, a sequence of x1,…,xn over IOT y∈IOC, <y,l> ∈ EXTI(SI(owl:oneOf))
l, a sequence of x1,…,xn over LVI y∈IDC, <y,l> ∈ EXTI(SI(owl:oneOf))
If there exists then there exists y ∈ IOC with
x ∈ IOC <y,x> ∈ EXTI(SI(owl:complementOf))
If there exists then there exists y ∈ IOR with
x ∈ IOOP∪IODP ∧ w ∈ IOC ∪ IDC <y,x> ∈ EXTI(SI(owl:onProperty)) ∧
<y,w> ∈ EXTI(SI(owl:allValuesFrom))
x ∈ IOOP∪IODP ∧ w ∈ IOC ∪ IDC <y,x> ∈ EXTI(SI(owl:onProperty)) ∧
<y,w> ∈ EXTI(SI(owl:someValuesFrom))
x ∈ IOOP∪IODP ∧ w ∈ IOT ∪ LVI <y,x> ∈ EXTI(SI(owl:onProperty)) ∧
<y,w> ∈ EXTI(SI(owl:hasValue))
x ∈ IOOP∪IODP ∧ w ∈ LVI ∧ w is a non-negative integer <y,x> ∈ EXTI(SI(owl:onProperty)) ∧
<y,w> ∈ EXTI(SI(owl:minCardinality))
x ∈ IOOP∪IODP ∧ w ∈ LVI ∧ w is a non-negative integer <y,x> ∈ EXTI(SI(owl:onProperty)) ∧
<y,w> ∈ EXTI(SI(owl:maxCardinality))
x ∈ IOOP∪IODP ∧ w ∈ LVI ∧ w is a non-negative integer <y,x> ∈ EXTI(SI(owl:onProperty)) ∧
<y,w> ∈ EXTI(SI(owl:cardinality))

5.3. OWL Full

OWL Fullでは、OWL宇宙の一部がRDFの類似物と同じであることを強いるという条件が、共通の条件に加わります。これらの新しい条件は、共通の条件と強い相互作用があります。例えば、OWL Fullでは、IOTはすべてのRDF議論領域であるため、リストの2番目の理解条件は、リストのリストを含む、あらゆる種類のリストを生成します。

定義: 語彙VのOWL Full解釈は、以下の条件を満たすOWL解釈です(OWL解釈がデータ型マップと関連があることを思い出してください)。

IOT = RI
IOOP = PI
IOC = CI

定義: KをRDFグラフのコレクションとします。x owl:imports u形式の任意のKの要素におけるすべてのトリプルである場合に限り、Kは閉じたインポートであり、このとき、Kは、uにおいてRDFグラフへのアクセスが可能なRDF/XMLドキュメント(もしあれば)のRDF解析の結果であるグラフを含んでいます。RDFグラフのコレクションのインポート閉包は、そのグラフを含んでいるRDFグラフの最小の閉じたインポートのコレクションです。

定義: KおよびQをRDFグラフのコレクションとし、Dをデータ型マップとします。このとき、KにおいてすべてのRDFグラフを満たす(RDFとRDFS語彙およびOWL語彙を含む任意の語彙Vの)Dに関するすべてのOWL Ful解釈が、QにおいてすべてのRDFグラフも満たす場合に限り、Dに関してKはQをOWL Full含意しますKにおいてすべてのRDFグラフを満たす、あるOWL Full解釈が存在する場合に限り、KはOWL Fullで整合性があります

5.4. OWL DL

OWL DLでは、議論領域をいくつかの互いに素である部分へ分離して、5.2項の条件が加わります。この分離には、2つの結果があります。最初に、議論領域のOWL部分は、述語(クラスとプロパティー)および個体が互いに素である、標準の第1階述語論理になります。次に、OWL DL解釈のOWL部分は、特定の表現力のある記述論理に対する記述論理解釈として見ることができます。

定義: 語彙VのOWL DL解釈は、下記の条件(OWL解釈がデータ型マップに関連があることを思い出してください)を満たすOWL解釈です。

LVI、IOT、IOC、IDC、IOOP、IODP、IOAP、IOXP、IL、およびIXはすべて対で互いに素。
許されていない語彙4.2項)のvに対し、SI(v) ∈ RI - (LVI∪IOT∪IOC∪IDC∪IOOP∪IODP∪IOAP∪IOXP∪IL∪IX)。

OWL DLの含意は、OWL Fullの含意と同様に定義されます。

定義: KおよびQをRDFグラフのコレクションとし、Dをデータ型マップとします。このとき、KにおいてすべてのRDFグラフを満たす(RDFとRDFS語彙およびOWL語彙を含む任意の語彙Vの)Dに関するすべてのOWL DL解釈が、QにおいてすべてのRDFグラフも満たす場合に限り、Dに関してKはQをOWL DL含意しますKにおいてすべてのRDFグラフを満たす、あるOWL DL解釈が存在する場合に限り、KはOWL DLで整合性があります

直接モデル理論セマンティクスとOWL DLセマンティクスの間には、強い対応性があります(しかし、何らかの矛盾が生じた場合には、直接モデル理論セマンティクスが優先します—5項の冒頭のを参照してください)。基本的に、抽象構文で書くことができるオントロジーは、それが別のものを直接セマンティクスで含意する場合に限り、別のものをOWL DL含意します。この基礎的な話には、例えば、概念、プロパティーおよび個体が干渉せず、インポートが同じように機能するように配置するための、語彙の分割に関連する多くの問題があります。

対応が有効であるためには、特定の名前を持つ抽象構文のオントロジーと、そのURIのウェブで入手可能なドキュメントとの間に何らかの関係がなければなりません。この関係は、ここのセマンティックスの範囲外であり、したがって、別途準備しなければなりません。ウェブの一時的で移動的な側面を無視しているため、この関係もウェブの理想にすぎません。

定義: Tを、抽象構文から4.1項のRDFグラフへのマッピングとします。Oを、抽象構文形式のOWL DLオントロジーのコレクションおよび公理と事実とします。Oの任意のオントロジーのインポート命令における、任意のURI、uに対し、uのウェブ上でアクセス可能なドキュメントのRDF解析がT(K)に帰着する場合に限り、Oは閉じたインポートと呼ばれ、ここでKは名前uを持つOにおけるオントロジーです。

定理1: OおよびO'を、その和集合が分離された語彙4.2項)を持つような、閉じたインポートである抽象構文形式のOWL DLオントロジーのコレクションおよび公理と事実とします。xsd:stringおよびxsd:integerを適切なXMLスキーマ・データ型へマッピングし、rdf:XMLLiteralに対するRDFマッピングを含む、データ型マップDを与えられたとすれば、Oの翻訳(4.1項)がDに関してO'の翻訳をOWL DL含意する場合に限り、OはDに関してO'を含意します。
証明は、付録A.1に含まれています。

これの単純な結果としては、xsd:stringおよびxsd:integerを適切なXMLスキーマ・データ型へマッピングし、rdf:XMLLiteralに対するRDFマッピングを含む、データ型マップDを与えられたとすれば、Oの翻訳がDに関して整合性がある場合に限り、OはDに関して整合性があります。

OWL DL含意とOWL Full含意の間にも対応性があります。

定理2: OおよびO'を、その和集合が分離された語彙4.2項)を持つような、閉じたインポートである抽象構文形式のOWL DLオントロジーのコレクションおよび公理と事実とします。xsd:stringおよびxsd:integerを適切なXMLスキーマ・データ型へマッピングし、rdf:XMLLiteralに対するRDFマッピングを含む、データ型マップDを与えられたとすれば、Oの翻訳がDに関してO'の翻訳をOWL DL含意する場合、Oの翻訳はDに関してO'の翻訳をOWL Full含意します。証明のスケッチは、付録A.2に含まれています。


付録A. 証明(参考情報)

この付録には、ドキュメントの5項に含まれる定理の証明が含まれています。

名称: この付録の全体にわたって、Dは、すべての組み込みOWLデータ型およびrdf:XMLLiteralに対するデータ型を含むデータ型マップ3.1項)で、Tは、4.1項の抽象OWLオントロジーからRDFグラフへのマッピングです。そして、VBは組み込みOWL語彙です。さらに、語彙中のプレーンなリテラルについては言及しません。

注: この付録の全体にわたって、すべての解釈は、データ型マップDに関するのもです。したがって、すべての結果はDに関するものです。構築に関する分かりきったことの詳細の一部は省略しています。

A.1 抽象OWLとOWL DLの対応

この項では、3項の抽象OWLオントロジーに対する直接モデル理論(ここでは、直接モデル理論と呼ばれる)および5項のOWL DLセマンティクス(ここでは、OWL DLモデル理論と呼ばれる)の2つのセマンティクスの、あるOWLオントロジーでの対応を紹介します。

定義: 上記のDに関しては、分離されたOWL語彙4.2項)は、V' = VO + VC + VD + VI + VOP + VDP + VAP + VXPと記述される、V'の互いに素の分割を用いて、ここでさらに1組のURI参照V'(許されていない語彙(4.2項)と素の関係である)へ形式化され、ここでは、組み込みOWLクラスがVCにあり、Dとrdfs:Literalのすべてのデータ型名に対するURI参照がVDにあり、OWL組み込みアノテーション・プロパティーがVAPにあり、そして、 OWL組み込みオントロジー・プロパティーがVXPにあります。

定義: 分離されたOWL語彙の解釈V' = VO + VC + VD + VI + VOP + VDP + VAP + VXP(T(V')と記述)は、以下の形式のすべてのトリプルから成ります。
v rdf:type owl:Ontology(v ∈ VOに対し)、
v rdf:type owl:Class(v ∈ VCに対し)、
v rdf:type rdfs:Datatype(v ∈ VDに対し)、
v rdf:type owl:Thing(v ∈ VIに対し)、
v rdf:type owl:ObjectProperty(v ∈ VOPに対し)、
v rdf:type owl:DatatypeProperty(v ∈ VDPに対し)、
v rdf:type owl:AnnotationProperty(v ∈ VAPに対し)、および
v rdf:type owl:OntologyProperty(v ∈ VXPに対し)。

定義: 分離された語彙4項)を持つ、抽象構文形式のOWL DLオントロジーのコレクションおよび公理と事実、0(2項)は、以下のように、ここでさらに分離された新しい概念の語彙V = VO + VC + VD + VI + VOP + VDP + VAP + VXPで形式化されます。

このとき、証明される定理は、OおよびO'を、それらの和集合が分離された語彙を持っているような、閉じたインポートである、抽象構文形式のOWL DLオントロジーのコレクションおよび公理と事実とします。このとき、T(O)がT(O')をOWL DL含意する場合に限り、OはO'を直接含意します。

A.1.1 記述への対応

補助定理1: V' = VO + VC + VD + VI + VOP + VDP + VAP + VXPを分離されたOWL語彙とします。V = VO ∪ VC ∪ VD ∪ VI ∪ VOP ∪ VDP ∪ VAP ∪ VXP ∪をVBとします。I'= <R,EC,ER,L,S,LV>をV'の直接解釈とします。LVI = LVであれば、I = <RI,PI,EXTI,SI,LI,LVI>をT(V')を満たすVのOWL DL解釈とします。CEXTIがその通常の意味を持っているものとし、かつ、いつものように、任意の構文構成要素をその表示にマッピングするようにIをオーバーロード(overload)させます。もし、

である場合、任意の抽象OWL記述あるいはV'を超えるデータ範囲である、dに対し、

  1. IはT(d)を直接満たし、
  2. I+AがT(d)をOWL DLで満たす、RIへT(d)のすべての空白ノードをマッピングする任意のAに対し、
    1. CEXTI(I+A(M(T(d)))) = EC(d)、
    2. dが記述である場合、I+A(M(T(d)))∈CEXTI(SI(owl:Class))で、
    3. dがデータ範囲である場合、I+A(M(T(d)))∈CEXTI(SI(rdfs:Datatype))です。

証明:

補助定理の証明は、構造帰納法(structural induction)によります。証明の全体にわたって、IOT = CEXTI(I(owl:Thing))、IOC = CEXTI(I(owl:Class))、IDC = CEXTI(I(rdfs:Datatype))、IOOP = CEXTI(I(owl:ObjectProperty))、IODP = CEXTI(I(owl:DatatypeProperty))、そしてIL = CEXTI(I(rdf:List))とします。

帰納法を機能させるためには、サブ構成要素T(d)を持つ記述またはデータ範囲である、任意のdに対し、他のサブ構成要素からのトリプルといかなる空白ノードも共有しない、それぞれのサブ構成要素に対するトリプルを含んでいることを示す必要があります。これは、Tの規則から容易に立証することができます。

p∈VOPである場合、Iはp∈IOOPを満たします。このとき、IはOWL DL解釈であるため、Iは<p,I(owl:Thing)>∈EXTI(I(rdfs:domain))および<p,I(owl:Thing)>∈EXTI(I(rdfs:range))を満たします。したがって、IはT(p)を満たします。p∈VDPの場合も同様です。

基本事例: v ∈ VC(owl:Thingおよびowl:Nothingを含む)
v∈VC、かつ、IがT(V)を満たすため、I(v)∈CEXTI(I(owl:Class))です。IがOWL DL解釈CEXTI(I(v))⊆IOTであるため、よって<I(v),I(owl:Thing)>∈EXTI(I(rdfs:subClassOf))です。したがって、IはT(v)をOWL DLで満たします。M(T(v))がvであるため、CEXTI(I(M(T(v))))=EC(v)です。最終的に、以上から、I(v)∈IOCです。
基本事例: v ∈ VD(rdfs:Literalを含む)
v∈VD、かつ、IがT(V)を満たすため、I(v)∈CEXTI(I(rdfs:Datatype))です。IがOWL DL解釈CEXTI(I(v))⊆LVIであるため、よって<I(v),I(rdfs:Literal)>∈EXTI(I(rdfs:subClassOf))です。したがって、IはRDF互換でT(v)を満たします。M(T(v))がvであるため、CEXTI(I(M(T(v))))=EC(v)です。最終的に、以上から、I(v)∈IDCです。
基本事例: d=oneOf(i1…in)(ijが個体IDsである場合)
1≤j≤nに対し、ij∈VI、かつ、IがT(V)を満たすため、I(ij)∈IOTです。このとき、シーケンスに対する第2の内包原理は、IOT上のI(i1),…,I(in)のシーケンスである、l∈ILが存在することを要求します。IOT上のI(i1),…,I(in)のシーケンスである任意のlに対し、oneOfに対する内包原理は、<y,l> ∈ EXTI(IS(owl:oneOf))であるような、y∈CEXTI(I(rdfs:Class))が存在することを要求します。oneOfの第3の特性から、y∈IOCです。したがって、IはT(d)を満たします。T(d)を満たす任意のI+Aに対し、CEXTI(I+A(M(T(d)))) = {I(i1),…,I(in)} = EC(d)です。最終的に、I+A(M(T(d)))∈IOCです。
基本事例: d=oneOf(v1…vn)(viがデータ・リテラルである場合)
I(vj)∈LVIであるため、このとき、シーケンスに対する第2の内包原理は、LVIの上のI(v1),…,I(vn)のシーケンスである、あるl∈ILが存在することを要求します。LVI上のI(v1),…,I(vn)シーケンスである任意のlに対し、oneOfに対する内包原理は、<y,l> ∈ EXTI(IS(owl:oneOf))であるような、あるy∈CEXTI(I(rdfs:Class))が存在することを要求します。oneOfの第2の特性から、y∈IOCです。したがって、IはT(d)を満たします。T(d)を満たす任意のI+Aに対し、CEXTI(I+A(M(T(d)))) = {I(i1),…,I(in)} = EC(d)です。最終的に、I+A(M(T(d)))∈IDCです。
基本事例: d=restriction(p value(i))(p∈VOP∪VDP、かつ、iがindividualIDの条件で)
p∈VOP∪VDPであるため、以上から、IはT(p)を満たします。IがT(V')を満たすため、I(p)∈IOOP∪IODPです。i∈VI、かつ、IがT(V')を満たすため、I(i)∈IOTです。制限に対する内包原理から、IはT(d)を満たします。I+AがT(d)を満たすような任意のAに対し、CEXTI(I+A(M(T(d)))) = { x∈IOT | <x,I(i)> ∈ EXTI(p) } = { x∈R | <x,S(i)> ∈ ER(p) } = EC(d)です。最終的に、I+A(M(T(d)))∈IOCです。
基本事例: d=restriction(p value(i))(p∈VOP∪VDP、かつ、iが型付きデータ値の条件で)
同様。
基本事例: d=restriction(p minCardinality(n))(p∈VOP∪VDP、かつ、nが負でない整数の条件で)
同様。
基本事例: d=restriction(p maxCardinality(n))(p∈VOP∪VDP、かつ、nが負でない整数の条件で)
同様。
基本事例: d=restriction(p Cardinality(n))(p∈VOP∪VDP、かつ、nが負でない整数の条件で)
同様。
帰納的事例: d=complementOf(d')
帰納法の仮定(induction hypothesis)から、IはT(d')を満たします。d'が記述であるため、帰納法の仮定から、I+AがT(d')を満たし、I+A(M(T(d'))) = EC(d')、かつI+A(M(T(d')))∈IOCであるような、領域要素にT(d')のすべての空白ノードをマッピングする、マッピングAが存在します。このとき、complementOfに対する内包原理は、I+Aが<y,e>∈EXTI(I(owl:complementOf))を満たすような、y∈IOCが存在することを要求し、よってIはT(d)を満たします。T(d)を満たす任意のI+Aに対し、CEXTI(I+A(M(T(d)))) = IOT-CEXTI(I+A(M(T(d)))) = R-EC(d') = EC(d)です。最終的に、I+A(M(T(d)))∈IOCです。
帰納的事例: d = unionOf(d1 … dn)
帰納法の仮定から、Iは、1≤i≤nに対し、diを満たし、よって、I+AiがT(di)を満たすような、領域要素にT(di)のすべての空白ノードをマッピングする、マッピングAiが存在します。T(di)の空白ノードがi≠jに対するT(dj)の空白ノードと互いに素であるため、I+A1+…+Anであり、よってIはT(di)∪…∪T(dn)を満たします。それぞれのdiは記述であり、よって帰納法の仮定から、I+A1+…+An(M(T(di)))∈IOCです。このとき、シーケンスに対する第1の内包原理は、IOC上のI+A1+…+An(M(T(d1))),…、I+A1+…+An(M(T(dn)))のシーケンスである、l∈ILが存在することを要求します。このとき、unionOfに対する内包原理は、<y,l>∈EXTI(I(owl:unionOf))であるような、y∈IOCが存在することを要求し、よってIはT(d)を満たします。
T(d)を満たす任意のI+Aに対し、I+AはT(di)を満たし、よってCEXTI(I+A(di)) = EC(di))です。このとき、CEXTI(I+A(M(T(d)))) = CEXTI(I+A(d1))∪…∪CEXTI(I+A(dn)) = EC(d1)∪…∪EC(dn) = EC(d)です。最終的に、I(M(T(d)))∈IOCです。
帰納的事例: d = intersectionOf(d1 … dn)
同様。
帰納的事例: d = restriction(p x1 x2 … xn)
p∈VOP∪VDPであるため、以上から、IはT(p)を満たします。帰納法の仮定から、Iは、1≤i≤nに対し、restriction(p xi)を満たし、よって、I+AiがT(restriction(p xi))を満たすような、領域要素にT(restriction(p xi))のすべての空白ノードをマッピングする、マッピングAiが存在します。T(restriction(p xi))の空白ノードがi≠jに対するT(restriction(p xj))の空白ノードと互いに素であるため、I+A1+…+Anであり、よってIはT(restriction(p x1 … xn))を満たします。それぞれのrestriction(p xi)は記述であり、よって帰納法の仮定から、M(T(restriction(p xi)))∈IOCです。このとき、シーケンスに対する第1の内包原理は、IOC上のI+A1+…+An(M(T(restriction(p xi)))),…,I+A1+…+An(M(T(restriction(p xi))))のシーケンスである、あるl∈ILが存在することを要求します。このとき、intersectionOfに対する内包原理は、<y,l>∈EXTI(I(owl:intersectionOf))であるような、y∈IOCが存在することを要求し、よってIはT(d)を満たします。
T(d)を満たす任意のI+Aに対し、I+AはT(di)を満たし、よってCEXTI(I+A(di)) = EC(di))です。このとき、CEXTI(I+A(M(T(d)))) = CEXTI(I+A(restriction(p xi)))∩…∩ CEXTI(I+A(restriction(p xn))) = EC(restriction(p xi))cap;…∩EC(restriction(p xi)) = EC(d)です。最終的に、I(M(T(d)))∈IOCです。
帰納的事例: d = restriction(p allValuesFrom(d'))(p∈VOP∪VDP、かつ、d'が記述の条件で)
p∈VOP∪VDPであるため、以上から、IはT(p)を満たします。帰納法の仮定から、IはT(d')を満たします。d'が記述であるため、帰納法の仮定から、I+AがT(d')を満たすような領域要素にT(d')のすべての空白ノードをマッピングする、任意のマッピングAは、I+A(M(T(d'))) = EC(d')およびI+A(M(T(d')))∈IOCを持っています。p∈VOP∪VDP、かつ、IがT(V')を満たすため、I(p)∈IOOP∪IODPです。このとき、allValuesFrom制限に対する内包原理は、IがT(d)を満たすことを示す形で、T(d')あるいはT(p)にないT(d)のトリプルをIが満たすことを要求します。T(d)を満たす任意のI+Aに対し、CEXTI(I+A(M(T(d)))) = {x∈IOT | ∀ y∈IOT : <x,y>∈EXTI(p)は、y∈CEXTI(M(T(d')))} = {x∈R | ∀ y∈Rを意味し、<x,y>∈ER(p)は、y∈EC(d')} = EC(d)を意味します。最終的に、I+A(M(T(d)))∈IOCです。
帰納的事例: d = restriction(p someValuesFrom(d))(p∈VOP∪VDP、かつ、d'が記述の条件で)
同様。
帰納的事例: d = restriction(p allValuesFrom(d))(p∈VOP∪VDP、かつ、d'がデータ範囲の条件で)
同様。
帰納的事例: d = restriction(p someValuesFrom(d))(p∈VOP∪VDP、かつ、d'がデータ範囲の条件で)
同様。

補助定理1.1: V'、V、I'、およびIを補助定理1と同様とします。dをV'上の抽象OWL個体構成要素とします(Individual(…)形式の)。このとき、I+AがT(d)をOWL DLで満たす場合の、T(d)のすべての空白ノードをRIにマッピングする任意のAに対し、I+A(M(T(d))) ∈ EC(d)です。さらに、任意のr ∈ EC(d)に対し、I+A(M(T(d))) = rのような、T(d)のすべての空白ノードをRIにマッピングするAが存在します。

証明:

シンプルな帰納論証(inductive argument)は、I+A(M(T(d)))がEC(d)のすべての要件を満たさなければならないことを示します。別の帰納論証(サブ構成要素における空白ノードの非共有性に依る)は、r ∈ EC(d)ごとに、I+A(M(T(d))) = rであるような、あるAが存在することを示します。

A.1.2 命令への対応

補助定理1.9: V'、V、I'、およびIを補助定理1と同様とします。Fをannotation(p x)形式のアノテーションを持つV'上のOWL命令とします。Fがクラスまたはプロパティー公理である場合、nをそのクラスあるいはプロパティーの名前とします。Fが個体の公理であれば、nをT(F)の主要ノードとします。このとき、T(F)のすべての空白ノードをRIにマッピングする任意のAに対し、I'がアノテーションによって生じる条件を直接満たす場合に限り、I+Aは、アノテーションによって生じるトリプルをOWL DLで満たします。

証明:

URI参照へのアノテーションに対し、セマンティック条件の検出および翻訳トリプルによって補助定理を容易に確立することができます。Individual(…)へのアノテーションに対し、補助定理1.1の使用も必要です。

補助定理2: V'、V、I'、およびIを補助定理1と同様とします。FをV'上のOWL命令とします。このとき、I'がFを満たす場合に限り、IはT(F)を満たします。

証明:

証明の主要部分は、命令上の構造帰納法(structural induction)です。アノテーションは、多くの命令に生じ、それが補助定理1.9の使用をちょうど要求するのと全く同じように動作します。したがって、残りの証明は、アノテーションを無視するでしょう。非推奨は、同様の方法で扱うことができ、これも残りの証明では無視されるでしょう。

事例: F = Class(foo complete d1 … dn).

d=intersectionOf(d1 … dn)とします。dはV'上の記述であるため、IはT(d)を満たし、I+AがT(d)を満たすような、T(d)の空白ノードをマッピングする任意のAに対し、CEXTI(I+A(M(T(d)))) = EC(d)です。したがって、dの任意のサブ記述であるd'に対し、CEXTI(I+A(M(T(d')))) = EC(d')、かつ、I+A(M(T(d')))∈IOCです。したがって、I+AがT(d)を満たすような、T(d)の空白ノードをマッピングする、あるAに対し、CEXTI(I+A(M(T(d)))) = EC(d)、かつ、I+A(M(T(d)))∈IOC、そして、dのサブ記述であるd'ごとに、CEXTI(I+A(M(T(d')))) = EC(d')、かつ、I+A(M(T(d')))∈IOCです。

I'がFを満たす場合、 EC(foo) = EC(d)です。以上から、CEXTI(I+A(M(T(d)))) = EC(d) = EC(foo) = CEXTI(I(foo))、かつ、I+A(M(T(d)))∈IOCであるような、あるAが存在します。IはT(V)を満たすため、I(foo)∈IOCであり、したがって、<I(foo),I+A(M(T(d)))> ∈ EXTI(I(owl:equivalentClass))です。さらに、I(owl:intersectionOf)におけるセマンティック条件のために、<I(foo),I+A(M(T(SEQ d1 … dn)))> ∈ EXTI(I(owl:intersectionOf))です。

dが形式intersectionOf(d1)に属している場合、CEXTI(I+A(M(T(d1)))) = EC(d1) = EC(d) = EC(foo)、かつ、I+A(M(T(d1)))∈IOCです。よって、I(owl:equivalentClass)におけるセマンティック条件から、<I(foo),I+A(M(T(d1)))> ∈ EXTI(I(owl:equivalentClass))です。d1が形式complementOf(d'1)に属している場合、IOT - CEXTI(I+A(M(T(d'1)))) = CEXTI(I+A(M(T(d1)))) = EC(d1) = EC(d) = EC(foo)、かつ、I+A(M(T(d'1)))∈IOCです。よって、I(owl:complementOf)におけるセマンティック条件から、<I(foo),I+A(M(T(d'1)))> ∈ EXTI(I(owl:complementOf))です。d1が形式unionOf(d11 … d1m)に属している場合、CEXTI(I+A(M(T(d11)))) ∪ … ∪ CEXTI(I+A(M(T(d1m)))) = CEXTI(I+A(M(T(d1)))) = EC(d1) = EC(d) = EC(foo)、かつ、I+A(M(T(d1j)))∈IOCです(1≤ j ≤mに対し)。よって、I(owl:unionOf)におけるセマンティック条件から、<I(foo),I+A(M(T(SEQ d11 … d1m)))> ∈ EXTI(I(owl:unionOf))です。

したがって、IはT(F)を満たします(潜在的なT(F)ごとに)。

IがT(F)を満たす場合、IはT(intersectionOf(d1 … dn))を満たします。したがって、<I(foo),I+A(M(T(d)))> ∈ EXTI(I(owl:equivalentClass))であるような、上記のような、あるAが存在します。したがって、EC(d) = CEXTI(I+A(M(T(d)))) = CEXTI(I(foo)) = EC(foo)です。したがって、I' はFを満たします。

事例: F = Class(foo partial d1 … dn)

d=intersectionOf(d1 … dn)とします。dがV'上の記述であるため、IはT(d)を満たし、I+AがT(d)を満たすような、T(d)の空白ノードをマッピングする任意のAに対し、CEXTI(I+A(M(T(d)))) = EC(d)です。したがって、CEXTI(I+A(M(T(di)))) = EC(di)です(1 ≤ i ≤ nに対し)。したがって、I+AがT(d)を満たすような、T(d)の空白ノードをマッピングする、あるAに対し、CEXTI(I+A(M(T(di)))) = EC(di)、かつ、I+A(M(T(di))∈IOCです(1 ≤ i ≤ nに対し)。

I'がFを満たす場合、EC(foo) ⊆ EC(di)です(1 ≤ i ≤ nに対し)。以上から、CEXTI(I+A(M(T(di)))) = EC(di) ⊇ EC(foo) = CEXTI(I(foo))、かつ、I+A(M(T(di))∈IOCであるような、あるAが存在します。IがT(V)を満たすため、I(foo)∈IOCであり、したがって、<I(foo),I+A(M(T(di)))> ∈ EXTI(I(rdfs:subClassOf))です(1 ≤ i ≤ nに対し)。したがって、IはT(F)を満たします。

IがT(F)を満たす場合、IはT(di)を満たします(1 ≤ i ≤ nに対し)。したがって、<I(foo),I+A(M(T(di)))> ∈ EXTI(I(rdfs:subClassOf))(1 ≤ i ≤ nに対し)であるような、上記のような、あるAが存在します。したがって、EC(d) = CEXTI(I+A(M(T(di)))) ⊇ CEXTI(I(foo)) = EC(foo)です(1 ≤ i ≤ nに対し)。したがって、I' はFを満たします。

事例: F = EnumeratedClass(foo i1 … in)

d=oneOf(i1 … in)とします。dがV'上の記述であるため、ゆえにIはT(d)を満たし、I+AがT(d)を満たすような、T(d)の空白ノードをマッピングする、あるAに対し、EC(d) = CEXTI(I+A(M(T(d)))) = {SI(M(T(i1)), … SI(M(T(in))}です。さらに、SI(M(T(ij)) ∈ IOTです(1 ≤ j ≤ nに対し)。

I'がFを満たす場合、EC(foo) = EC(d)です。以上から、CEXTI(I+A(M(T(d)))) = EC(d) = EC(foo) = CEXTI(I(foo))、かつ、I+A(M(T(d))∈IOCである、あるAが存在します。eをI+A(M(T(SEQ i1 … in)))とします。このとき、I(owl:oneOf)におけるセマンティック条件から、<I(foo),e> ∈ EXTI(I(owl:oneOf))です。したがって、IはT(F)を満たします。

IがT(F)を満たす場合、IはT(SEQ i1 … in)を満たします。したがって、<I(foo),I+A(M(T(SEQ i1 … in)))> ∈ EXTI(I(owl:oneOf))であるような、上記のような、あるAが存在します。したがって、{SI(M(T(i1)), …, SI(M(T(in))} = CEXTI(I(foo)) = EC(foo)です。したがって、I'はFを満たします。

事例: F = Datatype(foo)

ここで唯一示す必要があるものは、fooのタイプ付けであり、それはクラスに対するものに似ています。

事例: F= DisjointClasses(d1 … dn)

diはV'上の記述であるため、IはT(di)を満たし、I+AがT(di)を満たすようなT(di)の空白ノードをマッピングする任意のAに対し、CEXTI(I+A(M(T(di)))) = EC(di)です。

IがT(F)を満たす場合、1≤i≤nに対し、1≤i<j≤nごとに、Iが<I+Ai(M(T(di))),I+Aj(M(T(dj)))> ∈ EXTI(I(owl:disjointWith))を満たすような、あるAiが存在します。したがって、EC(di)∩EC(dj) = {}です(i≠jに対し)。したがって、I'はFを満たします。

I'がFを満たす場合、i≠jに対し、EC(di)∩EC(dj) = {}です。上記の任意のAiおよびjに対し、<I+Ai+Aj(M(T(di))),I+Ai+Aj(M(T(dj)))> ∈ EXTI(I(owl:disjointWith))です(i≠jに対し)。少なくとも1つのAiがiごとに存在し、T(dj)の空白ノードがすべて互いに素であるため、I+A1+…+AnはT(DisjointClasses(d1 … dn))を満たします。したがって、IはT(F)を満たします。

事例: F = EquivalentClasses(d1 … dn)
同様。
事例: F = SubClassOf(d1 d2)
多少同様。
事例: F = ObjectProperty(p super(s1) … super(sn) domain(d1) … domain(dm) range(r1) … range(rk) [inverse(i)] [Symmetric] [Functional] [InverseFunctional] [OneToOne] [Transitive])

1≤i≤mに対するdiがV'上の記述であるため、IはT(di)を満たし、I+AがT(di)を満たすようなT(di)の空白ノードをマッピングする任意のAに対し、CEXTI(I+A(M(T(di)))) = EC(di)です。1≤i≤kに対するriに対しても同様です。

I'がFを満たす場合、p∈VOPであるため、IはI(p)∈IOOPを満たします。このとき、IはOWL DL解釈であるため、Iは<I(p),I(owl:Thing)>∈EXTI(I(rdfs:domain))、かつ、<I(p),I(owl:Thing)>∈EXTI(I(rdfs:range))を満たします。さらに、1≤i≤nに対し、ER(p)⊆ER(si)であり、よって、EXTI(I(p))=ER(p) ⊆ ER(si)=EXTI(I(si))、かつ、Iは<I(p),I(si)>∈EXTI(I(rdfs:subPropertyOf))を満たします。次に、1≤i≤mに対し、ER(p)⊆EC(di)×Rであり、よって<z,w>∈ER(p)はz∈EC(di)を意味し、かつ、I+AがT(di)を満たすような任意のAに対し、<z,w>∈EXTI(p)はz∈CEXTI(I+A(M(T(di))))を意味し、したがって<I(p),I+A(M(T(di)))>∈EXTI(I(rdfs:domain))です。1≤i≤kに対するriに対しても同様です。

I'がFを満たし、inverse(i)がFに存在する場合、ER(p)とER(i)は逆です。したがって、<v,u>∈ER(i)である場合に限り、<u,v>∈ER(p)であり、よって、<v,u>∈EXTI(i)、かつ、Iが<I(p),I(i)>∈EXTI(I(owl:inverseOf))を満たす場合に限り、<u,v>∈EXTI(p)です。I'がFを満たし、対称的がFに存在する場合、ER(p)は対称的です。したがって、<x,y>∈ ER(p)である場合、<y,x>∈ER(p)であり、よって、<x,y> ∈ EXTI(p)である場合、<y, x>∈EXTI(p)です。また、したがって、Iはp∈CEXTI(I(owl:Symmetric))を満たします。関数型、逆関数型、および推移的に対しても同様です。したがって、I'がFを満たす場合、IはT(F)を満たします。

IがT(F)を満たす場合、1≤i≤nに対し、<I(p),I(si)>∈EXTI(I(rdfs:subPropertyOf))であり、よって、ER(p)=EXTI(I(p)) ⊆ EXTI(I(si))=ER(si)です。さらに、1≤i≤mに対し、I+AがT(di)を満たすような、あるAに対し、<I(p),I+A(M(T(di)))>∈EXTI(I(rdfs:domain))であり、よって、<z,w>∈EXTI(p)はz∈CEXTI(I+A(M(T(di))))を意味します。したがって、<z,w>∈ER(p)はz∈EC(di)、かつ、ER(p)⊆EC(di)×Rを意味します。1≤i≤kに対するriに対しても同様です。

IがT(F)を満たし、inverse(i)がFに存在する場合、Iは<I(p),I(i)>∈EXTI(I(owl:inverseOf))を満たします。したがって、<v,u>∈EXTI(i)である場合に限り、<u,v>∈EXTI(p)であり、よって、<v,u>∈ER(i)である場合に限り、<u,v>∈ER(p)、かつ、ER(p)とER(i)は逆です。IがFを満たし、対称的がFに存在する場合、Iはp∈CEXTI(I(owl:Symmetric))を満たし、よって、<x,y> ∈ EXTI(p)である場合、<y, x>∈EXTI(p)です。したがって、<x,y>∈ ER(p)である場合、<y,x>∈ER(p)、かつ、ER(p)は対称的です。関数型、逆関数型、および推移的に対しても同様です。したがって、IがT(F)を満たす場合、I'はFを満たします。

事例: F = DatatypeProperty(p super(s1) … super(sn) domain(d1) … domain(dm) range(r1) … range(rl) [Functional])
同様だが、よりシンプル。
事例: F = AnnotationProperty(p domain(d1) … domain(dm))
同様だが、さらによりシンプル。
事例: F = OntologyProperty(p domain(d1) … domain(dm))
同様だが、さらによりシンプル。
事例: F = EquivalentProperties(p1 … pn)(pi∈VOPに対し)

pi∈VOP、かつ、IがT(V')を満たすため、I(pi)∈IOOPです。IがT(F)を満たす場合、<I(pi),I(pj)> ∈ EXTI(I(owl:equivalentProperty))です(1≤i<j≤nごとに)。したがって、EXTI(pi) = EXTI(pj)、かつ(1≤i<j≤nごとに)、ER(pi) = ER(pj)、(1≤i<j≤nごとに)、かつ、I'はFを満たします。

I'がFを満たす場合、ER(pi) = ER(pj)です(1≤i<j≤nごとに)。したがって、EXTI(pi) = EXTI(pj)(1≤i<j≤nごとに)。owl:equivalentPropertyのOWL DL定義から、<I(pi),I(pj)> ∈ EXTI(I(owl:equivalentProperty))です(1≤i<j≤nごとに)。したがって、IはT(F)を満たします。

事例: F = SubPropertyOf(p1 p2)
多少同様だが、よりシンプル。
事例: F = SameIndividual(i1 … in)
SamePropertyAsと同様。
事例: F = DifferentIndividuals(i1 … in)
SamePropertyAsと同様。
事例: F = Individual([i] type(t1) … type(tn) value(p1 v1) … value(pn vn))

IがT(F)を満たす場合、I+AがT(F)を満たすような、T(F)にそれぞれの空白ノードをマッピングする、あるAが存在します。T(F)の簡単な調査により、Aのマッピングに加え、Fの個体IDに対するマッピング(すべてIOTにおける)はI'がFを満たすことを示すということが分かります。

I'がFを満たす場合、Fの個体構成要素ごとに、Fのタイプ関係および関係を真にするRの、ある要素がなければなりません。このとき、T(F)のトリプルは、3つのカテゴリーに分類されます。(1) owl:Thingとのタイプ関係(上記の要素がRに属するため、Iにおいて真である)。(2) 補助定理1から、OWL記述とのタイプ関係(I'において真であるため、Iにおいて真である)。(3) OWLプロパティー関係(Iにおいて真であるため、I'において真である)。したがって、IはT(F)を満たします。

A.1.3 RDFセマンティクスから直接セマンティクスへ

補助定理3: V' = VO + VC + VD + VI + VOP + VDP + VAP + VXPを分離されたOWL語彙とします。V = VO ∪ VC ∪ VD ∪ VI ∪ VOP ∪ VDP ∪ VAP ∪ VXP ∪ VBとします。このとき、T(V')を満たすVのすべてのOWL DL解釈I = <RI,PI,EXTI,SI,LI,LVI>に対し、Oが閉じたインポートであるような語彙V'を持つ任意のOWL抽象オントロジーのコレクションおよび公理と事実Oに対し、IがOWL DLでT(O)を満たす場合に限り、I' がOを直接満たすような、直接解釈V'のI'が存在します。

証明:

CEXTIを、通常通り、Iからのものあると定義します。必要な直接解釈は、以下の場合、I' = < RI, EC, ER, L, S, LVI >です。

  1. EC(v) = CEXTI(SI(v))(v∈VC∪VDに対し)
  2. ER(v) = EXTI(SI(v))(v∈VOP∪VDP∪VAP∪VXPに対し)
  3. < x, SI(owl:DeprecatedClass) > EXTI(SI(rdf:type))である場合に限り、< x, S(owl:DeprecatedClass) > ∈ ER(rdf:type)(x ∈ Rに対し)
  4. < x, SI(owl:DeprecatedProperty) > EXTI(SI(rdf:type))である場合に限り、< x, S(owl:DeprecatedProperty) > ∈ ER(rdf:type)(x ∈ Rに対し)
  5. L(d) = LI(d)(型付きリテラルであるdに対し)
  6. S(v) = SI(v)(n∈VI ∪ VC ∪ VD ∪ VOP ∪ VDP ∪ VAP ∪ VXP ∪ VOに対し)

V'、V、I'、およびIは補助定理2の要件を満たし、よって、V'上の任意の命令Dに対し、I'がDを満たす場合に限り、IはT(D)を満たします。

Oは閉じたインポートであるため、OはT(O)でインポートされるすべてのオントロジーを含んでおり、よって、インポート命令のインポートする部分は同じように扱われます。抽象オントロジーを満たすことは、その命令を単に満たすだけであり、抽象オントロジーの翻訳を満たすことは、すべてのトリプルを満たすことであり、よって、I'がKを直接満たす場合に限り、IはOWL DLでT(K)を満たします。

A.1.4 直接セマンティクスからRDFセマンティクスへ

補助定理4: V' = VO + VC + VD + VI + VOP + VDP + VAP + VXPを分離されたOWL語彙とします。V = VO ∪ VC ∪ VD ∪ VI ∪ VOP ∪ VDP ∪ VAP ∪ VXP ∪ VBとします。このとき、すべての直接解釈である、V'のI' = < U, EC, ER, L, S, LV >に対し、Oが閉じたインポートであるような、語彙V'を持つ任意のOWL抽象オントロジーのコレクションおよび公理と事実Oに対し、IがOWL DLでT(O)を満たす場合に限り、I'がOを直接満たすような、T(V')を満たすVのOWL DL解釈Iが存在します。

証明:

I = < RI, PI, EXTI, SI, L, LVI >を以下のように構築します。

このとき、OWL DLのクラス拡張に対する条件がクラス状のOWL抽象構文構成要素に対する条件とマッチするため、IはOWL DL解釈です。

V'、V、I'、およびIは補助定理2の要件を満たし、よって、V'上の任意の命令Dに対し、I'がDを満たす場合に限り、IはT(D)を満たします。

Oは閉じたインポートであるため、OはT(O)でインポートされるすべてのオントロジーを含んでおり、よってインポート命令のインポートする部分は同じように扱われます。抽象オントロジーを満たすことは、その命令を単に満たすだけであり、抽象オントロジーの翻訳を満たすことは、すべてのトリプルを満たすことであり、よって、I'がKを直接満たす場合に限り、IはT(K)をOWL DLで満たします。

A.1.5 対応定理

定理1: OおよびO'を、それらの和集合が分離された語彙V'を持ち、V'のすべてのURI参照がOで使用されるような、閉じたインポートである、抽象構文形式のOWL DLオントロジーのコレクションおよび公理と事実とします。このとき、T(O)がT(O')をOWL DL含意する場合に限り、OはO'を含意します。

このとき、V'のそれぞれのURI参照がOにおいて使用されるため、IはT(V')を満たします。

証明: OがO'を含意すると仮定します。IをT(O)を満たすOWL DL解釈とします。このとき、補助定理3から、任意の抽象OWLオントロジーあるいは公理または事実である、V'上のXに対し、I'がXを満たす場合に限り、IがT(X)を満たすような、ある直接解釈I'が存在します。したがって、I'はOのそれぞれのオントロジーを満たします。OがO'を含意するため、I'はO'を満たし、よって、IはT(O')を満たします。したがって、T(K)、T(V')は、T(Q)をOWL DL含意します。

T(O)がT(O')をOWL DL含意すると仮定します。I'を、Kを満たす直接解釈とします。このとき、補助定理4から、任意の抽象OWLオントロジーである、V'上のXに対し、I'がXを満たす場合に限り、IがT(X)を満たすような、あるOWL DL解釈Iが存在します。したがって、IはT(O)を満たします。T(O)がT(O')をOWL DL含意するため、IはT(O')を満たし、よって、I'はO'を満たします。したがって、OはO'を含意します。

A.2 OWL DLとOWL Fullの対応

この項には、OWL DLとOWL Fullの関係に関する証明のスケッチが含まれています。この証明は完全には出来上がっていません。証明を完成させるには非常な努力が必要かもしれませんし、関係のいくつかの詳細を変更しなければならないかもしれません。

KをRDFグラフとします。KのOWL解釈は、KのD解釈である、OWL解釈(5.2項から)です。

補助定理5: Vを分離された語彙とします。このとき、すべてのOWL解釈Iに対し、分離された語彙Vを持つ抽象構文における任意のOWLオントロジーであるKに対し、I'がT(K)のOWL DL解釈である場合に限り、IがT(K)のOWL解釈であるような、OWL DL解釈I'が存在します(5.3項と同様に)。

証明のスケッチ: すべてのOWL DL解釈はOWL解釈であるため、逆方向については自明です。

I = < RI, EXTI, SI, LI >をT(K)を満たすOWL解釈とします。I' = < RI', EXTI', SI', LI' >をT(K)を満たすOWL解釈とします。RI' = CEXTI(I(owl:Thing)) + CEXTI(I(owl:ObjectProperty)) + CEXTI(I(owl:ObjectProperty)) + CEXTI(I(owl:Class)) + CEXTI(I(rdf:List)) + RIとします(+が互いに直和である場合)。コピーの様々な役割を分離するようにEXTI'を定義します。語彙を適切なコピーへマッピンするようにSI'を定義します。これは、Kが分離された語彙を持つため、機能します。よって、Iはその役割に従って分割され、EXTIには不適切な関係は存在しません。要するに、RI'の第1要素はOWL個体、RI'の第2要素はOWLデータ型プロパティー、RI'の第3要素はOWL個体値プロパティー、RI'の第4要素はOWLクラス、RI'の第5要素はRDFリスト、そしてRI'の第6要素はその他すべてです。

定理2: OおよびO'をそれらの和集合が分離された語彙4.2項)を持っているような、閉じたインポートである、抽象構文形式のOWL DLオントロジーのコレクションおよび公理と事実とします。このとき、Oの翻訳がO'の翻訳をOWL DL含意する場合、Oの翻訳はO'の翻訳をOWL Full含意します。

証明: 上記の補助定理から、およびすべてのOWL Full解釈はOWL解釈であるため。

注: 方向が真でない場合のみ。


付録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 .

上記の3つのトリプルは、以下の制限を結論づける前に加えられなければならないでしょう。

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 .

は、そのようなループを記述するための内包原理(comprehension principle)がないため、以下を含意しません。

John rdf:type _:y .
_:y owl:onProperty friend .
_:y owl:allValuesFrom _:y .

これは正に、自然な含意を保ちながら、OWL DLにおいて逆説が形成されるのを防ぐような内包原理が欠けていることを示すものです。

OWL DLでは、以下の形式のすべてのトリプルから成る、特定のローカライズの断言の集合を付け加えることにより、任意の分離された構文(separated-syntax)KBの欠落しローカリゼーションを修復することができます。

<individual> rdf:type owl:Thing .
<class> rdf:type owl:Class .
<oproperty> rdf:type owl:ObjectProperty .
<dtproperty> rdf:type owl:DatatypeProperty .

OWL DL KBにそのような断言をすべて加えた結果をKBのローカリぜーションと呼びます。

OWL Fullは、予期する含意をサポートし、語彙に対してタイプの情報を提供する必要はありません。例えば、

John friend Susan .

は、以下をOWL Full含意します。

John rdf:type _:x .
_:x owl:onProperty friend .
_:x owl:minCardinality "1"^^xsd:nonNegativeInteger .


付録C. 最終呼びかけ以後の変更(参考情報)

この付録は、このドキュメントの最終呼びかけバージョン以後の変更に関する参考情報の説明を提供します。いくつかの最終呼びかけ後の編集に関する変更に加え、最終呼びかけ後の本質的なドキュメントの変更もすべて、この付録の形式で示されます。

C.1 最終呼びかけ後の本質的な変更

この項では、OWLの仕様に変更を及ぼす、最後呼びかけ後のドキュメントの変更に関する情報を提供します。

C.2 最終呼びかけ以後の編集上の変更

この項は、ドキュメントに対する最終呼びかけ後の編集上の変更(つまり、OWLの仕様に影響しない変更)に関する情報を提供します。

C.3 勧告候補以後の本質的な変更

この項は、OWLの仕様に変更を加える、ドキュメントに対する勧告候補後の変更に関する情報を提供します。

C.4 勧告候補以後の編集上の変更

この項では、ドキュメントに対する勧告候補後の編集上の変更(つまり、OWLの仕様に影響しない変更)に関する情報を提供します。

C.5 勧告案以後の変更

この項では、ドキュメントに対する勧告案後の変更に関する情報を提供します。


語彙索引(参考情報)

以下の表は、RDFとRDFSの語彙のいくつかの要素に加え、OWL語彙の各要素に関する情報にヒントを与えます。最初のコラムは、2項の抽象構文における語彙要素の主な定義を示します。第2のコラムは、OWL Lite抽象構文における語彙要素の主な定義を示します。第3のコラムは、3項の直接的なセマンティクスにおける語彙要素の主な定義を示します。第4のコラムは、4項の抽象構文から語彙要素に対するトリプルへの主な翻訳を示します。第5のコラムは、5項のRDFS互換のセマンティクスにおいて、語彙要素の主な定義を示します。

語彙用語
語彙用語 抽象OWL DL構文 抽象OWL Lite構文 直接的なセマンティクス トリプルへのマッピング RDFS互換のセマンティクス
owl:AllDifferent 4.1 5.2
owl:allValuesFrom 2.3.2.3 2.3.1.2 3.2 4.1 5.2
owl:AnnotationProperty 2.3.1.32.3.2.4 3.2 4.1 5.2
owl:backwardCompatibleWith 2.1 2.1 4.1
owl:cardinality 2.3.2.3 2.3.1.2 3.2 4.1 5.2
owl:Class 2.3.2.1 2.3.1.1 3.3 4.1 5.2
owl:complementOf 2.3.2.2 3.2 4.1 5.2
owl:DatatypeProperty 2.3.2.4 2.3.1.3 3.3 4.1 5.2
owl:DeprecatedClass 2.3.2.1 2.3.1.1 3.3 4.1 5.2
owl:DeprecatedProperty 2.3.2.4 2.3.1.3 3.3 4.1 5.2
owl:DataRange 2.3.2.3 2.3.1.2 3.2 4.1 5.2
owl:differentFrom 2.2 2.2 3.3 4.1 5.2
owl:disjointWith 2.3.2.1 3.3 4.1 5.2
owl:distinctMembers 4.1 5.2
owl:equivalentClass 2.3.2.1 2.3.1.1 3.3 4.1 5.2
owl:equivalentProperty 2.3.1.3 2.3.1.3 3.3 4.1 5.2
owl:FunctionalProperty 2.3.2.4 2.3.1.3 3.3 4.1 5.2
owl:hasValue 2.3.2.3 3.2 4.1 5.2
owl:imports 2.12.1 3.4 4.1 5.4
owl:incompatibleWith 2.1 2.1 4.1
owl:intersectionOf 2.3.2.2 3.2 4.1 5.2
owl:InverseFunctionalProperty 2.3.2.4 2.3.1.3 3.3 4.1 5.2
owl:inverseOf 2.3.2.4 2.3.1.3 3.3 4.1 5.2
owl:maxCardinality 2.3.2.3 2.3.1.2 3.2 4.15.2
owl:minCardinality 2.3.2.3 2.3.1.2 3.2 4.1 5.2
owl:Nothing 2.1 2.1 3.2 4.1 5.2
owl:ObjectProperty 2.3.2.42.3.1.3 3.3 4.15.2
owl:oneOf 2.3.2.2 3.2 4.1 5.2
owl:onProperty 2.3.2.3 2.3.1.2 3.2 4.1 5.2
owl:Ontology 2.1 2.1 3.4 4.1 5.2
owl:OntologyProperty 2.3.1.3 2.3.2.4 3.2 4.1 5.2
owl:priorVersion 2.1 2.1 4.1
owl:Restriction 2.3.2.3 2.3.1.2 3.2 4.1 5.2
owl:sameAs 2.2 2.2 3.3 4.1 5.2
owl:someValuesFrom 2.3.2.3 2.3.1.2 3.2 4.1 5.2
owl:SymmetricProperty 2.3.2.4 2.3.1.3 3.3 4.1 4.2
owl:Thing 2.1 2.1 3.2 4.1 5.2
owl:TransitiveProperty 2.3.2.4 2.3.1.3 3.3 4.1 5.2
owl:unionOf 2.3.2.2 3.2 4.1 5.2
owl:versionInfo 2.1 2.1 4.1
rdf:List 4.1 5.2
rdf:nil 4.1 5.2
rdf:type 2.2 2.2 3.3 4.1
rdfs:comment 2.1 2.1 4.1
rdfs:Datatype 4.1 5.2
rdfs:domain 2.3.2.4 2.3.1.3 3.3 4.1 5.2
rdfs:label 2.1 2.1 4.1
rdfs:Literal 2.3.1.3 2.3.2.3 4.1 4.1 5.2
rdfs:range 2.3.2.4 2.3.1.3 3.3 4.1 5.2
rdfs:subClassOf 2.3.2.1 2.3.1.1 3.3 4.1 5.2
rdfs:subPropertyOf 2.3.1.3 2.3.1.3 3.3 4.1 5.2

謝辞

Joint US/EU ad hoc Agent Markup Language Committee(US/EU連合特別エージェント・マークアップ言語委員会)は、DAML+OIL(OWLへの直系の前身)を開発しました。DAML+OILの、したがって、OWLのアイデアの多くは、Ontology Inference Layer(OIL)にも存在しています。

このドキュメントは、総じてウェブ・オントロジー・ワーキンググループ内で積み重ねられた議論の結果です。このワーキンググループのメンバーは、Yasser alSafadi、Jean-Francois Baget、James Barnette、Sean Bechhofer、Jonathan Borden、Frederik Brysse、Stephen Buswell、Jeremy Carroll、Dan Connolly、Peter Crowther、Jonathan Dale、Jos De Roo、David De Roure、Mike Dean、Larry Eshelman、Jerome Euzenat、Tim Finin、Nicholas Gibbins、Sandro Hawke、Patrick Hayes、Jeff Heflin、Ziv Hellman、James Hendler、Bernard Horan、Masahiro Hori、Ian Horrocks、Jane Hunter、Francesco Iannuzzelli、Rudiger Klein、Natasha Kravtsova、Ora Lassila、Massimo Marchiori、Deborah McGuinness、Enrico Motta、Leo Obrst、Mehrdad Omidvari、Martin Pike、Marwan Sabbouh、Guus Schreiber、Noboru Shimizu、Michael Sintek、Michael K. Smith、John Stanton、Lynn Andrea Stein、Herman ter Horst、David Trastour、Frank van Harmelen、Bernard Vatant、Raphael Volz、Evan Wallace、Christopher Welty、Charles White、John Yanosyです。


参考文献

規範的な参考文献

[RDF Concepts]
Resource Description Framework (RDF): Concepts and Abstract Syntax, Graham Klyne and Jeremy J. Carroll, Editors, W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/ . 最新版は、http://www.w3.org/TR/rdf-concepts/にあります。
[RDF Semantics]
RDF Semantics, Patrick Hayes, Editor, W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-rdf-mt-20040210/ . 最新版は、http://www.w3.org/TR/rdf-mt/にあります。
[RDF Syntax]
RDF/XML Syntax Specification (Revised), Dave Beckett, Editor, W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/ . 最新版は、http://www.w3.org/TR/rdf-syntax-grammar/にあります。
[RDF Tests]
RDF Test Cases, Jan Grant and Dave Beckett, Editors, W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/ . 最新版は、http://www.w3.org/TR/rdf-testcases/にあります。
[XML]
Extensible Markup Language (XML) 1.0 (Second Edition). Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, and Eve Maler, eds. W3C Recommendation 6 October 2000. 最新版は、http://www.w3.org/TR/REC-xmlにあります。
[XML Schema Datatypes]
XML Schema Part 2: Datatypes..Paul V. Biron and Ashok Malhotra, eds. W3C Recommendation 02 May 2001. 最新版は、http://www.w3.org/TR/xmlschema-2/にあります。

その他の参考文献

[DAML+OIL]
DAML+OIL (March 2001) Reference Description. Dan Connolly, Frank van Harmelen, Ian Horrocks, Deborah L. McGuinness, Peter F. Patel-Schneider, and Lynn Andrea Stein. W3C Note 18 December 2001. 最新版は、http://www.w3.org/TR/daml+oil-referenceにあります。
[OWL Guide]
OWL Web Ontology Language Guide, Michael K. Smith, Chris Welty, and Deborah L. McGuinness, Editors, W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-owl-guide-20040210/ . 最新版は、http://www.w3.org/TR/owl-guide/にあります。
[OWL Issues]
Web Ontology Issue Status. Michael K. Smith, ed. 27 June 2003.
[OWL Overview]
OWL Web Ontology Language Overview, Deborah L. McGuinness and Frank van Harmelen, Editors, W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-owl-features-20040210/ . 最新版は、http://www.w3.org/TR/owl-features/にあります。
[OWL Reference]
OWL Web Ontology Language Reference, Mike Dean and Guus Schreiber, Editors, W3C Recommendation, 10 February 2004,http://www.w3.org/TR/2004/REC-owl-ref-20040210/ . 最新版は、http://www.w3.org/TR/owl-ref/にあります。
[RDF Syntax]
RDF/XML Syntax Specification (Revised), Dave Beckett, Editor, W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/ . 最新版は、http://www.w3.org/TR/rdf-syntax-grammar/にあります。
[RDF Vocabulary]
RDF Vocabulary Description Language 1.0: RDF Schema, Dan Brickley and R. V. Guha, Editors, W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-rdf-schema-20040210/ . 最新版は、http://www.w3.org/TR/rdf-schema/にあります。