welcome [tc18.tableau.com] · 2020-01-06 · javascript postscript computer regex html tableau...
TRANSCRIPT
Using languages to build and reason about visualizations
Scott Sherman
Principal Software Engineer
Tableau Research
# T C 1 8
Agenda
Why languages?
The power of VizQL
• “Visual Query Language”, the heart of Tableau
Case studies:
• Enhanced Show Me: for natural language and more
• Tableau Runtime: A language for computation
• CompassQL: A language for recommendations
• Draco: A language for improving visualizations
Examples of languages
English
Swahili
Iñupiaq
Human
musical notation
Feynman diagram
Gantt chart
Visual
Python
JavaScript
PostScript
Computer
regex
HTML
Tableau calcs
Domain Specific
Why a language?
Tool for reasoning
Meta: programs that reason about the program itself
• natural language, machine learning, proofs, optimizations
Map between different concepts
• specific domains: e.g., user interface, layout, query, visualization
Easier to author, understand, compose concepts
Tableau Example: “Tableau Markup”
• Used by titles, captions, text objects, tooltips
• Captures field names, sheet names, etc.
Tableau Example: VizQL
visual spec
layout
columns
rows
pages
view spec
filters
sorts
pane specs
color size
shape text
LOD tooltip
mark type
column: MONTH(Date)row: SUM(Sales)color: Productfilters: {exclude Desk, Chair}
Why is this interesting?
UI: VizQL ↔ Shelves
Query: VizQL → SQL | MDX
Layout: VizQL → visualization
ShowMe: List of fields → VizQL
Natural Language Input (NLI) → VizQL
ShowMe encapsulates best practices
• “Use lines for time, bars otherwise”
• We want to leverage this for NLI
If NLI simply extracts a list of fields, it can use ShowMe
But it know more than just lists of fields
• “Show me average sales…”
• “Show me the trend of…”
“Enhanced Show Me”
Intent Language
Show me…
• fields• average of [Sales]
• average of [Profit]
• [City]
• intent• correlation
Enhanced Show Me (ESM)
ESM
VizQL
natural language
intent language
Visual best practices
UI, query, layout
Future possibilities…?
ESM
VizQL
natural language
machine learning
future UI?
other other
intent language
Tableau Runtime (TRT)
Language describing
computation
• table calcs
• partitioning
• layout
• highlighting
Supports optimizations
• reason globally
• incremental updates
• client or server side
• can cache data & transforms
Why a language?
Tool for reasoning
Meta: programs that reason about the program itself
• natural language, machine learning, proofs, optimizations
Map between different concepts
• specific domains: e.g., user interface, layout, query, visualization
Easier to author, understand, compose concepts
Using languages to build & reason about visualizations
S E S S I O N R E P E AT S
Tuesday | 2:15-3:15 | MCCNO – L3 – 397
Using languages to build & reason about visualizations
Thursday | 2:15-3:15 | MCCNO – L3 – 346
Semantics and cognition for visual analytics
R E L AT E D S E S S I O N S
Day | Time – Time | Location
Show me the queries!Day | Time – Time | Location