Как Sparql INSERT в TopBraid Composer?

Я пытаюсь вставить новые классы, используя Sparql в TopBraid Composer (ME 5.5.2). Моя простая онтология выглядит так:

Затем я написал запрос Sparql для вставки Berry как подкласс Fruit:

PREFIX ft: <http://www.semanticweb.org/ontologies/2018/7/fruit#>
PREFIX rdfs: <ttp://www.w3.org/2000/01/rdf-schema#>

INSERT
{ft:Berry    rdfs:subClassOf  ft:Fruit}

Но появилось сообщение об ошибке, говорящее Encountered "insert". Was expecting one of: "base, "select", ...

Аналогичный пост: данные вставки Sparql не работают, говорится, что Sparql Query отличается от языка Sparql Update. В другом посте говорится, что Sparql Update не поддерживается в Protege, но поддерживается в Composer (по этой причине я скачал Composer). Я также проверил руководство Composer: https://www.topquadrant.com/docs/TBC-Getting-Started-Guide52.pdf, в котором упоминается Обновление Sparql, но мало что сказано.

Тогда мой вопрос: можно ли вставить классы и аксиомы в TopBraid? Если так, то как? Моя конечная цель заключается в том, чтобы вставленные классы появлялись в иерархическом представлении, а их вставленные определения классов можно было увидеть и на стороне. Если Composer не может сделать это, какие другие инструменты / рабочие процессы я могу использовать?

Извините за такой вопрос новичка. Любая помощь приветствуется.

1 ответ

Решение

Есть две формы INSERT в SPARQL 1.1 Обновление:

  • INSERT DATA

  • INSERT

Вы смешиваете их.

Следующее работает для меня в TBC 5.5.2 Free Edition против kennedys.ttl пример:

INSERT DATA
    { kennedys:UralStateUniversity a kennedys:College }

Будучи неизвестным URI, тема подчеркивается в редакторе запросов, но просто нажмите кнопку "Выполнить SPARQL".

Обновить

В вашем конкретном случае вы должны сказать что-то вроде

INSERT DATA
    { ft:Berry rdfs:subClassOf ft:Fruit; a owl:Class }

Обратите внимание, что owl:Class используется. TBC рассматривает случаи rdfs:Class как "системные классы", их значки коричневые, а не желтые.

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