Skip to content

SPARQL interface to the ConfigDB#589

Draft
amrc-benmorrow wants to merge 10 commits intomainfrom
bmz/sparql
Draft

SPARQL interface to the ConfigDB#589
amrc-benmorrow wants to merge 10 commits intomainfrom
bmz/sparql

Conversation

@amrc-benmorrow
Copy link
Contributor

This is a WIP created as part of the Data Access project (25/26).

Implement a basic SPARQL interface to the existing JSON ConfigDB. Expose the class structure and expose Applications as properties to rdf:JSON values.

This is a backend interface for the Comunica SPARQL server and should
provide SPARQL access to ConfigDB information. Currently all we expose
is the class membership information as `rdf:type` triples.
An LDF interface cannot accept writes. The only long-term strategy here
is to run Comunica using an RDF/JS Source/Store interface. This means
using RDF quad Streams, which are mostly going to be irritating as I
will always have all the data in hand already.
My Readable implementation had a bug: it never closed the stream. It's
going to be easier I think to use the builtin functions.
It's not going to be possible to use QPF for SPARQL updates, so I need
to use an RDF/JS source instead. This means integrating Comunica into
the ConfigDB, unless I split it out into a separate service accessing
the same database.

Rename LDF→QPF throughout; all these acronyms are confusing, but I think
this endpoint is specifically a Quad Pattern Fragment query endpoint,
while Linked Data Fragment describes the form of the result.

Although Comunica provides a SPARQL server there doesn't seem to be any
documented way to invoke it using a customised query engine. So just
parse SPARQL out of HTTP ourselves and hand the query off to the engine.
This means we still accept and require the normal auth; I don't know how
many SPARQL client libraries will like that.
I don't know how clients will react to this, but if we are to apply
access control here we need to be able to give sensible responses.
The rdf:JSON type is, annoyingly, canonicalised.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant