/// <summary>
 /// Creates a new Same Term Filter
 /// </summary>
 /// <param name="pattern">Algebra the Filter applies over</param>
 /// <param name="var">Variable to restrict on</param>
 /// <param name="term">Expression Term</param>
 public SameTermFilter(ISparqlAlgebra pattern, String var, NodeExpressionTerm term)
     : base(pattern, var, term, new UnaryExpressionFilter(new SameTermFunction(new VariableExpressionTerm(var), term))) { }
 /// <summary>
 /// Creates a new Single Value Restriction Filter
 /// </summary>
 /// <param name="pattern">Algebra the filter applies over</param>
 /// <param name="var">Variable to restrict on</param>
 /// <param name="term">Value to restrict to</param>
 /// <param name="filter">Filter to use</param>
 public SingleValueRestrictionFilter(ISparqlAlgebra pattern, String var, NodeExpressionTerm term, ISparqlFilter filter)
     : base(pattern, var, filter)
 {
     this._term = term;
 }
 /// <summary>
 /// Creates a new Identity Filter
 /// </summary>
 /// <param name="pattern">Algebra the Filter applies over</param>
 /// <param name="var">Variable to restrict on</param>
 /// <param name="term">Expression Term</param>
 public IdentityFilter(ISparqlAlgebra pattern, String var, NodeExpressionTerm term)
     : base(pattern, var, term, new UnaryExpressionFilter(new EqualsExpression(new VariableExpressionTerm(var), term))) { }
 public bool TryCreateExpression(Uri u, List<ISparqlExpression> args, Dictionary<String,ISparqlExpression> scalarArgs, out ISparqlExpression expr)
 {
     Graph g = new Graph();
     expr = new NodeExpressionTerm(g.CreateLiteralNode("Monkey"));
     return true;
 }