Skip to content
14 changes: 9 additions & 5 deletions shacl12-node-expr/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -896,8 +896,9 @@ <h3>List Parameter Functions</h3>
However, these may produce more than one <a>output nodes</a>, and also accept lists as input nodes.
</p>
<p>
The following example uses multiple (imaginary) <a>list parameter functions</a> &mdash;
<code>ex:coalesce</code> and <code>ex:concat</code> &mdash; to compute the <code>ex:displayName</code>
The following example uses two <a>list parameter functions</a> &mdash;
the (hypothetical)<code>ex:coalesce</code> and the SPARQL-based <code>sparql:concat</code> &mdash;
to compute the <code>ex:displayName</code>
of a person as either the value of <code>ex:fullName</code> or (if that doesn't exist)
as a concatenation of <code>ex:firstName</code>, a space, and <code>ex:lastName</code>.
</p>
Expand All @@ -917,7 +918,7 @@ <h3>List Parameter Functions</h3>
shnex:pathValues ex:fullName ;
]
[
ex:concat (
sparql:concat (
[ shnex:pathValues ex:firstName ] # Path values expression with at most one value
" " # A constant literal expression
[ shnex:pathValues ex:lastName ] # Path values expression with at most one value
Expand Down Expand Up @@ -1071,6 +1072,7 @@ <h3>List Expressions</h3>
<tr>
<td><b><code>rdf:first</code></b></td>
<td>
MUST be <a>literal</a> or an <a>IRI</a>.
</td>
<td>
The first member of the list.
Expand All @@ -1079,7 +1081,8 @@ <h3>List Expressions</h3>
<tr>
<td><b><code>rdf:rest</code></b></td>
<td>
Must be a <a>well-formed</a> <a>SHACL list</a>.
Must be a <a>well-formed</a> <a>SHACL list</a> where all <a>members</a>
are <a>literals</a> or <a>IRIs</a>.
</td>
<td>
The rest of the list, e.g. <code>rdf:nil</code>.
Expand All @@ -1092,7 +1095,8 @@ <h3>List Expressions</h3>
<div class="def" id="ListExpression-evaluation">
<div class="def-header">EVALUATION OF LIST EXPRESSIONS</div>
<p>
The <a>output nodes</a> of a <a>list expression</a> are the <a>members</a> of the <a>SHACL list</a>.
The <a>output nodes</a> of a <a>list expression</a> are the <a>members</a> of the <a>list expression</a>,
in the same order as in the list.
</p>
</div>
<p><em>The remainder of this section is informative.</em></p>
Expand Down