Giter Site home page Giter Site logo

huda-lab / synner Goto Github PK

View Code? Open in Web Editor NEW
19.0 2.0 5.0 12.56 MB

Generating Realistic Synthetic Data

License: MIT License

Java 7.14% Python 0.69% ANTLR 2.14% Shell 0.04% Dockerfile 0.03% JavaScript 89.95%
research user-interface user-experience visualization angularjs d3 gui research-project research-paper sketches

synner's Introduction

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

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

Demo video

Short Demo video

SIGMOD'20 - Demo session

Repository Content

This repository contains:

Synner's source code and the datasets we used for our publications.

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 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 port 5042.

Running using Docker

To build the image execute:

./build-docker-image.sh

To run the image:

./run-docker-image.sh

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 JSON file as a console argument, where the generation specification script is saved.

For example:

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

This generation specification script can be saved from the User Interface with "Script -> Save"

Building from source

To build the back end:

cd /path/to/synner
mvn clean package

To build the front-end:

cd /path/to/synner/synner-server/src/main/resources/static
bower install
npx sass main.scss main.css

This can either be launched directly from the src/main/ with:

cd /path/to/synner/synner-server/src/main/resources/static
npm run live-server

Or it can be run using the Synner server running with Spring Boot.

synner's People

Contributors

miromannino avatar test-performance avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

synner's Issues

Problem installing on Mac - help would be greatly appreciated

Hi,

I've been looking for a way to generate a lot of smallish csv files with realistic geographically distributed EPOS purchase data for a while as the basis for a small project I'm working on.

I found this project which looks absolutely ideal - great work!

Unfortunately, while I am a reasonable javascript developer I'm a complete novice (i.e. idiot) when it comes to Java. I've managed to get maven to build the project, but where it says 'launch the main static method in edu.nyu.dtl.synner.SynnerServerApplication' in the readme to run the server, I have no idea how to go about that on a Mac :(

My ultimate goal is to run this on a schedule in an AWS lambda function, but first I'm planning on using the GUI to establish the specificatiuon that will be used to produce files automatically and pop them into an s3 bucket.

I've tried compiling to jar and running that using the java jre command, but that doesn't work and pointing the jre at the compiled class just gives me a java.lang.ClassNotFoundException error.

Any help you could graciously provide would be hugely appreciated! I'm sure it's something basic, but as I say, I'm a complete novice with java development.

Server isn't launching

I downloaded Synner and launched the SynnerServerApplication on Eclipse then went to localhost:5000 but the application isn't launched yet. What I am getting is a Error: {{model.generationError}}.

Am I missing something?

Loading of previously downloaded model doesn't work

Steps:

  1. Create a new data definition
  2. Download the model using the top right menu
  3. Restart Synner
  4. Load the downloaded model into Synner again using the top right menu

The model will not be correctly loaded

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.