通过SPARQL通过从另一个查询获得的资源标识符查询wikidata

时间:2017-07-26 14:30:49

标签: sparql wikidata

我想通过将从本体获取的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

0 个答案:

没有答案