w3c / sparql-dev

SPARQL dev Community Group
https://w3c.github.io/sparql-dev/
Other
121 stars 19 forks source link

track N3 grammar changes #122

Open ericprud opened 3 years ago

ericprud commented 3 years ago

Why?

Folks like @gkellogg are innovating on the N3 grammar with changes like https://github.com/w3c/N3/pull/37/files#diff-0f5ba1fe6835360f9e192917b201bfe2R100 . We might want to mirror the applicable changes (e.g. changes to terminals for IRI but not N3-specific stuff like tokens for log:implies).

Previous work

The beauty of this is that N3 folks do all the work for us.

Proposed solution

watch and copy

Considerations for backward compatibility

Even if SPARQL 1.1 isn't magically forward-compatible with SPARQL 1.2, certain tools like URL scrapers might be. Changing fundamental terminals could break those.

gkellogg commented 3 years ago

That change was inspired by the original Notation3 Team Submission with the idea that long IRIs (URIs, then) could be broken up across different lines. However, the N3 CG later rejected the change, because of the potential to blow up parsers if it's malformed. Not unlike ANON ::= '[' WS* ']' which could also blow-up.

There were some additional considerations, considering that <= is a token, and we briefly considered <-.

Although, because it's not an unprecedented use of whitespace within a token, it could be revisited if there was sufficient interest.

See https://github.com/w3c/N3/issues/45.

gkellogg commented 3 years ago

In a similar vein, @pchampin suggested changing the ObjectList production (or equivalent), to allow a dangling ,. For example, change to [79] ObjectList ::= Object ( ',' Object? )*. This would be consistent with the dangling ; allowed in [77] PropertyListNotEmpty ::= Verb ObjectList ( ';' ( Verb ObjectList )? )*.