- From: <bugzilla@jessica.w3.org>
- Date: Sat, 14 Aug 2010 18:48:50 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=10368
Summary: [XQuery11] review of appendix C re scope of components
Product: XPath / XQuery / XSLT
Version: Member-only Editors Drafts
Platform: All
OS/Version: All
Status: NEW
Severity: minor
Priority: P2
Component: XQuery 1.1
AssignedTo: jonathan.robie@redhat.com
ReportedBy: jmdyck@ibiblio.org
QAContact: public-qt-comments@w3.org
(This comment is basically my message
http://lists.w3.org/Archives/Member/w3c-xsl-query/2010May/0041.html
from 2010-05-03.)
Here are my comments, all editorial...
> [Definition: The *scope* of a component is the context in which
> the component is associated with a value.]
(1)
Is this using "context" in the sense of "static or dynamic context"? If
so, it doesn't make much sense. For the most part, any given component is
associated with a value in *every* static/dynamic context, so talking
about *the* context in which this occurs is probably a mistake.
Or, if you mean "context" in some other sense, that's probably not a good
idea, since Appendix C is almost entirely about static and dynamic contexts.
> [Definition: If a component has *global scope*, then every expression
> in the query has the same value for that component, and it can not be
> overwritten by the query module or by an expression.]
(2)
The phrase "every expression ... has the same value" is a garden path: it
may mislead the reader into thinking that you're talking about the
value of an expression. I suggest that, throughout this appendix, instead
of talking about the *value* of a component, we use some other word, e.g.
"setting". (This is appropriate, because a component's setting is in
general not an XDM value.) And/or we could alter the syntax somewhat, e.g.:
... then the [value/setting] of that component is the same
for every expression in the query ...
(3)
The "and" in "and it can not be overwritten by the query module or by an
expression" suggests that this clause is saying something new, but in
fact it's a logical consequence of the preceding clause.
(4)
The phrase "query module" is undefined. I think it's (currently) used to
mean "module", but I think readers might take it to mean "main module"
(because that's the module that "contains the query"). I think we should
avoid it. Instead, just say:
"by any module or expression"
(5)
(Speaking of "query module", it looks like the thread I started at
http://lists.w3.org/Archives/Member/w3c-xsl-query/2010Feb/0007.html
never really got resolved.)
(6)
(There's also an occurrence of "query module" in 4.12.3 that should just
be "module".)
> [Definition: If a component has module scope, then every expression
> in a given module has the same value for that component, and it can be
> overwritten or augmented for a given module.]
(7)
Instead of talking about overwriting or augmenting, maybe say something like:
"but that value [setting] may differ between modules"
> [Definition: If a component has lexical scope, then it is defined by
> a query expression, and its scope is defined by the semantics of the
> expression that defines it.]
(8)
You're saying that a component is *defined by* an expression. I'm
inclined to say that context components are defined by section 2.1
[Expression Context].
(9)
The phrase "defined by a query expression" prompts the question "Which
query expression?", which I don't think is what's wanted. Maybe
"set by certain kinds of expression"
would be better. (It prompts the question "Which kinds?", which has a
good answer, although we don't currently give it.)
(10)
By the way, I suggest changing "query expression" to just "expression".
(11)
It's odd for the definition of "lexical scope" to say that "its scope is
defined by [something else]". That's getting into another (more
conventional) meaning of "scope", which I think muddies the waters.
(12)
This definition diverges from the pattern set up by the previous
definitions. A more consistent one would be something like:
[Definition: If a component has lexical scope, then the setting
of that component is fixed for any given expression, but may differ
between expressions in the same module.]
> [Definition: If a component has dynamic scope, then it is defined by a
> query expression, its scope is defined by the semantics of the expression
> that defines it, and run-time evaluation may influence its value.]
(8, 9, 10, 11 again)
As above re "defined by a query expression" and "its scope is defined".
(13)
We should probably delete "run-time", as its presence might suggest an
distinction from compile-time evaluation, which we don't intend.
(14)
A more consistent definition would be something like:
[Definition: If a component has dynamic scope, then the setting of
that component may differ between the contexts of a single
expression.]
----
(15)
As I said here:
http://lists.w3.org/Archives/Member/w3c-xsl-query/2010Mar/0189.html
I think we should replace occurrences of "scope" in Appendix C with a
different word. There I suggested "range" or "ambit". Now, I think I'd
prefer something like "constancy" or "changeability". E.g.:
[Definition: The *constancy* of a component indicates (roughly)
the set of [static or dynamic] contexts in which that component
has a common setting, or conversely, the level of granularity at
which the setting of that component may differ between contexts.]
----
(16)
(Note that all of the above is independent of the other issue that it got
tangled up with, namely that the spec is inconsistent on whether a module
has a static context. I bring it up just so it doesn't get forgotten.)
--
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
Received on Saturday, 14 August 2010 18:48:54 UTC