Skip to content

SPARQL VERSION semantics #241

Open
Open
@jitsedesmet

Description

@jitsedesmet

Hi all, second issue, and again, great work!

The background is the same as here: #240, I implemented the VERSION announcement.
While implementing it, I found choosing to use a string for the version a peculiar choice - of course I understand it from a UX point of view.
So I started wondering whether the versions declared as strings in the VERSION clause could implicitly be transformed into IRIs.

The use of IRIs, beside being best practice, has some interesting consequences, since it allows us to define relationships between various versions (outside of SPARQL spec versions, see vendor-specific versions, but also things like GeoSPARQL and C-SPARQL)
An example relation would be the definition of what version a SPARQL endpoint operates on (probably described in the service description , although I do not see something like that right now?)
Such definitions would allow you to provide reasoning rules that an endpoint supporting SPARQL 1.2 also supports SPARQL 1.1 queries.
This could facilitate better interoperability between SPARQL versions with minimal cost for the implementor to expose the version (same as now).
These version definitions might then also be usable for vendor specific SPARQL versions, where various vendors slightly modify the SPARQL grammar, using IRIs and semantics in general, one could describe how these various versions differ from one another.

By providing a bijection between the version string and an IRI, we can more easily talk about query versions.
This bijection could simply involve the WG choosing a namespace and then using URL-encoding/ Percent-encoding on the string provided in the version clause.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions