- From: <bugzilla@wiggum.w3.org>
- Date: Sun, 17 Jul 2005 22:36:31 +0000
- To: public-qt-comments@w3.org
- Cc:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=1694
Summary: [FS] editorial: 5 Modules and Prologs
Product: XPath / XQuery / XSLT
Version: Last Call drafts
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Formal Semantics
AssignedTo: simeon@us.ibm.com
ReportedBy: jmdyck@ibiblio.org
QAContact: public-qt-comments@w3.org
5 Modules and Prologs
Core Grammar
[1 (Core)] Module ::= ...
[3 (Core)] MainModule ::= ...
[4 (Core)] LibraryModule ::= ...
[6 (Core)] Prolog ::= ...
[7 (Core)] Setter ::= ...
[8 (Core)] Import ::= ...
[29 (Core)] QueryBody ::= ...
These productions are never used. Might as well delete them.
Notation
"In the Formal Semantics, it is simpler to assume the declarations can
appear in any order,"
Yes, but then there's the question of how an XQuery Prolog is
restructured into a Formal PrologDeclList.
[80 (Formal)] PrologDeclList ::= ...
The inference rules assume a right-recursive syntax, e.g.:
PrologDeclList ::= | PrologDecl Separator PrologDeclList
or
PrologDeclList ::= ( PrologDecl Separator PrologDeclList )?
Norm
There's no text in the "Normalization" section. Delete header?
Or is it meant to be a co-header with "Static Context Processing"?
If so, it could be clearer.
SCP
SCP / rule 1 / conclusion
"statEnv |- () =>stat statEnv with ()"
DCP / rule 1 / conclusion
"dynEnv |- () =>dyn dynEnv"
These use '()' to stand in for an empty PrologDeclList. This is not a
good idea, since there's possible confusion with '()' denoting the
empty sequence in the XQuery/Core syntax.
Notation 2
"under the static environment statEnv1"
"the static environment statEnv2"
s/static/dynamic/
s/statEnv/dynEnv/
"and the normalized sequence of prolog declarations in the Core grammar."
Delete.
DCP
"The first rule specifies for an empty sequence"
Insert "that" after "specifies"
"the initial dynamic environment is the default dynamic context."
No, it doesn't say that. (Typically, when this rule holds, dynEnv will
*not* be dynEnvDefault.)
DEv / rule 1 / premise 2
"dynEnv |- [[ QueryBody ]]_Expr Expr2"
Insert "==" before "Expr2".
And s/dynEnv/statEnv/
But then (it becomes clearer that) you need to show where statEnv
comes from. Presumably you need to repeat
statEnvDefault |- PrologDeclList =>stat statEnv with PrologDeclList1
from STA / rule 1.
SCP / rule 2 / premise 1
STA / rule 1 / premise 2
DEv / rule 1 / premise 2
Change "==" to "=", see Bug 1548.
Received on Sunday, 17 July 2005 22:36:33 UTC