You need to enable JavaScript to run this app. SPARQL查询如何将同一子类的所有实例与对应类展示在同一行
优惠活动
大模型
产品
解决方案
定价
更多

SPARQL查询如何将同一子类的所有实例与对应类展示在同一行

SPARQL 同类实例合并行查询调整方案

你可以通过SPARQL的分组聚合能力调整查询,核心是使用GROUP BY按类标签分组,搭配GROUP_CONCAT函数拼接同一类的所有实例标签,修改后的查询语句如下:

SELECT ?class_label (GROUP_CONCAT(?instance_label; separator=" ") AS ?instance_list)
WHERE {
    ?anmlclass rdfs:subClassOf ex:Animal;
               rdfs:label ?class_label.
    ?anml a ?anmlclass;
          rdfs:label ?instance_label.
}
GROUP BY ?class_label

逻辑说明

  • 原查询逐行返回类与实例的一一配对,新增的GROUP BY ?class_label会将所有属于同一个子类的结果归为同一组
  • GROUP_CONCAT函数会将同一组内的所有实例标签用指定的空格分隔符拼接为单个字符串,最终每行就对应一个子类+该类所有实例的列表

可选优化

如果同一个子类下存在重复的实例标签,可以在GROUP_CONCAT内部增加DISTINCT去重,写法为:
GROUP_CONCAT(DISTINCT ?instance_label; separator=" ")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 01:24:03