Qetch is a tool that allows users to freely sketch patterns on a scale-less canvas to query time series data without specifying query length or amplitude.
We study how humans sketch time series patterns --- humans preserve visually salient perceptual features but often non-uniformly scale and locally distort a pattern --- and we develop a novel matching algorithm that accounts for human sketching errors.
Qetch enables the easy construction of complex and expressive queries with two key features: regular expressions over sketches and relative positioning of sketches to query multiple time-aligned series.
Expressive Time Series Querying with Hand-Drawn Scale-Free Sketches
Miro Mannino, Azza Abouzied - CHI'18
Qetch: Time Series Querying with Expressive Sketches
Miro Mannino, Azza Abouzied - SIGMOD'18
We are pleased to announce that Qetch won the Best Paper Award during the SIGCHI'18 conference!
This repository contains:
Qetch's source code, contained in the folder
The datasets we used to compute our user studies, and Qetch's performance evaluations are contained in the folder
The collected queries from our crowd study are in the folder
How to run Qetch
The project's backend has been developed using NodeJS and a front-end which includes many technologies, such as: AngularJS, D3, Bootstrap, Paper.js, Math.js, etc. It requires a PostreSQL database in order to store and load time series.
In order to run the project install the required dependencies with the following commands:
bower install npm install
To run the server run the following command:
Now the interface can be accessed from a browser at:
(optional) Create a database and a user in your PostgreSQL database for Qetch. Open PostgreSQL interactive terminal with:
Now create a database and a user with:
CREATE DATABASE qetchdb; CREATE USER qetchdb_user WITH ENCRYPTED PASSWORD 'qetchdb_user_password'; GRANT ALL PRIVILEGES ON DATABASE qetchdb TO qetchdb_user;
Now you can exit the interactive terminal and double-check that you can access this database using the specified username and password with:
psql -U qetchdb_user -d qetchdb
You can report these settings in the file:
config.json in order to allow Qetch to access this database.
In order to load the data to the database the scripts in the folder
Datasets should be used.
load_all.sh loads all the available datasets:
cd Datasets/utils ./load_all.sh