Re: NEWBIE: Property restriction semantics

On 17-Feb-04, at 12:27, Dimitrios A. Koutsomitropoulos wrote:

>
>
> Thanks indeed! It seems more clear now. However...
>
>> -----Original Message-----
>> From: public-webont-comments-request@w3.org
>> [mailto:public-webont-comments-request@w3.org] On Behalf Of
>> Peter F. Patel-Schneider
>> Sent: Tuesday, February 17, 2004 5:49 PM
>> To: kotsomit@hpclab.ceid.upatras.gr
>> Cc: public-webont-comments@w3.org
>> Subject: Re: NEWBIE: Property restriction semantics
>>
>>
>> From: "Dimitrios A. Koutsomitropoulos"
>> <kotsomit@hpclab.ceid.upatras.gr>
>> Subject: Re: NEWBIE: Property restriction semantics
>> Date: Tue, 17 Feb 2004 17:26:09 +0200
>>
>>>
>>>
>>> Let's consider the following modification of Brian's example:
>>>
>>>
>>> <owl:Class rdf:ID="Student"/>
>>>
>>> <owl:ObjectProperty rdf:ID="hasGrade">  <rdfs:domain
>>> rdf:resource="#Student"/>  <rdfs:range rdf:resource="#Grade"/>
>>> </owl:ObjectProperty>
>>>
>>> <owl:Class rdf:ID="FailedStudent">
>>>  <rdfs:subClassOf rdf:resource="#Student"/>  <owl:equivalentClass>
>>> <!-- instead of subClassOf -->
>>>    <owl:Restriction>
>>>      </owl:onProperty rdf:resource="#hasGrade"/>
>>>      </owl:hasValue rdf:resource="#Failed"/>
>>>    </owl:Restriction>
>>>  </owl:subClassOf>
>>> </owl:Class>
>>>
>>> And just assert that Brian isA FailedStudent:
>>>
>>> <FailedStudent rdf:ID="Brian" />
>>>
>>> Would this imply that Brian hasGrade Failed?
>
> ...by "Brian hasGrade Failed" I do not mean that "Brian in 
> hasGrade:Failed"
> which I can understand. I mean if the actual role filler for 
> instance:Brian
> and Role:hasGrade will be the instance:Failed.
>
> For example, Racer does not seem to infer this...

Well, Racer does not support individuals as part of class expressions. 
This would require the description logic SHOQ (or even SHOIQ) but Racer 
is still based on SHIQ. The "O" part means the support of individuals 
in class expressions. BTW, I think the same restriction also applies to 
other highly optimized OWL DL reasoners.

Racer supports owl:hasValue for datatype property values (integer, 
real, string) but not for individuals.

If one uses an individual as value for an object property, this is 
approximated as:

<owl:Restriction>
      <owl:onProperty rdf:resource="#hasGrade"/>
      <owl:someValuesFrom rdf:resource="#Failed"/>
  </owl:Restriction>

"Failed" is automatically declared as a class, i.e., individuals are 
mapped to classes with the same name.
If you'll switch on the "verbose" mode of Racer, you'll get an 
appropriate warning...

Hope, this helps.

>
>
>>
>> Yes.  Note, however, that this inference would also be valid
>> in the original example.  Note also that your example doesn't
>> make much sense, as it has lots of unusual consequences.
>>
>> This is yet another case where the RDF/XML syntax is not
>> helpful, as it obscures the real semantic relationships.
>> What you have done is define FailedStudent as follows
>>
>>
>> 	FailedStudent <= Student
>> 	FailedStudent = hasGrade : Failed
>>
>>> From this you can infer
>>
>> 	hasGrade:Failed <= Student
>>
>> i.e., any thing that has a failing grade (perhaps in love,
>> for example) would be a Student.  What you probably want is
>>
>> 	FailedStudent = Student & hasGrade:Failed
>>
>> or
>>
>> 	FailedStudent <= Student & hasGrade:Failed
>>
>> In both these cases
>>
>> 	Brian in FailedStudent
>>
>> implies
>>
>> 	Brian in hasGrade:Failed
>>
>>
>>> I would be really happy for any feedback on this!
>>>
>>> Many thanks,
>>>
>>>
>>> Dimitris Koutsomitropoulos
>>
>> Peter F. Patel-Schneider
>>
>>
>
>

Regards, Volker Haarslev
----------------------------------------------------
http://www.cs.concordia.ca/~haarslev/

Received on Tuesday, 17 February 2004 14:43:32 UTC