gpt4 book ai didi

python - 使用 dbpedia 返回查询的完整维基百科页面

转载 作者:行者123 更新时间:2023-12-01 04:49:59 25 4
gpt4 key购买 nike

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

#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
<小时/>

问题:

Is it possible to return the full wikipedia page for every element in the results_list?

最佳答案

简化您的查询

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 . }
}

这个查询可以更简洁地写为

select distinct ?syn where {
?syn (dbpedia-owl:wikiPageDisambiguates|^dbpedia-owl:wikiPageDisambiguates)* dbpedia:name
}

此查询表示查找通过任意方向的 dbpedia-owl:wikiPageDisambiguates 属性路径连接到 dbpedia:name 的所有内容。

获取维基百科文章 URL

I actually wanted to retrieve the whole wikipedia page. For example: When I find a name in a different language I want to Go to the corresponding wikipedia page and retrieve its corresponding page

如果您确实想要检索该页面(使用其他库或您拥有的任何库),那么您只需要获取维基百科文章 URL。这就是 foaf:isPrimaryTopicOf 属性的值。例如,如果您查看 Johnny Cash 的属性值,您会看到

http://dbpedia.org/resource/Johnny_Cash foaf:isPrimaryTopicOf http://en.wikipedia.org/wiki/Johnny_Cash

基于此,听起来您想要的查询更像是:

select distinct ?page where {
?syn (dbpedia-owl:wikiPageDisambiguates|^dbpedia-owl:wikiPageDisambiguates)* dbpedia:name ;
foaf:isPrimaryTopicOf ?page

}

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

关于python - 使用 dbpedia 返回查询的完整维基百科页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28679718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com