如何使用 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 文档没有包含如何使用此功能的示例。
是否有可能使用函数来创建新值而不仅仅是测试现有值,如果可以,如何?