W3C

Web Ontology Language (OWL) Test Cases

Editors Working Draft 17 December 2002

This version:
No URI
Latest version:
http://www.w3.org/TR/owl-test/
Previous version:
http://www.w3.org/TR/2002/WD-owl-test-20021024/
Editors:
Jeremy J. Carroll, HP <jjc@hpl.hp.com>
Jos De Roo, AGFA,<jos.deroo.jd@belgium.agfa.com>

The tests of this document are also available in these non-normative formats: Zip archive of approved tests, Zip archive of proposed tests, the test web site.


Abstract

This document contains and presents test cases for the Web Ontology Language (OWL) approved by the Web Ontology Working Group. Many of the test cases illustrate the correct usage of the Web Ontology Language (OWL), and the formal meaning of its constructs. Other test cases illustrate the resolution of issues considered by the working group.

Status below is fictitious.

Status of this document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.

The approved test cases in this document represent the consensus of the Web Ontology Working Group as at 7th October 2002. In later versions of this document many of the proposed tests will have moved into the approved tests section, either positively or negatively, depending on the working group consensus on the underlying issues. This document is subsidiary to the other Web Ontology Language recommendation track documents ([OWL Language] and [OWL Abstract Syntax and Semantics]) that give the formal definition of the language. The test cases described in this document (both approved and proposed) may be updated, replaced, negated or obsoleted at any time; despite this the working group would value implementor feedback on them. For this first Working Draft, feedback is particularly sought on issues of test format, description, process and presentation.

Comments on this document should be sent to public-webont-comments@w3.org, a mailing list with a public archive. General discussion of related technology is welcome in www-rdf-logic.

See also patent disclosures related to this work.

This is a W3C Working Draft for review by W3C members and other interested parties. It is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use W3C Working Drafts as reference materials or to cite them as other than "work in progress." A list of current W3C Recommendations and other technical documents can be found at http://www.w3.org/TR/.

This document has been produced as part of the W3C Semantic Web Activity (Activity Statement) following the procedures set out for the W3C Process. The document has been written by the Web Ontology Working Group. The goals of the Web Ontology working group are discussed in the Web Ontology Working Group charter.


Table of Contents


1. Introduction

As part of the definition of the Web Ontology Language (OWL) [OWL Language] the Web Ontology Working Group provides a set of test cases. This document contains those test cases. They are intended to provide examples for, and clarification of, the other recommendation track documents ([OWL Language] and [OWL Abstract Syntax and Semantics]) to which this document is subsiduary.

This document describes the various types of test used and the format in which the tests are presented. Alternative formats of the test collection are provided. These are intended to be suitable for use by OWL developers in test harnesses, possibly as part of a test driven development process, such as Extreme Programming [XP]. The format of the Manifest files used as part of these alternative formats is described.

This document describes the process for conflict resolution and errata related to these tests.

In the non-normative appendices, this document also describes the process for creation and approval of these tests.

Further appendices show further proposed tests that are awaiting resolution by the working group.

1.1. Conformance and Scope

Various conformance levels are defined in this document in terms of the other normative OWL recommendations.

The test cases do not constitute a conformance test suite for OWL.

However, systems that conform at various levels are required to pass the pertinent tests.

The test illustrate issue resolutions, and illustrate the use and meaning of the terms in the OWL namespace.

There are other miscellaneous tests motivated individually [[none in this version]] .

2. Deliverables (Normative)

The deliverables included as part of the test cases are:

Note: Other files can be found under the top URL of the web-site which are not part of the deliverable.

