Class 关系 OWL

Class relations in OWL

鉴于:

三个 owl 类:emptyTasktaskuserTask

类 之间的关系如下: userTaskequivalentTo task - 这意味着 userTask 中的所有个体也都在taskemptyTasksubclassOf task.

但我想通过这种关系实现的是:来自 userTask 的所有个人也在 task 中(完成,推理逻辑)。来自 emptyTask 的所有个体都在 task,但 emptyTaskuserTask 彼此没有关系。它们与我的 Ontology 没有任何关系。

使用 3 倍 equivalentTo 不是我想要做的。希望你们能理解我想要实现的目标。

例如,这种关系在 Protege 中会是什么样子。 DL 中的答案可能会有所帮助,但我更喜欢实际的答案。这张照片可能有助于理解我想对所有个人说的话。来自 protege with hermit reasoner 的截图:

这张图片显示了 taskuserTask 之间的 equivalentTo 关系。来自 userTask 的所有个体也在 task(推理逻辑)

当我想用推理机打开 task 时,我想看到来自 userTaskemptyTask

所有 个人]

当我想用推理机打开 userTask 时,我只想看到来自 task 的个人。

当我想用推理机打开 emptyTask 时,我不想看到来自 userTaskTask 的个人。

问题是我应该如何设置相互之间的关系来实现呢?

编辑: screen 1 Screen 2

如您所见,即使使用 3 类 它也无法正常工作。该按钮始终为灰色。我尝试了 2 个不同版本的 Protege!

如果 userTask 等同于 task,则 emptyTask 不可能是 task 的子class 并且与 userTask 没有关系。

考虑任务实例 t。

t 是您的子class 公理的任务实例。根据您的等效性,任务的所有实例都是 userTask 的实例。如果 t 不是 userTask 的实例,那么根据您的等效性,它也不是 task 的实例。

这会导致冲突:t 是和不是 task 的实例。这会使 ontology 不一致。

您的意思是将 userTask 作为任务的单独子 class 吗?

在曼彻斯特语法中,不相交的并集如下所示:

Class: <http://iri/#b>
Class: <http://iri/#c>
Class: <http://iri/#d>

Class: <http://iri/#a>
    DisjointUnionOf: 
        <http://iri/#b>, <http://iri/#c>, <http://iri/#d>

不相交的并集相当于声明主 class 等同于所有提到的 class 的并集,并声明这些 class 不相交。因此,您可以在不显式使用不相交并集公理的情况下获得相同的结果。

Protege 应该也允许您在其 GUI 中创建这些公理。

Class: <http://www.yawlfoundation.org/yawlschema#emptyTask>,
Class: <http://dkm.fbk.eu/index.php/BPMN2_Ontology#userTask>
Class: <http://www.yawlfoundation.org/yawlschema#ExternalTaskFactsType>

DisjointUnionOf:
    <http://www.yawlfoundation.org/yawlschema#emptyTask>,
    <http://dkm.fbk.eu/index.php/BPMN2_Ontology#userTask>

关系: userTask 是 owl:equivalentTo ExternalTask​​Factstype

当我从我的记事本将其复制到我的 Ontology 时不起作用。我试图休耕你的方法。我复制了 DisjointUnionOf 部分。