RDF.rbを試してみる
require 'rdf' require 'linkeddata' require 'sparql' graph = RDF::Graph.load("http://dbpedia.org/resource/Elvis_Presley") puts graph.size puts graph.to_s query = RDF::Query.new({ :person => { RDF::URI("http://dbpedia.org/ontology/birthDate") => :birthDate, RDF::URI("http://dbpedia.org/ontology/deathDate") => :deathDate } }) results = query.execute(graph) puts results.first[:birthDate].to_s sse = SPARQL.parse("SELECT ?o WHERE { ?s http://dbpedia.org/ontology/birthdate ?o }") solutions = sse.execute(graph) puts solutions.to_json #to_xml #to_html puts solutions.to_xml #to_html puts solutions.to_html
結果は
2025 http://dbpedia.org/resource/Elvis_Presley 1935-01-08 {"head":{"vars":["o"]},"results":{"bindings":[{"o":{"type":"literal","xml:lang":"en","value":"1935-01-08"}}]}} <?xml version="1.0" encoding="UTF-8"?> <sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head> <variable name="o"/> </head> <results> <result> <binding name="o"> <literal xml:lang="en">1935-01-08</literal> </binding> </result> </results> </sparql> <table class="sparql"> <tbody> <tr> <th>o</th> </tr> <tr> <td>"1935-01-08"@en</td> </tr> </tbody> </table>