Git Product home page Git Product logo

foofah's Introduction

Foofah

Foofah [1][2] 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 [3] using an input-output example from the end user.

Requirements

In fact, other Python modules numpy, tabulate, cherrypy, editdistance, python-Levenshtein , matplotlib are also required. But they could be installed using setuptools in next section.

Foofah on Docker

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.

Installation

$ cd foofah
$ python setup.py install

User Guide

Foofah Console

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, InputTable and OutputTable, both of which are 2d array of strings, representing the user-provided input-output example.

  • Link to an example test case.
  • Link to all benchmark test cases used in our full paper.

To learn other command-line argument options:

$ python foofah.py --help
Foofah Web Server

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.

Acknowledgements

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

References

[1] "Foofah: Transforming Data By Example", SIGMOD 17', Zhongjun Jin, Michael R. Anderson, Michael Cafarella, H. V. Jagadish

[2] "Foofah: A Programming-By-Example System for Synthesizing Data Transformation Programs", SIGMOD 17', Demo, Zhongjun Jin, Michael R. Anderson, Michael Cafarella, H. V. Jagadish

[3] "Potter's wheel: An interactive data cleaning system." VLDB. Vol. 1. 2001. Raman, Vijayshankar, and Joseph M. Hellerstein.

foofah's People

Contributors

markjin1990 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.