Amended text and discussion of Issue 4393

Hi folks!

OK, after scanning through some relevant mails and the Framework, I
think that indeed the particular paragraph that I was concerned about is
flawed, not just from a verbiage point of view but in that it actually
sort of implies the wrong thing.

Let me summarize the problem with a quick concrete example.  Imagine we
intersect two policies in lax mode (using pseudo-syntax):

<ConsumerPolicy>    <ProviderPolicy>
  <A/>                <A/>
</ConsumerPolicy>     <B ignorable="true"/>

I believe we end up with:

  <B ignorable="true"/>

In other words, an alternative which contains all the assertions in both
of the two compatible alternatives in the intersection - <B> didn't have
to match for a successful intersection, because it's marked ignorable
and we're in lax mode.

So the B assertion, with its ignorable bit, survives through the
intersection regardless of whether the consumer actually understands it
or not.  I think this is agreed upon, and indeed is correctly described
in the first few paragraphs of the proposal.  This next paragraph is
where I have the problem:

"Regardless of chosen policy intersection mode, a policy assertion
with the wsp:Ignorable attribute does not express any requirement on the
behavior of the client, rather, it is used for intersection as indicated
Section 2.7. After intersection, any assertions contained in the
policy that are understood by the client are handled as expected. As
part of
the policy expression, these assertions are not ignored, regardless of
whether they are marked with wsp:Ignorable."

I think the last two sentences here are confusing and can in fact easily
be interpreted inaccurately.  In particular - one might assume that once
an assertion is in the resulting policy after an intersection, that it
CANNOT (in fact must not) be ignored.  This is just wrong.  In fact
ignorable exists PRECISELY to allow consumers to act on, or not, any
ignorable assertions they find in the result alternative as they see
fit.  So, I'd like to replace this paragraph with the following shorter

"Regardless of the chosen intersection mode, ignorable assertions do not
express any concrete requirements on the behavior of consumers - in
other words, a consumer is free to ignore (hence the name "ignorable")
any such assertions that end up in the resulting policy after
interesection, with no adverse effects on runtime interactions."

To me this seems simpler and avoids the misinterpretation problem.



Received on Wednesday, 11 April 2007 20:57:58 UTC