I knew someone would leap in and help ;-)

Peter Gummer wrote:
>
> The first surprise is that single-character specialisation concepts are now 
> rejected. They used to be accepted. (An example would be "blood_type-o".) 
> It's now consistent with the pattern for the concept name. Was this change 
> intentional?
>   

It was - whether or not it is correct or required is another matter - 
the archetype community needs to decide that. I would suggest that 
"blood_type-o" could not be a sensible archetype name from a clinical 
point of view, because 'o' is not a specialisation of the blood type 
reporting concept, it is a blood type in reality. I.e. in Snomed would 
would find

blood type
^
|
blood type O

but it doesn't make sense in archetypes that I can see.

I think we would need at least one realistic example of where a name 
needs to be only one character long before we allowed it.

>
> The version_id part of the regex -- v[1-9]\d*(\.\d)* -- has bigger problems. 
> In section 4.3.10, the regex matches these version_ids:
>
>   v1           -- good
>   v10         -- good
>   v1.0        -- is this intentional to allow a zero in a minor version 
> part?
>   

yes

>   v1.1        -- good
>   v1.1.1      -- is this intentional to allow three parts?
>   

yes

>   v1.1.1.1   -- or even more than three parts?
>   

yes you are right - we probably should limit it to 3, which will require 
a change

> The version_id regex rejects these:
>
>   v0           -- good, this was Eric Browne's point that version_id 
> shouldn't be zero
>   v1.10       -- surely this should be allowed!
>   

yes - that's an error. I think this part of the regex should be:

.v[1-9]\d*(\.[0-9]+){0,2}

> I believe the version_id regex should be one of the following:
>
>  [R1]    v[1-9]\d*(\.\d+)*           -- allows v1.10
>  [R2]    v[1-9]\d*(\.[1-9]\d*)*    -- allows v1.10 and disallows v1.0
>  [R3]    v[1-9]\d*(\.\d+)?           -- allows v1.10 and disallows v1.1.1
>  [R3]    v[1-9]\d*(\.[1-9]\d*)?    -- allows v1.10 and disallows v1.1.1 and 
> v1.0
>
>
> Another error is that the production rules in section 4.3.10 are 
> inconsistent with the version_id regex:
>
>     version_id: 'v' V_NATURAL_DIGIT { '.' V_NUMBER }*
>     V_NUMBER: [0-9]*
>     V_NATURAL_DIGIT: [1-9]
>     V_NAME: [a-zA-Z][a-zA-Z0-9_]+
>
> The corresponding regex would be v[1-9](\.\d*)* , which differs from section 
> 4.3.10's regex in three respects:
>
>  * It allows "v1.10", which surely is good; but
>  * It allows "v1.", and
>  * It disallows "v10"!
>
> So, once the regex is right, the production rules have to be fixed too.
>   

yep...!

- thomas beale



Reply via email to