Hi all, I have been dabbling with Calcite for a while out of interest and curiosity and, in order to become more familiar with the code and the overall architecture, I've tried implementing an adapter [1] to run SQL queries over SPARQL endpoints. As Gavin has done, I have also planned to share some notes on the process of creating an adapter from scratch, since there are many moving parts (and I may have missed or misunderstood several).
The project is at an early stage and can be improved in many ways, but, as I am still learning about Calcite itself, I thought it would make sense to share the work in progress with the community and ask for some feedback (plus, it's easier to ask for help when there is something concrete already). The rules are still relatively basic (e.g. neither joins nor aggregations are pushed down to SPARQL as of now); in the meantime, I am trying to come up with as many tests as I can to make sure that everything works (and keeps working) as expected. On the "usefulness" side, it is true that trying to force a table view on graph data is always going to be a challenge, and there are many approaches to it - but I think this could be a good starting point for use cases such as data exploration, analytics, etc. Thank you all for the great work on Calcite, and please do share your thoughts and comments! Nicola [1] https://github.com/nvitucci/calcite-sparql
