Re: Treating a class as both an individual and a class?

From: "Nikita Ogievetsky" <nogievet@cogx.com>
Subject: Re: Treating a class as both an individual and a class?
Date: Mon, 10 Mar 2003 07:40:31 -0800

> 
> ----- Original Message -----
> From: "Peter F. Patel-Schneider" <pfps@research.bell-labs.com>
> To: <nogievet@cogx.com>
> Cc: <costello@mitre.org>; <www-rdf-logic@w3.org>
> Sent: Monday, March 10, 2003 7:27 AM
> Subject: Re: Treating a class as both an individual and a class?
> 
> 
> > From: "Nikita Ogievetsky" <nogievet@cogx.com>
> > Subject: Re: Treating a class as both an individual and a class?
> > Date: Mon, 10 Mar 2003 07:24:08 -0800
> >
> > > Peter F. Patel-Schneider wrote:
> > > > No, this is not good modelling.  If you want to say that Davenport has
> a
> > > > River, you should say so, via
> > > >
> > > >      <City rdf:ID="Davenport">
> > > >          <rdfs:subClassOf>
> > > >     <owl:Restriction>
> > > > <owl:onProperty rdf:resource="hasFeature" />
> > > > <owl:someValuesFrom rdf:resource="http://geodesy.org#River"/>
> > > >     </owl:Restriction>
> > > >          </rdfs:subClassOf>
> > > >          ....
> > > >      </City>
> > > >
> > >
> > > Hmmm....
> > > Peter, in  your example an individual city is a class?
> >
> > No, Davenport is an instance of the class City.
> 
> Sorry, I am missing this: do you agree with me or not?
> How can rdfs:subClassOf be used to denote "instance of"
> Should not "rdf:Type" be used instead (as I am trying to do bellow)?

Sorry, you are correct.  I messed up.

> > > Should not it be something like:
> >
> > > <CityOnARiver rdf:ID="Davenport">
> > >          ....
> > > </CityOnARiver>
> > >
> > > <owl:Class rdf:ID="CityOnARiver">
> > >   <rdfs:subClassOf rdf:resource="#River">
> > >   <rdfs:subClassOf>
> > >     <owl:Restriction>
> > >       <owl:onProperty rdf:resource="hasFeature" />
> > >       <owl:someValuesFrom rdf:resource="http://geodesy.org#River"/>
> > >     </owl:Restriction>
> > >   </rdfs:subClassOf>
> > > </owl:Class>
> >
> > This makes a city on a river be a river, which is probably not what is
> > wanted.
>
> It is a typo, of course: I meant:
> <rdfs:subClassOf rdf:resource="#Class">

I was concentrating too much on your mistake, and not on mine.

> <rdfs:subClassOf rdf:resource="#Class">

is still incorrect as it makes CityOnARiver a meta-class, and Davenport
would still be a class. 


The correct method would be

<CityOnARiver rdf:ID="Davenport">
         ....
</CityOnARiver>

<owl:Class rdf:ID="CityOnARiver">
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="hasFeature" />
      <owl:someValuesFrom rdf:resource="http://geodesy.org#River"/>
    </owl:Restriction>
  </rdfs:subClassOf>
</owl:Class>

In OWL you could do other interesting things then

1/ <CityOnARiver rdf:ID="Davenport">
         ....
   </CityOnARiver>

   makes Davenport a city that has a river as a feature (without saying
   which one it is).

2/ <http://geodesy.org#River" rdf:ID="YYYRiver" />

   <City rdf:ID="Davenport">
         <hasFeature rdf:resource="#YYYRiver" />
   </City>

   makes Davenport a city on the YYYRiver and also an instance of
   CityOnARiver (without mentioning CityOnARiver explicitly).


> --Nikita.

peter

Received on Monday, 10 March 2003 10:52:25 UTC