diff --git a/shacl12-core/index.html b/shacl12-core/index.html index b54f2607..508e2d6a 100644 --- a/shacl12-core/index.html +++ b/shacl12-core/index.html @@ -1359,7 +1359,7 @@
s
is a shape in a shapes graph SG
and s
has
value expr
for sh:targetNode
in SG
,
then the output nodes of expr
are targets
- for the data graph DG
as active graph.
+ for the data graph DG
as focus graph.
The remainder of this section is informative.
@@ -2406,14 +2406,15 @@
evalExpr(expr, activeGraph, scope) -> outputNodes
+ The evaluation of a node expression is defined as a function evalExpr(expr, focusGraph, focusNode, scope) -> outputNodes
where
expr
is a node expression in a shapes graph.
During evaluation, the engine can access triples related to expr
in the shapes graph.activeGraph
is a graph, called the active graph.focusGraph
is a graph, called the focus graph. This is the default query graph for the evaluation of the node expression.focusNode
is a node, called the input focus node. This variable may have no value.scope
is a map from variable names to individual nodes.
- The value of the variable focusNode
(if it exists) is called the input focus node.
+ The empty map is written as {}
.
evalExpr(expr, activeGraph, scope) -> [expr]
+ evalExpr(expr, focusGraph, focusNode, scope) -> [expr]
evalExpr(expr, activeGraph, scope) -> [expr]
+ evalExpr(expr, focusGraph, focusNode, scope) -> [expr]
@@ -2919,13 +2920,11 @@ e
is the value of sh:values
at the property shape,
- then add the output nodes of evalExpr(e, data graph, scope)
where scope
- contains the focus node as the value of the variable focusNode
.
+ then add the output nodes of evalExpr(e, data graph, focus node, {})
.
d
is the value of sh:defaultValue
at the property shape,
- then add the output nodes of evalExpr(d, data graph, scope)
where scope
- contains the focus node as the value of the variable focusNode
.
+ then add the output nodes of evalExpr(d, data graph, focus node, {})
.
sh:expression
has true
as one of its output nodes.
+ node expression specified via sh:expression
has true
as its only output node.
The evaluation of these node expressions is repeated for all value nodes of the shape
as the focus node.
@@ -6031,9 +6030,8 @@ expr
be the value of sh:expression
.
For each value node v
- and scope
contains v
as the value of focusNode
- where evalExpr(expr, activeGraph, scope)
- does not return true
as one of its output nodes,
+ where evalExpr(expr, data graph>, v, {})
+ does not return the list consisting of exactly true
as its output nodes,
there is a validation result that has v
as its sh:value
and a deep copy of expr
in the results graph as its sh:sourceConstraint
.
If the expr
has values for sh:message
in the shapes graph,
diff --git a/shacl12-sparql/index.html b/shacl12-sparql/index.html
index 676c1ecf..d7c330ae 100644
--- a/shacl12-sparql/index.html
+++ b/shacl12-sparql/index.html
@@ -408,6 +408,7 @@
The output nodes of a select expression are the list resultNodes
consisting of exactly the bindings of the (only)
- variable that is projected from the SELECT clause.
- If present in the scope, the value of the scope variable focusNode
MUST be pre-bound as the value of the SPARQL variable this
.
+ variable that is projected from the SELECT
clause when the query is evaluated against the focus graph.
+ The value of focusNode
is pre-bound as the value of the SPARQL variable this
.
+ The value of each scope variable is pre-bound as a SPARQL variable with the same name and value.
+ A failure is produced when one of the scope variables is called this
.
- evalExpr(expr, activeGraph, scope) -> resultNodes
+ evalExpr(expr, focusGraph, focusNode, scope) -> resultNodes
The remainder of this section is informative.
@@ -1340,11 +1343,14 @@
The output nodes of an SPARQL expr expression are the list resultNodes
consisting of exactly the bindings of the (only)
- variable that is projected from the SELECT clause of the select
query as defined above.
- If present in the scope, the value of the scope variable focusNode
MUST be pre-bound as the value of the SPARQL variable this
.
+ variable that is projected from the SELECT
clause of the select
query as defined above
+ when the query is evaluated against the focus graph.
+ The value of focusNode
is pre-bound as the value of the SPARQL variable this
.
+ The value of each scope variable is pre-bound as a SPARQL variable with the same name and value.
+ A failure is produced when one of the scope variables is called this
.
- evalExpr(expr, activeGraph, scope) -> resultNodes
+ evalExpr(expr, focusGraph, focusNode, scope) -> resultNodes
The remainder of this section is informative.