Re: OWL CR feedback: owl:Class 'vs' rdfs:Class causing pain. Is owl:Class really needed?

>Hi
>
>(Sent with my implementor hat on, rather than as W3C Team / RDF Core
>person etc...)
>
>A quick note to report on difficulties the existence of owl:Class is
>causing in the FOAF world. FOAF is an RDF (RDFS/OWL) vocabulary,
>(detailed at http://xmlns.com/foaf/0.1/) that is getting an encouraging
>amount of usage on the public Web. FOAF files describe people,
>documents, organisations, images etc. and their inter-relationships. I
>have recently started making more extensive use of OWL within FOAF,
>to indicate inverse-property relations, inverse functional properties,
>mutual disjointness between classes and suchlike. It works quite nicely
>for this, and has helped us in our work and in explaining it. Thanks!
>
>In promoting OWL via FOAF, I've repeatedly run into concerns and
>confusion w.r.t. the existence of the owl:Class class, since RDF
>(in RDF Schema) already provides a very similar concept, rdfs:Class.
>This situation is causing problems, and I'm at a loss as to what to say
>to implementors (eg. [1]) except "I wish the OWL group would explain
>what to do, 'cos I don't know".
>
>Are all RDF classes OWL classes?

No. RDFS has a more general notion of class than OWL has. In 
particular, rdfs:Class is not an OWL class.

>and vice-versa?

Yes.

>Can this be expressed
>with (rdfs):subClassOf?

Yes, in RDFS:

owl:Class rdfs:subClassOf rdfs:Class.

However, this fact is 'invisible' in OWL because of the restrictions 
which have been placed on the expressivity of OWL syntax in order to 
keep it within a description logic framework. In OWL-DL it is illegal 
to even describe some of the properties of rdfs:Class, eg

rdfs:Class rdf:type rdfs:Class .

is an axiom in RDFS but a syntax error in OWL-DL.

>It seems OWL is happy with using rdfs:subClassOf
>(whose range and domain are rdfs:Class, at least in RDF/S)... does this
>mean that each FOAF class I define is also an owl:Class?

Not necessarily; but then you would not expect to be able to infer 
that just from the domain and range information. And rdfs:subClassOf 
has a more restricted meaning in OWL than it does in RDFS, since OWL 
admits fewer classes. You can think of its meaning in OWL as being 
the restriction of its RDFS meaning to the OWL universe.  Its a bit 
like using 'offspring' to refer to one's children: it's correct, but 
the term has a wider meaning in a wider universe. But if you are only 
talking about human beings in any case, then 'children' and 
'offspring' would be synonyms. So OWL chose to use the RDFS term 
rather than invent a new one.

>Would it be
>good practice, appropriate, true etc for me to assert this within the
>FOAF namespace document?

You cannot legally use rdfs:Class in OWL as rdfs:Class is not a legal 
OWL class. You can use the URI, just as you can use any URI, but you 
need to bear in mind that OWL does not give it the same meaning as it 
has in RDFS. For a lot of the time this does not really matter, but 
sometimes it does, eg if you conclude in OWL that some owl:Class is 
empty, the same chain of reasoning might not lead to the same 
conclusion in RDFS about a similarly defined rdfs:Class, because RDFS 
allows classes to contain things that OWL refuses to even believe in, 
so considers to not exist.  A lot of RDFS things are OWL-invisible.

>Recently we have been exploring the use of OWL's fancier features, to
>say things like "Any Person whose foaf:workplaceHomepage is
>http://www.ilrt.bris.ac/uk is an ILRTStaffPerson". This is used in the
>FOAF Group mechanism, see http://xmlns.com/foaf/0.1/#term_Group
>...in this part of the spec I copied the markup from OWL specs, and
>hence have used owl:Class instead of rdfs:Class. I find I have no
>sense of whether this is broken, invalid etc. usage or simply confusing.

It is certainly not broken or wrong. What it means, however, is that 
there could be RDFS classes to which it might not apply.  This may 
well not be an issue for you: only you can decide, by asking yourself 
if your notion of 'class' fits into the OWL view of what counts as a 
class (and if it does, I would suggest using it explicitly throughout 
your ontology.).  OWL-DL only allows very restricted forms of 
classes: they cannot contain mixtures of properties and individuals, 
or other classes, for example (so that, eg, rdfs:Class itself is not 
a legal OWL-DL class).  OWL-Full has been designed so that it does 
allow one to use more general kinds of class, but *if* you don't use 
them, then it 'feels' just like OWL-DL. This means that even 
OWL-Full, as defined in the OWL documentation, is more restricted 
than RDFS, and makes assumptions which are not everywhere valid in 
RDFS. In a nutshell, OWL can say a lot more things than RDFS can, but 
only about a smaller universe. If you fit naturally into that smaller 
universe, use the OWL main vocabulary consistently: owl:Class instead 
of rdfs:Class, owl:Thing instead of rdfs:Resource and the 
owl:Property classes instead of rdf:Property. They are all 
rdfs:subClassOf the corresponding RDFS classes.

If you are not comfortable with the OWL restrictions, you could just 
use the OWL vocabulary within RDF without caring if you were OWL-DL 
compliant; the result would be semantically coherent, but would 
require some care if you wanted to interact with something written in 
OWL-DL (and would probably lock you out of using the 
industrial-strength OWL-DL inference engines). Basically, you should 
translate any OWL-DL construct into your language by being explicit 
about the restrictions, eg owl:complementOf should always be 
intersected with owl:Thing. This will be vacuous (and therefore 
harmless) in OWL-DL but will keep your 'wild OWL' consistent with any 
OWL-DL it might need to use. Im working on a paper describing this in 
detail, but other matters are more pressing on my time right now.

>If it is within the OWL WG's power to do anything to simplify the
>situation I would be hugely grateful...

Unfortunately the current situation is the result of a clash of 
intuitions which has been a central issue in OWL from the start. 
Under the circumstances, what we have is a compromise which nobody is 
really happy with. Some of us would prefer OWL to be as free as RDFS 
is. Others would like to restrict RDFS to fit into the same narrow 
ontological framework as OWL-DL (eg see the papers by Ian Horrocks, 
Peter Patel-Schneider and Jeff Pan in the forthcoming SW meeting at 
Sanibel). Wars have been fought over less important issues than these.

Pat
-- 
---------------------------------------------------------------------
IHMC	(850)434 8903 or (650)494 3973   home
40 South Alcaniz St.	(850)202 4416   office
Pensacola			(850)202 4440   fax
FL 32501			(850)291 0667    cell
phayes@ihmc.us       http://www.ihmc.us/users/phayes

Received on Wednesday, 17 September 2003 22:35:45 UTC