Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在推理公理和显式公理之间伪装?_Java_Ontology_Owl Api_Reasoning_Inferred Type - Fatal编程技术网

Java 如何在推理公理和显式公理之间伪装?

Java 如何在推理公理和显式公理之间伪装?,java,ontology,owl-api,reasoning,inferred-type,Java,Ontology,Owl Api,Reasoning,Inferred Type,我有一个关于使用OWLAPI和推理机的基本问题 我尝试了JFact Reasoner,成功地运行了它,并获得了许多公理(其中一些公理是推断出来的,一些公理是在原始本体中明确说明的) 我需要区分它们,但我真的找不到任何方法 OWLClass或其他地方是否有任何方法?断言的公理与推断的公理不同,只是因为它们显式地存在于本体中 您可以通过以下方式检查本体中是否存在公理: OWLOntology o = ... OWLAxiom ax = ... boolean asserted = o.contain

我有一个关于使用OWLAPI和推理机的基本问题

我尝试了JFact Reasoner,成功地运行了它,并获得了许多公理(其中一些公理是推断出来的,一些公理是在原始本体中明确说明的)

我需要区分它们,但我真的找不到任何方法


OWLClass或其他地方是否有任何方法?

断言的公理与推断的公理不同,只是因为它们显式地存在于本体中

您可以通过以下方式检查本体中是否存在公理:

OWLOntology o = ...
OWLAxiom ax = ...
boolean asserted = o.containsAxiom(ax);

注意:如果一个axiom有注释,它可能不会被This方法匹配:语义上等价但注释不同的axiom彼此之间不是
equals()
(这是W3C规范,不是OWL API决定)。在这种情况下,您可以发现是否使用
o.containsAxiomIgnoreAnnotations(ax)

断言了一个axiom,这就是我想要的,尽管我希望得到更好的解决方案(比如一些指示标志)。。。但我主要需要检查三个。有可能这样做吗?在三个级别上很难做到这一点-它们没有直接暴露在OWLAPI中。您必须将本体和公理呈现为三元组并检查包含,同时考虑具有不同标识的空白节点。在渲染器包中有三倍流的代码,但其余部分需要大量编码。