[[EDITORS' NOTE: Do we want index files for the web site that clarify which parts are part of the deliverable and which are not?]]

2.1. Normative Status

Of the deliverables the only normative tests are those included in this document. All other deliverables, are informative. Moreover, the recommendation document is informative except for the test data (specified in RDF/XML [RDF/XML?Syntax]), and the supporting documentation.

2.2. Conflict Resolution

When the normative tests and the other normative OWL recommendations diverge the following process should be followed.

If the OWL working drafts are at or before Candidate Recommendation then:

  1. The conflict is reported to public-webont-comments@w3.org.
  2. The working group makes appropriate modifications to remove the conflict.

If the OWL recommendation has passed Candidate Recommendation then:

  1. The conflict is reported to public-webont-comments@w3.org.
  2. The working group, or its successors, considers the conflict
  3. While this happens the other recommendation documents take precedence over the test case.
  4. If there is working group consensus to retain the test case as normative and to publish an erratum against the other recommendation document(s) then this is done.
  5. Otherwise an erratum is published which deletes the test case.

Note: this last step does not require consensus, or even a majority.

Note: the errata process over the tests is monotonic decreasing.

3. Test Types (Normative)

Each test consists of either one or more RDF/XML documents and a Manifest file. Tests of one document indicate some property of that document when viewed as an OWL knowledge base. Tests of two or more documents indicate a relationship between the two documents when viewed as OWL knowledge bases.

The Manifest file is named ManifestNNN.rdf (The NNN is replaced by the test number). It contains metadata (in RDF) indicating the test type, and describing the test.

3.1. Tests for Incorrect Use of OWL Namespace

These tests use one document. It is named badNNN.rdf. This document includes a use of the OWL namespace with a local name that is not defined by the OWL recommendation.

Note: These tests are intended to help migration from DAML+OIL [DAML+OIL], since the local names chosen are defined in the DAML+OIL namespace.

3.2. Entailment Tests

These tests use two documents. One is named premisesNNN.rdf, the other is named conclusionsNNN.rdf. The conclusions are entailed by the premises. Such entailment is defined by the OWL semantics [OWL Abstract Syntax and Semantics].

3.3. Non-Entailment Tests

These tests use two documents. One is named premisesNNN.rdf, the other is named nonconclusionsNNN.rdf. The nonconclusions are not entailed by the premises. Such entailment is defined by the OWL semantics [OWL Abstract Syntax and Semantics].

3.4. Consistency Tests

These tests use one document. It is named consistentNNN.rdf. The document is consistent as defined by the OWL Semantics [OWL Abstract Syntax and Semantics].

3.5. Inconsistency Tests

These tests use one document. It is named inconsistentNNN.rdf. The document is inconsistent as defined by the OWL semantics [OWL Abstract Syntax and Semantics].

3.6. Import Entailment Tests

These tests use more than two documents. One is named premisesNNN.rdf, another is named conclusionsNNN.rdf, the rest have names beginning supportNNN.rdf. The support documents are in the imports closure [Link needed] of the premises document. The conclusions are entailed by the imports closure of the premises. Such entailment is defined by the OWL semantics [OWL Abstract Syntax and Semantics].

3.7. Miscellaneous Tests (Informative)

During development, tests that are not of one of the above types, are classified as miscellaneous while awaiting a new test type to be defined.

4. Conformance (Normative)

This section uses the language of [RFC 2117].

A language tool without a reasoning capability MAY claim OWL Lite conformance if it can:

A language tool without a reasoning capability MAY claim OWL DL conformance If it is OWL Lite conformant and it can:

Reasoning components MAY claim complete OWL DL conformance [or complete OWL Lite conformance] if they provide complete reasoning over OWL DL [or OWL Lite]. i.e. A conformant complete OWL DL [Lite] reasoner MUST find proofs for all OWL DL [Lite] inferences. A conformant complete OWL DL [Lite] reasoner MAY find proofs for any OWL Full inference. A system which claims complete OWL DL conformance MUST also be OWL DL conformant.A system which claims complete OWL Lite conformance MUST also be OWL Lite? conformant.

A document MAY be described as an OWL Lite document if:

A document MAY be described as an OWL DL document if:

5. Manifest Files (Informative)

The Manifest file follows the RDF schema developed for the RDF Test Cases [RDF Test Cases].

This is augmented by a few new properties and types which are declared in the OWL Test Ontology, found at http://www.w3.org/2002/03owlt/testOntology.

Specifically each test has its own Manifest file, and is identified from the URI reference formed from the Manifest file's URL with a fragment test.

The test has one rdf:type explicit, and this is one of:

otest:NotOwlFeatureTest
A test for the incorrect us of OWL namespace.
otest:PositiveEntailmentTest
An entailment test.
otest:NegativeEntailmentTest
A non-entailment test.
otest:ConsistencyTest
A consistency test.
otest:InconsistencyTest
An inconsistency test.
otest:ImportEntailmentTest
An import entailment test.
rtest:MiscellaneousTest
Some other test.

Where otest is bound to http://www.w3.org/2002/03owlt/testOntology# and rtest is bound to http://www.w3.org/2000/10/rdf-tests/rdfcore/testSchema#.

The name of the original author of the test is shown using a dc:creator property, see [Dublin Core].

A description of the test is given (using XHTML markup [XHTML]) as the value of the rtest:description property.

An issue, if any, from the OWL Issues list [OWL Issues], is the value of a rtest:issue property.

An appropriate language feature, from the OWL namespace, if any, is the value of the otest:feature property.

The input documents with the test data are found as the value of the rtest:inputDocument property or as the value of both the rtest:premiseDocument and the rtest:conclusionDocument. The support files for import entailment tests are found as the values of otest:importedPremiseDocument.

The conformance level associated with both files and tests are given with the otest:level property. The value for each document and test is one of otest:Full, otest:DL or otest:Lite.

6. The OWL Tests (Normative)6.1. By Function

6.1.1. owl:FunctionalProperty

Full Positive Entailment Test: 001
Description: (informative)
If prop belongs to owl:FunctionalProperty, and subject denotes a resource and has two outgoing prop arcs, then the objects of these arcs have the same denotation.
Full Premises:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xmlns:first="http://www.w3.org/2002/03owlt/FunctionalProperty/premises001#" 
  xml:base="http://www.w3.org/2002/03owlt/FunctionalProperty/premises001" >
    <owl:FunctionalProperty rdf:ID="prop"/>
    <rdf:Description rdf:ID="subject">
      <first:prop rdf:resource="#object1" />
      <first:prop rdf:resource="#object2" />
    </rdf:Description>
</rdf:RDF>
Full Conclusions:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xml:base="http://www.w3.org/2002/03owlt/FunctionalProperty/conclusions001" >
    <rdf:Description rdf:about="premises001#object1">
      <owl:sameIndividualAs rdf:resource="premises001#object2" />
    </rdf:Description>
</rdf:RDF>

Full Positive Entailment Test: 002
Description: (informative)
If prop belongs to owl:FunctionalProperty, and subject denotes a resource and has two outgoing prop arcs, then the objects of these arcs have the same denotation. Hence an arc originating in object1 can be copied to object2.
Full Premises:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xmlns:eg ="http://www.example.org/"
  xmlns:first="http://www.w3.org/2002/03owlt/FunctionalProperty/premises002#" 
  xml:base="http://www.w3.org/2002/03owlt/FunctionalProperty/premises002" >
    &?t;owl:FunctionalProperty rdf:ID="prop"/>
    <rdf:Description rdf:ID="subject">
      <first:prop>
          <rdf:Description rdf:ID="object1">
            <eg:prop2>value</eg:prop2>
          </rdf:Description>
      </first:prop>
      <first:prop rdf:resource="#object2" />
    </rdf:Description>
</rdf:RDF>
Full Conclusions:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:eg ="http://www.example.org/"
  xml:base="http://www.w3.org/2002/03owlt/FunctionalProperty/conclusions002" >
    <rdf:Description rdf:about="premises002#object2" >
        <eg:prop2>value</eg:prop2>
    </rdf:Description>
</rdf:RDF>

6.1.2. owl:InverseFunctionalProperty

Full Positive Entailment Test: 001
Description: (informative)
If prop belongs to owl:InverseFunctionalProperty, and object denotes a resource and has two incoming prop arcs, then the subjects of these arcs have the same denotation.
Full Premises:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xmlns:first="http://www.w3.org/2002/03owlt/InverseFunctionalProperty/premises001#" 
  xml:base="http://www.w3.org/2002/03owlt/InverseFunctionalProperty/premises001" >
    <owl:InverseFunctionalProperty rdf:ID="prop"/>
    <rdf:Description rdf:ID="subject1">
      <first:prop rdf:resource="#object" />
    </rdf:Description>
    <rdf:Description rdf:ID="subject2">
      <first:prop rdf:resource="#object" />
    </rdf:Description>
</rdf:RDF>
Full Conclusions:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xml:base="http://www.w3.org/2002/03owlt/InverseFunctionalProperty/conclusions001" >
    <rdf:Description rdf:about="premises001#subject1">
      <owl:sameIndividualAs rdf:resource="premises001#subject2" />
    </rdf:Description>
</rdf:RDF>

Full Positive Entailment Test: 002
Description: (informative)
If prop belongs to owl:InverseFunctionalProperty, and object denotes a resource and has two incoming prop arcs, then the subjects of these arcs have the same denotation. Hence an arc originating in subject1 can be copied to subject2.
Full Premises:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xmlns:eg ="http://www.example.org/"
  xmlns:first="http://www.w3.org/2002/03owlt/InverseFunctionalProperty/premises002#" 
  xml:base="http://www.w3.org/2002/03owlt/InverseFunctionalProperty/premises002" >
    <owl:InverseFunctionalProperty rdf:ID="prop"/>
    <rdf:Description rdf:ID="subject1" >
      <first:prop rdf:resource="#object" />
      <eg:prop2>value</eg:prop2>
    </rdf:Description>
    <rdf:Description rdf:ID="subject2" >
      <first:prop rdf:resource="#object" />
    </rdf:Description>
</rdf:RDF>
Full Conclusions:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:eg ="http://www.example.org/"
  xml:base="http://www.w3.org/2002/03owlt/InverseFunctionalProperty/conclusions002" >
    <rdf:Description rdf:about="premises002#subject2" >
      <eg:prop2>value</eg:prop2>
    </rdf:Description>
</rdf:RDF>

6.1.3. owl:inverseOf

Full Positive Entailment Test: 001
Description: (informative)
If the pair (x,y) is an instance of P, than the pair (y,x) is an instance of the named property.
Full Premises:
<rdf:RDF 
    xmlns:my="http://example.net/myVocab#"
    xmlns:eg="http://example.net/vocab#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:your="http://example.net/yourVocab#">

    <rdf:Description rdf:about="http://example.net/myVocab#hasBrother">
        <owl:inverseOf rdf:resource="http://example.net/yourVocab#isBrotherOf"/>
    </rdf:Description>

    <rdf:Description rdf:about="http://example.net/vocab#joe">
        <my:hasBrother rdf:resource="http://example.net/vocab#bob"/>
    </rdf:Description>
</rdf:RDF>
Full Conclusions:
<rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:your="http://example.net/yourVocab#">

    <rdf:Description rdf:about="http://example.ne?/vocab#bob">
        <your:isBrotherOf rdf:resource="http://example.net/vocab#joe"/>
    </rdf:Description>
</rdf:RDF>

6.2. By Issue

6.2.1. Qualified Restrictions

Lite Illegal use of OWL namespace. 001
Description: (informative)
A DAML+OIL qualified cardinality constraint is not legal OWL.
Lite Incorrect:
<!DOCTYPE rdf:RDF [ 
   <!ENTITY owl "http://www.w3.org/2002/07/owl#">
]> 

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:eg="http://example.org/"
         xmlns:owl="&owl;"
    >

   <owl:Restriction owl:cardinalityQ="1">
      <owl:onProperty rdf:resource="#exampleProp"/>
      <owl:hasClassQ rdf:resource="#exampleClass"/>
   </owl:Restriction>
  
</rdf:RDF>

Lite Illegal use of OWL namespace. 002
Description: (informative)
A DAML+OIL qualified max cardinality constraint is not legal OWL.
Lite Incorrect:
<!DOCTYPE rdf:RDF [ 
   <!ENTITY owl "http://www.w3.org/2002/07/owl#">
]> 

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:owl="&owl;"
    >
   <owl:Restriction owl:maxCardinalityQ="1">
      <owl:onProperty rdf:resource="#exampleProp"/>
      <owl:hasClassQ rdf:resource="#exampleClass"/>
   </owl:Restriction>
  
</rdf:RDF>

Lite Illegal use of OWL namespace. 003
Description: (informative)
A DAML+OIL qualified min cardinality constraint is not legal OWL.
Lite Incorrect:
<!DOCTYPE rdf:RDF [ 
   <!ENTITY owl "http://www.w3.org/2002/07/owl#">
]> 


<rdf:RDF xmlns:rdf="http://www.w3.org/199?/02/22-rdf-syntax-ns#"
         xmlns:eg="http://example.org/"
         xmlns:owl="&owl;"
    >

   <owl:Restriction owl:minCardinalityQ="1">
      <owl:onProperty rdf:resource="#exampleProp"/>
      <owl:hasClassQ rdf:resource="#exampleClass"/>
   </owl:Restriction>
  
</rdf:RDF>

A. Test Creation, Approval and Modification

A.1. Creation

Tests are created by members of the working group. An (optional) test editor is provided to facilitate this. Tests are then placed in the appropriate directory in the test web site. This is done using CVS access to the W3C CVS server [W3C CVS].

When created, tests are given a status of "PROPOSED". The author of the test creates a Manifest file in the directory of the new test, identifying:

A.2. Approval

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 chair actions two members of the working group to review the tests a week before putting the test to the group.

If the Working Group approves a test, then it is included in the test case document.

The Working Group may reject a test, in which case its status is changed to "REJECTED". This does not indicate that the converse of the test has been accepted. There may be stylistic or other grounds for rejecting technically correct tests.

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.

In the light of new information, and at the chairs' discretion, the working group may review any previous decision regarding any test cases. The status of "OBSOLETED" may be used where a test has ceased to be appropriate.

A.3. Modification

Until this document reaches last call, the editors may make editorial changes to approved and proposed tests. This includes:

B. Stylistic Preferences

There is a preference for the following stylistic rules. None of these rules is obligatory, but test authors should be minded that it will be easier to gain working gain group consensus if they follow these rules.

B.1. Use of RDF/XML

Tests should normally be expressed in RDF/XML.

?he following RDF/XML grammar rules [RDF/XML Syntax] are not used:

  1. Property attributes.
  2. Bag ID.
  3. rdf:parseType="Resource".

B.2. Use of xml:base

Test and manifest files should have an xml:base attribute [XMLBASE] on the document element. This should show the preferred URL of the document, from which it is actually retrievable.

Files that contain no relative URIs may omit the xml:base attribute.

B.3. Use of .rdf Suffix

Test and manifest files should use the ".rdf" suffix. URIs should not. The URL used for xml:base declarations does not have a suffix.

B.4. Use of example Domains

All URLs in the test and manifest files should be retrievable web resources except for those that use domain names with "example" as the penultimate component (e.g. http://www.example.org/ontology#prop").

B.5. Copyright

The following copyright statement should be included as an XML comment in every test file:

<!--
  Copyright World Wide Web Consortium, (Massachusetts Institute of
  Technology, Institut National de Recherche en Informatique et en
  Automatique, Keio University).
 
  All Rights Reserved.
 
  Please see the full Copyright clause at
  <http://www.w3.org/Consortium/Legal/copyright-software.html>

  $Id: This string is updated by cvs. $
-->

B.6. Description

The description should:

The description should be included as an XML comment in each test file, and be included as RDF content in the Manifest file.

B.7. Directory Structure

Tests that relate principally to some owl property or class, should be put in a directory named using the local name of that property of class.

Otherwise, tests that relate to an issue should be put in a directory named like I3.4 where the issue number is taken from the OWL issue list [OWL Issues].

B.8. Test Numbering

Each directory should contain tests numbered consecutively from 001.

No two tests in a single directory should have the same number.

Each file in a test should have the number of the test at the end of its name, before the suffix.

The rest of the file name should follow the conventions for the test type.

Note: the approved tests in a directory will not necessarily be contiguously numbered.

Note: this differs from the RDF Core test case numbering conventions.

C. The Tests as Triples (Informative)

This section repeats the normative tests.

This time the test data is shown in simple triples, using N-triple syntax [RDF Test Cases] with qnames. Qnames are used in place of URIs in the syntax with no delimiters. This syntax conforms with the usage in N3 [N3], the namespace prefices are also declared using N3 syntax [N3].

The following namespace prefixes are used throughout:

rdf http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs
http://www.w3.org/2000/01/rdf-schema#
owl
http://www.w3.org/2002/07/owl#
first
The URL of the first file concatenated with #
second
The URL of the second file concatenated with #

In the N3 syntax [N3] used for namespace declarations, the first three appear as follows:

Namespaces:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .

Other namespaces are explicitly listed with the test data.

C.1. By Function

C.1.1. owl:FunctionalProperty

Full Positive Entailment Test: 001
Description:
If prop belongs to owl:FunctionalProperty, and subject denotes a resource and has two outgoing prop arcs, then the objects of these arcs have the same denotation.
Full Premises:
first:prop rdf:type owl:FunctionalProperty .
first:subject first:prop first:object1 .
first:subject first:prop first:object2 .
Full Conclusions:
first:object1 owl:sameIndividualAs first:object2 .

Full Positive Entailment Test: 002
Description:
If prop belongs to owl:FunctionalProperty, and subject denotes a resource and has two outgoing prop arcs, then the objects of these arcs have the same denotation. Hence an arc originating in object1 can be copied to object2.
Namespaces:
@prefix eg: &l?;http://www.example.org/> .
Full Premises:
first:prop rdf:type owl:FunctionalProperty .
first:object1 eg:prop2 "value" .
first:subject first:prop first:object1 .
first:subject first:prop first:object2 .
Full Conclusions:
first:object2 eg:prop2 "value" .

C.1.2. owl:InverseFunctionalProperty

Full Positive Entailment Test: 001
Description:
If prop belongs to owl:InverseFunctionalProperty, and object denotes a resource and has two incoming prop arcs, then the subjects of these arcs have the same denotation.
Full Premises:
first:prop rdf:type owl:InverseFunctionalProperty .
first:subject1 first:prop first:object .
first:subject2 first:prop first:object .
Full Conclusions:
first:subject1 owl:sameIndividualAs first:subject2 .

Full Positive Entailment Test: 002
Description:
If prop belongs to owl:InverseFunctionalProperty, and object denotes a resource and has two incoming prop arcs, then the subjects of these arcs have the same denotation. Hence an arc originating in subject1 can be copied to subject2.
Namespaces:
@prefix eg: <http://www.example.org/> .
Full Premises:
first:prop rdf:type owl:InverseFunctionalProperty .
first:subject1 first:prop first:object .
first:subject1 eg:prop2 "value" .
first:subject2 first:prop first:object .
Full Conclusions:
first:subject2 eg:prop2 "value" .

C.1.3. owl:inverseOf

Full Positive Entailment Test: 001
Description:
If the pair (x,y) is an instance of P, than the pair (y,x) is an instance of the named property.
Namespaces:
@prefix my: <http://example.net/myVocab#> .
@prefix your: <http://example.net/yourVocab#> .
@prefix eg: <http://example.net/vocab#> .
Full Premises:
my:hasBrother owl:inverseOf your:isBrotherOf .
eg:joe my:hasBrother eg:bob .
Full Conclusions:
eg:bob your:isBrotherOf eg:joe .

C.2. By Issue

C.2.1. Qualified Restrictions

Lite Illegal use of OWL namespace. 001
Description:
A DAML+OIL qualified cardinality constraint is not legal OWL.
Namespaces:
@prefix eg: <http://example.org/> .
Lite Incorrect:
_:jARP1800 rdf:type owl:Restriction .
_:jARP1800 owl:cardinalityQ "1" .
_:jARP1800 owl:onProperty first:exampleProp .
_:jARP1800 owl:hasClassQ first:exampleClass .

Lite Illegal use of OWL namespace. 002
Description:
A DAML+OIL qualified max cardinality constraint is not lega? OWL.
Lite Incorrect:
_:jARP1803 rdf:type owl:Restriction .
_:jARP1803 owl:maxCardinalityQ "1" .
_:jARP1803 owl:onProperty first:exampleProp .
_:jARP1803 owl:hasClassQ first:exampleClass .

Lite Illegal use of OWL namespace. 003
Description:
A DAML+OIL qualified min cardinality constraint is not legal OWL.
Namespaces:
@prefix eg: <http://example.org/> .
Lite Incorrect:
_:jARP1806 rdf:type owl:Restriction .
_:jARP1806 owl:minCardinalityQ "1" .
_:jARP1806 owl:onProperty first:exampleProp .
_:jARP1806 owl:hasClassQ first:exampleClass .

D. Proposed Tests (Informative)

D.1. By Function

D.1.1. owl:FunctionalProperty

Full Positive Entailment Test: 003
Description:
If prop is an owl:FunctionalProperty, then its inverse is an owl:InverseFunctionalProperty.
Full Premises:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xml:base="http://www.w3.org/2002/03owlt/FunctionalProperty/premises003" >
    <owl:FunctionalProperty rdf:ID="prop">
      <owl:inverseOf rdf:resource="#inv"/>
    </owl:FunctionalProperty>
</rdf:RDF>
Full Conclusions:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xml:base="http://www.w3.org/2002/03owlt/FunctionalProperty/conclusions003" >
    <owl:InverseFunctionalProperty rdf:about="premises003#inv"/>
</rdf:RDF>

Full Positive Entailment Test: 004
Description:
If the range of prop is a singleton set then it is necessarily functional, (i.e. every member of its domain has a single value) and so it is an owl:FunctionalProperty.
Full Premises:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"  
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xml:base="http://www.w3.org/2002/03owlt/FunctionalProperty/premises004" >
    <owl:ObjectProperty rdf:ID="prop">
      <rdfs:range rdf:resource="#Singleton"/>
    </owl:ObjectProperty>
    <rdfs:Class rdf:ID="Singleton">
      <owl:oneOf rdf:parseType="Collection">
          <rdf:Description/>
      </owl:oneOf>
    </rdfs:Class>
</rdf:RDF>
Full Conclusions:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xml:base="http://www.w3.org/2002/03owlt/FunctionalProperty/conclusions004" >
    <owl:FunctionalProperty rdf:about="premises004#prop"/>
</rdf:RDF>

Full Positive Entailment Test: 005
Description:
If prop belongs to owl:FunctionalProperty then an OWL object has at most one value for prop.
Full Premises:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xmlns:eg ="http://www.example.org/">
    <owl:FunctionalProperty rdf:about="http://www.example.org/foo#prop" />
    <owl:Thing rdf:about="http://www.example.org/foo#object" />
</rdf:RDF>
Full Conclusions:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xmlns:eg ="http://www.example.org/">
    <owl:Thing rdf:about="http://www.example.org/foo#object">
      <rdf:type>
        <owl:Restriction>
   <owl:onProperty>
     <owl:FunctionalProperty rdf:about="http://www.example.org/foo#prop" />
   </owl:onProperty>
   <owl:maxCardinality 
      rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
      >1</owl:maxCardinality>
        </owl:Restriction>
      </rdf:type>
    </owl:Thing>
</rdf:RDF>

D.1.2. owl:InverseFunctionalProperty

Full Positive Entailment Test: 003
Description:
If prop is an owl:InverseFunctionalProperty, then its inverse is an owl:FunctionalProperty.
Full Premises:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xml:base="http://www.w3.org/2002/03owlt/InverseFunctionalProperty/premises003" >
    <owl:InverseFunctionalProperty rdf:ID="prop">
      <owl:inverseOf rdf:resource="#inv"/>
    </owl:InverseFunctionalProperty>
</rdf:RDF>
Full Conclusions:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xml:base="http://www.w3.org/2002/03owlt/InverseFunctionalProperty/conclusions003" >
    <owl:FunctionalProperty rdf:about="premises003#inv"/>
</rdf:RDF>

Full Positive Entailment Test: 004
Description:
If the domain of prop is a singleton set then it is necessarily inverse functional, (i.e. every member of its range is the value of a single item) so it is an owl:InverseFunctionalProperty.
Full Premises:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"  
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xml:base="http://www.w3.org/2002/03owlt/InverseFunctionalProperty/premises004" >
    <owl:ObjectProperty rdf:ID="prop">
      <rdfs:domain rdf:resource="#Singleton"/>
    </owl:ObjectProperty>
    <rdfs:Class rdf:ID="Singleton">
      <owl:oneOf rdf:parseType="Collection">
          <rdf:Description/>
      </owl:oneOf>
    </rdfs:Class>
</rdf:RDF>
Full Conclusions:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#"
  xml:base="http://www.w3.org/2002/03owlt/InverseFunctionalProperty/conclusions004" >
    <owl:InverseFunctionalProperty rdf:about="premises004#prop"/>
</rdf:RDF>

D.1.3. owl:Nothing

Full Inconsistent document. 001
Description:
The triple asserts something of type Nothing, however that is the empty class.
Full Inconsistent:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#">

  <owl:Nothing/>
</rdf:RDF>

Full Positive Entailment Test: 002
Description:
There is one empty owl:Class, and it is often called Nothing.
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    >


</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#">

   <owl:Class>
      <owl:oneOf rdf:parseType="Collection">
      </owl:oneOf>
      <owl:sameClassAs 
         rdf:resource="http://www.w3.org/2002/07/owl#Nothing" />
   </owl:Class>

</rdf:RDF>

D.1.4. owl:TransitiveProperty

Full Positive Entailment Test: 001
Description:
A simple illustration of transitivity.
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/TransitiveProperty/premises001#"
    xmlns:second="http://www.w3.org/2002/03owlt/TransitiveProperty/conclusions001#"
    xml:base="http://www.w3.org/2002/03owlt/TransitiveProperty/premises001" >

    <rdf:Description rdf:abou?="premises001#Antwerp">
        <first:path rdf:resource="premises001#Amsterdam"/>
    </rdf:Description>

    <rdf:Description rdf:about="premises001#Ghent">
        <first:path rdf:resource="premises001#Antwerp"/>
    </rdf:Description>

    <owl:TransitiveProperty rdf:about="premises001#path">
    </owl:TransitiveProperty>

</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/TransitiveProperty/premises001#"
    xmlns:second="http://www.w3.org/2002/03owlt/TransitiveProperty/conclusions001#"
    xml:base="http://www.w3.org/2002/03owlt/TransitiveProperty/conclusions001" >

    <rdf:Description rdf:about="premises001#Ghent">
        <first:path rdf:resource="premises001#Amsterdam"/>
    </rdf:Description>

</rdf:RDF>

D.1.5. owl:allValuesFrom

Lite Positive Entailment Test: 001
Description:
A simple example.
Lite Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/allValuesFrom/premises001#"
    xml:base="http://www.w3.org/2002/03owlt/allValuesFrom/premises001" >
    <owl:Class rdf:ID="r">
      <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="#p"/>
            <owl:allValuesFrom rdf:resource="#c"/>
        </owl:Restriction>
      </rdfs:subClassOf>
    </owl:Class>
    <owl:ObjectProperty rdf:ID="p">
       <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
       <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    </owl:ObjectProperty>
    <owl:Class rdf:ID="c"/>
    <first:r rdf:ID="i">
       <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
       <first:p>
         <owl:Thing rdf:ID="o" />
       </first:p>
    </first:r>
</rdf:RDF>
Lite Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:first="http://www.w3.org/2002/03owlt/allValuesFrom/premises001#"
    xml:base="http://www.w3.org/2002/03owlt/allValuesFrom/conclusions001" >
    <first:c rdf:about="premises001#o">
       <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    </first:c>
</rdf:RDF>

Lite Negative Entailment Test: 002
Description:
See someValuesFrom.
Lite Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/allValuesFrom/premises002#"
    xml:base="http://www.w3.org/2002/03owlt/allValuesFrom/premises002" >
    <owl:Class rdf:ID="r">
      <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="#p"/>
            <owl:allValuesFrom rdf:resource="#c"/>
        </owl:Restriction>
      </rdfs:subClassOf>
    </owl:Class>
    <owl:ObjectProperty rdf:ID="p">
       <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
       <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    </owl:ObjectProperty>

    <owl:Class rdf:ID="c"/>
    <first:r rdf:ID="i">
      <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    </first:r>
</rdf:RDF>
Lite Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/allValuesFrom/premises002#"
    xmlns:second="http://www.w3.org/2002/03owlt/allValuesFrom/nonconclusions002#"
    xml:base="http://www.w3.org/2002/03owlt/allValuesFrom/nonconclusions002" >
    <owl:Thing rdf:about="premises002#i">
        <first:p>
           <first:c rdf:nodeID="o" />
         </first:p>
    </owl:Thing>
    <owl:Thing rdf:nodeID="o" />
</rdf:RDF>

D.1.6. owl:disjointWith

Lite Positive Entailment Test: 001
Description:
Disjoint classes have different members.
Lite Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/disjointWith/premises001#"
    xml:base="http://www.w3.org/2002/03owlt/disjointWith/premises001" >

   <owl:Class rdf:ID="A">
      <owl:disjointWith>
           <owl:Class rdf:ID="B"/>
      </owl:disjointWith>
   </owl:Class>
   <first:A rdf:ID="a"/>
   <owl:Thing rdf:about="#a"/>
   <first:B rdf:ID="b"/>
   <owl:Thing rdf:about="#b"/>

</rdf:RDF>
Lite Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02?22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/disjointWith/premises001#"
    xml:base="http://www.w3.org/2002/03owlt/disjointWith/conclusions001" >
    <owl:Thing rdf:about="premises001#a">
       <owl:differentFrom>
          <owl:Thing rdf:about="premises001#b"/>
       </owl:differentFrom>
    </owl:Thing>
</rdf:RDF>

Full Positive Entailment Test: 002
Description:
Disjoint classes have different members; OWL Full.
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/disjointWith/premises002#"
    xml:base="http://www.w3.org/2002/03owlt/disjointWith/premises002" >

   <rdf:Description rdf:ID="A">
      <owl:disjointWith>
           <rdf:Description rdf:ID="B"/>
      </owl:disjointWith>
   </rdf:Description>
   <first:A rdf:ID="a"/>
   <first:B rdf:ID="b"/>

</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xml:base="http://www.w3.org/2002/03owlt/disjointWith/conclusions002" >
    <rdf:Description rdf:about="premises002#a">
       <owl:differentFrom rdf:resource="premises002#b"/>
    </rdf:Description>
</rdf:RDF>

D.1.7. owl:imports

Full Import Entailment Test: 001
Description:
If a document imports another document, then it entails anything that is entailed by the conjunction of the two documents.
Full http://www.w3.org/2002/03owlt/imports/premises001
<rdf:RDF
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
    xmlns:owl='http://www.w3.org/2002/07/owl#'
    xmlns:ont='http://www.w3.org/2002/03owlt/imports/support001-A#'
    xml:base='http://www.w3.org/2002/03owlt/imports/premises001' >

    <rdf:Description rdf:about=''>
        <owl:imports rdf:resource='http://www.w3.org/2002/03owlt/imports/support001-A.rdf'/>
    </rdf:Description>

    <ont:Man rdf:about='http://example.org/data#Socrates'/>

</rdf:RDF>
Lite Imported Premises
<rdf:RDF
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
    xmlns:owl='http://www.w3.org/2002/07/owl#'
    xml:base='http://www.w3.org/2002/03owlt/imports/support001-A' >

    <owl:Ontology rdf:about=''/>

    <owl:Class rdf:ID='Man'>
        <rdfs:subClassOf rdf:resource='#Mortal'/>
    </owl:Class>

    <owl:Class rdf:ID='Mortal'/>

</rdf:RDF>
Full http://www.w3.org/2002/03owlt/imports/conclusions001
<rdf:RDF
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
    xmlns:owl='http://www.w3.org/2002/07/owl#'
    xml:base='http://www.w3.org/2002/03owlt/imports/conclusions001' >

    <rdf:Description rdf:about='http://example.org/data#Socrates'>
        <rdf:type rdf:resource='http://www.w3.org/2002/03owlt/imports/support001-A#Mortal'/>
    </rdf:Description>

</rdf:RDF>

Full Negative Entailment Test: 002
Description:
If a premise document uses a namespace but does not import the document corresponding to the namespace, then the premises do not necessarily entail anything that is entailed by the conjunction of the two documents.
Full Premises:
<rdf:RDF
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
    xmlns:owl='http://www.w3.org/2002/07/owl#'
    xmlns:ont='http://www.w3.org/2002/03owlt/imports/support002-A#'
    xml:base='http://www.w3.org/2002/03owlt/imports/premises002' >

    <ont:Man rdf:about='http://example.org/data#Socrates'/>

</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
    xmlns:owl='http://www.w3.org/2002/07/owl#'
    xml:base='http://www.w3.org/2002/03owlt/imports/conclusions002' >

    <rdf:Description rdf:about='http://example.org/data#Socrates'>
        <rdf:type rdf:resource='http://www.w3.org/2002/03owlt/imports/support002-A#Mortal'/>
    </rdf:Description>

</rdf:RDF>

Full Import Entailment Test: 003
Description:
If a document imports a document which in turn imports a third document, then it entails anything which is entailed by the conjunction of the statements from the three documents. That is, imports is transitive.
Full http://www.w3.org/2002/03owlt/imports/premises003
<rdf:RDF
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
    xmlns:owl='http://www.w3.org/2002/07/owl#'
    xmlns:ont='http://www.w3.org/2002/03owlt/imports/support003-A#'
    xml:base='http://www.w3.org/2002/03owlt/imports/premises003' >

    <rdf:Description rdf:about=''>
        <owl:imports rdf:resource='http://www.w3.org/2002/03owlt/imports/support003-A.rdf'/>
    </rdf:Description>

    <ont:Man rdf:about='http://example.org/data#Socrates'/>

</rdf:RDF>
Lite Imported Premises
<rdf:RDF
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
    xmlns:owl='http://www.w3.org/2002/07/owl#'
    xml:base='http://www.w3.org/2002/03owlt/imports/support003-A' >

    <owl:Ontology rdf:about=''>
        <owl:imports rdf:resource='http://www.w3.org/2002/03owlt/imports/support003-B.rdf'/>
    </owl:Ontology>

    <owl:Class rdf:ID='Man'>
        <rdfs:subClassOf rdf:resource='#Person'/>
    </owl:Class>

    <owl:Class rdf:ID='Person'/>

</rdf:RDF>
Lite Imported Premises
<rdf:RDF
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
    xmlns:owl='http://www.w3.org/2002/07/owl#'
    xml:base='http://www.w3.org/2002/03owlt/imports/support003-B' >

    <owl:Ontology rdf:about=''/>

    <owl:Class rdf:about='http://www.w3.org/2002/03owlt/imports/support003-A#Person'>
        <rdfs:subClassOf rdf:resource='#Mortal'/>
    </owl:Class>

    <owl:Class rdf:ID='Mortal'/>

</rdf:RDF>
Full http://www.w3.org/2002/03owlt/imports/conclusions003
<rdf:RDF
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
    xmlns:owl='http://www.w3.org/2002/07/owl#'
    xml:base='http://www.w3.org/2002/03owlt/imports/conclusions003' >

    <rdf:Description rdf:about='http://example.org/data#Socrates'>
        <rdf:type rdf:resource='http://www.w3.org/2002/03owlt/imports/support003-B#Mortal'/>
    </rdf:Description>

</rdf:RDF>

D.1.8. owl:intersectionOf

Full Positive Entailment Test: 001
Description:
The order of the classes in an intersectionOf construct is unimportant.
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/intersectionOf/premises001#"
    xml:base="http://www.w3.org/2002/03owlt/intersectionOf/premises001" >

    <rdf:Description rdf:about="premises001#B">
        <owl:intersectionOf rdf:parseType="Collection">
            <rdf:Description rdf:about="premises001#Student"/>
            <rdf:Description rdf:about="premises001#Employee"/>
        </owl:intersectionOf>
    </rdf:Description>

    <rdf:Description rdf:about="premises001#C">
        <owl:intersectionOf rdf:parseType="Collection">
            <rdf:Description rdf:about="premises001#Employee"/>
            <rdf:Description rdf:about="premises001#Student"/>
        </owl:intersectionOf>
    </rdf:Description>

    <first:B rdf:about="premises001#John">
    </first:B>

</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:first="http://www.w3.org/2002/03owlt/intersectionOf/premises001#"
    xml:base="http://www.w3.org/2002/03owlt/intersectionOf/conclusions001" >

    <first:C rdf:about="premises001#John">
    </first:C>

</rdf:RDF>

D.1.9. owl:maxCardinality

Full Inconsistent document. 001
Description:
A property with maximum cardinality of two cannot take three distinct values on some subject node.
Full Inconsistent:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/maxCardinality/inconsistent001#"
    xml:base="http://www.w3.org/2002/03owlt/maxCardinality/inconsistent001" >

    <rdf:Description rdf:about="inconsistent001#sb1">
        <rdf:type rdf:parseType="Resource">
            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
            <owl:maxCardinality
              rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
             >2</owl:maxCardinality>
            <owl:onProperty rdf:resource="inconsistent001#prop"/>
        </rdf:type>
        <first:prop rdf:resource="inconsistent001#ob1"/>
        <first:prop rdf:resource="inconsistent001#ob2"/>
        <first:prop rdf:resource="inconsistent001#ob3"/>
    </rdf:Description>

    <rdf:Description rdf:about="inconsistent001#ob1">
        <owl:differentIndividualF?om rdf:resource="inconsistent001#ob2"/>
        <owl:differentIndividualFrom rdf:resource="inconsistent001#ob3"/>
    </rdf:Description>

    <rdf:Description rdf:about="inconsistent001#ob2">
        <owl:differentIndividualFrom rdf:resource="inconsistent001#ob3"/>
    </rdf:Description>

    <owl:ObjectProperty rdf:about="inconsistent001#prop"/>

</rdf:RDF>

Full Inconsistent document. 002
Description:
A property with maximum cardinality of two cannot take three distinct values on some subject node. In this example, one of the three values is implicit.
Full Inconsistent:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/maxCardinality/inconsistent002#"
    xml:base="http://www.w3.org/2002/03owlt/maxCardinality/inconsistent002" >

    <rdf:Description rdf:about="inconsistent002#sb1">
        <rdf:type rdf:parseType="Resource">
            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
            <owl:maxCardinality>2</owl:maxCardinality>
            <owl:onProperty rdf:resource="inconsistent002#prop"/>
        </rdf:type>
        <first:prop rdf:resource="inconsistent002#ob1"/>
        <first:prop rdf:resource="inconsistent002#ob2"/>
        <first:otherprop rdf:resource="inconsistent002#ob3"/>
    </rdf:Description>

    <rdf:Description rdf:about="inconsistent002#ob1">
        <owl:differentIndividualFrom rdf:resource="inconsistent002#ob2"/>
        <owl:differentIndividualFrom rdf:resource="inconsistent002#ob3"/>
    </rdf:Description>

    <rdf:Description rdf:about="inconsistent002#ob2">
        <owl:differentIndividualFrom rdf:resource="inconsistent002#ob3"/>
    </rdf:Description>

    <owl:ObjectProperty rdf:about="inconsistent002#prop"/>

    <rdf:Description rdf:about="inconsistent002#otherprop">
        <rdfs:subPropertyOf rdf:resource="inconsistent002#prop"/>
    </rdf:Description>

</rdf:RDF>

D.1.10. owl:oneOf

Full Consistent document. 001
Description:
oneOf does not indicate that the named individuals are distinct. Thus a consistent interpretation of this file is when all the individual names denote the same ind?vidual.
Full Consistent:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/oneOf/consistent001#"
    xml:base="http://www.w3.org/2002/03owlt/oneOf/consistent001" >
   <owl:Class>
      <owl:oneOf rdf:parseType="Collection">
         <rdf:Description rdf:ID="amy"/>
         <rdf:Description rdf:ID="bob"/>
         <rdf:Description rdf:ID="caroline"/>
      </owl:oneOf>
      <owl:sameClassAs>
           <owl:Class>
             <owl:oneOf rdf:parseType="Collection">
               <rdf:Description rdf:ID="yolanda"/>
               <rdf:Description rdf:ID="zebedee"/>
             </owl:oneOf>
           </owl:Class>
      </owl:sameClassAs>
   </owl:Class>

</rdf:RDF>

D.1.11. owl:someValuesFrom

Full Positive Entailment Test: 001
Description:
A simple example.
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/someValuesFrom/premises001#"
    xml:base="http://www.w3.org/2002/03owlt/someValuesFrom/premises001" >
    <owl:Class rdf:ID="r">
      <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="#p"/>
            <owl:someValuesFrom rdf:resource="#c"/>
        </owl:Restriction>
      </rdfs:subClassOf>
    </owl:Class>
    <owl:ObjectProperty rdf:ID="p"/>
    <owl:Class rdf:ID="c"/>
    <first:r rdf:ID="i"/>
</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/someValuesFrom/premises001#"
    xml:base="http://www.w3.org/2002/03owlt/someValuesFrom/conclusions001" >
    <rdf:Description rdf:about="premises001#i">
        <first:p>
           <first:c />
         </first:p>
    </rdf:Description>

</rdf:RDF>

Full Negative Entailment Test: 002
Description:
See allValuesFrom
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/someValuesFrom/premises002#"
    xml:base="http://www.w3.org/2002/03owlt/someValuesFrom/premises002" >
    <owl:Class rdf:ID="r">
      <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="#p"/>
            <owl:someValuesFrom rdf:resource="#c"/>
        </owl:Restriction>
      </rdfs:subClassOf>
    </owl:Class>
    <owl:ObjectProperty rdf:ID="p"/>
    <owl:Class rdf:ID="c"/>
    <first:r rdf:ID="i">
       <first:p rdf:resource="#o"/>
    </first:r>
</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:first="http://www.w3.org/2002/03owlt/someValuesFrom/premises002#"
    xml:base="http://www.w3.org/2002/03owlt/someValuesFrom/conclusions002" >
    <first:c rdf:about="premises001#o"/>

</rdf:RDF>

D.1.12. owl:unionOf

Full Positive Entailment Test: 001
Description:
A union is a superclass of its parts.
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/unionOf/premises001#"
    xmlns:second="http://www.w3.org/2002/03owlt/unionOf/conclusions001#"
    xml:base="http://www.w3.org/2002/03owlt/unionOf/premises001" >

    <rdf:Description rdf:about="premises001#A">
        <owl:unionOf rdf:parseType="Collection">
            <rdf:Description rdf:about="premises001#Human"/>
            <rdf:Description rdf:about="premises001#Animal"/>
        </owl:unionOf>
    </rdf:Description>

    <first:Human rdf:about="premises001#John">
    </first:Human>

</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/unionOf/premises001#"
    xmlns:second="http://www.w3.org/2002/03owlt/unionOf/conclusions001#"
    xml:base="http://www.w3.org/2002/03owlt/unionOf/conclusions001" >

    <first:A rdf:about="premises001#John">
    </first:A>

</rdf:RDF>

Full Positive Entailment Test: 002
Description:
A union behaves quite like set theoretic union.
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/unionOf/premises002#"
    xmlns:second="http://www.w3.org/2002/03owlt/unionOf/conclusions002#"
    xml:base="http://www.w3.org/2002/03owlt/unionOf/premises002" >

    <rdf:Description rdf:about="premises002#A">
        <owl:unionOf rdf:parseType="Collection">
            <rdf:Description rdf:about="premises002#Human"/>
            <rdf:Description rdf:about="premises002#Animal"/>
        </owl:unionOf>
    </rdf:Description>

    <rdf:Description rdf:about="premises002#B">
        <owl:unionOf rdf:parseType="Collection">
            <rdf:Description rdf:about="premises002#Animal"/>
            <rdf:Description rdf:about="premises002#Human"/>
            <rdf:Description rdf:about="premises002#Stone"/>
        </owl:unionOf>
    </rdf:Description>

    <first:A rdf:about="premises002#John">
    </first:A>

</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:first="http://www.w3.org/2002/03owlt/unionOf/premises002#"
    xmlns:second="http://www.w3.org/2002/03owlt/unionOf/conclusions002#"
    xml:base="http://www.w3.org/2002/03owlt/unionOf/conclusions002" >

    <first:B rdf:about="premises002#John">
    </first:B>

</rdf:RDF>

D.2. By Issue

D.2.1. UnambiguousProperty

Lite Illegal use of OWL namespace. 001
Description:
This is not legal OWL. The name UnambiguousProperty is not in the OWL namespace. daml:UnambiguousProperty corresponds to owl:InverseFunctionalProperty.
Lite Incorrect:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#" >
    <owl:UnambiguousProperty rdf:ID="Name"/>
</rdf:RDF>

D.2.2. UniqueProp BadName

Lite Illegal use of OWL namespace. 001
Description:
This is not legal OWL. The name UniqueProperty is not in the OWL namespace. daml:UniqueProperty corresponds to owl:FunctionalProperty.
Lite Incorrect:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl ="http://www.w3.org/2002/07/owl#" >
    <owl:UniqueProperty rdf:ID="Name"/>
</rdf:RDF>

D.2.3. Uniform treatment of literal data values

Full Positive Entailment Test: 001
Description:
stateCode example using an inverseFunctionalProperty and literals
Full Premises:
<rdf:RDF
  xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
  xmlns:NS0='http://example.org/vocab#'
 >
  <rdf:Description rdf:nodeID='A0'>
    <NS0:stateCode>KS</NS0:stateCode>
    <NS0:population>2688418</NS0:population>
  </rdf:Description>
  <rdf:Description rdf:about='http://example.org/vocab#stateCode'>
    <rdf:type rdf:resource='http://www.w3.org/2002/07/owl#InverseFunctionalProperty'/>
  </rdf:Description>
  <rdf:Description rdf:nodeID='A1'>
    <NS0:stateCode>KS</NS0:stateCode>
    <NS0:stateBird rdf:resource='http://example.org/vocab#WesternMeadowlark'/>
  </rdf:Description>
</rdf:RDF>
Full Conclusions:
<rdf:RDF
  xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
  xmlns:NS0='http://example.org/vocab#'
 >
  <rdf:Description rdf:nodeID='A0'>
    <NS0:population>2688418</NS0:population>
    <NS0:stateBird rdf:resource='http://example.org/vocab#WesternMeadowlark'/>
  </rdf:Description>
</rdf:RDF>

D.2.4. Semantic-Layering

Full Positive Entailment Test: 001
Description:
This entailment is similar to one that does not hold in RDFS.
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xml:base="http://www.w3.org/2002/03owlt/I5.3/premises001" >

   <rdf:Property rdf:ID="prop">
     <rdfs:range>
        <owl:Class rdf:ID="A">
          <rdfs:subClassOf>
             <owl:Class rdf:ID="B"/>
          </rdfs:subClassOf>
        </owl:Class>
      </rdfs:range>
    </rdf:Property>

</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xml:base="http://www.w3.org/2002/03owlt/I5.3/conclusions001" >

   <rdf:Property rdf:about="premises001#prop">
     <rdfs:range>
        <owl:Class rdf:about="premises001#B"/>
     </rdfs:range>
   </rdf:Property>

</rdf:RDF>

Full Positive Entailment Test: 002
Description:
OWL, unlike RDFS, uses iff semantics for range.
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xml:base="http://www.w3.org/2002/03owlt/I5.3/premises002" >

   <rdf:Property rdf:ID="prop">
     <rdfs:range rdf:resource="#A"/>
     <rdfs:range rdf:resource="#B"/>
   </rdf:Property>

</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xml:base="http://www.w3.org/2002/03owlt/I5.3/conclusions002" >

   <rdf:Property rdf:about="premises002#prop">
     <rdfs:range>
        <owl:Class>
           <owl:intersectionOf rdf:parseType="Collection">
              <rdf:Description rdf:about="premises002#A"/>
              <rdf:Description rdf:about="premises002#B"/>
           </owl:intersectionOf>
        </owl:Class>
     </rdfs:range>
   </rdf:Property>

</rdf:RDF>

?
Full Positive Entailment Test: 003
Description:
This is a typical definition of range from description logic.
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xml:base="http://www.w3.org/2002/03owlt/I5.3/premises003" >
  <owl:ObjectProperty rdf:ID="prop">
     <rdfs:range rdf:resource="#A"/>
  </owl:ObjectProperty>
</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xml:base="http://www.w3.org/2002/03owlt/I5.3/conclusions003" >
   <owl:Thing>
      <rdfs:subClassOf>
          <owl:Restriction>
             <owl:onProperty rdf:resource="premises003#prop"/>
             <owl:allValuesFrom rdf:resource="premises003#A"/>
          </owl:Restriction>
       </rdfs:subClassOf>
   </owl:Thing>

</rdf:RDF>

Full Positive Entailment Test: 004
Description:
This is a typical definition of range from description logic. It works both ways.
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xml:base="http://www.w3.org/2002/03owlt/I5.3/premises004" >
   <owl:Thing>
      <rdfs:subClassOf>
          <owl:Restriction>
             <owl:onProperty rdf:resource="conclusions004#prop"/>
             <owl:allValuesFrom>
               <owl:Class rdf:resource="conclusions004#A"/>
              </owl:allValuesFrom>
          </owl:Restriction>
       </rdfs:subClassOf>
   </owl:Thing>

</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xml:base="http://www.w3.org/2002/03owlt/I5.3/conclusions004" >
  <owl:ObjectProperty rdf:ID="prop">
     <rdfs:range rdf:resource="#A"/>
  </owl:ObjectProperty>
</rdf:RDF>

D.2.5. List syntax or semantics

Full Positive Entailment Test: 001
Description:
rdf:first is a FunctionalProperty.
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >


</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#" >
    <owl:FunctionalProperty rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#first" />

</rdf:RDF>

Full Positive Entailment Test: 002
Description:
rdf:rest is a FunctionalProperty.
Full Premises:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >


</rdf:RDF>
Full Conclusions:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#" >
    <owl:FunctionalProperty rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" />

</rdf:RDF>

Full Inconsistent document. 003
Description:
rdf:nil cannot have an rdf:rest property.
Full Inconsistent:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xml:base="http://www.w3.org/2002/03owlt/I5.5/inconsistent003" >
   <rdf:Description rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil">
       <rdf:rest>
          <rdf:Description />
       </rdf:rest>
   </rdf:Description>
</rdf:RDF>

Full Inconsistent document. 004
Description:
rdf:nil cannot have an rdf:first property.
Full Inconsistent:
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xml:base="http://www.w3.org/2002/03owlt/I5.5/inconsistent003" >
   <rdf:Description rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil">
       <rdf:first>
          <rdf:Description />
       </rdf:first>
   </rdf:Description>
</rdf:RDF>

E. Proposed Tests as Triples (Informative)

This section repeats the tests of the previous section.

The following namespace prefixes are used throughout:

rdf
http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs
http://www.w3.org/2000/01/rdf-schema#
owl
http://www.w3.org/2002/07/owl#
first
The URL of the first file concatenated with #
second
The URL of the second file concatenated with #

In the N3 syntax [N3] used for namespace declarations, the first three appear as follows:

Namespaces:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .

Other namespaces are explicitly listed with the test data.

E.1. By Function

E.1.1. owl:FunctionalProperty

Full Positive Entailment Test: 003
Description:
If prop is an owl:FunctionalProperty, then its inverse is an owl:InverseFunctionalProperty.
Full Premises:
first:prop rdf:type owl:FunctionalProperty .
first:prop owl:inverseOf first:inv .
Full Conclusions:
first:inv rdf:type owl:InverseFunctionalProperty .

Full Positive Entailment Test: 004
Description:
If the range of prop is a singleton set then it is necessarily functional, (i.e. every member of its domain has a single value) and so it is an owl:FunctionalProperty.
Full Premises:
first:prop rdf:type owl:ObjectProperty .
first:prop rdfs:range first:Singleton .
first:Singleton rdf:type rdfs:Class .
_:jARP2267 rdf:first _:jARP2268 .
_:jARP2267 rdf:rest rdf:nil .
_:jARP2267 rdf:type rdf:List .
first:Singleton owl:oneOf _:jARP2267 .
Full Conclusions:
first:prop rdf:type owl:FunctionalProperty .

Full Positive Entailment Test: 005
Description:
If prop belongs to owl:FunctionalProperty then an OWL object has at most one value for prop.
Namespaces:
@prefix eg: <http://www.example.org/> .
Full Premises:
eg:foo#prop rdf:type owl:FunctionalProperty .
eg:foo#object rdf:type owl:Thing .
Full Conclusions:
eg:foo#object rdf:type owl:Thing .
_:jARP2273 rdf:type owl:Restriction .
eg:foo#prop rdf:type owl:FunctionalProperty .
_:jARP2273 owl:onProperty eg:foo#prop .
_:jARP2273 owl:maxCardinality "1"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> .
eg:foo#object rdf:type _:jARP2273 .
Errors:
Incorrect description in conclusions005. If prop belongs to owl:FunctionalProperty then an OWL object has at most one value for prop. If prop belongs to owl:FunctionalProperty then an OWL object has at most one value for prop.

E.1.2. owl:InverseFunctionalProperty

?
Full Positive Entailment Test: 003
Description:
If prop is an owl:InverseFunctionalProperty, then its inverse is an owl:FunctionalProperty.
Full Premises:
first:prop rdf:type owl:InverseFunctionalProperty .
first:prop owl:inverseOf first:inv .
Full Conclusions:
first:inv rdf:type owl:FunctionalProperty .

Full Positive Entailment Test: 004
Description:
If the domain of prop is a singleton set then it is necessarily inverse functional, (i.e. every member of its range is the value of a single item) so it is an owl:InverseFunctionalProperty.
Full Premises:
first:prop rdf:type owl:ObjectProperty .
first:prop rdfs:domain first:Singleton .
first:Singleton rdf:type rdfs:Class .
_:jARP2281 rdf:first _:jARP2282 .
_:jARP2281 rdf:rest rdf:nil .
_:jARP2281 rdf:type rdf:List .
first:Singleton owl:oneOf _:jARP2281 .
Full Conclusions:
first:prop rdf:type owl:InverseFunctionalProperty .

E.1.3. owl:Nothing

Full Inconsistent document. 001
Description:
The triple asserts something of type Nothing, however that is the empty class.
Full Inconsistent:
_:jARP2284 rdf:type owl:Nothing .

Full Positive Entailment Test: 002
Description:
There is one empty owl:Class, and it is often called Nothing.
Full Premises:
Full Conclusions:
_:jARP2285 rdf:type owl:Class .
_:jARP2285 owl:oneOf rdf:nil .
_:jARP2285 owl:sameClassAs owl:Nothing .

E.1.4. owl:TransitiveProperty

Full Positive Entailment Test: 001
Description:
A simple illustration of transitivity.
Full Premises:
first:Antwerp first:path first:Amsterdam .
first:Ghent first:path first:Antwerp .
first:path rdf:type owl:TransitiveProperty .
Full Conclusions:
first:Ghent first:path first:Amsterdam .

E.1.5. owl:allValuesFrom

Lite Positive Entailment Test: 001
Description:
A simple example.
Lite Premises:
first:r rdf:type owl:Class .
_:jARP2295 rdf:type owl:Restriction .
_:jARP2295 owl:onProperty first:p .
_:jARP2295 owl:allValuesFrom first:c .
first:r rdfs:subClassOf _:jARP2295 .
first:p rdf:type owl:ObjectProperty .
first:p rdfs:range owl:Thing .
first:p rdfs:domain owl:Thing .
first:c rdf:type owl:Class .
first:i rdf:type first:r .
first:i rdf:type owl:Thing .
first:o rdf:type owl:Thing .
first:i first:p first:o .
Lite Conclusions:
first:o rdf:type first:c .
first:o rdf:type owl:Thing .

Lite Negative Entailment Test: 002
Description:
See someValuesFrom.
Lite Premises:
first:r rdf:type owl:Class .
_:jARP2308 rdf:type owl:Restriction .
_:jARP2308 owl:onProperty first:p .
_:jARP2308 owl:allValuesFrom first:c .
first:r rdfs:subClassOf _:jARP2308 .
first:p rdf:type owl:ObjectProperty .
first:p rdfs:range owl:Thing .
first:p rdfs:domain owl:Thing .
first:c rdf:type owl:Class .
first:i rdf:type first:r .
first:i rdf:type owl:Thing .
Lite Conclusions:
first:i rdf:type owl:Thing .
_:jo rdf:type first:c .
first:i first:p _:jo .
_:jo rdf:type owl:Thing .

E.1.6. owl:disjointWith

Lite Positive Entailment Test: 001
Description:
Disjoint classes have different members.
Lite Premises:
first:A rdf:type owl:Class .
first:B rdf:type owl:Class .
first:A owl:disjointWith first:B .
first:a rdf:type first:A .
first:a rdf:type owl:Thing .
first:b rdf:type first:B .
first:b rdf:type owl:Thing .
Lite Conclusions:
first:a rdf:type owl:Thing .
first:b rdf:type owl:Thing .
first:a owl:differentFrom first:b .

Full Positive Entailment Test: 002
Description:
Disjoint classes have different members; OWL Full.
Full Premises:
first:A owl:disjointWith first:B .
first:a rdf:type first:A .
first:b rdf:type first:B .
Full Conclusions:
first:a owl:differentFrom first:b .

E.1.7. owl:imports

Full Import Entailment Test: 001
Description:
If a document imports another document, then it entails anything that is entailed by the conjunction of the two documents.
Namespaces:
@prefix ont: <http://www.w3.org/2002/03owlt/imports/support001-A#> .
Full http://www.w3.org/2002/03owlt/imports/premises001
<http://www.w3.org/2002/03owlt/imports/premises001> owl:imports <http://www.w3.org/2002/03owlt/imports/support001-A.rdf> .
<http://example.org/data#Socrates> rdf:type ont:Man .
Lite Imported Premises
<http://www.w3.org/2002/03owlt/imports/support001-A> rdf:type owl:Ontology .
ont:Man rdf:type owl:Class .
ont:Man rdfs:subClassOf ont:Mortal .
ont:Mortal rdf:type owl:Class .
Full http://www.w3.org/2002/03owlt/imports/conclusions001
<http://example.org/data#Socrates> rdf:type ont:Mortal .
Errors:
Can the suffix be removed from <http://www.w3.org/2002/03owlt/imports/support001-A.rdf>?

Full Negative Entailment Test: 002
Description:
If a premise document uses a namespace but does not import the document corresponding to the namespace, then the premises do not necessarily entail anything that is entailed by the conjunction of the two documents.
Namespaces:
@prefix ont: <http://www.w3.org/2002/03owlt/imports/support002-A#> .
Full Premises:
<http://example.org/data#Socrates> rdf:type ont:Man .
Full Conclusions:
<http://example.org/data#Socrates> rdf:type ont:Mortal .

Full Import Entailment Test: 003
Description:
If a document imports a document which in turn imports a third document, then it entails anything which is entailed by the conjunction of the statements from the three documents. That is, imports is transitive.
Namespaces:
@prefix ont: <http://www.w3.org/2002/03owlt/imports/support003-A#> .
Full http://www.w3.org/2002/03owlt/imports/premises003
<http://www.w3.org/2002/03owlt/imports/premises003> owl:imports <http://www.w3.org/2002/03owlt/imports/support003-A.rdf> .
<http://example.org/data#Socrates> rdf:type ont:Man .
Lite Imported Premises
<http://www.w3.org/2002/03owlt/imports/support003-A> rdf:type owl:Ontology .
<http://www.w3.org/2002/03owlt/imports/support003-A> owl:imports <http://www.w3.org/2002/03owlt/imports/support003-B.rdf> .
ont:Man rdf:type owl:Class .
ont:Man rdfs:subClassOf ont:Person .
ont:Person rdf:type owl:Class .
Lite Imported Premises
<http://www.w3.org/2002/03owlt/imports/support003-B> rdf:type owl:Ontology .
ont:Person rdf:type owl:Class .
ont:Person rdfs:subClassOf <http://www.w3.org/2002/03owlt/imports/support003-B#Mortal> .
<http://www.w3.org/2002/03owlt/imports/support003-B#Mortal> rdf:type owl:Class .
Full http://www.w3.org/2002/03owlt/imports/conclusions003
<http://example.org/data#Socrates> rdf:type <http://www.w3.org/2002/03owlt/imports/support003-B#Mortal> .
Errors:
Incorrect description in support003-A. If a document imports another document, then it entails anything that is entailed by the conjunction of the two documents. If a document imports a document which in turn imports a third document, then it entails anything which is entailed by the conjunction of the statements from the three documents. That is, imports is transitive.
Can the suffix be removed from <http://www.w3.org/2002/03owlt/imports/support003-B.rdf>?
Can the suffix be removed from <http://www.w3.org/2002/03owlt/imports/support003-A.rdf>?

E.1.8. owl:intersectionOf

Full Positive Entailment Test: 001
Description:
The order of the classes in an intersectionOf construct is unimportant.
Full Premises:
_:jARP2363 rdf:first first:Employee .
_:jARP2363 rdf:rest rdf:nil .
_:jARP2363 rdf:type rdf:List .
_:jARP2361 rdf:first first:Student .
_:jARP2361 rdf:rest _:jARP2363 .
_:jARP2361 rdf:type rdf:List .
first:B owl:intersectionOf _:jARP2361 .
_:jARP2368 rdf:first first:Student .
_:jARP2368 rdf:rest rdf:nil .
_:jARP2368 rdf:type rdf:List .
_:jARP2366 rdf:first first:Employee .
_:jARP2366 rdf:rest _:jARP2368 .
_:jARP2366 rdf:type rdf:List .
first:C owl:intersectionOf _:jARP2366 .
first:John rdf:type first:B .
Full Conclusions:
first:John rdf:type first:C .

E.1.9. owl:maxCardinality

Full Inconsistent document. 001
Description:
A property with maximum cardinality of two cannot take three distinct values on some subject node.
Full Inconsistent:
_:jARP2373 rdf:type owl:Restriction .
_:jARP2373 owl:maxCardinality "2"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger> .
_:jARP2373 owl:onProperty first:prop .
first:sb1 rdf:type _:jARP2373 .
first:sb1 first:prop first:ob1 .
first:sb1 first:prop first:ob2 .
first:sb1 first:prop first:ob3 .
first:ob1 owl:differentIndividualFrom first:ob2 .
first:ob1 owl:differentIndividualFrom first:ob3 .
first:ob2 owl:differentIndividualFrom first:ob3 .
first:prop rdf:type owl:ObjectProperty .

Full Inconsistent document. 002
Description:
A property with maximum cardinality of two cannot take three distinct values on some subject node. In this example, one of the three values is implicit.
Full Inconsistent:
_:jARP2386 rdf:type owl:Restriction .
_:jARP2386 owl:maxCardinality "2" .
_:jARP2386 owl:onProperty first:prop .
first:sb1 rdf:type _:jARP2386 .
first:sb1 first:prop first:ob1 .
first:sb1 first:prop first:ob2 .
first:sb1 first:otherprop first:ob3 .
first:ob1 owl:differentIndividualFrom first:ob2 .
first:ob1 owl:differentIndividualFrom firs?:ob3 .
first:ob2 owl:differentIndividualFrom first:ob3 .
first:prop rdf:type owl:ObjectProperty .
first:otherprop rdfs:subPropertyOf first:prop .

E.1.10. owl:oneOf

Full Consistent document. 001
Description:
oneOf does not indicate that the named individuals are distinct. Thus a consistent interpretation of this file is when all the individual names denote the same individual.
Full Consistent:
_:jARP2400 rdf:type owl:Class .
_:jARP2405 rdf:first first:caroline .
_:jARP2405 rdf:rest rdf:nil .
_:jARP2405 rdf:type rdf:List .
_:jARP2403 rdf:first first:bob .
_:jARP2403 rdf:rest _:jARP2405 .
_:jARP2403 rdf:type rdf:List .
_:jARP2401 rdf:first first:amy .
_:jARP2401 rdf:rest _:jARP2403 .
_:jARP2401 rdf:type rdf:List .
_:jARP2400 owl:oneOf _:jARP2401 .
_:jARP2407 rdf:type owl:Class .
_:jARP2410 rdf:first first:zebedee .
_:jARP2410 rdf:rest rdf:nil .
_:jARP2410 rdf:type rdf:List .
_:jARP2408 rdf:first first:yolanda .
_:jARP2408 rdf:rest _:jARP2410 .
_:jARP2408 rdf:type rdf:List .
_:jARP2407 owl:oneOf _:jARP2408 .
_:jARP2400 owl:sameClassAs _:jARP2407 .

E.1.11. owl:someValuesFrom

Full Positive Entailment Test: 001
Description:
A simple example.
Full Premises:
first:r rdf:type owl:Class .
_:jARP2413 rdf:type owl:Restriction .
_:jARP2413 owl:onProperty first:p .
_:jARP2413 owl:someValuesFrom first:c .
first:r rdfs:subClassOf _:jARP2413 .
first:p rdf:type owl:ObjectProperty .
first:c rdf:type owl:Class .
first:i rdf:type first:r .
Full Conclusions:
_:jARP2420 rdf:type first:c .
first:i first:p _:jARP2420 .

Full Negative Entailment Test: 002
Description:
See allValuesFrom
Fu?l Premises:
first:r rdf:type owl:Class .
_:jARP2422 rdf:type owl:Restriction .
_:jARP2422 owl:onProperty first:p .
_:jARP2422 owl:someValuesFrom first:c .
first:r rdfs:subClassOf _:jARP2422 .
first:p rdf:type owl:ObjectProperty .
first:c rdf:type owl:Class .
first:i rdf:type first:r .
first:i first:p first:o .
Full Conclusions:
<http://www.w3.org/2002/03owlt/someValuesFrom/premises001#o> rdf:type first:c .

E.1.12. owl:unionOf

Full Positive Entailment Test: 001
Description:
A union is a superclass of its parts.
Full Premises:
_:jARP2433 rdf:first first:Animal .
_:jARP2433 rdf:rest rdf:nil .
_:jARP2433 rdf:type rdf:List .
_:jARP2431 rdf:first first:Human .
_:jARP2431 rdf:rest _:jARP2433 .
_:jARP2431 rdf:type rdf:List .
first:A owl:unionOf _:jARP2431 .
first:John rdf:type first:Human .
Full Conclusions:
first:John rdf:type first:A .

Full Positive Entailment Test: 002
Description:
A union behaves quite like set theoretic union.
Full Premises:
_:jARP2440 rdf:first first:Animal .
_:jARP2440 rdf:rest rdf:nil .
_:jARP2440 rdf:type rdf:List .
_:jARP2438 rdf:first first:Human .
_:jARP2438 rdf:rest _:jARP2440 .
_:jARP2438 rdf:type rdf:List .
first:A owl:unionOf _:jARP2438 .
_:jARP2447 rdf:first first:Stone .
_:jARP2447 rdf:rest rdf:nil .
_:jARP2447 rdf:type rdf:List .
_:jARP2445 rdf:first first:Human .
_:jARP2445 rdf:rest _:jARP2447 .
_:jARP2445 rdf:type rdf:List .
_:jARP2443 rdf:first first:Animal .
_:jARP2443 rdf:rest _:jARP2445 .
_:jARP2443 rdf:type rdf:List .
first:B owl:unionOf _:jARP2443 .
first:John rdf:type first:A .
Full Conclusions:
first:John rdf:type first:B .

E.2. By Issue

E.2.1. UnambiguousProperty

Lite Illegal use of OWL namespace. 001
Description:
This is not legal OWL. The name UnambiguousProperty is not in the OWL namespace. daml:UnambiguousProperty corresponds to owl:InverseFunctionalProperty.
Lite Incorrect:
first:Name rdf:type owl:UnambiguousProperty .

E.2.2. UniqueProp BadName

Lite Illegal use of OWL namespace. 001
Description:
This is not legal OWL. The name UniqueProperty is not in the OWL namespace. daml:UniqueProperty corresponds to owl:FunctionalProperty.
Lite Incorrect:
first:Name rdf:type owl:UniqueProperty .

E.2.3. Uniform treatment of literal data values

Full Positive Entailment Test: 001
Description:
stateCode example using an inverseFunctionalProperty and literals
Namespaces:
@prefix NS0: <http://example.org/vocab#> .
Full Premises:
_:jA0 NS0:stateCode "KS" .
_:jA0 NS0:population "2688418" .
NS0:stateCode rdf:type owl:InverseFunctionalProperty .
_:jA1 NS0:stateCode "KS" .
_:jA1 NS0:stateBird NS0:WesternMeadowlark .
Full Conclusions:
_:jA0 NS0:population "2688418" .
_:jA0 NS0:stateBird NS0:WesternMeadowl?rk .

E.2.4. Semantic-Layering

Full Positive Entailment Test: 001
Description:
This entailment is similar to one that does not hold in RDFS.
Full Premises:
first:prop rdf:type rdf:Property .
first:A rdf:type owl:Class .
first:B rdf:type owl:Class .
first:A rdfs:subClassOf first:B .
first:prop rdfs:range first:A .
Full Conclusions:
first:prop rdf:type rdf:Property .
first:B rdf:type owl:Class .
first:prop rdfs:range first:B .

Full Positive Entailment Test: 002
Description:
OWL, unlike RDFS, uses iff semantics for range.
Full Premises:
first:prop rdf:type rdf:Property .
first:prop rdfs:range first:A .
first:prop rdfs:range first:B .
Full Conclusions:
first:prop rdf:type rdf:Property .
_:jARP2469 rdf:type owl:Class .
_:jARP2472 rdf:first first:B .
_:jARP2472 rdf:rest rdf:nil .
_:jARP2472 rdf:type rdf:List .
_:jARP2470 rdf:first first:A .
_:jARP2470 rdf:rest _:jARP2472 .
_:jARP2470 rdf:type rdf:List .
_:jARP2469 owl:intersectionOf _:jARP2470 .
first:prop rdfs:range _:jARP2469 .

Full Positive Entailment Test: 003
Description:
This is a typical definition of range from description logic.
Full Premises:
first:prop rdf:type owl:ObjectProperty .
first:prop rdfs:range first:A .
Full Conclusions:
_:jARP2476 rdf:type owl:Thing .
_:jARP2?77 rdf:type owl:Restriction .
_:jARP2477 owl:onProperty first:prop .
_:jARP2477 owl:allValuesFrom first:A .
_:jARP2476 rdfs:subClassOf _:jARP2477 .

Full Positive Entailment Test: 004
Description:
This is a typical definition of range from description logic. It works both ways.
Full Premises:
_:jARP2480 rdf:type owl:Thing .
_:jARP2481 rdf:type owl:Restriction .
_:jARP2481 owl:onProperty second:prop .
_:jARP2483 rdf:type owl:Class .
_:jARP2481 owl:allValuesFrom _:jARP2483 .
_:jARP2480 rdfs:subClassOf _:jARP2481 .
Full Conclusions:
second:prop rdf:type owl:ObjectProperty .
second:prop rdfs:range second:A .
Errors:
http://www.w3.org/2002/03owlt/I5.3/premises004[30:60]: {E201} Syntax error when processing attribute rdf:resource. Cannot have attribute rdf:resource in this context.

E.2.5. List syntax or semantics

Full Positive Entailment Test: 001
Description:
rdf:first is a FunctionalProperty.
Full Premises:
Full Conclusions:
rdf:first rdf:type owl:FunctionalProperty .

Full Positive Entailment Test: 002
Description:
rdf:rest is a FunctionalProperty.
Full Premises:
Full Conclusions:
rdf:rest rdf:type owl:FunctionalProperty .

Full Inconsistent document. 003
Description:
rdf:nil cannot have an rdf:rest property.
Full Inconsistent:
rdf:nil rdf:rest _:jARP2489 .

Full Inconsistent document. 004
Description:
rdf:nil cannot have an rdf:first property.
Full Inconsistent:
rdf:nil rdf:first _:jARP2491 .

F. Editorial Issues

F.1. Arising from Automated Checking

Most of these issues will be ignored.

Unimplemented - non trivial ManifestLoader.getText()
Jtidy reported 214 warnings in webont-issues.
Jtidy reported 1 warnings in 03owlt/.
Can suffix be removed from URI: false.rdf
Jtidy reported 7 errors in webont-issues.
Jtidy reported 1 warnings in qualified-cardinality-constraints/.
Jtidy reported 1 warnings in FunctionalProperty/.
Jtidy reported 1 warnings in I4.1/.
Jtidy reported 1 warnings in umlp/.

F.2. Other

Can the descriptions of approved tests be quotes from other (normative) documents?

Check descriptions for appropriate links to other OWL specs.

Add automatic checking of filenames.

Check erratum process against latest W3C process documents (including those in active development).

OWL Lite tests may be flagged. (And other levels). Imports tests may be flagged.

Conformance is not yet addressed.


Acknowledgments

Jeremy Carroll thanks Oreste Signore, his host at the W3C Office in Italy and Istituto di Scienza e Tecnologie dell'Informazione "Alessandro Faedo", part of the Consiglio Nazionale delle Ricerche, where Jeremy is a visiting researcher.

References

Normative

[OWL Abstract Syntax and Semantics]
Web Ontology Language (OWL) Abstract Syntax and Semantics . Peter F. Patel-Schneider, Patrick Hayes, Ian Horrocks, and Frank van Harmelen. W3C Working Draft 08 November 2002. Latest version is available at http://www.w3.org/TR/owl-semantics/.
[OWL Language]
OWL Web Ontology Language 1.0 Reference. Mike Dean, Dan Connolly, Frank van Harmelen, James Hendler, Ian Horrocks, Deborah L. McGuinness, Peter F. Patel-Schneider, and Lynn Andrea Stein. W3C Working Draft 29 July 2002. Latest version is available at http://www.w3.org/TR/owl-ref/.
[RDF/XML Syntax]
RDF/XML Syntax Specification (Revised). Dave Beckett, ed. W3C Working Draft 25 March 2002. Latest version is available at http://www.w3.org/TR/rdf-syntax-grammar/.

Informative

[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. Latest version is available at http://www.w3.org/TR/daml+oil-reference.
[Dublin Core]
http://dublincore.org/documents/
[N3]
Primer: Getting into RDF & Semantic Web using N3 Tim Berners-Lee, Dan Connolly
[OWL Issues]
Web Ontology Issue Status. Michael K. Smith, ed. 10 Jul 2002.
[RDF Test Cases]
RDF Test Cases, A. Barstow, D. Beckett, J. Grant, Editors. Work in progress. World Wide Web Consortium, 15 November 2001. This version of the RDF Test Cases is http://www.w3.org/TR/2001/WD-rdf-testcases-20011115/. The latest version of the RDF Test Cases is at http://www.w3.org/TR/rdf-testcases/.
[W3C CVS]
Use of CVS in W3C (member-only link). Henrik Frystyk Nielsen, Gerald Oskoboiny. 2002.
[XHTML]
XHTML 1.0: The Extensible HyperText Markup Language, W3C Recommendation, S. Pemberton et al., 26 January 2000.
Available at: http://www.w3.org/TR/2000/REC-xhtml1-20000126
[XMLBASE]
XML Base, J. Marsh, Editor, W3C Recommendation. World Wide Web Consortium, 2? June 2001. This version of XML Base is http://www.w3.org/TR/2001/REC-xmlbase-20010627/. The latest version of XML Base is at http://www.w3.org/TR/xmlbase/.
[XP]
Extreme Programming Explained: Embrace Change, Kent Beck. 5 Oct 1999. Addison-Wesley. ISBN 0201616416.

The following refs were not defined: