Skip to content
Merged
Changes from all commits
Commits
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
11 changes: 9 additions & 2 deletions spec/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9907,6 +9907,11 @@ <h3>Property Path Patterns</h3>
</tbody>
</table>
</div>
<div class="issue" data-number="349">
The signature of `ppeval` should be extended to be:
`ppeval`(|X|, |ppe|, |Y|, |G|),
where |G| is an RDF graph.
</div>
<p>All evaluation is carried out by matching the <a href="#defn_ActiveGraph">active graph</a>
at that point in the overall query evaluation. We omit explicitly including the active graph
in each definition for clarity.</p>
Expand Down Expand Up @@ -10066,7 +10071,10 @@ <h3>Property Path Patterns</h3>
# For <a href="#defn_ppeOneOrMorePath" class="ppeOp">OneOrMorePath</a>, we take one step of the path then start
# recording nodes for results.

ppeval(<var>x</var>:term, <a href="#defn_ppeOneOrMorePath" class="ppeOp">OneOrMorePath</a>(<var>ppe</var>), <var>vy</var>:var) =
ppeval(<var>x</var>:term, <a href="#defn_ppeOneOrMorePath" class="ppeOp">OneOrMorePath</a>(<var>ppe</var>), <var>vy</var>:var) = { { (<var>vy</var>, <var>t</var>) } | <var>t</var> in <var>V</var> }
where <var>V</var> is the set of RDF terms that is returned by the
following algorithm.

Let <var>X</var> = <a href="#defn_reachableTerms"><var>reachableTerms</var></a>(<var>x</var>, <var>ppe</var>)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let reachableTerms(x:term, ppe) be the set of RDF terms
reached by repeated matches of ppe,
when starting at RDF term x.

"reacheable" to me means an arbitrary length match e.g. :p*

"Evaluation of OneOrMorePath" uses it as "one step".

I think the definition of reachableTerm is tying to be one step but "reachable", and "repeated matches", imply to me an arbitrary length match.

Maybe "all matches of the ppe" and maybe call it "pathMatches" or "oneStep"/"oneApplication"

"neighbors" might be possible but ppe is not just length 1.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@afs I agree that this part is misleading, at best. In fact, I would say that the reachableTerms function is ill-defined. Notice, however, that this is not an issue of this PR, not even an issue of something we have done in v1.2 now. The function that is called 'reachableTerms' now was called 'eval' in 1.1 (indeed, like several other "eval" functions in 1.1)---see it being used in the definition of OneOrMorePath in 1.1 and its "definition" in the context of the ALP function in 1.1. I will open a separate issue to address this comment.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Issue created: #352

Let <var>V</var> = the empty multiset
For <var>n</var> in <var>X</var>
Expand All @@ -10085,7 +10093,6 @@ <h3>Property Path Patterns</h3>
{ { } } if { (<var>vy</var>:var, <var>y</var>) } in ppeval(<var>x</var>, <a href="#defn_ppeOneOrMorePath" class="ppeOp">OneOrMorePath</a>(<var>ppe</var>), <var>vy</var>)
{ } otherwise
</pre>
<div class="issue" data-number="267"><var>V</var> is not a multiset of solution mappings but a set of RDF terms.</div>
</div>
<div class="defn">
<p><b>Definition: <span id="eval_negatedPropertySet">Evaluation of NegatedPropertySet</span></b></p>
Expand Down
Loading