我目前正在使用Ruby on Rails SPARQL客户端尝试从dbpedia的公共SPARQL端点检索信息。我正在运行的通用查询如下:Ruby on Rails SPARQL客户端
query = "
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX prop: <http://dbpedia.org/property/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT * WHERE {
?city prop:name 'Antwerpen'@en;
a dbo:PopulatedPlace;
dbo:abstract ?abstract .
FILTER langMatches(lang(?abstract), 'en')
OPTIONAL { ?city foaf:homepage ?homepage }
OPTIONAL { ?city rdfs:comment ?comment .
FILTER langMatches(lang(?comment), 'en') }
}"
这是一个通用查询,它从dbpedia返回有关城市的一些常规信息。我已经在sparql端点上手动测试了它,它检索我期望它返回的信息。 但是,我似乎无法找到一种方法来解析Ruby on Rails中的响应。
目前我与RDF想这对Ruby和SPARQL客户端。代码看起来像这样(根据我能找到的例子):
result = {}
client = SPARQL::Client.new("http://dbpedia.org/sparql")
client.query(query).first.each_binding { |name, value| result[name] << value}
result
但我无法检索任何东西。当使用调试器手动进入变量时,只要执行查询就会停止,并且我甚至无法查看返回值。
任何人都有一个关于如何针对SPARQL端点执行查询并解析响应的好例子?
重复上http://answers.semanticweb.com/questions/11263/sparql-endpoint-in-ruby-on-rails – RobV
现在有dbpedia gem与sparql支持https://github.com/farbenmeer/dbpedia – mahemoff