I am looking at linked data applications to add value to data exposed via
Web Services, to add the missing semantics about the exposed content needed
to actually discover and use those services.
i need to be able to traverse graphs composed of things like VoiD,
RDF-Datacube etc.
The RDF-shapes scope covers this, and there are some elements of Marmotta such
as LDPath that are relevant. I've previously built the functionality I
needed using the LinkedDataAPI (https://github.com/UKGovLD/linked-data-api).

Is there anything in Marmotta to support parameterised SPARQL queries
accessed via URL based APIs, and building a response by traversing paths
from the query results?

Discussion on the User's list found one other user who had found the same
functionality required - and deployed a separate client module.

I add a few details here:

I have been using a subset of the functionality of the LinkedDataAPI - for
which implementations exist (ELDA, Puelia) - against Sesame and Triplify
backends.

https://code.google.com/archive/p/linked-data-api/wikis/Specification.wiki

LDA works nicely enough, modulo a few things

There are a few issues with this:
1)  it would be nice if the LDA spec was supported by a SDO
2)  implementation was supported by a larger developer community
3) and it didnt mean a whole set of additional dependency wrangling for
system requirements, imported components and licences - all of which would
be solved if the equivalent functionality was in Marmotta :-)
4) it supported CONSTRUCT queries to transform statements inject default
and calculated values into the result.
5) it supported querying over blank nodes (which we find all the time when
there is an OWL model as part of the graph - and OWL is really useful for
many things)
6) LDA itself could be factored into core and extensions

Given Marmotta's modular architecture - a module with this functionality
seems a fairly good fit. Whether LDA is explicitly supported i think is
open for discussion- and if it is, would one of the existing
implementations be a candidate - if not - what would be a good choice and
who could contribute to it. (my feeling is that a very simple
implementation could be rolled in - if we can exploit existing content and
locale negotiation layers - so we end up supporting just three canonical
parameters (_view, _format, _language) and a mechanism to set query
parameters.

Interestingly both Alan Robson's solution (on the users list) and the ELDA
store all the configuration in a triple store - allowing these to be easily
annotated. I do like that idea - because I think the service itself is a
object that should support linked data principles in its descriptive
resources - you could search for queries that take certain types of
parameters for example. Potentially very powerful.

The main hurdle I see is that Marmotta is keen to bind to a single
repository - whereas I specifically want to combine data from triple-stores
and existing RDBMS environments. Decoupling APIs against separate SPARQL
endpoints works fine for this. IMHO If the Marmotta build configured APIs
by default against its configured SPARQL endpoint, but an API configuration
module allowed additional APIs to be configured against alternative SPARQL
endpoints then all would be bliss.
…

Regards
Rob Atkinson

Reply via email to