Come si può usare la funzione di sostituzione in SPARQL 1.1, specialmente nei comandi di aggiornamento?SPARQL 1.1: come utilizzare la funzione di sostituzione?
Ad esempio, se ho un numero di tripli? S? P? O dove? O è una stringa e per tutte le triple dove? O contiene la stringa "gotit" Voglio inserire una tripla aggiuntiva dove "gotit" è sostituito da "haveit", come potrei farlo? Sto cercando di raggiungere questo obiettivo è Sesame 2.6.0.
Ho provato questo approccio ingenuo:
INSERT { ?s ?p replace(?o,"gotit","haveit","i") . }
WHERE { ?s ?p ?o . FILTER(regex(?o,"gotit","i")) }
ma questo ha causato un errore di sintassi.
Ho anche omesso di utilizzare sostituire nella lista dei risultati di una query in questo modo:
SELECT ?s ?p (replace(?o,"gotit","haveit","i") as ?r) WHERE { .... }
Il documento SPARQL purtroppo non contiene un esempio di come utilizzare questa funzione.
È possibile utilizzare le funzioni per creare nuovi valori e non solo per verificare i valori esistenti e se sì, come?
Grazie per aver segnalato l'errore di usare? Name invece di? O .. Ho provato a semplificare una query effettiva per qui e ho dimenticato di cambiare il? Nome in? O. Ho provato la query utilizzando BIND con l'installazione di SESAME ma mi dà anche un errore di sintassi ... Dovrò capire se questo è supportato nella versione più recente! – Johsm
Ho appena provato questo e funziona benissimo in Sesame versione 2.6.5 con un repository OWLIM-Lite. – Johsm