SPARQL-在启用推理时获取断言类



当推理在三元组存储中激活时,以下查询

SELECT ?classiri
WHERE {
    ex:myElement rdf:type ?classiri
}

将产生以下结果:

owl:Thing
ex:Animal
ex:Human
ex:MaleHuman

有没有一种方法可以只得到明确断言的公理作为结果?(在这种情况下,显然是ex:MaleHuman

请注意,推理不能关闭,还有其他原因,因为以上是需要推理的更复杂查询的一部分。

您不能确定它是实际断言的结果还是推断的结果,但您可以通过以下查询获得最具体的实例:

select ?class {
  :instance a ?class
  filter not exists {
    ?subclass rdfs:subClassOf ?class .
    filter (?subclass != ?class)
  }
}

这意味着要获得的值?class,从而不存在的值?子类(除了?class本身)是的子类?类:实例也属于该类。

相关

  • 检索最特定的实例类
  • Sesame:如何在查询过程中删除推理
  • 删除SPARQL中不需要的超类答案

最新更新