Created
May 5, 2010 06:14
-
-
Save tsyber1an/390447 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#step 1 - installation | |
sudo gem install sparql | |
#step 2 - test | |
# in test.rb | |
require 'sparql/client' | |
sparql = SPARQL::Client.new("http://dbpedia.org/sparql") | |
# 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 | |
#step 3 - what we did? | |
# creat SPARQL::Client instance | |
# ~> call initialize("http://dbpedia.org/sparql", {}, nil) | |
# @url = RDF::URI.new("http://dbpedia.org/sparql") | |
# @headers = {'Accept' => "#{RESULT_JSON}, #{RESULT_XML}, text/plain"} | |
# | |
def initialize(url, options = {}, &block) | |
@url, @options = RDF::URI.new(url.to_s), options | |
@headers = {'Accept' => "#{RESULT_JSON}, #{RESULT_XML}, text/plain"} | |
#no blocks given! | |
if block_given? | |
case block.arity | |
when 1 then block.call(self) | |
else instance_eval(&block) | |
end | |
end | |
end | |
#then called select, try to what happed | |
# | |
def select(*args) | |
client = self | |
result = Query.select(*args) | |
(class << result; self; end).send(:define_method, :execute) do | |
client.query(self) | |
end | |
result | |
end | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment