【发布时间】:2011-11-01 18:25:16
【问题描述】:
我目前正在使用 Ruby on Rails SPARQL 客户端尝试从 dbpedia 上的公共 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 for Ruby 和 sparql-client。代码如下所示(基于我能找到的示例):
result = {}
client = SPARQL::Client.new("http://dbpedia.org/sparql")
client.query(query).first.each_binding { |name, value| result[name] << value}
result
但我无法检索任何内容。使用调试器运行手动单步执行变量时,查询一执行就停止,我什至无法查看返回值。
谁有一个关于如何对 SPARQL 端点执行查询并解析响应的好例子?
【问题讨论】:
-
现在有支持 sparql 的 dbpedia gem github.com/farbenmeer/dbpedia
标签: ruby-on-rails semantics rdf sparql