/// <summary> /// Formats a SPARQL Aggregate /// </summary> /// <param name="agg">SPARQL Aggregate</param> /// <returns></returns> protected virtual String FormatAggregate(ISparqlAggregate agg) { StringBuilder output = new StringBuilder(); if (SparqlSpecsHelper.IsAggregateFunctionKeyword(agg.Functor)) { output.Append(agg.Functor); } else { String aggQName; if (this._qnameMapper.ReduceToQName(agg.Functor, out aggQName)) { output.Append(aggQName); } else { output.Append('<'); output.Append(this.FormatUri(agg.Functor)); output.Append('>'); } } output.Append('('); List <ISparqlExpression> args = agg.Arguments.ToList(); for (int i = 0; i < args.Count; i++) { output.Append(this.FormatExpression(args[i])); if (i < args.Count - 1 && !(args[i] is DistinctModifier)) { output.Append(", "); } } output.Append(')'); return(output.ToString()); }