Skip to content

aneesha/synner

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Synner

Synner is a tool that helps users generate real-looking synthetic data by visually and declaratively specifying the properties of the dataset such as each field’s statistical distribution, its domain, and its relationship to other fields. It provides instant feedback on every user interaction by updating multiple visualizations of the generated dataset and even suggests data generation specifications from a few user examples and interactions. Synner visually communicates the inherent randomness of statistical data generation.

screenshot

Note: This is a fork of https://github.com/huda-lab/synner which includes a Dockerfile (to build and run) and additional installation instructions (i.e. you need to run bower to download additional javascript dependencies).

Publications

Is this Real? Generating Synthetic Data that Looks Real
Miro Mannino, Azza Abouzied - UIST'19

Synner: Generating Realistic Synthetic Data
Miro Mannino, Azza Abouzied - SIGMOD'20

Videos

Short video version

Extended video version

SIGMOD'20 - Demo session

Repository Content

This repository contains:

Synner's source code, the datasets that were used in the publication and a Dockerfile to run locally.

How to run Synner

Synner can be run as a server, which also provides the user interface, or as a command line interface application.

Running the user interface in a local Docker container

You will need Docker and npm installed.

  1. Clone the repo
  $ git clone https://github.com/aneesha/synner.git
  1. Install Bower and then install the required javascript dependencies
  $ cd synner/synner-server/src/main/resources/static
  $ npm install bower -g
  $ bower install
  1. Build the docker image
  $ docker image build -t docker-synner .
  1. Run the docker container
  $ docker container run -p 5000:5000 docker-synner
  1. Go to http://localhost:5000 in a web browser

Running the server

Synner server can be run by launching the main static method in edu.nyu.dtl.synner.SynnerServerApplication

This method will run Synner's server as a Spring Boot application in the port 5000

Command line interface

Synner can be launched from the command line interface with Java by using the main static method in class edu.nyu.dtl.synner.core.Main

This method accepts a path of a CSV file as console argument, where specifications are written. For example:

  java -classpath "..." edu.nyu.dtl.synner.core.Main my-specifications.json

About

Generating Realistic Synthetic Data

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 72.2%
  • ANTLR 20.7%
  • Python 6.7%
  • Other 0.4%