Re: Case for Reinstatement of Qualified Cardinality Restrictions

Peter F. Patel-Schneider wrote:
> From: Mike Dean <mdean@bbn.com>
> Subject: Re: Case for Reinstatement of Qualified Cardinality Restrictions 
> Date: Wed, 23 Apr 2003 12:28:41 -0700
> 
> 
>>>>Agreed.  I normally use multiple Restrictions with the same
>>>>value for onProperty.
>>>
>>>If you are doing this in the RDF encoding you are going to be unpleasantly
>>>surprised.
>>
>>Perhaps I should clarify with an example
>>
>>  <owl:Class rdf:ID="Person">
>>    <rdfs:subClassOf>
>>      <owl:Restriction>
>>        <owl:onProperty rdf:resource="#father"/>
>>        <owl:allValuesFrom rdf:resource="#Person"/>
>>      </owl:Restriction> 
>>    </rdfs:subClassOf>
>>    <rdfs:subClassOf>
>>      <owl:Restriction>
>>        <owl:onProperty rdf:resource="#father"/>
>>        <owl:cardinality>1</owl:cardinality>
>>      </owl:Restriction> 
>>    </rdfs:subClassOf>
>>  </owl:Class>
>>
>>Why is this a problem?
>>
>>	Mike
> 
> 
> Sorry, I misread what you said.  Your solution is fine.  What doesn't work
> is
> 
>    <owl:Class rdf:ID="Person">
>      <rdfs:subClassOf>
>        <owl:Restriction>
>          <owl:onProperty rdf:resource="#father"/>
>          <owl:allValuesFrom rdf:resource="#Person"/>
>          <owl:cardinality>1</owl:cardinality>
>        </owl:Restriction> 
>      </rdfs:subClassOf>
>    </owl:Class>
> 

Agreed, but my and Jeff's point  was: you cannot produce these triples 
from the abstract syntax.

Whenn I wa rewriting this part of Reference, I ws first confused about 
this, so I checked wuth you and others and my conclusion (wrong?) was 
that one restriction instance should have exactly one "onProperty" 
triple and exactly one constraint triple. Acordingly, Reference Sec. 3.1 
states:

[[
Property restrictions have the following general form:

<owl:Restriction>
   <owl:onProperty rdf:resource="(some property)" />
   (precisely one value or cardinality constraint, see below)
</owl:Restriction>
]]

At some point a started writing an alternative version of owl.owl, using 
OWL itlsef (instead of RDF schema) to define OWL. Maybe I should finish 
this excercise. Here is a relevant fragment from this alternative 
owl.owl file:

[[
<rdfs:Class rdf:ID="Restriction">
   <rdfs:label>Restriction</rdfs:label>
   <rdfs:subClassOf rdf:resource="#Class"/>
   <rdfs:subClassOf>
     <Restriction>
       <onProperty rdf:resource="#onProperty"/>
       <cardinality rdf:datatype="&xsd;nonNegativeInteger;">1</cardinality>
     </Restriction>
   </rdfs:subClassOf>
   <rdfs:subClassOf>
     <Restriction>
       <onProperty rdf:resource="#propertyConstraint"/>
       <cardinality rdf:datatype="&xsd;nonNegativeInteger;">1</cardinality>
     </Restriction>
   </rdfs:subClassOf>
</rdfs:Class>
]]

where "propertyConstraint is defined elsewhere as a superclass of the 
various value and cardinality consraints.

Guus


> 
> peter
> 

-- 
NOTE: new affiliation per April 1, 2003

Free University Amsterdam, Computer Science
De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands
Tel: +31 20 444 7739/7718
E-mail: schreiber@cs.vu.nl
Home page: http://www.cs.vu.nl/~guus/ [under construction]

Received on Wednesday, 23 April 2003 18:14:02 UTC