Class 关系 OWL
Class relations in OWL
鉴于:
三个 owl 类:emptyTask
、task
和 userTask
。
类 之间的关系如下: userTask
是 equivalentTo
task
- 这意味着 userTask
中的所有个体也都在task
。 emptyTask
是 subclassOf
task
.
但我想通过这种关系实现的是:来自 userTask
的所有个人也在 task
中(完成,推理逻辑)。来自 emptyTask
的所有个体都在 task
,但 emptyTask
和 userTask
彼此没有关系。它们与我的 Ontology 没有任何关系。
使用 3 倍 equivalentTo 不是我想要做的。希望你们能理解我想要实现的目标。
例如,这种关系在 Protege 中会是什么样子。 DL 中的答案可能会有所帮助,但我更喜欢实际的答案。这张照片可能有助于理解我想对所有个人说的话。来自 protege with hermit reasoner 的截图:
这张图片显示了 task
和 userTask
之间的 equivalentTo
关系。来自 userTask
的所有个体也在 task
(推理逻辑)
当我想用推理机打开 task
时,我想看到来自 userTask
和 emptyTask
的 所有 个人]
当我想用推理机打开 userTask
时,我只想看到来自 task
的个人。
当我想用推理机打开 emptyTask
时,我不想看到来自 userTask
或 Task
的个人。
问题是我应该如何设置相互之间的关系来实现呢?
编辑:
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 ExternalTaskFactstype
当我从我的记事本将其复制到我的 Ontology 时不起作用。我试图休耕你的方法。我复制了 DisjointUnionOf 部分。
鉴于:
三个 owl 类:emptyTask
、task
和 userTask
。
类 之间的关系如下: userTask
是 equivalentTo
task
- 这意味着 userTask
中的所有个体也都在task
。 emptyTask
是 subclassOf
task
.
但我想通过这种关系实现的是:来自 userTask
的所有个人也在 task
中(完成,推理逻辑)。来自 emptyTask
的所有个体都在 task
,但 emptyTask
和 userTask
彼此没有关系。它们与我的 Ontology 没有任何关系。
使用 3 倍 equivalentTo 不是我想要做的。希望你们能理解我想要实现的目标。
例如,这种关系在 Protege 中会是什么样子。 DL 中的答案可能会有所帮助,但我更喜欢实际的答案。这张照片可能有助于理解我想对所有个人说的话。来自 protege with hermit reasoner 的截图:
这张图片显示了 task
和 userTask
之间的 equivalentTo
关系。来自 userTask
的所有个体也在 task
(推理逻辑)
当我想用推理机打开 task
时,我想看到来自 userTask
和 emptyTask
当我想用推理机打开 userTask
时,我只想看到来自 task
的个人。
当我想用推理机打开 emptyTask
时,我不想看到来自 userTask
或 Task
的个人。
问题是我应该如何设置相互之间的关系来实现呢?
编辑: 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 ExternalTaskFactstype
当我从我的记事本将其复制到我的 Ontology 时不起作用。我试图休耕你的方法。我复制了 DisjointUnionOf 部分。