按页面模板列出的dbpediasparql

按页面模板列出的dbpediasparql,sparql,dbpedia,Sparql,Dbpedia,我试图使用SPARQL语法在dbpedia上运行一个查询,以查找某个模板的所有页面。似乎不工作,我正在寻找所有带有dbpprop:wikiPageUsesTemplate的页面。有人知道如何更正此错误以正确查找模板吗 SELECT ?name ?member_Of ?country ?lat ?lng ?link WHERE { ?x dbpprop:wikiPageUsesTemplate "dbpedia:Template:Infobox_settlement" . ?x a <htt

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

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
选择lat lng链接国家/地区的成员名称
在哪里{
?x dbpprop:wikiPageUsesTemplate“dbpedia:Template:Infobox\u结算”。
?x a。
x foaf:名称?名称。
?x dbpedia owl:isPartOf?成员。
?x dbpedia猫头鹰:国家?国家。
?x地理位置:纬度?纬度。
x geo:long?液化天然气。
?x foaf:isPrimaryTopicOf?链接。
}
限值2500偏移量0
我还尝试仅通过dbprop运行它,但没有效果

SELECT * WHERE {  ?page dbpprop:wikiPageUsesTemplate <http://dbpedia.org/resource/Template:Infobox_settlement> .  ?page dbpedia:name ?name .}
选择*WHERE{?page dbpprop:wikiPageUsesTemplate。?page dbpedia:name?name.}

如果有人试图做类似的事情,也可以通过wiki api,在那里你可以对所有结果进行分页

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

使用虹膜 在

您已经演示过,您知道URI需要用
完整编写,或者用前缀缩写。但是,

?x dbpprop:wikiPageUsesTemplate "dbpedia:Template:Infobox_settlement" .
这肯定行不通。它是合法的SPARQL,因为字符串可以是三元组的对象,但您几乎肯定需要IRI

使用DBpedia的词汇表 像这样使用dbpprop:wikiPageUsesTemplate的查询不会返回任何结果:

select distinct ?template where {
 [] dbpprop:wikiPageUsesTemplate ?template
}

这很容易检查,并且可以快速确认没有可能与您的查询匹配的数据。你在哪里找到这个房子的?你在什么地方见过吗?我不相信您可以基于infobox模板查询DBpedia。DBpedia与Wikipedia不同,即使wikipediaapi支持DBpedia,也不意味着DBpedia有对应的版本。上面有一张便条,上面写着:

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


但后一个属性似乎也没有在端点上使用。有关更多详细信息,请参阅。

尝试删除部分查询模式,直到获得输出。然后,您可以确定导致缺少匹配项的零件。的可能重复;DBpedia似乎并没有通过端点提供这些信息。这是这里的主要问题,除了查询中的语法问题。啊,我明白了-谢谢你的帮助!
?x dbpprop:wikiPageUsesTemplate "dbpedia:Template:Infobox_settlement" .
select distinct ?template where {
 [] dbpprop:wikiPageUsesTemplate ?template
}