我想通过将从本体获取的wikidata资源ID提供给变量来查询带有SERVICE关键字的wikidata。我将wikidata id存储为我的本体中的字符串。通常,您需要通过使用前缀(例如wd:Q1048)告诉wikidata端点您想要哪个项目。在这里,我需要通过使用变量来完成此操作。 Wikidate没有用于存储实体ID的属性。所以我需要将Id作为查询中的主题。在下面?存储的变量是“wd:Q1048”。它是一个字符串,因此它不被识别为wikidata的元素。有什么方法可以用这种方式查询wikidata吗?
PREFIX lit: <http://purl.org/net/cnyt-literature#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX wd: <http://www.wikidata.org/entity/>
SELECT distinct ?writer ?play ?character ?wid ?child WHERE {
{
?writer lit:writerOf ?play .
?play lit:character ?character .
?character lit:wikidataUri ?uri . BIND (IRI(CONCAT("wd:",?uri)) as ?wid)
}
SERVICE <http://query.wikidata.org/sparql> {
?wid p:P40 ?child
}
}
LIMIT 50