Как использовать функцию замены в SPARQL 1.1, особенно в командах обновления?
Например, если у меня есть несколько троек? s? p? o где? o - строка и для всех троек, где? o содержит строку "gotit", я хочу вставить дополнительную тройку, где "gotit" заменен на "hadit", как я мог это сделать? Я пытаюсь достичь этого - это Sesame 2.6.0.
Я пробовал этот наивный подход:
INSERT { ?s ?p replace(?o,"gotit","haveit","i") . }
WHERE { ?s ?p ?o . FILTER(regex(?o,"gotit","i")) }
но это вызвало синтаксическую ошибку.
Я также не смог использовать замену в списке результатов запроса следующим образом:
SELECT ?s ?p (replace(?o,"gotit","haveit","i") as ?r) WHERE { .... }
В документе SPARQL, к сожалению, нет примера использования этой функции.
Возможно ли вообще использовать функции для создания новых значений, а не только для проверки существующих значений, и если да, то как?