node-solid-server icon indicating copy to clipboard operation
node-solid-server copied to clipboard

Fix conformance to SPARQL Update / Query's prefix declaration

Open csarven opened this issue 1 year ago • 3 comments

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).

csarven avatar Jun 11 '24 11:06 csarven

note: lines beginning @prefix are also valid; they are just required to end with ., while lines beginning PREFIX (case-insensitive!) must not end with ..

TallTed avatar Jun 11 '24 18:06 TallTed

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?

csarven avatar Jun 11 '24 18:06 csarven

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.

TallTed avatar Jun 11 '24 19:06 TallTed