Создатель правила Protege SWRL говорит: "Неожиданный персонаж"; имя класса содержит пробел

На вкладке SWRL в Protege я пытаюсь написать правило, но я могу сделать это только с классами, в которых нет пробелов. Например, в моей онтологии есть класс "equipment", поэтому я могу сделать это без ошибок:

equipment(?x)

У меня также есть класс под названием "станок". Поскольку этот класс является пробелом в своем имени, он говорит "Недопустимый предикат атома SWRL 'machine'", когда я делаю это:

machine tool(?x)

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

'machine tool'(?x)

Как мне обратиться к классу, если в имени класса есть пробел? Можно ли как-то ссылаться на него с помощью URI?

2 ответа

Решение

ОК, я понял это. Мне пришлось обновить плагин SWRLTab в Protege, а затем я мог ссылаться на класс по его URI следующим образом:

msdl:MSDL_0000070(?x)

machine tool это не имя класса в вашей онтологии, это значение свойства rdfs:label (или rdfs:comment), прикрепленного к классу. Редактор не позволяет вам использовать это (что было бы удобно, я думаю). Обходной путь - найти фактический IRI класса и использовать его, сокращенный до его QName, если это работает.

Другие вопросы по тегам