ISSUE:4.1 daml:uniqueProperty

All,

At today's telecon (July 11) I was made owner of this issue.  Michael 
Smith sent out a very nice description of the two features UniqueProp and 
UnambiguousProp, and to turn it into a new description of the issue, I've 
added a little more in the way of explanation, and changed the examples 
somewhat to reflect the fact that these are *global* restrictions.  I 
remove also "one2one", but feel free to propose that as a new language 
feature. 

The most critical point here is that every time this has been discussed, 
no one could remember what either means, so the full issue description 
should include these explanations.


ISSUE 3.4: UniqueProp is a bad name

Note: this issue should be expanded to include, pending the resolution of 
issue 3.4, UnambiguousProp.

A UniqueProp is a relation whose extension is restricted such that no 
object may appear more than once in the domain, i.e. the range of the 
relation for any given domain is unique.

If       R is a UniqueProp
then     R(a,x) ^ R(a,y) -> x=y

Example: Birthdate(x,date)
"Any entity with a birthday has only one."

Notes:

-This is equivalent to expressing a global MaxCardinality restriction on 
the relation.

-The inverse of a uniqueProperty is an unambiguousProperty.

-Birthdate(a,x) and Birthdate(b,x) does not imply anything
beyond what the clauses alone imply, other than that a and b share a
birthday.

-This does not specify that a relation is "many to one", only that it is
"x to 1" where x may, in fact, be one.


An UnambiguousProp is a relation whose extension is restricted such that 
no object may appear more than once in the range, i.e. the domain of the 
relation for any given range is unique.

If       R is an unambiguousProp
then     R(a,x) ^ R(b,x) -> a=b

Example: BiologicalFatherOf(x,y)

"Every biological father of an entity is the only biological father of 
that entity"

Notes:

-This is equivalent to saying that the inverse of a relation is a 
daml:uniqueProperty.

-BiologicalFatherOf(x,a) and BiologicalFatherOf(x,b) does not imply 
anything
beyond what the clauses alone imply, other than that a and b share a
father.

-This does not specify that a relation is "one to many", only that it is
"1 to x" where x may, in fact, be one. 


To specify a one:one relation, simply make a relation both unambigous and 
unique.


Proposed Resolution

These are suggested alternate names for these features.  To resolve the 
issue, we should vote on them.  I will collect suggested alternate names 
until, say, the next telecon.

UniqueProp: Functional, UniqueRange
UnambiguousProp: InverseFunctional, UniqueDomain

-ChrisW

Received on Thursday, 11 July 2002 20:57:39 UTC