在 SPARQL 查询中每个 class 旁边列出实例
Listing instances next to each class in SPARQL query
我想编写一个 SPARQL 查询,它将给我一个列表,其中包含特定 class 的所有子class 和每个子class 的所有实例。例如,如果我有 class 动物和子 classes Dog 和 Cat 以及 Dog 的实例:Fido、Bowser 和 Cat:Fluffy、Whiskers 我希望输出看起来像:
Dog Fido Bowser
Cat Fluffy Whiskers
我有一个查询来获取每个子项的所有实例class:
SELECT ?class_label ?instance_label
WHERE {?anmlclass rdfs:subClassOf ex:Animal;
rdfs:label ?class_label.
?anml a ?anmlclass;
rdfs:label ?instance_label.}
但这会产生如下输出:
Dog Fido
Dog Bowser
有没有办法格式化结果,使所有实例都显示在与相关 class 相同的行中?
来自 by 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
我想编写一个 SPARQL 查询,它将给我一个列表,其中包含特定 class 的所有子class 和每个子class 的所有实例。例如,如果我有 class 动物和子 classes Dog 和 Cat 以及 Dog 的实例:Fido、Bowser 和 Cat:Fluffy、Whiskers 我希望输出看起来像:
Dog Fido Bowser
Cat Fluffy Whiskers
我有一个查询来获取每个子项的所有实例class:
SELECT ?class_label ?instance_label
WHERE {?anmlclass rdfs:subClassOf ex:Animal;
rdfs:label ?class_label.
?anml a ?anmlclass;
rdfs:label ?instance_label.}
但这会产生如下输出:
Dog Fido
Dog Bowser
有没有办法格式化结果,使所有实例都显示在与相关 class 相同的行中?
来自
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