Do you mean 'to build a query if that functionality was available in a marmotta module'? Or am i missing something :-)
On Wed, 17 Feb 2016 4:09 pm Robson, Alan <alan.rob...@viasat.com> wrote: > Maybe the linked data caching feature of Marmotta will provide the > federation necessary. > > Or perhaps one could use a single instance of marmotta to build a query > and then send the query to a federation of endpoints using fed-x: > http://www2.informatik.uni-freiburg.de/~mschmidt/docs/iswc11_fedx.pdf > > > > > > Alan > > > > *From:* Rob Atkinson [mailto:r...@metalinkage.com.au] > *Sent:* Tuesday, February 16, 2016 8:51 PM > *To:* users@marmotta.apache.org > *Subject:* Re: Support for RDF-shapes, Linked data API > > > > Thanks Alan > > > > this is indeed the sort of functionality I'm looking for. > > 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 > <https://urldefense.proofpoint.com/v2/url?u=https-3A__code.google.com_archive_p_linked-2Ddata-2Dapi_wikis_Specification.wiki&d=BQMFaQ&c=jcv3orpCsv7C4ly8-ubDob57ycZ4jvhoYZNDBA06fPk&r=xN9AnMDZvO_QvUZQZcoply6WFqSJuNcpv-dDu2fA4Ac&m=YcjMBFlQEV1Twmm2_suPJX4D_RGWXZsWPCg8XTyQFW0&s=GMD14ltrtdU51q-8_cOeSZrcfTssDPt6nSulAGDzX5E&e=> > > > > 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. > > > > 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 allowed additional > APIs to be configured against alternative SPARQL endpoints then all would > be bliss. > > > > Rob > > > > > > > > > > > > On Wed, 17 Feb 2016 at 13:33 Robson, Alan <alan.rob...@viasat.com> wrote: > > This may be way off base… > > > > I wrote a small java EE application that accepts a get request with > parameters, it then searches for an RDF record in LDP that matches the name > of the query, validates the parameters according to the instructions it > finds in the RDF, formulates a SPARQL query then returns the results/errors. > > > > Here’s an example record representing an allowable query – I just made up > the vocabulary… > > > > *@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema# > <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.w3.org_2000_01_rdf-2Dschema-23&d=BQMFaQ&c=jcv3orpCsv7C4ly8-ubDob57ycZ4jvhoYZNDBA06fPk&r=xN9AnMDZvO_QvUZQZcoply6WFqSJuNcpv-dDu2fA4Ac&m=YcjMBFlQEV1Twmm2_suPJX4D_RGWXZsWPCg8XTyQFW0&s=PCyJ1Crd5ubX_3ZtYBPfC50412u_Qxn3e5VRbx6im9Y&e=>> > .* > > *@prefix foaf: <http://xmlns.com/foaf/0.1/ > <https://urldefense.proofpoint.com/v2/url?u=http-3A__xmlns.com_foaf_0.1_&d=BQMFaQ&c=jcv3orpCsv7C4ly8-ubDob57ycZ4jvhoYZNDBA06fPk&r=xN9AnMDZvO_QvUZQZcoply6WFqSJuNcpv-dDu2fA4Ac&m=YcjMBFlQEV1Twmm2_suPJX4D_RGWXZsWPCg8XTyQFW0&s=kUU78ZVQ1QGo56Zx8Sp60brKF7U58hCnnxlaGMGbP9Q&e=>> > .* > > *@prefix dlq: <http://unfortunate.name/2015/query# > <https://urldefense.proofpoint.com/v2/url?u=http-3A__unfortunate.name_2015_query-23&d=BQMFaQ&c=jcv3orpCsv7C4ly8-ubDob57ycZ4jvhoYZNDBA06fPk&r=xN9AnMDZvO_QvUZQZcoply6WFqSJuNcpv-dDu2fA4Ac&m=YcjMBFlQEV1Twmm2_suPJX4D_RGWXZsWPCg8XTyQFW0&s=FSy2Ot3Aks_NIVKd3OGX308BMB2XQuqArOiA1pv9RfU&e=>> > .* > > > > *<> a dlq:sparqlQuery;* > > * rdfs:label "Returns a list of names of individuals who have attained > the age of majority and hence are considered to be adults.";* > > * dlq:param [ dlq:paramName "majority"; dlq:dataType dlq:unsignedInt; > dlq:maxValue "150"; dlq:defaultValue "18"; rdfs:label "age of majority" ];* > > * dlq:sparql "PREFIX foaf: <http://xmlns.com/foaf/0.1/ > <https://urldefense.proofpoint.com/v2/url?u=http-3A__xmlns.com_foaf_0.1_&d=BQMFaQ&c=jcv3orpCsv7C4ly8-ubDob57ycZ4jvhoYZNDBA06fPk&r=xN9AnMDZvO_QvUZQZcoply6WFqSJuNcpv-dDu2fA4Ac&m=YcjMBFlQEV1Twmm2_suPJX4D_RGWXZsWPCg8XTyQFW0&s=kUU78ZVQ1QGo56Zx8Sp60brKF7U58hCnnxlaGMGbP9Q&e=>> > SELECT ?name WHERE {?i a foaf:Person . ?i foaf:name ?name . ?i foaf:age > ?age . FILTER (?age >= majority)}"; .* > > > > I post the above ttl file to marmotta so that it can be found via LDP at: > > > * http://ldp:8080/marmotta/ldp/QUERIES/findAdults > <http://ldp:8080/marmotta/ldp/QUERIES/findAdults>* > > > > My SPARQL proxy sits on tomcat alongside marmotta and when it gets a query > like: > > > > http://ldp:8080/proxy/Services/findAdults?majority=21 > <https://urldefense.proofpoint.com/v2/url?u=http-3A__ldp-3A8080_proxy_Services_findAdults-3Fmajority-3D21&d=BQMFaQ&c=jcv3orpCsv7C4ly8-ubDob57ycZ4jvhoYZNDBA06fPk&r=xN9AnMDZvO_QvUZQZcoply6WFqSJuNcpv-dDu2fA4Ac&m=YcjMBFlQEV1Twmm2_suPJX4D_RGWXZsWPCg8XTyQFW0&s=RnFLwo-2Gev42YD9-eJzs98OeUealDGZG2cH0uw5400&e=> > > > > It looks up the above record in LDP by appending findAdults to the path, > then it validates the “majority” parameter and builds a SPARQL query, > substituting in the parameter where it is named then executes it and > returns the result (or of course an error message if anything is out of > kilter) > > > > I also went ahead and added a few dummy records with people of various > ages so that the SPARQL query had something to work with. > > > > Right now it only supports simple validations like integer ranges, but it > could be extended to other types. > > > > I built it because while don’t mind users having SPARQL access in my dev > environment, I want only canned queries in my production environment > because I have seen how unfettered queries can bog down other databases. I > was not so worried about security as performance. > > > > The only interfaces between marmotta and the query proxy are marmotta’s > standard REST APIs, so the proxy need not be hosted on the same machine as > marmotta. > > > > Is this along the lines of what you wanted ? > > > > Alan > > *From:* Rob Atkinson [mailto:r...@metalinkage.com.au] > *Sent:* Monday, February 15, 2016 4:55 AM > *To:* users@marmotta.apache.org > *Subject:* Support for RDF-shapes, Linked data API > > > > Hi > > > > 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 > <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_UKGovLD_linked-2Ddata-2Dapi&d=BQMFaQ&c=jcv3orpCsv7C4ly8-ubDob57ycZ4jvhoYZNDBA06fPk&r=xN9AnMDZvO_QvUZQZcoply6WFqSJuNcpv-dDu2fA4Ac&m=sJnASXMUIR0ucnEHlcG3kM1GZ5TFHlhGyAhkYT45qfY&s=StoV4m3FfnN5m7Y1JgL1aSFxde0mEhsWqxXB6i_H-FA&e=> > ). > > 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? (i've looked but not found anything - any pointers > to descriptions of the marnotta core would be helpful!) > > > > Regards > > Rob Atkinson > >