Как можно использовать функцию замены в SPARQL 1.1, особенно в обновить команды?
Например, если у меня есть несколько троек ?s ?p ?o, где ?o — строка, и для всех троек, где ?o содержит строку «gotit», я хочу вставить дополнительную тройку, где «gotit» заменено на «иметь», как я мог это сделать? Я пытаюсь добиться этого, это 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, к сожалению, не содержит примера использования этой функции.
Возможно ли вообще использовать функции для создания новых значений, а не только для проверки существующих значений, и если да, то как?