- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Thu, 13 Aug 2015 18:01:01 -0700
- To: RDF Data Shapes Working Group <public-data-shapes-wg@w3.org>
This is my rational reconstruction of the current nomenclature and basic validation control process as described in the beginning of the current document. This reconstruction makes significant changes from the document that I feel are needed to make any sense out of the description in the document. This reconstruction doesn't even correspond to my preferred setup, which involves further changes away from the current document. I have included some quotes from the current document and commentary on them. Most of the quotes are taken from Section 1 of the current document. I expect that there are many other places where questionable technical wording occurs in the document. It took considerable effort to dig through even just the beginning of the document and come up with this reconstruction. I think that this level of required effort means that readers outside of the working group are going to have a very hard time understanding what SHACL is supposed to be. Shape: - RDF node belonging to sh:Shape - group (zero or more) constraints - can (must?) have one (or more?) scopes - can have one (or more?) filters (which are shapes) Constraint: - RDF node belonging to sh:Constraint - constraints can have one (or more?) filters (which are shapes) - constraints are validated? ["evaluated" in document] against nodes in an RDF graph (or dataset) - validation of constraints checks for the presence or absence of certain information in an RDF graph (in a dataset) - validation of constraints returns? ["produces" and "reports" in document] constraint results, including informational results, warnings, and errors Shapes in Constraints: - constraint validation can recursively validate? ["match" in document] shapes named in them against nodes in the graph Control - validate a constraint against a node in an RDF graph (in a dataset) - if the node passes (all/any of?) the shape's filter(s) then validate the rest of the constraint against the node (which depends on what kind of a constraint it is) - validation fails if an error result is returned and succeeds otherwise - validate a shape in a shape graph against a node in an RDF graph (in a dataset) - if the node satisfies (all/any of?) the shape's scope(s) and the node passes (all/any of?) the shape's filter(s) then validate each of the shape's constraints against that node - validation fails if any of the constraints that are validated return an error result and succeeds otherwise - validate a shape in a shape graph against an RDF data graph (in a dataset) - validate the shape against all nodes in the RDF data graph - validate a shape graph against an RDF data graph (in a dataset) - validate each shape in the shape graph against the data graph Scopes: - individual scopes are satisfied precisrely by a single node - class scopes are satisfied precisely by the instances ? of the class and its subclasses ? Filters: - a node passes a filter shape precisely when the validating the shape against the node succeeds Possible Holes (aside from parts marked with ? above) - handling of recursive loops - validating a shape with no scopes - handling blank node constraints and shapes with no typing - graph-level shapes - how is the graph resource recognized - global constraints - violate much of the above nomenclature Quotes and comments: "Each constraint defines a condition that can be validated against a graph." - wrong - a constraint by itself cannot be validated against anything - a constraint is not (generally) validated against a graph at all "A shape describes a group of constraints with the same focus node." - wrong - constraints don't have focus nodes in this way "allowing some shapes to further narrow down the constraints from other shapes" - unfounded - there is no notion of narrowing down constraints "validate all nodes in a given graph" - questionable - needs shapes as well as data "output of constraint validation is a set of constraint violations" - wrong - can also result in warnings and informational results "a given RDF node matches a given shape" - unfounded - match is never defined "that all focus nodes need to fulfill before they are evaluated" - unfounded - no notion of evaluation for nodes "where the object does not match the shape specified by sh:valueShape" - unfounded - no notion of matching for shapes "A violation must be reported" - unused - nothing depends on reported violations
Received on Friday, 14 August 2015 01:01:34 UTC