This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 3602 - The absence of an assertion should not mean that the behavior is "explicitly prohibited"
Summary: The absence of an assertion should not mean that the behavior is "explicitly ...
Status: RESOLVED FIXED
Alias: None
Product: WS-Policy
Classification: Unclassified
Component: Framework (show other bugs)
Version: PR
Hardware: All All
: P2 normal
Target Milestone: ---
Assignee: Daniel Roth
QA Contact: Web Services Policy WG QA List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-08-16 05:33 UTC by Daniel Roth
Modified: 2006-09-27 18:21 UTC (History)
1 user (show)

See Also:


Attachments

Description Daniel Roth 2006-08-16 05:33:46 UTC
Title - The absence of an assertion should not mean that the behavior is "explicitly prohibited"

Description - Section 3.2 of the WS-Policy Framework contains the following sentence:  "An assertion whose type is part of the policy's vocabulary but is not included in an alternative is explicitly
prohibited by the alternative."   This statement seems to indicate that
the absence of the assertion implies a constraint on the policy consumer to not use that policy assertion and to not perform the prohibited behavior.  Depending on the provider's policy, this constraint on policy consumers may not be supportable.  For example, let's say a provider publishes a policy with two alternatives.  One alternative contains two assertions, A and B, and the other contains no assertions.  Now, let's suppose a requester doesn't understand either assertion.  According to the current text in the WS-Policy Framework this requester should not call the provider, because it might do the behavior for A but not the behavior for B.  The requester may correctly implement one of the two alternatives, but it cannot ensure that this is the case.  Similarly, the requester cannot ensure that both behaviors are not implemented.  In Section 3.2, the "explicitly prohibited" statement is too restrictive. 

In general, the absence of an assertion type should not imply nor indicate anything about the policy subject.  The WS-Policy Framework already contains text to this effect in paragraph 1 of Section 3.2: "An alternative with zero assertions indicates no behaviors.  An alternative with one or more assertions indicates behaviors implied by those, and only those assertions." 

Justification - The current wording of paragraph 2 in Section 3.2 confusing to implementers.

Target - Web Services Policy Framework

Proposal - The correct interpretation of the WS-Policy Framework specification should be that a policy alternative is processed independently of all other assertions.  This interpretation is self consistent and it allows policy consumers to process policy alternatives independent of the policy vocabulary.  The proposed resolution for paragraph 2 of Section 3.2 is to remove the last sentence as shown below: 

SECTION 3.2
CHANGE FROM: The vocabulary of a policy alternative is the set of all policy assertion types within the alternative. The vocabulary of a policy is the set of all assertion types used in all the policy alternatives in the policy.  An assertion whose type is part of the policy's vocabulary but is not included in an alternative is explicitly prohibited by the alternative.

CHANGE TO: The vocabulary of a policy alternative is the set of all policy assertion types within the alternative. The vocabulary of a policy is the set of all assertion types used in all the policy alternatives in the policy.

We should also consider adding explanatory text in the primer regarding the absence of an assertion.
Comment 1 Daniel Roth 2006-09-12 18:49:42 UTC
Whatever the resolution of this issue it should be consistent with the first paragraph of section 3.2 in the framework document.
Comment 2 Ashok Malhotra 2006-09-14 00:16:45 UTC
I was aked to supply text to clarify the cryptic statement in the text.
Here is suggested text to be added to section 3.2.

3.2 Policy Alternative

The vocabulary of a policy alternative is the set of all policy assertion types within the alternative. [Definition: A policy vocabulary is the set of all policy assertion types used in a policy.] An assertion whose type is part of the policy's vocabulary but is not included in an alternative is explicitly prohibited by the alternative.

<new text>
For example, if there is a policy with an assertion marked with optional=true this puts the assertion in the vocabulary of the policy.  When this policy is normalized the assertion appears in one alternative and not in the other.  If the alternative that does not include the assertion is chosen then it is explicitly prohibited to apply the assertion as the assertion is part of the policy vocabulary.

Consider the following policy:

<wsp:Policy>
    <wsp:All>
        <am:assertion1 />
        <am:assertion2 optional=true/> 
    </wsp:All>
</wsp:Policy>

This normalizes to:

ALTERNATIVE 1

<wsp:Policy>
    <wsp:All>
        <am:assertion1 />
        <am:assertion2  /> 
    </wsp:All>
</wsp:Policy>

ALTERNATIVE 2

<wsp:Policy>
    <wsp:All>
        <am:assertion1 />
    </wsp:All>
</wsp:Policy>

If ALTERNATIVE 2 is selected then applying Assertion2 is explicitly prohibited.
</new text>
Comment 3 Monica Martin 2006-09-14 23:56:21 UTC
Subsequent simplified proposal provided by Fabian Ritzmann and Monica Martin on 14 September 2006:

[start]
><new text>
>For example, if there is a policy with an assertion marked with "optional='true'" this puts the assertion in the vocabulary of the policy.  When this policy is normalized the assertion appears in one alternative and not in the other.  If the alternative that does not include the assertion is chosen then it is explicitly prohibited to apply the assertion as the assertion is part of the policy vocabulary.
>  
mm1: Ashok, where this text falls in the specification, it is premature 
to discuss wsp:Optional, normalization and XML representation. In 
addition, this text duplicates existing material.  We could revise the 
existing text in Section 3.2:

    Change from: An assertion whose type is part of the policy's
    vocabulary but is not included in an alternative is explicitly
    prohibited by the alternative.
    Change to: When an assertion whose type is part of the policy
    vocabulary but is not included in a policy alternative, the provider
    does not apply that policy assertion in that policy alternative.

An option to consider rather than another example is to reference 
further sections and include more detail in the Guideline and/or Primer 
documents. Thanks.
[end]

See: http://lists.w3.org/Archives/Public/public-ws-policy/2006Sep/0098.html
Comment 4 Paul Cotton 2006-09-27 18:21:00 UTC
Resolved at Sep 27 meeting:

Issue 3602 Proposal:
1. Adopt text in  http://lists.w3.org/Archives/Public/public-ws-policy/2006Sep/0176.html
2. Add a forward pointer to the example in Section 4.3.1 Optional Policy Assertions

See Sep 27 minutes:
http://www.w3.org/2006/09/27-ws-policy-minutes.html