- From: <jon@hackcraft.net>
- Date: Mon, 8 Dec 2003 13:06:17 +0000
- To: "www-rdf-interest@w3.org" <www-rdf-interest@w3.org>
> In OWL, is there a way of specifying that a class may only have an enumerated > > set of subclasses, e.g. 'Fruit' may only be subclassed by 'Apple' and > 'Banana'? Just what do you have against oranges? Okay, Okay, you're only using it as an example, I know... > What I've come up with is this: > > > <owl:Class rdf:ID="NonAppleBanana"> > <owl:complementOf> > <owl:Class> > <owl:unionOf rdf:parseType="Collection"> > <owl:Class rdf:about="#Apple" /> > <owl:Class rdf:about="#Banana" /> > </owl:unionOf> > </owl:Class> > </owl:complementOf> > </owl:Class> > > <owl:Restriction rdf:about="#NonAppleBanana"> > <owl:onProperty rdf:resource="&rdfs;subClassOf" /> > <owl:allValuesFrom> > <owl:Class> > <owl:complementOf rdf:resource="#Fruit" /> > </owl:Class> > </owl:allValuesFrom> > </owl:Restriction> > > > Which says that anything which is not an apple or a banana may subclass only > > such things which are not fruit... I think that's okay, but why not have: <owl:Class rdf:ID="Fruit"> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:resource="#Apple" /> <owl:Class rdf:resource="#Banana" /> </owl:unionOf> </owl:Class> Then something can only be a Fruit if it is an Apple or if it is a Banana, which would include something that was of a type which was a subclass of Apple or Banana, that is if you had: <owl:Class rdf:ID="Golden_Delicious"> <rdfs:subClassOf rdf:resource="#Apple" /> </owl:Class> <owl:Class rdf:ID="Dog"> <owl:DisjointWith rdf:resource="#Apple" /> <owl:DisjointWith rdf:resource="#Banana" /> </owl:Class> Then parsing <Golden_Delicious rdf:ID="#appleToday" /> <Dog rdf:ID="#Rex" /> to have: <xxx:appleToday> <rdf:type> <xxx:Golden_Delicious> . <xxx:Rex> <rdf:type> <xxx:Dog> . then the first triple, combined with the OWL statements, entails: <xxx:appleToday> <rdf:type> <xxx:Apple> . which in turn entails: <xxx:appleToday> <rdf:type> <xxx:Fruit> . We also know that the following are *not* true: <xxx:Rex> <rdf:type> <xxx:Apple> . <xxx:Rex> <rdf:type> <xxx:Banana> . <xxx:Rex> <rdf:type> <xxx:Fruit> . -- Jon Hanna | Toys and books <http://www.hackcraft.net/> | for hospitals: | <http://santa.boards.ie/>
Received on Monday, 8 December 2003 08:06:24 UTC