- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Mon, 27 Apr 2015 15:24:59 -0700
- To: Arthur Ryman <arthur.ryman@gmail.com>, "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
-----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