首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dbpedia返回查询的完整wikipedia页面

使用dbpedia返回查询的完整wikipedia页面
EN

Stack Overflow用户
提问于 2015-02-23 17:31:28
回答 1查看 835关注 0票数 1

我使用以下代码检索给定查询的消歧页。

代码语言:javascript
复制
#disambiguation function
def disambiguation(name, sparql):
  query = "SELECT DISTINCT ?syn WHERE { { ?disPage dbpedia-owl:wikiPageDisambiguates <http://dbpedia.org/resource/"+name+"> . ?disPage dbpedia-owl:wikiPageDisambiguates ?syn . }  UNION {<http://dbpedia.org/resource/"+name+"> dbpedia-owl:wikiPageDisambiguates ?syn . } }"
  sparql.setQuery(query)
  sparql.setReturnFormat(JSON)  
  results_list = sparql.query().convert()
  return results_list

问题:

是否可以为results_list中的每个元素返回完整的维基百科页面?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-23 18:42:01

简化查询

选择DISTINCT ?syn,其中{{?dbpedia owl:wikiPageDis歧义http://dbpedia.org/resource/"+name+"。?disPage dbpedia-owl:wikiPageDis歧义?syn。} UNION { http://dbpedia.org/resource/"+name+" dbpedia-owl:wikiPageDis歧义化?syn。}}

此查询可以更清晰地编写为

代码语言:javascript
复制
select distinct ?syn where {
  ?syn (dbpedia-owl:wikiPageDisambiguates|^dbpedia-owl:wikiPageDisambiguates)* dbpedia:name
}

该查询要求查找与dbpedia-owl:wikiPageDisambiguates dbpedia连接的所有内容:按任意方向的属性路径命名

获取维基百科文章URL

实际上我想检索整个维基百科页面。例如:当我在另一种语言中找到一个名称时,我想转到相应的wikipedia页面并检索其相应的页面。

如果您真的想检索页面(使用其他库或其他任何东西),那么只需获取Wikipedia的文章URL即可。这是foaf:isPrimaryTopicOf属性的值。例如,如果您查看约翰尼·卡什的属性值,您将看到

代码语言:javascript
复制
http://dbpedia.org/resource/Johnny_Cash foaf:isPrimaryTopicOf http://en.wikipedia.org/wiki/Johnny_Cash

基于此,听起来您可能更需要一个查询,类似于:

代码语言:javascript
复制
select distinct ?page where {
  ?syn (dbpedia-owl:wikiPageDisambiguates|^dbpedia-owl:wikiPageDisambiguates)* dbpedia:name ;
       foaf:isPrimaryTopicOf ?page

}

那么的每个值都应该是您可以下载的维基百科文章URL。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28679718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档