RE: relate subclasses to other subclasses

Hi Evan,

I am a newcomer in the world of OWL, and I don't recognize the notation
method you used. Can you tell me what that is, and where I can find an
explanation of it? Would you be so kind to also represent it in RDF/XML?

Thanks!
Hans

=====================================================

-----Original Message-----
From: public-owl-dev-request@w3.org [mailto:public-owl-dev-request@w3.org]
On Behalf Of ewallace@cme.nist.gov
Sent: maandag 16 mei 2005 20:36
To: public-owl-dev@w3.org
Cc: wiegand@cs.wisc.edu
Subject: Re: relate subclasses to other subclasses

Nancy,

The main expressivity of OWL is in saying that instances of classes of one
type have (or can have) certain relationships with certain other class
types.  The following OWL abstract syntax says what you want about the likes
of men and women without creating different subtypes of the likes property.


It also doesn't constrain the domain or range of likes.  Leaving this
unrestricted makes the property more reusable. Even if you intend only to
model autos and people, you still may want to make assertions about people
liking other people without having to create a new property to do so.

Ontology(
 
 Class(a:Automobile partial)
 Class(a:Ford partial 
   a:Automobile)
 Class(a:Honda partial 
   a:Automobile)
 Class(a:Man partial 
   a:Person
   restriction(a:likes someValuesFrom (a:Mercedes))
   restriction(a:likes someValuesFrom (a:Honda)))  Class(a:Mercedes partial 
   a:Automobile)
 Class(a:Person complete 
   unionOf(a:Man a:Woman))
 Class(a:Woman partial 
   a:Person
   restriction(a:likes someValuesFrom (a:Ford))
   restriction(a:likes someValuesFrom (a:Honda)))

 ObjectProperty(a:likes)

)


Nancy Wiegand wrote:
>In general, I want to formally state in OWL that the subclasses from 
>one class have a relationship with some of the subclasses of another 
>class. Suppose men and women are subclasses of people. Also, makes of 
>cars are subclasses of cars. I want to state that men "like" Hondas and 
>Mercedes and women "like" Hondas and Fords. (Note, for simplicity, I'm 
>making this example up!)
>
>Do I have to model this by including an anonymous subclass in the 
>subclass definition of men that has onProperty restrictions to Hondas and
Mercedes?
.And, do I have to make separate relationships (ObjectProperties) to Hondas
>and Mercedes? example:
>
><owl:Class rdf:ID= "Men">
>   <rdfs:subClassOf rdf:resource= "#People"/>
>   <rdfs:subClassOf>                                  {anonymous subclass}
>       <owl:Restriction>
>           <owl:onProperty rdf:resource="menLikeHondas"/>
>           <owl:minCardinality rdf:dataType="&xsd:nonNegativeInteger">
>                1 </minCardinality>
>       </owl:Restriction>
>       <owl:Restriction>
>           <owl:onProperty rdf:resource="menLikeMercedes"/>
>           <owl:minCardinality rdf:dataType="&xsd:nonNegativeInteger">
>                1 </minCardinality>
>       </owl:Restriction>
>   <rdfs:subClassOf>
></owl:Class>
>
>Is there another way to express what I want? This seems rather 
>convoluted.
>
>Also, if the above is the way to model this, then, I don't like having 
>to define so many relationships ("menLikeX") but would rather use a 
>general relationship, say an inherited general "likes" relationship 
>between people and cars. Is that possible?


-Evan

Evan K. Wallace
Manufacturing Systems Integration Division NIST ewallace@nist.gov

Received on Tuesday, 17 May 2005 11:46:33 UTC