This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 28020 - Normative vs. Non-Normative Text (Examples)
Summary: Normative vs. Non-Normative Text (Examples)
Status: CLOSED WORKSFORME
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: XPath 3.1 (show other bugs)
Version: Candidate Recommendation
Hardware: PC Linux
: P2 normal
Target Milestone: ---
Assignee: Jonathan Robie
QA Contact: Mailing list for public feedback on specs from XSL and XML Query WGs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-13 22:00 UTC by Patrick Durusau
Modified: 2015-03-16 23:51 UTC (History)
1 user (show)

See Also:


Attachments

Description Patrick Durusau 2015-02-13 22:00:48 UTC
Same issue as 28018 but different component and different occurrences of the same issue.

In XPath 3.1, still in the Introduction we read:

This document normatively defines the static and dynamic semantics of XPath 3.1. In this document, examples and material labeled as “Note” are provided for explanatory purposes and are not normative.

OK, and under 2.2.3.1 Static Analysis Phase (XPath 3.1), we find:

Examples of inferred static types might be:

Which is followed by a list so at least we know where the examples end.

However, there are numerous cases of:

For example, with the expression substring($a, $b, $c), $a must be of type xs:string (or something that can be converted to xs:string by the function calling rules), while $b and $c must be of type xs:double. [also in 2.2.3.1 Static Analysis Phase (XPath 3.1)]

So, is that a non-normative example? If so, what is the nature of the “must” that occurs in it? Is that normative?

BTW, an interesting illustration of this issue from the introduction:

****
In the grammar productions in this document, named symbols are underlined and literal text is enclosed in double quotes. For example, the following productions describe the syntax of a static function call:


[63]   	FunctionCall	   ::=   	EQName ArgumentList
[49]   	ArgumentList	   ::=   	"(" (Argument ("," Argument)*)? ")"
****

Those productions occur normatively later in the document. Do we have a non-normative report of those productions following "For example..." which is a repetition of the normative production elsewhere? 

The better course is to use labeled and numbered examples where you want to give an example.

A rough count shows 231 uses of example in this document so it isn't a small problem.
Comment 1 C. M. Sperberg-McQueen 2015-03-03 20:53:23 UTC
The XML Query and XSLT WGs discussed this bug report on today's call.

The first passage you quote explains that examples are not normative.  The WGs believe that the other passages you mention are instances of the phenomenon described:  they are non-normative text, marked as non-normative by being explicitly labeled as examples.  

If in any specific passage it is not clear whether a given sentence is a continuation of an example or a normative statement following the example, then a bug report against the specific passage is certainly in order.  In general, the editors try to take some care that it's clear where examples begin and end, but of course slips are possible.

The passage about the 'substring' function does not seem particularly unclear.  It provides an illustration of the principle enunciated in the immediately preceding text, namely:

    Every kind of expression also imposes requirements on the type 
    of its operands.

The passage you quote gives the 'substring' function as an example:  it imposes the requirement that its first argument be a string (or convertible to string), and its second and third arguments doubles (or convertible to doubles).  Those requirements are expressed more directly and more fully elsewhere, and this example of the kind of thing that is often stated in normative text about this or that function is not itself the normative statement of these rules regarding 'substring'.  Similar observations apply to the repeated grammar productions.  (The WGs did not discuss the question, but I think the answer to your question is 'yes' -- here, as in the appendix, grammatical productions are repeated for convenience and/or clarity; the repetitions are not themselves normative, in the sense that if they are removed from the document the normative content of the document would be unchanged.

[Speaking for myself, it is not clear that introducing a paragraph break and supplying an example number would have any effect on the questions you are asking:  anyone who is able to ask whether repetitions of productions [63] and [49] are normative when these productions are given as an example of how literal strings are quoted in the grammar, can ask it just as well when the word 'Example' appears on a line by itself as when it appears in running text.] 

In short, the WGs don't see an issue here.

Accordingly, I am marking this issue WORKSFORME.

Patrick, if you believe the arguments given above adequately address your concerns, or if despite your lack of any such belief you are willing to accept the WGs' disposition of your comment, please indicate as much by changing the status of the bug report from RESOLVED to CLOSED.  If you are not satisfied with the WGs' handling of the issue, please indicate so by changing the status from RESOLVED to REOPENED, and explain why you do not find the arguments compelling.  If we haven't heard from you in two weeks, we will take silence for consent.

Thank you for your comments; I am sorry we were unable to resolve this in the way you would have wished.