ShExC valueSetValue and constraint production changes

In ShEx 2.0, the productions were defined as follows:

[49]    valueSetValue         ::= iriRange | literalRange | languageRange | '.' exclusion+
[50]    exclusion             ::= '-' (iri | literal | LANGTAG) '~'?

In ShEx 2.1, they were updated to the following:

[49]    valueSetValue         ::= iriRange | literalRange | languageRange | exclusion+
[50]    exclusion             ::= '.' '-' (iri | literal | LANGTAG) '~’?

But, the note on [49] still notes "If "." matches and exclusion matches one or more times”, and that doesn’t make sense in this context.  Also, the third ValuesConstraint example has a ‘.’ only at the beginning:

 ex:EmployeeShape {
    foaf:mbox [ . - <mailto:engineering->~ - <mailto:sales->~ ]
  }

Looks like the changes were made in error? Certainly, the new grammar is not forward-compatible with 2.0.

Gregg Kellogg
gregg@greggkellogg.net

Received on Friday, 27 August 2021 23:42:39 UTC