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

时间:2016-04-13 17:43:27

标签: sparql rdf owl reasoning

在triplestore中激活推理时,请执行以下查询

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

将产生结果:

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

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

请注意,除了其他原因之外,无法关闭推理,因为上述内容是需要推理的更复杂查询的一部分。

1 个答案:

答案 0 :(得分:2)

您无法确定它是否与推断的结果相比是实际的断言结果,但您可以通过以下查询获取最具体的实例:

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

这样可以获得?class 的值,这样就没有?subclass 的值(?class 本身除外) :实例所属的?class 的子类。

相关