Re: draft-ietf-conneg-feature-hash-03.txt
Graham Klyne <[email protected]> Thu, 16 Sep 1999 22:33:15 +0100
| Newsgroups | gmane.ietf.medfree |
|---|---|
| Message-ID | <[email protected]> |
Ted, I don't know if my response is gpoing to help any, but at least I'll try and keep it brief this time. [Well, I tried, but...] At 10:24 16/09/99 -0700, [email protected] wrote: >... I also apologize for introducing some confusion >here, because I believe the term "recognize" was not clear enough to >get across exactly where in the predicate comparison process I saw the >problem. Hmmm... I did not perceive a problem with your use of "recognize", but rather with your use of "possible". >gk writes, quoting me: >> So, the non-recognition of a feature tag is taken to mean that its value is >> not important. This leaves us with no way to express "mandatory features", >> a problem that has been documented elsewhere, and one that I was assuming >> we were prepared to defer for further study. >> >> >With composite feature sets, the assumption that unrecognized feature >> >tags do constrain the set creates a problem, because the conneg >> >predicate alone can no longer tell you what feature tags are present. > >Here is the nut of the problem. With a feature tag present in only >one of the two predicates being compared, the assumption is that the >value of the tag does not constrain the match. With a feature tag >present in both of the predicates, the assumption is that the values >of the tags must be considered when determining a match. From a >participant point of view, that means that unknown tags do not >constrain matching, but unknown values do. ("know", it strikes me, is >a synonmym for recognize, so I don't think I've gotten far past my >terminology problem. More exact terms are welcome). I am confortable with "know" or "recognize" here. I think that maybe we need to be clearer about what we actually mean by "match". Intuitively, a sender or resource matches a receiver if the receiver can process what it receives from the resource/sender. The predicate algebra expresses this idea by testing sender/resource and receiver feature expressions to see if they are consistent with each other. That is, is the expression: (& (sender-features) (receiver-features) ) or (& (resource-features) (receiver-features) ) a contradiction? In predicate algebra, a logical contradiction occurs when a predicate is identically FALSE for all possible values of its variables (i.e. for a CONNEG axpression, is FALSE for all possible combinations of feature tag values). Now, this concept is perfectly well defined, and as I tried to explain in my previous message behaves consistently under the concept of unknown composite feature expressions. But, and I think this is the heart of debate here, does this model reasonably reflect the intuitive idea of matching stated above. I think it does for a useful range of sender/receiver compatibility tests. [But see PS comments below] >Composites aren't composite values or composite tags, however, they >are composite predicates. So if composites don't match, we don't know >whether we have a bunch of unknown tags (which *would not* constrain >matching) or a bunch of known tags with unknown values (which *would* >constrain matching). This is all true. My thesis here is that this lack of information reduces our ability to detect a contradiction, but that the results we obtain using the algebra are otherwise correct. That is, a valid expression can be deduced that does not indicate a contradiction, but provision of additional information can make a contradiction apparent in that expression. >> >You must have a dereferencing method for either the URI or the hash to >> >determine the feature tags and values. Fundamentally, I believe that >> >that has made me uneasy because it seems to shift us to the opposite >> >assumption, that we must presume that something is constrained until >> >it has been shown to be possible. >> >> I do not recognize this shift. Rather, I think the original presumption of >> possible until known to be constrained is applied here at a much coarser >> level. Ultimately, in the absence of full information, the system as >> defined tends to err on the side of being permissive. > >I think it is really the note in 3.3.2 that caused me to see a shift >here. It describes a scenario in which the recipient of a composite >replies that it does not understand h.1234567890 and gets the >composite broken back out for it. I think I read into that statement >that the application would treat h.1234567890 as something it could >not handle if it did not get the original predicate. OK, I think I understand your perception here... > This may well >have been derived from my own presumptions of use, rather than >something you intended in the draft. My presumption made me believe, >however, that the application would treat the composite as if it were >a bunch of known tags with unknown values. Actually, I did not really have an intent when I wrote that. My present arguments are being constructed in response to your comments, rather than coming from some original grand design. But, I would say (now) that it is not a case of "the application treating h.1234567890 as something it could not handle" so much as treating h.1234567890 as a piece of incomplete information, and using a dereferencing mechanism to obtain more complete information (hence a more reliable indication of sender/receiver compatibility). Or, to put it another way, dereferencing a composite feature reference can be compared to learning the meaning of a previously unrecognized feature tag. >I'm trying to come up with some other way of describing the problem, >but all I've come up with is: [...] >Should we retain external pointers (hash, URI), and make brutally >clear how to handle the predicate matching in the presence of >composites? If so, is the handling the same for both types of >pointers? > >Or should we shift the field to in-place compression, or some other >composite method for which the problem does not arise? Aha! My immediate reaction is that in-place compression is not going to yield benefits worth the effort. I think the original assumption underlying this work was that a processor would be able to dereference a composite feature reference when this was needed (without knowing or specifying how that might be achieved). And under those circumstances, I think how to handle predicate matching is indeed quite clear. What our debate has added is: what can we do if a composite cannot be dereferenced? I think you are saying "don't know" => "can't match", which is at odds with the way feature tags are handled. Faced with the same question, I am saying "don't know" => "leave compsite reference untouched in the resulting feature expression". What this probably needs is a statement of some processing rules for handling unexpanded predicates in feature expressions. (I did start down this path in an earlier draft, but was persuaded not to go there.) --- I did mean to keep this short, but somehow there always seems to be so much to say. Do you sense yet, as I do, that at least our understanding of the issue (if not the solution) is converging? #g -- PS: there is a tangential development arising from my comments above about the nature of the matching process, and what it means. I have argued that detecting a match is the same as testing for the absense of a contradiction. This is not the only possible test for a "match". I have been thinking about this, on-and-off over a period of several months, with respect to mandatory options (the "font problem"). Using exactly the same algebra, syntax and processing rules I can conceive a different matching test that fails if required features are not present: The current matching test is effectively: (& E1 E2 ) NOTEQUIV (FALSE) But another test might be: (& E1 E2 ) EQUIV E1 This second matching test effectively says that feature set E2 must contain all of the features in E1. So matching is effectively a metalogical process, and different matching (meta-) expressions can have different properties -- that is, they can describe different sender/receiver compatibility requirements. ZZZzzz... ------------ Graham Klyne ([email protected])