首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DBpedia页面模板Sparql

DBpedia页面模板Sparql
EN

Stack Overflow用户
提问于 2015-01-12 02:37:38
回答 1查看 227关注 0票数 1

我试图使用SPARQL语法在dbpedia上运行一个查询,以查找某个模板的所有页面。似乎不起作用,我正在寻找dbpprop:wikiPageUsesTemplate的所有页面。有人知道如何纠正这个错误以正确查找模板吗?

代码语言:javascript
复制
SELECT ?name ?member_Of ?country ?lat ?lng ?link
WHERE {
?x dbpprop:wikiPageUsesTemplate "dbpedia:Template:Infobox_settlement" .
?x a <http://dbpedia.org/ontology/Settlement> .
?x foaf:name ?name .
?x dbpedia-owl:isPartOf ?member_Of.
?x dbpedia-owl:country ?country.
?x geo:lat ?lat .
?x geo:long ?lng .
?x foaf:isPrimaryTopicOf ?link .
}
LIMIT 2500 OFFSET 0

我也尝试过只通过dbprop运行它,但没有结果。

代码语言:javascript
复制
SELECT * WHERE {  ?page dbpprop:wikiPageUsesTemplate <http://dbpedia.org/resource/Template:Infobox_settlement> .  ?page dbpedia:name ?name .}

如果有人试图做类似的事情,也可以通过wiki实现,在这里您可以对所有结果进行分页。沉降

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-12 21:44:06

至少有两个问题:(i)您需要在地方使用IRIs,而不是字符串;(ii)您需要使用DBpedia使用的属性。

使用虹膜

在……里面

代码语言:javascript
复制
?x a <http://dbpedia.org/ontology/Settlement> .

代码语言:javascript
复制
?x foaf:isPrimaryTopicOf ?link .

您已经证明,您知道URI需要用<>编写,或者用前缀缩写。然而,

代码语言:javascript
复制
?x dbpprop:wikiPageUsesTemplate "dbpedia:Template:Infobox_settlement" .

肯定没用的。这是合法的SPARQL,因为字符串可以是三元组的对象,但是您几乎肯定需要IRI。

使用DBpedia的词汇表

这样的dbpprop:wikiPageUsesTemplate查询不返回结果:

代码语言:javascript
复制
select distinct ?template where {
 [] dbpprop:wikiPageUsesTemplate ?template
}

SPARQL结果

这很容易检查,并且快速确认没有任何数据可以与您的查询相匹配。你在哪里找到这房子的?你见过它在什么地方用过吗?我不相信您可以基于信息框模板来查询DBpedia。DBpedia与维基百科不一样,即使维基百科API支持它,也不意味着DBpedia有对应的API。DBpedia数据集属性上有一条注释说:

http://xx.dbpedia.org/property/wikiPageUsesTemplate (将改为http://dbpedia.org/ontology/wikiPageUsesTemplate)

但后一种属性似乎也没有在端点上使用。有关详细信息,请参阅我的回答 to 具有特定信息框的页面的Sparql查询语法

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

https://stackoverflow.com/questions/27894575

复制
相关文章

相似问题

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