This document is also available in these non-normative formats: XML.
Copyright © 2003 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
This document specifies usage scenarios for full-text queries as part of XML Query [XQuery] and XPath [XPath].
This is a public W3C Working Draft for review by W3C Members and other interested parties. This section describes the status of this document at the time of its publication. It is a draft document and may be updated, replaced, or made obsolete by other documents at any time. It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress." A list of current public W3C technical reports can be found at http://www.w3.org/TR/.
The Full-Text Use Cases have been defined jointly by the XML Query Working Group and the XSL Working Group (both parts of the XML Activity) .
The Full-Text Use Cases are published in conjunction with the XQuery and XPath Full-Text Requirements.
This is the first version of this document.
This document is a work in progress. It contains many open issues, and should not be considered to be fully stable. Vendors who wish to create preview implementations based on this document do so at their own risk. While this document reflects the general consensus of the working groups, there are still controversial areas that may be subject to change.
Public comments on this document and its open issues are welcome. Comments should be sent to the W3C XPath/XQuery mailing list, public-qt-comments@w3.org (archived at http://lists.w3.org/Archives/Public/public-qt-comments/).
Patent disclosures relevant to this specification may be found on the XML Query Working Group's patent disclosure page at http://www.w3.org/2002/08/xmlquery-IPR-statements and on the XSL Working Group's patent disclosure page at http://www.w3.org/Style/XSL/Disclosures.
A list of current W3C Recommendations and other technical documents can be found at http://www.w3.org/TR/.
1 Full-Text Use Cases: Preliminaries
1.1 Proper Display of This Unicode Document
1.2 Introduction
1.3 Explanation of Query Statements
1.4 Schema for Sample Data
1.5 Sample Data
2 Use Case "WORD": Word and Phrase Queries
2.1 Description
2.2 Queries and Results
2.2.1 Q1 Single Word Query
2.2.2 Q2 Single Phrase Query
2.2.3 Q3 Single Phrase Query on Long Text Excerpt
2.2.4 Q4 Single Phrase Query on Chinese Characters
3 Use Case "ELEMENT": Queries on XML Elements and Attributes
3.1 Description
3.2 Queries and Results
3.2.1 Q1 Query on Element
3.2.2 Q2 Query on Multiple Operands in Same Instance of an Element
3.2.3 Q3 Query on Multiple Operands in Any Instance of an Element
3.2.4 Q4 Query on Multiple Operands in Every Instance of an Element
3.2.5 Q5 Query on Element Returning Different Elements
3.2.6 Q6 Query on Multiple Elements
3.2.7 Q7 Query Across Element Boundaries
3.2.8 Q8 Query on Element and Its Descendants
3.2.9 Q9 Query on Attribute
3.2.10 Q10 Query on Element and Attribute
4 Use Case "STOP-WORD": Queries Ignoring and Overriding Stop Words
4.1 Description
4.2 Queries and Results
4.2.1 Q1 Query on Word Ignoring Single Stop Word
4.2.2 Q2 Query on Phrase Ignoring Single Stop Word
4.2.3 Q3 Query on Phrase Overriding Single Stop Word
4.2.4 Q4 Query on Phrase Ignoring Multiple Stop Words
4.2.5 Q5 Query on Phrase Overriding Multiple Stop Words
5 Use Case "CHARACTER-MANIPULATION": Queries Manipulating Normalized Characters and Tokenized Words, Spaces, and Punctuation
5.1 Description
5.2 Queries and Results
5.2.1 Q1 Query Returning Characters with Diacritics Only
5.2.2 Q2 Query Returning Characters with and without Diacritics
5.2.3 Q3 Query Returning Upper Case Characters Only
5.2.4 Q4 Query Returning Upper Case and Lower Case Characters
5.2.5 Q5 Query Returning Word with Special Character
5.2.6 Q6 Query Returning Word with Special Character or Phrase with Space
6 Use Case "WILDCARD": Character Wildcard (Prefix, Infix, Suffix) and Word Wildcard Queries
6.1 Description
6.2 Queries and Results
6.2.1 Q1 Single Prefix Character Wildcard Query
6.2.2 Q2 Single Suffix Character Wildcard Query
6.2.3 Q3 Single Infix Character Wildcard Query
6.2.4 Q4 0 or More Prefix Character Wildcard Query
6.2.5 Q5 0 or More Suffix Character Wildcard Query
6.2.6 Q6 0 or More Suffix Character Wildcard Query on a Part of a Word
6.2.7 Q7 0 or More Infix Character Wildcard Query
6.2.8 Q8 Specified Range Suffix Characters Wildcard Query
6.2.9 Q9 Word Wildcard Query
6.2.10 Q10 Specified Range Word Wildcard Query
7 Use Case "STEMMING": Word Stemming Queries
7.1 Description
7.2 Queries and Results
7.2.1 Q1 Single Word Stemming Query
7.2.2 Q2 Multiple Word Stemming Query
8 Use Case "THESAURUS": Queries Which Use Thesauri, Dictionaries, and Taxonomies
8.1 Description
8.2 Queries and Results
8.2.1 Q1 Query on Synonyms Identified by a Thesaurus
8.2.2 Q2 Query on Narrower Terms Identified by a Thesaurus
8.2.3 Q3 Query on Broader Terms Identified by a Thesaurus
8.2.4 Q4 Query on Word Which Sounds Like Other Words
8.2.5 Q5 Query on Word Spelled Similarly to Other Words
8.2.6 Q6 Query on Subordinate Terms Identified by a Taxonomy
9 Use Case "BOOLEAN": Or, And, and Not Queries
9.1 Description
9.2 Queries and Results
9.2.1 Q1 Or Query
9.2.2 Q2 Or Query on More than Two Words
9.2.3 Q3 Or Query on Phrases
9.2.4 Q4 And Query
9.2.5 Q5 And Query on More than Two Words
9.2.6 Q6 And Query on Phrases
9.2.7 Q7 Unary Not Query
9.2.8 Q8 And Not Query
9.2.9 Q9 And Not Query Where Second Operand is a Subset of the First Operand
9.2.10 Q10 Mild Not Query Where Second Operand is a Subset of the First Operand
10 Use Case "DISTANCE": Queries on Distance Relationships Including Proximity, Window, Sentence, and Paragraph Queries
10.1 Description
10.2 Queries and Results
10.2.1 Q1 Unordered Proximity Query
10.2.2 Q2 Ordered Proximity Query
10.2.3 Q3 Unordered Window Query
10.2.4 Q4 Ordered Window Query
10.2.5 Q5 Unordered Within a Sentence Query
10.2.6 Q6 Ordered Within a Sentence Query
10.2.7 Q7 Unordered Within a Paragraph Query
10.2.8 Q8 Ordered Within a Paragraph Query
11 Use Case "ADVANCED-WORD": Advanced Word and Phrase Queries
11.1 Description
11.2 Queries and Results
11.2.1 Q1 Ordered Word Query
11.2.2 Q2 AtLeast Query
11.2.3 Q3 Starts-With Query
11.2.4 Q4 Exact Phrase Only Query
12 Use Case "SCORE": Queries Unique to Score
12.1 Description
12.2 Queries and Results
12.2.1 Q1 Multiple Word Query
12.2.2 Q2 Multiple Phrase Query
12.2.3 Q3 Query Which Returns Scores
12.2.4 Q4 Query Returning Results with Top Scores
12.2.5 Q5 Query Which Filters on Scores
12.2.6 Q6 Query Which Returns All Documents Ordered
13 Use Case "STRUCTURE": Queries using XPath Axes
13.1 Description
13.2 Queries and Results
13.2.1 Q1 Query on Element and Its Children
13.2.2 Q2 Query on Element Returning Its First Two Children
13.2.3 Q3 Query on Element and Its Descendants
13.2.4 Q4 Query on Element and Its Parent
13.2.5 Q5 Query on Element and Its Ancestors
13.2.6 Q6 Query on Element and Its Right Siblings
13.2.7 Q7 Query on Element and Its Siblings
13.2.8 Q8 Query on Same Element in Different Sub-Trees
13.2.9 Q9 Query on Different Elements in Different Sub-Trees
13.2.10 Q10 Conditional Query on Different Elements in Different Sub-Trees
13.2.11 Q11 Query on Element and Its Descendants, Returning Ancestors and Descendants
14 Use Case "IGNORE": Queries Ignoring Tags and Content
14.1 Description
14.2 Queries and Results
14.2.1 Q1 Query Ignoring Tags within a Word
14.2.2 Q2 Query Ignoring Tags within Multiple Words
14.2.3 Q3 Phrase Query Ignoring All Tags of Descendant Elements
14.2.4 Q4 Phrase Query Ignoring Explicit List of Tags of Descendant Elements
14.2.5 Q5 Phrase Query Ignoring All Tags and Content of Descendant Elements
14.2.6 Q6 Phrase Query Ignoring Explicit List of Tags and Content of Descendant Elements
14.2.7 Q7 Phrase Query Ignoring Tags and Content of Descendant Elements Identified by a Full-Text Query
14.2.8 Q8 Phrase Query Ignoring Tags and Content of Descendant Elements Identified by an XPath Query
14.2.9 Q9 Proximity Query Ignoring All Tags of Descendant Elements
14.2.10 Q10 Proximity Query Ignoring All Tags and Content of Descendant Elements
15 Use Case "COMPOSABILITY": Queries Illustrating Composability of Full-Text with Other XQuery Functionality
15.1 Description
15.2 Queries and Results
15.2.1 Q1 Query Combining Full-Text with Creation of New Elements
15.2.2 Q2 Query Combining Full-Text with Aggregate on Number of Elements
15.2.3 Q3 Query Combining Full-Text with Conditional Return
15.2.4 Q4 Query Combining Full-Text with Functions on Numerics
15.2.5 Q5 Query Combining Full-Text with Query on Character String
15.2.6 Q6 Query Combining Full-Text with Operators on Booleans
15.2.7 Q7 Query Combining Full-Text with Queries on Nodes and Dates
16 Use Case "COMPLEX": Complex Queries
16.1 Description
16.2 Queries and Results
16.2.1 Q1 Query Entered in More than One Language
16.2.2 Q2 Query Combining Proximity, Phrase, and Stemmed Queries within an Instance of an Element
16.2.3 Q3 Nested Proximity Query with Wildcards, Thesaurus Support, and Stemming
16.2.4 Q4 Query Combining Proximity, Boolean, and Stemming Queries which Ignores Tags and Content of a Descendant Element
16.2.5 Q5 Query on Different Elements in Different Sub-Trees with a Conditional Return
16.2.6 Q6 Query Combining Full-Text with Character String, Node, and Date Queries
A Acknowledgements
B References
B.1 References (Primary)
B.2 References (Background)
(1) Use a current operating system and browser.
(2) Set the character encoding in the browser to Unicode or UTF-8. Often this setting is changed from the View menu.
The use cases listed below were created by XML Query and XSL Working Groups, to illustrate important applications of full-text querying within an XML query language. Each use case exercises a specific functionality relevant to full-text querying. A Schema and sample input data are provided. Each use case specifies a set of queries that might be applied to the input data, and the expected results for each query. In a future version, the use cases will be republished with solutions in XQuery and/or XPath.
The document supplements the XML Query Use Cases which can be found in the W3C XML Query Use Cases [XQuery-UseCases]. Use cases for character string querying are included in the XML Query Use Cases, not in this document.
The full-text queries in the following use cases are performed on text which has been tokenized, i.e., broken into a sequence of words, units of punctuation, and spaces. A word is defined as any character, n-gram, or sequence of characters returned by a tokenizer as a basic unit to be queried. Each instance of a word consists of 0 or more consecutive characters. Beyond that words are implementation defined. Note that consecutive words need not be separated by either punctuation or space, and words may overlap. Tokenization enables functions and operators which work with the relative positioning of words (e.g., proximity operators). Tokenization also enables functions and operators which operate on a part or the root of the word (e.g., wildcards, stemming).
A phrase is a sequence of ordered words. A sequence can contain any number of words.
These use cases:
(1) Present some possible functions and features for tokenized text support in XQuery and XPath. None are yet available in XQuery or XPath. Please comment on these use cases and recommend others.
(2) Illustrate simple and complex queries. The more complex queries would normally only be constructed by programmers, librarians, and other expert users, or provided for novice users via saved queries or graphical user interfaces. Each query is intended to illustrate a single functionality, although queries might overlap in their functionalities (e.g., phrases and ordered proximity queries allowing no intervening words). Overlapping and similar functionalities are noted in the comments on query behavior.
(3) Draw from sample data which are almost entirely in English. Use cases in other languages are solicited, especially where they illustrate language-specific implementations of functions and features. Among the most sought after are use cases for queries using prefix and infix wild cards, proximity queries, and operators and queries requiring functionality which may not have Western language equivalents.
(4) Include queries which in most instances can be written with pure Boolean full-text predicates or with scoring (e.g., scoring on the number of occurrences of a word or phrase, scoring on how close words are to one another within a proximity query, scoring on how similar a word is to the one being stemmed) [BYR99] [HTK00]. A few, in Section 12 (SCORE), cannot be written with Boolean full-text predicates. Scoring methodologies will not be defined in this standard. Scoring will be implementation-defined. Results are provided in document order, except those in Section 12 (SCORE). Results could be returned ordered differently, such as by relevance (based on implementation-defined scoring) or explicitly by an element.
(5) Include queries on element content and attribute values.
(6) Include queries which are case-insensitive. When returning a paragraph, the text is returned as it occurs in the data model. This approach was chosen to keep the sample data short and the expected results meaningful. It would have be equally valid to return only the character queried. An variation is found in Section 5 (CHARACTER-MANIPULATION).
(7) Include queries which when they target XML elements are understood, unless otherwise stated, to query text within any text node descendant of the element.
(8) Include queries which return only elements and attributes which meet all the conditions specified in the query. In particular, Boolean queries return results where the Boolean conditions in the query are satisfied, i.e., are used to select what is being returned to users.
Query results may be returned in different ways. From a query for books containing the word "usability", users might be interested in returning, for each book containing the word "usability", its number and its entire content. In another situtation for the same query, users might be interested in returning, for each book containing the word "usability", its number and only the elements and attributes in the content which contain the word "usability". As in this second situation, the queries in these use cases return only elements and attributes which meet all the conditions specified in the query.
The Return clause may also include additional or different elements and attributes if specified, and may construct new elements.
(9) Include queries which provide some of the basic functionality of fuzzy match querying (e.g., wildcards, stemming, dictionary and thesaurus support, proximity).
(10) Provide highlighting of found words and phrases in the expected results of queries as an aid to users. The presence of highlighting says nothing about whether highlighting will be a feature of XQuery or XPath full-text querying.
(11) Display no Solutions in XQuery because no decisions have been taken on syntax. They will be added in a future version.
Examples of full-text querying functionalities for XML query languages can be found in [FGR01], [HTK00], [MJK98], [SCH01] and [TWE00].
To make the output more readable, the output of queries has been formatted using whitespace which may not be returned by a query processor. This whitespace should not be considered normative for the correctness of results.
These use cases represent a snapshot of an ongoing work. Some important operators and features are not yet adequately covered by a use case. The XML Query and XSL Working Groups reserve the right to add, delete or modify individual queries or whole use cases as the work progresses. The presence of a query in this set of use cases does not necessarily indicate that the query will be expressible in XQuery [XQuery] and/or XPath [XPath] to be created by the XML Query and XSL Working Groups.
The queries in these use cases are presented in the following format:
Query number Query title
User statement of query
Statement of functionality illustrated by query
Operands: Parts of words, words, phrases
Functionality: Operators, functions, collations, other functionality
Context: One or more XPath expressions locating the elements and attributes to be queried
Return: One or more XPath expressions which are returned only if they meet all the conditions specified in the query, and additional or different XPath expressions if specified. These may include constructed elements.
Comments: Comments on query behavior in general and against the sample data in particular, plus the rationale for including this query in the use cases.
Version: Each query is marked as "For consideration in v.1" or "For consideration after v.1".
Expected Result:
Results are provided here.
Found words and phrases are highlighted.
Three dots "..." replace elements and content to shorten results.The example queries in these use cases are based on a collection with the following Schema:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation = "http://www.w3.org/2001/xml.xsd"/>
<xs:element name="books">
<xs:annotation>
<xs:documentation>A possible XML Schema for Sample Data
in XQuery and XPath Full-Text Use Cases</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="metadata">
<xs:complexType>
<xs:complexContent>
<xs:extension base="metadataType"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="content" type="contentType"/>
</xs:sequence>
<xs:attribute name="number" type="xs:integer"
use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="anyXMLTextType" mixed="true">
<xs:annotation>
<xs:documentation>free text, contains any well-formed
XML</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:any processContents="skip" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="metadataType">
<xs:sequence>
<xs:element name="title" type="xs:string">
<xs:complexType>
<xs:complexContent>
<xs:extension base="titlesType">
<xs:attribute name="shortTitle" type="xs:string"
use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="authors" type="authorsType"
minOccurs="0"/>
<xs:element name="publicationInfo"
type="publicationInfoType"/>
<xs:element name="price" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:float">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="10000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="subjects" maxOccurs="unbounded">
<xs:complexType>
<xs:complexContent>
<xs:extension base="subjectsType">
<xs:attribute ref="xml:lang" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="authorsType">
<xs:sequence>
<xs:element name="author" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="subjectsType">
<xs:sequence>
<xs:element name="subject" type="xs:string"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="publicationInfoType">
<xs:sequence>
<xs:element name="place" type="xs:string" minOccurs="0"/>
<xs:element name="publisher" type="xs:string"
maxOccurs="unbounded"/>
<xs:element name="dateIssued" type="xs:string"/>
<xs:element name="dateRevised" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="contentType">
<xs:sequence>
<xs:element name="introduction" type="introductionType"
minOccurs="0"/>
<xs:element name="part" maxOccurs="unbounded">
<xs:complexType>
<xs:complexContent>
<xs:extension base="partType">
<xs:attribute name="number" type="xs:string"
use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="introductionType">
<xs:sequence>
<xs:element name="author" type="xs:string" minOccurs="0"/>
<xs:element name="p" maxOccurs="unbounded">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="b"/>
<xs:element name="emph"/>
<xs:element name="i"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="partType">
<xs:sequence>
<xs:element name="container" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" type="xs:string"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="title" type="titleType" minOccurs="0"/>
<xs:element name="introduction" type="introductionType"
minOccurs="0"/>
<xs:element name="chapter" type="chapterType"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="component" type="componentType"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="chapterType">
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="p" type="anyXMLTextType"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="footnoteType" mixed="true">
<xs:sequence>
<xs:element name="citation" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="url" type="xs:anyURI"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="componentType">
<xs:sequence>
<xs:element name="container" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" type="xs:string"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="componentTitle">
<xs:complexType mixed="true">
<xs:complexContent mixed="true">
<xs:extension base="componentTitleType"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="subComponent" type="subComponentType"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="titleType" mixed="true">
<xs:all minOccurs="0">
<xs:element name="date">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="normalize" type="xs:string"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="componentTitleType" mixed="true">
<xs:sequence>
<xs:element name="componentDate" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="normalize" type="xs:string"
use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="subComponentType">
<xs:sequence>
<xs:element name="container" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" type="xs:string"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="componentTitle">
<xs:complexType mixed="true">
<xs:complexContent mixed="true">
<xs:extension base="componentTitleType"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="subsubComponent"
type="subSubComponentType" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="subSubComponentType">
<xs:sequence>
<xs:element name="container" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type"
type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="componentTitle">
<xs:complexType mixed="true">
<xs:complexContent mixed="true">
<xs:extension base="componentTitleType"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>The data consists of a collection of three books. Two are primarily instructive text. The third is a guide to a manuscript collection. All contain metadata and full text.
<books>
<book number="1">
<metadata>
<title shortTitle="Improving Web Site Usability">Improving
the Usability of a Web Site Through Expert Reviews and
Usability Testing</title>
<authors>
<author>Millicent Marigold</author>
<author>Montana Marigold</author>
</authors>
<publicationInfo>
<place>New York</place>
<publisher>Ersatz Publications</publisher>
<dateIssued>2001</dateIssued>
<dateRevised>2002</dateRevised>
</publicationInfo>
<price>25.99</price>
<subjects xml:lang="en">
<subject>Usability testing</subject>
<subject>Web site development</subject>
<subject>Heuristic evaluation</subject>
<subject>Cognitive walk-through</subject>
<subject>Web site usability</subject>
</subjects>
<subjects xml:lang="fr">
<subject>Tests d'ergonomie</subject>
<subject>Développement de site web</subject>
<subject>Évaluation heuristique</subject>
<subject>Parcours cognitif</subject>
<subject>Ergonomie de site web</subject>
</subjects>
<subjects xml:lang="zh">
<subject>可用性测试</subject>
<subject>网站建置</subject>
<subject>启发式评价</subject>
<subject>认知推演</subject>
<subject>网站可用性</subject>
</subjects>
</metadata>
<content>
<introduction>
<author>Elina Rose</author>
<p>The usability of a Web site is how well the
site supports the user in achieving specified
goals. A Web site should facilitate learning,
and enable efficient and effective task
completion, while propagating few errors.
Satisfaction with the site is also important.
The user must not only be well-served, but must
feel well-served.</p>
<p>Expert reviews and usability testing are
methods of identifying problems in layout,
terminology, and navigation before they frustrate
users and drive them away from your site.</p>
<p>The most successful projects employ multiple
methods in multiple iterations. As Millicent
Marigold remarked during a recent conference,
"Don't stop. Iterate, iterate, then iterate
again."</p>
<p>This book has been approved by the Web Site
Users Association.</p>
</introduction>
<part number="1">
<title>Expert Reviews</title>
<introduction>
<p>Expert reviewers identify problems
and recommend changes to web sites based
on research in human computer interaction
and their experience in the field.</p>
<p>Two expert review methods are discussed
here. They are heuristic evaluation and
cognitive walk-through.</p>
<p>Expert review methods should be
initiated early in the development process,
as soon as paper <b>p</b>rototypes
(hand-drawn pictures of Web pages) or
<b>w</b>ireframes (electronic mockups) are
available. They should be conducted using
the hardware and software similar to that
employed by users.</p>
</introduction>
<chapter>
<title>Heuristic Evaluation</title>
<p>Expert reviewers critique an interface to
determine conformance with recognized
usability principles. <footnote>One of the
best known lists of heuristics is <citation
url="http://www.useit.com/papers/heuristic
/heuristic_list.html">Ten Usability
Heuristics by Jacob Nielson</citation>. Another
is <citation url="http://usability.gov
/guidelines/index.html"> Research-Based Web
Design and Usability Guidelines</citation>
</footnote></p>
</chapter>
<chapter>
<title>Cognitive Walk-Through</title>
<p>Expert reviewers evaluate Web site
understandability and ease of learning while
performing specified tasks. They walk through
the site answering questions such as "Would a
user know by looking at the screen how to
complete the first step of the task?" and "If
the user completed the first step, would the
user know what to do next?," with the goal of
identifying any obstacles to completing the
task and assessing whether the user would
cognitively be aware that he was successful in
completing a step in the process.</p>
</chapter>
</part>
<part number="2">
<chapter>
<title>Usability Testing</title>
<p>Once the problems identified by expert
reviews have been corrected, it is time to
conduct some tests of the site with your unique
audience or audiences by conducting usability
testing.</p>
<p>Users are asked to complete tasks which
measure the success of the information
architecture and navigational elements of the
site.</p>
<p>Then changes are made to improve service to
users.</p>
</chapter>
</part>
</content>
</book>
<book number="2">
<metadata>
<title shortTitle="Usability Basics">Usability
Basics: How to Plan for and Conduct Usability Tests
on Web Site Thereby Improving the Usability of Your
Web Site</title>
<publicationInfo>
<place>New York</place>
<publisher>Ersatz Publications</publisher>
<publisher>Electronic BookWorks</publisher>
<dateIssued>2000</dateIssued>
<dateRevised>2001</dateRevised>
</publicationInfo>
<price>174.00</price>
<subjects xml:lang="en">
<subject>Usability testing</subject>
<subject>Web site development</subject>
<subject>Guides and finding aids</subject>
</subjects>
<subjects xml:lang="fr">
<subject>Tests d'ergonomie</subject>
<subject>Développement de site web</subject>
<subject>Guides et outils de recherche</subject>
</subjects>
<subjects xml:lang="zh">
<subject>可用性测试</subject>
<subject>网站建置</subject>
<subject>指南和检索工具</subject>
</subjects>
</metadata>
<content>
<introduction>
<p>This is a basic handbook for planning and
conducting usability tests on Web sites. Usability
testing should be used in conjunction with other
expert review methods.</p>
<p>This book has not been approved by the Web Site
Users Association.</p>
</introduction>
<part number="1">
<chapter>
<title>Planning then Conducting Usability
Tests</title>
<p>Take the following steps to plan usability
testing. <step number="1">Clarify and
articulate the goal of the usability testing.
</step> <step number="2">Identify tasks which
are critical for users to be able to complete
successfully. </step> <step number="3">Compile
a script of questions or instructions which
will prompt the user to attempt those
tasks.</step> <step number="4">Identify your
users and begin recruiting them.</step> <step
number="5">Conduct a pretest on a few users.
</step> <step number="6">Edit the script based
on insights gleaned from the pretest.</step>
<step number="7">Resume testing.</step></p>
</chapter>
</part>
<part number="2">
<chapter>
<title>Conducting Usability Tests</title>
<p>Users can be tested at any computer
workstation <footnote>They may be most
comfortable at their own workstation.
</footnote> or in a lab.</p>
<p>Give the user the script, then assure them
that you are testing the Web site, not them.
Users are asked to verbalize their thoughts as
they complete the tasks. The event is recorded
or someone takes notes. It is often preferable
to have two testers, <footnote>Usability
testing can be done at great expense or on a
shoe string, using <testingProcedure>in-house
expertise</testingProcedure> or
<testingProcedure>contracting with human
computer interaction professionals
</testingProcedure>.</footnote> one to ask the
questions, another to take notes. Testers should
offer no guidance or comments to the user. Mouse
movements, typing, expressions, and the user's
words should be recorded.</p>
</chapter>
<chapter>
<title>Evaluating and Implementing Results</title>
<p>Compile the results and review collectively.
Make changes to the site to alleviate the problems
found in Web site components which were propagating
the largest number of or the most devastating errors.
Begin new iterations of testing and changes, until
users are successful in the accomplishing the
tasks.</p>
</chapter>
</part>
</content>
</book>
<book number="3">
<metadata>
<title shortTitle="Usabilityguy Manuscript
Guide">John Wesley Usabilityguy: A Register of His
Papers</title>
<authors>
<author>Millicent Marigold</author>
<author>Morty Marigold</author>
</authors>
<publicationInfo>
<publisher>Ersatz Manuscript Library</publisher>
<dateIssued>1998</dateIssued>
<dateRevised>2002</dateRevised>
</publicationInfo>
<price>21.49</price>
<subjects xml:lang="en">
<subject>Computers</subject>
<subject>Software evaluation</subject>
<subject>Usability testing</subject>
<subject>Manuscript collections</subject>
</subjects>
<subjects xml:lang="fr">
<subject>Ordinateurs</subject>
<subject>Évaluation de logiciels</subject>
<subject>Tests d'ergonomie</subject>
<subject>Collections de manuscrits</subject>
</subjects>
<subjects xml:lang="zh">
<subject>计算机</subject>
<subject>软件评价</subject>
<subject>可用性测试</subject>
<subject>手稿专藏</subject>
</subjects>
</metadata>
<content>
<introduction>
<p>The papers of John Wesley Usabilityguy span the
years 1946-2001, with the bulk of the items
concentrated in the period from 1985 to 2001. The
papers feature his career as a developer of software
applications and usability specialist. The collection
consists of correspondence, memoranda, journals,
speeches, article drafts, book drafts, notes, charts,
graphs, family papers, clippings, printed matter,
photographs, résumés and other materials.</p>
</introduction>
<part number="1"> <container type="box">1-12</container>
<title>Subject File, <date normalize="1930/1974">
1930-1974</date></title>
<introduction>
<p>Correspondence, telegrams, memoranda, journals,
logs, testimony, approved travel orders, invitations,
charts, graphs, forms, biographical data, photographs,
book drafts, clippings and other printed matter,
résumés and miscellaneous material. Organized by
name of person or organization, topic, or type of
material.</p>
</introduction>
<component><container type="box">1</container>
<componentTitle>Computers</componentTitle>
<subComponent>
<componentTitle>Software,
<componentDate normalize="1946/1947">1946-1947
</componentDate>
</componentTitle>
</subComponent>
<subComponent>
<componentTitle>Human Computer Interaction
research, <componentDate normalize="1945/1952">
1945-1952</componentDate>
</componentTitle>
<subsubComponent>
<componentTitle>Flow diagram,
<componentDate normalize="1950">1950
</componentDate>
</componentTitle>
</subsubComponent>
<subsubComponent>
<componentTitle>General,
<componentDate normalize="1947/1951">1947-1951
</componentDate>
</componentTitle>
</subsubComponent>
<subsubComponent><container type="box">2</container>
<componentTitle>Eye Movement research,
<componentDate normalize="1949/1950">1949-1950
</componentDate>
</componentTitle>
</subsubComponent>
<subsubComponent>
<componentTitle>User profiling,
<componentDate normalize="1950/1959">1950s
</componentDate>
</componentTitle>
</subsubComponent>
</subComponent>
</component>
<component>
<componentTitle>Web User Appreciation Award,
<componentDate normalize="1956">1956</componentDate>
</componentTitle>
</component>
</part>
<part number="2"><container type="box">3-5</container>
<title>Writings File,
<date normalize="1985/1999">1985-1999</date>
</title>
<introduction>
<p>Correspondence, articles, book drafts, notes,
contracts, clippings, and printed matter. Arranged
alphabetically by type (articles, books, reports,
and miscellaneous) and therein alphabetically by
type of material, subject, or title.</p>
</introduction>
<component>
<componentTitle>Writings by Usabilityguy
</componentTitle>
<subComponent>
<componentTitle><componentDate normalize="1996">
1996</componentDate>
</componentTitle>
<subsubComponent>
<componentTitle>"How Many Users Are Enough
for User Testing?"</componentTitle>
</subsubComponent>
<subsubComponent>
<componentTitle>"How to Evaluate Results from
User Tests."</componentTitle>
</subsubComponent>
<subsubComponent>
<container type="box">5</container>
<componentTitle>"When Are You Done Testing?"
</componentTitle>
</subsubComponent>
<subsubComponent>
<componentTitle>"Do-It-Yourself User Testing"
</componentTitle>
</subsubComponent>
</subComponent>
</component>
<component>
<componentTitle>Charitable Contributions
</componentTitle>
<subComponent>
<componentTitle>Diseases: AIDS, Hepatitis,
Tuberculosis <componentDate normalize=
"1990/1999">1990-1999</componentDate>
</componentTitle>
</subComponent>
<subComponent>
<componentTitle>Environmental Conservation:
Rivers <componentDate normalize="1995">1995
</componentDate>
</componentTitle>
</subComponent>
</component>
</part>
</content>
</book>
</books>These use cases begin with the simplest queries possible--queries on a single word or phrase. Phrase queries are queries on one or more sequences of words. A sequence can contain any number of words. One of these queries is on Chinese characters.
Refer to Section 9 (BOOLEAN) for multiple word and phrase queries with Boolean full-text predicates. Refer to Section 12 (SCORE) for multiple word and phrase queries with score.
Find all book titles containing the word "usability".
This query finds a single word within an element.
Operands: "usability"
Functionality: word query
Context: books/book/metadata/title
Return: books/book/metadata/title
Comments: This is the simplest query possible, a query on one word within one element. This query does not employ wildcards, stemming, or thesaurus support. While this query finds useful results in the sample data, most queries such as one on the word "test" would not. A query on the word "test" would return no results, missing the word variants which exist in the sample data: "pretest" "tested" "testers" "testimony" "testing" and "tests".
Version: For consideration in v.1
Expected Result:
<title>Improving the Usability of a Web Site Through Expert Reviews and Usability Testing</title> <title>Usability Basics: How to Plan for and Conduct Usability Tests on Web Site Thereby Improving the Usability of Your Web Site</title>
Find all book subjects containing the phrase "usability testing".
This query finds a single phrase within an element.
Operands: "usability testing"
Functionality: phrase query
Context: books//subject
Return: books//subject
Content: This is a simple query on one phrase within one element. Unlike an unordered proximity query, the words in this phrase query must be adjacent to each other and must appear in the order specified. While this query finds useful results in the sample data, most queries such as one on "software developer" would not. A query on the phrase "software developer" would return no results, missing "developer of software" which exists in the sample data.
Version: For consideration in v.1
Expected Result:
<subject>Usability testing</subject> <subject>Usability testing</subject> <subject>Usability testing</subject>
Find all book text containing the phrase "would a user know by looking at the screen how to complete the first step of the task".
This query finds a single phrase in an element.
Operands: "would a user know by looking at the screen how to complete the first step of the task"
Functionality: phrase query
Context: books//content
Return: books//content
Comments: This query shows phrases can be of any length.
Version: For consideration in v.1
Expected Result:
<content>
...
<p>Expert reviewers evaluate Web site
understandability and ease of learning while
performing specified tasks. They walk through
the site answering questions such as "Would a
user know by looking at the screen how to
complete the first step of the task?" and "If
the user completed the first step, would the
user know what to do next?," with the goal of
identifying any obstacles to completing the
task and assessing whether the user would
cognitively be aware that he was successful in
completing a step in the process.</p>
...
</content>Find all book subjects containing the phrase (n-gram) "网站".
This query finds a single phrase (n-gram) within an element.
Operands: "网站"
Functionality: phrase query
Context: books//subject
Return: books//subject
Comments: This query is an example of a phrase query where the phrase being queried consists of two Chinese characters. It assumes a specific language-dependent tokenization.
Version: For consideration in v.1
Expected Result:
<subject>网站建置</subject> <subject>网站可用性</subject> <subject>网站建置</subject>
These use cases query XML elements, including instances of an element and multiple elements, attributes, and elements and attributes. They use a single XPath statement to locate the elements or attributes to be queried.
Some queries return additional or different elements than were queried. Another queries an element and its descendants. Another queries across element boundaries. They are in this section only because they are very common queries and necessary for writing meaningful full-text queries. Refer to Section 13 (STRUCTURE) for queries which more fully exploit the complexity and hierarchy of XML structure and Section 14 (IGNORE) for queries across element boundaries which ignore tags and content.
Find all book paragraphs with the word "step".
This query finds a word in an element.
Operands: "step"
Functionality: word query
Context: books//p
Return: books/book/@number, books//p
Comments: This query finds the word "step" in the p element, not in any other element.
Version: For consideration in v.1
Expected Result:
<book number="1"> <p>Expert reviewers evaluate Web site understandability and ease of learning while performing specified tasks. They walk through the site answering questions such as "Would a user know by looking at the screen how to complete the first step of the task?" and "If the user completed the first step, would the user know what to do next?," with the goal of identifying any obstacles to completing the task and assessing whether the user would cognitively be aware that he was successful in completing a step in the process.</p> </book>
Find all books with the phrase "web site" and the word "usability" in the same subject.
This query finds a word and a phrase within one instance of an element.
Operands: "web site" "usability"
Functionality: phrase query, word query, and query
Context: books//subject
Return: books/book/@number, books//subject
Comments: This query find words and phrases within one instance of an element, not allowing one
of the operands to be found in one sibling and the other operand in a different sibling of
the same name. This query does not find book 2 which has "usability" and "web site" in diferrent instances of an element. It
uses an and query introduced in Section 9 (BOOLEAN).
Version: For consideration in v.1
Expected Result:
<book number="1"> <subject>Web site usability</subject> </book>
Find all books with the phrase "web site" and the word "usability" in any subject.
This query finds a word and a phrase within any instance of an element, across the siblings of the same name. The word and the phrase may be in different elements.
Operands: "web site" "usability"
Functionality: phrase query, word query, and query
Context: books//subject
Return: books/book/@number, books//subject
Comments: This query returns words and phrases within any instance of an
element, allowing one of the operands to be found in one sibling and the other operand
in a different sibling of the same name. It uses an and query introduced in Section 9 (BOOLEAN).
Version: For consideration in v.1
Expected Result:
<book number="1"> <subject>Usability testing</subject> <subject>Web site development</subject> <subject>Web site usability</subject> </book> <book number="2"> <subject>Usability testing</subject> <subject>Web site development</subject> </book>
Find all books with the words "ersatz" and "publications" in every publisher name.
This query finds two words within every instance of an element.
Operands: "ersatz" "publications"
Functionality: word query, and query
Context: books//publisher
Return: books/book/metadata/title, books//publisher
Comments: This query does not return a book if at least one of its publishers does not contain the words "ersatz" and
"publications". Book 1 is returned because it has a single publisher which satisfies the full-text conditions (contains both "Ersatz" and
"Publications"). Book 2 is not returned because even though it has a publisher that satisfies the full-text conditions, it also has a publisher that
does not satisfy it (universal quantification). Book 3 is not returned because it has a single publisher which
does not satisfy the query (contains "Ersatz" but not "Publications"). Finally, universal quantification will allow books without publishers to qualify.
It uses an and query introduced in Section 9 (BOOLEAN).
Version: For consideration in v.1
Expected Result:
<title>Improving the Usability of a Web Site
Through Expert Reviews and Usability Testing</title>
<publisher>Ersatz Publications</publisher>Find all books with the phrase "usability testing" in some subject.
This query finds a single phrase within an element and returns different elements from the same document.
Operands: "usability testing"
Functionality: phrase query
Context: books//subject
Return: books/book/metadata/title, books//author, books//publicationInfo/dateRevised
Comments: This query queries the subject element, but does not return it. It returns three different elements which provide useful information to the user.
Version: For consideration in v.1
Expected Result:
<title>Improving the Usability of a Web Site Through
Expert Reviews and Usability Testing</title>
<author>Millicent Marigold</author>
<author>Montana Marigold</author>
<dateRevised>2002</dateRevised>
<title>Usability Basics: How to Plan for and Conduct
Usability Tests on Web Site Thereby Improving the
Usability of Your Web Site</title>
<dateRevised>2001</dateRevised>
<title>John Wesley Usabilityguy: A Register of His
Papers</title>
<author>Millicent Marigold</author>
<author>Morty Marigold</author>
<dateRevised>2002</dateRevised>Find all books with "usability tests" in book or chapter titles.
This query finds a phrase in multiple elements.
Operands: "usability tests"
Functionality: phrase query
Context: books/book/metadata/title, books/book/content/part//chapter/title
Return: books/book/metadata/title, books/book/content/part//chapter/title
Comments: This query is an example of a word query in two elements.
Version: For consideration in v.1
Expected Result:
<title>Usability Basics: How to Plan for and Conduct Usability Tests on Web Site Thereby Improving the Usability of Your Web Site</title> <title>Planning then Conducting Usability Tests</title> <title>Conducting Usability Tests</title>
Find all books with the phrase "usability testing once the problems".
This query finds a phrase which begins in one element and ends in a second.
Operands: "usability testing once the problems"
Functionality: phrase query, ignoring element tags
Context: books//content
Return: books/book/metadata/title, books//content
Comments: This query crosses sibling element boundaries.
Version: For consideration in v.1
Expected Result:
<title>Improving the Usability of a Web Site Through
Expert Reviews and Usability Testing</title>
<content>
...
<title>Usability Testing</title>
<p>Once the problems identified by expert
reviews have been corrected, it is time to
conduct some tests of the site with your unique
audience or audiences by conducting usability
testing.</p>
...
</content>Find all books with the word "tests".
This query finds a word in an element or its descendants.
Operands: "tests"
Functionality: word query
Context: books//content
Return: books/book/metadata/title, books//content
Comments: This query crosses parent-child element boundaries.
Version: For consideration in v.1
Expected Result:
<title>Improving the Usability of a Web Site Through
Expert Reviews and Usability Testing</title>
<content>
...
<p>Once the problems identified by expert
reviews have been corrected, it is time to
conduct some tests of the site with your unique
audience or audiences by conducting usability
testing.</p>
...
</content>
<title>Usability Basics: How to Plan for and Conduct
Usability Tests on Web Site Thereby Improving the
Usability of Your Web Site</title>
<content>
...
<p>This is a basic handbook for planning and
conducting usability tests on Web sites. Usability
testing should be used in conjunction with other
expert review methods.</p>
...
<title>Planning then Conducting Usability
Tests</title>
...
</content>
<title>John Wesley Usabilityguy: A Register of His
Papers</title>
<content>
...
<componentTitle>"How to Evaluate Results from
User Tests."</componentTitle>
...
</content>Find all books with "improve" "web" "usability" in the short title.
This query finds multiple words within an attribute allowing word variants and allowing the words in any order with up to a specified number of intervening words.
Operands: "improve" "web" "usability"
Functionality: word queries, stemming, unordered proximity (0 to 2 intervening words)
Context: books/book//title/@shortTitle
Return: books/book/@number, books/book//title/@shortTitle
Comments: This query illustrates full-text querying within an attribute. It uses stemming introduced in Section 7 (STEMMING) and an ordered proximity query introduced in Section 10 (DISTANCE).
Version: For consideration in v.1
Expected Result:
<book number="1"> <title shortTitle="Improving Web Site Usability">Improving the Usability of a Web Site Through Expert Reviews and Usability Testing</title> </book>
Find all books with the phrase "manuscript guides" in the short title and the phrase "user profiling" in the text.
This query finds a phrase within an attribute and a phrase within an element and its descendants.
Operands: "manuscript guides" "user profiling"
Functionality: phrase queries, stemming, and query
Context: books/book//title/@shortTitle, books//content
Return: books/book/@number, books/book//title/@shortTitle, books//content
Comments: This query combines querying within an element with querying within an attribute.
It uses stemming introduced in Section 7 (STEMMING) and an and query introduced in Section 9 (BOOLEAN).
Version: For consideration in v.1
Expected Result:
<book number="3"> <title shortTitle="Usabilityguy Manuscript Guide">John Wesley Usabilityguy: A Register of His Papers</title> <content> ... <componentTitle>User profiling, <componentDate normalize="1950/1959">1950s </componentDate> </componentTitle> ... </content> </book>
These use cases identify commonly used words which have been saved to a stop word list. Words on this list are routinely ignored during querying. Some of the queries override the stop word identification of a word, making it available again for querying.
Find all books with the word "the" in the text.
This query ignores a word which has been identified as a stop word.
Operands: "the"
Functionality: identify and ignore stop words (the), word query
Context: books//content
Return: books/book/metadata/title
Comments: This query on a stop word will either return no results or an error depending on the implementation.
Version: For consideration in v.1
Expected Result:
No results returned.
Find all books with the phrase "planning then conducting" in the text.
This query finds a phrase ignoring a word which has been identified as a stop word.
Operands: "planning then conducting"
Functionality: identify and ignore stop words (then), phrase query
Context: books//content
Return: books/book/metadata/title, books//content
Comments: Once the stop word "then" is ignored, this query is reduced to a query on the words "planning" and" conducting", allowing one intervening word. It finds both "planning and conducting" and "planning then conducting" in the sample data.
Version: For consideration in v.1
Expected Result:
<title>Usability Basics: How to Plan for and Conduct
Usability Tests on Web Site Thereby Improving the
Usability of Your Web Site</title>
<content>
...
<p>This is a basic handbook for planning and
conducting usability tests on Web sites. Usability
testing should be used in conjunction with other
expert review methods.</p>
...
<title>Planning then Conducting Usability
Tests</title>
...
</content>Find books with the phrase "Guides and finding aids" in the subject.
This query finds a phrase overriding the stop word identification of a word.
Operands: "guides and finding aids"
Functionality: identify and override stop words (and), phrase query
Context: books//subject
Return: books/book/metadata/title, books//subject
Comments: This query finds the phrase "guides and finding aids", which might be in a subject element built from a controlled vocabulary where querying the exact phrase may avoid undesired results.
Version: For consideration after v.1
Expected Result:
<title>Usability Basics: How to Plan for and Conduct
Usability Tests on Web Site Thereby Improving the
Usability of Your Web Site</title>
<subject>Guides and finding aids</subject>Find all books which have not been approved by a Web users organization.
This query finds a phrase ignoring multiple words which has been identified as stop words.
Operands: "not been approved"
Functionality: identify and ignore stop words (not, been), phrase query
Context: books//content
Return: books/book/metadata/title, books//content
Comments: Once the stop words are ignored, this query is reduced to a query on the word "approved". It returns books with the word "approved" in the phrases "been approved" "not been approved" and "approved travel orders" in the sample data.
Version: For consideration in v.1
Expected Result:
<title>Improving the Usability of a Web Site Through
Expert Reviews and Usability Testing</title>
<content>
...
<p>This book has been approved by the Web Site
Users Association</p>
...
</content>
<title>Usability Basics: How to Plan for and Conduct
Usability Tests on Web Site Thereby Improving the
Usability of Your Web Site</title>
<content>
...
<p>This book has not been approved by the Web Site
Users Association</p>
...
</content>
<title>John Wesley Usabilityguy: A Register of His
Papers</title>
<content>
...
<p>Correspondence, telegrams, memoranda, journals,
logs, testimony, approved travel orders, invitations,
charts, graphs, forms, biographical data, photographs,
book drafts, clippings and other printed matter,
résumés and miscellaneous material. Organized by
name of person or organization, topic, or type of
material.</p>
...
</content>Find all the books which have not been approved by a Web users organization.
This query finds a phrase overriding the stop word identification of a multiple words.
Operands: "not been approved"
Functionality: identify and override stop words (not, been), phrase query
Context: books//content
Return: books/book/metadata/title, books//content
Comments: This query finds the phrase "not been approved". It does not return the phrases "been approved" and "approved travel orders" in the sample data.
Version: For consideration after v.1
Expected Result:
<title>Usability Basics: How to Plan for and Conduct
Usability Tests on Web Site Thereby Improving the
Usability of Your Web Site</title>
<content>
...
<p>This book has not been approved by the Web Site
Users Association</p>
...
</content>These use cases illustrate queries manipulating normalized characters and tokenized words, spaces, and punctuation. Depending on the desired result, they may consider or ignore diacritics, case, and special characters.
They query words entered with diacritics sometimes returning the same; other times returning words with and without diacritics. They query words entered in upper case sometimes returning the same; other times returning words in both upper and lower case. Other queries find words containing a hyphen or two words with a space separating them.
Verify the existence of a résumé in the papers of John Wesley Usabilityguy.
This query finds a word only when diacritics are present.
Operands: "résumé"
Functionality: collation requiring presence of diacritics, word query
Context: books//content
Return: books/book/metadata/title, books//content
Comments: The desired return is only the word "résumé" with diacritics, not the more often used word "resume" which is present in the sample data.
Version: For consideration in v.1
Expected Result:
<title>John Wesley Usabilityguy: A Register of His
Papers</title>
<content>
...
<p>The papers of John Wesley Usabilityguy span the
years 1946-2001, with the bulk of the items
concentrated in the period from 1985 to 2001. The
papers feature his career as a developer of software
applications and usability specialist. The collection
consists of correspondence, memoranda, journals,
speeches, article drafts, book drafts, notes, charts,
graphs, family papers, clippings, printed matter,
photographs, résumés and other materials.</p>
...
<p>Correspondence, telegrams, memoranda, journals,
logs, testimony, approved travel orders, invitations,
charts, graphs, forms, biographical data, photographs,
book drafts, clippings and other printed matter,
résumés and miscellaneous material. Organized by
name of person or organization, topic, or type of
material.</p>
...
</content>Verify the existence of a résumé in the papers of John Wesley Usabilityguy.
This query finds a word whether its diacritics are present or not.
Operands: "resume"
Functionality: collation ignoring the presence of diacritics, word query
Context: books//content
Return: books/book/metadata/title, books//content
Comments: The desired return is either the word "résumé" with diacritics or the word "resume" without diacritics. The user wants to find résumé, but has entered resume possibly because the system does not allow the entry of diacritics, the user does not know how to enter diacritics, or the user did not want to take the time to enter them.
Version: For consideration in v.1
Expected Result:
<title>Usability Basics: How to Plan for and Conduct
Usability Tests on Web Site Thereby Improving the
Usability of Your Web Site</title>
<content>
...
<p>Take the following steps to plan usability
testing. <step number="1">Clarify and
articulate the goal of the usability testing.
</step> <step number="2">Identify tasks which
are critical for users to be able to complete
successfully. </step> <step number="3">Compile
a script of questions or instructions which
will prompt the user to attempt those
tasks.</step> <step number="4">Identify your
users and begin recruiting them.</step> <step
number="5">Conduct a pretest on a few users.
</step> <step number="6">Edit the script based
on insights gleaned from the pretest.</step>
<step number="7">Resume testing.</step></p>
...
</content>
<title>John Wesley Usabilityguy: A Register of His
Papers</title>
<content>
...
<p>The papers of John Wesley Usabilityguy span the
years 1946-2001, with the bulk of the items
concentrated in the period from 1985 to 2001. The
papers feature his career as a developer of software
applications and usability specialist. The collection
consists of correspondence, memoranda, journals,
speeches, article drafts, book drafts, notes, charts,
graphs, family papers, clippings, printed matter,
photographs, résumés and other materials.</p>
...
<p>Correspondence, telegrams, memoranda, journals,
logs, testimony, approved travel orders, invitations,
charts, graphs, forms, biographical data, photographs,
book drafts, clippings and other printed matter,
résumés and miscellaneous material. Organized by
name of person or organization, topic, or type of
material.</p>
...
</content>Find out whether John Wesley Usabilityguy included research on AIDS among the charities he supported.
This query finds a word in upper case letters only.
Operands: "AIDS"
Functionality: collation which is case-sensitive or limited to upper case, word query
Context: books//book
Return: books/book/metadata/title, books//book
Comments: This query does not return the word "aids" in lower case which exists in the sample data.
Version: For consideration in v.1
Expected Result:
<title>John Wesley Usabilityguy: A Register of His
Papers</title>
<book>
...
<componentTitle>Diseases: AIDS, Hepatitis,
Tuberculosis <componentDate normalize=
"1990/1999">1990-1999</componentDate>
</componentTitle>
...
</book>Find out whether John Wesley Usabilityguy included research on AIDS among the charities he supported.
This query finds a word in upper or lower case letters.
Operands: "AIDS"
Functionality: collation which is case-insensitive, word query
Context: books//book
Return: books/book/metadata/title, books//book
Comments: This query returns the word "aids" in upper and lower case.
Version: For consideration in v.1
Expected Result:
<title>Usability Basics: How to Plan for and Conduct
Usability Tests on Web Site Thereby Improving the
Usability of Your Web Site</title>
<book>
...
<subject>Guides and finding aids</subject>
...
</book>
<title>John Wesley Usabilityguy: A Register of His
Papers</title>
<book>
...
<componentTitle>Diseases: AIDS, Hepatitis,
Tuberculosis <componentDate normalize=
"1990/1999">1990-1999</componentDate>
</componentTitle>
...
</book>Find all books with "walk-through".
This query finds a word containing a special character.
Operands: "walk-through"
Functionality: word query, collation returning words containing special characters
Context: books//book
Return: books/book/metadata/title, books//book
Comments: The desired return is only the hyphenated word "walk-through", not the phrase "walk through" which is also present in the sample data.
Version: For consideration after v.1
Expected Result:
<title>Improving the Usability of a Web Site Through
Expert Reviews and Usability Testing</title>
<book>
...
<subject>Cognitive walk-through</subject>
...
<p>Two expert review methods are discussed
here. They are heuristic evaluation and
cognitive walk-through.</p>
...
<title>>Cognitive Walk-Through</title>
...
</book>Find all books with "walk-through".
This query finds a word with a special character or a phrase where the special character is replaced by a space.
Operands: "walk-through"
Functionality: word query, collation returning words containing special characters or phrases containing a space
Context: books//book
Return: books/book/metadata/title, books//book
Comments: The desired return is the hyphenated word "walk-through" or the phrase "walk through".
Version: For consideration after v.1
Expected Result:
<title>Improving the Usability of a Web Site Through
Expert Reviews and Usability Testing</title>
<book>
...
<subject>Cognitive walk-through</subject>
...
<p>Two expert review methods are discussed
here. They are heuristic evaluation and
cognitive walk-through.</p>
...
<title>Cognitive Walk-Through</title>
<p>Expert reviewers evaluate Web site
understandability and ease of learning while
performing specified tasks. They walk through
the site answering questions such as "Would a
user know by looking at the screen how to
complete the first step of the task?" and "If
the user completed the first step, would the
user know what to do next?," with the goal of
identifying any obstacles to completing the
task and assessing whether the user would
cognitively be aware that he was successful in
completing a step in the process.</p>
...
</book>These use cases illustrate queries which allow a character or sequence of characters to be inserted into or appended to a word or a part of a word. Character wildcards can be prefix (added before the first character), infix (inserted within a word), or suffix (added after the last character).
These use cases also illustrate queries which allow a word or words to be inserted into or appended to a phrase.
Find all books with the word "way" with any one character prefix.
This query finds a word allowing any one character prefix (any one character before the first character).
Operands: "way"
Functionality: word query, character wildcard (prefix)
Context: books//content
Return: books/book/@number, books//content
Comments: This query specifies that one and only one character be added to the word.
Version: For consideration in v.1
Expected Result:
<book number="1">
<content>
...
<p>Expert reviews and usability testing are
methods of identifying problems in layout,
terminology, and navigation before they frustrate
users and drive them away from your site.</p>
...
</content>
</book>Find all books with the word "test" with any one character suffix.
This query finds a word allowing any one character suffix (any one character after the last character).
Operands: "test"
Functionality: word query, character wildcard (suffix)
Context: books//content
Return: books/book/@number, books//content
Comments: This query finds "tests", but not "pretest" "test" "tested" "testers" "testimony" and "testing" which also appear in the sample data.
Version: For consideration in v.1
Expected Result:
<book number="1">
<content>
...
<p>Once the problems identified by expert
reviews have been corrected, it is time to
conduct some tests of the site with your unique
audience or audiences by conducting usability
testing.</p>
...
</content>
</book>
<book number="2">
<content>
...
<p>This is a basic handbook for planning and
conducting usability tests on Web sites. Usability
testing should be used in conjunction with other
expert review methods.</p>
...
<title>Planning then Conducting Usability
Tests</title>
...
<title>Conducting Usability Tests</title>
...
</content>
</book>
<book number="3">
<content>
...
<componentTitle>"How to Evaluate Results from
User Tests."</componentTitle>
...
</content>
</book>Find all books with the words "step or stop".
This query finds words allowing any one infix character (any one character in the middle of a word).
Operands: "st" "p"
Functionality: word query, character wildcard (infix)
Context: books//content
Return: books/book/@number, books//content
Comments: This query allows one and only one character to be added to the word.
Version: For consideration in v.1
Expected Result:
<book number="1">
<content>
...
<p>The most successful projects employ multiple
methods in multiple iterations. As Millicent
Marigold remarked during a recent conference,
"Don't stop. Iterate, iterate, then iterate
again."</p>
...
<p>Expert reviewers evaluate Web site
understandability and ease of learning while
performing specified tasks. They walk through
the site answering questions such as "Would a
user know by looking at the screen how to
complete the first step of the task?" and "If
the user completed the first step, would the
user know what to do next?," with the goal of
identifying any obstacles to completing the
task and assessing whether the user would
cognitively be aware that he was successful in
completing a step in the process.</p>
...
</content>
</book> Find all books with the word "test" with any prefix.
This query finds a word allowing any prefix (0 or more characters before the first character).
Operands: "test"
Functionality: word query, character wildcard (prefix)
Context: books//content
Return: books/book/metadata/title, books//content
Comments: This query finds "pretest", but not "test" "testers" "testimony" "testing" or "tests" which also appear in the sample data.
Version: For consideration in v.1
Expected Result:
<title>Usability Basics: How to Plan for and Conduct
Usability Tests on Web Site Thereby Improving the
Usability of Your Web Site</title>
<content>
...
<step number="5">Conduct a pretest on a few
users.</step>
...
</content>Find all books with the word "test" with any suffix.
This query finds a word allowing any suffix (0 or more characters after the last character)
Operands: "test"
Functionality: word query, character wildcard (suffix)
Context: books//content
Return: books/book/metadata/title, books//content
Comments: This query finds "test" "testers" "testimony" "testing" and "tests", but not "pretest" which also appear in the sample data.
Version: For consideration in v.1
Expected Result:
<title>Improving the Usability of a Web Site Through
Expert Reviews and Usability Testing</title>
<content>
...
<p>Expert reviews and usability testing are
methods of identifying problems in layout,
terminology, and navigation before they frustrate
users and drive them away from your site.</p>
...
<title>Usability Testing</title>
<p>Once the problems identified by expert
reviews have been corrected, it is time to
conduct some tests of the site with your unique
audience or audiences by conducting usability
testing.</p>
...
</content>
<title>Usability Basics: How to Plan for and Conduct
Usability Tests on Web Site Thereby Improving the
Usability of Your Web Site</title>
<content>
...
<p>This is a basic handbook for planning and
conducting usability tests on Web sites. Usability
testing should be used in conjunction with other
expert review methods.</p>
...
<title>Planning then Conducting Usability
Tests</title>
<p>Take the following steps to plan usability
testing. <step number="1">Clarify and
articulate the goal of the usability testing.
</step> <step number="2">Identify tasks which
are critical for users to be able to complete
successfully. </step> <step number="3">Compile
a script of questions or instructions which
will prompt the user to attempt those
tasks.</step> <step number="4">Identify your
users and begin recruiting them.</step> <step
number="5">Conduct a pretest on a few users.
</step> <step number="6">Edit the script based
on insights gleaned from the pretest.</step>
<step number="7">Resume testing.</step></p>
...
<title>Conducting Usability Tests</title>
<p>Users can be tested at any computer
workstation <footnote>They may be most
comfortable at their own workstation.
</footnote> or in a lab.</p>
<p>Give the user the script, then assure them
that you are testing the Web site, not them.
Users are asked to verbalize their thoughts as
they complete the tasks. The event is recorded
or someone takes notes. It is often preferable
to have two testers, <footnote>Usability
testing can be done at great expense or on a
shoe string, using <testingProcedure>in-house
expertise</testingProcedure> or
<testingProcedure>contracting with human
computer interaction professionals
</testingProcedure>.</footnote> one to ask the
questions, another to take notes. Testers should
offer no guidance or comments to the user. Mouse
movements, typing, expressions, and the user's
words should be recorded.</p>
...
<p>Compile the results and review collectively.
Make changes to the site to alleviate the problems
found in Web site components which were propagating
the largest number of or the most devastating errors.
Begin new iterations of testing and changes, until
users are successful in the accomplishing the
tasks.</p>
...
</content>
<title>John Wesley Usabilityguy: A Register of His
Papers</title>
<content>
...
<p>Correspondence, telegrams, memoranda, journals,
logs, testimony, approved travel orders, invitations,
charts, graphs, forms, biographical data, photographs,
book drafts, clippings and other printed matter,
résumés and miscellaneous material. Organized by
name of person or organization, topic, or type of
material.</p>
...
<componentTitle>"How Many Users Are Enough
for User Testing?"</componentTitle>
...
<componentTitle>"How to Evaluate Results from
User Tests."</componentTitle>
...
<container type="box">5</container>
<componentTitle>"When Are You Done Testing?"
</componentTitle>
...
<componentTitle>"Do-It-Yourself User Testing"
</componentTitle>
...
</content>Find all books with the phrases "usability testing" or "user testing".
This query finds a phrase allowing any suffix (0 or more characters after the last character) on a part of one of the words.
Operands: "us testing"
Functionality: phrase query, character wildcard (suffix)
Context: books//content
Return: books/book/metadata/title, books//content
Comments: This is an example of a suffix query on a part of a word "us" which is not one of the words or one of the roots of the words desired in the results. The query on "us" will find "usability" and "user". Where stemmed queries (presented below in Section 7 (STEMMING) attempt to return linguistic variants on a word or the root of a word, wildcards may be applied to any part of a word and will return all character combinations found.
Version: For consideration in v.1
Expected Result:
<title>Improving the Usability of a Web Site Through
Expert Reviews and Usability Testing</title>
<content>
...
<p>Expert reviews and usability testing are
methods of identifying problems in layout,
terminology, and navigation before they frustrate
users and drive them away from your site.</p>
...
<title>Usability Testing</title>
<p>Once the problems identified by expert
reviews have been corrected, it is time to
conduct some tests of the site with your unique
audience or audiences by conducting usability
testing.</p>
...
</content>
<title>Usability Basics: How to Plan for and Conduct
Usability Tests on Web Site Thereby Improving the
Usability of Your Web Site</title>
<content>
...
<p>This is a basic handbook for planning and
conducting usability tests on Web sites. Usability
testing should be used in conjunction with other
expert review methods.</p>
...
<p>Take the following steps to plan usability
testing. <step number="1">Clarify and
articulate the goal of the usability testing.
</step> <step number="2">Identify tasks which
are critical for users to be able to complete
successfully. </step> <step number="3">Compile
a script of questions or instructions which
will prompt the user to attempt those
tasks.</step> <step number="4">Identify your
users and begin recruiting them.</step> <step
number="5">Conduct a pretest on a few users.
</step> <step number="6">Edit the script based
on insights gleaned from the pretest.</step>
<step number="7">Resume testing.</step></p>
...
<p>Give the user the script, then assure them
that you are testing the Web site, not them.
Users are asked to verbalize their thoughts as
they complete the tasks. The event is recorded
or someone takes notes. It is often preferable
to have two testers, <footnote>Usability
testing can be done at great expense or on a
shoe string, using <testingProcedure>in-house
expertise</testingProcedure> or
<testingProcedure>contracting with human
computer interaction professionals
</testingProcedure>.</footnote> one to ask the
questions, another to take notes. Testers should
offer no guidance or comments to the user. Mouse
movements, typing, expressions, and the user's
words should be recorded.</p>
...
</content>
<title>John Wesley Usabilityguy: A Register of His
Papers</title>
<content>
...
<componentTitle>"How Many Users Are Enough
for User Testing?"</componentTitle>
...
<componentTitle>"Do-It-Yourself User Testing"
</componentTitle>
</subsubComponent>
...
</content>Find all books with the words "serve" or "service".
This query finds words allowing any infix characters (0 or more characters inserted in the middle of a word).
Operands: "serv", "e"
Functionality: word query, character wildcard (infix)
Context: books//content
Return: books/book/metadata/title, books//content
Comments: This query returns the word "service" and would return the word "serve" if it existed in the sample data. It does not return the word "served" which exists in the sample data.
Version: For consideration in v.1
Expected Result:
<title>Improving the Usability of a Web Site Through
Expert Reviews and Usability Testing</title>
<content>
...
<p>Then changes are made to improve service to
users.</p>
...
</content>Find all books with the word "test" with any three to four character suffix.
This query finds a word allowing a number of characters within a specified range in a suffix (specified range of characters after the last character)
Operands: "test"
Functionality: word query, character wildcard (suffix)
Context: books//content
Return: books/book/@number, books//content
Comments: This query allows any three or four character suffix. It returns "testers" and "testing", but not "pretest" "tests" "tested" and "test" which also appear in the sample data.
Version: For consideration after v.1
Expected Result:
<book number="1">
<content>
...
<p>Expert reviews and usability testing are
methods of identifying problems in layout,
terminology, and navigation before they frustrate
users and drive them away from your site.</p>
...
<title>Usability Testing</title>
<p>Once the problems identified by expert
reviews have been corrected, it is time to
conduct some tests of the site with your unique
audience or audiences by conducting usability
testing.</p>
...
</content>
</book>
<book number="2">
<content>
...
<p>This is a basic handbook for planning and
conducting usability tests on Web sites. Usability
testing should be used in conjunction with other
expert review methods.</p>
...
<p>Take the following steps to plan usability
testing. <step number="1">Clarify and
articulate the goal of the usability testing.
</step> <step number="2">Identify tasks which
are critical for users to be able to complete
successfully. </step> <step number="3">Compile
a script of questions or instructions which
will prompt the user to attempt those
tasks.</step> <step number="4">Identify your
users and begin recruiting them.</step> <step
number="5">Conduct a pretest on a few users.
</step> <step number="6">Edit the script based
on insights gleaned from the pretest.</step>
<step number="7">Resume testing.</step></p>
...
<p>Give the user the script, then assure them
that you are testing the Web site, not them.
Users are asked to verbalize their thoughts as
they complete the tasks. The event is recorded
or someone takes notes. It is often preferable
to have two testers, <footnote>Usability
testing can be done at great expense or on a
shoe string, using <testingProcedure>in-house
expertise</testingProcedure> or
<testingProcedure>contracting with human
computer interaction professionals
</testingProcedure>.</footnote> one to ask the
questions, another to take notes. Testers should
offer no guidance or comments to the user. Mouse
movements, typing, expressions, and the user's
words should be recorded.</p>
...
<p>Compile the results and review collectively.
Make changes to the site to alleviate the problems
found in Web site components which were propagating
the largest number of or the most devastating errors.
Begin new iterations of testing and changes, until
users are successful in the accomplishing the
tasks.</p>
...
</content>
</book>
<book number="3">
<content>
...
<componentTitle>"How Many Users Are Enough
for User Testing?"</componentTitle>
...
<container type="box">5</container>
<componentTitle>"When Are You Done Testing?"
</componentTitle>
...
<componentTitle>"Do-It-Yourself User Testing"
</componentTitle>
...
</content>
</book>Find all books with a phrase which begins with "propagating", has any word in the middle, and ends with "errors".
This query finds a phrase where one of the words (represented by a wildcard) is unspecified.
Operands: "propagating errors"
Functionality: phrase query, word wildcard
Context: books//content
Return: books/book/@number, books//content
Comment: This query is a word wildcard query. A one word wildcard query returns the same result as an ordered proximity query allowing one intervening word.
Version: For consideration in v.1
Expected Result:
<title>Improving the Usability of a Web Site Through
Expert Reviews and Usability Testing</title>
<content>
...
<p>The usability of a Web site is how well the
site supports the user in achieving specified
goals. A Web site should facilitate learning,
and enable efficient and effective task
completion, while propagating few errors.
Satisfaction with the site is also important.
The user must not only be well-served, but must
feel well-served.</p>
...
</content>