W3C home > Mailing lists > Public > public-webont-comments@w3.org > January 2004

Re: NEWBIE: Property restriction semantics

From: Sean Bechhofer <seanb@cs.man.ac.uk>
Date: Mon, 12 Jan 2004 17:51:20 +0000
Message-ID: <4002DE98.4000309@cs.man.ac.uk>
To: Brian Manley <bmanley@granite.com>
Cc: public-webont-comments@w3.org

Brian Manley wrote:

> All,
> 
> Can a class instance change it's class membership by changing the
> value of its properties?
> 
> In my ontology I have the following definitions ( excuse my typos ):
> 
> <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"/>
>  <rdfs:subClassOf>
>    <owl:Restriction>
>      </owl:onProperty rdf:resource="#hasGrade"/>
>      </owl:hasValue rdf:resource="#Failed"/>
>    </owl:Restriction>
>  </owl:subClassOf>
> </owl:Class>
> 
> I'll omit the definition of "Grade" and friends for the sake of brevity...
> 
> Now, suppose I define:
> 
> <Student rdf:ID="Brian">
>  <hasGrade rdf:resource="#Failed"/>
> </Student>
> 
> Is my instance, based on the value of the "hasGrade" property, a "FailedStudent"
> or just a "Student"? Why ( not )?

Brian

In this particular example, the only thing we know about Brian is that 
he's a Student. The reason for this however is, I suspect, not the 
reason that you expect. Your ontology defines two classes:

Class(Student partial)
Class(FailedStudent partial)

SubClassOf(FailedStudent Student)
SubClassOf(FailedStudent restriction(hasGrade hasValue Failed))

(I use the abstract syntax here rather than RDF as I think it helps to 
clarify things). What this actually says is that FailedStudent is a 
subclass of Student and any FailedStudents must have grade Failed. It 
does *not*, however, tell us that a student with a Failed grade is a 
FailedStudent, because we only have *subclass* assertions. Thus having a 
Failed grade is a necessary condition of being a failed student, but it 
is not sufficient (see some earlier discussions about this topic [1]). 
If we had actually said:

Class(Student partial)
Class(FailedStudent complete
	Student
	restriction(hasGrade hasValue Failed))

In other words, FailedStudent is defined to be *equivalent* to a Student 
with a grade Failed, then it *would* be the case that a reasoner can 
legitimately make the inference that Brian is a FailedStudent.

So two lessons here;

1) We have to be careful about the distinction between subclass and 
equivalent class.

2) The classification of an instance *can* change through description of 
its properties.

{Note also though that due to the mononotonic nature of reasoning in 
Description Logics, if we add further information to the description of 
an instance, we cannot stop it from being an instance of a class if it 
already was -- we can only add to the classes that it is an instance of. 
So there is nothing we can say about Brian that stops him being an 
instance of Student (without necessarily introducing some inconsistency 
into the ontology). But that's perhaps best left for another day :-)}

Cheers,

	Sean

[1] http://lists.w3.org/Archives/Public/www-webont-wg/2004Jan/0015.html

-- 
Sean Bechhofer
seanb@cs.man.ac.uk
http://www.cs.man.ac.uk/~seanb
Received on Monday, 12 January 2004 12:52:17 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:43:29 GMT