I tested the following code with sparql 3.2.5:
require 'sparql'
exp = <<-EOS
(extend ((?a1 "a1") (?a2 "a2"))
(union
(extend
((?a2 "a3") (?a4 "a4"))
(join (extend
((?a5 "a5") (?a6 "a6"))
(bgp (triple ?s1 ?p1 ?o1) (triple ?s2 ?p2 ?o2) (triple ?s3 ?p3 ?o3)))
(extend
((?a7 "a7") (?a8 "a8"))
(bgp (triple ?s4 ?p4 ?o4) (triple ?s5 ?p5 ?o5)))))
(extend ((?a9 "a9") (?a10 "a10")) (bgp (triple ?s6 ?p6 ?o6)))))
EOS
puts SPARQL::Algebra.parse(exp).to_sparql
I expect a query where the variables ?a3 and ?a4. However, in the output listed below, variables ?a3 and ?a4 do not appear.
SELECT *
WHERE {
{
{
{?s1 ?p1 ?o1 .
?s2 ?p2 ?o2 .
?s3 ?p3 ?o3 .
BIND ("a5" AS ?a5) .
BIND ("a6" AS ?a6) .}
{
{?s4 ?p4 ?o4 .
?s5 ?p5 ?o5 .
BIND ("a7" AS ?a7) .
BIND ("a8" AS ?a8) .}
}
}
} UNION {
{?s6 ?p6 ?o6 .
BIND ("a1" AS ?a1) .
BIND ("a2" AS ?a2) .
BIND ("a9" AS ?a9) .
BIND ("a10" AS ?a10) .}
}
BIND ("a1" AS ?a1) .
BIND ("a2" AS ?a2) .
}
I tested the following code with sparql 3.2.5:
I expect a query where the variables
?a3and?a4. However, in the output listed below, variables?a3and?a4do not appear.