- From: Jim Hendler <hendler@cs.umd.edu>
- Date: Mon, 10 Mar 2003 20:34:15 -0500
- To: "Peter F. Patel-Schneider" <pfps@research.bell-labs.com>, costello@mitre.org
- Cc: www-rdf-logic@w3.org
At 9:07 -0500 3/10/03, Peter F. Patel-Schneider wrote:
>From: "Roger L. Costello" <costello@mitre.org>
>Subject: Re: Treating a class as both an individual and a class?
>Date: Mon, 10 Mar 2003 08:08:06 -0500
>
>>
>> Peter, I sure appreciate all of your excellent comments. Thanks!
>>
>> > > Is this good modelling? Does it effectively model the major
>> > > features of my hometown?
>> >
>> > No, this is not good modelling.
>>
>> Okay then I need help then with creating an example that shows a class
>> being used as both an individual and as a class. Could you give me an
>> example of the class River being used as an individual? (I already have
>> many examples of using River as a class.) /Roger
>
>I'm probably not a good person to ask, as I don't generally do that.
>
>However, a possible example would be modelling airline flights, where the
>concept of an airline flight would be a metaclass, a flight number would be
>a class (and an instance of the metaclass), and a particular flight (on a
>particular day) would be a non-class instance. You could then have
>properties of flight numbers (scheduled departure, destination, etc.) and
>properties of actual flights (actual departure, etc.).
>
>peter
A much simpler example -- many ontologies wish to have some specific,
non-inherited properties that can be associated with a class, rather
than an instance. For example, many biological ontologies want to
tie terms to things in the Swiss Protein DB or other such
identifier-based systems, and these terms can't just be normal
properties associated with the class because they are not to be
inherited by subclasses. A standard DL trick is to have a
"priviledged instance" that contains such properties, and then some
sort of "extralogical" (generally implementation specific) feature
for managing these. For example, we could do something like
:referenceClass a owl:class;
:instanceDataClass a owl:class.
:instanceDataOf a owl:dataTypeProperty;
rdfs:range a :instanceDataClass. (note: would be better to use local
restrictions -but I do this for
clarity)
:uniqueIdentifier a owl:dataTypeProperty;
rdfs:range xsd:string.
adenocarcinoma a owl:referenceClass.
adenocarcinomaInstanceData a :instanceDataClass;
instanceDataOf :adenocarcinoma;
:uniqueIdentifier "XVY27398".
One could now say things like this string is a
owl:functionalProperty, or include other such stuff. The key point
is that if we create a subClassOf adenocarcinoma, we now have a way
that it won't get the uniqueIdentifier, and also the
uniqueIdentifiers won't be inherited by the subclass.
Another way to do this is to use a property directly on the class,
and the current semantics for OWL Full would say that the subclasses
of the class wouldn't inherit instance properties - so I could simply
say
:adenocarcinoma a owl:class;
:uniqueIdentified "XVY27398".
to get the same effect.
-JH
--
Professor James Hendler hendler@cs.umd.edu
Director, Semantic Web and Agent Technologies 301-405-2696
Maryland Information and Network Dynamics Lab. 301-405-6707 (Fax)
Univ of Maryland, College Park, MD 20742 240-731-3822 (Cell)
http://www.cs.umd.edu/users/hendler
Received on Tuesday, 11 March 2003 02:15:36 UTC