【问题标题】:Associate a property with a class in OWL/Protege将属性与 OWL/Protege 中的类关联
【发布时间】:2019-07-30 17:30:57
【问题描述】:

考虑这种情况:

  • 有雇主和雇员。我用一个类Employer 和一个类Employee 对此进行建模。
  • 然后我创建一个对象属性hasEmployer 与逆hasEmployee
  • 现在我还创建了一个名为 EmploymentContract 的类。

我想说,对于每个hasEmployer 属性及其逆属性,都必须存在与该关系关联的EmploymentContract

所以基本上我想要一个名为hasEmploymentContract 的属性,它是一个域hasEmployer(一个对象属性)和范围EmploymentContract(一个类)的属性。

这在 OWL 中可行吗?我是不是把问题想错了?

如果可能的话,使用 Protege Ontology Editor 的实现也将不胜感激。

【问题讨论】:

  • ""hasEmploymentContract" 是一个属性,域为“hasEmployer”(一个对象属性),范围为“EmploymentContract”(一个类)” - 它只是定义域和OWL中对象属性的范围,为什么不可能?在 Protege 中打开本体,单击对象属性,只需设置域和范围。你试过这个还是什么不起作用?
  • 是的,这是我尝试的第一件事。域的唯一选项是类。我无法将属性输入为域。

标签: owl protege


【解决方案1】:

n-ary 关系是处理这个问题的一种方法。另一种是通过属性链接。为此,我将假设图表如下所示。这里链式属性providesEmploymentContract, hasEmployeeAsParticipant 代表属性hasEmployee。这意味着EmployerEmploymentContract 存在providesEmploymentContract 关系,其中EmploymentContracthasEmployeeAsParticipant 存在Employee 关系,EmployerhasEmployee 关系Employee

可以根据图为hasEmployer建立类似的关系。在 Protege 中,这可以表示如下:

Class: Employee    
Class: Employer    
Class: EmploymentContract

ObjectProperty: providesEmploymentContract
  Domain: Employer
  Range: EmploymentContract

ObjectProperty: agreesToEmploymentContract
  Domain:Employee
  Range: EmploymentContract

ObjectProperty: hasEmployerAsParticipant
  Domain: EmploymentContract
  Range: Employer

ObjectProperty: hasEmployeeAsParticipant
  Domain: EmploymentContract
  Range: Employee

ObjectProperty: hasEmployee
  SubPropertyChain: providesEmploymentContract o hasEmployeeAsParticipant
  Domain: Employer
  Range:  Employee
  InverseOf: hasEmployer

ObjectProperty: hasEmployer
  SubPropertyChain: agreesToEmploymentContract o hasEmployerAsParticipant
  Domain: Employee
  Range: Employer
  InverseOf: hasEmployee

【讨论】:

    【解决方案2】:

    尽管尖刻的 cmets 表明我很愚蠢,但似乎确实不可能直接实现此逻辑。 W3C 工作组已经确定了这个缺点,并发布了一份“工作组说明”,介绍了通过其他方式实现这种行为的设计模式,我最终发现了这一点。事实上,文件头部的一个例子与我的问题几乎相同:

    另一个例子是表示多个个体之间的关系,例如买家、卖家和在描述图书购买时所购买的物品。

    对于其他感兴趣的人,可以在此处找到该文档:https://www.w3.org/TR/swbp-n-aryRelations/

    【讨论】:

      猜你喜欢
      • 2014-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多