2016-04-05 11 views
1

У меня есть эта аксиома в моей онтологииНазначения последовательности в OWL, используя Protege

:drug :givenAs (({dose1}) or ({dose2}) or ({dose3})) 
and (not ({dose4})) 

Синтаксис не является правильным, как на черепаху, но я надеюсь, что вы получите точку.

Я хотел бы утверждать, что доза 1 сопровождается дозой 2, а затем дозой 3.

Я проверил Modelling sequence order in OWL-DL ontology, но это точно не решит мой случай. Это потому, что я имею дело только с людьми, а не с классами в этом случае.

Что такое элегантный способ утверждения последовательности?

Аксиома предназначена для идентификации ошибок в записях данных. Например, я хотел бы онтологию, чтобы указать на ошибку, если есть :drug :givenAs :dose2 . без :drug :givenAs :dose1 .

UPDATE 1

Я попытался hasNext свойство, как предложено. Я могу связать лиц, использующих свойство. Тем не менее, я не уверен, что это относится к моему контексту:

Class: SequenceItem 
    EquivalentTo: 
     hasNext only SequenceItem 

Я не класс и хочу, чтобы избежать его, если это необходимо. Как я все еще назначаю последовательность?

ОБНОВЛЕНИЕ 2

Я добавил класс аксиомой, как упоминалось. Причины не находят ошибки. Однако они также не идентифицируют ошибочные записи, где доза 2 предшествует дозе1. Я утверждал, что класс Dose эквивалентно:

Dose 
and hasNext only Dose 

Этот вопрос, как мне кажется, я не утверждаю, в любом месте, что ни dose2 не возможно, до dose1 и не dose3 не возможно, до dose2 и так далее.

ответ

1

Добавление hasNext собственности ala Modelling sequence order in OWL-DL ontology будет работать так же хорошо. Просто сообщите hasNext о физических лицах (см. Последний параграф).

Другой способ указания заказа осуществляется через список RDF, то есть (:dose1 ;dose2 :dose3). Список представляет собой упорядоченный список, и вы можете использовать rdf: first/rdf: rest для запроса элементов по порядку.

Последняя идея - указать свойство заказа. Подобно hasList раствору добавляют sequenceNum свойство может быть добавлен прикрепленным к объектам дозы, например .:

:dose1 :sequenceNum 1 . 
:dose1 :sequenceNum 2 . 
:dose1 :sequenceNum 3 . 

Затем используйте нумерацию для определения, которое происходит перед другим.

 Смежные вопросы

  • Нет связанных вопросов^_^