Subject: protocol/syntaxes: substrings

From: Hallvard B Furuseth <[email-masked]>
Date: Thu, 11 Dec 2003 14:22:21 +0100

[Syntaxes] 4.1 has this text, and [Protocol] 4.5.1 a similar text:

>   Note that the AssertionValue in a SubstringFilter
>   [PROT] MUST conform to the assertion syntax of the equality matching
>   rule for the attribute type rather than the assertion syntax of the
>   substrings matching rule for the attribute type.  The entire
>   SubstringFilter is converted into an assertion value of the
>   substrings matching rule prior to applying the rule.

What is that MUST doing there?  The match should simply evaluate to
undefined if the MUST is violated.  It shouldn't cause the search
operation to fail, which I think it what "MUST" means.

Also, it seems silly for the client to convert a textual filter to a
SubstringFilter only to have the server convert it back, so I suggest
the text says that 'Conceptually, the entire SubstringFilter is
converted...'.

How is the filter (:numericStringSubstringsMatch:=1*2) applied?  It's
only applied to attributes with the appropriate syntax, but the
'appropriate syntax' is derived from the attribute, so that doesn't
work...  One can limit it to attributes in the Matching Rule Use for the
substrings matching rule, but [Models] 7.1 says that functionality
associated with such schema information as Matching Rule Uses need not
be supported.  With no Matching Rule Uses, is the filter applied to all
user attributes in an entry?

Finally, a few typos:

'the AssertionValue in a SubstringFilter' should be
'the AssertionValues' or 'each AssertionValue'.

'an assertion value of the substrings matching rule' doesn't make much
sense to me.  It doesn't say which syntax the result has.  Should it be
something like 'an assertion value of the assertion syntax of the
substrings matching rule (typically Substring Assertion)'?

-- 
Hallvard

---

From: Hallvard B Furuseth <[email-masked]>
Date: Thu, 11 Dec 2003 20:59:34 +0100

I knew I had forgotten something...

I wrote:
>>   substrings matching rule for the attribute type.  (...)

That only applies to substring filters.  I think it should also apply to
extensibleMatch filters using substrings matching rules, after the
matching rule has broken down the assertion value into components
separated by '*'.  Not sure if it should be covered in [Syntaxes] or
[Protocol]; I don't think it need be covered in both.

Maybe the simplest would be to only keep this part of the above
paragraph where it is in [Syntaxes]:

>>   (...) SubstringFilter is converted into an assertion value of the

and instead add a new paragraph about substrings matching rules, which
says that the assertion value is broken down as mentioned above, and the
"MUST" is then applied.  At the same time, maybe this text from all the
substrings matching rules could be factored out and put in the new
paragraph.  Put an 'unless otherwise specified' in front if you don't
want to make it a requirement of all new matching rules at well:

   The rule evaluates to TRUE if and only if the prepared substrings of
   the assertion value match disjoint portions of the prepared attribute
   value character string in the order of the substrings in the
   assertion value, and an <initial> substring, if present, matches the
   beginning of the prepared attribute value character string, and a
   <final> substring, if present, matches the end of the prepared
   attribute value character string.

-- 
Hallvard