[Bug 1694] New: [FS] editorial: 5 Modules and Prologs

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