Vistrates: A Unified Platform for Data Analytics
By: Karthik Badam
Tags: Analytics, Research, Data Science, Data Visualization, Storytelling

What is Vistrates and why is it needed?

Current tools for data analysis are optimized for specific analytical tasks. Tableau is used for exploration of data and presentation of stories from the data. Adobe’s Data Illustrator is used for creating custom narrative visualizations. Microsoft’s ChartAccent is ideal for annotating charts in a data-driven fashion. Jupyter notebooks enable exploratory analysis through interactive programming. However, to be truly useful, each of these tools needs to be used together by teams of analysts working on different devices (laptops, tablets, or even smartphones). This means when using these tools, the team needs to come to a collective compromise about the protocols, jobs, and results expected to reach the final outcome.

Vistrates is built on top of existing web platforms (Codestrates and Webstrates) that promote shareability, distributability, and malleability of applications. It adapts these platforms to support data analysis and promotes unification and interoperability between interfaces, devices, and users. Vistrates, in essence, is built on two ideas:

Flexible user interface: The user interface of Vistrates is flexible and can be changed based on the analytical activity in question. During visual exploration, for example, the interface can be turned into a dashboard (an abstraction) to filter and analyze data across multiple attributes. Similarly, during storytelling, the interface can be converted into a slideshow along with speaker notes to enable presentations (Figure 1 — right). A vistrate can even appear as an interactive visualization tool to an end-user. Composable, extensible, and reusable components: Each vistrate is made of analytical components that feed each other and together support a complex activity. A classification method can be an analytical component with a data output representing the class/group of each data point. A bar chart component can take the input from the classification and provide a visual output of the groups. Furthermore, components are editable, reusable, and extensible.

What does a Vistrate document look like?

A vistrate is simply a web document containing executable code, text, and media. Like Google Docs, vistrate documents are inherently collaborative — you can share a URL with your teammate to work together on a document. Like Jupyter notebooks, a vistrate is an interactive programming environment with code cells integrated with cells of rich text. The building block of a vistrate is a component consisting of a controller (written in Javascript), a state specification (resembles JSON), and a view (in HTML). Each component can get input from and output data to other components along with maintaining the state (such as user interaction) in the state specification.

More levels of UI abstractions can be accessed in a Vistrate. For instance, in contrast to a linear layout for interactive programming, a dashboard abstraction can be used to show all component views together in a grid layout. A mobile abstraction level is also present for a small-screen device. The figure below shows these different abstractions for a crime analysis scenario.