Some (OWL) Test Cases

Latest editors snapshot:
http://www.w3.org/2002/03owlt/editors-draft/snapshot

1. Approved Tests

1.1. By Function

1.2. By Issue

1.3. Additional Description Logic Tests

These tests are ones that are either known from the literature (specifically from [DL ref-1] and [DL ref-2]), or from test suites contributed by DL implementors (specifically some group and some other group).

Some actual tests in this category ...

2. Proposed Tests

2.1. By Function

2.2. By Issue

2.3. Additional Description Logic Tests

These tests are ones that are either known from the literature (specifically from [DL ref-1] and [DL ref-2]), or from test suites contributed by DL implementors (specifically some group and some other group).

Some actual tests in this category ...

2.4. Extra Credit

There is no expectation that any implementation will successfully run the tests in this section; any that do gain extra credit.

The intent is to illustrate the semantics of OWL, particularly OWL Full, as specified by [OWL Abstract Syntax and Semantics], with the specific goal of showing that it is possible to say things that it is not reasonable to expect an implementation to completely understand.

Some actual tests in this category ... Tests concerning prime factorization. tests concerning dominos and transitiveproperties with cardinality constraints. Tests concerning peculiar extensions of the OWL vocabulary.

2.4.1. [[extra-000-arithmetic]]

A description of these tests needs to be added.

FullPositive Entailment Test:001
Description: <extra-credit/Manifest001#test> Jeremy J. Carroll
This test shows a relationship between integer addition and OWL Full.
FullPremises: <extra-credit/premises001>
<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/extra-credit/premises001" >
   <owl:Class rdf:about="only-d">
      <owl:oneOf rdf:parseType="Collection">
          <rdf:Description rdf:ID="d" />
      </owl:oneOf>
      <owl:sameClassAs>
         <owl:Restriction>
            <owl:onProperty rdf:resource="#p" />
            <owl:cardinality rdf:resource="#N" />
          </owl:Restriction>
      </owl:sameClassAs>
    </owl:Class>     
   <owl:Class rdf:about="only-e">
      <owl:oneOf rdf:parseType="Collection">
          <rdf:Description rdf:ID="e" />
      </owl:oneOf>
      <owl:sameClassAs>
         <owl:Restriction>
            <owl:onProperty rdf:resource="#p" />
            <owl:cardinality rdf:resource="#M" />
          </owl:Restriction>
      </owl:sameClassAs>
    </owl:Class> 
   <owl:Class rdf:about="d-and-e">
      <owl:oneOf rdf:parseType="Collection">
          <rdf:Description rdf:about="#d" />
          <rdf:Description rdf:about="#e" />
      </owl:oneOf>
      <owl:sameClassAs>
         <owl:Restriction>
            <owl:onProperty rdf:resource="#p" />
            <owl:cardinality rdf:resource="#N-plus-M" />
          </owl:Restriction>
      </owl:sameClassAs>
    </owl:Class> 
    <rdf:Description rdf:about="#N">
      <owl:sameIndividualAs 
          rdf:datatype=
"http://www.w3.org/2001/XMLSchema#int">15</owl:sameIndividualAs>
     </rdf:Description>
    <rdf:Description rdf:about="#M">
      <owl:sameIndividualAs 
          rdf:datatype=
"http://www.w3.org/2001/XMLSchema#int">23</owl:sameIndividualAs>
     </rdf:Description>
</rdf:RDF>
<extra-credit/only-d> rdf:type owl:Class .
_:a rdf:first first:d .
_:a rdf:rest rdf:nil .
_:a rdf:type rdf:List .
<extra-credit/only-d> owl:oneOf _:a .
_:b rdf:type owl:Restriction .
_:b owl:onProperty first:p .
_:b owl:cardinality first:N .
<extra-credit/only-d> owl:sameClassAs _:b .
<extra-credit/only-e> rdf:type owl:Class .
_:c rdf:first first:e .
_:c rdf:rest rdf:nil .
_:c rdf:type rdf:List .
<extra-credit/only-e> owl:oneOf _:c .
_:d rdf:type owl:Restriction .
_:d owl:onProperty first:p .
_:d owl:cardinality first:M .
<extra-credit/only-e> owl:sameClassAs _:d .
<extra-credit/d-and-e> rdf:type owl:Class .
_:e rdf:first first:e .
_:e rdf:rest rdf:nil .
_:e rdf:type rdf:List .
_:f rdf:first first:d .
_:f rdf:rest _:e .
_:f rdf:type rdf:List .
<extra-credit/d-and-e> owl:oneOf _:f .
_:g rdf:type owl:Restriction .
_:g owl:onProperty first:p .
_:g owl:cardinality first:N-plus-M .
<extra-credit/d-and-e> owl:sameClassAs _:g .
first:N owl:sameIndividualAs "15"^^xsd:int  .
first:M owl:sameIndividualAs "23"^^xsd:int  .
FullConclusions: <extra-credit/conclusions001>
<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/extra-credit/conclusions001" >
    
    <rdf:Description rdf:about="premises001#N-plus-M">
      <owl:sameIndividualAs 
          rdf:datatype=
