Alp*_*Alp 10 mediawiki wikipedia sparql dbpedia
给定维基百科的维基百科页面:Stack Overflow,通常有信息框(大部分位于页面顶部的右侧).截屏示例:

DBPedia将所有这些属性列为RDF三元组.您可以在DBPedia上看到示例:Stack Overflow.在那里,您会看到dbpprop:wikiPageUsesTemplate具有dbpedia:Template:Infobox_website有趣价值的房产.我想知道哪些维基百科页面使用此模板.我该怎么做并列出所有使用Infobox_website模板的页面?最好使用SPARQL查询,但我对其他简单的解决方案持开放态度.
接下来是所有Infobox模板的列表.维基百科:类别信息框模板显示了所需维基百科类别的层次结构 - 看起来像我正在寻找的.但我希望所有这些都是机器可读的格式,在一个页面上.也许DBPedia也是正确的吗?在DBPedia:类别信息模板和DBPedia:INFOBOX我发现很少的信息.但这些看起来很有希望.如何使用SPARQL查找所有信息框类型,以便我可以为每个信息重复执行第1步?
您可以使用它来测试SPARQL查询:http://dbpedia.org/snorql/
我似乎已经解决了问题1:SPARQL:列出所有使用Infobox_website的页面
此外,这似乎是问题2的查询:SPARQL:列出所有信息框
好吧,因为我似乎找到了一个解决方案(很可能不是最好的)我想分享它们.
1)此SPARQL查询可用于查找包含特定信息框类型的所有页面:
SELECT*WHERE {?page dbpedia2:wikiPageUsesTemplate <http://dbpedia.org/resource/Template:Infobox_website>.?页面dbpedia2:名称?名称.}
2)此SPARQL查询可用于查找所有Infobox类型:
SELECT DISTINCT?template WHERE {?page dbpedia2:wikiPageUsesTemplate?template.FILTER(正则表达式(?模板,"信息框")).ORDER BY?模板
之前的答案似乎已经失效了。不过,只需进行一点小小的更改即可让它们在http://live.dbpedia.org/sparql上的新 dbpedia 查询端点上工作。
要获取所有页面及其使用的模板的列表,此查询有效:
SELECT * WHERE { ?page dbpprop:wikiPageUsesTemplate ?template . }
Run Code Online (Sandbox Code Playgroud)
如果您正在寻找特定模板:
SELECT * WHERE {
?page
dbpprop:wikiPageUsesTemplate
<http://dbpedia.org/resource/Template:Infobox_website> .
}
Run Code Online (Sandbox Code Playgroud)
对于我的用例,我对 Wikipedia URL 而不是 DBPedia 页面感兴趣,因此我使用以下查询:
SELECT ?wikipedia_url WHERE {
?page
dbpprop:wikiPageUsesTemplate
<http://dbpedia.org/resource/Template:Infobox_website> .
?page foaf:isPrimaryTopicOf ?wikipedia_url .
}
Run Code Online (Sandbox Code Playgroud)
我还用来curl将结果提取到脚本中:
$ curl -s "http://live.dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=SELECT+%3Fwikipedia_url+WHERE+%7B+%0D%0A%09+%3Fpage+%0D%0A%09+dbpprop%3AwikiPageUsesTemplate+%0D%0A%09+%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FTemplate%3AInfobox_website%3E+.+%0D%0A+%3Fpage+foaf%3AisPrimaryTopicOf+%3Fwikipedia_url+.%0D%0A%0D%0A%09%7D&format=text%2Ftab-separated-values" \
| tr -d \" | grep -v "^wikipedia_url$" | head
http://en.wikipedia.org/wiki/U.S._News_&_World_Report
http://en.wikipedia.org/wiki/FriendFinder
http://en.wikipedia.org/wiki/Debkafile
http://en.wikipedia.org/wiki/GTPlanet
http://en.wikipedia.org/wiki/Lithuanian_Wikipedia
http://en.wikipedia.org/wiki/Connexions
http://en.wikipedia.org/wiki/Hypno5ive
http://en.wikipedia.org/wiki/Scoop_(website)
http://en.wikipedia.org/wiki/Bhoomi_(software)
http://en.wikipedia.org/wiki/Brainwashed_(website)
Run Code Online (Sandbox Code Playgroud)
我不确定这是否给出了完整的结果集,因为它返回 1698 个结果,而wmflabs.org似乎建议应该有 4439 个结果。
对于问题的第二部分,只需对之前的查询进行一点小小的更改即可获取所有模板的列表:
SELECT DISTINCT ?template WHERE {
?page
dbpprop:wikiPageUsesTemplate
?template .
FILTER (regex(?template, "Infobox")) .
} ORDER BY ?template
Run Code Online (Sandbox Code Playgroud)