Errors in the OWL Primer

Hello, 

to whom it may concern - I have prepared a ZIP archive which fixes some errors 
/ omissions from the OWL primer knowledge bases in the various syntaxes 
(attached). Some axioms were added here and there in order to make sure that 
all three KBs contain the same set of axioms. 

I am summerizing the errors and omissions I have found in the following
(or just use a diff tool, the original versions of the primer KBs are in the 
subfolder orig of the archive, as of November 10, 2009): 

*** Funtional syntax: 

- missing datatype declaration 

  Declaration( Datatype( :minorAge ) )

- missing class assertion axiom 

  ClassAssertion( :Person :John )

- missing axioms

  SameIndividual( :James :Jim )


*** OWL RDF syntax: 

- missing datatype declaration

   <rdfs:Datatype rdf:about="minorAge"/>

- missing axiom

  <owl:ObjectProperty rdf:about="hasChild">
     <owl:equivalentProperty rdf:resource="&otherOnt;child"/>
   </owl:ObjectProperty>

- erroneous datarange specification: 

 <owl:DatatypeProperty rdf:about="hasAge">
     <rdfs:domain rdf:resource="Person"/>
     <rdfs:range 
rdfs:Datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"/>
     <owl:equivalentProperty rdf:resource="&otherOnt;age"/>
   </owl:DatatypeProperty>
   <owl:FunctionalProperty rdf:about="hasAge"/>

  should read

   <owl:DatatypeProperty rdf:about="hasAge">
     <rdfs:domain rdf:resource="Person"/>
     <rdfs:range>
 <rdfs:Datatype rdf:about="&xsd;nonNegativeInteger"/>
     </rdfs:range>
     <owl:equivalentProperty rdf:resource="&otherOnt;age"/>
   </owl:DatatypeProperty>
   <owl:FunctionalProperty rdf:about="hasAge"/>

 (I dont think that is a valid RDF/XML abbreviation - our XML/RDF parsers
  complain here)

- bad axiom 

   <owl:Class rdf:about="Person">
     <rdfs:comment>Represents the set of all people.</rdfs:comment>
     <owl:equivalentClass rdf:resource="Human"/>
     <owl:hasKey rdf:parseType="Collection">
       <owl:ObjectProperty rdf:about="hasSSN"/>
     </owl:hasKey>
   </owl:Class>
 
   should read

    <owl:DatatypeProperty rdf:about="hasSSN"/>
  
 - bad axiom

 <owl:Class rdf:about="Orphan">
     <owl:equivalentClass>
       <owl:Restriction>
         <owl:onProperty>
           <owl:ObjectProperty>
             <owl:inverseOf rdf:resource="hasChild"/>
           </owl:ObjectProperty>
         </owl:onProperty>
         <owl:Class rdf:resource="Dead"/>
       </owl:Restriction>
     </owl:equivalentClass>
   </owl:Class>
 
  should read

 <owl:allValuesFrom rdf:resource="Dead"/>
      
- different cardinality restriction than in the other 
  syntax versions of the KB: 
   
 <owl:Class>
     <owl:intersectionOf rdf:parseType="Collection">
       <owl:Class>
         <owl:oneOf rdf:parseType="Collection">
           <rdf:Description rdf:about="Mary"/>
           <rdf:Description rdf:about="Bill"/>
           <rdf:Description rdf:about="Meg"/>
         </owl:oneOf>
       </owl:Class>
       <owl:Class rdf:about="Female"/>
     </owl:intersectionOf>
     <rdfs:subClassOf>
       <owl:Class>
         <owl:intersectionOf rdf:parseType="Collection">
           <owl:Class rdf:about="Parent"/>
           <owl:Restriction>
             <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
               2
             </owl:maxCardinality>
             <owl:onProperty rdf:resource="hasChild"/>
           </owl:Restriction>
           <owl:Restriction>
             <owl:onProperty rdf:resource="hasChild"/>
             <owl:allValuesFrom rdf:resource="Female"/>
           </owl:Restriction>
         </owl:intersectionOf>
       </owl:Class>
     </rdfs:subClassOf>
   </owl:Class>


   should read

   <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
               1
   </owl:maxCardinality>

- missing same-as axiom for Jack: 

  <rdf:Description rdf:about="Jack">
     <owl:sameAs rdf:resource="John"/>
   ... 
  
*** OWL XML syntax: 

- missing declaration

   <Declaration>
     <ObjectProperty IRI="hasHusband"/>
   </Declaration>

- missing axiom
  <FunctionalDataProperty IRI="hasAge"/>

- bad axiom 

  <HasKey>
     <Class IRI="Person"/>
     <ObjectProperty IRI="hasSSN"/>
   </HasKey>

   should read (?) 

   <HasKey>
     <Class IRI="Person"/>
     <DataProperty IRI="hasSSN"/>
   </HasKey>

- missing axiom 

  <FunctionalDataProperty>
     <DataProperty IRI="hasHusband"/>
   </FunctionalDataProperty>

- missing axiom

    <SameIndividual>
     <NamedIndividual IRI="John"/>
     <NamedIndividual IRI="Jack"/>
   </SameIndividual>

- missing axiom 

   <ClassAssertion>
     <Class IRI="Person"/>
     <NamedIndividual IRI="John"/>
   </ClassAssertion>


Also, it would be nice if an ontology were imported which actually existed on 
the web... 

Regards

Michael Wessel

-- 
Racer Systems GmbH & Co. KG
Blumenau 50   | Tel.: +49 40/88306820
22089 Hamburg | Fax:  +49 40/88306821
Germany       | www.racer-systems.com

Received on Tuesday, 10 November 2009 10:55:38 UTC