我使用以下命令从命令行使用jq
JSON 解析器从 Wikidata 获取某些软件的(最新)版本。
curl -sL "http://www.wikidata.org/w/api.php?action=wbgetentities&ids=$QID&languages=en&format=json" |
jq ".entities.$QID.claims.$PID""[0].mainsnak.datavalue.value"
其中$QID
是 Wikidata 条目$PID
的 ID,以及我们要打印的属性的 ID(在本例中为软件版本"P348")。
这通常工作正常,因为通常第一个声明 ( [0]
)P348
是最新版本,但例如对于“ Q13166 ”(WordPress),我们有几个关于软件版本的声明。如何获得最新的稳定而不是第一个索赔?
我可能应该(在我们有多个声明的情况下)找到第 i 个声明,其中版本类型“ P548 ”等于稳定版本“ Q12355314 ”。或者找出具有首选等级的蛤蜊。如何用 jq 做到这一点?有没有更简单的方法,例如向query.wikidata.org发送 SPARQL 查询?