SPARQL查询未返回深度

问题描述

我有以下SPARQL查询

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后,它便开始工作!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...