Dbpedia查询花费太多时间(Ruby)



我正在构建一个集成系统,对dbPedia的prefixSearch Api进行查询

http://lookup.dbpedia.org/api/search.asmx/PrefixSearch?QueryClass=&MaxHits=1&QueryString=KEYWORD

从这里我获得一个资源的URI,使用简单的get获取资源,然后使用nokogiri解析它

data = Net::HTTP.get(URI.parse(url.to_s+'.rdf'))
doc = Nokogiri::XML(data)
我需要从文档中找到摘要,所以使用xpath我成功地找到了它。
entity = doc.root.xpath("/rdf:RDF/rdf:Description[@rdf:about=""+@uri+""]").map do |node|  
name = node.xpath("dbpedia-owl:abstract[@xml:lang="en"]").first.content
end

问题是,对于一些信息丰富的页面,如涉及国家的页面,执行此操作将花费15-16秒。这在我的系统中是不可接受的。

所以我需要找到一种方法来做所有的事情更快?有解决办法吗?例如使用SPARQL感谢所有

如果您只需要关于URI的特定信息,那么您可以为该信息编写SPARQL查询,这将使事情更快。

您需要详细说明您需要的确切信息,但我假设您正在根据您显示的代码寻找关于URI的英文摘要:

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT ?abstract
WHERE
{
  <http://dbpedia.org/resource/RESOURCE> dbpedia-owl:abstract ?abstract .
  FILTER(LANGMATCHES(LANG(?abstract), "en"))
}

最新更新