如何在ruby RDF.rb gem DBPedia查询

时间:2015-07-08 21:07:57

标签: ruby rdf dbpedia

我遇到了一个问题,即我使用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文档中找到有用的提示。有没有人知道如何为上述语言查询添加过滤器?

1 个答案:

答案 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?}