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

从DBpedia获取各国新冠疫情统计数据的SPARQL查询无结果求助

问题分析与修正方案

你的SPARQL查询无结果主要有两个核心问题:

1. 类引用错误

原查询中用dbp:location作为国家的类,但DBpedia中没有这个类,国家的标准本体类是dbo:Country(需引入dbo前缀,对应DBpedia本体命名空间)。

2. 属性匹配与数据完整性问题

原查询中的属性名称可能与DBpedia实际存储的新冠数据属性不完全匹配,且强制要求所有属性都存在,导致只要某一个属性缺失就无法返回结果。

修正后的查询(基础版)

PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>

SELECT DISTINCT ?country ?firstCase ?confirmedCases ?recoveryCases ?deaths
WHERE {
  ?country a dbo:Country ;
           dbo:firstCase ?firstCase ;
           dbp:confirmedCases ?confirmedCases ;
           dbp:recoveryCases ?recoveryCases ;
           dbp:deaths ?deaths .
}

兼容缺失数据的查询(推荐)

如果部分国家的康复/死亡数据缺失,可使用OPTIONAL关键字获取已有数据,避免无结果返回:

PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>

SELECT DISTINCT ?country ?firstCase ?confirmedCases ?recoveryCases ?deaths
WHERE {
  ?country a dbo:Country ;
           dbo:firstCase ?firstCase ;
           dbp:confirmedCases ?confirmedCases .
  OPTIONAL { ?country dbp:recoveryCases ?recoveryCases }
  OPTIONAL { ?country dbp:deaths ?deaths }
}

关键修正说明

  • 引入dbo前缀:用于调用DBpedia的标准本体类与属性(如dbo:Country、dbo:firstCase)
  • 替换类为dbo:Country:确保查询对象是国家实体
  • 使用OPTIONAL:适配DBpedia中部分国家新冠数据不完整的情况,保留有数据的字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:31:04