В Protégé (в любом случае, 4.2.0, но я бы ожидал, что то же самое верно и для 4.3) вам не нужно добавлять префикс swrlb:
в редакторе.Просто используй greaterThan
.Например, если вы введете это в редакторе:
ты получишь:
Вопрос
Я использую Protege 4.3 и SWRL, чтобы установить некоторые правила с использованием Pellet в качестве аргумента.
Я пытаюсь использовать встроенные SWRL, но я вообще не могу заставить это работать.
Правило правильное, но Protege, похоже, вообще не распознает встроенный (напримерswrlb: Больше, чем)
Не могли бы вы проинформировать меня о процессе, необходимом для того, чтобы Protege 4.3 идентифицировал встроенные SWRL?
Вот пример правила:
Asset(?p), id(?p, ?x), swrlb:greaterThan(?x, 10) -> State(?p)
Моя проблема в том, что он, похоже, вообще не распознает swrlb:greaterThan
.Ошибка гласит:
Исключение OWLRuntimeException:org.protege.editor.owl.model.classexpression.OWLExpressionParserException:Встреченный swrlb: больше, чем в столбце 30 строки 1.
Решение 2
В Protégé (в любом случае, 4.2.0, но я бы ожидал, что то же самое верно и для 4.3) вам не нужно добавлять префикс swrlb:
в редакторе.Просто используй greaterThan
.Например, если вы введете это в редакторе:
ты получишь:
Другие советы
Класс:Состояние
id some xsd:int[> "10"^^xsd:int]
В настоящее время Protege (я использую версию 5.5.0) не поддерживает swrlb для рассуждений (Hermit, Pellet, ...).Ты можешь:
Теперь вы должны увидеть объекты с идентификатором>10 с надписью "State" в списке типов