- From: Eric Prud'hommeaux <eric@w3.org>
- Date: Tue, 24 Nov 2015 06:05:06 -0500
- To: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>
- Cc: Arthur Ryman <arthur.ryman@gmail.com>, "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
* Peter F. Patel-Schneider <pfpschneider@gmail.com> [2015-11-19 11:05-0800] > The cleanup of SHACL constraints could be something like: > > - A constraint is either a node constraint or a global constraint. > > - A node constraint is something that is true or false of nodes in a graph. > Node constraints can be just about anything, including SPARQL-based > constraints. Node constraints include boolean constructs and closed > versions of constraints. > > - Node constraints include property-path constraints. A property-path > constraint contains a property path, perhaps some cardinality > constraints, and perhaps some node constraints. > - For example "at least 5 children and all male" or "all inverse of > children are people" are property-path constraints. > - Cardinality constraints are "at least n" or "at most n" or qualified > versions of these, e.g., "at least 5 are male", which contain a > cardinality and a node constraint. > a qualified cardinality constraint here ("at least 1 x is y"). > - A property-path constraint is evaluated on a node by finding the set of > values of the property path from the node, checking to see if this set > satisfies the cardinality constraints and then checking to see if the > values each satisfy each of the node constraints. > - A set of values satisfies an unqualified cardinality constraint > depending only on the size of the set. A set of values satisfies a > qualified cardinality constraint if the subset of the values that > satisfy the node constraint satisfy the cardinality. > > - A global constraint is something that is true or false of a graph as a > whole. All (current) global constraints are SPARQL-based. > > A SHACL shape is then just a node constraint. Shapes tend to be named, and > used as targets of scoping (control) triples. > > > The difference between this goes beyond Arthur's to cover qualified > cardinalities, which don't fit into Arthur's setup; closure; and global > constraints. > > > The difference between node constraints and ShEx is that ShEx distinguishes > between node constraints (Shape Expressions) and shapes (combination of > Label and Shape Definition). Agreed. The shape also has a <closed> flag and a list of <extra> predicates which don't show up in constraints (see "shapeExpr" in <http://shex.io/primer/ShExJ#h-schemaimg>). > peter > -- -ericP office: +1.617.599.3509 mobile: +33.6.80.80.35.59 (eric@w3.org) Feel free to forward this message to any list for any purpose other than email address distribution. There are subtle nuances encoded in font variation and clever layout which can only be seen by printing this message on high-clay paper.
Received on Tuesday, 24 November 2015 11:05:12 UTC