nomenclature in current document - ISSUE-65

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.

- 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)

- 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

- 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
  - 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

- individual scopes are satisfied precisrely by a single node
- class scopes are satisfied precisely by the instances ? of the class and its
  subclasses ?

- 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