为什么 Protege 中可视化的推论与导出的推断公理不同 [英] Why the inferences visualised in Protege differ from the exported inferred axioms
问题描述
我有一个包含两个主要类(代码和主题)和一个对象属性(主题获得的代码)的本体,其中:
I have an ontology with two main classes (code and subject) and one object property (subject obtained code) where:
- 代码(类)包含所有可用的代码(实例)
- 代码的(类)子类对这些代码(实例)进行分类;手动指定
- 主题(类)包含所有可用的主题(实例)
- 每个主体(实例)都断言(获得的属性)一些代码(实例)
- Subject 的(class)子类根据相关联的代码(实例)和代码的代码类别效忠定义了主题(实例)的集合
- Reasoner 即将将主题实例的断言推断为特定组(主题的子类)
当我在 Protege 中启动一个推理器时,推断的实例被断言给最深的主题子类,该实例仍然满足约束(参见附件 图).但是,如果我将推断的公理导出到单独的本体中,每个主题子类都包含其自身及其后代的所有实例(显然,使用 JAVA OWL API 观察到相同的行为).
When I start a reasoner within Protege, inferred instances are asserted to the deepest subject subclass that the instance still meets the constraints (see attached Figure). But if I export inferred axioms into separate ontology, every subject subclass contains all instances of itself + its descendants (obviously, same behaviour is observed using JAVA OWL API).
我的问题是:为什么结果不同?我理解这两种情况的逻辑,但我不明白为什么它们不同.有什么方法可以导出 Protege 中显示的推论?如果没有直接的方法,我是否可以通过 OWL API 以某种方式强制 Hermit(或其他推理者)向我显示完全相同的黄色保护"结果?到目前为止,我只找到了一种解决方法 - 按原样导出推理,然后通过 SPARQL 询问差异.
My question is: Why the results are different? I understand the logic of both cases but I don't understand why they are different. Is there any way to export the inferences as they are shown in Protege? And if there is no direct way, may I force Hermit (or other reasoner) somehow from OWL API to show me exactly the same "yellow protege" results? So far, I've found only one workaround - to export inferences as they are and then ask for differences via SPARQL.
我正在使用 Protege 5.0.0、Reasoner Hermit 1.3.8 和 OWL API 5.0.5(尽管对不同的推理器获得了相同的结果:Fact++、Pellet;以及不同的 OWL API 和 Protege 版本:4.x)
I'm using Protege 5.0.0, Reasoner Hermit 1.3.8 and OWL API 5.0.5 (although same results were obtained for different reasoners: Fact++, Pellet; and different OWL API and Protege versions: 4.x)
我会很高兴收到任何评论,即使是一个简单的解释也会对我有很大帮助.
I'll be very glad for any comments, even a simple explanation will help me a lot.
推荐答案
导出的公理取决于所使用的一组推断公理生成器 - Protege 可能使用的一组与您选择的不同.
The exported axioms depend on the set of inferred axiom generators used - Protege might be using a different set from the one you've chosen.
一组生成器可在面板中配置;它的初始化看起来像这样:
The set of generators is configurable in a panel; its initialisation looks like this:
addCheckBox(new InferredSubClassAxiomGenerator(), true, false);
addCheckBox(new InferredEquivalentClassAxiomGenerator(), true, false);
addCheckBox(new InferredSubObjectPropertyAxiomGenerator(), true, false);
addCheckBox(new InferredSubDataPropertyAxiomGenerator(), true, false);
addCheckBox(new InferredEquivalentObjectPropertyAxiomGenerator(), true, false);
addCheckBox(new InferredEquivalentDataPropertiesAxiomGenerator(), true, false);
addCheckBox(new InferredObjectPropertyCharacteristicAxiomGenerator(), false, false);
addCheckBox(new InferredDataPropertyCharacteristicAxiomGenerator(), false, false);
addCheckBox(new InferredInverseObjectPropertiesAxiomGenerator(), false, false);
addCheckBox(new InferredClassAssertionAxiomGenerator(), false, false);
addCheckBox(new InferredPropertyAssertionGenerator(), false, true);
addCheckBox(new InferredDisjointClassesAxiomGenerator(), false, true);
我猜默认选中的就是那些标有 true 的.
I'm going to guess the selected ones by default are the ones marked with true.
这篇关于为什么 Protege 中可视化的推论与导出的推断公理不同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!