- From: <bugzilla@wiggum.w3.org>
- Date: Mon, 17 Apr 2006 05:49:21 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=1535 jmdyck@ibiblio.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED | ------- Comment #3 from jmdyck@ibiblio.org 2006-04-17 05:49 ------- Well, the added text helps, I guess, but it's still pretty loose, especially the last sentence. Consider the following (quasi-ER) diagram, established by the first two sentences: Syntactic Realm Abstract Realm ------------------- ------------------ non-terminal --- represents --> value space (e.g. String) (e.g., value space of xs:string) | | | | stands for [contains] | | * * V V syntactic object --- corresponds to --> value At the end of the second sentence, the phrase "the corresponding value space" breaks this somewhat, using the verb "corresponds" where the first sentence had set up "represents". In the last sentence, you say "string values", which I would take to mean "values in the xs:string value space", but you almost certainly don't mean that; rather you mean something like "String syntactic objects". So I suggest that you: -- Change "represents" to "corresponds to". (This will help delineate the syntactic/abstract divide.) -- Change "stands for" to "derives". Or if that's too technical, then "generates". -- Change "syntactic object" to something else, since, as we've seen elsewhere, it can be misinterpreted. Or else define it. -- Change the last sentence to: For instance, the non-terminal 'String' derives a set of syntactic objects, which appear in examples as "", "a", "John", etc.; each one corresponds to a string value in the xs:string value space. ..... Re the "stands for/derives/generates" relation in this particular context: it's odd that this relation isn't defined by a set of productions. Why aren't there productions something like String ::= '"' Char* '"' Decimal ::= Digit+ ( "." Digit+ )? Maybe because nobody wanted to supply all 19 rules. Maybe because, although String derives things that look like StringLiterals, and Decimal derives things that look like DecimalLiterals or IntegerLiterals, what about symbols like Base64Binary and NOTATION? What do the things they derive look like? My advice is to drop the "looks like something familiar" approach, as it skirts too close to circularity. Instead, use an unfamiliar notation for things derived from AtomicValueContent. E.g. String ::= '`' {Any literal in the ·lexical space· of xs:string} '`' Decimal ::= '`' {Any literal in the ·lexical space· of xs:decimal} '`' etc. (And you could just say "etc." since the pattern is pretty obvious.) (Here, "literal" is used in the XML Schema sense.) Note that the particular appearance of such things has almost no effect on the spec; I think you'd only have to make some minor tweaks to the examples in 2.3.2. And of course, it has no effect on the semantics of the XQuery language. But it would reassure readers that everything derived from AtomicValueContent (not just String and Decimal) is a syntactic object, and has a straightforward "concrete" presentation. Which would answer the question that I asked in the original comment. Moreover, because they are defined in terms of literals in a lexical space, the "corresponds to" relation is clearer: each thing-derived-from-AtomicValueContent corresponds to whatever value is denoted by the literal it contains. (Someone might ask: what if the literal contains an occurrence of the delimiting character '`'? I think it would be sufficient to answer that escaping mechanisms exist, and it isn't really necessary for the FS to specify a particular one.)
Received on Monday, 17 April 2006 05:49:29 UTC