"http://www.w3.org/2001/XMLSchema#int">38</owl:sameIndividualAs>
     </rdf:Description>

</rdf:RDF>
first:N-plus-M owl:sameIndividualAs "38"^^xsd:int  .

FullPositive Entailment Test:002
Description: <extra-credit/Manifest002#test> Jeremy J. Carroll
This test shows a relationship between integer multiplication and OWL Full.
FullPremises: <extra-credit/premises002>
<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/extra-credit/premises002" >

   <owl:FunctionalProperty rdf:ID="p" />
   <owl:FunctionalProperty rdf:ID="q" />
   <owl:FunctionalProperty rdf:ID="r" />
   
    <owl:Class rdf:ID="only-d">
      <owl:oneOf rdf:parseType="Collection">
         <rdf:Description rdf:ID="d"/>
      </owl:oneOf>
    </owl:Class>
    <owl:Class rdf:ID="cardinality-N">
       <owl:onProperty rdf:resource="#p"/>
       <owl:cardinality rdf:resource="#N"/>
       <owl:allValuesFrom rdf:resource="#only-d"/>
    </owl:Class>
    <owl:Class rdf:ID="cardinality-N-times-M">
       <owl:onProperty rdf:resource="#q"/>
       <owl:cardinality rdf:resource="#M"/>
       <owl:allValuesFrom rdf:resource="#cardinality-N"/>
    </owl:Class>
    <owl:Class rdf:about="#cardinality-N-times-M">
       <owl:onProperty rdf:resource="#r"/>
       <owl:cardinality rdf:resource="#N-times-M"/>
       <owl:allValuesFrom rdf:resource="#only-d"/>
    </owl:Class>
    <rdf:Description rdf:about="#N">
      <owl:sameIndividualAs 
          rdf:datatype=
"http://www.w3.org/2001/XMLSchema#int">15</owl:sameIndividualAs>
     </rdf:Description>
    <rdf:Description rdf:about="#M">
      <owl:sameIndividualAs 
          rdf:datatype=
"http://www.w3.org/2001/XMLSchema#int">23</owl:sameIndividualAs>
     </rdf:Description>

</rdf:RDF>
first:p rdf:type owl:FunctionalProperty .
first:q rdf:type owl:FunctionalProperty .
first:r rdf:type owl:FunctionalProperty .
first:only-d rdf:type owl:Class .
_:a rdf:first first:d .
_:a rdf:rest rdf:nil .
_:a rdf:type rdf:List .
first:only-d owl:oneOf _:a .
first:cardinality-N rdf:type owl:Class .
first:cardinality-N owl:onProperty first:p .
first:cardinality-N owl:cardinality first:N .
first:cardinality-N owl:allValuesFrom first:only-d .
first:cardinality-N-times-M rdf:type owl:Class .
first:cardinality-N-times-M owl:onProperty first:q .
first:cardinality-N-times-M owl:cardinality first:M .
first:cardinality-N-times-M owl:allValuesFrom first:cardinality-N .
first:cardinality-N-times-M rdf:type owl:Class .
first:cardinality-N-times-M owl:onProperty first:r .
first:cardinality-N-times-M owl:cardinality first:N-times-M .
first:cardinality-N-times-M owl:allValuesFrom first:only-d .
first:N owl:sameIndividualAs "15"^^xsd:int  .
first:M owl:sameIndividualAs "23"^^xsd:int  .
FullConclusions: <extra-credit/conclusions002>
<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/extra-credit/conclusions002" >

    <rdf:Description rdf:about="premises002#N-times-M">
      <owl:sameIndividualAs 
          rdf:datatype=
"http://www.w3.org/2001/XMLSchema#int">345</owl:sameIndividualAs>
     </rdf:Description>

