Re: properties with classes as values?

"Sean B. Palmer" wrote:
> 
> > I want to declare a property that will take a class as its value
> (rather
> > than an instance of a class).
> 
> Use daml:hasValue on a DAML restriction for that.
> 
> > For instance, I want to declare class MyClass with property
> > myProperty, and say that the range of myProperty is Class,
> > so that an instance of MyClass can have myProperty with,
> > say, class Person as its value.
> 
> Er... that's not what you're asking for above. Why would the range of
> myProperty be Class, e.g. if you want it to take Person as a value? Is
> Person the only instance of Class?
> 
> If you want Person to be the only *value* that myProperty can take,
> try:-

No, that's not what I was trying to say above.  What I want is that the
value of myProperty can be *any* class.  Person is just one value that
myProperty can take.  I was just using Person as an illustration of the
value that some particular instance of myProperty might have.

Anyway, my next question (2) was meant to be the real point of the
message ...

> 
>  ...
> 
> > (2) Now, what if I want to say that the range of myPropery is
> > Class (as above), AND that its values are restricted to the
> > subclasses of some particular class, say, Animal.  Is this doable?
> > And if so, how would this range be declared?
> 
> That would be an intersectionOf, I think... you want to say that the
> range is the intersection of Class and a subClassOf Animal?
> 
>    :x rdfs:range
>       [ daml:intersectionOf
>           (:Class [ rdfs:subClassOf :Animal ]) ] .
> XML RDF of these things available upon request...

I would very much appreciate seeing the last sample above in DAML+OIL. 
I guess what I'm not clear about is this:  Does this expression (or its
precise DAML form):

      [ rdfs:subClassOf :Animal ]
                                                                                                               
 (a) assert that something is a subclass of Animal
OR
 (b) denote the set of all subclasses of Animal?

Your example seems to rely on (b).  But ordinary uses, such as

<daml:Class rdf:ID="Male">
  <rdfs:subClassOf rdf:resource="#Animal"/>
</daml:Class>

in the walkthru, seem to rely on (a). So I'm not entirely clear, yet, as
to how the last sample above plays out into legal DAML+OIL.
                                                                                      
Regards,

- David

Received on Thursday, 7 June 2001 10:44:20 UTC