I am wondering if there is (or if not, if there is it in roadmad?), to have a remote, server side SPARQL endpoint on SOLID POD servers ?
At the moment, when I need to query data from a SOLID POD document, I do it by getting the full document locally and running SPARQL queries on the local document. This is OK for small document, but to scale to bigger documents, real life cases, a SPARQL server side endpoint would be pretty useful, if not mandatory for decent performance. Also, it could be a security exposure to always transfer a full document to the client by the way …
I remember to ask & have an open discussion about SPARQL integration into solid spec. You can look at it into the Solid Gitter chat room (just search for ‘sparql’) that may be of your interest
How well could this work client side - for example using Comunica over LDP to support SPARQL queries?
I realise performance will be slow, but evenso it would be a useful capability.
How hard would it be to do this over a pod, or over multiple pods? Any examples over LDP?
I’d be very interested to try doing SPARQL client side, although I have my hands full with the basics at the moment - figuring out how to identify and characterise endpoints. Any tips in that direction welcome BTW. I’ve found a few papers, one with a bunch of useful queries, but looking for inspiration and examples of how others approach this.
For anyone curious about SPARQL I have to say it is very powerful, and SPARQL itself is not that hard, just hard to learn with the available resources. Two main aspects to this learning curve: first SPARQL itself although that’s a pleasure once you get the basics, second locating and learning what you can do with a particular public endpoint. I think these are both soluble problems, but at the moment present a significant barrier to outsiders.
More eyes on this area could help, so I encourage anyone curious to have a poke around. I’m able to give some pointers to save some of the early pain if anyone is interested, and am building some software to help with the issues mentioned - it will be great to see if this is useful to others and get some feedback on this too.
Can you elaborate. I haven’t touched GraphQL, remember watching your presentation to the GraphQL folks. So I’m thinking maybe you are talking about putting a GraphQL layer over SPARQL?
Thanks. I’ve not looked into GraphQL and like JSON-LD I’m not drawn to it. They both ‘feel’ wrong. Its odd to me that GraphQL appears not to support graphs, but as in your article for instance, it turns them into trees. Its things like that that turn me away.
Anyway I shall watch with interest and if it looks useful at some point will look at GraphQL but for now it doesn’t appeal to me. Thanks again for your answers.
Thank you @RubenVerborgh , but with LDP you cannot retrieve just part of a document, can you ?
What about the scenario of a social app, with all your comments to posts stored on a document on your pod. With only a few comments , it is ok to retrieve the full document client side. But if the users have done thousands of comments, it does not makes sense to retrieve them all on the client and then handle the query in the comments (to get all the comments for a given post for example) client side… In this case I want to be able to query with SPARQL (or similar) just the comments I want and let the server do the work and give me back only what I need ! If we want to be able to develop real life, scaling applications on top of SOLID, this seems mandatory to me.
Also, I have noticed that when I want to retrieve just one entry of a document (using myuri#myentry), I realize that I retrieve client side the full document !
I am pretty new with all this stuff, so thank you for the time you take to explain to me
If LDP is making the job and I can do partial request on documents server side, and this is the one standard that all SOLID servers will implement, and it is more efficient, then I will go for it !
Can you tel me where I can get good documentation / tutorials / examples about LDP ?