Re: UniqueProperty, UnambiguousProperty

On September 11, David Martin writes:
> Why is UniqueProperty a subclass of
> 
>    rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property
> 
> whereas UnambiguousProperty is a subclass of
> 
>    #ObjectProperty?
> 
> This seems especially odd in view of this statement (from the language
> reference doc): Note that the inverse property of a UniqueProperty is
> always an UnambigousProperty and vice versa.
> 
> I sort of thought a design decision had been made that each DAML
> property should be either Object or Datatype, and that this distinction
> was supposed to be made clear in its declaration (someone please correct
> me if I'm wrong).  But, if that's right, UniqueProperty allows one to
> get around that design decision.

UniqueProperty is just an idiom for a cardinality constraint, and can
be applied to any property. So, while it is true that each DAML
property should be either Object or Datatype, instances of both Object
and Datatype properties can also be instances of UniqueProperty. This
is why UniqueProperty is a subClass of the more general rdf:Property
class.

UnambiguousProperty, on the other hand, is basically an idiom for a
cardinality constraint on the inverse property applied to all objects
at the "value end" of the property. As only daml objects can be
instances of such restrictions (i.e., can be instances of daml
classes), UnambiguousProperty is a subClassOf ObjectProperty.

It is easy to see that these characterisations are consistent with the
fact that the inverse property of a UniqueProperty is always an
UnambigousProperty and vice versa.

Regards, Ian

> 
> - David

Received on Tuesday, 11 September 2001 18:02:44 UTC