/// <summary> /// Creates a new Property Function pattern /// </summary> /// <param name="origPatterns">Original Triple Patterns</param> /// <param name="lhsArgs">Subject Arguments</param> /// <param name="rhsArgs">Object Arguments</param> /// <param name="propertyFunction">Property Function</param> public PropertyFunctionPattern(IEnumerable <ITriplePattern> origPatterns, IEnumerable <PatternItem> lhsArgs, IEnumerable <PatternItem> rhsArgs, ISparqlPropertyFunction propertyFunction) { this._patterns = origPatterns.ToList(); this._lhsArgs = lhsArgs.ToList(); this._rhsArgs = rhsArgs.ToList(); this._function = propertyFunction; foreach (PatternItem item in lhsArgs.Concat(rhsArgs)) { if (item.VariableName != null && !this._vars.Contains(item.VariableName)) { this._vars.Add(item.VariableName); } } }
/// <summary> /// Creates a new Property function algebra. /// </summary> /// <param name="algebra">Inner algebra.</param> /// <param name="function">Property Function.</param> public PropertyFunction(ISparqlAlgebra algebra, ISparqlPropertyFunction function) { _function = function; _algebra = algebra; }
/// <summary> /// Creates a new Property Function pattern /// </summary> /// <param name="info">Function information</param> /// <param name="propertyFunction">Property Function</param> public PropertyFunctionPattern(PropertyFunctionInfo info, ISparqlPropertyFunction propertyFunction) : this(info.Patterns.OfType <ITriplePattern>(), info.SubjectArgs, info.ObjectArgs, propertyFunction) { }