Подключите Protege для создания / редактирования ограничений и конструкторов SPIN?

Есть ли плагин или другие средства для создания и редактирования ограничений и конструкторов SPARQL/SPIN в Protege?

Насколько я понимаю, для захвата ограничений SPIN в RDF необходимо проанализировать и закодировать код SPARQL для запросов ASK или CONSTRUCT. Он не хранится в виде непрозрачной строки. Следовательно, может показаться, что потребуется какой-нибудь плагин со знанием SPARQL и SPIN.

Я загрузил RDF из Topbraid Composer, включая ограничения SPIN, в Protege 4.3.0, и кажется, что ограничения видятся как аннотации, но я не могу найти все детали, критически включая весь лежащий в основе код SPARQL. Я вижу это при редактировании текста в файле RDF.

В широком смысле я пытаюсь найти способ создавать / редактировать ограничения и конструкторы SPIN и загружать их в Sesame, чтобы они работали с индивидуумами, созданными из моих классов. Я отправил еще один вопрос о пути из TopBraid Composer в Сезам. Я стараюсь, чтобы мои вопросы были более конкретными, так как я новичок в Stack Overflow.

Кстати, нет, я не хочу использовать вместо этого SWRL. У меня были проблемы с выражением ограничений, которые мне нужны, используя SWRL. У меня был успех с использованием SPARQL.

Благодарю.

1 ответ

В некоторых версиях TopBraid Composer будет хранить ограничения SPIN в RDF по умолчанию. Учитывая, что запрос хранится как тройки RDF, не должно возникнуть проблем с их хранением в любом хранилище данных RDF. Применение ограничений SPIN - это другая проблема, так как система должна знать, как интерпретировать запросы для различных свойств SPIN.

Вы уверены, что не можете "увидеть" их в протеже или кунжуте? Ограничения определяются для класса с помощью свойства spin:constraint и должен появиться как узел. Убедитесь, что вы также импортируете http://spinrdf.org/spin или, по крайней мере, определите свойство с именем spin:constraint, По крайней мере, следующее должно всегда работать, чтобы найти ваши ограничения:

SELECT ?constraint ?class
WHERE {
   ?class <http://spinrdf.org/spin#constraint> ?constraint
}

...где ?constraint связан с узлом, представляющим ограничение в RDF и ?class это класс, для которого определено ограничение.

Кроме того, если вы предпочитаете хранить ограничения в виде строк SPARQL, см. Параметры> TopBraid Composer > SPIN и установите один из флажков в поле "Создать sp: текст...". Затем вы можете получить текст запроса с помощью следующего запроса:

SELECT ?query ?class
WHERE {
   ?class <http://spinrdf.org/spin#constraint> ?constraint .
   ?constraint <http://spinrdf.org/sp#text> ?query
}
Другие вопросы по тегам