</rdf:RDF>
first:N-times-M owl:sameIndividualAs "345"^^xsd:int  .

FullPositive Entailment Test:003
Description: <extra-credit/Manifest003#test> Jeremy J. Carroll
Prime factorization can be expressed in OWL Full.
FullPremises: <extra-credit/premises003>
<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/extra-credit/premises003" >

   <owl:FunctionalProperty rdf:ID="p" />
   <owl:FunctionalProperty rdf:ID="q" />
   <owl:FunctionalProperty rdf:ID="r" />
   
    <owl:Class rdf:ID="only-d">
      <owl:oneOf rdf:parseType="Collection">
         <rdf:Description rdf:ID="d"/>
      </owl:oneOf>
    </owl:Class>
    <owl:Class rdf:ID="cardinality-N">
       <owl:onProperty rdf:resource="#p"/>
       <owl:cardinality rdf:resource="#N"/>
       <owl:allValuesFrom rdf:resource="#only-d"/>
    </owl:Class>
    <owl:Class rdf:ID="cardinality-N-times-M">
       <owl:onProperty rdf:resource="#q"/>
       <owl:cardinality rdf:resource="#M"/>
       <owl:allValuesFrom rdf:resource="#cardinality-N"/>
    </owl:Class>
    <owl:Class rdf:about="#cardinality-N-times-M">
       <owl:onProperty rdf:resource="#r"/>
       <owl:cardinality rdf:resource="#N-times-M"/>
       <owl:allValuesFrom rdf:resource="#only-d"/>
    </owl:Class>
    <rdf:Description rdf:about="#N-times-M">
      <owl:sameIndividualAs 
          rdf:datatype=
"http://www.w3.org/2001/XMLSchema#int">77</owl:sameIndividualAs>
     </rdf:Description>

</rdf:RDF>
first:p rdf:type owl:FunctionalProperty .
first:q rdf:type owl:FunctionalProperty .
first:r rdf:type owl:FunctionalProperty .
first:only-d rdf:type owl:Class .
_:a rdf:first first:d .
_:a rdf:rest rdf:nil .
_:a rdf:type rdf:List .
first:only-d owl:oneOf _:a .
first:cardinality-N rdf:type owl:Class .
first:cardinality-N owl:onProperty first:p .
first:cardinality-N owl:cardinality first:N .
first:cardinality-N owl:allValuesFrom first:only-d .
first:cardinality-N-times-M rdf:type owl:Class .
first:cardinality-N-times-M owl:onProperty first:q .
first:cardinality-N-times-M owl:cardinality first:M .
first:cardinality-N-times-M owl:allValuesFrom first:cardinality-N .
first:cardinality-N-times-M rdf:type owl:Class .
first:cardinality-N-times-M owl:onProperty first:r .
first:cardinality-N-times-M owl:cardinality first:N-times-M .
first:cardinality-N-times-M owl:allValuesFrom first:only-d .
first:N-times-M owl:sameIndividualAs "77"^^xsd:int  .
FullConclusions: <extra-credit/conclusions003>
<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/extra-credit/conclusions003" >
    
    <owl:Class>
         <owl:oneOf rdf:parseType="Collection">
            <rdf:Description rdf:about="premises003#N"/>
            <rdf:Description rdf:about="premises003#M"/>
         </owl:oneOf>
         <owl:oneOf rdf:parseType="Collection">
            <rdf:Description>
              <owl:sameIndividualAs rdf:datatype=
"http://www.w3.org/2001/XMLSchema#int">7</owl:sameIndividualAs>
            </rdf:Description>
            <rdf:Description>
              <owl:sameIndividualAs rdf:datatype=
"http://www.w3.org/2001/XMLSchema#int">11</owl:sameIndividualAs>
            </rdf:Description>
         </owl:oneOf>
    </owl:Class>
</rdf:RDF>
_:a rdf:type owl:Class .
_:b rdf:first first:M .
_:b rdf:rest rdf:nil .
_:b rdf:type rdf:List .
_:c rdf:first first:N .
_:c rdf:rest _:b .
_:c rdf:type rdf:List .
_:a owl:oneOf _:c .
_:d owl:sameIndividualAs "7"^^xsd:int  .
_:e owl:sameIndividualAs "11"^^xsd:int  .
_:f rdf:first _:e .
_:f rdf:rest rdf:nil .
_:f rdf:type rdf:List .
_:g rdf:first _:d .
_:g rdf:rest _:f .
_:g rdf:type rdf:List .
_:a owl:oneOf _:g .

