- From: <bugzilla@wiggum.w3.org>
- Date: Tue, 05 Jun 2007 20:27:27 +0000
- To: public-ws-policy-qa@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=4598
Summary: Some compact expressions appear not to have normal forms
Product: WS-Policy
Version: CR
Platform: All
URL: http://lists.w3.org/Archives/Public/public-ws-
policy/2007May/0297.html
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Framework
AssignedTo: fsasaki@w3.org
ReportedBy: dmh@tibco.com
QAContact: public-ws-policy-qa@w3.org
Running through the basic case analysis, ignoring the outer <wsp:Policy>,
taking everything modulo commutativity and letting <Ai/> represent assertions
in normal form:
(1)
<ExactlyOne>
<All>...</All>*
</ExactlyOne>
can be normalized if the <All> expressions can be normalized (or already
contain only assertions). See below.
(2)
<ExactlyOne>
<ExactlyOne>....</ExactlyOne>+
</ExactlyOne>
can be reduced by the associative rule.
(3)
<ExactlyOne>
<ExactlyOne>...</ExactlyOne>*
(<All>...</All>|<Ai/>)+
<ExactlyOne>
Does not appear to be in normal form, and there does not appear to be a rule by
which to reduce it. Any ExactlyOne children may be reduced by associativity,
but this does not appear to help.
(4)
<All>
<ExactlyOne>...</ExactlyOne>*
</All>
can be reduced by the distributive rule (or by the "empty" rule if there are no
children).
(5)
<All>
<All>...</All>+
<Ai/>*
</All>
can be reduced by the associative rule.
(6)
<All>
<Ai/>*
</All>
is fine if it's a subexpression and can be wrapped in ExactlyOne if not.
(7)
<All>
<ExactlyOne>...<ExactlyOne>+
(<Ai/>|<All>...</All>)+
</All>
Does not appear to be in normal form, and there does not appear to be a rule by
which to reduce it. Any All children may be reduced by associativity, but this
does not appear to help.
----
I see three possible resolutions:
1) I got the math wrong, and the forms that do not appear to have normal forms
actually do. I'm pretty sure I got it right, and I've asked the list what
rules might apply, but on the other hand it seems unlikely that no one has
previously done this basic analysis. If I missed something and there is a way
to normalize the expressions above, then we can close the issue.
2) Disallow expressions in forms (3) and (7), with a statement to the effect of
"The following compact forms have no normal form. A processor MUST fault on
encountering them."
3a) Add a rule (say, "Promotion") to wrap bare assertion children in otherwise
non-normal expressions in the operator opposite their parent.
E.g., (note, these examples are of course non-normative; the text would be
normative)
<ExactlyOne>
<A1/>
</ExactlyOne>
==> (promotion)
<ExactlyOne>
<All>
<A1/>
</All>
</ExactlyOne>
----
<ExactlyOne>
<All><A1/><A2/></All>
<A3/>
</ExactlyOne>
==> (promotion)
<ExactlyOne>
<All><A1/><A2/></All>
<All><A3/></All>
</ExactlyOne>
----
<ExactlyOne>
<All><A1/><A2/></All>
<A3/>
<ExactlyOne><A4/><A5/></ExactlyOne>
</ExactlyOne>
==> (associative)
<ExactlyOne>
<All><A1/><A2/></All>
<A3/>
<A4/>
<A5/>
</ExactlyOne>
==> (promotion)
<ExactlyOne>
<All><A1/><A2/></All>
<All><A3/></All>
<All><A4/></All>
<All><A5/></All>
</ExactlyOne>
3b) If that's not the right behavior, add some other rule or rules.
Received on Tuesday, 5 June 2007 20:27:36 UTC