特に更新コマンドで、SPARQL 1.1の置換機能をどのように使用できますか?
たとえば、いくつかのトリプルがありますか?s?p?oここで、?oは文字列であり、?oに文字列「gotit」が含まれるすべてのトリプルに対して、「gotit」が「 haveit」、どうすればこれを行うことができますか?私はこれを達成しようとしています。Sesame2.6.0です。
私はこの素朴なアプローチを試しました:
INSERT { ?s ?p replace(?o,"gotit","haveit","i") . }
WHERE { ?s ?p ?o . FILTER(regex(?o,"gotit","i")) }
しかし、これにより構文エラーが発生しました。
また、次のようなクエリの結果リストでreplaceを使用できませんでした。
SELECT ?s ?p (replace(?o,"gotit","haveit","i") as ?r) WHERE { .... }
残念ながら、SPARQLドキュメントには、この関数の使用方法の例が含まれていません。
既存の値をテストするだけでなく、関数を使用して新しい値を作成することは可能ですか?はいの場合、どのように行いますか?