[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: matchingRuleUse / extensibleMatch



At 03:14 PM 2/15/2005, Jim Sermersheim wrote:
>I can agree with what you say below, but there is one point that should be brought up.
> 
>You talk about the notion of the server being obliged to list subtypes along with their listed supertypes in the APPLIES field of a matchingRuleUse.

I should have said the server is obligated to ensure that the
subschema is consistent.


>If a server allows its matchingRuleUse values to be updated (say by a user), then it should be made clear whether the user must populate the APPLIES with subtypes of any listed supertype, or whether the server is to automatically update the list prior to returning the matchingRuleUse (in a query).

We don't discuss subschema administration in general.  At this
stage in the engineering of LDAPBIS I-Ds, I don't think we should
go there.  Let's leave this to future specification.

>To complicate matters, AFAIK, neither server nor user should update a matchingRuleUse definition's APPLIES field. This would require a new numericoid. If this is tru, it would get ugly when an attribute type (say X) is added to the APPLIES of a matchingRuleUee, and some time later, a subtype (say Y) is inherited from that attribute type.
> 
>Maybe I'm wrong, and the APPLIES can be dynamically updated without changing the numericoid.

matchingRuleUse values are not statically defined.


>Jim
>
>>>> "Kurt D. Zeilenga" <Kurt@OpenLDAP.org> 2/15/05 2:49:07 PM >>>
>At 12:51 PM 2/15/2005, Jim Sermersheim wrote:
>>I should have been more specific in my questions:
>>
>>>>> "Kurt D. Zeilenga" < <mailto:Kurt@OpenLDAP.org>Kurt@OpenLDAP.org > 2/15/05 10:48:06 AM >>>
>>>At 08:34 AM 2/15/2005, Jim Sermersheim wrote:
>>>>Two questions:
>>>> 
>>>>1) In [Models], MatchingRuleUseDescription.APPLIES says: "provides a list of attribute types the matching rule applies to". Does this include or exclude subtypes?
>>
>>>If a matching rule is applicable to a type X, then it should also be
>>>applicable to Y if Y is a subtype of X. Hence, both X and Y should
>>>be listed as the rule is applicable to both (assuming the use is
>>>above and beyond those in of the attribute types' definitions).
>>Ok, but let's assume that X is listed, but Y isn't. Because Y is a subtype of X, is it implied that the matching rule also applies to Y?
>
>Regardless of whether Y is listed or not, the listing of X
>along with the definition of Y as a subtype of X implies that
>the rule applies to Y. The fact that Y is not listed implies
>that the rule must not apply above and beyond the definition
>of Y. That is, the rule must be listed in the definition of
>of Y for the schema to be self consistent.
>
>One could argue that Y should be listed the APPLIES of the
>rule regardless of whether the rule is listed in the definition
>of Y. Given that accepting this text would greatly simplify
>the semantics of matchingRuleUses, I have no problem with adopting
>it.
>
>>>>2) In [Protocol], SearchRequest.filter.extensibleMatch says: "If the type field is absent and the matchingRule is present, the matchValue is compared against all attributes in an entry which support that matchingRule.". Does this mean "as determined by any matchingRuleUse for that mathing rule",
>>>>or "as determined by any matchingRuleUse, or the EQUALITY, ORDERING, or SUBSTR rules of the attribute"?
>>>
>>>"which support that matching rule" means "which the matching rule
>>>may be applied to".
>>>
>>>Note that matchingRuleUse lists attribute types which the rule
>>>applies to above and beyond those uses indicated in attribute
>>>type definitions. caseIgnoreMatch applies to CN even those
>>>matchingRuleUse not list CN in the APPLIES of caseIgnoreMatch.
>>>
>>>So, what matters here is not what is listed in matchingRuleUse,
>>>but whether the rule applies to the type.
>>Maybe I'm just being dense, but I don't see the answer. In your first paragraph, it looks like you believe that the matching rule is applied to any attribute which lists the matching rule in its attribute type definition, _as well as_ any attribute which is listed in a matchingRuleUse for that matching rule. But the second paragraph indicates that matchingRuleUse is not even considered.
>
>If you want to determine whether a rule applies to an attribute
>type, you should consider both whether the attribute type definition
>lists the rule and whether the rule use definition lists the
>attribute type. If either is true, then the rule applies to the
>attribute type.
>
>>>>Whatever the answers are to these, I don't find it obvious by reading the text.
>>>
>>>Do you have a specific suggestion on how to improve the text?
>>Maybe, once I understand what the semantics are. My initial assumptions led me to believe:
>> 
>>For #1: "...provides a list of attribute types (and/or attribute supertypes of attribute types) to which the matching rule applies"
>
>This is incorrect. This implies that if the rule applies to
>X:
>( 1.1.1 NAME 'X' SYNTAX 1.1.0 )
>that Y:
>( 1.1.2 NAME 'Y' SUP X )
>need not listed. Y should be listed in this case as
>if the rule applies to X it should apply to Y because Y is
>a subtype of X. That is, the implementation is not excused
>from listing Y because it is subtype of some listed type.
>Instead, the server is obligated to list Y as the rule applies
>to subtypes of X.
>
>>For #2: "...which support that matchingRule. This includes attributes types which specify the matchingRule, as well as attribute types listed in the matchingRuleUse for the matching rule."
>
>I rather say "... which this matching rule applies (see Section
>4.1.4 of [Models])".
>
>And then clarify what 'applies' means in the referenced section.