
sparql_runtime.pl -- SPARQL runtime support
sparql_true(+Term)- Generated from FILTER Term, where Term must be converted to a boolean as 'Effective Boolean Value'.
sparql_eval(+Expr, -Results)- Evaluate a SPARQL expression.
sparql_eval_raw(+Expr, -Result)- Same as sparql_eval/2, but return the raw result.
sparql_find(?From, ?To, ?F, ?T, :Q) is nondet- Implement *(PropertyPath). We should probably collect translated
queries in a dynamic predicate to avoid the copy_term. Also, Q
will quite often be simple. In that case we can map to
rdf_reachable/3, although one of the problems is that
rdf_reachable/3 uses rdf_has/3, and does not deal with graphs.
We should be a bit smarter here and choose between forward, backward, two-sided breath-first, etc. based on which start point is given.
sparql_minus(:QLeft, :QRight)- Realise SPARQL
MINUS. This is defined to- Take the variables of QLeft
- Determine the result-set for these variables for both QLeft and QRight
- Substract those from QLeft that are in QRight
sparql_group(:Goal)- Same as call. Intended to keep groups together to avoid invalid optimizations.
sparql_group(:Goal, +OuterVars, +InnerVars)- Execute a group that contains non-steadfast variables, which asks for delayed unification of the output arguments.
sparql_service(+Silent, +URL, +Prefixes, +Bindings, +QText)- Execute a remote SPARQL SERVICE request
sparql_reset_bnodes- Reset the database for the BNODE(str) function
sparql_simplify(:Goal, -Simple) is det- Simplify goals to the SPARQL runtime functions before they are handed to the general optimizer and runtime evaluation.
sparql_subquery(+Proj, :Query, +Solutions) is nondet- Execute a SPARQL subquery.
sparql_update(:Updates) is det- Handle SPARQL update requests.