package org.aksw.jena_sparql_api.views; import java.util.Map; import org.apache.jena.sparql.core.Var; import org.apache.jena.sparql.expr.Expr; /** * Implementations of this class transform expressions as to eliminate * all RDF term expressions. * * TODO: This statement does not really hold: "At this stage datatypes do not have * to be considered." We still need to check at least on rdf term type level, * i.e. whether we are comparing e.g. uris to plain literal. * * Example: * <http://ex.org> = 5^^xsd:integer * (1, http://ex.org, "", "") = (3, 5, "", "xsd:integer) * -> 1 != 5 -> type error * * * TODO Below description is outdated * Evaluates an expression against a given binding (= variable assignment). * Unless all variables are bound, the result is not required to be a literal * value. In general, the result may be an expression that was derived from * the original one by means of transformations. * * * @author raven * */ public interface ExprEvaluator { Expr transform(Expr expr); @Deprecated Expr eval(Expr expr, Map<Var, Expr> binding);//VarBinding binding); }