Skip to content
Merged
Changes from 2 commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions shacl12-core/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -851,7 +851,7 @@ <h2>Shapes and Constraints</h2>
<div class="diagram-class-properties-section">
<div><a href="#name">sh:name</a> : xsd:string or rdf:langString</div>
<div><a href="#description">sh:description</a> : xsd:string or rdf:langString</div>
<div><a href="#defaultValue">sh:defaultValue</a> : any</div>
<div><a href="#syntax-rule-path-defaultValue">sh:defaultValue</a> : any</div>
<div><a href="#group">sh:group</a> : sh:PropertyGroup</div>
</div>
<div class="diagram-class-properties-section">
Expand Down Expand Up @@ -1430,7 +1430,7 @@ <h3>Property Shapes</h3>
<br/><br/>
<span data-syntax-rule="path-values">A <a>property shape</a> has at most one <a>value</a> for the property <code>sh:values</code> and this <a>value</a> is a <a>well-formed</a> <a>node expression</a>.</span>
<span data-syntax-rule="path-defaultValue">A <a>property shape</a> has at most one <a>value</a> for the property <code>sh:defaultValue</code> and this <a>value</a> is a <a>well-formed</a> <a>node expression</a>.</span>
<span data-syntax-rule="path-values-iri">A <a>property shape</a> can only have a <a>value</a> for <code>sh:values</code> or <code>sh:defaultValue</code> when its <a>value</a> for <code>sh:path</code> is a <a href="#property-path-predicate">Predicate Path</a>.</span>
<span data-syntax-rule="path-values-iri">A <a>property shape</a> can only have <a>values</a> for <code>sh:values</code> and <code>sh:defaultValue</code> when its <a>value</a> for <code>sh:path</code> is a <a href="#property-path-predicate">Predicate Path</a>.</span>
</p>
<p>
Informally, property shapes specify constraints that need to be met with respect to <a>nodes</a> that can be reached from the
Expand Down Expand Up @@ -1653,6 +1653,21 @@ <h3>Node Expressions</h3>
Each of these parameters has an <a>IRI</a>.
One of these parameters can be the <dfn>key parameter</dfn> that uniquely identifies the <a>function name</a>.
</div>
<div class="def" id="node-expression-evaluation">
<div class="def-header">EVALUATION OF NODE EXPRESSIONS</div>
The <dfn>evaluation</dfn> of a node expression is defined as a function <code>eval(expr, activeGraph, scope) -> outputNodes</code>
where
<ul>
<li><code>expr</code> is a <a>node expression</a> that is the <a>subject</a> of <a>triples</a> where the <a>predicates</a> are the <a>node expression parameters</a>,
optional for any but the <a>key parameter</a> unless stated otherwise in the definition of the node expression function.</li>
<li><code>activeGraph</code> is a <a>graph</a>, called the <dfn>active graph</dfn>.</li>
<li><code>scope</code> is a map from <a href="https://www.w3.org/TR/sparql12-query/#defn_QueryVariable">variable names</a> to individual <a>nodes</a>.
The value of the variable <code>focusNode</code> (if it exists) is called the <dfn>input focus node</dfn>.
</li>
</ul>
The result of the evaluation of a node expression is a list of <a>nodes</a> (possibly empty and with duplicates) called the <dfn>output nodes</dfn>.
The evaluation may also result in an <dfn>evaluation failure</dfn>.
</div>
<p>
The following example illustrates the syntax of a node expression, used as a blank node value of <code>sh:values</code>:
</p>
Expand Down Expand Up @@ -1687,21 +1702,6 @@ <h3>Node Expressions</h3>
and the <a>function name</a> is (as defined by SHACL-SPARQL) is <code>sh:SelectExpression</code>.
</p>
</aside>
<div class="def" id="node-expression-evaluation">
<div class="def-header">EVALUATION OF NODE EXPRESSIONS</div>
The <dfn>evaluation</dfn> of a node expression is defined as a function <code>eval(expr, activeGraph, scope) -> outputNodes</code>
where
<ul>
<li><code>expr</code> is a <a>node expression</a> that is the <a>subject</a> of <a>triples</a> where the <a>predicates</a> are the <a>node expression parameters</a>,
optional for any but the <a>key parameter</a> unless stated otherwise in the definition of the node expression function.</li>
<li><code>activeGraph</code> is a <a>graph</a>, called the <dfn>active graph</dfn>.</li>
<li><code>scope</code> is a map from <a href="https://www.w3.org/TR/sparql12-query/#defn_QueryVariable">variable names</a> to individual <a>nodes</a>.
The value of the variable <code>focusNode</code> (if it exists) is called the <dfn>input focus node</dfn>.
</li>
</ul>
The result of the evaluation of a node expression is a list of <a>nodes</a> (possibly empty and with duplicates) called the <dfn>output nodes</dfn>.
The evaluation may also result in an <dfn>evaluation failure</dfn>.
</div>
<p>
This SHACL Core specification only exactly defines the <a>node expression functions</a> from the following two subsections.
Other specifications such as [[shacl12-sparql]] introduce additional functions.
Expand Down