Conformance
From OWL
(→Specific Semantics) |
IanHorrocks (Talk | contribs) (→Document Checker Conformance) |
||
| (19 intermediate revisions not shown) | |||
| Line 52: | Line 52: | ||
== Conformance (Normative) == | == Conformance (Normative) == | ||
| - | This section describes conformance conditions for OWL 2 documents and tools. | + | This section describes conformance conditions for OWL 2 documents and tools. In particular, it describes the syntactic conditions that characterize OWL 2 ontology documents, including those that conform to the various OWL 2 profiles [<cite>[[#ref-owl-2-profiles|OWL 2 Profiles]]</cite>], and the syntactic and semantic conditions that must be satisfied by conformant OWL 2 tools. |
| - | + | ||
| - | + | ||
=== Document Conformance === | === Document Conformance === | ||
| + | |||
| + | Several syntaxes have been defined for OWL 2 ontology documents, some or all of which could be used by OWL 2 tools for exchanging documents. However, conformant OWL 2 tools that take ontology documents as input(s) <em title="MUST in RFC 2119 context" class="RFC2119">MUST</em> accept ontology documents using the RDF/XML serialization [<cite>[[#ref-owl-mapping|OWL 2 Mapping to RDF Graphs]]</cite>], and conformant OWL 2 tools that publish ontology documents <em title="MUST in RFC 2119 context" class="RFC2119">MUST</em> be able to publish them in the RDF/XML serialization if asked to do so (e.g., via HTTP content negotiation). OWL 2 tools <em title="MAY in RFC 2119 context" class="RFC2119">MAY</em> also accept and/or publish ontology documents using other serializations, for example the XML Serialization [<cite>[[#ref-owl-2-xml-syntax|OWL 2 XML Syntax]]</cite>]. | ||
==== Syntactic Conformance ==== | ==== Syntactic Conformance ==== | ||
| Line 70: | Line 70: | ||
An OWL 2 Full ontology document is an '''OWL 2 RL ontology document''' iff it can be successfully parsed using the canonical RDF parsing process [<cite>[[#ref-owl-mapping|OWL 2 Mapping to RDF Graphs]]</cite>] and the resulting ontology in the functional-style syntax satisfies all the restrictions on OWL 2 RL ontologies [<cite>[[#ref-owl-2-profiles|OWL 2 Profiles]]</cite>]. | An OWL 2 Full ontology document is an '''OWL 2 RL ontology document''' iff it can be successfully parsed using the canonical RDF parsing process [<cite>[[#ref-owl-mapping|OWL 2 Mapping to RDF Graphs]]</cite>] and the resulting ontology in the functional-style syntax satisfies all the restrictions on OWL 2 RL ontologies [<cite>[[#ref-owl-2-profiles|OWL 2 Profiles]]</cite>]. | ||
| - | + | Conformance for other serializations is a direct consequence of the relevant serialization specification, the OWL 2 Syntax specification [<cite>[[#ref-owl-2-specification|OWL 2 Specification]]</cite>] and the OWL 2 Profiles specification [<cite>[[#ref-owl-2-profiles|OWL 2 Profiles]]</cite>]. For example, an XML document is an OWL 2 DL ontology document iff it validates against the OWL 2 XML Schema [<cite>[[#ref-owl-2-xml-syntax|OWL 2 XML Syntax]]</cite>], and the corresponding functional-style syntax satisfies all the restrictions on OWL 2 DL ontologies [<cite>[[#ref-owl-2-specification|OWL 2 Specification]]</cite>]. It is an OWL 2 EL (respectively QL, RL) ontology document iff the corresponding functional-style syntax also satisfies all the restrictions on OWL 2 EL (respectively QL, RL) ontologies [<cite>[[#ref-owl-2-profiles|OWL 2 Profiles]]</cite>]. | |
==== Datatype Map Conformance ==== | ==== Datatype Map Conformance ==== | ||
| Line 76: | Line 76: | ||
In OWL 2, semantic conditions are defined with respect to a datatype map [<cite>[[#ref-owl-2-specification|OWL 2 Specification]]</cite>]. This <em title="MUST in RFC 2119 context" class="RFC2119">MUST</em> be either the OWL 2 Datatype map [<cite>[[#ref-owl-2-specification|OWL 2 Specification]]</cite>], or an extension of the OWL 2 Datatype map to include additional datatypes. | In OWL 2, semantic conditions are defined with respect to a datatype map [<cite>[[#ref-owl-2-specification|OWL 2 Specification]]</cite>]. This <em title="MUST in RFC 2119 context" class="RFC2119">MUST</em> be either the OWL 2 Datatype map [<cite>[[#ref-owl-2-specification|OWL 2 Specification]]</cite>], or an extension of the OWL 2 Datatype map to include additional datatypes. | ||
| - | + | Note that OWL 2 Profiles may support only a reduced set of datatypes. This is, however, a syntactic condition that must be met by documents in order to fall within the relevant profile, and the semantic conditions on the supported datatypes are unchanged, i.e., they are defined by a (possibly extended) OWL 2 Datatype map. | |
=== Document Checker Conformance === | === Document Checker Conformance === | ||
| + | |||
| + | An OWL 2 document checker is a tool that takes one or more OWL 2 ontologies and checks some (syntactic or semantic) condition. As noted above, any conformant OWL 2 tool <em title="MUST in RFC 2119 context" class="RFC2119">MUST</em> accept ontology documents using the RDF/XML serialisation [<cite>[[#ref-owl-mapping|OWL 2 Mapping to RDF Graphs]]</cite>]; it <em title="MAY in RFC 2119 context" class="RFC2119">MAY</em> also accept ontology documents using other serializations, for example the XML Serialization [<cite>[[#ref-owl-2-xml-syntax|OWL 2 XML Syntax]]</cite>]. | ||
| + | |||
| + | The conformance conditions related to entailment checking and query answering are defined below. Other OWL 2 tools <em title="MUST in RFC 2119 context" class="RFC2119">MUST</em> satisfy similar conditions. In particular, they <em title="MUST in RFC 2119 context" class="RFC2119">MUST</em> be consistent with the Direct Semantics [<cite>[[#ref-owl-2-semantics|OWL 2 Semantics]]</cite>] and/or the RDF-Based Semantics [<cite>[[#ref-owl-2-rdf-semantics|OWL 2 RDF-Based | ||
| + | Semantics]]</cite>]. | ||
==== Entailment Checker ==== | ==== Entailment Checker ==== | ||
| Line 649: | Line 654: | ||
: <cite>[[Direct_Semantics|OWL 2 Web Ontology Language: Direct Semantics]]</cite>. Bernardo Cuenca Grau and Boris Motik, eds., 2008. | : <cite>[[Direct_Semantics|OWL 2 Web Ontology Language: Direct Semantics]]</cite>. Bernardo Cuenca Grau and Boris Motik, eds., 2008. | ||
; <span id="ref-owl-2-rdf-semantics">[OWL 2 RDF-Based Semantics]</span> | ; <span id="ref-owl-2-rdf-semantics">[OWL 2 RDF-Based Semantics]</span> | ||
| - | : <cite>[[RDF-Based_Semantics|OWL 2 Web Ontology Language: RDF-Based Semantics]]</cite>. Michael Schneider, 2008. | + | : <cite>[[RDF-Based_Semantics|OWL 2 Web Ontology Language: RDF-Based Semantics]]</cite>. Michael Schneider, ed., 2008. |
; <span id="ref-owl-mapping">[OWL 2 RDF Mapping]</span> | ; <span id="ref-owl-mapping">[OWL 2 RDF Mapping]</span> | ||
: <cite>[[Mapping to RDF Graphs|OWL 2 Web Ontology Language: Mapping to RDF Graphs]]</cite>. Bernardo Cuenca Grau and Boris Motik, eds., 2008. | : <cite>[[Mapping to RDF Graphs|OWL 2 Web Ontology Language: Mapping to RDF Graphs]]</cite>. Bernardo Cuenca Grau and Boris Motik, eds., 2008. | ||
| + | ; <span id="ref-owl-2-xml-syntax">[OWL 2 XML Syntax]</span> | ||
| + | : <cite>[[XML_Serialization|OWL 2 Web Ontology Language: XML Serialization]]</cite>. Boris Motik and Peter. F. Patel-Schneider, eds., 2008. | ||
; <span id="ref-owl-2-profiles">[OWL 2 Profiles]</span> | ; <span id="ref-owl-2-profiles">[OWL 2 Profiles]</span> | ||
| - | : <cite>[[Profiles|OWL 2 Web Ontology Language: Profiles]]</cite>. Bernardo Cuenca Grau, | + | : <cite>[[Profiles|OWL 2 Web Ontology Language: Profiles]]</cite>. Boris Motik, Bernardo Cuenca Grau, Ian Horrocks, Zhe Wu, Achille Fokoue and Carsten Lutz, eds., 2008. |
; <span id="ref-rdf-syntax">[RDF Syntax]</span> | ; <span id="ref-rdf-syntax">[RDF Syntax]</span> | ||
: <cite>[http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/ RDF/XML Syntax Specification (Revised)]</cite>. Dave Beckett, Editor, W3C Recommendation 10 February 2004, http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/ . Latest version available at http://www.w3.org/TR/rdf-syntax-grammar/ . | : <cite>[http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/ RDF/XML Syntax Specification (Revised)]</cite>. Dave Beckett, Editor, W3C Recommendation 10 February 2004, http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/ . Latest version available at http://www.w3.org/TR/rdf-syntax-grammar/ . | ||
Revision as of 19:20, 3 November 2008
- Document title:
- OWL 2 Web Ontology Language
Conformance and Test Cases (Second Edition)
- Editors
- Michael Smith, Clark & Parsia
- Ian Horrocks, Oxford University
- Contributors
- Note: The complete list of contributors is being compiled and will be included in the next draft.
- Abstract
- The OWL 2 Web Ontology Language, informally OWL 2, is an ontology language for the Semantic Web with formally defined meaning. OWL 2 ontologies provide classes, properties, individuals, and data values and are stored as Semantic Web documents. OWL 2 ontologies can be used along with information written in RDF, and OWL 2 ontologies themselves are primarily exchanged as RDF documents. The OWL 2 Document Overview describes the overall state of OWL 2, and should be read before other OWL 2 documents.
This document describes the conditions that OWL 2 tools must satisfy in order to be conformant with the language specification. It also presents a set of tests that both illustrate the features of the language and can be used for testing conformance. - Status of this Document
Copyright © 2008-2009 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
Contents |
1 Introduction
This document describes conformance conditions for OWL 2, and presents a set of test cases.
Conformance conditions are described for both OWL 2 documents and for tools that process such documents. In particular, the conformance conditions for an OWL 2 entailment checker are described in some detail.
The presented test cases are intended to illustrate the various features of the language, and can also be used for testing conformance. They are not exhaustive, however, nor do they constitute a conformance test suite for OWL: passing all the tests is no guarantee that a given system conforms to the OWL 2 specification.
In addition to the tests themselves, a categorization of test types and a format for test cases is also presented. This is intended to facilitate their use by OWL system developers, e.g., in a test harness, and the extension of the test suite with new tests.
The italicized keywords MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY are used to specify normative features of OWL 2 documents and tools, and are interpreted as specified in RFC 2119 [RFC 2119].
2 Conformance (Normative)
This section describes conformance conditions for OWL 2 documents and tools. In particular, it describes the syntactic conditions that characterize OWL 2 ontology documents, including those that conform to the various OWL 2 profiles [OWL 2 Profiles], and the syntactic and semantic conditions that must be satisfied by conformant OWL 2 tools.
2.1 Document Conformance
Several syntaxes have been defined for OWL 2 ontology documents, some or all of which could be used by OWL 2 tools for exchanging documents. However, conformant OWL 2 tools that take ontology documents as input(s) MUST accept ontology documents using the RDF/XML serialization [OWL 2 Mapping to RDF Graphs], and conformant OWL 2 tools that publish ontology documents MUST be able to publish them in the RDF/XML serialization if asked to do so (e.g., via HTTP content negotiation). OWL 2 tools MAY also accept and/or publish ontology documents using other serializations, for example the XML Serialization [OWL 2 XML Syntax].
2.1.1 Syntactic Conformance
Any RDF document [RDF Syntax] is an OWL 2 Full ontology document.
An OWL 2 Full ontology document is an OWL 2 DL ontology document iff it can be successfully parsed using the canonical RDF parsing process [OWL 2 Mapping to RDF Graphs] and the resulting ontology in the functional-style syntax satisfies all the restrictions on OWL 2 DL ontologies [OWL 2 Specification].
An OWL 2 DL ontology document is an OWL 2 EL ontology document iff it can be successfully parsed using the canonical RDF parsing process [OWL 2 Mapping to RDF Graphs] and the resulting ontology in the functional-style syntax satisfies all the restrictions on OWL 2 EL ontologies [OWL 2 Profiles].
An OWL 2 DL ontology document is an OWL 2 QL ontology document iff it can be successfully parsed using the canonical RDF parsing process [OWL 2 Mapping to RDF Graphs] and the resulting ontology in the functional-style syntax satisfies all the restrictions on OWL 2 QL ontologies [OWL 2 Profiles].
An OWL 2 Full ontology document is an OWL 2 RL ontology document iff it can be successfully parsed using the canonical RDF parsing process [OWL 2 Mapping to RDF Graphs] and the resulting ontology in the functional-style syntax satisfies all the restrictions on OWL 2 RL ontologies [OWL 2 Profiles].
Conformance for other serializations is a direct consequence of the relevant serialization specification, the OWL 2 Syntax specification [OWL 2 Specification] and the OWL 2 Profiles specification [OWL 2 Profiles]. For example, an XML document is an OWL 2 DL ontology document iff it validates against the OWL 2 XML Schema [OWL 2 XML Syntax], and the corresponding functional-style syntax satisfies all the restrictions on OWL 2 DL ontologies [OWL 2 Specification]. It is an OWL 2 EL (respectively QL, RL) ontology document iff the corresponding functional-style syntax also satisfies all the restrictions on OWL 2 EL (respectively QL, RL) ontologies [OWL 2 Profiles].
2.1.2 Datatype Map Conformance
In OWL 2, semantic conditions are defined with respect to a datatype map [OWL 2 Specification]. This MUST be either the OWL 2 Datatype map [OWL 2 Specification], or an extension of the OWL 2 Datatype map to include additional datatypes.
Note that OWL 2 Profiles may support only a reduced set of datatypes. This is, however, a syntactic condition that must be met by documents in order to fall within the relevant profile, and the semantic conditions on the supported datatypes are unchanged, i.e., they are defined by a (possibly extended) OWL 2 Datatype map.
2.2 Document Checker Conformance
An OWL 2 document checker is a tool that takes one or more OWL 2 ontologies and checks some (syntactic or semantic) condition. As noted above, any conformant OWL 2 tool MUST accept ontology documents using the RDF/XML serialisation [OWL 2 Mapping to RDF Graphs]; it MAY also accept ontology documents using other serializations, for example the XML Serialization [OWL 2 XML Syntax].
The conformance conditions related to entailment checking and query answering are defined below. Other OWL 2 tools MUST satisfy similar conditions. In particular, they MUST be consistent with the Direct Semantics [OWL 2 Semantics] and/or the RDF-Based Semantics [OWL 2 RDF-Based Semantics].
2.2.1 Entailment Checker
An OWL 2 entailment checker takes as input two OWL 2 Full, DL, EL, QL, or RL ontology documents O1 and O2 and checks if O1 entails O2 with respect to a datatype map and either the Direct Semantics [OWL 2 Semantics] or the RDF-Based Semantics [OWL 2 RDF-Based Semantics]. Additionally:
- It MUST provide a means to determine the datatypes supported by its datatype map, and any limits it has on datatype literals and datatype values [OWL 2 Specification]; for example, by listing them in its supporting documentation.
- It MUST provide a means to determine the semantics it uses (either the Direct Semantics [OWL 2 Semantics] or the RDF-Based Semantics [OWL 2 RDF-Based Semantics]); for example, in its supporting documentation.
An OWL 2 entailment checker returns a single result, being True, False, Unknown or Error. True indicates that the relevant entailment holds; False indicates that the relevant entailment does not hold; Unknown indicates that the algorithm used by the checker is not able to determine if the entailment holds; Error indicates that the checker encountered an error condition such as receiving an invalid input or exceeding resource limits. While sometimes needed (for example, for pragmatic reasons), Unknown and Error are not desired responses for valid inputs.
Additionally, an OWL 2 entailment checker:
- MUST return Error if the parsing process fails (for example, due to network errors);
- MUST return Error if an input document uses datatypes that are not supported by its datatype map or literals that it does not support (for example, very large integers); and
- MUST return Error if the computation fails, for example as a result of exceeding resource limits.
Five different conformance classes of OWL 2 entailment checkers are defined:
An OWL 2 Full entailment checker is an OWL 2 entailment checker that takes RDF documents as input. It MUST return True only when O1 entails O2 with respect to the RDF-Based Semantics [OWL 2 RDF-Based Semantics], and it MUST return False only when O1 does not entail O2 with respect to the RDF-Based Semantics. It SHOULD NOT return Unknown.
An OWL 2 DL entailment checker is an OWL 2 entailment checker that takes OWL 2 DL ontology documents as input. It MUST return True only when O1 entails O2 with respect to the Direct Semantics [OWL 2 Semantics], and it MUST return False only when O1 does not entail O2 with respect to the Direct Semantics. It SHOULD NOT return Unknown.
An OWL 2 EL entailment checker is an OWL 2 entailment checker that takes OWL 2 EL ontology documents as input. It MUST return True only when O1 entails O2 with respect to the Direct Semantics [OWL 2 Semantics], and it MUST return False only when O1 does not entail O2 with respect to the Direct Semantics. It SHOULD NOT return Unknown.
An OWL 2 QL entailment checker is an OWL 2 entailment checker that takes OWL 2 QL ontology documents as input. It MUST return True only when O1 entails O2 with respect to the Direct Semantics [OWL 2 Semantics], and it MUST return False only when O1 does not entail O2 with respect to the Direct Semantics. It SHOULD NOT return Unknown.
An OWL 2 RL entailment checker is an OWL 2 entailment checker that takes RDF documents as input. It MUST return True only when O1 entails O2 with respect to the RDF-Based Semantics [OWL 2 RDF-Based Semantics], and it MUST return False only when O1 does not entail O2 with respect to the RDF-Based Semantics; it MAY return Unknown if FO(O1) ∪ R does not entail FO(O2) under the standard first-order semantics, where R denotes the OWL 2 RL/RDF rules [OWL 2 Profiles], and FO(O) denotes the FO theory corresponding to O in which triples are represented using the T predicate — that is, T(s, p, o) represents an RDF triple with the subject s, predicate p, and the object o.
An OWL 2 entailment checker is terminating if, given sufficient resources (memory, addressing space, etc.), it will always return True, False, or Unknown in a finite amount of time (i.e., CPU cycles) on syntactically-valid inputs.
An OWL 2 entailment checker is complete if, given sufficient resources, it will always return True or False on syntactically-valid inputs.
Note: Every OWL 2 Full entailment checker is also an OWL 2 RL entailment checker.
Note: Every OWL 2 DL entailment checker is also an OWL 2 EL and OWL 2 QL entailment checker.
Note: From Theorem 1 of Profiles [OWL 2 Profiles], it follows that an OWL 2 RL entailment checker can return False if O1 and O2 satisfy the constraints described in Theorem 1, and FO(O1) ∪ R does not entail FO(O2) under the standard first-order semantics, where R denotes the OWL 2 RL/RDF rules [OWL 2 Profiles], and FO(O) denotes the FO theory corresponding to O in which triples are represented using the T predicate — that is, T(s, p, o) represents an RDF triple with the subject s, predicate p, and the object o. Implementations not wishing to check whether O1 and O2 satisfy the relevant constraints can simply return Unknown whenever they are not able to return True.
2.2.2 Query Answering
Query answering is closely related to entailment checking. A query can be thought of as an ontology Q in which some of the terms have been replaced by variables x1, ..., xn. Given an ontology O, a tuple t = <t1, ..., tn> is an answer for Q with respect to O if O entails Q[x/t], where Q[x/t] is derived from Q by substituting the variables x1, ..., xn with t1, ..., tn; the answer to Q with respect to O is the set of all such tuples.
Although highly inefficient in practice, query answering could be performed simply by iterating through all possible n-tuples formed from terms occurring in O and checking the corresponding entailment using an OWL 2 entailment checker. The properties of OWL 2 entailment checkers mean that the resulting answer will always be sound, i.e., every tuple occurring in the answer set is an answer to the query. If any one of the entailment checks might return Unknown, then the answer to the query may be incomplete, i.e., there may exist a tuple t that is an answer to the query but that does not occur in the answer set; implementations SHOULD issue a warning in this case.
The properties of OWL 2 Full, DL, EL and QL entailment checkers mean that query answering SHOULD be both sound and complete. In the case of OWL RL, query answering SHOULD be sound, and will also be complete if both the ontology and the query satisfy the constraints described in Theorem 1.
3 Test Cases
3.1 Test Types
There are several types of tests detailed in the following sub-sections.
The relationship between a test case and test types is not functional, a specific test may meet the requirements of multiple test types. In such cases, the test case may be used as described for each of the types. For example, an entailment test is also a consistency test and may be used as either or both, depending on the tool being validated and the goal of validation.
3.1.1 Profile Identification Tests
Profile identification tests validate a tool's recognition of Syntactic Conformance. These tests require at least one input ontology. Each test describes the conformance of all input ontologies relative to structural and syntactic restrictions.
3.1.2 Consistency Tests
Consistency tests validate a tool's recognition of consistency, as defined in the [OWL 2 Direct Semantics] and the [OWL 2 RDF-Based Semantics]. These tests require at least one input ontology, a premise ontology. The import closure of the premise ontology is consistent.
3.1.3 Inconsistency Tests
Inconsistency tests validate a tool's recognition of consistency, as defined in the [OWL 2 Direct Semantics] and the [OWL 2 RDF-Based Semantics]. These tests require at least one input ontology, a premise ontology. The import closure of the premise ontology is not consistent.
3.1.4 Entailment Tests
Entailment tests validate the conformance of an Entailment Checker. These tests require at least two input ontologies, a premise ontology and a conclusion ontology. A conformant entailment checker will return True if provided the import closure of the premise ontology and the import closure of the conclusion ontology as inputs O1 and O2, respectively.
3.1.5 Non-Entailment Tests
Entailment tests validate the conformance of an Entailment Checker. These tests require at least two input ontologies, a premise ontology and a non-conclusion ontology. A conformant entailment checker will return False if provided the import closure of the premise ontology and the import closure of the non-conclusion ontology as inputs O1 and O2, respectively.
3.1.6 Syntax Translation Tests
Syntax translation tests validate the translation of OWL ontologies from one syntax to another, using the definition of structural equivalence defined in [OWL 2 Syntax]. Each input ontology used by a syntax translation test should be provided in multiple syntaxes. The ontology produced by parsing any one serialization of an input ontology must be structurally quivalent with the ontology produced by parsing any other serialization of the same input ontology.
3.2 Test Case Format
Test cases are described using OWL, based on the ontology documented in this section. The description includes axioms using the Functional Syntax, and using http://www.w3.org/2007/OWL/testOntology as the default prefix.
3.2.1 Input Ontologies
The :inputOntology property associates a test with one or more input ontologies. Subproperties of this property are used to differentiate among input ontologies when multiple are present.
Declaration( DataProperty( :inputOntology ) )
Declaration( DataProperty( :premiseOntology ) )
Declaration( DataProperty( :conclusionOntology ) )
Declaration( DataProperty( :nonConclusionOntology ) )
SubPropertyOf( :premiseOntology :inputOntology )
SubPropertyOf( :conclusionOntology :inputOntology )
SubPropertyOf( :nonConclusionOntology :inputOntology )
Similarly, subproperties are used to indicate the syntax of the input ontology.
Declaration( DataProperty( :fsInputOntology ) )
Declaration( DataProperty( :owlXmlInputOntology ) )
Declaration( DataProperty( :rdfXmlInputOntology ) )
SubPropertyOf( :fsInputOntology :inputOntology )
SubPropertyOf( :owlXmlInputOntology :inputOntology )
SubPropertyOf( :rdfXmlInputOntology :inputOntology )
3.2.2 Type
All test cases are individuals in the :TestCase class. Subclasses of this class are used to map tests to the test types described above. The axioms below describe the relationships between the test types and the input ontology requirements of each test type.
Declaration( Class( :TestCase ) )
Declaration( Class( :ProfileIdentificationTest ) )
Declaration( Class( :ConsistencyTest ) )
Declaration( Class( :InconsistencyTest ) )
Declaration( Class( :PositiveEntailmentTest ) )
Declaration( Class( :NegativeEntailmentTest ) )
SubClassOf( :ProfileIdentificationTest :TestCase )
SubClassOf( :ConsistencyTest :ProfileIdentificationTest )
SubClassOf( :InconsistencyTest :ProfileIdentificationTest )
SubClassOf( :PositiveEntailmentTest :ConsistencyTest )
SubClassOf( :NegativeEntailmentTest :ConsistencyTest )
SubClassOf( :ConsistencyTest MinCardinality( 1 :premiseOntology ) )
SubClassOf( :InconsistencyTest MinCardinality( 1 :premiseOntology ) )
SubClassOf( :PositiveEntailmentTest MinCardinality( 1 :conclusionOntology ) )
SubClassOf( :NegativeEntailmentTest MinCardinality( 1 :nonConclusionOntology ) )
DisjointClasses( :ConsistencyTest :InconsistencyTest )
3.2.3 Species
The :species property describes the syntactic conformance of the input ontology with respect to OWL 2 Full and OWL 2 DL.
If the property associates a test case with the individual :FULL, the input ontology is an OWL Full ontology document. This property assertion should exist for all test cases.
If the property associates a test case with the individual :DL, the input ontology is an OWL 2 DL ontology document.
Each test should either have a property assertion indicating the input ontology is an OWL DL ontology, or a negative property assertion indicating it is not.
Declaration( ObjectProperty( :species ) )
PropertyRange( :species OneOf( :DL :FULL ) )
DifferentIndividuals( :DL :FULL )
SubClassOf( :TestCase HasValue( :species :FULL ) )
3.2.4 Profiles
The :profile property describes the syntactic conformance of the input ontology with respect to the profiles of OWL 2.
If the property associates a test case with the individual :EL, the input ontology is an OWL 2 EL ontology document.
If the property associates a test case with the individual :QL, the input ontology is an OWL 2 QL ontology document.
If the property associates a test case with the individual :RL, the input ontology is an OWL 2 RL ontology document.
Declaration( ObjectProperty( :profile ) )
PropertyRange( :profile OneOf( :EL :QL :RL ) )
DifferentIndividuals( :EL :QL :RL )
The following axiom is included in the test ontology because OWL 2 EL and OWL 2 QL are syntactic profiles of OWL 2 DL.
SubClassOf(
SomeValuesFrom( :profile OneOf( :EL :QL ) )
HasValue( :species :DL )
)
For each profile, for each test there should either be a property assertion indicating the input ontology conforms to the restrictions of the profile, or a negative property assertion indicating it does not.
3.2.5 Imported Ontologies
The :importedOntology property associates a test case with an ontology contained in the imports closure of the input ontologies.
Declaration( DataProperty( :importedOntology ) )
As with the input ontology, subproperties are used to indicate the syntax of the import ontology.
Declaration( DataProperty( :fsImportedOntology ) )
Declaration( DataProperty( :owlXmlImportedOntology ) )
Declaration( DataProperty( :rdfXmlImportedOntology ) )
SubPropertyOf( :fsImportedOntology :importedOntology )
SubPropertyOf( :owlXmlImportedOntology :importedOntology )
SubPropertyOf( :rdfXmlImportedOntology :importedOntology )
DisjointProperties( :fsImportedOntology :owlXmlImportedOntology :rdfXmlImportedOntology )
3.2.6 Normative Syntax
The :normativeSyntax functional property associates a test case with an individual indicating which syntax.
The individual :FUNCTIONAL indicates the functional syntax input ontologies are normative and other syntaxes are informative.
The individual :OWLXML indicates the OWL XML syntax input ontologies are normative and other syntaxes are informative.
The individual :RDFXML indicates the RDF/XML syntax input ontologies are normative and other syntaxes are informative.
Declaration( ObjectProperty( :normativeSyntax ) )
FunctionalProperty( :normativeSyntax )
PropertyRange( :normativeSyntax OneOf( :RDFXML :FUNCTIONAL :OWLXML ) )
DifferentIndividuals( :RDFXML :FUNCTIONAL :OWLXML )
SubClassOf( :TestCase ExactCardinality( 1 :normativeSyntax ) )
If an input ontology is not an OWL 2 DL ontology document, the normative syntax must be RDF/XML.
SubClassOf(
IntersectionOf( :TestCase ComplementOf( HasValue( :species :DL ) ) )
HasValue( :normativeSyntax :RDFXML )
)
3.2.7 Normative Translation
The :normativeTranslation associates a syntax translation test case with an individual indicating a syntax from which a parse of an input ontology will be structurally equivalent to the same input ontology parsed from the normative syntax.
Declaration( ObjectProperty( :normativeTranslation ) )
PropertyRange( :normativeTranslation OneOf( :RDFXML :FUNCTIONAL :OWLXML ) )
DisjointProperties( :normativeSyntax :normativeTranslation )
EquivalentClasses( :SyntaxTranslationTest IntersectionOf( :TestCase MinCardinality( 1 :normativeTranslation ) ) )
3.2.8 Specific Semantics
Property assertions using the :semantics property indicate that a test is applicable under one type of OWL semantics, but not another.
The value :FULL indicates that the test is applicable if and only if the [OWL 2 RDF-Based Semantics] are used.
The value :DL indicates that the test is applicable if and only if the [OWL 2 Direct Semantics] are used.
Declaration( ObjectProperty( :semantics ) )
FunctionalProperty( :semantics )
PropertyRange( :semantics OneOf( :DL :FULL ) )
For all tests which depend on specific semantics the :alternativeSemanticsTest symmetric property associates the test with a second test which uses the alternative semantics.
Declaration( ObjectProperty( :alternativeSemanticsTest ) )
FunctionalProperty( :alternativeSemanticsTest )
SymmetricProperty( :alternativeSemanticsTest )
SubClassOf(
HasValue( :semantics :DL )
SomeValuesFrom( :alternativeSemanticsTest HasValue( :semantics :FULL ) )
)
SubClassOf(
HasValue( :semantics :FULL )
SomeValuesFrom( :alternativeSemanticsTest HasValue( :semantics :DL ) )
)
3.2.9 Status
The :status property indicates if a test case has been PROPOSED, ACCEPTED, or REJECTED by the OWL working group.
Declaration( ObjectProperty( :status ) )
FunctionalProperty( :status )
PropertyRange( :status OneOf( :Proposed :Approved :Rejected ) )
DifferentIndividuals( :Proposed :Approved :Rejected )
3.2.10 Creator
A test can be related to a literal description of it's author using the :creator annotation property.
Declaration( AnnotationProperty( :creator ) )
3.2.11 Description
A literal containing a human readable description can associated with a test using :description annotation property.
Declaration( AnnotationProperty( :description ) )
3.2.12 Issue
The :issue annotation property can be used to associate a test with to a specific WG issue (using a link to the issue tracker).
Declaration( AnnotationProperty( :issue ) )
3.2.13 Identifier
The :identifier annotation should be used to associate a unique identifier with a test case. This identifier should conform to irelative-ref as defined in [RFC-3987] so that it may be appended to http://www.w3.org/2007/OWL/owlt/ to generate a URI for the test.
Declaration( AnnotationProperty( :identifier ) )
3.2.14 Complete Test Ontology
Namespace( = <http://www.w3.org/2007/OWL/testOntology> )
Ontology(<http://www.w3.org/2007/OWL/testOntology>
Label("The OWL 2 Test Ontology")
Declaration( Class( :TestCase ) )
Declaration( AnnotationProperty( :identifier ) )
Declaration( AnnotationProperty( :description ) )
Declaration( AnnotationProperty( :creator ) )
Declaration( AnnotationProperty( :issue ) )
Declaration( DataProperty( :inputOntology ) )
Declaration( DataProperty( :premiseOntology ) )
Declaration( DataProperty( :conclusionOntology ) )
Declaration( DataProperty( :nonConclusionOntology ) )
SubPropertyOf( :premiseOntology :inputOntology )
SubPropertyOf( :conclusionOntology :inputOntology )
SubPropertyOf( :nonConclusionOntology :inputOntology )
Declaration( Class( :ProfileIdentificationTest ) )
SubClassOf( :ProfileIdentificationTest :TestCase )
SubClassOf( :ProfileIdentificationTest MinCardinality( 1 :inputOntology ) )
Declaration( Class( :ConsistencyTest ) )
Declaration( Class( :InconsistencyTest ) )
SubClassOf( :ConsistencyTest :ProfileIdentificationTest )
SubClassOf( :InconsistencyTest :ProfileIdentificationTest )
SubClassOf( :ConsistencyTest MinCardinality( 1 :premiseOntology ) )
SubClassOf( :InconsistencyTest MinCardinality( 1 :premiseOntology ) )
DisjointClasses( :ConsistencyTest :InconsistencyTest )
Declaration( Class( :PositiveEntailmentTest ) )
SubClassOf( :PositiveEntailmentTest :ConsistencyTest )
SubClassOf( :PositiveEntailmentTest MinCardinality( 1 :conclusionOntology ) )
Declaration( Class( :NegativeEntailmentTest ) )
SubClassOf( :NegativeEntailmentTest :ConsistencyTest )
SubClassOf( :NegativeEntailmentTest MinCardinality( 1 :nonConclusionOntology ) )
Declaration( ObjectProperty( :status ) )
FunctionalProperty( :status )
PropertyRange( :status OneOf( :Proposed :Approved :Rejected ) )
DifferentIndividuals( :Proposed :Approved :Rejected )
Declaration( ObjectProperty( :species ) )
PropertyRange( :species OneOf( :DL :FULL ) )
DifferentIndividuals( :DL :FULL )
SubClassOf( HasValue( :species :DL ) HasValue( :species :FULL ) )
Declaration( ObjectProperty( :profile ) )
PropertyRange( :profile OneOf( :EL :QL :RL ) )
DifferentIndividuals( :EL :QL :RL )
SubClassOf(
SomeValuesFrom( :profile OneOf( :EL :QL ) )
HasValue( :species :DL )
)
Declaration( ObjectProperty( :normativeSyntax ) )
FunctionalProperty( :normativeSyntax )
PropertyRange( :normativeSyntax OneOf( :RDFXML :FUNCTIONAL :OWLXML ) )
DifferentIndividuals( :RDFXML :FUNCTIONAL :OWLXML )
SubClassOf( :TestCase ExactCardinality( 1 :normativeSyntax ) )
Declaration( ObjectProperty( :normativeTranslation ) )
PropertyRange( :normativeTranslation OneOf( :RDFXML :FUNCTIONAL :OWLXML ) )
DisjointProperties( :normativeSyntax :normativeTranslation )
EquivalentClasses( :SyntaxTranslationTest IntersectionOf( :TestCase MinCardinality( 1 :normativeTranslation ) ) )
SubClassOf(
IntersectionOf( :TestCase ComplementOf( HasValue( :species :DL ) ) )
HasValue( :normativeSyntax :RDFXML )
)
Declaration( ObjectProperty( :semantics ) )
Declaration( ObjectProperty( :alternativeSemanticsTest ) )
PropertyRange( :semantics OneOf( :DL :FULL ) )
FunctionalProperty( :semantics )
FunctionalProperty( :alternativeSemanticsTest )
SymmetricProperty( :alternativeSemanticsTest )
SubClassOf(
HasValue( :semantics :DL )
SomeValuesFrom( :alternativeSemanticsTest HasValue( :semantics :FULL ) )
)
SubClassOf(
HasValue( :semantics :FULL )
SomeValuesFrom( :alternativeSemanticsTest HasValue( :semantics :DL ) )
)
Declaration( DataProperty( :fsInputOntology ) )
SubPropertyOf( :fsInputOntology :inputOntology )
Declaration( DataProperty( :owlXmlInputOntology ) )
SubPropertyOf( :owlXmlInputOntology :inputOntology )
Declaration( DataProperty( :rdfXmlInputOntology ) )
SubPropertyOf( :rdfXmlInputOntology :inputOntology )
DisjointProperties( :fsInputOntology :owlXmlInputOntology :rdfXmlInputOntology )
Declaration( DataProperty( :importedOntology ) )
Declaration( DataProperty( :fsImportedOntology ) )
Declaration( DataProperty( :owlXmlImportedOntology ) )
Declaration( DataProperty( :rdfXmlImportedOntology ) )
SubPropertyOf( :fsImportedOntology :importedOntology )
SubPropertyOf( :owlXmlImportedOntology :importedOntology )
SubPropertyOf( :rdfXmlImportedOntology :importedOntology )
DisjointProperties( :fsImportedOntology :owlXmlImportedOntology :rdfXmlImportedOntology )
# The following "intersection properties" have not been described in the test and conformance document but are used
Declaration( DataProperty( :fsPremiseOntology ) )
Declaration( DataProperty( :fsConclusionOntology ) )
Declaration( DataProperty( :fsNonConclusionOntology ) )
SubPropertyOf( :fsPremiseOntology :premiseOntology )
SubPropertyOf( :fsPremiseOntology :fsInputOntology )
SubPropertyOf( :fsConclusionOntology :conclusionOntology )
SubPropertyOf( :fsConclusionOntology :fsInputOntology )
SubPropertyOf( :fsNonConclusionOntology :nonConclusionOntology )
SubPropertyOf( :fsNonConclusionOntology :fsInputOntology )
Declaration( DataProperty( :owlXmlPremiseOntology ) )
Declaration( DataProperty( :owlXmlConclusionOntology ) )
Declaration( DataProperty( :owlXmlNonConclusionOntology ) )
SubPropertyOf( :owlXmlPremiseOntology :premiseOntology )
SubPropertyOf( :owlXmlPremiseOntology :owlXmlInputOntology )
SubPropertyOf( :owlXmlConclusionOntology :conclusionOntology )
SubPropertyOf( :owlXmlConclusionOntology :owlXmlInputOntology )
SubPropertyOf( :owlXmlNonConclusionOntology :nonConclusionOntology )
SubPropertyOf( :owlXmlNonConclusionOntology :owlXmlInputOntology )
Declaration( DataProperty( :rdfXmlPremiseOntology ) )
Declaration( DataProperty( :rdfXmlConclusionOntology ) )
Declaration( DataProperty( :rdfXmlNonConclusionOntology ) )
SubPropertyOf( :rdfXmlPremiseOntology :premiseOntology )
SubPropertyOf( :rdfXmlPremiseOntology :rdfXmlInputOntology )
SubPropertyOf( :rdfXmlConclusionOntology :conclusionOntology )
SubPropertyOf( :rdfXmlConclusionOntology :rdfXmlInputOntology )
SubPropertyOf( :rdfXmlNonConclusionOntology :nonConclusionOntology )
SubPropertyOf( :rdfXmlNonConclusionOntology :rdfXmlInputOntology )
)
3.3 The OWL Tests
3.3.1 Index By Type
3.3.1.1 Profile Identification Tests
{{#ask: test case status::test:Approved | ?test case id | order=ascending | limit=1000 | default=No test cases currently match this query. | link=none | format=ul | template=TestCase query row format }}
3.3.1.2 Consistency Tests
{{#ask: test case status::test:Approved | ?test case id | order=ascending | limit=1000 | default=No test cases currently match this query. | link=none | format=ul | template=TestCase query row format }}
3.3.1.3 Inconsistency Tests
{{#ask: test case status::test:Approved | ?test case id | order=ascending | limit=1000 | default=No test cases currently match this query. | link=none | format=ul | template=TestCase query row format }}
3.3.1.4 Entailment Tests
{{#ask: test case status::test:Approved | ?test case id | order=ascending | limit=1000 | default=No test cases currently match this query. | link=none | format=ul | template=TestCase query row format }}
3.3.1.5 Non-Entailment Tests
{{#ask: test case status::test:Approved | ?test case id | order=ascending | limit=1000 | default=No test cases currently match this query. | link=none | format=ul | template=TestCase query row format }}
3.3.1.6 Syntax Translation Tests
{{#ask: test case status::test:Approved | ?test case id | order=ascending | limit=1000 | default=No test cases currently match this query. | link=none | format=ul | template=TestCase query row format }}
3.3.2 Index By Issue
3.3.3 Index By Profile
3.3.3.1 OWL EL
{{#ask: test case profile::Test:EL test case status::test:Approved | ?test case id | order=ascending | limit=1000 | default=No test cases currently match this query. | link=none | format=ul | template=TestCase query row format }}
3.3.3.2 OWL RL
{{#ask: test case profile::Test:RL test case status::test:Approved | ?test case id | order=ascending | limit=1000 | default=No test cases currently match this query. | link=none | format=ul | template=TestCase query row format }}
3.3.3.3 OWL QL
{{#ask: test case profile::Test:QL test case status::test:Approved | ?test case id | order=ascending | limit=1000 | default=No test cases currently match this query. | link=none | format=ul | template=TestCase query row format }}
3.4 Process Overview
At the chair's discretion, individual tests or groups of tests are put to the Working Group in the weekly telecon or at a face-to-face meeting.
The Working Group may approve, reject, or defer decision on a test.
If the Working Group approves a test, its status is changed to APPROVED. All approved and only approved tests are included in the test case document.
If the Working Group rejects a test, its status is change to REJECTED.
If the Working Group defers decision on a test, its status remains PROPOSED.
At the chairs' discretion, the Working Group may review any previous decision regarding any test cases.
The Working Group has complete discretion to approve or reject tests independent of their conformance with this process or their conformance with the OWL Working Drafts.
3.5 Changes From WebOnt Tests
3.5.1 Formatting Changes
Each WebOnt test case used multiple files instead of storing ontologies in literals.
3.5.2 Changes to Test Types
"Profile Identification Tests" and "Syntax Translation Tests" did not exist in the WebOnt test suite.
"Tests for Incorrect Use of OWL Namespace" has been removed as a type. These tests were intended to highlight differences between the OWL RDF vocabulary and the DAML+OIL vocabulary. Time has reduced the motivation for such tests.
"True Tests", "OWL for OWL Tests", and "Import Entailment Tests" have been removed as types. These types were each specializations of entailment tests. To the extent that they are present in the current test suite, these tests are marked as positive entailment tests.
"Import Level Tests" has been removed as a type. This type is now included in the "Profile Identification Tests".
3.5.3 Changes to Process
Status of each test no longer includes "EXTRACREDIT" and "OBSOLETED".
4 References
- [OWL 2 Specification]
- OWL 2 Web Ontology Language: Structural Specification and Functional-Style Syntax. Peter F. Patel-Schneider, Ian Horrocks, and Boris Motik, eds., 2008.
- [OWL 2 Direct Semantics]
- OWL 2 Web Ontology Language: Direct Semantics. Bernardo Cuenca Grau and Boris Motik, eds., 2008.
- [OWL 2 RDF-Based Semantics]
- OWL 2 Web Ontology Language: RDF-Based Semantics. Michael Schneider, ed., 2008.
- [OWL 2 RDF Mapping]
- OWL 2 Web Ontology Language: Mapping to RDF Graphs. Bernardo Cuenca Grau and Boris Motik, eds., 2008.
- [OWL 2 XML Syntax]
- OWL 2 Web Ontology Language: XML Serialization. Boris Motik and Peter. F. Patel-Schneider, eds., 2008.
- [OWL 2 Profiles]
- OWL 2 Web Ontology Language: Profiles. Boris Motik, Bernardo Cuenca Grau, Ian Horrocks, Zhe Wu, Achille Fokoue and Carsten Lutz, eds., 2008.
- [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/ . Latest version available at http://www.w3.org/TR/rdf-syntax-grammar/ .
- [SROIQ]
- The Even More Irresistible SROIQ. Ian Horrocks, Oliver Kutz, and Uli Sattler. In Proc. of the 10th Int. Conf. on Principles of Knowledge Representation and Reasoning (KR 2006). AAAI Press, 2006.
- [OWL Metamodeling]
- On the Properties of Metamodeling in OWL. Boris Motik. Journal of Logic and Computation, 17(4):617-637, 2007.
- [RFC 2119]
- RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Network Working Group, S. Bradner. Internet Best Current Practice, March 1997.
- [RFC-3987]
- RFC 3987 - Internationalized Resource Identifiers (IRIs). M. Duerst, M. Suignard. IETF, January 2005, http://www.ietf.org/rfc/rfc3987.txt.
