繁体   English   中英

在 SPARQL 查询中列出每个 class 旁边的实例

[英]Listing instances next to each class in SPARQL query

我想编写一个 SPARQL 查询,它将给我一个列表,其中包含特定 class 的所有子类以及每个子类的所有实例。 例如,如果我有 class Animal 的子类 Dog 和 Cat 以及 Dog 的实例:Fido、Bowser 和 Cat:Fluffy、Whiskers 我希望 output 看起来像:

Dog  Fido Bowser

Cat  Fluffy Whiskers

我有一个查询来获取每个子类的所有实例:

SELECT ?class_label ?instance_label
WHERE {?anmlclass rdfs:subClassOf ex:Animal;
                 rdfs:label ?class_label.
        ?anml a ?anmlclass;
               rdfs:label ?instance_label.}

但这给了 output 之类的:

Dog Fido

Dog Bowser

有没有办法格式化结果,以便所有实例都显示在与相关 class 相同的行中?

来自UninformedUser 的评论

SELECT ?class_label (group_concat(?instance_label; separator=", ") as ?instances)
WHERE {
  ?anmlclass
      rdfs:subClassOf ex:Animal ;
      rdfs:label      ?class_label .         

  ?anml
      a          ?anmlclass ;               
      rdfs:label ?instance_label 
}
GROUP BY ?anmlclass

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM