SPARQL 从列表中获取数据

问题描述

我想列出口袋妖怪。我可以从维基数据上的 Pokemon 实体 (Q864) 访问列表 (wd:Q106036966)。

但我找不到检索该列表中数据的方法

一开始我以为可能没有添加数据,但是如果我搜索 Charmander(Q3178753),我可以到达层次结构中向上的列表。

有人知道我错过了什么吗?

解决方法

如果从Q3178753(Charmander)开始,可以看到它是Q25930490(火系神奇宝贝)的一个实例,它是Q3966183(神奇宝贝物种)的子类.

要列出所有神奇宝贝物种,您需要倒退:获取神奇宝贝物种的所有子类,然后获取这些子类的所有实例。 翻译成 SPARQL,这会像

SELECT ?item ?itemLabel {
  ?item wdt:P31/wdt:P279* wd:Q3966183                                                                                     
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
} 

如果你想要的不仅仅是 Pokémons 的名字,你可以扩展这个查询以获得例如身高、体重、图鉴等

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...