我正在尝试为生物医学本体中的所有节点提取路由到顶部的谱系。有时关系是subClassOf,有时它们是part_of(或者甚至可能是其他东西。)
我希望在单个查询中反映所有这些关系,但是我收到了一个Virtuoso错误:
Virtuoso 37000 Error SQ156: Internal Optimized compiler error : unknown table for a column dfe in sqldf.c:1451.
用于以下查询:
prefix bto: <http://purl.obolibrary.org/obo/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix obo1: <http://data.bioontology.org/metadata/obo/>
select (group_concat(distinct ?midlab ; separator = "|") AS ?lineage)
where
{
{ bto:BTO_0000207 rdfs:subClassOf* ?mid }
UNION { bto:BTO_0000207 obo1:part_of* ?mid } .
?mid rdfs:subClassOf* ?class .
?mid rdfs:label ?midlab .
}
group by ?lineage
order by (count(?mid) as ?ordercount)
我找到了这个bug report,但我不知道它是否相关: