Core SHACL Semantics - More Abstract Syntax Questions/Comments

Iovka,

Some more questions on [1].

1. The following productions seem to be ambiguous since a single
ShapeExpr matches then:

SomeOfShape ::= ShapeExpr ('|' ShapeExpr)*
OneOfShape ::= ShapeExpr ('•' ShapeExpr)*
GroupShape ::= ShapeExpr (',' ShapeExpr)*

Should the *'s be changed to +'s?

I realize that if we view the grammar as a top-down inductive
construction, there is no problem. However, if we view this as a way
to parse a term, then it is ambiguous.

2. The following production allows any ShapeExpr to have a Cardinality:

RepetitionShape ::= ShapeExpr Cardinality

This means a ShapeExpr could have an unbounded sequence of
Cardinality, which doesn't seem right.

Also, you already allow Cardinality in the following production, but
only on TripleConstraint and InverseTripleConstraint:
ShapeExpr ::= EmptyShape
| TripleConstraint Cardinality
| InverseTripleConstraint Cardinality
| NegatedTripleConstraint
| NegatedInverseTripleConstraint
| SomeOfShape
| OneOfShape
| GroupShape
| RepetitionShape

Why allow Cardinality here on only two terms, but then allow it an any
term via RepetitionShape?

3. You introduce a complex SPARQL query in the RDF Vocabulary section.
This builds up the abstract syntax tree from RDF terms, but you don't
describe the terms. They are implicit in the SPARQL, but that means
the reader has to reverse engineer the SPARQL. I didn't get much
benefit from looking at the SPARQL. I'd appreciate more description of
the query. A worked example would help. Also a link to the vocabulary
would help.

4. The SPARQL query and following text is out-of-sync with the
preceding text. For example, we use the string "INF" instead of
"unbounded". Also, you mention the term DisjuntiveShape but that is
undefined.

[1] http://w3c.github.io/data-shapes/semantics/

Received on Wednesday, 24 June 2015 15:14:51 UTC