【发布时间】:2012-05-29 08:43:06
【问题描述】:
如何使用 SPARQL 1.1 中的替换功能,尤其是在更新命令中?
例如,如果我有多个三元组 ?s ?p ?o ,其中 ?o 是一个字符串,并且对于所有 ?o 包含字符串“gotit”的三元组,我想在“gotit”所在的位置插入一个额外的三元组替换为“haveit”,我该怎么做?我正在努力实现这一目标是 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 文档没有包含如何使用此功能的示例。
是否有可能使用函数来创建新值而不仅仅是测试现有值,如果可以,如何?
【问题讨论】: