Class FederatedSparqlRemoteEndpoint
A Class for connecting to multiple remote SPARQL Endpoints and federating queries over them with the data merging done locally.
Implements
Inherited Members
Namespace: VDS.RDF.Query
Assembly: dotNetRdf.dll
Syntax
[Obsolete("Replaced by VDS.RDF.Query.FederatedSparqlQueryClient")]
public class FederatedSparqlRemoteEndpoint : SparqlRemoteEndpoint, IConfigurationSerializable
Remarks
Queries are federated by executing multiple requesting simultaneously and asynchronously against the endpoints in question with the data then merged locally. The merging process does not attempt to remove duplicate data it just naively merges the data.
Constructors
| Edit this page View SourceFederatedSparqlRemoteEndpoint(IEnumerable<Uri>)
Creates a new Federated SPARQL Endpoint by creating a SparqlRemoteEndpoint for each of the given URI.
Declaration
public FederatedSparqlRemoteEndpoint(IEnumerable<Uri> endpointUris)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<Uri> | endpointUris | Endpoint URIs. |
FederatedSparqlRemoteEndpoint(IEnumerable<SparqlRemoteEndpoint>)
Creates a new Federated SPARQL Endpoint using the given Endpoints.
Declaration
public FederatedSparqlRemoteEndpoint(IEnumerable<SparqlRemoteEndpoint> endpoints)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<SparqlRemoteEndpoint> | endpoints | Endpoints. |
FederatedSparqlRemoteEndpoint(Uri)
Creates a new Federated SPARQL Endpoint by creating a new SparqlRemoteEndpoint for the given URI.
Declaration
public FederatedSparqlRemoteEndpoint(Uri endpointUri)
Parameters
Type | Name | Description |
---|---|---|
Uri | endpointUri | Endpoint URI. |
FederatedSparqlRemoteEndpoint(SparqlRemoteEndpoint)
Creates a new Federated SPARQL Endpoint using a given Endpoint.
Declaration
public FederatedSparqlRemoteEndpoint(SparqlRemoteEndpoint endpoint)
Parameters
Type | Name | Description |
---|---|---|
SparqlRemoteEndpoint | endpoint | Endpoint. |
Properties
| Edit this page View SourceIgnoreFailedRequests
Gets/Sets whether a failed request on one endpoint should cause the entire request to fail.
Declaration
public bool IgnoreFailedRequests { get; set; }
Property Value
Type | Description |
---|---|
bool |
Remarks
By default if a request on any of the endpoint fails or times out then the entire request will fail.
MaxSimultaneousRequests
Gets/Sets the maximum number of endpoints this endpoint will issue queries to at any one time.
Declaration
public int MaxSimultaneousRequests { get; set; }
Property Value
Type | Description |
---|---|
int |
Methods
| Edit this page View SourceAddEndpoint(Uri)
Adds an additional endpoint to be used by this endpoint.
Declaration
public void AddEndpoint(Uri endpointUri)
Parameters
Type | Name | Description |
---|---|---|
Uri | endpointUri | Endpoint URI. |
AddEndpoint(SparqlRemoteEndpoint)
Adds a additional endpoint to be used by this endpoint.
Declaration
public void AddEndpoint(SparqlRemoteEndpoint endpoint)
Parameters
Type | Name | Description |
---|---|---|
SparqlRemoteEndpoint | endpoint | Endpoint. |
QueryRaw(string)
Makes a Query to a Sparql Endpoint and returns the raw Response.
Declaration
public override HttpWebResponse QueryRaw(string sparqlQuery)
Parameters
Type | Name | Description |
---|---|---|
string | sparqlQuery | Sparql Query String. |
Returns
Type | Description |
---|---|
HttpWebResponse |
Overrides
Exceptions
Type | Condition |
---|---|
NotSupportedException | Thrown if more than one endpoint is in use since for any federated endpoint which used more than one endpoint there is no logical/sensible way to combine the result streams. |
QueryRaw(string, string[])
Makes a Query to a Sparql Endpoint and returns the raw Response.
Declaration
public override HttpWebResponse QueryRaw(string sparqlQuery, string[] mimeTypes)
Parameters
Type | Name | Description |
---|---|---|
string | sparqlQuery | Sparql Query String. |
string[] | mimeTypes | MIME Types to use for the Accept Header. |
Returns
Type | Description |
---|---|
HttpWebResponse |
Overrides
Exceptions
Type | Condition |
---|---|
NotSupportedException | Thrown if more than one endpoint is in use since for any federated endpoint which used more than one endpoint there is no logical/sensible way to combine the result streams. |
QueryWithResultGraph(string)
Makes a Query where the expected Result is an RDF Graph ie. CONSTRUCT and DESCRIBE Queries.
Declaration
public override IGraph QueryWithResultGraph(string sparqlQuery)
Parameters
Type | Name | Description |
---|---|---|
string | sparqlQuery | SPARQL Query String. |
Returns
Type | Description |
---|---|
IGraph | RDF Graph. |
Overrides
Remarks
The query is executed by sending it federating it to all the endpoints this endpoint contains using simultaneous asychronous calls. Once these calls complete the results are naivley merged together (no duplicate data removal) and returned as a single result.
By default if any of the endpoints used return an error then the entire query will fail and an exception will be thrown, this behaviour can be overridden by setting the IgnoreFailedRequests property to be true in which case the result will be the merge of the results from all endpoints which successfully provided a result.
Exceptions
Type | Condition |
---|---|
RdfQueryException | Thrown if any of the requests to the endpoints fail. |
RdfQueryTimeoutException | Thrown if not all the requests complete within the set timeout. |
QueryWithResultGraph(IRdfHandler, string)
Makes a Query where the expected result is a Graph i.e. a CONSTRUCT or DESCRIBE query.
Declaration
public override void QueryWithResultGraph(IRdfHandler handler, string sparqlQuery)
Parameters
Type | Name | Description |
---|---|---|
IRdfHandler | handler | RDF Handler to process the results. |
string | sparqlQuery | SPARQL Query. |
Overrides
| Edit this page View SourceQueryWithResultSet(string)
Makes a Query where the expected Result is a SparqlResultSet ie. SELECT and ASK Queries.
Declaration
public override SparqlResultSet QueryWithResultSet(string sparqlQuery)
Parameters
Type | Name | Description |
---|---|---|
string | sparqlQuery | Sparql Query String. |
Returns
Type | Description |
---|---|
SparqlResultSet | A Sparql Result Set. |
Overrides
Remarks
The query is executed by sending it federating it to all the endpoints this endpoint contains using simultaneous asychronous calls. Once these calls complete the results are naivley merged together (no duplicate data removal) and returned as a single result.
By default if any of the endpoints used return an error then the entire query will fail and an exception will be thrown, this behaviour can be overridden by setting the IgnoreFailedRequests property to be true in which case the result will be the merge of the results from all endpoints which successfully provided a result.
Exceptions
Type | Condition |
---|---|
RdfQueryException | Thrown if any of the requests to the endpoints fail. |
RdfQueryTimeoutException | Thrown if not all the requests complete within the set timeout. |
QueryWithResultSet(ISparqlResultsHandler, string)
Makes a Query where the expected Result is a SparqlResultSet ie. SELECT and ASK Queries.
Declaration
public override void QueryWithResultSet(ISparqlResultsHandler handler, string sparqlQuery)
Parameters
Type | Name | Description |
---|---|---|
ISparqlResultsHandler | handler | Results Handler to process the results. |
string | sparqlQuery | SPARQL Query String. |
Overrides
Exceptions
Type | Condition |
---|---|
RdfQueryException | Thrown if any of the requests to the endpoints fail. |
RdfQueryTimeoutException | Thrown if not all the requests complete within the set timeout. |
RemoveEndpoint(Uri)
Removes all endpoints with the given URI from this endpoint.
Declaration
public void RemoveEndpoint(Uri endpointUri)
Parameters
Type | Name | Description |
---|---|---|
Uri | endpointUri | Endpoint URI. |
RemoveEndpoint(SparqlRemoteEndpoint)
Removes a given endpoint from this endpoint.
Declaration
public void RemoveEndpoint(SparqlRemoteEndpoint endpoint)
Parameters
Type | Name | Description |
---|---|---|
SparqlRemoteEndpoint | endpoint | Endpoint. |
SerializeConfiguration(ConfigurationSerializationContext)
Serializes the Endpoint's Configuration.
Declaration
public override void SerializeConfiguration(ConfigurationSerializationContext context)
Parameters
Type | Name | Description |
---|---|---|
ConfigurationSerializationContext | context | Configuration Serialization Context. |