/// <summary> /// Processes a Zero Length Path /// </summary> /// <param name="path">Path</param> /// <param name="context">SPARQL Evaluation Context</param> /// <returns></returns> public virtual BaseMultiset ProcessZeroLengthPath(ZeroLengthPath path, SparqlEvaluationContext context) { if (context == null) { context = this.GetContext(); } return(path.Evaluate(context)); }
/// <summary> /// Converts a Path into its Algebra Form /// </summary> /// <param name="context">Path Transformation Context</param> /// <returns></returns> public override ISparqlAlgebra ToAlgebra(PathTransformContext context) { PathTransformContext lhsContext = new PathTransformContext(context); PathTransformContext rhsContext = new PathTransformContext(context); ISparqlAlgebra lhs = new ZeroLengthPath(lhsContext.Subject, lhsContext.Object, this._path); ISparqlAlgebra rhs = this._path.ToAlgebra(rhsContext); return(new Distinct(new Union(lhs, rhs))); }
/// <summary> /// Processes a Zero Length Path. /// </summary> /// <param name="path">Path.</param> /// <param name="context">SPARQL Evaluation Context.</param> /// <returns></returns> public override BaseMultiset ProcessZeroLengthPath(ZeroLengthPath path, SparqlEvaluationContext context) { return(ExplainAndEvaluate <ZeroLengthPath>(path, context, base.ProcessZeroLengthPath)); }