Fix conformance to SPARQL Update / Query's prefix declaration
Snippet of an example request:
PATCH https://example.org/test.ttl HTTP/1.1
Content-Type: application/sparql-update
PREFIX acl: <http://www.w3.org/ns/auth/acl#>
Snippet of an example response:
HTTP/1.1 400 Bad Request
X-Powered-By: solid-server/5.7.11
Accept-Patch: application/sparql-update
Content-Type: text/plain; charset=utf-8
Content-Length: 206
Patch document syntax error: Line 1 of <https://example.org/test.ttl>: Bad syntax:
Unknown syntax at start of statememt: 'PREFIX acl: <http://'/
at: "PREFIX acl: <http://www.w3.org/"
AFAICT, https://github.com/linkeddata/rdflib.js/issues/651 captures the issue in that NSS rejects SPARQL Update requests with valid payload using PREFIX (and accepts invalid payload containing @prefix).
note: lines beginning @prefix are also valid; they are just required to end with ., while lines beginning PREFIX (case-insensitive!) must not end with ..
Just so I understand you correctly, are you saying that @prefix is valid in SPARQL Update/Query (application/sparql-update)? My reading of https://www.w3.org/TR/sparql11-query/#rPrefixDecl is that it is invalid. Is there another reference somewhere that I'm overlooking? Or did you mean in the case of N3 / Turtle?
Oh, ugh. I'm sorry, I keep thinking that SPARQL and Turtle [@]prefix statements were fully aligned, but it was only done in one direction (so copy-paste works from one to the other, but not from the other to the one).
I feel like this partial alignment should be considered an erratum for SPARQL 1.2/RDF 1.2, no matter how clear the independent grammars may be in-and-of themselves, because I'm not the only one who gets them flipped.