Создатель правила Protege SWRL говорит: «Неожиданный персонаж»; имя класса содержит пробел - PullRequest
0 голосов
/ 09 мая 2018

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

equipment(?x)

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

machine tool(?x)

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

'machine tool'(?x)

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

Ответы [ 2 ]

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

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

msdl:MSDL_0000070(?x)
0 голосов
/ 09 мая 2018

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

...