From 618c4c4f424f672aa55c2aa42e2d65b2bc0a171b Mon Sep 17 00:00:00 2001
From: Olaf Hartig Algebraic Syntax
Path(|x|, |ppe|, |y|)
is an algebraic query expression if
|ppe| is an algebraic property path expression,
- |x| is an RDF term or a variable, and
- |y| is an RDF term or a variable.
+ |x| is an RDF term, a variable, or a triple pattern, and
+ so is |y|.
Translate Property Path Patterns
of the form Path(...).
Notes:
|x|:var|x|:TPIf |X| is a triple pattern:
++ppeval(X:TP, Link(iri), Y:term) = { }+
+ppeval(X:TP, Link(iri), Y:var) = { }+
+ppeval(X:TP, Link(iri), Y:TP) = { }+
If |X| is a variable and |Y| a triple pattern:
++ppeval(X:var, Link(iri), Y:TP) = + { (X, xn:term) ∪ μ | triple (xn, iri, P({Y}) ) is in the active graph, + where P = μ(σ) is a pattern instance mapping + with an RDF instance mapping σ + and a solution mapping μ + such that dom(μ) is the set of all variables in Y + and {(X, xn:term)} and μ are compatible }+
If |X| is an RDF term and |Y| a triple pattern:
++ppeval(X:term, Link(iri), Y:TP) = + { μ | triple (X, iri, P({Y}) ) is in the active graph, + where P = μ(σ) is a pattern instance mapping + with an RDF instance mapping σ + and a solution mapping μ + such that dom(μ) is the set of all variables in Y }
Informally, evaluating a Predicate Property Path is the same as executing a subquery
SELECT * { |X| |iri| |Y| } at that point in the query evaluation.
Definition: Evaluation of OneOrMorePath
Let ppe be an algebraic property path expression. @@ -10198,6 +10231,10 @@
Definition: Evaluation of NegatedPropertySet
@@ -10213,6 +10250,9 @@Property Path Patterns
{ μ | ∃ triple(μ'(μ, x), p, μ'(μ, y)) in G, such that the IRI of p ∉ S }
Informally, evaluating a Predicate Property Path is the same as executing a subquery
SELECT * { |X| |iri| |Y| } at that point in the query evaluation.
The previous definition does not correctly cover cases in which |X| or |Y| are a blank node.
+Moreover, the definition needs to be explicit about the multiplicity of the resulting solution mappings. + Is the result of `ppeval`(X, ZeroOrOnePath(ppe), Y) + just a set of solution mappings? + The question is relevant because `ppeval`(X, ppe, Y) may produce a multiset of solution mappings.
+We define an auxiliary function, ALP, used in the definitions of ZeroOrMorePath and OneOrMorePath. Note that the algorithm given here serves to specify the feature. An implementor is free to implement evaluation by any method that produces the same results @@ -10252,6 +10263,13 @@
The previous definition does not correctly cover cases in which |x| or |y| are a blank node.
+Moreover, the definition needs to be explicit about the multiplicity of the resulting solution mappings. + Is the result of `ppeval`(x, NPS(S), y) + just a set of solution mappings? + The question is relevant because there may be multiple such p ∉ S (and, also, |x| or |y| may be a blank node).