gpt4 book ai didi

sparql - 使用SPARQL,如何通过标识符选择节点,特别是在wikidata中?

转载 作者:行者123 更新时间:2023-12-02 08:58:47 25 4
gpt4 key购买 nike

使用Wikidata SPARQL service ,我想从维基数据中获取 50 个州的列表,其中包括哥伦比亚特区。我想出了一个kludgy query to do so :

#-- wdt:P31 = instance of;  wd:Q35657 = list of states

SELECT ?state ?stateLabel
WHERE {
{?state wdt:P31 wd:Q35657} UNION
{?state wdt:P3403 wd:Q3551781} . #-- coextensive with District of Columbia
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

我的查询有效,但我将 DC 提取到结果中的方式很丑陋。 (维基数据中数据的 future 更改可能会破坏此查询。)我想说的是类似

UNION {?state == wd:Q61}

直接包含Washington, D.C. (Q61) 。但是,作为 SPARQL 新手,我无法弄清楚执行此操作的 SPARQL 语法。如果您能帮助我重写此查询以直接提取 wd:Q61,我将不胜感激。

最佳答案

您可以使用SPARQL 1.1 BIND将固定资源添加到结果集中,即

SELECT ?state ?stateLabel WHERE {
{?state wdt:P31 wd:Q35657}
UNION
{BIND(wd:Q61 as ?state)}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

关于sparql - 使用SPARQL,如何通过标识符选择节点,特别是在wikidata中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41835912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com