为什么在Protege中可视化的推论与导出的推断公理不同

时间:2017-03-03 17:26:09

标签: ontology protege owl-api inference reasoning

我有一个本体,有两个主要类(代码和主题)和一个对象属性(主题获得代码),其中:

  • 代码(类)包含所有可用代码(实例)
  • 代码(类)子类对这些代码(实例)进行分类;手动指定
  • 主题(类)包含所有可用主题(实例)
  • 每个主题(实例)已声明(获得属性)某些代码(实例)
  • 主题(类)子类根据相关代码(实例)和代码'代码类别效忠
  • 定义主题集(实例)
  • 推理者即将推断主题实例对特定群体(主题的子类)的断言

当我在Protege中启动推理器时,推断的实例被断言到最深的主题子类,该实例仍然符合约束(参见附件Figure)。但是,如果我将推断的公理导出到单独的本体中,则每个主题子类都包含其自身及其后代的所有实例(显然,使用JAVA OWL API会观察到相同的行为)。

我的问题是:为什么结果会有所不同?我理解两种情况的逻辑,但我不明白为什么它们不同。是否有任何方法可以导出Protege中显示的推论?如果没有直接的方式,我可以从OWL API以某种方式迫使隐士(或其他推理者)向我展示完全相同的“黄色保护”结果吗?到目前为止,我发现只有一种解决方法 - 按原样导出推断,然后通过SPARQL请求差异。

我正在使用Protege 5.0.0,Reasoner Hermit 1.3.8和OWL API 5.0.5(虽然获得了不同的reasoners相同的结果:Fact ++,Pellet;以及不同的OWL API和Protege版本:4.x)< / p>

我会很高兴任何评论,即使一个简单的解释也会对我有所帮助。

1 个答案:

答案 0 :(得分:0)

导出的公理取决于所使用的推断公理生成器集 - Protege可能使用与您选择的公式不同的集合。

这组发电机可在面板中配置;它的初始化看起来像这样:

    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的那些。