One query example:
select * {
?s1 <urn:p> ?o1
optional { ?s1 <urn:q> ?t1 }
?s2 <urn:r> ?o2
optional {
?s2 <urn:s> ?t2
filter(?t1 = ?t2)
}
}
Assuming no literals in the graph, can one take advantage of the equality condition and rewrite it to
select * {
?s1 <urn:p> ?o1
optional { ?s1 <urn:q> ?t1 }
?s2 <urn:r> ?o2
optional {
?s2 <urn:s> ?t1
bind(?t1 as ?t2)
}
}
? If yes, what's the argument? If not, why not?