我遇到了一个问题,即我使用RDF gem减少了DBPedia查询的交付结果集。这一切都适用于"非语言特定"结果,但当我试图减少#34;摘要"关系我努力限制某些语言的结果。
代码如下:
require 'linkeddata'
graph = RDF::Graph.new
graph.load('http://dbpedia.org/resource/NBC')
query_abstract = RDF::Query.new({
:wiki_abstract => {
RDF::URI('http://dbpedia.org/ontology/abstract') => :abstract,
}
})
results_abstract = query_abstract.execute(graph)
results_abstract.each do |result|
puts "#{result.wiki_abstract} - Abstract: #{result.abstract}"
end
我尝试使用SPARQL查询,我能够毫无问题地过滤输出语言。但是当我尝试使用RDF gem找到解决方案时,我失败了,并且无法在RDF文档中找到有用的提示。有没有人知道如何为上述语言查询添加过滤器?
答案 0 :(得分:0)
您可能需要选择具有所需语言的结果,如下所示:
results_abstract.to_a.select {|a| a.abstract.language == :en}.each do |result|
puts "#{result.wiki_abstract} - Abstract: #{result.abstract}"
end
在这种情况下,你找不到任何东西,因为看起来返回的语言是:ru,:ja,:de,:it和nil(plain literal)。您可以使用以下方法查找纯文字:
results_abstract.to_a.select {|a| !a.abstract.has_language?}