- From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
- Date: Mon, 05 Mar 2001 13:03:53 -0500
- To: cbalon@grci.com
- Cc: www-rdf-logic@w3.org
From: "Balon, Corey" <cbalon@grci.com> Subject: "Is a Property a Class" and other DAML questions Date: Mon, 5 Mar 2001 11:48:08 -0500 > Just a few items that have been bothering me: > > 1) Is a Property a Class? > Can you put Properties in the places where Classes are allowed? > (ex. PropA sameClassAs PropB) > 2) Can something be both a Property and a Class? > is daml:TransitiveProperty both a Property and a Class? > > In some places such as http://www.daml.org/2000/12/daml+oil.daml > the answers to the above seem to be "yes", however > in others such as 3.1.3 of > http://www.daml.org/2000/12/axiomatic-semantics.html, > which says that "properties and classes are disjoint", > the answers seem to be "no" I'm not sure where you are seeing the implication that properties and classes are not disjoint in the DAML spec. It is true that some of the DAML spec documents are neutral with respect to this question, but I don't think that any actively mention objects that are both classes and properties. The only place where classes and properties are stated to be disjoint is in the axiomatization, and the only reason for that is that this comes from RDF (or RDFS). (As an aside, I can't find where this disjointness requirement is in RDF or RDFS. If it isn't there, then the axiom in the DAML+OIL axiomatization should be removed.) > > 4) more of a comment than a question... > For Restrictions, can I do the following? (I assume yes) > ----------------------- > <daml:NonNegativeInteger rdf:ID="1"/> > > <daml:Restriction rdf:ID="CarRestrictions"> > <daml:cardinality rdf:resource="#1"/> > <daml:onProperty rdf:resource="#hasEngine"/> > </daml:Restriction> > > <daml:Class rdf:about="#Car"> > <rdfs:subClassOf rdf:resource="#CarRestrictions"/> > </daml:Class> > > <daml:Class rdf:about="#Truck"> > <rdfs:subClassOf rdf:resource="#CarRestrictions"/> > </daml:Class> Aside from problems with the representation of 1, this is fine. > Now given the above can I add the following? (I assume no) > ---------------------- > <daml:NonNegativeInteger rdf:ID="2"/> > > <daml:Restriction rdf:about="CarRestrictions"> > <daml:mincardinality rdf:resource="#2"/> > <daml:onProperty rdf:resource="#hasDoors"/> > </daml:Restriction> > --------------------- Nothing wrong here, with the same caveat about numbers as above. You have, however, just created a very unusual restriction. Most restrictions would be unnamed, and placed inside the class ``definition'', as in the DAML+OIL examples. Further you probably haven't done what you expected. You have four ``restrictions'', not two, as you get both a cardinality (of 1) and a mincardinality (of 2) on both 'hasDoors' and 'hasEngine'. Of course, no object can meet these restrictions, so there can be no Cars in your example. > At this level this 'seems' good, however when triples are created > all the stuff in CarRestrictions gets mashed together. > I was putting together an example of bad DAML for fun and this > one came very naturally. I can see bugs like this being common > as more DAML is created by more people. Yes, but this is a problem with RDF, as RDF has no grouping mechanism, nor any mechanism to say that a construct is fully specified. It is always possible to add new things to a resource in RDF. The problem shows up in RDFS. (Consider a group of subClassOf statements from different sources that form a loop.) > thanks, > Corey Peter Patel-Schneider
Received on Monday, 5 March 2001 13:04:04 UTC