Class SparqlQuery
Represents a SPARQL Query.
Inheritance
Inherited Members
Namespace: VDS.RDF.Query
Assembly: dotNetRdf.dll
Syntax
public sealed class SparqlQuery
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
Constructors
| Improve this Doc View SourceSparqlQuery(bool)
Creates a new SPARQL Query.
Declaration
public SparqlQuery(bool subQuery)
Parameters
Type | Name | Description |
---|---|---|
System. |
subQuery | Whether this query is a sub-query. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
Properties
| Improve this Doc View SourceAlgebraOptimisers
Gets/Sets the locally scoped Algebra Optimisers that are used to optimise the Query Algebra in addition to (but before) any external (e.g. processor-provided) optimisers.
Declaration
public IEnumerable<IAlgebraOptimiser> AlgebraOptimisers { get; set; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
BaseUri
Get or set the base URI used to resolve relative URI references.
Declaration
public Uri BaseUri { get; set; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
Bindings
Gets/Sets the VALUES Clause for the Query which are bindings that should be applied.
Declaration
public BindingsPattern Bindings { get; }
Property Value
Type | Description |
---|---|
Bindings |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
ConstructTemplate
Gets/Sets the Construct Template for a Construct Query.
Declaration
public GraphPattern ConstructTemplate { get; }
Property Value
Type | Description |
---|---|
Graph |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
DefaultGraphNames
Gets the names of the default graphs for the query.
Declaration
public IEnumerable<IRefNode> DefaultGraphNames { get; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
DefaultGraphs
Gets the Default Graph URIs for the Query.
Declaration
[Obsolete("Replaced by DefaultGraphNames")]
public IEnumerable<Uri> DefaultGraphs { get; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
DescribeVariables
Gets the Variables, QNames and URIs used in the Describe Query.
Declaration
public IEnumerable<IToken> DescribeVariables { get; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
ExpressionFactories
Gets/Sets the locally scoped Expression Factories that may be used if the query is using the CALL() function to do dynamic function invocation.
Declaration
public IEnumerable<ISparqlCustomExpressionFactory> ExpressionFactories { get; set; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
GroupBy
Gets/Sets the Grouping for the Query.
Declaration
public ISparqlGroupBy GroupBy { get; }
Property Value
Type | Description |
---|---|
ISparql |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
HasDistinctModifier
Gets whether a Query has a DISTINCT modifier.
Declaration
public bool HasDistinctModifier { get; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
HasSolutionModifier
Gets whether the Query has a Solution Modifier (a GROUP BY, HAVING, ORDER BY, LIMIT or OFFSET).
Declaration
public bool HasSolutionModifier { get; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
Having
Gets/Sets the Having Clause for the Query.
Declaration
public ISparqlFilter Having { get; }
Property Value
Type | Description |
---|---|
ISparql |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
IsAggregate
Gets whether the Query has an Aggregate as its Result.
Declaration
public bool IsAggregate { get; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
IsOptimised
Gets whether Optimisation has been applied to the query.
Declaration
public bool IsOptimised { get; }
Property Value
Type | Description |
---|---|
System. |
Remarks
This only indicates that an Optimiser has been applied. You can always reoptimise the query using a different optimiser by using the relevant overload of the Optimise() method.
IsSubQuery
Gets whether this Query is a Sub-Query in another Query.
Declaration
public bool IsSubQuery { get; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
Limit
Gets the Result Set Limit for the Query.
Declaration
public int Limit { get; set; }
Property Value
Type | Description |
---|---|
int |
Remarks
Values less than zero are counted as -1 which indicates no limit.
NamedGraphNames
Gets the names of the named graphs for the query.
Declaration
public IEnumerable<IRefNode> NamedGraphNames { get; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
NamedGraphs
Gets the Named Graph URIs for the Query.
Declaration
[Obsolete("Replaced by NamedGraphNames")]
public IEnumerable<Uri> NamedGraphs { get; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
NamespaceMap
Gets the map of namespace prefixes to URIs.
Declaration
public INamespaceMapper NamespaceMap { get; }
Property Value
Type | Description |
---|---|
INamespace |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
Offset
Gets/Sets the Result Set Offset for the Query.
Declaration
public int Offset { get; set; }
Property Value
Type | Description |
---|---|
int |
Remarks
Values less than zero are treated as 0 which indicates no offset.
OrderBy
Gets/Sets the Ordering for the Query.
Declaration
public ISparqlOrderBy OrderBy { get; }
Property Value
Type | Description |
---|---|
ISparql |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
PartialResultsOnTimeout
Gets/Sets whether Partial Results should be returned in the event of Query Timeout.
Declaration
public bool PartialResultsOnTimeout { get; set; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Partial Results (typically) only applies when executing the Query in memory. If you have an instance of this class and pass its string representation (using To
PropertyFunctionFactories
Gets/Sets the locally scoped Property Function factories that may be used by the Property
Declaration
public IEnumerable<IPropertyFunctionFactory> PropertyFunctionFactories { get; set; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
QueryExecutionTime
Gets the Time taken to execute a Query.
Declaration
public TimeSpan? QueryExecutionTime { get; set; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
Exceptions
Type | Condition |
---|---|
System. |
Thrown if you try and inspect the execution time before the Query has been executed. |
QueryType
Gets the type of the Query.
Declaration
public SparqlQueryType QueryType { get; }
Property Value
Type | Description |
---|---|
Sparql |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
RootGraphPattern
Gets the top level Graph Pattern of the Query.
Declaration
public GraphPattern RootGraphPattern { get; }
Property Value
Type | Description |
---|---|
Graph |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
SpecialType
Gets the Special Type of the Query (if any).
Declaration
public SparqlSpecialQueryType SpecialType { get; }
Property Value
Type | Description |
---|---|
Sparql |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
Timeout
Gets/Sets the Query Execution Timeout in milliseconds.
Declaration
public long Timeout { get; set; }
Property Value
Type | Description |
---|---|
long |
Remarks
This Timeout (typically) only applies when executing the Query in memory. If you have an instance of this class and pass its string representation (using To
UsesDefaultDataset
Gets whether a Query uses the Default Dataset against which it is evaluated.
Declaration
public bool UsesDefaultDataset { get; }
Property Value
Type | Description |
---|---|
System. |
Remarks
If the value is true then the Query will use whatever dataset is it evaluated against. If the value is false then the query changes the dataset at one/more points during its evaluation.
Things that may change the dataset and cause a query not to use the Default Dataset are as follows:.
- FROM clauses (but not FROM NAMED)
- GRAPH clauses
- Subqueries which do not use the default dataset
Variables
Gets the Variables used in the Query.
Declaration
public IEnumerable<SparqlVariable> Variables { get; }
Property Value
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
VirtualCount
The number of results that would be returned without any limit clause to a query or -1 if not supported. Defaults to the same value as the Count member.
Declaration
[Obsolete("This property is obsolete and is no longer set when a query is processed")]
public int VirtualCount { get; }
Property Value
Type | Description |
---|---|
int |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
Methods
| Improve this Doc View SourceAddDefaultGraph(Uri)
Adds a Default Graph URI.
Declaration
[Obsolete("Replaced by AddDefaultGraph(IRefNode)")]
public void AddDefaultGraph(Uri u)
Parameters
Type | Name | Description |
---|---|---|
System. |
u | Graph URI. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
AddDefaultGraph(IRefNode)
Adds a graph to the default graph of the query.
Declaration
public void AddDefaultGraph(IRefNode n)
Parameters
Type | Name | Description |
---|---|---|
IRef |
n |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
AddNamedGraph(Uri)
Adds a Named Graph URI.
Declaration
[Obsolete("Replaced by AddNamedGraph(IRefNode)")]
public void AddNamedGraph(Uri u)
Parameters
Type | Name | Description |
---|---|---|
System. |
u | Graph URI. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
AddNamedGraph(IRefNode)
Adds a named graph to the query.
Declaration
public void AddNamedGraph(IRefNode n)
Parameters
Type | Name | Description |
---|---|---|
IRef |
n |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
ClearDefaultGraphs()
Removes all Default Graph URIs.
Declaration
public void ClearDefaultGraphs()
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
ClearNamedGraphs()
Removes all Named Graph URIs.
Declaration
public void ClearNamedGraphs()
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
Copy()
Creates a copy of the query.
Declaration
public SparqlQuery Copy()
Returns
Type | Description |
---|---|
Sparql |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
FromServiceQuery(GraphPattern, int)
Create a query instance that can be passed to remote endpoint when processing a SERVICE clause in a SPARQL Query.
Declaration
public static SparqlQuery FromServiceQuery(GraphPattern serviceGraphPattern, int limit)
Parameters
Type | Name | Description |
---|---|---|
Graph |
serviceGraphPattern | The root graph pattern of the SERVICE query. |
int | limit | The limit on the number of results requested. |
Returns
Type | Description |
---|---|
Sparql |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
Optimise()
Applies optimisation to a Query using the default global optimiser.
Declaration
public void Optimise()
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
Optimise(IQueryOptimiser)
Applies optimisation to a Query using the specific optimiser.
Declaration
public void Optimise(IQueryOptimiser optimiser)
Parameters
Type | Name | Description |
---|---|---|
IQuery |
optimiser | Query Optimiser. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
Process(ISparqlQueryProcessor)
Processes the Query using the given Query Processor.
Declaration
public object Process(ISparqlQueryProcessor processor)
Parameters
Type | Name | Description |
---|---|---|
ISparql |
processor | SPARQL Query Processor. |
Returns
Type | Description |
---|---|
System. |
Remarks
Note: This class is purposefully sealed and most setters are private/protected internal since generally you create a query by using the Sparql
To build a query programmatically you can use the Query
ToAlgebra(bool, IEnumerable<IAlgebraOptimiser>)
Converts the Query into it's SPARQL Algebra representation (as represented in the Leviathan API).
Declaration
public ISparqlAlgebra ToAlgebra(bool optimise = true, IEnumerable<IAlgebraOptimiser> optimisers = null)
Parameters
Type | Name | Description |
---|---|---|
System. |
optimise | Boolean flag indicating whether to apply algebra optimisation. |
System. |
optimisers | The external algebra optimisers to apply. |
Returns
Type | Description |
---|---|
ISparql |
Remarks
If optimisers
is null, only any locally defined optimisation will be applied.
ToString()
Generates a String representation of the Query.
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
string |
Overrides
Remarks
This method may not return a complete representation of the Query depending on the Query it is called on as not all the classes which can be included in a Sparql query currently implement ToString methods.