All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aksw.jena_sparql_api.restriction.RestrictionManager Maven / Gradle / Ivy

The newest version!
package org.aksw.jena_sparql_api.restriction;

import org.aksw.jena_sparql_api.views.RdfTermType;
import org.apache.jena.graph.Node;
import org.apache.jena.sparql.core.Var;
import org.apache.jena.sparql.expr.Expr;
import org.apache.jena.sparql.expr.NodeValue;

/**
 * Interface for associating restrictions with
 * (query) variables.
 * 
 * @author raven
 *
 * @param 
 */
public interface RestrictionManager {
	
	/**
	 * Test whether the given expression is satisfiable in
	 * regard to the given restrictions
	 * 
	 * @param expr The expression to test for satisfiability
	 * @return The assessment of the satisfiability
	 */
	Boolean determineSatisfiability(Expr expr);


	/**
	 * Get the restriction associated with the given variable
	 * 
	 * @param a
	 * @return
	 */
	RestrictionImpl getRestriction(Var a);

	/**
	 * Return the restriction associated with as expression.
	 * If the expression is a variable, getRestriction(Var) is invoked.
	 * 
	 * restriction[concat("a", "b")] = prefixset({"ab"}) 
	 * 
	 * @param expr
	 * @return
	 */
	RestrictionImpl getRestriction(Expr expr);
	
	RestrictionImpl getOrCreateLocalRestriction(Var a);

	void stateType(Var a, RdfTermType type);

	void stateNode(Var a, Node b);

	void stateUri(Var a, String uri);

	void stateLiteral(Var a, NodeValue b);

	void stateNonEqual(Var a, Var b);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy