OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

tag message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [tag] ambiguity in current TAG draft


Jacques,

Yes, I think this is a very helpful clarification

2008/12/3 Durand, Jacques R. <JDurand@us.fujitsu.com>:
> Stephen: <JD>
>
> -----Original Message-----
> From: stephengreenubl@gmail.com [mailto:stephengreenubl@gmail.com] On Behalf
> Of Stephen Green
> Sent: Wednesday, December 03, 2008 12:20 AM
> To: Durand, Jacques R.
> Cc: tag@lists.oasis-open.org
> Subject: Re: [tag] ambiguity in current TAG draft
>
> It would work and personally I'm ready to agree with it. I think we need to
> say more about including the 'not' in the predicate, even if it appears, in
> the normative source, as part of what we call the Prescription Level:
>
> So 'the widget battery MUST NOT be larger than the widget'
> becomes
>
> Normative Source: the widget battery MUST NOT be larger than the widget
> Target: the widget battery
> Predicate: [the widget battery] is not larger than the widget Prescription
> Level: mandatory
>
> The predicate is negated instead of the prescription level, even though in
> the normative source it is the prescription level which is negated.
>
> <JD> In order to avoid confusion (and the possible double-negation of a MUST
> NOT requirement by a negative predicate + negative PL) should we make
> clearer that the PL qualifies the Predicate, and is NOT a mere reflection of
> the requirement keyword in the spec. In other words, the combination
> Predicate+PL must reflect the source requirement - i.e. both a testable
> assertion and how imperative is it that it be "true" - or "false", in order
> to indicate fulfillment of the spec.
>
> Ideally I would want to add that this is only a recommendation: There might
> be occasions when there is good reason that the negative RFC
> 2112 keywords MUST NOT or SHOULD NOT are used and that it might therefore in
> such cases be better to use negated prescription levels values in the test
> assertions. In such cases the negation from the normative source RFC 2112
> keywords should not be included in the predicate. I appreciate this is extra
> detail which might be too much for the guidelines as we have them (perhaps
> postpone for future advanced treatment of TAs); plus it might be a while
> before I can come up with an example or clear use case of where an negative
> RFC 2112 keyword is to be prefered over the combination of a positive one
> and a negation outside of the keyword ('x MUST NOT y' prefered to 'x MUST
> not y').
>
> 2008/12/3 Durand, Jacques R. <JDurand@us.fujitsu.com>:
>> Avoiding the need to change the predicate seems to serve a practical
>> purpose
>> - e.g. some test case has been written for the original predicate, and
>> one wants to be able to reuse as much as possible from previous test
>> cases.
>> Although that could be seen as beyond the concerns of this guideline
>> doc, here is what I propose:
>>
>> - we RECOMMEND that users stick with the three "positive" PL values:
>> mandatory / preferred / permitted, even for Tas that refer to negative
>> statements (MUST NOT..). That means we recommend that the predicate =
>> true when the target fulfills the spec requirement.
>>
>> - In some cases, e.g. the handling of new conformance clauses, one may
>> want to derive new Tas that are as close as possible to previous ones,
>> e.g. reuse same predicate. In that case, the PL MAY take additional
>> "negative" values, like "not permitted" , "not preferred".
>>
>> Would that work?
>>
>> So to illustrate:
>>
>> Main spec:
>>
>> TA: main_123
>> norm source: req 123
>> Predicate: A=B
>> PL: Permitted
>>
>> In Conformance Clause XYZ, A=B is no longer permitted: both the
>> following are OK
>>
>> (option 1)
>> TA: XYZ_123
>> norm source: req 123 revisited by conf clause XYZ
>> Predicate: A=B
>> PL: Not-Permitted
>>
>> (option 2)
>> TA: XYZ_123
>> norm source: req 123 revisited by conf clause XYZ
>> Predicate: not(A=B)
>> PL: Mandatory
>>
>>
>>
>> Jacques
>>
>>
>>
>> -----Original Message-----
>> From: stephengreenubl@gmail.com [mailto:stephengreenubl@gmail.com ] On
>> Behalf Of Stephen Green
>> Sent: Friday, November 28, 2008 6:08 AM
>> To: Durand, Jacques R.
>> Cc: tag@lists.oasis-open.org
>> Subject: Re: [tag] ambiguity in current TAG draft
>>
>> Another reason for *some* cases using negative prescription level values:
>>
>> A conformance profile restricting a previous conformance profile will
>> likely wish to restrict some of the the 'Permitted' values of
>> presciption levels to something equivalent to MUST NOT - avoiding the
>> need to change the predicate from A=B to A!=B. Having the ability to
>> use 'Not Permitted' would be helpful.
>>
>> 2008/11/27 Stephen Green <stephen.green@documentengineeringservices.com>:
>>> I agree the last example does not *need* a negative prescription
>>> level
>>>
>>>>
>>>>
>>>> normative source: x MUST NOT do y
>>>>
>>>> target: x
>>>>
>>>> predicate: [target x] does y
>>>>
>>>> prescription level: not permitted
>>>>
>>>
>>> The above is correct use of the *negative* prescription level
>>>
>>>
>>>>
>>>>
>>>> Which so far we do not endorse.
>>>>
>>>>
>>>>
>>>> while:
>>>>
>>>> normative source: x MUST NOT do y
>>>>
>>>> target: x
>>>>
>>>> predicate: [target x] does not do y
>>>>
>>>> prescription level: not permitted
>>>>
>>>>
>>>
>>>
>>> This second example should instead be:
>>>
>>>  normative source: x MUST NOT do y
>>>
>>>  target: x
>>>
>>>  predicate: [target x] does not do y
>>>
>>>  prescription level: permitted
>>>
>>>
>>>
>>> I would not want to push the argument in favour of 'allowing' or
>>> 'accommodating'
>>> the negative prescription levels too much. However, the main argument
>>> in their favor seems to me to be the fact that they do already exist
>>> as a standard in the relevant RFC and this is probably for a good
>>> reason. After all, they need not exist in specifications either since
>>> the requirement could have been written
>>>
>>>
>>>  normative source: x MUST not do y
>>>
>>> But is there *ever* a subtle difference between
>>>
>>>  normative source: x MUST not do y
>>>  and
>>>  normative source: x MUST NOT do y
>>>
>>> ?
>>>
>>> I suspect there is but that to regard the MUST NOT as redundant in
>>> favor of 'MUST not' is probably not going to do much harm. It might
>>> be worth endorsing a three-positive-value-only prescription level
>>> codelist just for the benefit of being able then to say that a
>>> predicate MUST always evaluate to 'true' when fuliflling the
>>> normative requirement(s). So I'm happy to drop the argument since
>>> there is some benefit in doing so and the benefit of keeping the 'MUST
>>> NOT'
>>> equivalent Prescription Level and 'SHOULD NOT' equivalent is not easy
>>> to see or demonstrate. However I have a feeling it does exist in more
>>> complex cases - but that can be left to a more advanced treatment of
>>> TAs which might endorse the corresponding extension of the
>>> prescription level list.
>>>
>>> Best regards
>>>
>>> Steve
>>>
>>> --
>>> Stephen D. Green
>>>
>>> Document Engineering Services Ltd
>>>
>>>
>>>
>>>
>> http://www.biblegateway.com/passage/?search=matthew+22:37 .. and voice
>>>
>>>
>>>
>>> 2008/11/27 Durand, Jacques R. <JDurand@us.fujitsu.com>:
>>>>
>>>> I think we have an ambiguity in current TAG draft, revealed by the
>>>> SCA use
>>>> case:
>>>>
>>>> - When a normative statement is of the kind "x MUST NOT do y" , the
>>>> natural way (in fact, the recommended way) to write the predicate is:
>>>> "[target x] does not do y"
>>>>
>>>> Then, what should be the prescription level?
>>>> (a) MANDATORY?
>>>> (b) NOT PERMITTED?
>>>>
>>>>
>>>> (a) is aligned with both our definiions of predicate and of
>>>> prescription level in 2.1:
>>>>
>>>>    Predicate
>>>>
>>>> A predicate asserts, in the form of an expression, the feature (a
>>>> behavior or a property) described in the referred specification
>>>> statement(s). If the predicate is an expression which evaluates to
>>>> "true" over the test assertion target, this means that the target
>>>> exhibits this feature. "False" means the target does not exhibit
>>>> this feature.
>>>>
>>>>    Prescription Level
>>>>
>>>> A keyword that qualifies how imperative it is that the requirement
>>>> referred in Normative Source, be met. See possible keyword values in
>>>> the Glossary.
>>>>
>>>>
>>>>
>>>> (b) is aligned with the Glossary definition of prescription level :
>>>>
>>>>
>>>>
>>>>     The test assertion defines a normative statement which may be
>>>> mandatory (MUST/REQUIRED), not permitted (MUST NOT), permitted
>>>> (MAY/OPTIONAL) preferred (SHOULD/RECOMMENDED) or not recommended
>>>> (SHOULD NOT). This property can be termed its prescription level.
>>>>
>>>>
>>>>
>>>> The problem I see with allowing/recommending "negative" prescription
>>>> levels, is that this entices the TA writer to write "negative"
>>>> predicates (=true means violation), e.g.:
>>>>
>>>>
>>>>
>>>> normative source: x MUST NOT do y
>>>>
>>>> target: x
>>>>
>>>> predicate: [target x] does y
>>>>
>>>> prescription level: not permitted
>>>>
>>>>
>>>>
>>>> Which so far we do not endorse.
>>>>
>>>>
>>>>
>>>> while:
>>>>
>>>> normative source: x MUST NOT do y
>>>>
>>>> target: x
>>>>
>>>> predicate: [target x] does not do y
>>>>
>>>> prescription level: not permitted
>>>>
>>>>
>>>>
>>>> Would be confusing and sound like a double negation ("not permitted"
>>>> for target to NOT do y)
>>>>
>>>>
>>>>
>>>> Do we really need negative prescription levels, and if yes how do
>>>> they work?
>>>>
>>>>
>>>>
>>>> Jacques
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>> --
>> Stephen D. Green
>>
>> Document Engineering Services Ltd
>>
>>
>>
>> http://www.biblegateway.com/passage/?search=matthew+22:37 .. and voice
>>
>
>
>
> --
> Stephen D. Green
>
> Document Engineering Services Ltd
>
>
>
> http://www.biblegateway.com/passage/?search=matthew+22:37 .. and voice
>



-- 
Stephen D. Green

Document Engineering Services Ltd



http://www.biblegateway.com/passage/?search=matthew+22:37 .. and voice


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]