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

如何通过SPARQL从DBpedia获取海拔最高的前十座山脉?

获取DBpedia上海拔最高的前十座山脉的SPARQL方案

嘿,别着急!你在珠穆朗玛峰页面没找到elevation或altitude属性是因为DBpedia对山脉海拔的标注用的是其他属性——主要是dbo:height(来自DBpedia本体),部分条目也会用dbp:elevation(DBpedia属性)。页面展示的属性可能不全,直接用SPARQL查询就能精准获取数据。

这里给你一个可以直接运行的SPARQL查询,能帮你拿到海拔最高的前十座山脉:

SELECT ?mountain ?name ?elevation
WHERE {
  ?mountain a dbo:Mountain .
  ?mountain rdfs:label ?name .
  ?mountain dbo:height ?elevation .
  FILTER(LANG(?name) = "en")
  FILTER(isNumeric(?elevation))
}
ORDER BY DESC(?elevation)
LIMIT 10

如果有些山脉条目用的是dbp:elevation而不是dbo:height,可以用COALESCE函数兼容两种属性,查询会更全面:

SELECT ?mountain ?name ?elevation
WHERE {
  ?mountain a dbo:Mountain .
  ?mountain rdfs:label ?name .
  OPTIONAL { ?mountain dbo:height ?h }
  OPTIONAL { ?mountain dbp:elevation ?e }
  BIND(COALESCE(?h, ?e) AS ?elevation)
  FILTER(LANG(?name) = "en")
  FILTER(isNumeric(?elevation))
}
ORDER BY DESC(?elevation)
LIMIT 10

对查询的简单解释:

  • ?mountain a dbo:Mountain:筛选出所有被归类为山脉的资源
  • ?mountain rdfs:label ?name:获取山脉的英文名称(通过FILTER(LANG(?name) = "en")限定)
  • COALESCE(?h, ?e):优先取dbo:height的值,如果没有就用dbp:elevation,确保不会漏掉数据
  • ORDER BY DESC(?elevation):按海拔从高到低排序
  • LIMIT 10:只返回前10条结果

你可以把这段代码复制到DBpedia的SPARQL端点页面执行,就能得到想要的列表啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:43:37