- From: Gregg Kellogg <gregg@greggkellogg.net>
- Date: Thu, 20 Jun 2013 11:16:56 -0700
- To: peter@vandenabeele.com
- Cc: "public-rdf-ruby@w3.org" <public-rdf-ruby@w3.org>
- Message-Id: <0F3203CC-7306-4760-BF75-BB80306B7664@greggkellogg.net>
Gregg Kellogg
gregg@greggkellogg.net
On Jun 20, 2013, at 3:01 AM, Peter Vandenabeele <peter@vandenabeele.com> wrote:
> On Thu, Jun 20, 2013 at 11:21 AM, Gregg Kellogg <gregg@greggkellogg.net> wrote:
> On Jun 20, 2013, at 1:59 AM, Peter Vandenabeele <peter@vandenabeele.com> wrote:
>
>> On Thu, Jun 20, 2013 at 1:31 AM, Gregg Kellogg <gregg@greggkellogg.net> wrote:
>> Just released SPARQL::Client version 1.0.4, which now works against an RDF::Repository (actually any RDF::Queryable) in addition to remote endpoints. This allows the DSL to be used along with the SPARQL gem to access a local Repository, and runs in pure Ruby. For example:
>>
>> require 'rdf/turtle'
>> require 'sparql/client'
>> repository = RDF::Repository.load("https://raw.github.com/ruby-rdf/sparql-client/master/etc/doap.ttl", :format => :ttl)
>>
>> sparql = SPARQL::Client.new(repository)
>> query = sparql.select.where([:s, :p, :o]).offset(10).limit(10)
>>
>> Gregg Kellogg
>> gregg@greggkellogg.net
>>
>>
>> Hi Gregg,
>>
>> I tried your script (in the context of an rvm gemset that was
>> populated with this Gemfile):
>>
>> $ cat Gemfile
>> source 'https://rubygems.org'
>>
>> gem 'rdf'
>> gem 'rdf-turtle'
>> gem 'sparql'
>> gem 'sparql-client'
>>
>> I add the resulting Gemfile.lock below for detailed versions.
>>
>> It works, but I seem to miss the part to execute the actual query
>> or ask the results from it? I must be missing something trivial ...
>>
>> The thrown execption is:
>>
>> NoMethodError: undefined method `execute' for SPARQL:Module
>
> This was based on an example from the README, other examples illustrate this:
>
> query.each_solution do |solution|
> puts solution
> end
>
>
> Thanks for the fast reply and the link to the README of sparql-client.
>
> I was able to get the example to work with an explicit require of 'sparql':
>
> require 'rdf/turtle'
> require 'sparql/client'
> require 'sparql' ## <== This require is also needed
> repository = RDF::Repository.load("https://raw.github.com/ruby-rdf/sparql-client/master/etc/doap.ttl", :format => :ttl)
> sparql = SPARQL::Client.new(repository)
> query = sparql.select.where([:s, :p, :o]).offset(10).limit(2)
> query.execute
>
> Output from irb below as reference.
This should be fixed now, I've updated the gem to version 1.0.4.1. Note that this won't work in Ruby versions < 1.9.
Gregg
> Thanks again,
>
> peter_v
>
> +++++++++++++++++
>
> irb output:
>
> $ irb
> 2.0.0p195 :001 > require 'rdf/turtle'
> => true
> 2.0.0p195 :002 > require 'sparql/client'
> => true
> 2.0.0p195 :003 > require 'sparql' ## <== This require is also needed
> => true
> 2.0.0p195 :004 > repository = RDF::Repository.load("https://raw.github.com/ruby-rdf/sparql-client/master/etc/doap.ttl", :format => :ttl)
> => #<RDF::Repository:0x3fd06a248504()>
> 2.0.0p195 :005 > sparql = SPARQL::Client.new(repository)
> => #<SPARQL::Client:0x3fd06954a30c(#<RDF::Repository:0x007fa0d4490a08>)>
> 2.0.0p195 :006 > query = sparql.select.where([:s, :p, :o]).offset(10).limit(2)
> => #<SPARQL::Client::Query:0x3fd0695a8128(SELECT * WHERE { ?s ?p ?o . } OFFSET 10 LIMIT 2)>
> 2.0.0p195 :007 > query.execute
> Could not load gem 'equivalent-xml'; XMLLiteral comparison performed using REXML
> => [#<RDF::Query::Solution:0x3fd06b044c20({:s=>#<RDF::URI:0x3fd0694e9020(http://rubygems.org/gems/rdf)>, :p=>#<RDF::URI:0x3fd06a103a7c(http://usefulinc.com/ns/doap#implements)>, :o=>#<RDF::URI:0x3fd06a1028ac(http://www.w3.org/TR/sparql11-query/)>})>, #<RDF::Query::Solution:0x3fd06b044b58({:s=>#<RDF::URI:0x3fd0694e9020(http://rubygems.org/gems/rdf)>, :p=>#<RDF::URI:0x3fd06a103a7c(http://usefulinc.com/ns/doap#implements)>, :o=>#<RDF::URI:0x3fd06a106380(http://www.w3.org/TR/sparql11-update/)>})>]
>
Received on Thursday, 20 June 2013 18:17:30 UTC