- From: Karl Dubost <karl@w3.org>
- Date: Mon, 31 Jan 2005 16:19:00 -0500
- To: www-qa@w3.org
- Message-Id: <63d084561fd52c0cd8ee3f57e4b722cc@w3.org>
Le 20 janv. 2005, à 07:41, Ian Hickson a écrit : > On Wed, 19 Jan 2005, Bjoern Hoehrmann wrote: >> >> Suppose you want to restrict something to "#" followed by six hex >> digits >> case-insensitively; the formal language can only express this by >> listing >> all 113,379,904 values > > That rather depends on the formal language. You could describe it in > some > language as: > > '#' [a-fA-F0-9]{6} Which is not the case of many languages defined at W3C (Cf. DTD and Schema), but that's not indeed a complete excuse. > In cases where the formal language is inadequate for describing the > actual > requirements, then indeed, it should be informative. Not necessary. Let's see that a bit further. Often, not necessary all the time, but often ;), there is this case: 1 2 +----------+-------+ | Formal | Spec | A | Language | Prose | +----------| - - | | | | | B | | | | +-------+ As in we can define a lot more with the Spec prose than inside the own limitations of the formal language. If (Formal Language) == (Spec Prose) then (Formal Language) is the only normative version. If (Formal Language) isaSubsetOf (Spec Prose) then only on the common part the (Formal Language) is the normative version. We all agree, there should never be conflicts between the two… though we all agree that bad things happen sometimes. :) So as Björn said, the Good Practice is how to avoid problems more than creating. As a technique, we could try to add something about consistency checking between the two. "Do a consistency checking between the prose and the formal language of the specification to remove any ambiguities and contradictions." If we go a bit further, I think that often it's very frustrating for the specification reader to have things defined in the formal language and not expressed in the prose of the specification. Then the prose should at least express everything which is given in the formal language for human consumptions, where formal language is more for machine consumptions (aka validation for example). > My comment was > directed more at the common case of the formal language being just as > expressive as the English prose, but one being (mostly arbitrarily or > politically) chosen as the normative one. In that case you set one normative, if there is conflict, it means that the checking work has not been done. If the informative prose is correct, it means that's an error of the specification to fix, but not a requirement for the spec reader to switch from one statement to the other. Specifically useful in terms of references, and conflict resolutions in discussions. There are sometimes never ending discussion sinside W3C because of such conflicts. > That is, I was talking more about unintentional conflicts than known > conflicts due to limitations of the formal language. Conflicts are always unintentional IMHO :) or it's called a masochistic stance on writing a specification ;) > In my work with various working groups I have found it to be > substantially > easier to deal with cases where the spec was internally inconsistent, > than > in cases where an informative part of the spec contradicted a normative > part (and the normative part was the one in error). Both should not happen. well... it must not... -- Karl Dubost - http://www.w3.org/People/karl/ W3C Conformance Manager *** Be Strict To Be Cool ***
Received on Monday, 31 January 2005 23:09:32 UTC