【问题标题】:Class relations in OWLOWL 中的类关系
【发布时间】:2016-12-05 18:51:25
【问题描述】:

给定:

三个猫头鹰类:emptyTasktaskuserTask

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

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

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

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

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

当我想用推理器打开task 时,我想查看来自userTaskemptyTask所有 个人

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

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

问题是我应该如何设置彼此的关系来实现呢?

编辑: screen 1 Screen 2

正如您所见,即使有 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


【解决方案1】:

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

考虑一个任务实例,t。

t 是您的子类公理的任务实例。任务的所有实例都是 userTask 的实例,由您等价。如果 t 不是 userTask 的一个实例,那么根据你的等价,你有它也不是一个 task 的实例。

这会导致冲突:t 是并且不是任务的实例。这会使本体不一致。

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

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

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>

不相交的联合相当于将主类声明为等价于所有提到的类的联合,并声明这些类不相交。因此,您无需显式使用不相交的联合公理即可获得相同的结果。

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

【讨论】:

  • 一个类可以是另一个类的实例吗?认为这仅适用于个人?
  • 这是双关语 - 有可能,但遵循不同的规则。
  • 你知道如何在我的例子中应用不相交的联合吗?
  • 我到电脑后会更新答案 - 在手机上很难输入曼彻斯特语法
  • Protege 不允许我使用为其提供的选项卡进行不相交联合,无论我使用哪个类,它总是灰色的(似乎有问题)。您能否以 owl manchester 语法提供此参考? Task 等价于 userTask(union)。任务也从emptyTask 中获得了实例。 EmptyTask 和 Task 是不相交的,我会在 tab 通用类公理中写这个
【解决方案2】:
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

当我将它从记事本复制到我的本体时不起作用。我试图放松你的​​方法。我复制了 DisjointUnionOf 部分。

【讨论】:

    猜你喜欢
    • 2018-11-12
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 2016-09-05
    • 1970-01-01
    相关资源
    最近更新 更多