The First Search User Interface Architecture Universal Access

  • Slides: 38
Download presentation
The First. Search User Interface Architecture Universal Access for Any User, in Many Languages,

The First. Search User Interface Architecture Universal Access for Any User, in Many Languages, on Any Platform Gary Perlman, perlman@oclc. org Consulting Research Scientist OCLC Online Computer Library Center

Outline n n n What is OCLC and First. Search? Goals for New First.

Outline n n n What is OCLC and First. Search? Goals for New First. Search The User Interface Architecture How the Architecture Meets the Goals Summary and Conclusions

What is OCLC and First. Search? n Non-profit member library association n Furthering access

What is OCLC and First. Search? n Non-profit member library association n Furthering access to the world's information and reducing information costs. n 37, 000 libraries, 74 countries/territories n Shared cataloging 43 M+ records, 779 M+ holdings, 103 M+ ILL n Uniform interface to 80+ Databases n 100 M+ records, 6 K+ full text serials n TTY 1991, Web 1996, 16 K+ libraries, ~10 M searches/month

First. Search: The Second System Many New Features n n n n Limit to

First. Search: The Second System Many New Features n n n n Limit to library holdings Limit to available full text Cross-database searching Ranking and sorting Integrated thesaurus More wildcards Library customization

Goal: Retire Related Systems Many Legacy Requirements n n First. Search TTY: 24 x

Goal: Retire Related Systems Many Legacy Requirements n n First. Search TTY: 24 x 80 telnet version EPIC: query language Electronic Collections Online: full text journals First. Search Web (original)

Goal: Avoid All Old Problems Many New Variables n n n New functionality New

Goal: Avoid All Old Problems Many New Variables n n n New functionality New application layer (Site. Search), concurrent development New programming language (Java) New version of UNIX New “high performance” file system New server hardware

General Requirements Many with One-Line of Detail n n n Multi-platform Multilingual Levels of

General Requirements Many with One-Line of Detail n n n Multi-platform Multilingual Levels of users Text-only version Universally accessible (ADA compliant) Help system

