150 likes | 162 Views
Explore the progress, challenges, and future of topes in programming through a study on end-user programmers. Discover how topes help validate data, handle inconvenient formatting, and bridge the abstraction gap.
E N D
1 Year of Progresson Topes Christopher Scaffidi Brad Myers, Mary Shaw Carnegie Mellon University
Our prior work:Studies of end-user programmers (EUPs) • Contextual Inquiry: • 3 administrative assistants, 4 managers, and 3 webmasters/graphic designers • Survey • Over 800 Information Week readers • Interviews • 6 creators of Hurricane Katrina “person locator” web sites past studies ● recent work ● future work
How can EUPs validate web formsif they do not know JavaScript or regexps? Is the input valid? “EDSH 225” Is the input nearly valid? “EDXH 225” Does it just need reformatting? “Smith 225” Or is it obviously invalid? “412-555-5444” past studies ● recent work ● future work
An example spreadsheet from Microsoft(similar to one of our user’s spreadsheets) The second column is “supposed” to contain first names, but some initials have snuck in. past studies ● recent work ● future work
Data may be Inconveniently Formatted • Consider all the ways that we write dates.Reformatting may be necessary when reusing a date from one web site to fill out a form in another web site. past studies ● recent work ● future work
Underlying problem: abstraction mismatch • Tools support strings, integers, floats, sometimes dates. • Problem domain involves higher-level categories of data: • University names “Carnegie Mellon”, “CMU” • Person names “Scaffidi, Christopher”, “Chris Scaffidi” • CMU phone numbers “8-1234”, “x8-1234” • CMU room numbers “WeH 4623”, “Wean 4623” • These data categories are: • Human-readable • Short (~ 1 input field) • Multi-format • Sometimes ambiguous / fuzzy (non-binary scale of validity) • Often particular to certain groups of people past studies ● recent work ● future work
Topes • Tope = an abstraction implementation for a kind of data • Greek word for “place,” because each corresponds to a data category with a natural place in the problem domain • Topes in practice: • EUPs create new topes by using the basic tope editor (or by writing topes in another language, such as JavaScript) • EUPs publish topes on repositories. • Other EUs & EUPs download topes to their local cache. • Tool plug-ins let EUs & EUPs browse their local cache and associate topes with variables and input fields. • Plug-ins get topes from local cache and use them to recognize, transform, and equivalence-test data. past studies ● recent work ● future work
Example topeNotional representation • An example tope for CMU room numbers • 3 isa functions, 4 trf functions • Functions can be omitted if desired Formal building name& room number Elliot Dunlap Smith Hall 225 Building abbreviation& room number EDSH 225 Colloquial building name& room number Smith 225 past studies ● recent work ● future work
Example in our prototype format editor: CMU Campus Phone Number • Features: • Format inference • Format/part names • Soft constraints • “isa” generation • Testing features • Format reusability • EUP tool integration • (Similar UI style for implementing trfs) past studies ● recent work ● future work
Validation by associating a topewith a textbox • Invalid inputs cause a targeted message to appear. • Inputs that violate an always or never constraint cannot be submitted to the server. • Inputs that violate an oftenconstraint cause a warning, which the application user can override. past studies ● recent work ● future work
Evaluations to date • Usability: • Controlled experiment shows that our format editor enables EUPs to validate data quickly and accurately • Expressiveness: • We have implemented formats for dozens of kinds of data (1) EUSES spreadsheet corpus(2) logs of EUPs’ web browsing • Usefulness: • We have integrated topes with tools for creating web applications, databases, spreadsheets, and web macros. past studies ● recent work ● future work
Collaborations to date:Integrating topes with web macro tools • Integrating topes with RobofoxSebastian Elbaum & Andhy Koesnandar @ UNL • Assertions on what the clipboard should contain at runtime • Integrating topes with Koala aka CoScripterAllen Cypher & Jimmy Lee @ IBM • Selecting a transformation to be executed at runtime past studies ● recent work ● future work
Future development work • Implement enhancements to the basic editor (Q4 2007) • UI improvements; behind the scenes: new meta-data fields • Implement repository system (Q1 2008) • Plug-ins will have a list of “known” repository servers • EUPs will be able to publish topes into repository servers • Repositories will provide various search features • Search by example • Search by contextual keywords • Search by collaborative filtering • Search by tope reliability • And of course, search by (non-unique) name past studies ● recent work ● future work
Future collaboration opportunities • Upcoming evaluation: field test(Q2 2008) • Sample: University denizens (this can include you) • Tasks: install our tools and use them for several weeks • Measures: logs of usage, satisfaction surveys • Comparison: normal way of doing work • Our IRB authorized us to share our data with EUSES • Additional integration (Excel & Forms/3? phpClick?) • Our system will be available to download as a software library • We aim to support quick, painless integration of topes with your tools. • How would you like to use topes? past studies ● recent work ● future work
Thank You… • …to EUSES for the opportunity to present • …to many people for helpful suggestions • …to NSF and EUSES for funding (ITR-0325273 and CCF-0438929)