Cardinality Reasoning

Hello All,

I have the following ontology about colors and printers. I have
defined colours: Red, Yellow, Blue and Black - all different from each
other. For the 'hasColor' property, I have classes specified as
cardinality exactly 4 (HasFourColours), at least 4
(HasAtLeastFourColours), exactly 0 (HasNoColors). I have defined an
instance/individual of Printer with all four colours and another
second printer with not 'hasColor' property instances specified.

I would have thought that printer1 should be an instance of both
'HasFourColors' and 'HasAtLeastFourColors', but it is only an instance
of 'HasAtLeastFourColors', when using pellet for reasoning. Also
printer2 I would have thought would be an instance of 'HasNoColors'
but its not.

Can anyone help me understand why this is so? How would one create a
class which refers to those printers with no colours and exactly 4
colours?

Also why does printer1 fail to be an instance of
'HasAtLeastFourColours' when the colours are not specified as
'differentFrom' one another, is this because there is no unique name
assumption, therefore it doesnt know if these are really different?

Thanks,
Luke



PhD Candidate
Faculty of Information Technology
Monash University
A U S T R A L I A
=============================



<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:test="urn:test:"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:daml="http://www.daml.org/2001/03/daml+oil#"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
  <owl:Ontology rdf:about=""/>
  <owl:Class rdf:about="urn:test:Printer"/>

  <owl:Class rdf:about="urn:test:hasAtLeastFourColours">
    <owl:equivalentClass>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="urn:test:hasColor"/>
        </owl:onProperty>
        <owl:minCardinality
rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
        >4</owl:minCardinality>
      </owl:Restriction>
    </owl:equivalentClass>
  </owl:Class>

  <owl:Class rdf:about="urn:test:hasNoColour">
    <owl:equivalentClass>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="urn:test:hasColor"/>
        </owl:onProperty>
        <owl:cardinality
rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
        >0</owl:cardinality>
      </owl:Restriction>
    </owl:equivalentClass>
  </owl:Class>

  <owl:Class rdf:about="urn:test:HasFourColors">
    <owl:equivalentClass>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="urn:test:hasColor"/>
        </owl:onProperty>
        <owl:cardinality
rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
        >4</owl:cardinality>
      </owl:Restriction>
    </owl:equivalentClass>
  </owl:Class>

  <owl:Class rdf:about="urn:test:Color"/>

  <owl:ObjectProperty rdf:about="urn:test:hasColor">
    <rdfs:range rdf:resource="urn:test:Color"/>
  </owl:ObjectProperty>

  <test:Color rdf:about="urn:test:yellow">
    <owl:differentFrom rdf:resource="urn:test:blue"/>
    <owl:differentFrom rdf:resource="urn:test:black"/>
    <owl:differentFrom rdf:resource="urn:test:red"/>
  </test:Color>

  <test:Color rdf:about="urn:test:blue">
    <owl:differentFrom rdf:resource="urn:test:yellow"/>
    <owl:differentFrom rdf:resource="urn:test:black"/>
    <owl:differentFrom rdf:resource="urn:test:red"/>
  </test:Color>

  <test:Color rdf:about="urn:test:black">
    <owl:differentFrom rdf:resource="urn:test:yellow"/>
    <owl:differentFrom rdf:resource="urn:test:blue"/>
    <owl:differentFrom rdf:resource="urn:test:red"/>
  </test:Color>

  <test:Color rdf:about="urn:test:red">
    <owl:differentFrom rdf:resource="urn:test:yellow"/>
    <owl:differentFrom rdf:resource="urn:test:blue"/>
    <owl:differentFrom rdf:resource="urn:test:black"/>
  </test:Color>

  <test:Printer rdf:about="urn:test:printer1">
    <test:hasColor rdf:resource="urn:test:black"/>
    <test:hasColor rdf:resource="urn:test:red"/>
    <test:hasColor rdf:resource="urn:test:blue"/>
    <test:hasColor rdf:resource="urn:test:yellow"/>
  </test:Printer>

  <test:Printer rdf:about="urn:test:printer2"/>
</rdf:RDF>

Received on Thursday, 17 August 2006 10:52:54 UTC