Re: Errors/Typos in Shacl-Sparql Spec.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 04/27/2015 01:20 PM, Arthur Ryman wrote:
> 1. The statement
> 
> "However, if there is no use of rdfs:subClassOf and rdfs:subPropertyOf in
> either the control graph or the data graph, then there would be little
> difference between the RDF semantics and simpler semantics."
> 
> should probably also include mention of rdfs:domain and rdfs:range

Yes, I've modified the wording.

> 2. The spec defines three sections of an Extended Condition:
> 
> "Other SHACL control nodes allow the separation of a condition into three
> sections: a scope section, a shape section, and a reporting section."
> 
> However, further down in the spec, the term "control section" is used 
> where it should be "scope section":
> 
> "The control portion of the condition, <control>, is "
> 
> "<report> WHERE { <control> MINUS { <shape> } }"

Yes.

> 3. The spec limits allowed values to be IRIs, but this should be 
> generalized to allow IRIs or Literals.

The document states that the details of this high-level language are not
important.  I put in a few high-level constructs, but left out others.  I
just happened to pick a simplistic version of allowed values.

> 4. The translation of has-value components to SPARQL may not be correct.
> For example, the translation:
> 
> "?this <path> ?V . FILTER ( ?V = <value> )"
> 
> fails to taken into account the cardinality of <path>. What happens if 
> <path> is optional?

The has-value component was specifically written to require a value.

> I also think it might be safer (and more efficient) to translate 
> has-value and other components  into SPARQL that does not introduce a new
> variable ?V. This can be accomplished by hiding ?V in a subquery that
> SELECTs ?this.

This would be possible.  I'm not sure what the best translation is, and just
picked some that appear to work.

> 5. I believe the intention of node-type components is to allow one of the
> listed types. Therefore the component should be translated into a 
> disjunction. The spec uses conjunction:
> 
> "where <test> is the SPARQL conjunction (&&) of isIRI(?V) if "IRI" is in
> the list, isBlank(?V) if "blank" is in the list, and isLiteral(?V) if
> "literal" is in the list. "

Well, the conjunction is inside a negation, so I think that it is the right
way around.

> 6. Missing angle brackets in the example:
> 
> " sh:sparqlScope "?person rdf:type http://example.org/Person"
> 
> should be:
> 
> " sh:sparqlScope "?person rdf:type <http://example.org/Person>"

Correct.  Fixed.

> 7. Example uses "unbounded" but spec says value must be an integer:
> 
> sh:minCardinality 0 ; sh:maxCardinality "unbounded" ;

Oops.  I removed the maxCardinality.
> 
> -- Arthur

Thanks for the suggestions.

peter

> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCAAGBQJVPrc7AAoJECjN6+QThfjzBnsIAMCUjDTgVwFizyl8DU1oE92C
gjQLpKqisRQSYsXnqnK1Jxslit1dIx5v2wdnP0A+WxnIMcHVuTFzmTLzAoxs9aqk
IN8Lr/9359/RtaX1MUItAepjirWvczXHopgHJ4YHwTHeU/KOB2MGf7VPcZBQBTp3
SB4WNc1IKiY2uwE4jQu83HR4NBGe9FXSAGeUIYTIc8CHBriuU6xv77dOsQ34OTm4
/MIqY493UrQ4zMbjIzlmeyaylg755pJua4aNI53FWaauc+CZTw4jVO6AhPmSHC+g
GFka9uq5mF9VRFTAgYLJ0pS23KVxEuLwXyWnfNTtnB+RTWlncI3umZGN80b9NFE=
=8+IJ
-----END PGP SIGNATURE-----

Received on Monday, 27 April 2015 22:25:29 UTC