SemWeb.Sparql : SemWeb.Query Namespace
SparqlProtocolServerHandler Class

Implements a SPARQL Protocol server for ASP.NET.

public class SparqlProtocolServerHandler : System.Web.IHttpHandler

Remarks

This class implements the System.Web.IHttpHandler interface to provide a SPARQL Protocol query server over HTTP.

To activate the SPARQL server in your ASP.NET site, place the SemWeb.dll, SemWeb.Sparql.dll, and sparql-core.dll assemblies in the bin directory of your ASP.NET application. Then add the following to your web.config file. Note that you must specify a spec string to a data source to serve, as described in SemWeb.Store.CreateForInput(string).

Example
<configuration>
     <configSections>
          <section name="sparqlSources" type="System.Configuration.NameValueSectionHandler,System"/>
     </configSections>

     <system.web>
          <httpHandlers>
               <!-- This line associates the SPARQL Protocol implementation with a path on your
                    website. With this, you get a SPARQL server at http://yourdomain.com/sparql.  -->
               <add verb="*" path="sparql" type="SemWeb.Query.SparqlProtocolServerHandler, SemWeb.Sparql" />
          </httpHandlers>
     </system.web>

     <sparqlSources>
          <!-- This line configures the data source associated with each SPARQL server added above.
                  This sets the server to query the RDF/XML file at the given path.  You can use any
                  spec string described in SemWeb.Store.CreateForInput(). -->
          <add key="/sparql" value="xml:/home/user/datafile.rdf"/>
     </sparqlSources>
</configuration>

Precede the data source specification string with "rdfs+" to wrap the data source with the SemWeb.Inference.RDFS reasoning engine. And precede that with "noreuse," to create a new instance of the data source on each request, which is good for SQL-backed stores to allow for concurrent queries, but bad for file-backed stores which would be read from disk on each request. For instance:

Example
<add key="/sparql" value="noreuse,rdfs+mysql:rdftable:Database=databasename;Server=localhost;User Id=username"/>

Using Mono's XSP light-weight web server, you can create a standalone SPARQL Protocol server by:

  • Creating a new directory for your server.
  • Creating a bin directory within it, and placing the files mentioned above into the directory.
  • Creating a web.config file in the directory using the template above.
  • Running "xsp" from within the directory.

You may want to add this index.html file to create a form to experiment with SPARQL queries:

Example
<html>
     <body>
          <form action="/sparql" method="get">
        <input type="hidden" name="outputMimeType" value="text/xml"/>
        <textarea name="query" rows="10" cols="80">
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX pol: <tag:govshare.info,2005:rdf/politico/>
SELECT * WHERE {
?s rdf:type pol:Politician .
?s foaf:gender "male" .
?s foaf:name ?name .
}
LIMIT 10
        </textarea>
        <p><input type="submit"/></p>
          </form>
     </body>
</html>  

Requirements

Namespace: SemWeb.Query
Assembly: SemWeb.Sparql (in SemWeb.Sparql.dll)
Assembly Versions: 0.0.0.0

Members

See Also: Inherited members from object.

Public Constructors

Creates a new SPARQL Protocol implementation class.

Public Fields

MaximumLimit int . The maximum number of bindings to return for any query.

Public Methods

ProcessRequest (System.Web.HttpContext)
Processes an HTTP request from the ASP.NET subsystem.

Protected Methods

CreateQuery (string) : Query
Constructs a Query object for a SPARQL query.
GetDataSource (out bool) : SemWeb.SelectableSource
Gets the data source to query.
RunQuery (Query, SemWeb.SelectableSource, System.IO.TextWriter)
Runs a query.

Explicitly Implemented Interface Members

[read-only]
System.Web.IHttpHandler.IsReusable bool . Documentation for this section has not yet been entered.

Member Details

SparqlProtocolServerHandler Constructor

Creates a new SPARQL Protocol implementation class.

public SparqlProtocolServerHandler ()

Remarks

This class does not listen on an HTTP port by itself. It is meant to be embedded in an ASP.NET site.

Requirements

Namespace: SemWeb.Query
Assembly: SemWeb.Sparql (in SemWeb.Sparql.dll)
Assembly Versions: 0.0.0.0

CreateQuery Method

Constructs a Query object for a SPARQL query.

protected virtual Query CreateQuery (string query)

Parameters

query
The SPARQL query as a string.

Returns

A Query object.

Remarks

The default implementation returns a new SPARQL query object based on the query. Override in subclasses to create a query in a different way, or to set limits on the query.

Requirements

Namespace: SemWeb.Query
Assembly: SemWeb.Sparql (in SemWeb.Sparql.dll)
Assembly Versions: 0.0.0.0

GetDataSource Method

Gets the data source to query.

protected virtual SemWeb.SelectableSource GetDataSource (out bool closeAfterQuery)

Parameters

closeAfterQuery
Set to true to indicate that the data source should be closed/disposed after the query is complete.

Returns

A data source to query.

Remarks

None.

Requirements

Namespace: SemWeb.Query
Assembly: SemWeb.Sparql (in SemWeb.Sparql.dll)
Assembly Versions: 0.0.0.0

MaximumLimit Field

The maximum number of bindings to return for any query.

public int MaximumLimit

Remarks

Set to -1, the default, to have no limit.

Requirements

Namespace: SemWeb.Query
Assembly: SemWeb.Sparql (in SemWeb.Sparql.dll)
Assembly Versions: 0.0.0.0

ProcessRequest Method

Processes an HTTP request from the ASP.NET subsystem.

public virtual void ProcessRequest (System.Web.HttpContext context)

Parameters

context
The request context.

Remarks

This method is not meant to be called from user code.

Requirements

Namespace: SemWeb.Query
Assembly: SemWeb.Sparql (in SemWeb.Sparql.dll)
Assembly Versions: 0.0.0.0

RunQuery Method

Runs a query.

protected virtual void RunQuery (Query query, SemWeb.SelectableSource source, System.IO.TextWriter output)

Parameters

query
The query to run.
source
The data source to query against.
output
The output stream.

Remarks

The default implementation runs the query on the data source and outputs the results in the SPARQL XML Results specification format. Override in subclasses to output the results in a different way, to run the query differently, or to set limits on the query or output.

Requirements

Namespace: SemWeb.Query
Assembly: SemWeb.Sparql (in SemWeb.Sparql.dll)
Assembly Versions: 0.0.0.0

System.Web.IHttpHandler.IsReusable Property

Documentation for this section has not yet been entered.

bool System.Web.IHttpHandler.IsReusable { get; }

Value

Documentation for this section has not yet been entered.

Remarks

Documentation for this section has not yet been entered.

Requirements

Namespace: SemWeb.Query
Assembly: SemWeb.Sparql (in SemWeb.Sparql.dll)
Assembly Versions: 0.0.0.0