- From: Frank van Harmelen <Frank.van.Harmelen@cs.vu.nl>
- Date: Sat, 23 Mar 2002 00:20:45 +0100
- To: WebOnt WG <www-webont-wg@w3.org>
> Frank van Harmelen wrote: >>A PrimitiveClass lists necessary conditions for membership, >>A DefinedClass lists necesary and sufficient conditions for membership, Jonathan Borden wrote: > > Can I ask a naive question? (well I will :-) Under what specific conditions, > for what we are doing specifically here, is it important to make this > distinction? -- I ask this because my understanding is that DAML+OIL does > not currently make this distinction. DAML+OIL does have this distinction. Any class is primitive, unless defined as a sameClassAs, oneOf, intersectionOf, unionOf, complementOf. Eg: <daml:Class rdf:ID="#person"> <rdfs:subClassOf rdf:resource="#animal"/> <rdfs:subClassOf> <daml:Restriction daml:cardinality="1"> <daml:onProperty rdf:resource="#hasFather"/> </daml:Restriction> </rdfs:subClassOf> </daml:Class> states that persons are animals, and that they have one father. That does >*not*< mean that any animal with one father is also a person. Stated yet another way: this makes person a subset of both animal and "things with one father" (ie a subset of their intersection), but not >*equal*< to that intersection, ie not every animal with one father is a person. However, making person a definedclass can be done by stating: <daml:Class rdf:ID="#person"> <intersectionOf rdf:parsetype="daml:collection"> <rdfs:subClassOf rdf:resource="#animal"/> <rdfs:subClassOf> <daml:Restriction daml:cardinality="1"> <daml:onProperty rdf:resource="#hasFather"/> </daml:Restriction> </rdfs:subClassOf> </intersectionOf/> </daml:Class> This makes person >*equal*< to the intersection of animal and "all things with one father", so now all animals with one father can also be concluded as persons. > Is a primitive class something akin to an "abstract base class" that is to > say, it is intended to be used in defining other classes, and not to have > its own 'direct' membership ... if so would the keyword "abstact" be a good > way to distinguish a PrimitiveClass from a DefinedClass in the syntax No, this is not the intuition at all. The intuition is that in a primitive class, membership of the class implies the conditions from the class definition (but not vice versa), while in a defined class, membership of the class is equivalent with / fully characterised by the conditions from the class. Or even looser: you use a defined class when you have a full characterisation of a class, you use a primitive class if you just state some of the properties of the (members of) the class, but not necessarily a full characterisation. > (I need at least a keyword to make this LALR(1) :-) In earlier discussions with Ian and Peter, I floated "PartialClassDef" for primitive class and "CompleteClassDef" for defined class. [BTW, having to spell out these rather contorted DL-style ways of saying something really quite simple is exactly the motivation why our proposal for OWL tried to regain the frame-style, instead of the DL style of the above]. In the words of [2] (again): "The prevalence of frame-based ontology editors and their popularity among users suggests that the frame-based paradigm is appropriate for such tools. Description Logic languages certainly have a place in the toolkit of the conceptual modeller but they have not gained much popularity as raw tools for conceptual modelling in the past. This is unlikely to change." --------------------------------- On the issue of individuals: > for example, suppose: > > individual foo( > property ex:color(value blue) > ) > > would this translate to the RDF: > > <rdf:Description rdf:ID="foo"> > <ex:color rdf:resource="#blue"/> > </rdf:Description> > > as opposed to > > <daml:Class rdf:ID="foo"> > <daml:Restriction> > <daml:onProperty rdf:resource="ex:color"/> > <daml:toClass rdf:resource="#blue"/> > </daml:Restriction> > </daml:Class> Well, we haven't decided on any translation into RDF of course, but yes, the first would be plausible, the second not. Frank. ----
Received on Friday, 22 March 2002 18:21:36 UTC