[Pellet-users] Problems with cardinality consistency checking

Ibach, Brandon L brandon.l.ibach at lmco.com
Mon Oct 29 19:56:02 UTC 2007


Maxime,
    The ontology you included in your message has some syntax problems, such as the <owl:cardinality> element being malformed, but that may have been just an artifact of the email process, so I'm guessing you can resolve those.
 
    The bigger issue, which I think can explain why Pellet doesn't complain about your 5-legged chair, is the fact that OWL does NOT have the unique name assumption (UNA).  This means that Pellet will NOT automatically assume that Leg_1, Leg_2, Leg_3, Leg_4 and Leg_5 are actually 5 different individuals.  In other words, for all Pellet knows, Leg_4 and Leg_5 (or any other two) might just be two different names for the same leg.  Therefore, Chair_1 is not flagged as a consistency error.
 
    If you add owl:differentFrom statements (or an owl:AllDifferent construct) for the leg individuals, I think you'll get what you're after.  Alternatively, Pellet has a configuration option to enable UNA, but this is not a standard OWL feature.  Check out the Pellet FAQ for details.

-Brandon :)


 


________________________________

	From: pellet-users-bounces at lists.owldl.com [mailto:pellet-users-bounces at lists.owldl.com] On Behalf Of Maxime Pelcat
	Sent: Monday, October 29, 2007 1:51 PM
	To: pellet-users at lists.owldl.com
	Subject: [Pellet-users] Problems with cardinality consistency checking
	
	
	Dear Pellet experts,
	
	I am trying to build an ontology of synchronous dataflow graphs and I have problems checking cardinality consistency of my model with pellet. 
	
	The ontology is made with Protégé and consistency is tested with Pellet.
	
	In order to clarify the problem I join a very simple example, which behavior I don't understand. A chair should have 4 legs. I create a chair individual with five legs and reasoning goes through without outputting an error.
	
	<?xml version="1.0"?>
	<rdf:RDF
	    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	    xmlns:p1="http://www.owl-ontologies.com/assert.owl#"
	    xmlns:owl="http://www.w3.org/2002/07/owl#"
	    xmlns="http://ietr-image.insa-rennes.fr/public/test.owl#"
	    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
	    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
	  xml:base="http://ietr-image.insa-rennes.fr/public/test.owl">
	  <owl:Ontology rdf:about=""/>
	  <owl:Class rdf:ID="Chair">
	    <rdfs:subClassOf>
	      <owl:Restriction>
	        <owl:onProperty>
	          <owl:ObjectProperty rdf:ID="hasLegs"/>
	        </owl:onProperty>
	        
	        >4</owl:cardinality>
	      </owl:Restriction>
	    </rdfs:subClassOf>
	    http://www.w3.org/2002/07/owl#Thing"/>
	  </owl:Class>
	  <owl:Class rdf:ID="Leg"/>
	  <owl:ObjectProperty rdf:about="#hasLegs">
	    <rdfs:range rdf:resource="#Leg"/>
	    <rdfs:domain rdf:resource="#Chair"/>
	  </owl:ObjectProperty>
	  <Chair rdf:ID="Chair_1">
	    <hasLegs>
	      <Leg rdf:ID="Leg_4"/>
	    </hasLegs>
	    <hasLegs>
	      <Leg rdf:ID="Leg_3"/>
	    </hasLegs>
	    <hasLegs>
	      <Leg rdf:ID="Leg_2"/>
	    </hasLegs>
	    <hasLegs>
	      <Leg rdf:ID="Leg_5"/>
	    </hasLegs>
	    <hasLegs>
	      <Leg rdf:ID="Leg_1"/>
	    </hasLegs>
	  </Chair>
	</rdf:RDF>
	
	
	
	Could you please tell me if I am using the right method? Why does the reasoner assert that this ontology is consistent? Is there a problem with cardinalities? Is consistency the right property to check? Does this ontology makes sense?
	
	Many thanks for your help.
	Maxime Pelcat
	

________________________________

	Ne gardez plus qu'une seule adresse mail ! Copiez vos mails <http://www.trueswitch.com/yahoo-fr/>  vers Yahoo! Mail 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.owldl.com/pipermail/pellet-users/attachments/20071029/583e10dc/attachment-0001.htm 


More information about the Pellet-users mailing list