当前位置:  开发笔记 > 编程语言 > 正文

使用SPARQL,如何通过identifer选择节点,特别是在wikidata中?

如何解决《使用SPARQL,如何通过identifer选择节点,特别是在wikidata中?》经验,为你挑选了1个好方法。

使用维基数据SPARQL服务,我想获得50个州的列表,并包括维基数据区的哥伦比亚特区.我想出了一个kludgy查询来做到这一点:

#-- 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提取到结果中的方式很难看.(未来维基数据中的数据更改可能会破坏此查询.)我希望能够说的是

UNION {?state == wd:Q61}

直接包括华盛顿特区(Q61).但是,作为一个SPARQL新手,我无法弄清楚这样做的SPARQL语法.我很感激任何帮助重写这个查询直接拉入wd:Q61.



1> AKSW..:

您可以使用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" }
}

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有