You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SPARQL从Wikidata查询数值对应的单位(以沸点为例)

解决方法

错误原因

你之前的查询失败核心是属性误用:ps:P2102仅返回沸点的纯数值字面量,不包含单位等元数据。需要使用psv:P2102(属性声明值)获取完整的数量结构体节点,才能读取wikibase:quantityAmount(数值)和wikibase:quantityUnit(单位)属性。

方案1:返回所有沸点值及对应单位

SELECT 
  ?temperature ?unit ?unitLabel
WHERE {
  wd:Q153 p:P2102 ?statement.
  ?statement psv:P2102 ?quantityNode.
  ?quantityNode wikibase:quantityAmount ?temperature;
                wikibase:quantityUnit ?unit.
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "zh,en". }
}

运行后会返回两条结果:

  • 数值78.0,单位对应摄氏度
  • 数值173.0,单位对应华氏度

方案2:仅筛选摄氏度单位的沸点值

如果只需摄氏度结果,直接在查询中增加单位匹配规则即可,摄氏度对应的Wikidata实体ID为wd:Q25267:

SELECT 
  ?temperature
WHERE {
  wd:Q153 p:P2102 ?statement.
  ?statement psv:P2102 ?quantityNode.
  ?quantityNode wikibase:quantityAmount ?temperature;
                wikibase:quantityUnit wd:Q25267.
}

运行后直接返回乙醇的摄氏度沸点78.0。

内容的提问来源于stack exchange,提问作者RosA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:27:03