Subject: Attribute subtyping, clarification request

From: Rici Lake <[email-masked]>
Date: Thu, 19 May 2005 19:33:14 -0500

While we're on the subject of attributes and attribute subtypes:

If I understand correctly, displayName;lang-de is a subtype of 
displayName, rather than an instance of it, so that it would be 
possible to have several displayName assertions, each one in a 
different language, without violating the single-value property of the 
attribute type.

It should also be possible to have displayName;lang-fr;lang-es if the 
spanish and french names were identical, right?

But then the rules don't seem to prevent the above from being combined 
with displayName;lang-fr and displayName;lang-es as individual 
assertions, in which case a search requesting the displayName;lang-es 
attribute type would actually (surprisingly) return two assertions. Or 
am I missing something?

Rici

---

From: "Kurt D. Zeilenga" <[email-masked]>
Date: Thu, 19 May 2005 19:22:05 -0700

At 05:33 PM 5/19/2005, Rici Lake wrote:
>If I understand correctly, displayName;lang-de is a subtype of displayName,
>rather than an instance of it, so that it would be possible to have several displayName assertions, each one in a different language, without violating the single-value property of the attribute type.

The displayName;lang-de attribute description is a subtype
of the displayName attribute description, both of which
name distinct attributes in a directory object.

>It should also be possible to have displayName;lang-fr;lang-es if the spanish and french names were identical, right?

Correct.

>But then the rules don't seem to prevent the above from being combined with displayName;lang-fr and displayName;lang-es as individual assertions, in which case a search requesting the displayName;lang-es attribute type would actually (surprisingly) return two assertions. Or am I missing something?

Not sure I am parsing this correctly, but basically,
        displayName;lang-es;lang-fr is a subtype of
                displayName;lang-es
                displayName;lang-fr
                displayName

So, if (displayName;lang-es;lang-fr=*) is TRUE then logically
(displayName;lang-es=*), (displayName;lang-fr=*) and
(displayName=*) would also be TRUE.  And displayName;lang-es;lang-fr 
may be returned if the client requested any of the attribute
descriptions listed above (or all user attributes).

See [Models] for a discussion of the subtyping hierarchy.

Kurt

---

From: Rici Lake <[email-masked]>
Date: Thu, 19 May 2005 21:44:22 -0500

>         displayName;lang-es;lang-fr is a subtype of

Yes, but a single-valued attributetype can still be present with 
multiple tags, as long as no two assertions have the exact same tags. 
Consequently, an entry with:

displayName: Joe English
displayName;lang-es: Jose Castellano
displayName;lang-fr: Jo Francais
displayName;lang-es;lang-fr: J Roman

would be valid

> (displayName=*) would also be TRUE.

> And displayName;lang-es;lang-fr

Right, that was the question. So although displayName is a 
single-valued attribute type, a search request might return several 
different displayName's for the same DN, even if it specified that the 
attributetype to return is displayName;lang-es. Presumably it would not 
even be legitimate for the server to only return the exact match.

In other words, if I'm writing a client, can I trust SINGLE VALUE to 
mean single valued? My conclusion is that I cannot, and that the client 
needs logic to figure out which of the returned displayName's is the 
one to actually display.

I can live with it; I just wanted to be clear on the spec.

Thanks for the prompt response.

Rici

---

From: "Kurt D. Zeilenga" <[email-masked]>
Date: Thu, 19 May 2005 20:27:34 -0700

At 07:44 PM 5/19/2005, Rici Lake wrote:

>Yes, but a single-valued attributetype can still be present with multiple tags, as long as no two assertions have the exact same tags.

As this entry has four distinct single-valued attributes.

>Right, that was the question. So although displayName is a single-valued attribute type, a search request might return several different displayName's for the same DN, even if it specified that the attributetype to return is displayName;lang-es. Presumably it would not even be legitimate for the server to only return the exact match.
>In other words, if I'm writing a client, can I trust SINGLE VALUE to mean single valued?

In the sense that an attribute whose type is marked allowing
a single value will have only one value.  But this in no way
preclude the return of attributes, each having only a single
value, which whose description is a subtype of that type.

>My conclusion is that I cannot, and that the client needs logic to figure out which of the returned displayName's is the one to actually display.

Clients should expect return of attributes whose descriptions
are subtypes of descriptions requested.

For instance, cn may be returned when requesting name.