General Requirements: Multi-Platform n n n Browser: Netscape and Explorer Versions: 4. x (and

General Requirements: Multi-Platform n n n Browser: Netscape and Explorer Versions: 4. x (and then 3. x) Java. Script: available or not Screen size: large, medium, small Hardware: Windows, Macintosh Colors: down to 256

General Requirements: Multilingual n n n English (en) French (fr) Spanish (es)

General Requirements: Multilingual n n n English (en) French (fr) Spanish (es)

General Requirements: Levels of Users n n Home (welcome) Basic (most naïve users) Advanced

General Requirements: Levels of Users n n Home (welcome) Basic (most naïve users) Advanced (most experienced users) Expert (query language users)

General Requirements: Text-Only / Accessible Version n Replacement for First. Search TTY Possible ADA-compliant

General Requirements: Text-Only / Accessible Version n Replacement for First. Search TTY Possible ADA-compliant version No real experience in the area

General Requirements: Better Group Coordination n n n Development: functionality Database: loading data Marketing:

General Requirements: Better Group Coordination n n n Development: functionality Database: loading data Marketing: requirements & terminology Documentation: help & translation Graphic design: icons, fonts, colors, layout Usability: evaluation & re-design

Goals for the UI Architecture n n n Adapt to inevitable requests for changes

Goals for the UI Architecture n n n Adapt to inevitable requests for changes (due to new requirements, usability, performance, etc. ) Allow incremental development (due to so many unknowns) Defer decisions & allow global changes

Partitioning and Construction n n Functional Partition (Pages): database selection, search, results Platform-dependent Partition

Partitioning and Construction n n Functional Partition (Pages): database selection, search, results Platform-dependent Partition (Style): browser, version, options, hardware Language-dependent Partition (Lang) Cross-products of pages and styles and languages using Templates

Functional Partition: The FSPage Object · pagename: an internal identifier · pagetitle: a title

Functional Partition: The FSPage Object · pagename: an internal identifier · pagetitle: a title displayed to users · pagelabel: a short phrase for links in menus · tips: on-screen help tips · status: on-screen status information · controls: page-specific controls · action: a form action · panel: a main form panel · . . .

FSPage for Expert Search [expert] pagename pagetitle pagelabel tips status controls = = =

FSPage for Expert Search [expert] pagename pagetitle pagelabel tips status controls = = = expert &Lang. pagetitle. expert; &Lang. pagelabel. expert; &Lang. tips. expert; &Lang. status. expert; &Style. dbinfo. gadget; &Style. scanindex. gadget; &Style. thesaurus. gadget; &Style. news. gadget; QUERY: searchtype=expert termexpert indexexpert termexpert action = term = index = focus = panel = &Style. dialog. begin; &Pages. basic. submit; &Pages. expert. searchbox; &Pages. expert. index; &Pages. advanced. limits; &Pages. advanced. options; &Pages. basic. submit; &Style. dialog. end;

FSPage for Expert Search: search box [expert] searchbox = &Style. dialog. rowbegin; &Style. font.

FSPage for Expert Search: search box [expert] searchbox = &Style. dialog. rowbegin; &Style. font. labelbegin; <label for=termexpert> &Lang. label. find; </label> &Style. font. labelend; &Style. dialog. elementbegin; <textarea name=termexpert id=termexpert> &termexpert; </textarea> &Style. dialog. elementend; &Style. dialog. rowend;

Expert Search (Lynx) Current database: World. Cat Type search terms and choose limits. Click

Expert Search (Lynx) Current database: World. Cat Type search terms and choose limits. Click on Search. Use the reference information on the screen. [Search] dog________________________________________ ______________________ Indexed in: [Keyword (kw: )_____] Limit to: Year 1990 -______ Document Type [Books____] Language [English______] Library Code ______ [_] Items in my library (OCL) Rank by: [No ranking_____] [Search] [info] [index] [subjects] [news] [help]

FSPage for Detailed Record [record] pagename = record pagetitle = &Lang. pagetitle. record; pagelabel

FSPage for Detailed Record [record] pagename = record pagetitle = &Lang. pagetitle. record; pagelabel = &Lang. pagelabel. record; tips = &Lang. tips. record; status = &Lang. status. record; controls = &Style. thesaurus. gadget; &Style. ill. gadget; &Style. holdings. gadget; &Style. email. gadget; &Style. print. gadget; action = FETCH: fetchtype=record panel = &Style. dialog. begin; &Style. navigate. gadget; &Style. record. gadget; &Style. navigate. gadget; &Style. dialog. end;

Platform-Dependent Partition: Replace Styles with Entities n Mark up text with entities (constants, variables,

Platform-Dependent Partition: Replace Styles with Entities n Mark up text with entities (constants, variables, and methods) &Error. Begin; Something bad happened &Error. End; Error. Begin = <font color=red size=4><b> Error. End = </b></font>

Platform-Dependent Partition: Modify Entities with Entities &Error. Begin; Something bad happened &Error. End; Error.

Platform-Dependent Partition: Modify Entities with Entities &Error. Begin; Something bad happened &Error. End; Error. Begin = <font color=red size=&Error. Size; ><b> Error. End = </b></font> [screensize=default] Error. Size = 4 [screensize=small] Error. Size = 3 [screensize=large] Error. Size = 5

Style Abstraction/Presentation extract formats/styles Platformindependent HTML file Style file style entity substitution

Style Abstraction/Presentation extract formats/styles Platformindependent HTML file Style file style entity substitution

Language-Dependent Partition n Replace all language with entities &Error. Begin; &Lang. msg. bad; &Error.

Language-Dependent Partition n Replace all language with entities &Error. Begin; &Lang. msg. bad; &Error. End; [msg] bad = Something bad happened nohits = Your search <b>&query; </b> matched no records nojs = your browser does not support Java. Script

Internationalization/Localization replace language strings Languageindependent HTML file Language file language entity substitution

Internationalization/Localization replace language strings Languageindependent HTML file Language file language entity substitution

Multilingual Advanced Search

Multilingual Advanced Search

Result of Partitioning n n n Pages. ini: functional decisions Style. ini: platform-dependent decisions

Result of Partitioning n n n Pages. ini: functional decisions Style. ini: platform-dependent decisions Language files: – en. ini (English) – es. ini (Spanish) – fr. ini (French)

Template-Based Page Generation <html pagename="&pagename; "> <head> <title>&pagetitle; </title> </head> <body> &pagestatus; &pagestips; <form

Template-Based Page Generation <html pagename="&pagename; "> <head> <title>&pagetitle; </title> </head> <body> &pagestatus; &pagestips; <form name="main" method="POST” action="&pageaction; "> &pagepanel; &pagecontrols; &Style. FSMenu. gadget; </form> </body> </html>

Dynamic Page Generation Pages file Style file Language files GUI template Lynx template Print

Dynamic Page Generation Pages file Style file Language files GUI template Lynx template Print template

Adapting to Levels of Users n n n Page names: Basic, Advanced, Expert Search

Adapting to Levels of Users n n n Page names: Basic, Advanced, Expert Search box: 1 small, 3 small, 1 large Indexes: 3, 10 -15, 20 -30 Limits: full-text/library, all Help: simple examples, complex examples, reference material on screen

Lynx Text-Only Version n Used same style file as graphical, but used vertical page

Lynx Text-Only Version n Used same style file as graphical, but used vertical page template Lynx knows that <tr> starts a new line, so tables could be left in HTML Lynx-only format entities used to tune the display: space, bar, break, line, paragraph, comment

Accessibility Issues: WAI Guide n n title attribute: shows popup help on form elements

Accessibility Issues: WAI Guide n n title attribute: shows popup help on form elements and links LABEL tag: associates prompts with form elements accesskey attribute: associates Alt-x key with form element table attributes: not yet supported

Coordination Issues n n n INI files were easy to edit by nonprogrammers, but

Coordination Issues n n n INI files were easy to edit by nonprogrammers, but validation scripts were run for all Partitioning style and language centralized decisions, providing control to the right authority Large- and small-scale changes were made independently

Summary of Architecture n n n Style, Language, and Functional partitions stored in INI

Summary of Architecture n n n Style, Language, and Functional partitions stored in INI files - required the user interface police, armed with validation scripts Heavy dependence on dynamic entity substitution, including page templates Both required a change of development paradigm - more rigorous control

Cost-Benefit Analysis: Cross-Product of Partitions n Pages – add/change screens independently n Styles –

Cost-Benefit Analysis: Cross-Product of Partitions n Pages – add/change screens independently n Styles – add/change templates – add/change (conditional) attributes n Languages – change terminology in one place – add a new language

Conclusions n n n Addressing many access issues helped with individual (unexpected) issues Not

Conclusions n n n Addressing many access issues helped with individual (unexpected) issues Not critical to get design right; need to be able to change what is wrong Expect the unexpected – new/changed requirements – “opportunities” from usability testing

Thank You! n n n Gary Perlman perlman@oclc. org http: //www. acm. org/~perlman/

Thank You! n n n Gary Perlman perlman@oclc. org http: //www. acm. org/~perlman/