问题标签 [hermit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
34 浏览

owl - 在 owl 中仅使用约束会导致不一致

我正在尝试模拟以下情况:

  • 学位可以是学士或硕士
  • 学生可能是本科生或硕士生
  • 学位可能有学生:学士学位只有本科生,反之亦然。

我想尝试使用“唯一”限制,因此我定义了学士学位,例如,等同于“只有学士学位学生”。因此,我使用 Protegé 生成了以下代码:

但是,当我启动推理器时,这会导致不一致。提供的解释如下: 不一致的解释 我无法弄清楚我做错了什么。我误解了“仅”的使用,还是有其他错误?

0 投票
0 回答
9 浏览

reasoning - HermIT 或 Pallet 推理器的推理解释选项

我是本体和知识库模型的新手。在 protege 应用程序中,我们有一个称为“解释推理”的选项。我想知道这个属性是否存在于owlready中。如果没有,我如何在 HermIT 或 Pallet Java API 中使用这个属性?

门生的截图

0 投票
1 回答
40 浏览

java - 使用 Java 推理器推断非平凡的 OWL 超类(或子类)断言

我想在 OWL 中表达以下 DL 断言

这意味着它A是 B 的子概念,并且所有实例都A必须R与其他事物有关系。

我用以下 OWL 本体来表达它:

我正在使用 HermiT 推理器以这种方式检索 的所有超类:A

但这只是打印:

我怎样才能获得有关的信息SubClassOf(:A ObjectSomeValuesFrom(:R owl:Thing))

PS我不能只列出本体中的包含断言,但我必须使用推理器(不一定是 HermiT)来推断它们。

0 投票
0 回答
38 浏览

owl - 使用 Protege 推断个人的存在

我正在尝试推断 Protege 中个人的存在,并且可以使用一些帮助。

考虑以下本体作为示例场景:人可能是兄弟姐妹。如果他们是兄弟姐妹,那么他们至少有一个共同/共同的父母。我用“CommonParent”的子类定义了一个名为“Person”的类。我将“兄弟”对象属性从一个“人”(域)定义到另一个“人”(范围),并将其标记为“对称”。我创建了三个人(Mike、Jerry、Suzie)并添加了两个关于一个人是另一个人的兄弟姐妹的断言。推理器(HermiT)正确地将个人分类为人,并添加了缺失的兄弟关系。

现在,我想做的是让推理者推断存在另一个(未命名的)实体作为每个兄弟对的“CommonParent”(没有我特别断言存在这样的个体)。这可能吗?我该如何处理?

门生截图

0 投票
1 回答
42 浏览

ontology - OWLAPI:用析取法对本体进行推理

我有一个个体a和 6 个类(A、B、C、D、E、F)的本体。个体属于以下析取:(A 或 B;C 或 D;E 或 F)。

有某种方法我怎么能从每个析取中推断出一个人必须属于两个类别之一?我试图创建一种状态,在这种状态下,来自本体的所有断言都将得到满足。例如a属于A, C, F。但是使用来自owlapi的推理函数getTypes是不可能的,因为它返回空的NodeSet。

我也尝试过 Hermit (ReasonerFactory()) 和 jFact (JFactFactory())。

我也尝试了以下方法:

但这只会返回 ObjectUnionOf 形式的 ClassExpression ,这无济于事,因为我需要原子类。

我知道推理器在这个函数中推断出个人总是属于的类。但是有什么方法可以从析取中决定它应该属于哪些类?我需要为任何本体构建一些模型,但我在推理器中找不到任何应该执行此操作或类似操作的函数。