- From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
- Date: Tue, 17 Feb 2004 10:49:26 -0500 (EST)
- To: kotsomit@hpclab.ceid.upatras.gr
- Cc: public-webont-comments@w3.org
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? 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
Received on Tuesday, 17 February 2004 10:49:44 UTC