W3C

OWL Test Case

Not A W3C Working Draft, 27 Sep 2002

This version:
no URI
Latest version:
http://sealpc09.cnuce.cnr.it:8080/wowg/jsp/main.jsp
Previous version:
none
Editors:
Jeremy 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 of this document

This section is largely untrue, and describes aspiration rather than fact. In fact, this document is merely the work of its authors for consideration by the Web Ontology Working Group.

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], [OWL Abstract Syntax], [OWL Formal 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. Alternatively, if you do not wish your comments to be made public, you can send your comments to w3t-semweb-review@w3.org . General discussion of related technology is welcome in www-rdf-logic.

There are no patent disclosures related to this work at the time of this writing.

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], [OWL Abstract Syntax], [OWL Formal 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. Scope

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

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

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

2. Deliverables

The deliverables included as part of the test cases are:

[[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 the recommendation track document. All other deliverables, are informative. Moreover, the recommendation document is informative except for the test data (specified in RDF/XML [RDF/XML Syntax]).

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 last call 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 last call 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 two 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 documents indicate a relationship between the two documents when viewed as OWL knowledge bases.

The Manifest file is 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 Formal Semantics [OWL-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 Formal Semantics [OWL-SEMANTICS].

3.4. Consistency Tests

These tests use one document. It is named consistentNNN.rdf. The document is consistent as defined by the OWL Formal Semantics [OWL-SEMANTICS].

3.5. Inconsistency Tests

These tests use one document. It is named inconsistentNNN.rdf. The document is inconsistent as defined by the OWL Formal Semantics [OWL-SEMANTICS].

3.6. Miscellaneous Tests (non-Normative)

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. Manifest Files

[[To be done.]]

5. The OWL Tests (Normative)

[[[The current layout of the tables is not satisfactory.]]

5.1. By Function

5.1.1. owl:FunctionalProperty

Positive Entailment Test:001
Description: (informative)
If prop is an owl:FunctionalProperty, and a resource has prop arcs pointing to two different URIrefs, then those two URIrefs denote the same resource.
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>
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>
Positive Entailment Test:002
Description: (informative)
If prop is an owl:FunctionalProperty, and a resource has prop arcs pointing to two different URIrefs, then those two URIrefs denote the same resource, and hence each have the same properties.
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" >
    <owl:FunctionalProperty rdf:ID="prop"/>
    <rdf:Description rdf:ID="subject">
      <first:prop rdf:resource="#object1" eg:prop2="value" />
      <first:prop rdf:resource="#object2" />
    </rdf:Description>
</rdf:RDF>
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/test002" >
    <rdf:Description rdf:about="premises002#object2" eg:prop2="value"/>
</rdf:RDF>

5.1.2. owl:InverseFunctionalProperty

Positive Entailment Test:001
Description: (informative)
If prop is an owl:InverseFunctionalProperty, and a resource has prop arcs pointing from two different URIrefs, then those two URIrefs denote the same resource.
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>
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>
Positive Entailment Test:002
Description: (informative)
If prop is an owl:InverseFunctionalProperty, and a resource has prop arcs pointing from two different URIrefs, then those two URIrefs denote the same resource, and hence each have the same properties.
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" eg:prop2="value" >
      <first:prop rdf:resource="#object" />
    </rdf:Description>
    <rdf:Description rdf:ID="subject2" >
      <first:prop rdf:resource="#object" />
    </rdf:Description>
</rdf:RDF>
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"/>
</rdf:RDF>

5.2. By Issue

5.2.1. Qualified Restrictions

Illegal use of OWL namespace.001
Description: (informative)
A DAML+OIL qualified cardinality constraint is not legal OWL.
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>
Illegal use of OWL namespace.002
Description: (informative)
A DAML+OIL qualified max cardinality constraint is not legal OWL.
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>
Illegal use of OWL namespace.003
Description: (informative)
A DAML+OIL qualified min cardinality constraint is not legal OWL.
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: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 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.

Jeremy disagrees with the rest of this subsection and moves to strike the text. It is intended to reflect Peter's proposal to restrict RDF/XML to simple striped syntax.

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

  1. Property attributes.
  2. Bag ID.
  3. rdf:parseType="Resource".
  4. rdf:ID, both for reification and as an alternative to rdf:about.

Moreover, all URI references in rdf:about and rdf:resource attribute values are absolute.

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 the first 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 the second XML comment in each test file, and be included 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 [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-TESTS] 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 current layout of the tables is not satisfactory.]]

The following namespace prefixes are used throughout:

rdf
http://www.w3.org/1999/02/22-rdf-syntax-ns#
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 #

Other namespaces are explicitly listed with the test data.

C.1. By Function

C.1.1. owl:FunctionalProperty

Positive Entailment Test:001
Description:
If prop is an owl:FunctionalProperty, and a resource has prop arcs pointing to two different URIrefs, then those two URIrefs denote the same resource.
Premises:
first:prop rdf:type owl:FunctionalProperty .
first:subject first:prop first:object1 .
first:subject first:prop first:object2 .
Conclusions:
first:object1 owl:sameIndividualAs first:object2 .
Positive Entailment Test:002
Description:
If prop is an owl:FunctionalProperty, and a resource has prop arcs pointing to two different URIrefs, then those two URIrefs denote the same resource, and hence each have the same properties.
Namespaces:
@prefix eg: <http://www.example.org/> .
Premises:
first:prop rdf:type owl:FunctionalProperty .
first:object1 eg:prop2 "value" .
first:subject first:prop first:object1 .
first:subject first:prop first:object2 .
Conclusions:
first:object2 eg:prop2 "value" .

C.1.2. owl:InverseFunctionalProperty

Positive Entailment Test:001
Description:
If prop is an owl:InverseFunctionalProperty, and a resource has prop arcs pointing from two different URIrefs, then those two URIrefs denote the same resource.
Premises:
first:prop rdf:type owl:InverseFunctionalProperty .
first:subject1 first:prop first:object .
first:subject2 first:prop first:object .
Conclusions:
first:subject1 owl:sameIndividualAs first:subject2 .
Positive Entailment Test:002
Description:
If prop is an owl:InverseFunctionalProperty, and a resource has prop arcs pointing from two different URIrefs, then those two URIrefs denote the same resource, and hence each have the same properties.
Namespaces:
@prefix eg: <http://www.example.org/> .
Premises:
first:prop rdf:type owl:InverseFunctionalProperty .
first:subject1 eg:prop2 "value" .
first:subject1 first:prop first:object .
first:subject2 first:prop first:object .
Conclusions:
first:subject2 eg:prop2 "value" .

C.2. By Issue

C.2.1. Qualified Restrictions

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

D. Proposed Tests (Informative)

[[[The current layout of the tables is not satisfactory.]]

D.1. By Function

D.1.1. owl:FunctionalProperty

Negative Entailment Test:test003
Description:
If prop is an owl:FunctionalProperty, then its inverse, while being constrained to be consistent with being an owl:InverseFunctionalProperty should not be deduced as being one.
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>
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>
Negative Entailment Test:test004
Description:
If the range of prop is a singleton set then while it is necessarily functional, (i.e. every member of its domain has a single value) it is not necessarily an owl:FunctionalProperty.
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:this="http://www.w3.org/2002/03owlt/FunctionalProperty/premises004#" 
  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>
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/nonconclusions004" >
    <owl:FunctionalProperty rdf:about="premises004#prop"/>
</rdf:RDF>
Positive Entailment Test:test005
Description:
If prop belongs to owl:FunctionalProperty then an OWL object has at most one value for prop.
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>
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>1</owl:maxCardinality>
        </owl:Restriction>
      </rdf:type>
    </owl:Thing>
</rdf:RDF>

D.1.2. owl:InverseFunctionalProperty

Negative Entailment Test:test003
Description:
If prop is an owl:InverseFunctionalProperty, then its inverse, while being constrained to be consistent with being an owl:FunctionalProperty should not be deduced as being one.
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>
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>
Negative Entailment Test:test004
Description:
If the domain of prop is a singleton set then while it is necessarily inverse functional, (i.e. every member of its range is the value of a single item) it is not necessarily an owl:InverseFunctionalProperty.
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:this="http://www.w3.org/2002/03owlt/InverseFunctionalProperty/premises004#" 
  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>
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/nonconclusions004" >
    <owl:InverseFunctionalProperty rdf:about="premises004#prop"/>
</rdf:RDF>

D.2. By Issue

Failed to find RDFS:labal of http://www.w3.org/2001/sw/WebOnt/webont-issues.html#I3.4-UnambiguousProperty [6 Subject does not have that property]

D.2.1. [[I3.4-UnambiguousProperty]]

Illegal use of OWL namespace.bad001
Description:
This is not legal OWL. The name UnambiguousProperty is not in the OWL namespace. daml:UnambiguousProperty corresponds to owl:InverseFunctionalProperty.
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>
Failed to find RDFS:labal of http://www.w3.org/2001/sw/WebOnt/webont-issues.html#I4.1-UniqueProp-BadName [6 Subject does not have that property]

D.2.2. [[I4.1-UniqueProp-BadName]]

Illegal use of OWL namespace.bad001
Description:
This is not legal OWL. The name UniqueProperty is not in the OWL namespace. daml:UniqueProperty corresponds to owl:FunctionalProperty.
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>

E. Proposed Tests as Triples (Informative)

This section repeats the tests of the previous section.

[[[The current layout of the tables is not satisfactory.]]

The following namespace prefixes are used throughout:

rdf
http://www.w3.org/1999/02/22-rdf-syntax-ns#
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 #

Other namespaces are explicitly listed with the test data.

E.1. By Function

E.1.1. owl:FunctionalProperty

Negative Entailment Test:test003
Description:
If prop is an owl:FunctionalProperty, then its inverse, while being constrained to be consistent with being an owl:InverseFunctionalProperty should not be deduced as being one.
Premises:
first:prop rdf:type owl:FunctionalProperty .
first:prop owl:inverseOf first:inv .
Conclusions:
first:inv rdf:type owl:InverseFunctionalProperty .
Errors:
Incorrect description in conclusions003.
Authors not given.
Incorrect description in premises003.
Negative Entailment Test:test004
Description:
If the range of prop is a singleton set then while it is necessarily functional, (i.e. every member of its domain has a single value) it is not necessarily an owl:FunctionalProperty.
Namespaces:
@prefix this: <http://www.w3.org/2002/03owlt/FunctionalProperty/premises004#> .
Premises:
this:prop rdf:type owl:ObjectProperty .
this:prop <range> this:Singleton .
this:Singleton rdf:type <Class> .
_:jARP1089 rdf:first _:jARP1090 .
_:jARP1089 rdf:rest rdf:nil .
_:jARP1089 rdf:type rdf:List .
this:Singleton owl:oneOf _:jARP1089 .
Conclusions:
this:prop rdf:type owl:FunctionalProperty .
Errors:
http://www.w3.org/2002/03owlt/FunctionalProperty/premises004[25:36]: {W104} Element node must be qualified.
http://www.w3.org/2002/03owlt/FunctionalProperty/premises004[23:46]: {W104} Element node must be qualified.
URL <range> is malformed: no protocol: range
Uri <http://www.w3.org/2002/03owlt/FunctionalProperty/premises004#> is shown using both first: and this:.
Authors not given.
http://www.w3.org/2002/03owlt/FunctionalProperty/premises004[23:46]: The namespace prefix "rdfs" was not declared.
http://www.w3.org/2002/03owlt/FunctionalProperty/premises004[25:36]: The namespace prefix "rdfs" was not declared.
URL <Class> is malformed: no protocol: Class
Positive Entailment Test:test005
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/> .
Premises:
eg:foo#prop rdf:type owl:FunctionalProperty .
eg:foo#object rdf:type owl:Thing .
Conclusions:
eg:foo#object rdf:type owl:Thing .
_:jARP1095 rdf:type owl:Restriction .
eg:foo#prop rdf:type owl:FunctionalProperty .
_:jARP1095 owl:onProperty eg:foo#prop .
_:jARP1095 owl:maxCardinality "1" .
eg:foo#object rdf:type _:jARP1095 .

E.1.2. owl:InverseFunctionalProperty

Negative Entailment Test:test003
Description:
If prop is an owl:InverseFunctionalProperty, then its inverse, while being constrained to be consistent with being an owl:FunctionalProperty should not be deduced as being one.
Premises:
first:prop rdf:type owl:InverseFunctionalProperty .
first:prop owl:inverseOf first:inv .
Conclusions:
first:inv rdf:type owl:FunctionalProperty .
Errors:
Incorrect description in conclusions003.
Authors not given.
Incorrect description in premises003.
Negative Entailment Test:test004
Description:
If the domain of prop is a singleton set then while it is necessarily inverse functional, (i.e. every member of its range is the value of a single item) it is not necessarily an owl:InverseFunctionalProperty.
Namespaces:
@prefix this: <http://www.w3.org/2002/03owlt/InverseFunctionalProperty/premises004#> .
Premises:
this:prop rdf:type owl:ObjectProperty .
this:prop <domain> this:Singleton .
this:Singleton rdf:type <Class> .
_:jARP1103 rdf:first _:jARP1104 .
_:jARP1103 rdf:rest rdf:nil .
_:jARP1103 rdf:type rdf:List .
this:Singleton owl:oneOf _:jARP1103 .
Conclusions:
this:prop rdf:type owl:InverseFunctionalProperty .
Errors:
http://www.w3.org/2002/03owlt/InverseFunctionalProperty/premises004[24:47]: {W104} Element node must be qualified.
Uri <http://www.w3.org/2002/03owlt/InverseFunctionalProperty/premises004#> is shown using both first: and this:.
Authors not given.
URL <Class> is malformed: no protocol: Class
URL <domain> is malformed: no protocol: domain
http://www.w3.org/2002/03owlt/InverseFunctionalProperty/premises004[24:47]: The namespace prefix "rdfs" was not declared.
http://www.w3.org/2002/03owlt/InverseFunctionalProperty/premises004[26:36]: {W104} Element node must be qualified.
http://www.w3.org/2002/03owlt/InverseFunctionalProperty/premises004[26:36]: The namespace prefix "rdfs" was not declared.

E.2. By Issue

Failed to find RDFS:labal of http://www.w3.org/2001/sw/WebOnt/webont-issues.html#I3.4-UnambiguousProperty [6 Subject does not have that property]

E.2.1. [[I3.4-UnambiguousProperty]]

Illegal use of OWL namespace.bad001
Description:
This is not legal OWL. The name UnambiguousProperty is not in the OWL namespace. daml:UnambiguousProperty corresponds to owl:InverseFunctionalProperty.
Incorrect:
first:Name rdf:type owl:UnambiguousProperty .
Errors:
Authors not given.
Failed to find RDFS:labal of http://www.w3.org/2001/sw/WebOnt/webont-issues.html#I4.1-UniqueProp-BadName [6 Subject does not have that property]

E.2.2. [[I4.1-UniqueProp-BadName]]

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

F. Editorial Issues

F.1. Arising from Automated Checking

Some of these issues will be ignored.

Server returned HTTP response code: 403 for URL: http://www.w3.org/2002/03owlt/InverseFunctionalProperty/
Server returned HTTP response code: 403 for URL: http://www.w3.org/2002/03owlt/editors-draft/
Jtidy reported 1 warnings in 03owlt.
Can suffix be removed from URI: 0014.html
Server returned HTTP response code: 403 for URL: http://www.w3.org/2002/03owlt/I3.2/
Server returned HTTP response code: 403 for URL: http://www.w3.org/2002/03owlt/I3.4/
Can suffix be removed from URI: webont-issues.html#I4.1-UniqueProp-BadName
Jtidy reported 7 errors in webont-issues.
Jtidy reported 1 warnings in qualified-cardinality-constraints/.
Server returned HTTP response code: 403 for URL: http://www.w3.org/2002/03owlt/inverseOf/Manifest.rdf
Jtidy reported 231 warnings in webont-issues.
Can suffix be removed from URI: webont-issues.html#I3.4-UnambiguousProperty
Jtidy reported 1 warnings in FunctionalProperty/.
Jtidy reported 1 warnings in I4.1/.
Server returned HTTP response code: 403 for URL: http://www.w3.org/2002/03owlt/inverseOf/
Jtidy reported 1 warnings in umlp/.

F.2. Other

Check descriptions of approved tests with respect to clarity of distinction between syntax and semantics.

Check descriptions for appropriate links to other OWL specs.

Add automatic checking of filenames. (4)

Page to choose which bits you want. (2)

Validate HTML.


Acknowledgments

References

Normative

[OWL Abstract Syntax]
OWL Web Ontology Language 1.0 Abstract Syntax. Peter F. Patel-Schneider, Ian Horrocks, and Frank van Harmelen.. W3C Working Draft 29 July 2002. Latest version is available at http://www.w3.org/TR/owl-absyn/.
[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/.
[OWL Language]
[RDF Test Cases]
Not referenced.

Non-Normative

[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.
[W3C CVS]
Use of CVS in W3C (member-only link). Henrik Frystyk Nielsen, Gerald Oskoboiny. 2002.
[OWL Issues]
Web Ontology Issue Status. Michael K. Smith, ed. 10 Jul 2002.
[XP]
Extreme Programming Explained: Embrace Change. . Kent Beck. 5 Oct 1999. Addison-Wesley. ISBN 0201616416.

The following refs were not defined: