问题描述
SELECT ?depthClass (count(?mid)-1 as ?depth)
WHERE {
{
SELECT ?root WHERE {
?root a owl:Class
FILTER NOT EXISTS {
?root rdfs:subClassOf ?superroot
filter ( ?root != ?superroot )
}
}
}
?depthClass rdfs:subClassOf* ?mid .
?mid rdfs:subClassOf* ?root .
}
group by ?depthClass
order by ?depth
应该返回类和给定类depthClass
的深度。但是,它不返回任何内容。我在查询中没有看到任何错误。
解决方法
调试之后,我注意到,由于我使用的是owlready2 rdflib实现,因此它可能不支持?root a owl:Class
语法,将其更改为?root rdf:type owl:Class
后,它便开始工作!