static private PrintRDFPatternMember ( RDFPatternMember patternMember ) : String | ||
patternMember | RDFPatternMember | |
return | String |
/// <summary> /// Gives the string representation of the filter /// </summary> public override String ToString() { String leftValue = RDFQueryUtilities.PrintRDFPatternMember(this.LeftMember); String rightValue = RDFQueryUtilities.PrintRDFPatternMember(this.RightMember); if (this.ComparisonFlavor == RDFQueryEnums.RDFComparisonFlavors.LessThan) { return("FILTER ( " + leftValue + " < " + rightValue + " )"); } if (this.ComparisonFlavor == RDFQueryEnums.RDFComparisonFlavors.LessOrEqualThan) { return("FILTER ( " + leftValue + " <= " + rightValue + " )"); } if (this.ComparisonFlavor == RDFQueryEnums.RDFComparisonFlavors.EqualTo) { return("FILTER ( " + leftValue + " = " + rightValue + " )"); } if (this.ComparisonFlavor == RDFQueryEnums.RDFComparisonFlavors.NotEqualTo) { return("FILTER ( " + leftValue + " != " + rightValue + " )"); } if (this.ComparisonFlavor == RDFQueryEnums.RDFComparisonFlavors.GreaterOrEqualThan) { return("FILTER ( " + leftValue + " >= " + rightValue + " )"); } return("FILTER ( " + leftValue + " > " + rightValue + " )"); }
/// <summary> /// Gives the string representation of the filter /// </summary> public override String ToString() { String leftValue = RDFQueryUtilities.PrintRDFPatternMember(this.LeftMember); String rightValue = RDFQueryUtilities.PrintRDFPatternMember(this.RightMember); switch (this.ComparisonFlavor) { case RDFQueryEnums.RDFComparisonFlavors.LessThan: return("FILTER ( " + leftValue + " < " + rightValue + " )"); case RDFQueryEnums.RDFComparisonFlavors.LessOrEqualThan: return("FILTER ( " + leftValue + " <= " + rightValue + " )"); case RDFQueryEnums.RDFComparisonFlavors.EqualTo: return("FILTER ( " + leftValue + " = " + rightValue + " )"); case RDFQueryEnums.RDFComparisonFlavors.NotEqualTo: return("FILTER ( " + leftValue + " != " + rightValue + " )"); case RDFQueryEnums.RDFComparisonFlavors.GreaterOrEqualThan: return("FILTER ( " + leftValue + " >= " + rightValue + " )"); case RDFQueryEnums.RDFComparisonFlavors.GreaterThan: return("FILTER ( " + leftValue + " > " + rightValue + " )"); default: throw new RDFQueryException("Cannot get string representation of unknown '" + this.ComparisonFlavor + "' RDFComparisonFilter."); } }
internal String ToString(List <RDFNamespace> prefixes) { return(RDFQueryUtilities.PrintRDFPatternMember(this.Start, prefixes) + " " + this.GetStepString(prefixes) + " " + RDFQueryUtilities.PrintRDFPatternMember(this.End, prefixes)); }
/// <summary> /// Gives the string representation of the pattern /// </summary> public override String ToString() { String subj = RDFQueryUtilities.PrintRDFPatternMember(this.Subject); String pred = RDFQueryUtilities.PrintRDFPatternMember(this.Predicate); String obj = RDFQueryUtilities.PrintRDFPatternMember(this.Object); //CSPO pattern if (this.Context != null) { String ctx = RDFQueryUtilities.PrintRDFPatternMember(this.Context); if (this.IsOptional) { return("OPTIONAL { GRAPH " + ctx + " { " + subj + " " + pred + " " + obj + " } }"); } return("GRAPH " + ctx + " { " + subj + " " + pred + " " + obj + " }"); } //SPO pattern if (this.IsOptional) { return("OPTIONAL { " + subj + " " + pred + " " + obj + " }"); } return(subj + " " + pred + " " + obj); }
internal String ToString(List <RDFNamespace> prefixes) { String subj = RDFQueryUtilities.PrintRDFPatternMember(this.Subject, prefixes); String pred = RDFQueryUtilities.PrintRDFPatternMember(this.Predicate, prefixes); String obj = RDFQueryUtilities.PrintRDFPatternMember(this.Object, prefixes); //CSPO pattern if (this.Context != null) { String ctx = RDFQueryUtilities.PrintRDFPatternMember(this.Context, prefixes); if (this.IsOptional) { return("OPTIONAL { GRAPH " + ctx + " { " + subj + " " + pred + " " + obj + " } }"); } return("GRAPH " + ctx + " { " + subj + " " + pred + " " + obj + " }"); } //SPO pattern if (this.IsOptional) { return("OPTIONAL { " + subj + " " + pred + " " + obj + " }"); } return(subj + " " + pred + " " + obj); }
internal override String ToString(List <RDFNamespace> prefixes) { return("FILTER ( DATATYPE(" + this.Variable + ") = " + RDFQueryUtilities.PrintRDFPatternMember(RDFQueryUtilities.ParseRDFPatternMember(RDFModelUtilities.GetDatatypeFromEnum(this.Datatype)), prefixes) + " )"); }
internal override String ToString(List <RDFNamespace> prefixes) { return("FILTER ( SAMETERM(" + this.Variable + ", " + RDFQueryUtilities.PrintRDFPatternMember(this.RDFTerm, prefixes) + ") )"); }
/// <summary> /// Gives the string representation of the DESCRIBE query /// </summary> public override String ToString() { StringBuilder query = new StringBuilder(); if (this.DescribeTerms.Any() || this.PatternGroups.Any()) { // Describe query.Append("DESCRIBE"); // TERMS if (!this.IsStar) { this.DescribeTerms.ForEach(t => query.Append(" " + RDFQueryUtilities.PrintRDFPatternMember(t))); } else { query.Append(" *"); } // PATTERN GROUPS if (!this.IsEmpty) { query.Append("\nWHERE{\n"); Boolean printingUnion = false; this.PatternGroups.ForEach(pg => { //Current pattern group is set as UNION with the next one if (pg.JoinAsUnion) { //Current pattern group IS NOT the last of the query (so UNION keyword must be appended at last) if (!pg.Equals(this.PatternGroups.Last())) { //Begin a new Union block if (!printingUnion) { printingUnion = true; query.Append("\n {"); } query.Append(pg.ToString(2) + " UNION"); } //Current pattern group IS the last of the query (so UNION keyword must not be appended at last) else { //End the Union block if (printingUnion) { printingUnion = false; query.Append(pg.ToString(2)); query.Append(" }\n"); } else { query.Append(pg.ToString()); } } } //Current pattern group is set as INTERSECT with the next one else { //End the Union block if (printingUnion) { printingUnion = false; query.Append(pg.ToString(2)); query.Append(" }\n"); } else { query.Append(pg.ToString()); } } }); query.Append("\n}"); } // MODIFIERS // LIMIT/OFFSET if (this.Modifiers.Any(mod => mod is RDFLimitModifier || mod is RDFOffsetModifier)) { this.Modifiers.FindAll(mod => mod is RDFLimitModifier).ForEach(lim => query.Append("\n" + lim)); this.Modifiers.FindAll(mod => mod is RDFOffsetModifier).ForEach(off => query.Append("\n" + off)); } } return(query.ToString()); }
/// <summary> /// Gets the string representation of the path /// </summary> internal String GetStepString(List <RDFNamespace> prefixes) { var result = new StringBuilder(); #region Single Property if (this.Steps.Count == 1) { //InversePath (will swap start/end) if (this.Steps[0].IsInverseStep) { result.Append("^"); } var propPath = this.Steps[0].StepProperty; result.Append(RDFQueryUtilities.PrintRDFPatternMember(propPath, prefixes)); } #endregion #region Multiple Properties else { //Initialize printing Boolean openedParenthesis = false; //Iterate properties for (int i = 0; i < this.Steps.Count; i++) { //Alternative: generate union pattern if (this.Steps[i].StepFlavor == RDFQueryEnums.RDFPropertyPathStepFlavors.Alternative) { if (!openedParenthesis) { openedParenthesis = true; result.Append("("); } //InversePath (will swap start/end) if (this.Steps[i].IsInverseStep) { result.Append("^"); } var propPath = this.Steps[i].StepProperty; if (i < this.Steps.Count - 1) { result.Append(RDFQueryUtilities.PrintRDFPatternMember(propPath, prefixes)); result.Append((Char)this.Steps[i].StepFlavor); } else { result.Append(RDFQueryUtilities.PrintRDFPatternMember(propPath, prefixes)); result.Append(")"); } } //Sequence: generate pattern else { if (openedParenthesis) { result.Remove(result.Length - 1, 1); openedParenthesis = false; result.Append(")/"); } //InversePath (will swap start/end) if (this.Steps[i].IsInverseStep) { result.Append("^"); } var propPath = this.Steps[i].StepProperty; if (i < this.Steps.Count - 1) { result.Append(RDFQueryUtilities.PrintRDFPatternMember(propPath, prefixes)); result.Append((Char)this.Steps[i].StepFlavor); } else { result.Append(RDFQueryUtilities.PrintRDFPatternMember(propPath, prefixes)); } } } } #endregion return(result.ToString()); }
/// <summary> /// Gives the string representation of the filter /// </summary> public override String ToString() { return("FILTER ( SAMETERM(" + this.Variable + ", " + RDFQueryUtilities.PrintRDFPatternMember(this.RDFTerm) + ") )"); }
/// <summary> /// Prints the string representation of a SPARQL DESCRIBE query /// </summary> internal static String PrintDescribeQuery(RDFDescribeQuery describeQuery) { StringBuilder sb = new StringBuilder(); if (describeQuery != null) { #region PREFIXES if (describeQuery.Prefixes.Any()) { describeQuery.Prefixes.ForEach(pf => { sb.Append("PREFIX " + pf.NamespacePrefix + ": <" + pf.NamespaceUri + ">\n"); }); sb.Append("\n"); } #endregion #region HEADER #region BEGINDESCRIBE sb.Append("DESCRIBE"); #endregion #region TERMS if (describeQuery.DescribeTerms.Any()) { describeQuery.DescribeTerms.ForEach(dt => { sb.Append(" " + RDFQueryUtilities.PrintRDFPatternMember(dt, describeQuery.Prefixes)); }); } else { sb.Append(" *"); } sb.Append("\n"); #endregion #endregion #region BODY sb.Append("WHERE\n"); sb.Append("{\n"); #region MEMBERS Boolean printingUnion = false; List <RDFQueryMember> evaluableQueryMembers = describeQuery.GetEvaluableQueryMembers().ToList(); RDFQueryMember lastQueryMbr = evaluableQueryMembers.LastOrDefault(); foreach (var queryMember in evaluableQueryMembers) { #region PATTERNGROUPS if (queryMember is RDFPatternGroup) { //Current pattern group is set as UNION with the next one if (((RDFPatternGroup)queryMember).JoinAsUnion) { //Current pattern group IS NOT the last of the query //(so UNION keyword must be appended at last) if (!queryMember.Equals(lastQueryMbr)) { //Begin a new Union block if (!printingUnion) { printingUnion = true; sb.Append(" {\n"); } sb.Append(((RDFPatternGroup)queryMember).ToString(2, describeQuery.Prefixes) + " UNION\n"); } //Current pattern group IS the last of the query //(so UNION keyword must not be appended at last) else { //End the Union block if (printingUnion) { printingUnion = false; sb.Append(((RDFPatternGroup)queryMember).ToString(2, describeQuery.Prefixes)); sb.Append(" }"); sb.Append("\n"); } else { sb.Append(((RDFPatternGroup)queryMember).ToString(0, describeQuery.Prefixes)); } } } //Current pattern group is set as INTERSECT with the next one else { //End the Union block if (printingUnion) { printingUnion = false; sb.Append(((RDFPatternGroup)queryMember).ToString(2, describeQuery.Prefixes)); sb.Append(" }"); sb.Append("\n"); } else { sb.Append(((RDFPatternGroup)queryMember).ToString(0, describeQuery.Prefixes)); } } } #endregion #region SUBQUERY else if (queryMember is RDFQuery) { //Merge main query prefixes describeQuery.Prefixes.ForEach(pf1 => { if (!((RDFSelectQuery)queryMember).Prefixes.Any(pf2 => pf2.Equals(pf1))) { ((RDFSelectQuery)queryMember).AddPrefix(pf1); } }); //End the Union block if (printingUnion) { printingUnion = false; sb.Append(((RDFSelectQuery)queryMember).ToString()); sb.Append(" }"); sb.AppendLine(); } else { sb.Append(((RDFSelectQuery)queryMember).ToString()); } } #endregion } #endregion sb.Append("}\n"); #endregion #region FOOTER #region MODIFIERS List <RDFModifier> modifiers = describeQuery.GetModifiers().ToList(); // LIMIT/OFFSET if (modifiers.Any(mod => mod is RDFLimitModifier || mod is RDFOffsetModifier)) { modifiers.Where(mod => mod is RDFLimitModifier) .ToList() .ForEach(lim => { sb.Append("\n"); sb.Append(lim); }); modifiers.Where(mod => mod is RDFOffsetModifier) .ToList() .ForEach(off => { sb.Append("\n"); sb.Append(off); }); } #endregion #endregion } return(sb.ToString()); }