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
