Foofah  is a programming-by-example data transformation program synthesis system. It is able to generate a data transformation program defined in Professor Joe Hellerstein's Potter's Wheel paper  using an input-output example from the end user.
In fact, other Python modules
matplotlib are also required. But they could be installed using setuptools in next section.
Build Foofah container
$ docker build -t foofah .
Run Foofah contrainer
$ docker run -p 8080:8080 foofah
Foofah web service will be available at localhost:8080.
$ cd foofah $ python setup.py install
To test Foofah against individual test case from the console:
$ cd foofah $ python foofah.py --input <test_file>
Note that each test case must be a json file that contains one json object with two members,
OutputTable, both of which are 2d array of strings, representing the user-provided input-output example.
To learn other command-line argument options:
$ python foofah.py --help
To interact with Foofah through a web interface (as shown in video):
$ python foofah_server.py
By default, the service will be available at localhost:8080.
Foofah is being developed in the University of Michigan. This work in part supported by National Science Foundation grants IIS-1250880, IIS-1054913, NSF IGERT grant 0903629, a Sloan Research Fellowship and a CSE Department Fellowship