License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2017.21
URN: urn:nbn:de:0030-drops-72610
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2017/7261/
Go to the corresponding LIPIcs Volume Portal


Petricek, Tomas

Data Exploration through Dot-driven Development

pdf-format:
LIPIcs-ECOOP-2017-21.pdf (0.7 MB)


Abstract

Data literacy is becoming increasingly important in the modern world. While spreadsheets make simple data analytics accessible to a large number of people, creating transparent scripts that
can be checked, modified, reproduced and formally analyzed requires expert programming skills. In this paper, we describe the design of a data exploration language that makes the task more accessible by embedding advanced programming concepts into a simple core language.

The core language uses type providers, but we employ them in a novel way -- rather than providing types with members for accessing data, we provide types with members that allow the user to also compose rich and correct queries using just member access ('dot'). This way, we recreate functionality that usually requires complex type systems (row polymorphism, type state and dependent typing) in an extremely simple object-based language.

We formalize our approach using an object-based calculus and prove that programs constructed using the provided types represent valid data transformations. We discuss a case study developed using the
language, together with additional editor tooling that bridges some of the gaps between programming and spreadsheets. We believe that this work provides a pathway towards democratizing data science
- our use of type providers significantly reduce the complexity of languages that one needs to understand in order to write scripts for exploring data.

BibTeX - Entry

@InProceedings{petricek:LIPIcs:2017:7261,
  author =	{Tomas Petricek},
  title =	{{Data Exploration through Dot-driven Development}},
  booktitle =	{31st European Conference on Object-Oriented Programming (ECOOP 2017)},
  pages =	{21:1--21:27},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-035-4},
  ISSN =	{1868-8969},
  year =	{2017},
  volume =	{74},
  editor =	{Peter M{\"u}ller},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{http://drops.dagstuhl.de/opus/volltexte/2017/7261},
  URN =		{urn:nbn:de:0030-drops-72610},
  doi =		{10.4230/LIPIcs.ECOOP.2017.21},
  annote =	{Keywords: Data science, type providers, pivot tables, aggregation}
}

Keywords: Data science, type providers, pivot tables, aggregation
Collection: 31st European Conference on Object-Oriented Programming (ECOOP 2017)
Issue Date: 2017
Date of publication: 16.06.2017


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI