Equivalent Classes in OWL

Hello,

I have the following OWL ontology, which I am running on the Pellet
reasoner. Can anyone tell me, why when i ask for a list of equivalent
classes to KoalaWithPhD - that both Koala and Quokka are returned. I
cant figure out the reason.

It has something to do with the isHardWorking property having the
domain Person, which is disjoint with Marsupials - and both Quokka and
Koala are subclasses of Marsupials.

----------------------


<?xml version="1.0"?>
<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="http://protege.stanford.edu/plugins/owl/owl-library/koala.owl#"
  xml:base="http://protege.stanford.edu/plugins/owl/owl-library/koala.owl">
  <owl:Ontology rdf:about=""/>

  <owl:Class rdf:ID="Marsupials">
    <owl:disjointWith>
      <owl:Class rdf:about="#Person"/>
    </owl:disjointWith>
  </owl:Class>

  <owl:Class rdf:ID="KoalaWithPhD">
    <owl:versionInfo>1.2</owl:versionInfo>
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Restriction>
            <owl:hasValue>
              <Degree rdf:ID="PhD"/>
            </owl:hasValue>
            <owl:onProperty>
              <owl:ObjectProperty rdf:about="#hasDegree"/>
            </owl:onProperty>
          </owl:Restriction>

          <owl:Class rdf:about="#Koala"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>

  <owl:Class rdf:ID="Koala">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
        >false</owl:hasValue>
        <owl:onProperty>
          <owl:DatatypeProperty rdf:about="#isHardWorking"/>
        </owl:onProperty>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf rdf:resource="#Marsupials"/>
  </owl:Class>

  <owl:Class rdf:ID="Quokka">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
        >true</owl:hasValue>
        <owl:onProperty>
          <owl:DatatypeProperty rdf:about="#isHardWorking"/>
        </owl:onProperty>
      </owl:Restriction>
    </rdfs:subClassOf>
   <rdfs:subClassOf rdf:resource="#Marsupials"/>
  </owl:Class>

  <owl:Class rdf:ID="Degree"/>

  <owl:Class rdf:ID="Person">
    <owl:disjointWith rdf:resource="#Marsupials"/>
  </owl:Class>

  <owl:ObjectProperty rdf:ID="hasDegree">
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:range rdf:resource="#Degree"/>
  </owl:ObjectProperty>

  <owl:DatatypeProperty rdf:ID="isHardWorking">
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
    <rdfs:domain rdf:resource="#Person"/>
  </owl:DatatypeProperty>

</rdf:RDF>




----------------------

Any comments would be greatly appreciated!

Many thanks,
Luke

PhD Student
Monash University
Australia

Received on Tuesday, 18 July 2006 07:11:51 UTC