Welcome to the page related to our work on smart plans.
Many data sources provide access to their data through Web services (remote APIs). These Web services can be orchestrated together in execution plans in order to answer queries. In our paper, we show that some plans are guaranteed to deliver an answer to the query under certain conditions. We show that the problem of determining the existence of such plans is decidable, and we provide an algorithm for finding such plans. Finally, we conduct a proof of concept for our method on real Web services.
We are providing our code to run the experiments. It was written using python3. The libraries required to run it are NetworkX, Tkinter, Graphviz, and Pyformlang (I wrote this library). The ReadMe files provide additional information. Note that some PyDoc is given inside each file. The source code is available on Github, following this link.
The code was written by Julien Romero.
Several experiments can be run using our code. To do so, we used WebServices provided by Preda et al. in their Susie paper. In particular, the access functions to Abe Books, ISBNDB, LibraryThing, MusicBrainz, and AudioScrobbler were given.
The file test_complete_multiple.py contains the setup for the experiments. In general, we focused on the number of relations which can be found thanks to a smart plan. We give here the results for the Pali algorithm. For each experiment, the runtime was, on our computer, less than one second.