- From: Dan Brickley <danbri@w3.org>
- Date: Wed, 17 Sep 2003 22:46:41 -0400
- To: pat hayes <phayes@ihmc.us>
- Cc: www-rdf-comments@w3.org, public-webont-comments@w3.org
Short reply for now: Thanks Pat, that goes a long way to explaining where we are and how we got here. I look forward to your paper. So I need to sit back and digest what you just told me and figure out how to explain it to developers who are smart but often coming at this from an HTML/Javascript/XML background. I should also note that I did have a good rummage around the OWL specs looking for a concise answer, and found clues in a few places. It would be been good if I'd documented that trail, maybe I'll manage to do that as I absorb and re-package what you've just explained to me. Also to note that the Test Cases doc, esp http://www.w3.org/TR/2003/CR-owl-test-20030818/proposedByIssue#proposedIssue-I5.3-Semantic-Layering ...looks pretty useful in figuring out what's what. Thanks, Dan * pat hayes <phayes@ihmc.us> [2003-09-17 21:35-0500] > >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:46:41 UTC