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.
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 Server
The datasets we used to compute our user studies, and Qetch’s performance evaluations are contained in the folder Datasets
The collected queries from our crowd study are in the folder Crowd-Study Data
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:
npm start
Now the interface can be accessed from a browser at:
http://localhost:2048/
(optional) Create a database and a user in your PostgreSQL database for Qetch. Open PostgreSQL interactive terminal with:
psql
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.
The script load_all.sh
loads all the available datasets:
cd Datasets/utils
./load_all.sh