Re: Cardinality Restrictions and Punning

Summary: I don't yet see any particular problems.

Note:  I also don't see that this is only related to cardinalities, as
related issues arise with things like

	ObjectPropertyAssertion(eg:p eg:a eg:a)
	ClassAssertion(eg:a DataAllValuesFrom(eg:p xsd:integer))

(The mention of cardinalities had lead me to think that the issue had
something to do with a punned name counting as more than one domain
element, but I now see that this is not the case.)

peter



From: Jeremy Carroll <jjc@hpl.hp.com>
Subject: Cardinality Restrictions and Punning
Date: Thu, 20 Dec 2007 13:56:08 +0000

> Hmmm, this is tricky, harder than I thought.
> 
> Some examples. I'm struggling as to the discussion.
> 
> 
> Example 1:
> Consistent:
> [punning on eg:p]
> 
> eg:a rdf:type owl:Thing .
> eg:a eg:p   eg:a .
> eg:p rdf:type owl:ObjectProperty .
> eg:p rdf:type owl:DataProperty .
> _:r rdf:type owl:DataRestriction .
> _:r owl:maxCardinality "0"^^xsd:int .
> _:r owl:onProperty eg:p .
> eg:a rdf:type _:r .

I.e.,

ObjectPropertyAssertion(eg:p eg:a eg:a)
ClassAssertion(eg:a DataMaxCardinality(0 eg:p))

> Example 2:
> Inconsistent.
> 
> eg:a rdf:type owl:Thing .
> eg:a eg:p   eg:a .
> eg:p rdf:type owl:ObjectProperty .
> eg:p rdf:type owl:DataProperty .
> _:r rdf:type owl:ObjectRestriction .
> _:r owl:maxCardinality "0"^^xsd:int .
> _:r owl:onProperty eg:p .
> eg:a rdf:type _:r .


I.e.,  (more or less)

ObjectPropertyAssertion(eg:p eg:a eg:a)
ClassAssertion(eg:a ObjectMaxCardinality(0 eg:p))
+ something like EquivalentDataProperties(eg:p eg:p)

> Example 3 - not in OWL 1.1 DL, because mapping rules don't apply.
> Who knows whether this is consistent or not, and how we would go about 
> an OWL Full semantics. I think it should be inconsistent in OWL Full.
> 
> eg:a rdf:type owl:Thing .
> eg:a eg:p   eg:a .
> eg:p rdf:type owl:ObjectProperty .
> eg:p rdf:type owl:DataProperty .
> _:r rdf:type owl:Restriction .
> _:r owl:maxCardinality "0"^^xsd:int .
> _:r owl:onProperty eg:p .
> eg:a rdf:type _:r .

I.e., (more less than more)

ObjectPropertyAssertion(eg:p eg:a eg:a)
ClassAssertion(eg:a MaxCardinality(0 eg:p))
+ something like EquivalentDataProperties(eg:p eg:p)

> Example 4
> Inconsistent
> 
> eg:a rdf:type owl:Thing .
> eg:a eg:p   eg:a .
> eg:p rdf:type owl:ObjectProperty .
> _:r rdf:type owl:Restriction .
> _:r owl:maxCardinality "0"^^xsd:int .
> _:r owl:onProperty eg:p .
> eg:a rdf:type _:r .

I.e.,

ObjectPropertyAssertion(eg:p eg:a eg:a)
ClassAssertion(eg:a MaxCardinality(0 eg:p))

> Example 5
> Consistent
> 
> eg:a rdf:type owl:Thing .
> eg:p rdf:type owl:DataProperty .
> _:r rdf:type owl:Restriction .
> _:r owl:maxCardinality "0"^^xsd:int .
> _:r owl:onProperty eg:p .
> eg:a rdf:type _:r .

I.e., (more or less)

ClassAssertion(eg:a DataMaxCardinality(0 eg:p))

> Summary:
> 
> 1 vs 2 the object restriction is inconsistent, data restriction is  
> consistent, *in the DL semantics*. One triple differs between the two.
  	      *    [added]        *
> 
> 1,2 vs 3 if we don't specify object restriction or data restriction, 
> using owl:Restriction with punning declarations, then we are outside the 
> scope of OWL 1.1 DL, but OWL 1.1 Full semantics needs to say something

Same as in OWL Full?

> 3 vs 4
> 4 is inconsistent in OWL 1.1 DL, becuase the restriction is read as an 
> ObjectRestriction *again in the DL semantics*. 3 adds more triples,
                    *          [added]        *
> and so must also be inconsistent  
> in OWL 1.1 Full.
> 
> 3 vs 5
> 5 is 3 without two triples, but is consistent.

One possible way forward (which I'm not yet championing):

In OWL 1.1 Full, there is no distinction between object and data
properties.  The class extension of both owl:ObjectProperty and
owl:DataProperty is the same as that of rdfs:Property.  Note that this
does produce observable differences between OWL 1.1 DL and OWL 1.1 Full,
but only related to punning object and data properties.

Received on Thursday, 20 December 2007 16:21:19 UTC