Skeleton of talk for practice run at PLUG, Tue 11 Jan.
Opening slide
[x] title; authors + photos
Problem
[x] understanding visual outputs means understanding what visual elements represent
[x] examples: various typical (= opaque) charts (see HPI talk)
[x] can we do better?
[x] open source/open data help provide the raw materials but no insights into how things are related
what we would like is computational artifacts able to reveal their relationship to data interactively, on demand (without incurring programmer overhead)
[x] two specific problems we would like to make progress towards; first is linking outputs to inputs in a fine-grained way
[x] author just writes regular functional viz code -- bar chart example
[x] "round-tripping" properties important for trust/correctness (here: sufficiency)
[x] second is linking outputs to other outputs in a fine-grained way (and seeing the relevant data) -- line chart example
[x] for the forward analysis here, we care about necessity, not sufficiency
Solution (part 1)
[x] prior work: Galois slicing provides a way to relate input selections to output selections, with nice round-tripping properties characterised by Galois connections
[x] Galois connection: best way to (nearly) invert a map that can't be inverted
[x] backwards question: what is the (least) input needed for this output?
[x] forwards question: what is the (greatest) output that this input suffices for?
[x] in Galois slicing, a selection of an input/output is a prefix (tree with holes)
[x] example from Fig. 16
[x] however, doesn't support isolating arbitrary components of structured outputs
[x] differential slicing helps, but wrong approximation for this problem (example from Fig. 16 -- explain "spine")
[x] Galois dependencies
[x] lift prefix-closure restriction, so "selections" are not just terms with holes; selections are just subsets of the set of paths in a term
[x] represent by associating a bit with each path (more generally: elements of boolean algebras) -- give grammar of values
[x] less "program-like", but more fine-grained
[x] forward/backward analyses
[x] form/meaning of the judgements
also introduce hole as shorthand for .. (relevant to environment merge during backward analysis)
[x] demo: convolution example
Solution (part 2)
[x] also want to understand how outputs relate to other outputs
[x] nature of "forward" question changes: not what x is sufficient for but what x is necessary for
[x] turns out our more general notion of selection can help here too, because it supports negation
[x] De Morgan dual
[x] using negation (complement), can formulate "necessary for" in terms of "sufficient for"
[x] think of this as inverting the direction of the GC (by turning meet-preserving into join-preserving and vice versa)
more generally: composing a GC with itself
[x] demo: linking example
Closing slide
[x] conclusion & future work
[x] link to f.luid.org
[x] future work: expression provenance
Done/dropped:
[x] settle on slide solution (Keynote: no; Autodesk SketchBook: yes)
[x] experiment with mic in bathroom and up close (bathroom: no; up close: yes)
[x] play around with Keynote with iPad/Apple Pencil (outcome: shite)
[x] experiment with recording demo (speedup x 4; can embed in Keynote, but not SketchBook)
[x] check duration of talk: 20+5 min (see "Accepted submission" email of 28 Sep)
[x] quick pass (unrecorded) to identify main remaining problems/omissions
[x] define Galois connection using unit/counit formulation rather than isomorphism of hom sets
[x] remove blue circle around Chiang Main urban area
[x] drop "spine" explanation
[x] pass over layers in Goal 2 solution slide
[x] split De Morgan duals into two slides; use earlier colour scheme for GCs
Skeleton of talk for practice run at PLUG, Tue 11 Jan.
Opening slide
Problem
what we would like is computational artifacts able to reveal their relationship to data interactively, on demand (without incurring programmer overhead)Solution (part 1)
also introduce hole as shorthand for .. (relevant to environment merge during backward analysis)Solution (part 2)
more generally: composing a GC with itselfClosing slide
f.luid.org
Done/dropped: