Research supported by The Traditional Spreadsheet Simple access to complex numerical calculations SCHOOL OF COMPUTER SCIENCE Effective decision support for numerical data Iliano Cervesato Financial analysis, budgets, grades, inventories, … Ubiquitous iliano@cmu.edu Intuitive interface No formal training needed Gentle learning curve Over 50M users Only recently surpassed by web browsers and mailers Forthcoming Work Implement prototype All core functionalities Detailed user-interface Perform usability analysis and user testing Can it be as usable as traditional spreadsheet? Heuristic evaluation and cognitive walkthrough The Deductive Spreadsheet Address open cognitive issues User-friendly syntax of tabular formulas Complex logical patterns, e.g., nested negations Feature discovery Extends the spreadsheet with symbolic reasoning Supports symbolic decision-making Provides functionalities to manipulate data symbolically Work to begin in January 2011, funded by QNRF =indirect(From,To) IF directFlight(From,To,_). =indirect(From,To) IF directFlight(Var1,Var2,Var3) | courses directFlight G7:I_ grades hasTaken path indirect students Insert Predicate Same ease of use as traditional spreadsheet Seamless integration into current model Logical language Operational interpretation Interface commands Not a separate application Clause Definition Head indirect(From,To) Body Conjunct 1 directFlight(From,Mid,_) fx Conjunct 2 indirect(Mid,Var5) fx Conjunct 3 Mid <> “LAX” fx Conjunct 4 | fx Head is true only if all the conjuncts in Body are true NEXCEL User Interface Example Help Examples of Applications Explanation Currently extended Datalog or beautified SQL Final choice will depend on user testing Query: indirect(“JFK”, To) indirect(“JFK”,“LAX”) indirect(“JFK”,“LAX”) Mouse-assisted definitions Wizard-assisted definitions Explanation facilities Cancel Define another clause Textual language over tabular expressions Conjunct 4: each conjunct is a predicate or a constraint • Right-click on box for defined predicates • Drag variables to define constraints • Click on fx for abbreviated forms Extension of the traditional interface with OK indirect(“JFK”,“LAX”) IF directFlight(“JFK”, “SFO”) AND indirect(“SFO”,”LAX”). directFlight(“JFK”,“SFO”) indirect(“SFO”,“LAX”) directFlight(“SFO”,“LAX”) Based on terminating top-down logic programming indirect(“SFO”,“LAX”) directFlight(“SFO”,“LAX”) Productivity tools OK Save query as relation Good feedback from preliminary user testing Build course sequence based on offerings and prerequisites Find itinerary based on flight segment Explore family genealogy tree Cancel Help 211 LGA 540 DCA Query 1 ATL 2130 directFlight(F,T,D) BWI SFO 181 2580 338 JFK Edges: F, T 2437 Vertices LAX 1657 Labels: D MSY 4140 2252 2560 942 VCE IAD Query 2 directFlight(F,T,D) AND D > 2500 Drag variables or previous edges 519 3850 CDG Edges: Query1.Edges 3640 EWR Vertices Labels: Query1.Labels Help Cancel OK Options Add Query NEXCEL Functionalities Extension of the traditional spreadsheet with Expressions over first-class tabular data Like database, but queries results permanently displayed Efficient evaluation and update propagation Datalog with negation, constraints, calculated values, lists Equational relational algebra (extended) Guaranteed termination Explanation facilities Transitive closure problems Explore exposure to industries in mutual fund portfolio Connection Graph Workflow problem Bill of materials problem Coordinate meetings and transportation for business trip Scheduling problem Unachievable using traditional spreadsheets