Abstract

We present new language-based dynamic analysis techniques for linking visualisations and other structured outputs to data in a fine-grained way, allowing users to explore how data attributes and visual or other output elements are related by selecting (focusing on) substructures of interest. Our approach builds on bidirectional program slicing techiques based on Galois connections, which provide desirable round-tripping properties. Unlike the prior work, our approach allows selections to be negated, equipping the bidirectional analysis with a De Morgan dual which can be used to link different outputs generated from the same input. This offers a principled language-based foundation for a popular view coordination feature called brushing and linking where selections in one chart automatically select corresponding elements in another related chart.

Highlights

  • Techniques for dynamic dependency analysis have been fruitful, with applications ranging from information-flow security [Sabelfeld and Myers 2003] and optimisation [Kildall 1973] to debugging and program comprehension [De Lucia et al 1996; Weiser 1981]

  • To make progress towards these challenges, we present a bidirectional analysis which tracks finegrained data dependencies between input and output selections, with round-tripping properties characterised by Galois connections

  • These approaches enjoy useful round-tripping properties characterised by Galois connections, they only allow focusing on prefixes, a notion which is not closed under complement

Read more

Summary

INTRODUCTION

Techniques for dynamic dependency analysis have been fruitful, with applications ranging from information-flow security [Sabelfeld and Myers 2003] and optimisation [Kildall 1973] to debugging and program comprehension [De Lucia et al 1996; Weiser 1981]. It would be useful to be able to focus on a particular part of a structured output, and have an analysis isolate the input data pertinent only to that substructure. This is a need that increasingly arises outside of traditional programming. Since visualisations are cases of programs that transform structured inputs (data tables) into structured outputs (charts and other graphics), general-purpose language-based techiques for fine-grained dependency tracking should be able to help with this, by making it possible to reveal these relationships automatically to an interested user

Linking Structured Outputs to Structured Inputs
Linking Structured Outputs to Other Structured Outputs
Contributions
CORE LANGUAGE
Syntax and Typing
Eliminators
A BIDIRECTIONAL DYNAMIC DEPENDENCY ANALYSIS
Lattices of Selections
Forward Data Dependency
Backward Data Dependency
De Morgan Duality
Example
Relationship to Galois Slicing
GALOIS CONNECTIONS FOR DESUGARING
Backward Desugaring
CONCLUSION
Other Related Work and Future Directions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call