The First Search User Interface Architecture Universal Access
















![FSPage for Expert Search [expert] pagename pagetitle pagelabel tips status controls = = = FSPage for Expert Search [expert] pagename pagetitle pagelabel tips status controls = = =](https://slidetodoc.com/presentation_image_h/b75144989abde9ff37cb42eef11241fc/image-17.jpg)
![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.](https://slidetodoc.com/presentation_image_h/b75144989abde9ff37cb42eef11241fc/image-18.jpg)

![FSPage for Detailed Record [record] pagename = record pagetitle = &Lang. pagetitle. record; pagelabel FSPage for Detailed Record [record] pagename = record pagetitle = &Lang. pagetitle. record; pagelabel](https://slidetodoc.com/presentation_image_h/b75144989abde9ff37cb42eef11241fc/image-20.jpg)


















- Slides: 38
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. 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 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 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 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 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 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 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: 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 version No real experience in the area
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 (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 (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 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 = = = 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. 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 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 = &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, 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. 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
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
Multilingual Advanced Search
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 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 template
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 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 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 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 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 – 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 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/