Как сделать рассуждение классов с цепочкой свойств - PullRequest
1 голос
/ 01 октября 2019

У меня есть онтология OWL2, сочетающая технологические процессы и численные модели. Мне нужно выяснить, какой процесс может быть смоделирован с какой моделью. Я ввел требования, которые выполняются процессом, в то время как модели имеют требования. Я могу сделать это с людьми, но не с классами.

Я использую Protege 5.1, Fact ++.

Классы:

  • Процессы

    • Proc1 EquivalentTo: Processes and (fulfillRestriction exactly 1 Req1)
  • Требования

    • Req1 Equivalent to Requirements and (hasTemperature exactly 1 (temperature only xsd:double[ "5.0"^^xsd:double , <= "150.0"^^xsd:double])
  • Модели

    • Модель1 EquivalentTo: Models and (hasRestriction exactly 1 Req1)

Теперь у меня есть свойство объекта:

ObjectProperty: testIsModelOf SubPropertyChain: hasRestriction o inverse (fulfillRestriction)

Я определил лиц:

Individual: mod1

    Types: Model1

    Facts: hasRestriction  requir1

Individual: requir1

    Types: Req1

Individual: process1

    Types: 
        Proc1

    Facts: fulfillRestriction  requir1

Запрашиваемая (с помощью DLQuery):

Models that testIsModelOf some Proc1

Если я определю лиц для этих трех классови определить свойства объекта между ними, результат будет таким, как ожидалось (DLQuery говорит, что mod1 является экземпляром Models that testIsModelOf some Proc1). Я ожидал, что также получу класс Model1 в качестве прямого подкласса (или эквивалентного класса?) Результата запроса, но этого не произойдет. Можно ли получить класс не только индивидуальный - без SWRL?

...