* Ivan Mikhailov
>
> The parameter name should be "query=", not "update=" . In addition, the
> supported syntax is "original" SPARUL, not SPARQL 1.1 variant, so it's
> INSERT DATA IN <graph> { <triples> } .
I'm having difficulty working out what the correct SPARUL syntax is. The
Virtuoso wiki links to this specification
http://jena.hpl.hp.com/~afs/SPARQL-Update.html
but that URL is dead. I can't find it in the Google cache, and but in the
Wayback Machine I find this:
http://web.archive.org/web/20080129222709/http://jena.hpl.hp.com/~afs/SPARQL-Update.html
The Virtuoso book actually gives the SPARQL BNF used by Virtuoso here
http://docs.openlinksw.com/virtuoso/rdfsparql.html
but unfortunately that BNF is not consistent with the SPARQL Update spec above.
According to the spec
load <http://example.org/rdf.xml> into <http://example.org/G>
is legal, but Virtuoso will not accept it, complaining about '<' after 'load'.
Looking at your BNF I find
LoadAction ::= 'LOAD' PrecodeExpn
Unfortunately, trying to trace the BNF downwards to see what PrecodeExpn is, I
eventually get to NumericExpn, which isn't defined.
If I "cheat" and look at "IRIRef" I get to Q_IRI_REF, which again isn't
defined. :-(
What is the correct syntax for load? I find that taking away the <> around the
IRI doesn't work, either. Virtuoso seems to assume the http:// URL is a qname.
I suppose I could work around it by defining a prefix, but that won't be
possible in all cases, and I shouldn't really have to.
Also, is there a more complete spec of the SPARQL Update language that Virtuoso
implements somewhere?
--
Lars Marius Garshol
[email protected]