我正在构建一个对 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 感谢大家