FullPositive Entailment Test:004
Description: <extra-credit/Manifest004#test> Jeremy J. Carroll
A more difficult prime factorization example.
FullPremises: <extra-credit/premises004>
<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/extra-credit/premises004" >

   <owl:FunctionalProperty rdf:ID="p" />
   <owl:FunctionalProperty rdf:ID="q" />
   <owl:FunctionalProperty rdf:ID="r" />
   
    <owl:Class rdf:ID="only-d">
      <owl:oneOf rdf:parseType="Collection">
         <rdf:Description rdf:ID="d"/>
      </owl:oneOf>
    </owl:Class>
    <owl:Class rdf:ID="cardinality-N">
       <owl:onProperty rdf:resource="#p"/>
       <owl:cardinality rdf:resource="#N"/>
       <owl:allValuesFrom rdf:resource="#only-d"/>
    </owl:Class>
    <owl:Class rdf:ID="cardinality-N-times-M">
       <owl:onProperty rdf:resource="#q"/>
       <owl:cardinality rdf:resource="#M"/>
       <owl:allValuesFrom rdf:resource="#cardinality-N"/>
    </owl:Class>
    <owl:Class rdf:about="#cardinality-N-times-M">
       <owl:onProperty rdf:resource="#r"/>
       <owl:cardinality rdf:resource="#N-times-M"/>
       <owl:allValuesFrom rdf:resource="#only-d"/>
    </owl:Class>
    <rdf:Description rdf:about="#N-times-M">
      <owl:sameIndividualAs 
          rdf:datatype=
"http://www.w3.org/2001/XMLSchema#int">929136997</owl:sameIndividualAs>
     </rdf:Description>

</rdf:RDF>
first:p rdf:type owl:FunctionalProperty .
first:q rdf:type owl:FunctionalProperty .
first:r rdf:type owl:FunctionalProperty .
first:only-d rdf:type owl:Class .
_:a rdf:first first:d .
_:a rdf:rest rdf:nil .
_:a rdf:type rdf:List .
first:only-d owl:oneOf _:a .
first:cardinality-N rdf:type owl:Class .
first:cardinality-N owl:onProperty first:p .
first:cardinality-N owl:cardinality first:N .
first:cardinality-N owl:allValuesFrom first:only-d .
first:cardinality-N-times-M rdf:type owl:Class .
first:cardinality-N-times-M owl:onProperty first:q .
first:cardinality-N-times-M owl:cardinality first:M .
first:cardinality-N-times-M owl:allValuesFrom first:cardinality-N .
first:cardinality-N-times-M rdf:type owl:Class .
first:cardinality-N-times-M owl:onProperty first:r .
first:cardinality-N-times-M owl:cardinality first:N-times-M .
first:cardinality-N-times-M owl:allValuesFrom first:only-d .
first:N-times-M owl:sameIndividualAs "929136997"^^xsd:int  .
FullConclusions: <extra-credit/conclusions004>
<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/extra-credit/conclusions004" >
    
    <owl:Class>
         <owl:oneOf rdf:parseType="Collection">
            <rdf:Description rdf:about="premises004#N"/>
            <rdf:Description rdf:about="premises004#M"/>
         </owl:oneOf>
         <owl:oneOf rdf:parseType="Collection">
            <rdf:Description>
              <owl:sameIndividualAs rdf:datatype=
"http://www.w3.org/2001/XMLSchema#int">83563</owl:sameIndividualAs>
            </rdf:Description>
            <rdf:Description>
              <owl:sameIndividualAs rdf:datatype=
"http://www.w3.org/2001/XMLSchema#int">11119</owl:sameIndividualAs>
            </rdf:Description>
         </owl:oneOf>
    </owl:Class>
</rdf:RDF>
_:a rdf:type owl:Class .
_:b rdf:first first:M .
_:b rdf:rest rdf:nil .
_:b rdf:type rdf:List .
_:c rdf:first first:N .
_:c rdf:rest _:b .
_:c rdf:type rdf:List .
_:a owl:oneOf _:c .
_:d owl:sameIndividualAs "83563"^^xsd:int  .
_:e owl:sameIndividualAs "11119"^^xsd:int  .
_:f rdf:first _:e .
_:f rdf:rest rdf:nil .
_:f rdf:type rdf:List .
_:g rdf:first _:d .
_:g rdf:rest _:f .
_:g rdf:type rdf:List .
_:a owl:oneOf _:g .