【发布时间】:2016-12-05 18:51:25
【问题描述】:
给定:
三个猫头鹰类:emptyTask、task 和 userTask。
类之间的关系如下:userTask 是equivalentTo task - 这意味着userTask 中的所有个体也都在task 中。 emptyTask 是 subclassOf task。
但我想通过这种关系实现的是:来自userTask 的所有个人也都在task 中(完成,推理逻辑)。来自emptyTask 的所有个人都在task 中,但emptyTask 和userTask 彼此没有关系。它们在我的本体中没有任何关系。
使用 3 timesequalTo 不是我想要做的。希望你们能理解我想要实现的目标。
例如,这种关系在 Protege 中会是什么样子。 DL 中的答案可能会有所帮助,但我更喜欢实用的答案。这张照片可能有助于理解我想对所有个人说的话。 protege with hermit reasoner 截图:
这张图片显示了task 和userTask 之间的equivalentTo 关系。来自userTask 的所有人也在task 中(推理逻辑)
当我想用推理器打开task 时,我想查看来自userTask 和emptyTask 的所有 个人
当我想用推理器打开userTask 时,我只想看到来自task 的个人。
当我想用推理器打开emptyTask 时,我不想看到来自userTask 或Task 的个人。
问题是我应该如何设置彼此的关系来实现呢?
正如您所见,即使有 3 个类,它也无法正常工作。该按钮始终为灰色。我尝试了 2 个不同版本的 Protege!
【问题讨论】:
-
好的,如果我理解你的正确,你目前有
:UserTask owl:equivalentTo :Task和:EmptyTask rdfs:subClassOf :Task。我不清楚问题到底出在哪里。哪一部分工作不正常?请edit 使您的问题更具可读性。尝试将您的示例缩小到其核心。顺便说一句,这并不是要挑剔你:这是一项非常重要的技能,可以帮助你自己分析问题。 -
澄清一下:据我所知,目前的设置(你已经拥有的两个关系)足以做你想做的一切。那你怎么了?
-
使用子类时,来自 owl :class emptyTask 的所有实例都不在任务中。我希望 userTask 和 emptyTask 的所有实例都在 Task 中。但是 emptyTask 和 userTask 不应该互相共享实例。
-
问题出在 Protege 一方。我今天安装了最新版本,一切都很好。在我有一个测试版的 protege 桌面之前,它导致了故障。我使用 Jeen Broekstra 的关系,它工作正常
标签: rdf owl protege description-logic