Свяжите свойство с классом в OWL / Protege - PullRequest
0 голосов
/ 08 марта 2019

Рассмотрим этот сценарий:

  • Есть работодатели и работники.Я моделирую это с классом Employer и классом Employee.
  • Затем я создаю свойство объекта hasEmployer с обратным hasEmployee.
  • Теперь я также создаю класс с именем EmploymentContract.

Я хочу сказать, что для каждого свойства hasEmployer и его обратного должно существовать EmploymentContract связано с этим отношением.

Так что в основном я хочу что-то под названием hasEmploymentContract, которое является свойством с доменом hasEmployer (свойство объекта) и диапазоном EmploymentContract (класс).

Возможно ли это в OWL?Я думаю о проблеме не так, может быть?

Если возможно, реализация с использованием редактора онтологий Protege также будет высоко оценена.

Ответы [ 2 ]

1 голос
/ 09 марта 2019

n-арные отношения - один из способов справиться с этим.Другой - через цепочку собственности.Для этого я приму диаграмму, приведенную ниже.Здесь связанные свойства providesEmploymentContract, hasEmployeeAsParticipant представляют свойство hasEmployee.Это означает, что Employer, который находится в providesEmploymentContract отношении с EmploymentContract, где EmploymentContract находится в hasEmployeeAsParticipant с Employee, представляет собой Employer, который находится в hasEmployee отношении сEmployee.

enter image description here

Аналогичные отношения могут быть установлены для hasEmployer на основе диаграммы.В Протеже это можно представить следующим образом:

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
0 голосов
/ 08 марта 2019

Несмотря на язвительные комментарии, указывающие на то, что я был глуп, кажется, что действительно невозможно реализовать эту логику напрямую.Рабочая группа W3C определила этот недостаток и выпустила «Записку рабочей группы» о шаблонах проектирования для достижения этого поведения другими способами, которые я в итоге обнаружил.На самом деле пример в заголовке документа почти идентичен моему вопросу:

Другой пример представляет отношения между несколькими лицами, такими как покупатель, продавец и объект, который был куплен, когдаописание покупки книги.

Для всех, кто заинтересован, этот документ можно найти здесь: https://www.w3.org/TR/swbp-n-aryRelations/

...