OWL Одно и то же свойство объекта для разных классов - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь преобразовать диаграмму классов UML в Ontoloy, и у меня есть вопрос.

Допустим, у меня есть следующие настройки:

        rel1
ClassA ------> ClassB

        rel1
ClassC ------> ClassD

Для первого случая, который я преобразовалОтношение "rel1" к свойству объекта выглядит следующим образом:

_x:rel1 rdf:type owl:ObjectProperty ;
    rdfs:domain _x:ClassA ;
    rdfs:range _x:ClassB .

Но я не знаю, что делать со вторым.То, что я хочу иметь: rel1 имеет пару диапазон доменов (ClassA, ClassB) ИЛИ (ClassC, ClassD).Сначала я подумал об использовании объединения, но оно не моделирует его соответствующим образом, потому что такие комбинации, как (ClassA, ClassD) или (ClassC, ClassB), могут быть возможны.

Я надеюсь, что кто-то может помочь.

Спасибо, Джон

1 Ответ

0 голосов
/ 25 мая 2018

Ваша ассоциация rel1 говорит, что она имеет в качестве домена объединение ClassA и ClassC с диапазоном объединения ClassB и ClassD, которое можно указать следующим образом:

ObjectProperty: rel1
  Domain: ClassA or ClassC
  Range: ClassB or ClassD

Основным преимуществом определения ограничений домена и диапазона для свойства является то, что, если через это свойство связаны 2 человека, рассуждатель может вывести типы людей.Указание домена и диапазона, как указано выше, не позволит это сделать, потому что ClassA or ClassC является анонимным классом, и рассуждатели обычно делают выводы только для именованных классов, а не для анонимных классов.Чтобы обойти это, вы можете сделать следующее:

Class: Rel1Domain 
  EquivalentTo: ClassA or ClassC

Class: Rel1Range 
  EquivalentTo: ClassB or ClassD

ObjectProperty: rel1
  Domain: Rel1Domain
  Range: Rel1Range    
...