Uniqueness

A name is unique is the object only has one such name.

What does that mean?

Its usefulness is clearly that, combined with unambiguity , there is a 1-1 relationship between objects and names. This means that comparing two objects for identity is unnecessary -- the equality of the names is sufficient.

In practice, we consider a world with many competing naming schemes, and competing naming authorities. There is nothing to stop a naming authority issuing a name for any object, even itf it already has another name. The properties of a naming scheme or the policies of a naming authority may well define that names are unique, but that can only hold within that scheme and the domain of that authority.

Canonical identifiers

Another approach is to allow an object's creator to define one "definitive" name which is its unique identifier, in any name space of choice. This relies on a super-syntax for name spaces, WWW's Universal Document Identifiers (UDIs, now known as Uniform Resource Identifiers) so that we can ensure that names in different name space are distinct. There may be then various names which refer to the object, but only one is it's canonical identifier. This is effectively the approach of the "Message-id:" field in an RFC822 mail message, except for the requirement of a particular syntax for the ID.

Whether one is discussing unambiguity, uniqueness, or both, the question always arises: when are two objects "the same"? Neither of these properties can be defines without some definition of sameness .

(up to Requirements , on to readability)

Tim BL