This is a Ruby implementation of a SPARQL client for RDF.rb.
-
Executes queries against any SPARQL 1.0-compatible endpoints over HTTP.
-
Provides a query builder DSL for
ASK
,SELECT
,DESCRIBE
andCONSTRUCT
queries. -
Supports tuple result sets in both XML and JSON formats, with JSON being the preferred default for content negotiation purposes.
-
Supports graph results in any RDF serialization format understood by RDF.rb.
-
Returns results using the RDF.rb object model.
-
Supports accessing endpoints as read-only
RDF::Repository
instances. -
Added basic INSERT support for Sparql Update (specific for Virtuoso, which does not follow the standard completely :-( )
-
Added CREATE / DROP / CLEAR GRAPH
-
Added DELETE DATA / DELETE support (also Virtuoso specific probably...)
require 'sparql/client'
sparql = SPARQL::Client.new("http://dbpedia.org/sparql")
# ASK WHERE { ?s ?p ?o }
result = sparql.ask.whether([:s, :p, :o]).true?
puts result.inspect #=> true or false
# SELECT * WHERE { ?s ?p ?o } OFFSET 100 LIMIT 10
query = sparql.select.where([:s, :p, :o]).offset(100).limit(10)
query.each_solution do |solution|
puts solution.inspect
end
# CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o } LIMIT 10
query = sparql.construct([:s, :p, :o]).where([:s, :p, :o]).limit(10)
query.each_statement do |statement|
puts statement.inspect
end
result = sparql.query("ASK WHERE { ?s ?p ?o }")
puts result.inspect #=> true or false
s = RDF::Query::Variable.new( "<http://data.linkedct.org/resource/trials/NCT00068588>")
o = ....
p = ....
# INSERT DATA INTO GRAPH <graph_uri> { <http://data.linkedct.org/resource/trials/NCT00068588> xxxxx yyyyy .}
query = sparql.insert([s, o, p]).graph(RDF::URI.new('graph_uri'))
puts query.result.inspect
http://sparql.rubyforge.org/client/
- {SPARQL::Client}
- {SPARQL::Client::Query}
- {SPARQL::Client::Repository}
The recommended installation method is via RubyGems.
To install the latest official release of the SPARQL::Client
gem, do:
% [sudo] gem install sparql-client
To get a local working copy of the development repository, do:
% git clone git://github.com/bendiken/sparql-client.git
Alternatively, download the latest development version as a tarball as follows:
% wget http://github.com/bendiken/sparql-client/tarball/master
- Christoph Badura - http://github.com/b4d
- James Hetherington - http://twitter.com/jamespjh
- Gabriel Horner - http://tagaholic.me/
- Nicholas Humfrey - http://www.aelius.com/njh/
- Fumihiro Kato - http://fumi.me/
- David Nielsen - http://github.com/drankard
- Thamaraiselvan Poomalai - http://softonaut.blogspot.com/
- Gregg Kellogg - http://kellogg-assoc.com/
- Stijn Pint - http://www.xaop.com
- Do your best to adhere to the existing coding conventions and idioms.
- Don't use hard tabs, and don't leave trailing whitespace on any line.
- Do document every method you add using YARD annotations. Read the tutorial or just look at the existing code for examples.
- Don't touch the
.gemspec
,VERSION
orAUTHORS
files. If you need to change them, do so on your private branch only. - Do feel free to add yourself to the
CREDITS
file and the corresponding list in the theREADME
. Alphabetical order applies. - Do note that in order for us to merge any non-trivial changes (as a rule of thumb, additions larger than about 15 lines of code), we need an explicit public domain dedication on record from you.
- http://sparql.rubyforge.org/client/
- http://github.com/bendiken/sparql-client
- http://rubygems.org/gems/sparql-client
- http://rubyforge.org/projects/sparql/
- http://raa.ruby-lang.org/project/sparql-client/
- http://www.ohloh.net/p/rdf
This is free and unencumbered public domain software. For more information, see http://unlicense.org/ or the accompanying {file:UNLICENSE} file.