- From: Pierre-Antoine CHAMPIN <pa@champin.net>
- Date: 21 Aug 2002 09:18:39 +0200
- To: Ora Lassila <daml@lassila.org>
- Cc: www-rdf-logic@w3.org
On Wed, 2002-08-21 at 03:14, Ora Lassila wrote: > <daml:Class rdf:ID="MyFunkyMetaClass"> > <daml:oneOf rdf:parseType="daml:collection"> > <MyMetaClass rdf:ID="A"/> > <daml:oneOf> > <daml:Class> > > and then make AA be a subclass of A, weird things happen: Because of the > above definition AA is not a member of MyFunkyMetaClass, yet this > somehow goes against what I have always thought of the subclass > relation... I don't see anything going against my conception of subclass relation... Subclass relations tells me about *instances* of AA being also instances of A, certainly not about *class* AA being member of the same meta-classes as *class* A... (try to figure out the meta-class containing all the classes having no subclass...) What you are trying to do can be achieved, I think, with <daml:Class rdf:ID="MyNotSoFunkyMetaClass"> <daml:sameClassAs> <daml:Restriction> <daml:onProperty rdf:resource="&rdfs;#subClassOf"/> <daml:hasValue rdf:resource="#A"/> </daml:Restriction> </daml:sameClassAs> </daml:Class> to be confirmed by some DAML+OIL guru, which I'm not... pA > > Folks, > > let me apologize in advance if this has recently been discussed (I am > not fully caught up on the mailing list traffic): > > I'd like to define a property (preferably in DAML+OIL) whose values are > restricted to be a certain set of classes. One way of doing this would > be to define a metaclass and assign this as the rdfs:range of the > property. So far so good, but anyone can instantiate new classes from > the metaclass, so I would now like to restrict the membership of the > metaclass: > > <daml:Class rdf:ID="MyMetaClass"> > <daml:oneOf rdf:parseType="daml:collection"> > <MyMetaClass rdf:ID="A"/> > <MyMetaClass rdf:ID="B"/> > ... > <daml:oneOf> > <daml:Class> > > This works. Now for my question: What if I wanted to restrict the > property values to my class A and any of its subclasses? Again, I could > define a metaclass, make A be an instance of this metaclass, but how to > restrict the membership of the metaclass? If I say > > <daml:Class rdf:ID="MyFunkyMetaClass"> > <daml:oneOf rdf:parseType="daml:collection"> > <MyMetaClass rdf:ID="A"/> > <daml:oneOf> > <daml:Class> > > and then make AA be a subclass of A, weird things happen: Because of the > above definition AA is not a member of MyFunkyMetaClass, yet this > somehow goes against what I have always thought of the subclass > relation... > > Or am I just confused? Any ideas? > > - Ora > > -- > Ora Lassila mailto:daml@lassila.org http://www.lassila.org/ > Research Fellow, Nokia Research Center >
Received on Wednesday, 21 August 2002 03:19:28 UTC