WO2005036421A1 - Representations of queries in search spaces as a resource for interaction - Google Patents

Representations of queries in search spaces as a resource for interaction Download PDF

Info

Publication number
WO2005036421A1
WO2005036421A1 PCT/US2003/029380 US0329380W WO2005036421A1 WO 2005036421 A1 WO2005036421 A1 WO 2005036421A1 US 0329380 W US0329380 W US 0329380W WO 2005036421 A1 WO2005036421 A1 WO 2005036421A1
Authority
WO
WIPO (PCT)
Prior art keywords
representation
search
user
query
scaffold
Prior art date
Application number
PCT/US2003/029380
Other languages
French (fr)
Inventor
Thomas D Erickson
Peter K Malkin
Original Assignee
International Business Machines Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corporation filed Critical International Business Machines Corporation
Priority to PCT/US2003/029380 priority Critical patent/WO2005036421A1/en
Priority to AU2003267285A priority patent/AU2003267285A1/en
Publication of WO2005036421A1 publication Critical patent/WO2005036421A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2425Iterative querying; Query formulation based on the results of a preceding query

Definitions

  • the present invention is directed to providing a dynamic interactive amiotatable representation that can serve as a dynamic user interface for an iterative search process. It is more particularly directed to the production and use of this representation for representing and refining a search. .
  • IRC Internet Relay Chat
  • a variety of systems provide a means for visualizing and organizing the results of a given query. These include application packages that support scientific visualization, as well as commercial products such as "grokker” (http://www.grolcker.com). However, these packages visualize the results of a single search, showing each result as a single entity organized in relation to the other results, rather than the current invention's visualization of iterative process of exploring the search space and its depiction of characteristics of entire result sets.
  • the dynamic query system developed by Shneiderman and his colleagues provides a dynamic visualization of a result set that permits users to modify the query and ⁇ as they do so — to observe the results of the changes to the query on the result set.
  • a user in the process of buying a house may search a real estate listing database, and, as the parameters of the query such as price or location are changed, can see ho ⁇ w the number and distribution of hits shown on a scatter plot vary in accordance with the changes in parameter values.
  • the dynamic query system shows a visualization ofthe content ofthe current set of results; it does not provide an overview or trace ofthe entire search process.
  • one aspect of the present invention provides a persistent, dynamic, interactive representation of an iterative search process that can provide one or more users with support for conducting the search, herein referred to as a Search Scaffold.
  • the Search Scaffold is a dynamic interactive annotatable representation of an iterative search process.
  • One particular aspect of the present invention is related to the production and use of this representation for representing and refining a search.
  • a Search Scaffold is composed of graphical elements and, optionally, audio or video elements.
  • the Search Scaffold includes four types of elements: a root that represents the search process as a whole; one or more query elements that represent the queries composed in the process of the search; one or more result handle elements that represent result sets produced by given executions of particular queries; and annotations that may be applied to elements or sets of elements ofthe Search Scaffold
  • the Search Scaffold dynamically updates to reflect new queries, new result handles for result sets, and the current values of the various elements' computed properties, applied annotations, and user activities. Users may also edit a Search Scaffold, deleting unneeded elements, rearranging existing elements, and (as already indicated) annotating its elements or element sets.
  • the particular Search Scaffold may be viewed and used by multiple users so that the Search Scaffold can offer several forms of added value, including: index into chat; depiction of presence and location; depiction of degree of involvement; asynchronous use support; and multiple Search Scaffolds may be created such that their representations being made available in a scrolling list.
  • Fig. 1 shows an exemplary graphic representation of a search scaffold
  • Fig. 2 shows an exemplary graphic representation of a search scaffold in Fig. 1 after it has been extended with one query;.
  • Fig. 3 shows network topology employed according to an embodiment ofthe present invention
  • Fig. 4 is a block diagram of a server according to the present invention
  • Fig. 5 is a flow diagram of a server logic
  • Fig. 6 is a is a flow diagram of a scaffold handler
  • Fig. 7 is a flow diagram of a scaffold access handler
  • Fig. 8 is a flow diagram of a chat handler
  • Fig. 9 is a flow diagram of a selection handler
  • Fig. 10 is a flow diagram of a query handler
  • Fig. 11 is a is a flow diagram of a user action handler
  • Fig. 12 is a flow diagram of an annotation handler
  • Fig. 13 is a flow diagram of a query execution handler
  • Fig. 14 is a flow diagram of a scaffold transcript handler
  • Fig. 15 is a flow diagram of a scaffold state handler.
  • the present invention provides methods, apparatus and systems for a persistent, dynamic, interactive representation of an iterative search process that can provide one or more users with support for conducting the search, herein referred to as a Search Scaffold.
  • the Search Scaffold is a dynamic interactive amiotatable representation of an iterative search process.
  • An example embodiment of the present invention is related to the production and use of this representation for representing and refining a search.
  • the present invention also provides for use of this representation for supporting collaboration amongst a number of users interested in collaborating on a particular search.
  • a Search Scaffold is composed of graphical elements and, optionally, audio or video elements. . More generally a Search Scaffold includes a root and one or more pairs of a query element and its result handle element. Various characteristics of the search process are depicted either through the Search Scaffold representation, or by the annotations associated with elements or sets of elements of the Search Scaffold. Multiple Search Scaffolds may be created such that their representations are made available in a scrolling list.
  • the Search Scaffold is composed of graphical elements and, optionally, audio or video elements.
  • the Search Scaffold includes four types of elements: •a root that represents the search process as a whole; •one or more query elements that represent the queries composed in the process of the search; •one or more result handle elements that represent result sets produced by given executions of particular queries; and •annotations that may be applied to elements or sets of elements ofthe Search Scaffold
  • a Search Scaffold typically includes of a root and one or more pairs of a queiy element and its result handle element.
  • Various characteristics of the search process are depicted either through the Search Scaffold representation, or by the annotations associated with elements or sets of elements ofthe Search Scaffold.
  • Characteristics of the search process that may be depicted by the Search Scaffold include: computable properties of portions ofthe search , such as the number of items in a result set; user-generated annotations of parts ofthe search process, for example, a subjective rating ofthe goodness of a result set; the activity ofthe users of a Search Scaffold, such as which result sets are being viewed by how many users.
  • the Search Scaffold dynamically updates to reflect new queries, new result handles for result sets, and the current values of the various elements' computed properties, applied annotations, and user activities. Users may also edit a Search Scaffold, deleting unneeded elements, rearranging existing elements, and (as already indicated) annotating its elements or element sets.
  • a Search Scaffold provides the following benefits: an overview ofthe structure and complexity of a given search process; an index into the queries, result sets, annotations, and other activities associated with a search process, which can be utilized by interacting with the Search Scaffold representation; a means for backtracking and exploring alternative search paths from any point in the search process, which can be utilized by interacting with the Search Scaffold representation; and a means for understanding how the various queries' result sets change over time (given that the content ofthe information space being searched is changing), which can be utilized by selecting a query in the Search Scaffold and re-executing it to produce a new result handle to a new result set.
  • a particular Search Scaffold may be viewed and used by multiple users.
  • the multiple users are empowered with a combination of utilities.
  • the Search Scaffold can offer several forms of added value through utilities:
  • a persistent chat space (in which text-based conversation is retained over time) may be associated with a Search Scaffold so that multiple users may talk among themselves while viewing or otherwise participating in the search process.
  • the chat thus produced has the potential to provide valuable meta-information about the search process, and its value is augmented because the Search Scaffold provides an index into the conversation.
  • the Search Scaffold can depict the presence of users, and indicate the components ofthe search process on which the users' attentions are focused (e.g. one user may be examining the first result set in the search process, whereas another user might be examining the fourth result set in the search process).
  • the Search Scaffold can depict the degree of involvement in a search process. That is, of a set of users involved in a particular search process, some may simply be watching the development ofthe search process, others may be talking about the process and its results, and still others may be active in issuing queries or examining result sets.
  • Search Scaffolds are not limited to simultaneous users. Since the Search Scaffold representation persists over time and across sessions, with its associated chat and other annotations also persisting, it can be configured to depict the above characteristics so that they are available to users not simultaneously present. For example, the Search Scaffold can be configured to show who has visited recently, how deeply they have been involved, and where their attention has been focused.
  • multiple Search Scaffolds may be created, their representations being made available in a scrolling list.
  • Such a configuration enables: the viewing, monitoring, or participation in multiple search processes in parallel.; the comparison of multiple instances of a search (for example, in an educational or training situation, showing how efficiently different students execute an assigned search process ); and the sorting or filtering of search processes according to various characteristics including but not limited to: their degree of elaboration; users' subjective assessments of their quality of their results; the popularity of a Search Scaffold.
  • Figures 1 and 2 show an example of an embodiment of a Search Scaffold (1000) ⁇ a dynamic interactive annotatable representation of an iterative search process, and its associated annotations — and illustrates how it may be used by one or more users to explore a large information space.
  • the Search Scaffold shown includes of two parts, the Search Scaffold Representation (1001), and the Search Scaffold Transcript (1002). Most of the elements of the Search Scaffold represent an ongoing search process.
  • the horizontal line (1010) is the Search Scaffold's "root,” and signifies the search in general.
  • the line segments (1020, 1040) and square nodes that terminate each line segment (1030, 1050) represent queries (which can be passed to a search engine) and result handles (which provide access to result sets produced by a search engine's execution of a query), respectively.
  • the Search Scaffold Representation depicts a search process in which one query (1020) has been executed producing a result handle (103) to a set of results, followed by the creation a second query (1040) that has been executed to produce a result handle (1050) to a new set of results.
  • the appearances ofthe elements ofthe Search Scaffold Representation may be modified to depict characteristics of each query and/or its results.
  • relative angles ofthe line segments (1020 and 1040) may be used to depict the degree to which the terms ofthe current query differ from those ofthe previous query, and the lengths ofthe line segments may indicate the approximate number of terms in each queiy.
  • shape, size or color of a result handle (1030, 1050) may be used to depict the number, average length, or other characteristics of the result set it represents.
  • a Search Scaffold Representation may be annotated with information about the location and nature of the activity of its users.
  • the dots (1060, 1070) represent two users.
  • One of the users (1060) has their focus on the Search Scaffold as a whole; that is, the user is simply looking at the contents of the Search Scaffold as shown in Figure 1.
  • the other user (1070) has his focus on the second result handle (1050); that is, the user is inspecting the second result set as shown.
  • These user activities are shown, respectively, by the position of the first user's dot (1060) adjacent to the Search Scaffold's root element (1010), and by the position of the second user's dot (1070) adjacent to the second result handle (1050).
  • Search Scaffolds that represented more extensive search processes and that were being used by larger groups, in which users could see how the activity of the group was distributed across the search process, with "crowds" (large clusters of dots) indicating points of collective focus.
  • a Search Scaffold Representation may also be annotated with arbitrary information that a user wishes to attach to the Search Scaffold as a whole, or particular elements or sets of elements of the Search Scaffold.
  • the square icon containing a "plus" (1080) that is adjacent to the second result set node (1050) depicts that the second result set has been annotated to show that it contains good results.
  • Annotations need not be visual in character: the Search Scaffold might also be augmented with auditory icons or recorded sounds that depict characteristics of each query and/or its results. For example, hovering over a result set node might evoke a deep tone with reverberations which could indicate a large result set; alternatively digitized speech might be used to depict the terms of a particular query.
  • Figure 1 shows an example in which intrinsic characteristics ofthe search process are depicted by changes in the appearance ofthe elements of a Search Scaffold (i.e. root, query segments, and result set nodes), and user-generated information (either arbitrary information such as notes or subjective judgments) is depicted via annotations
  • any type of information may be depicted through either means.
  • the size ofthe result sets might be indicated by numbers attached as annotations to each result set node, and a user might flag a result set as interesting by changing the size, shape or color of a result set node.
  • buttons in the lower portion ofthe Search Scaffold Representation (1100, 1110, 1120) enable users to participate in the search process by issuing commands that allow them to control the search process and to interact with other users, as will be described.
  • Figure 1 shows the Search Scaffold Transcript, a pane that is associated with the Search Scaffold.
  • the top ofthe transcript pane contains a title with an associated triangle (1200) which enables users to hide or reveal the contents ofthe transcript pane.
  • Below the title is a transcript ofthe interaction (1210, 1220, 1230, 1240, 1250) that persists over time and across sessions.
  • the Search Scaffold Transcript, together with the Search Scaffold provides a visible trace of users' actions and interactions in the course ofthe search process.
  • the representations shown in Figure 1 are dynamic, and show the search process at a particular point in time.
  • the representations are initially created when "Tom" starts a new search process.
  • the system After being prompted to enter a title for the search process, the system generates a representation that includes of a the horizontal bar that depicts the root ofthe search (1010), a dot that depicts Tom (1070 in Figure 1, but would at that point be located where 1060 is), the triangle and title (1200), and the action buttons (1100, 1110, 1120).
  • the Search Scaffold Representation (1001) functions as an index into the Search Transcript window (1002).
  • a user can show the portion of the Search Scaffold Transcript (1002) that corresponds to an element ofthe Search Scaffold Representation, the correspondence either being direct (as in the case of queries), or showing the portion ofthe Transcript produced most closely in time to when the Search Scaffold Representation element was created.
  • clicking on the first vertical line segment (1020) in the Search Scaffold would result in the transcript window being scrolled to show and highlight the first line (1210); similarly, clicking on the first result handle (1030) would scroll the Transcript window to show the first line (1210), that being the query whose execution produced the result set.
  • a side effect of this indexing is that it also reveals any chat that had occurred at that point in the search process.
  • Search Scaffold Another use ofthe Search Scaffold is to support the production and exploration of different queries. Thus, if a particular line of exploration failed to bear fruit, a user might click on a the last previously issued query that was fruitful, thus setting their focus to that query, and modify it to explore in a different direction. In such a case, the Search Scaffold would depict a branch, with the representation of a new query and result set branching off from the selected one. This type of use, in conjunction with the previously described functions for depicting various types of information associated with queries and result sets, would over a long period of time result in a sort of amiotated map ofthe search process.
  • Figure 2 shows how the representation shown in Figure 1 would appear after the following sequence of actions.
  • Tom selects the first query in the search process by clicking on the first line segment in the Search Scaffold (1020), and clicks the "Search"button (1100).
  • This opens a query dialog box containing the text ofthe first query, which Tom edits, and then executes (not shown).
  • the creation ofthe new query causes the system to extend the Search Scaffold by adding a line segment that depicts the new query (2O70) to the first line segment (1020), and also results in adding a new result handle (2060) that depicts the new result set.
  • the dot representing Tom (2075) is shown adjacent to the segment (2070) representing the query he has just created.
  • a new "edition" of a result set, generated in response to a previously composed and executed query might be depicted either as a second result handle (not shown) linked to the original result handle (1050), or by a new more complex representation of a result handle that would replace the original result handle (1050), and which might indicate the degree of overlap (or lack thereof) between the result sets produced by executing the same query at different times.
  • the present invention also provides use of multiple Search Scaffolds in parallel.
  • a web site or corporate information portal which contains, in a scrolling window, a list of Search Scaffolds.
  • Each Search Scaffold e.g. as in 1000
  • Each Search Scaffold might be depicted in its collapsed state (i.e. with a thumbnail ofthe Search Scaffold, and any associated transcript window collapsed to show only the triangle and title (1200).
  • Such a list could be sorted or filtered on a variety of characteristics (e.g.
  • search Scaffold can make many such characteristics visible, users can quickly scan the Search Scaffold representations for configurations of properties that interest them (e.g. search processes with more than 10 users). Or, one might imagine multiple Search Scaffolds being used in a classroom or training situations, where students' executions of search processes can be monitored in parallel by the teacher.
  • Figure 3 depicts an example of an overall logical network topology within which the preferred embodiment of the current invention runs.
  • a server (3030) (which will be described in detail with reference to Figures 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, and 15), and clients (3010, 3020) are all connected to the network (3000), through which the clients (3010 and 3020) and server (3030) communicate.
  • the present invention is applicable to any number of clients.
  • the server (3030) includes, but is not limited to any computing node which can run the operating system sold by Microsoft under the trademark Windows NT, which includes, but is not limited to, products such as are sold by IBM under the trademarks ThinkPad or PowerPC.
  • Examples of the network (3000) include, but are not limited to, the Internet, the World Wide Web, an Internet and local area networks (LANs).
  • Examples of the clients (3010 and 3020) include, but are not limited to, an IBM ThinkPad running Windows 95 and a web browser such as Microsoft's Internet Explore, or Apple's Power Macintosh running MacOS 8.5.6 and a web browser such as Netscape's Navigator.
  • Clients also include network-connectable mobile (i.e. portable) devices such as that sold under the trademark WorkPad by IBM, as well smart cellular telephones (i.e., devices which can act as a cellular telephone as well as run network applications, like web browsers), like that sold under the trademark Nokia 9000i by Nokia.
  • FIG 4 depicts a more detailed example of the server (3030) which hosts the Search Scaffold environment.
  • the server (3030) preferably includes a CPU (4000), a network interface (4010), a storage device (4020) such as a disk or DASD, and memory (4030) such as RAM.
  • the Search Scaffold Server logic (as will be discussed in more detail with reference to Figure 5), is preferably embodied as computer executable code that is loaded from remote (over the network via the network interface (4010)) or local permanent optical (CD-ROM) or magnetic storage such as disk, or DASD (4020) into memory (4030) for execution by CPU (4000).
  • the memory (4030) preferably includes an HTTP handler (4040), a search scaffold handler (4050) (discussed in further detail with reference to Figure 6), a scaffold state database (4060), and an event queue (4070).
  • HTTP handler 4040
  • search scaffold handler 4050
  • scaffold state database 4060
  • event queue 4070
  • the scaffold state database (4060) can be supported by a number of database products including but not limited to the database server product sold by IBM under the trademark DB/2. Those skilled with regular skill in the art will appreciate that the Scaffold State database (4060) could be run on another remote network connected node and accessed via the network (3000).
  • Methods of supporting the event queue include, but are not limited to the use of a RAM buffer into which software-renderings of search scaffold events can be stored, accessed, modified and deleted.
  • Database products such as that sold by IBM under the trademark DB/2 can also be used.
  • FIG. 5 Server Logic Figure 5 depicts an example ofthe search scaffold server's logic. As shown, the server waits for input in 5000. The input is checked in step 5010, and if involves http input, it is further checked in step 5030, otherwise it is passed to a miscellaneous handler (5020). If the input involves the search scaffold, then the search scaffold handler is invoked (5050) is invoked, otherwise an http handler (5040) is invoked.
  • step 5000 the server (3030) waits for input.
  • the search scaffold handler (4050) shown in Figure 6, is an interface that responds to all requests concerning search scaffolds, thus controlling the creation and use of search scaffolds. For each request that arrives, the search scaffold handler (4050) determines its types, and calls the appropriate handler. Thus:
  • the search scaffold handler (4050) receives a request to start a new scaffold as determined at step 6010, the scaffold access handler (6020) (fiirther described in Figure 7) is invoked.
  • search scaffold handler (4050) receives a request to create or act on a query as determined at step 6030, the query handler (6040) (further described in Figure 8) is invoked.
  • the search scaffold handler (4050) receives a request to create or act on an annotation as determined at step 6050, the annotation handler (6060) (further described in Figure 9) is invoked.
  • the scaffold selection handler (6080) (further described in Figure 10) is invoked.
  • search scaffold handler (4050) receives a request to act on a user, as determined at step 6090, the user action handler (6100) (further described in Figure 11) is invoked. If the search scaffold handler (4050) receives a request to chat, as determined at step 6110, the chat handler (6120) (further described in Figure 12) is invoked.
  • step 5000 the server (3030) waits for input.
  • FIG. 7 A Scaffold Access Handler
  • the scaffold state handler is described in more detail in Figure 15.
  • the scaffold access handler could perform a number of other functions such as verifying that users of a given scaffold have appropriate permissions, and providing a means for an administrator to grant or revoke such permissions.
  • the flow continues at step 5000, where the server (3030) waits for input.
  • Figure 8 A Scaffold Query Handler
  • the scaffold query handler (6040) governs actions that have to do with a given query or its results, and/or the display of information relevant to a given query or its results.
  • the scaffold query handler (6040) deals with three sorts of query-related activities: the creation and/or execution of a query, providing a view of the results produced by the execution of query, and showing the portion of the search scaffold transcript that is relevant to a particular query or its results.
  • the scaffold query handler (6040) receives a "start new query” message (8010), it prompts the user to enter a query, and passes the user name and query to the query execution handler (8020) which is responsible for the execution of the query and will be described later in more detail.
  • the query handle receives a "re-execute existing query” message (8030), it likewise calls the query execution handler (8020), except using the existing query. In both cases the consequence is that the query execution handler will update the search scaffold representation and will enter the query and its results into the search scaffold database (4060) and post the commands into the event queue (4070) as described in more detail in Figure 13.
  • the query handler If the query handler receives a "view result set” message (8040), it will retrieve the results for the currently selected result set (or the result set for the currently selected query), and will display the results to the user who made the request.
  • the results could be displayed, including but not limited to a separate window, a "tool tip” or fly-out window, or an audio rendering of the results produced by a text-to-speech function.
  • the query handler receives a message to either "view the query transcript context" (8060) or “view the result set transcript context,” (8070), it will call the transcript handler (8070) which will scroll the search scaffold transcript to the lines corresponding to currently selected query or result set, as described in more detail later.
  • the flow continues at step 5000, where the server (3030) waits for input.
  • the annotation handler (6060), as shown in Figure 9, supports the creation, viewing, editing and deletion of annotations to the scaffold graphic (1001) such as the annotation shown in 1080.
  • the annotation handler When the annotation handler is called, it first (at step 9020) creates a new annotation entry in the scaffold state database (4060) if a new annotation is being created or it accesses the scaffold state database (4060) to retrieve the currently selected annotation. It then, at step 9020, posts the annotation action to the event queue (4070), and, at step (9030) invokes the scaffold state handler (4050) (described in more detail in Figure 15) which manages the display of am otations in the scaffold graphic (1001) for all users. Depending on the nature of the annotation action, a miscellaneous annotation action handler (9040) may be called (for example for view or editing the annotation).
  • scaffold annotations may be composed of text, graphics, audio or other types of media, each of which has different methods for its creation, display and editing.
  • the flow continues at step 5000, where the server (3030) waits for input.
  • Figure 10 shows a Scaffold Selection Handler.
  • the scaffold selection handler (6080) manages each user's selection of components in the scaffold graphic (1001) and the scaffold transcript (1002).
  • the search scaffold (1O00) typically maintains two selected items for each user, one in the scaffold graphic (1001), which defaults to the scaffold graphic root element (for example, 1010), and one in the scaffold transcript (1002) which defaults to the end of the scaffold transcript (10O2).
  • the scaffold selection handler (6080) makes sure there are current selections.
  • the scaffold selection handler (6080) When the scaffold selection handler (6080) is called, it first checks, at step 10010, whether there is a current selection in the scaffold graphic (1001); if there is not (for example, if a previously selected component has just been deleted), at step 10020 it sets the scaffold graphic (1001) selection to its root element (for example, 1010, in Figure 1).
  • step 10030 it checks to see if there is a current selection in the scaffold transcript (1002); if there is not, at 1O040 it sets the scaffold transcript (1002) selection to the end of the scaffold transcript (for example, following line 1250 in the scaffold transcript shown in Figure 1).
  • the scaffold selection handler posts the current scaffold graphic (1001) selection to the scaffold state database (4060) at step 10050 and to the event queue (4070) in step 10060.
  • the scaffold selection handler (6080) posts the current scaffold transcript (1002) selection to the scaffold state database (4060) and then, in step 10080, to the event queue (4070). Finally the scaffold selection handler (6080) calls the scaffold state handler (4050) (described in more detail in Figure 15) to update the scaffold display.
  • step 5000 the server (303O) waits for input.
  • Figure 11 shows a User Action Handler.
  • the user action handler (6100), as shown in Figure 11, supports a variety of actions related to the current user or users of the search scaffold (1000). These actions include but are not limited to setting or changing a user's nickname, creating, viewing or editing a users profile, and opening an instant messaging conversation with a particular user.
  • actions include but are not limited to setting or changing a user's nickname, creating, viewing or editing a users profile, and opening an instant messaging conversation with a particular user.
  • a practitioner skilled in the art will appreciate that there are a number of generic user actions that could be invoked, and that one method for invoking such actions is via the representations of scaffold users shown in the Search Scaffold representation (1001), for example dots 1060 or 1070, or via their nicknames as shown in the search scaffold transcript (1002), for example the nicknames shown in lines 1210 or 1230.
  • the user action handler (6100) When the user action handler (6100) is called, it first (at step 11010) posts the user action to the scaffold state database (4060), then, in step 11020, posts it to the event queue (4070), and finally, at step 11030, invokes the scaffold state handler (4050) (described in more detail in Figure 15). Depending on the nature of the user action, a miscellaneous user action handler may be called at step 11040 (for example, for begimiing an instant messaging conversation with another user). On completion of the handler, the flow continues at step 5000, where the server (3030) waits for input,
  • Figure 12 shows a Scaffold Chat Handler.
  • the scaffold chat handler (6120), as shown in Figure 12, allows users of a particular search scaffold to carry on conversations among themselves. Because the contributions to the conversation are persistent by virtue of being stored in the scaffold state database (4060), it will be appreciated that users need not be present simultaneously to carry on a conversation. Furthermore, while one preferred embodiment of this invention involves conversation conducted by typing textual notes as shown in the scaffold transcript in Figure 1 (1002), those skilled in the art will appreciate that there are other modes through which conversation can be conducted, including but not limited to voice over IP which may be digitized and stored to support persistent conversation among users not synchronously present.
  • the scaffold chat handler (6120) When the scaffold chat handler (6120) is called, it first (at step 12010) posts the user action to the scaffold state database (4060), then, in step 12020, posts it to the event queue (4070), and finally, at step 12030, invokes the scaffold state handler (4050), which is described in detail in Figure 15. On completion of the handler, the flow continues at step 5000, where the server (3030) waits for input.
  • Figure 13 shows a Query Execution Handler.
  • the query execution handler (8020), as shown in Figure 13, allows a user to enter a query, saves it, passes it to a search engine, receives the results, and saves them.
  • the query execution handler Upon its invocation, provides a means for a user to enter a query; those skilled in the art will appreciate that there are a variety of means for achieving this, including but not limited to entering a query as a text string, filling out a form, or constructing a query using an icon query language.
  • the query execution handler (8020) posts the query to the scaffold state database (4060), then, in step 13020, posts it to the event queue (4070), and at step 13030, invokes the scaffold state handler (4050) to update the scaffold graphic (1001) and scaffold transcript (1002), as described in further detail in Figure 15.
  • the query execution handler (8020) calls a query engine which returns a set of results to the query execution handler (8020).
  • the query execution handler (8020) posts the result set to the scaffold state database (4060), then, in step 13060, posts it to the event queue (4070), and at step 13070, invokes the scaffold state handler (4050), which is described in detail in Figure 15, to update the scaffold graphic (1001) representation.
  • the flow continues at step 5000, where the server (3030) waits for input.
  • Figure 14 shows a Scaffold Transcript Handler.
  • the scaffold transcript handler (8070) is called to handle two types of commands, one which uses the current selection the scaffold graphic (1001) to scroll the scaffold transcript
  • the scaffold transcript handler (8070) checks to determine whether its input is a request to select an element ofthe scaffold graphic (1001). If it is, then at step 14020 it checks to see if the selected transcript line is a query line (for example lines 1210 and 1240 in Figure 1, and line 2250 in Figure 2); if so, at step 14030 it calls the scaffold selection handler (6080) to set the new scaffold graphic (1001) selection.
  • a query line for example lines 1210 and 1240 in Figure 1, and line 2250 in Figure 2
  • step 14010 the scaffold transcript handler (8070) checks to see if the request is to show scaffold transcript (1002) context. If no, the handler completes, otherwise execution continues at step 14050.
  • the scaffold transcript handler (8070) checks to see if the current scaffold graphic (1001) selection is a query (for example, elements 1020 and 1040 in Figure 1). If so, the transcript window (1002) is scrolled so to show the associated query line in the scaffold transcript (for example, line 1210 associated with scaffold graphic element 1020, or line 1240 associated with scaffold graphic element 1040), and then the handler completes.
  • step 14070 it checks to see if the current scaffold graphic (1001) selection is a result set element (for example, elements 1030 or 1050). If so, the handler determines the query that produced the result set, and scrolls the transcript window so as to show the associated query line in the scaffold transcript (for example, line 1210 associated with scaffold graphic element 1030, or line 1240 associated with scaffold graphic element 1050), and then the handler completes.
  • the handler determines the query that produced the result set, and scrolls the transcript window so as to show the associated query line in the scaffold transcript (for example, line 1210 associated with scaffold graphic element 1030, or line 1240 associated with scaffold graphic element 1050), and then the handler completes.
  • the scaffold transcript handler (8070) continues to step 14090, where it checks to see if the current scaffold graphic (1001) selection is an annotation such as element 1080. If not the scaffold transcript handler (8070) completes; if so, it continues to step 14100. There the scaffold transcript handler (8070) scrolls the transcript (1002) to show the line closest in time to the creation of the annotation. Practitioners skilled in the art will appreciate that all elements in the scaffold graphic (1001) and scaffold transcript (1002) will have time stamped entries in the scaffold state database (4060) that show the times at which they were created, and otherwise operated on. On completion of the handler, the flow continues at step 5000, where the server (3030) waits for input.
  • FIG 15 shows a Scaffold State Handler.
  • the scaffold state handler (7300) is responsible for reading the event queue (4070) and updating the display including of the Search scaffold representation (1001) and the search scaffold transcript (1002) of one or more users of the search scaffold (1000).
  • the scaffold state handler (7300) checks to see if the event in the event queue involves the creation of a new scaffold. If so, it proceeds to step 15020 where, for the displays of all current users of the search scaffold (1000), it: creates a 'root' icon with the user icon of its creator associated with it in the scaffold graphic (1001), shows the root icon as selected in the scaffold graphic (1001); and displays the scaffold's title in scaffold transcript (1002).
  • the scaffold state handler (7300) proceeds to step 15030, where it checks to see if the event in the event queue involves creating or acting on a queiy. If so, it proceeds to step 15040. If the event involves creating a new query, for the displays of all users the handler adds a query icon to the display; in addition, the handler associates the user icon of its creator with the new query to indicate that that is where the creator's focus is; and it displays the query text in a new line in the scaffold transcript (1002). Otherwise, if the event involves acting on a query, for the displays of all users the handler (7300) associates the user icon of the user acting on the query with it, once again indicating the location of that user's focus. In addition, for the display of the user who is originating the action, the scaffold state handler (7300) shows the query icon as selected for that user only.
  • the scaffold state handler (7300) proceeds to step 15050, where it checks to see if the event in the event queue involves creating a result handle. If so, it proceeds to step 15060, where for the displays of all users it will create new result set icon in scaffold graphic, and will associate the user icon of the creator with it. In addition, for the display of the user who is originating the action, the scaffold state handler (7300) shows the result set icon as selected for that user only.
  • the scaffold state handler (7300) proceeds to step 15070, where it checks to see if the event in the event queue involves displaying a result set. If so, it proceeds to step 15080, where the scaffold state handler (7300) shows the result set icon as selected for that user only. Otherwise, the scaffold state handler (7300) proceeds to step 15090, where it checks to see if the event in the event queue involves creating or acting on an am otation. If so, it proceeds to step 15100.
  • the handler adds an annotation icon to the display, and associates the user icon of its creator with it; otherwise, if the event involves acting on an annotation, for the displays of all users the handler associates the user icon ofthe user acting on the annotation with it.
  • the scaffold state handler (7300) shows the annotation icon as selected for that user only.
  • the scaffold state handler (7300) proceeds to step 15110, where it checks to see if the event in the event queue involves making or changing a scaffold selection. If so, it proceeds to step 15120. If the selected element is a scaffold graphic (1001) element, it will, for the displays of all users, associate the selecting user's user icon with that of the selected item, and for the display ofthe selecting user only will show the selected element's icon as selected. If the selected element is a scaffold transcript (1002) element, it will, for the display of the selecting user only, show the selected transcript element as selected.
  • the scaffold state handler (7300) proceeds to step 15130, where it checks to see if the event in the event queue involves a chat. If so, it proceeds to step 15240, where it will, for the displays of all users ofthe scaffold, show the new line of chat at the end of the scaffold transcript (1001).
  • step 5000 the server (3030) waits for input.
  • the Search Scaffold is a dynamic interactive annotatable representation of an iterative search process.
  • the Search Scaffold is composed of graphical elements and, optionally, audio or video elements.
  • the Search Scaffold includes of four types of elements: • an anchor that represents the search process as a whole • one or more query elements that represent the queries composed in the process of the search • result set elements that represent results produced by given executions of particular queries • annotations that may be applied to elements or sets of elements ofthe Search Scaffold
  • a Search Scaffold typically includes of an anchor, and one or more pairs of a query element and its result set element.
  • Various characteristics of the search process are depicted either through the Search scaffold representation, or by the annotations associated with elements or sets of elements ofthe Search Scaffold.
  • the Search Scaffold dynamically updates to reflect: • new queries • new result sets • the current computed properties, applied annotations, and user activity associated with the queries and result sets
  • Users may also edit a Search Scaffold, deleting unneeded elements, rearranging existing elements, and (as already noted) annotating its elements or element sets.
  • the Search Scaffold representation provides the following benefits: • an overview of the structure and complexity of a given search process • an index into the queries, result sets, annotations, and other activity associated with a search process, which can be utilized by interacting with the Search Scaffold representation • a means for backtracking and exploring alternative search paths from any point in the search process, which can be utilized by interacting with the Search Scaffold representation • a means for understanding how the various queries' result sets change over time (given that the content of the information space being searched is changing), which can be utilized by selecting a query in the Search Scaffold and re-executing it to produce a new result set.
  • a particular Search Scaffold may be viewed and used by multiple users.
  • the Search Scaffold can offer several forms of added value: • Index into chat.
  • a persistent chat space in which text-based conversation is retained over time
  • the chat thus produced has the potential to provide valuable meta-information about the search process, and its value is augmented because the Search Scaffold provides an index into the conversation.
  • the Search Scaffold can depict the presence of users, and indicate the components of the search process on which the users' attentions are focused (e.g.
  • the Search Scaffold can depict the degree of involvement in a search process. That is, of a set of users involved in a particular search process, some may simply be watching the development ofthe search process, others may be talking about the process and its results, and still others may be active in issuing queries or examining result sets. • Asynchronous use support. Note that the above characteristics of Search Scaffolds are not limited to simultaneous users. Since the Search Scaffold representation persists over time and across sessions, and that its associated chat and other annotations also persist, it can be configured to depict the above characteristics so that they are available to users not simultaneously present. For example, the Search Scaffold can be configured to show who has visited recently, how deeply they have been involved, and where their attention has been focused
  • Multiple Search Scaffolds may be created, their representations being made available in a scrolling list. Such a configuration enables: • viewing, monitoring, or participation in multiple search processes in parallel. • the comparison of multiple instances of a search (for example, in an educational or training situation, observing how efficiently different students execute an assigned search process ). • the sorting or filtering of search processes according to various characteristics including but not limited to: their degree of elaboration; users' subjective assessments of their quality of their results; the popularity of a Search Scaffold
  • the present invention provides a method for enabling at least one user to conduct at least one search on an information space, comprising the steps of: creating a first instance of one search from said at least one search and forming a first symbolic representation of said first instance; accepting a new query from said at least one user; modifying the first symbolic representation to include a query representation and a result handle of said new query forming a second symbolic representation; and forwarding said second symbolic representation to said at least one user.
  • the method further includes: one user from said at least one user determining if said second symbolic representation satisfies said search, and terminating said search if the step of determining results in said one user being satisfied, otherwise repeating the steps of accepting, modifying and forwarding until the step of determining results in said one user being satisfied; and/or storing each new query in a query list, and wherein the step of determining is based upon an examination of at least one query in said query list; and/or the at least one user retrieves the results for said query; and/or said at least one user selecting a particular result handle from said second symbolic representation, executing the new query associated with said particular result handle forming a new set of results, and forwarding the new set of results to said at least one user; and/or repeating the steps of selecting, executing and forwarding the new set of results according to a search repetition criterion; and/or storing each new set of results in a result list, and a user from said users using a particular set of results in satisfying a
  • the invention also provides a method for forming an annotatable representation of an iterative search process composed of graphical elements, said annotatable representation including the steps of: an anchor that represents the search process as a whole; at least one query element representing queries composed in the search process; result set elements representing results produced by given executions of particular queries; and annotations that may be applied to elements or sets of elements ofthe annotatable representation.
  • the invention also provides a method for conducting a search on a network server, comprising: creating a first instance of an online search scaffold forming a first graphical representation forwarded to at least one user; accepting a query from said at least one user; reflecting said queiy in the first graphical representation so as to form a second graphical representation forwarded to said at least one user; executing the query and producing a first set of results for said query; depicting said first set of results in the second graphical representation so as to form a third graphical representation forwarded to said at least one user; allowing one user from said at least one user to determine if a desired set of results is included in said first set of results; and if said desired set of results is included, termination said search, if said desired set of results in not included, repeating the steps of accepting, reflecting, executing, depicting, and allowing until the desired set of results is included in said first set of results.
  • the method mcludes forming a second dynamic graphic representation by clicking a button to begin the second dynamic graphic representation; and/or providing a handler to generate at least a portion of graphics, and providing a database to keep track of a state ofthe search process; and/or sharing at least one graphical representation with at least one other user.
  • the invention also provides an apparatus comprising means for enabling at least one user to conduct at least one search on an information space, the means for enabling comprising: means for creating a first instance of one search from said at least one search; means for forming a first symbolic representation of said first instance; means for accepting a new query from said at least one user; means for modifying the first symbolic representation to include a query representation and a result handle of said new query forming a second symbolic representation; and means for forwarding said second symbolic representation to said at least one user.
  • the invention also provides an apparatus including means for enabling at least one user to conduct at least one search on an information space, the means for enabling comprising: means for creating a first instance of one search from said at least one search; means for forming a first symbolic representation of said first instance; means for accepting a new query from said at least one user; means for modifying the first symbolic representation to include a query representation and a result handle of said new query forming a second symbolic representation; and means for forwarding said second symbolic representation to said at least one user.
  • the present invention can be realized in hardware, software, or a combination of hardware and software.
  • a visualization tool according to the present invention can be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system - or other apparatus adapted for carrying out the methods and/or functions described herein - is suitable.
  • a typical combination of hardware and software could be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
  • the present invention can also be embedded in a computer program product, which comprises all the features enabling the implementation ofthe methods described herein, and which - when loaded in a computer system - is able to carry out these methods.
  • Computer program means or computer program in the present context include any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after conversion to another language, code or notation, and/or reproduction in a different material form.
  • the invention includes an article of manufacture which comprises a computer usable medium having computer readable program code means embodied therein for causing a function described above.
  • the computer readable program code means in the article of manufacture comprises computer readable program code means for causing a computer to effect the steps of a method of this invention.
  • the present invention may be implemented as a computer program product comprising a computer usable medium having computer readable program code means embodied therein for causing a function described above.
  • the computer readable program code means in the computer program product comprising computer readable program code means for causing a computer to effect one or more functions of this invention.
  • the present invention may be implemented as a program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for causing one or more functions of this invention.

Abstract

The present invention provides methods, apparatus and systems for a Search Scaffold (1000). The Search Scaffold (1000) is a dynamic interactive annotatable representation of an iterative search process (1100) that may be used by one or more users to explore a large information space. The invention includes the Search Scaffold (1000), and means of starting, extending, editing, deleting, and duplicating Search Scaffolds. The Search Scaffold is extended each time a query is formulated and executed, said representation taking on extra elements representing the extension of the search. Each of the elements of the Search Scaffold can depict various characteristics of the queries and search result sets that constitute the search process. The Search Scaffold representation (1001) provides a means for accessing, annotating, and manipulating components of a search process with multiple iterations.

Description

REPRESENTATIONS OF QUERIES IN SEARCH SPACES AS A RESOURCE FOR INTERACTION
FIELD OF THE INVENTION
The present invention is directed to providing a dynamic interactive amiotatable representation that can serve as a dynamic user interface for an iterative search process. It is more particularly directed to the production and use of this representation for representing and refining a search. .
BACKGROUND OF THE INVENTION
Despite the increasing need to search large information spaces — ranging from the world wide web, to corporate databases on intranets, to catalogs on e-commerce sites - support for the process of conducting a thorough search of an information source remains limited largely to textual queries and lists of results. In particular, no support is available for making the entire iterative process of conducting a search more legible and thus understandable.
Systems such as Google, Alta Vista and Excite provide search engines for exploring large information space. However, such search engines return their results in textual form, and do not generate an overview (or even a trace) of iterations ofthe queries or results that comprise a given search.
Iwayama and his colleagues (Iwayama, N., Murakami, M. & Matsuda, M., Consulting Search Engines as Conversation. The Proceedings ofthe 7th IFIP Conference on Human-Computer Interaction, 1999) modified Internet Relay Chat (IRC) so that searches could be issued from within it, and the queries (and URLs for result sets) would be visible to all users of the channel. While this application made it possible for a group to collaborate in conducting a search, the system's representation was entirely textual in nature, and, given the ephemeral nature of IRC chat, lacked a persistent representation ofthe process.
A variety of systems provide a means for visualizing and organizing the results of a given query. These include application packages that support scientific visualization, as well as commercial products such as "grokker" (http://www.grolcker.com). However, these packages visualize the results of a single search, showing each result as a single entity organized in relation to the other results, rather than the current invention's visualization of iterative process of exploring the search space and its depiction of characteristics of entire result sets.
The dynamic query system developed by Shneiderman and his colleagues provides a dynamic visualization of a result set that permits users to modify the query and ~ as they do so — to observe the results of the changes to the query on the result set. Thus, a user in the process of buying a house may search a real estate listing database, and, as the parameters of the query such as price or location are changed, can see ho~w the number and distribution of hits shown on a scatter plot vary in accordance with the changes in parameter values. However, the dynamic query system shows a visualization ofthe content ofthe current set of results; it does not provide an overview or trace ofthe entire search process.
Thus there exists a need for a method and apparatus for providing a dynamic interactive annotatable representation of an iterative search process that may be used as a resource by one or more users to explore a large information space.
SUMMARY OF THE INVENTION
In accordance with the aforementioned need, one aspect of the present invention provides a persistent, dynamic, interactive representation of an iterative search process that can provide one or more users with support for conducting the search, herein referred to as a Search Scaffold. The Search Scaffold is a dynamic interactive annotatable representation of an iterative search process.
One particular aspect of the present invention is related to the production and use of this representation for representing and refining a search.
Another particular aspect of the present invention is related to the use of this representation for supporting collaboration amongst a number of users interested in collaborating on a particular search. A Search Scaffold is composed of graphical elements and, optionally, audio or video elements. In an example embodiment, the Search Scaffold includes four types of elements: a root that represents the search process as a whole; one or more query elements that represent the queries composed in the process of the search; one or more result handle elements that represent result sets produced by given executions of particular queries; and annotations that may be applied to elements or sets of elements ofthe Search Scaffold
In another aspect, over time, as the search process is elaborated, the Search Scaffold dynamically updates to reflect new queries, new result handles for result sets, and the current values of the various elements' computed properties, applied annotations, and user activities. Users may also edit a Search Scaffold, deleting unneeded elements, rearranging existing elements, and (as already indicated) annotating its elements or element sets.
In still another aspect, the particular Search Scaffold may be viewed and used by multiple users so that the Search Scaffold can offer several forms of added value, including: index into chat; depiction of presence and location; depiction of degree of involvement; asynchronous use support; and multiple Search Scaffolds may be created such that their representations being made available in a scrolling list.
BRIEF DESCRIPTION OF THE DRAWINGS
These, and further, aspects, advantages, and features of the invention will be more apparent from the following detailed description of a preferred embodiment and the appended drawings wherein:
Fig. 1 shows an exemplary graphic representation of a search scaffold;
Fig. 2 shows an exemplary graphic representation of a search scaffold in Fig. 1 after it has been extended with one query;.
Fig. 3 shows network topology employed according to an embodiment ofthe present invention;. Fig. 4 is a block diagram of a server according to the present invention;
Fig. 5 is a flow diagram of a server logic;
Fig. 6 is a is a flow diagram of a scaffold handler;
Fig. 7 is a flow diagram of a scaffold access handler;
> Fig. 8 is a flow diagram of a chat handler;
Fig. 9 is a flow diagram of a selection handler;
Fig. 10 is a flow diagram of a query handler;
Fig. 11 is a is a flow diagram of a user action handler;
Fig. 12 is a flow diagram of an annotation handler;
i Fig. 13 is a flow diagram of a query execution handler;
Fig. 14 is a flow diagram of a scaffold transcript handler; and
Fig. 15 is a flow diagram of a scaffold state handler.
DETAILED DESCRIPTION OF THE INVENTION
The present invention provides methods, apparatus and systems for a persistent, dynamic, interactive representation of an iterative search process that can provide one or more users with support for conducting the search, herein referred to as a Search Scaffold. The Search Scaffold is a dynamic interactive amiotatable representation of an iterative search process. An example embodiment of the present invention is related to the production and use of this representation for representing and refining a search. The present invention also provides for use of this representation for supporting collaboration amongst a number of users interested in collaborating on a particular search.
Generally, a Search Scaffold is composed of graphical elements and, optionally, audio or video elements. . More generally a Search Scaffold includes a root and one or more pairs of a query element and its result handle element. Various characteristics of the search process are depicted either through the Search Scaffold representation, or by the annotations associated with elements or sets of elements of the Search Scaffold. Multiple Search Scaffolds may be created such that their representations are made available in a scrolling list.
As shown in the example of Figures 1 and 2, the Search Scaffold is composed of graphical elements and, optionally, audio or video elements. The Search Scaffold includes four types of elements: •a root that represents the search process as a whole; •one or more query elements that represent the queries composed in the process of the search; •one or more result handle elements that represent result sets produced by given executions of particular queries; and •annotations that may be applied to elements or sets of elements ofthe Search Scaffold
Typically a Search Scaffold includes of a root and one or more pairs of a queiy element and its result handle element. Various characteristics of the search process are depicted either through the Search Scaffold representation, or by the annotations associated with elements or sets of elements ofthe Search Scaffold. Characteristics of the search process that may be depicted by the Search Scaffold include: computable properties of portions ofthe search , such as the number of items in a result set; user-generated annotations of parts ofthe search process, for example, a subjective rating ofthe goodness of a result set; the activity ofthe users of a Search Scaffold, such as which result sets are being viewed by how many users. Over time, as the search process is elaborated, the Search Scaffold dynamically updates to reflect new queries, new result handles for result sets, and the current values of the various elements' computed properties, applied annotations, and user activities. Users may also edit a Search Scaffold, deleting unneeded elements, rearranging existing elements, and (as already indicated) annotating its elements or element sets.
A Search Scaffold provides the following benefits: an overview ofthe structure and complexity of a given search process; an index into the queries, result sets, annotations, and other activities associated with a search process, which can be utilized by interacting with the Search Scaffold representation; a means for backtracking and exploring alternative search paths from any point in the search process, which can be utilized by interacting with the Search Scaffold representation; and a means for understanding how the various queries' result sets change over time (given that the content ofthe information space being searched is changing), which can be utilized by selecting a query in the Search Scaffold and re-executing it to produce a new result handle to a new result set.
A particular Search Scaffold may be viewed and used by multiple users. The multiple users are empowered with a combination of utilities. In this case, the Search Scaffold can offer several forms of added value through utilities:
Index into chat. A persistent chat space (in which text-based conversation is retained over time) may be associated with a Search Scaffold so that multiple users may talk among themselves while viewing or otherwise participating in the search process. The chat thus produced has the potential to provide valuable meta-information about the search process, and its value is augmented because the Search Scaffold provides an index into the conversation.
Depiction of presence and location. The Search Scaffold can depict the presence of users, and indicate the components ofthe search process on which the users' attentions are focused (e.g. one user may be examining the first result set in the search process, whereas another user might be examining the fourth result set in the search process).
Depiction of degree of involvement. The Search Scaffold can depict the degree of involvement in a search process. That is, of a set of users involved in a particular search process, some may simply be watching the development ofthe search process, others may be talking about the process and its results, and still others may be active in issuing queries or examining result sets.
Asynchronous use support. Note that the above characteristics of Search Scaffolds are not limited to simultaneous users. Since the Search Scaffold representation persists over time and across sessions, with its associated chat and other annotations also persisting, it can be configured to depict the above characteristics so that they are available to users not simultaneously present. For example, the Search Scaffold can be configured to show who has visited recently, how deeply they have been involved, and where their attention has been focused.
Finally, multiple Search Scaffolds may be created, their representations being made available in a scrolling list. Such a configuration enables: the viewing, monitoring, or participation in multiple search processes in parallel.; the comparison of multiple instances of a search (for example, in an educational or training situation, showing how efficiently different students execute an assigned search process ); and the sorting or filtering of search processes according to various characteristics including but not limited to: their degree of elaboration; users' subjective assessments of their quality of their results; the popularity of a Search Scaffold.
Figures 1 and 2 show an example of an embodiment of a Search Scaffold (1000) ~ a dynamic interactive annotatable representation of an iterative search process, and its associated annotations — and illustrates how it may be used by one or more users to explore a large information space. The Search Scaffold shown includes of two parts, the Search Scaffold Representation (1001), and the Search Scaffold Transcript (1002). Most of the elements of the Search Scaffold represent an ongoing search process. The horizontal line (1010), is the Search Scaffold's "root," and signifies the search in general. The line segments (1020, 1040) and square nodes that terminate each line segment (1030, 1050) represent queries (which can be passed to a search engine) and result handles (which provide access to result sets produced by a search engine's execution of a query), respectively. Thus, the Search Scaffold Representation depicts a search process in which one query (1020) has been executed producing a result handle (103) to a set of results, followed by the creation a second query (1040) that has been executed to produce a result handle (1050) to a new set of results.
The appearances ofthe elements ofthe Search Scaffold Representation may be modified to depict characteristics of each query and/or its results. For example, relative angles ofthe line segments (1020 and 1040) may be used to depict the degree to which the terms ofthe current query differ from those ofthe previous query, and the lengths ofthe line segments may indicate the approximate number of terms in each queiy. Similarly, the shape, size or color of a result handle (1030, 1050) may be used to depict the number, average length, or other characteristics of the result set it represents.
A Search Scaffold Representation may be annotated with information about the location and nature of the activity of its users. For example, in the example embodiment, the dots (1060, 1070) represent two users. One of the users (1060) has their focus on the Search Scaffold as a whole; that is, the user is simply looking at the contents of the Search Scaffold as shown in Figure 1. The other user (1070) has his focus on the second result handle (1050); that is, the user is inspecting the second result set as shown. These user activities are shown, respectively, by the position of the first user's dot (1060) adjacent to the Search Scaffold's root element (1010), and by the position of the second user's dot (1070) adjacent to the second result handle (1050). One might imagine other Search Scaffolds that represented more extensive search processes and that were being used by larger groups, in which users could see how the activity of the group was distributed across the search process, with "crowds" (large clusters of dots) indicating points of collective focus.
A Search Scaffold Representation may also be annotated with arbitrary information that a user wishes to attach to the Search Scaffold as a whole, or particular elements or sets of elements of the Search Scaffold. For example, in Figure I, the square icon containing a "plus" (1080) that is adjacent to the second result set node (1050) depicts that the second result set has been annotated to show that it contains good results. Annotations need not be visual in character: the Search Scaffold might also be augmented with auditory icons or recorded sounds that depict characteristics of each query and/or its results. For example, hovering over a result set node might evoke a deep tone with reverberations which could indicate a large result set; alternatively digitized speech might be used to depict the terms of a particular query.
While Figure 1 shows an example in which intrinsic characteristics ofthe search process are depicted by changes in the appearance ofthe elements of a Search Scaffold (i.e. root, query segments, and result set nodes), and user-generated information (either arbitrary information such as notes or subjective judgments) is depicted via annotations, note that any type of information may be depicted through either means. Thus, for example, the size ofthe result sets might be indicated by numbers attached as annotations to each result set node, and a user might flag a result set as interesting by changing the size, shape or color of a result set node.
The buttons in the lower portion ofthe Search Scaffold Representation (1100, 1110, 1120) enable users to participate in the search process by issuing commands that allow them to control the search process and to interact with other users, as will be described.
The right portion of Figure 1 (1002) shows the Search Scaffold Transcript, a pane that is associated with the Search Scaffold. The top ofthe transcript pane contains a title with an associated triangle (1200) which enables users to hide or reveal the contents ofthe transcript pane. Below the title is a transcript ofthe interaction (1210, 1220, 1230, 1240, 1250) that persists over time and across sessions. The Search Scaffold Transcript, together with the Search Scaffold, provides a visible trace of users' actions and interactions in the course ofthe search process.
The representations shown in Figure 1 are dynamic, and show the search process at a particular point in time. The representations are initially created when "Tom" starts a new search process. After being prompted to enter a title for the search process, the system generates a representation that includes of a the horizontal bar that depicts the root ofthe search (1010), a dot that depicts Tom (1070 in Figure 1, but would at that point be located where 1060 is), the triangle and title (1200), and the action buttons (1100, 1110, 1120). "Tom" clicks the search button (1100), enters the query "Install Cocoon on Websphere" into a dialog box and presses its "OK" button (not shown), and the system echoes the command and arguments as a line in the Search Scaffold transcript (1210), and adds a line segment representing the query (1020) and a square node (1030) representing a handle to the results, which would appear in a separate window and which can be viewed at any time by clicking on the result handle (1030). Tom's creation ofthe query resulted in his focus being set to the query (with his dot (1070) being moved adjacent to the query representation (1020)), and then his execution ofthe query results in his focus being set to the result handle (with his dot (1070) being moved adjacent to the result handle element (1030)).
At this point "Tom" notices that a second user is viewing the Search Scaffold because a new dot (1060) has appeared. Therefore Tom clicks on the "Talk" button (1110), and types "Whoops-over 2300 hits!" into the dialog box and clicks "OK" (not shown), to indicate that the result set is not worth looking at. Tom's comment is echoed in the transcript pane (1220) where it is visible to the other user, "Jil." Jil, in turn, clicks on the "Talk" button (1160) and offers the advice shown in the next line of the transcript window (1230). In the same manner as described above, Tom issues a new query, resulting in the creation of a new line segment (1040) and a new result handle (1050), inspects the result set by switching to its window, causing his dot (1070) to be moved to its current location in Figure 1 adjacent to the new result handle (1050), and, liking what he sees annotates the result handle by clicking the "plus" button (1120) which associates a "plus" icon (1080) with the result set node (1050), and uses the "Talk button" (1110) to make a positive comment in the transcript window (1250) in the manner previously shown. Note that because the contents ofthe transcript window persist across sessions and are shared among users, users need not be simultaneously present to engage in chat, or other forms of collaborative activity.
The Search Scaffold Representation (1001) functions as an index into the Search Transcript window (1002). By selecting an element ofthe Search Scaffold, a user can show the portion of the Search Scaffold Transcript (1002) that corresponds to an element ofthe Search Scaffold Representation, the correspondence either being direct (as in the case of queries), or showing the portion ofthe Transcript produced most closely in time to when the Search Scaffold Representation element was created. For example, clicking on the first vertical line segment (1020) in the Search Scaffold would result in the transcript window being scrolled to show and highlight the first line (1210); similarly, clicking on the first result handle (1030) would scroll the Transcript window to show the first line (1210), that being the query whose execution produced the result set. A side effect of this indexing is that it also reveals any chat that had occurred at that point in the search process.
Another use ofthe Search Scaffold is to support the production and exploration of different queries. Thus, if a particular line of exploration failed to bear fruit, a user might click on a the last previously issued query that was fruitful, thus setting their focus to that query, and modify it to explore in a different direction. In such a case, the Search Scaffold would depict a branch, with the representation of a new query and result set branching off from the selected one. This type of use, in conjunction with the previously described functions for depicting various types of information associated with queries and result sets, would over a long period of time result in a sort of amiotated map ofthe search process. (Note that because the underlying information space is assumed to be dynamic, with its content changing over time, and because the issuing of queries order or partition the search space in different ways, it does not make sense to speak of a producing a map or visualization ofthe underlying information space that persists over time.)
For example, Figure 2 shows how the representation shown in Figure 1 would appear after the following sequence of actions. Tom selects the first query in the search process by clicking on the first line segment in the Search Scaffold (1020), and clicks the "Search"button (1100). This opens a query dialog box containing the text ofthe first query, which Tom edits, and then executes (not shown). The creation ofthe new query causes the system to extend the Search Scaffold by adding a line segment that depicts the new query (2O70) to the first line segment (1020), and also results in adding a new result handle (2060) that depicts the new result set. The dot representing Tom (2075), is shown adjacent to the segment (2070) representing the query he has just created. These newly added elements ofthe Search Scaffold function in the same manner as those previously described.
If we imagine that a Search Scaffold remains in use over a long period of time, during which the contents ofthe underlying information space changes, it may be of interest for users to return to previously issued queries by clicking on a line segment (e.g. 1040), re-executing them by clicking the Search button (1100) and pressing OK in the query dialog box (not shown), the aim being to see whether a previously useful query now retrieves additional results. A new "edition" of a result set, generated in response to a previously composed and executed query, might be depicted either as a second result handle (not shown) linked to the original result handle (1050), or by a new more complex representation of a result handle that would replace the original result handle (1050), and which might indicate the degree of overlap (or lack thereof) between the result sets produced by executing the same query at different times.
The present invention also provides use of multiple Search Scaffolds in parallel. Thus, we might imagine a web site or corporate information portal which contains, in a scrolling window, a list of Search Scaffolds. Each Search Scaffold (e.g. as in 1000) might be depicted in its collapsed state (i.e. with a thumbnail ofthe Search Scaffold, and any associated transcript window collapsed to show only the triangle and title (1200). Such a list could be sorted or filtered on a variety of characteristics (e.g. number of iterations ofthe search process, number of users currently active in the search process, searches whose queries contain certain keywords, search processes with particular annotations, and so on); similarly, because the Search Scaffold can make many such characteristics visible, users can quickly scan the Search Scaffold representations for configurations of properties that interest them (e.g. search processes with more than 10 users). Or, one might imagine multiple Search Scaffolds being used in a classroom or training situations, where students' executions of search processes can be monitored in parallel by the teacher.
Figure 3: Network Topology
Figure 3 depicts an example of an overall logical network topology within which the preferred embodiment of the current invention runs. As shown, a server (3030) (which will be described in detail with reference to Figures 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, and 15), and clients (3010, 3020) are all connected to the network (3000), through which the clients (3010 and 3020) and server (3030) communicate. Although only two clients (3010 and 3020) are shown in Figure 3, the present invention is applicable to any number of clients.
The server (3030) includes, but is not limited to any computing node which can run the operating system sold by Microsoft under the trademark Windows NT, which includes, but is not limited to, products such as are sold by IBM under the trademarks ThinkPad or PowerPC.
Examples of the network (3000) include, but are not limited to, the Internet, the World Wide Web, an Internet and local area networks (LANs). Examples of the clients (3010 and 3020) include, but are not limited to, an IBM ThinkPad running Windows 95 and a web browser such as Microsoft's Internet Explore, or Apple's Power Macintosh running MacOS 8.5.6 and a web browser such as Netscape's Navigator. Clients also include network-connectable mobile (i.e. portable) devices such as that sold under the trademark WorkPad by IBM, as well smart cellular telephones (i.e., devices which can act as a cellular telephone as well as run network applications, like web browsers), like that sold under the trademark Nokia 9000i by Nokia.
Figure 4: A Server
Figure 4 depicts a more detailed example of the server (3030) which hosts the Search Scaffold environment. The server (3030) preferably includes a CPU (4000), a network interface (4010), a storage device (4020) such as a disk or DASD, and memory (4030) such as RAM. According to the present invention, the Search Scaffold Server logic (as will be discussed in more detail with reference to Figure 5), is preferably embodied as computer executable code that is loaded from remote (over the network via the network interface (4010)) or local permanent optical (CD-ROM) or magnetic storage such as disk, or DASD (4020) into memory (4030) for execution by CPU (4000). Network communications to and from the server are made through the network interface (4010), communication types including but not limited to Ethernet, token-ring, and wireless such as RF- and IR-based. The memory (4030) preferably includes an HTTP handler (4040), a search scaffold handler (4050) (discussed in further detail with reference to Figure 6), a scaffold state database (4060), and an event queue (4070).
The scaffold state database (4060) can be supported by a number of database products including but not limited to the database server product sold by IBM under the trademark DB/2. Those skilled with regular skill in the art will appreciate that the Scaffold State database (4060) could be run on another remote network connected node and accessed via the network (3000).
Methods of supporting the event queue (4070), include, but are not limited to the use of a RAM buffer into which software-renderings of search scaffold events can be stored, accessed, modified and deleted. Database products, such as that sold by IBM under the trademark DB/2 can also be used.
Figure 5: Server Logic Figure 5 depicts an example ofthe search scaffold server's logic. As shown, the server waits for input in 5000. The input is checked in step 5010, and if involves http input, it is further checked in step 5030, otherwise it is passed to a miscellaneous handler (5020). If the input involves the search scaffold, then the search scaffold handler is invoked (5050) is invoked, otherwise an http handler (5040) is invoked.
Following the completion of any of the handlers, i.e., steps 502O, 5040 or 5050, , the flow continues at step 5000, where the server (3030) waits for input.
Figure 6: A Scaffold Handler
The search scaffold handler (4050) , shown in Figure 6, is an interface that responds to all requests concerning search scaffolds, thus controlling the creation and use of search scaffolds. For each request that arrives, the search scaffold handler (4050) determines its types, and calls the appropriate handler. Thus:
If the search scaffold handler (4050) receives a request to start a new scaffold as determined at step 6010, the scaffold access handler (6020) (fiirther described in Figure 7) is invoked.
If the search scaffold handler (4050) receives a request to create or act on a query as determined at step 6030, the query handler (6040) (further described in Figure 8) is invoked.
If the search scaffold handler (4050) receives a request to create or act on an annotation as determined at step 6050, the annotation handler (6060) (further described in Figure 9) is invoked.
If the search scaffold handler (4050) receives a request to make or change a scaffold selection as determined at step 6070, the scaffold selection handler (6080) (further described in Figure 10) is invoked.
If the search scaffold handler (4050) receives a request to act on a user, as determined at step 6090, the user action handler (6100) (further described in Figure 11) is invoked. If the search scaffold handler (4050) receives a request to chat, as determined at step 6110, the chat handler (6120) (further described in Figure 12) is invoked.
On completion of the search scaffold handler (4050), the flow continues at step 5000, where the server (3030) waits for input.
Figure 7: A Scaffold Access Handler
The scaffold access handler (6020), as shown in Figure 7, governs the creation of a new search scaffold. Upon request, it creates a new scaffold entry (7100) in the scaffold database (4060), enters the "new scaffold" request (7200) in the event queue (4070), and than, at step 7300 invokes the scaffold state handler (4050) which manages all elements of the display of the search scaffold, as depicted, for example, in Figure 1. The scaffold state handler is described in more detail in Figure 15.
Those skilled in the art will appreciate that the scaffold access handler could perform a number of other functions such as verifying that users of a given scaffold have appropriate permissions, and providing a means for an administrator to grant or revoke such permissions. On completion of the scaffold access handler (4050), the flow continues at step 5000, where the server (3030) waits for input.
Figure 8: A Scaffold Query Handler
The scaffold query handler (6040), as shown in Figure 8, governs actions that have to do with a given query or its results, and/or the display of information relevant to a given query or its results. The scaffold query handler (6040) deals with three sorts of query-related activities: the creation and/or execution of a query, providing a view of the results produced by the execution of query, and showing the portion of the search scaffold transcript that is relevant to a particular query or its results.
If the scaffold query handler (6040) receives a "start new query" message (8010), it prompts the user to enter a query, and passes the user name and query to the query execution handler (8020) which is responsible for the execution of the query and will be described later in more detail. Similarly, if the query handle receives a "re-execute existing query" message (8030), it likewise calls the query execution handler (8020), except using the existing query. In both cases the consequence is that the query execution handler will update the search scaffold representation and will enter the query and its results into the search scaffold database (4060) and post the commands into the event queue (4070) as described in more detail in Figure 13.
If the query handler receives a "view result set" message (8040), it will retrieve the results for the currently selected result set (or the result set for the currently selected query), and will display the results to the user who made the request. A practitioner skilled in the art will appreciate that there are many ways in which the results could be displayed, including but not limited to a separate window, a "tool tip" or fly-out window, or an audio rendering of the results produced by a text-to-speech function.
If the query handler receives a message to either "view the query transcript context" (8060) or "view the result set transcript context," (8070), it will call the transcript handler (8070) which will scroll the search scaffold transcript to the lines corresponding to currently selected query or result set, as described in more detail later. On completion of the handler, the flow continues at step 5000, where the server (3030) waits for input.
Figure 9: An Annotation Handler
The annotation handler (6060), as shown in Figure 9, supports the creation, viewing, editing and deletion of annotations to the scaffold graphic (1001) such as the annotation shown in 1080.
When the annotation handler is called, it first (at step 9020) creates a new annotation entry in the scaffold state database (4060) if a new annotation is being created or it accesses the scaffold state database (4060) to retrieve the currently selected annotation. It then, at step 9020, posts the annotation action to the event queue (4070), and, at step (9030) invokes the scaffold state handler (4050) (described in more detail in Figure 15) which manages the display of am otations in the scaffold graphic (1001) for all users. Depending on the nature of the annotation action, a miscellaneous annotation action handler (9040) may be called (for example for view or editing the annotation).
Those skilled in the art will appreciate that scaffold annotations may be composed of text, graphics, audio or other types of media, each of which has different methods for its creation, display and editing. On completion of the handler, the flow continues at step 5000, where the server (3030) waits for input.
Figure 10 shows a Scaffold Selection Handler.
The scaffold selection handler (6080) manages each user's selection of components in the scaffold graphic (1001) and the scaffold transcript (1002). The search scaffold (1O00) typically maintains two selected items for each user, one in the scaffold graphic (1001), which defaults to the scaffold graphic root element (for example, 1010), and one in the scaffold transcript (1002) which defaults to the end of the scaffold transcript (10O2).
First the scaffold selection handler (6080) makes sure there are current selections. When the scaffold selection handler (6080) is called, it first checks, at step 10010, whether there is a current selection in the scaffold graphic (1001); if there is not (for example, if a previously selected component has just been deleted), at step 10020 it sets the scaffold graphic (1001) selection to its root element (for example, 1010, in Figure 1). Next, at step 10030, it checks to see if there is a current selection in the scaffold transcript (1002); if there is not, at 1O040 it sets the scaffold transcript (1002) selection to the end of the scaffold transcript (for example, following line 1250 in the scaffold transcript shown in Figure 1). At this point there are current selections in the scaffold graphic (1001) and the scaffold transcript (1002). Next the scaffold selection handler posts the current scaffold graphic (1001) selection to the scaffold state database (4060) at step 10050 and to the event queue (4070) in step 10060.
At step 10070, the scaffold selection handler (6080) posts the current scaffold transcript (1002) selection to the scaffold state database (4060) and then, in step 10080, to the event queue (4070). Finally the scaffold selection handler (6080) calls the scaffold state handler (4050) (described in more detail in Figure 15) to update the scaffold display.
On completion ofthe handler, the flow continues at step 5000, where the server (303O) waits for input.
Figure 11 shows a User Action Handler.
The user action handler (6100), as shown in Figure 11, supports a variety of actions related to the current user or users of the search scaffold (1000). These actions include but are not limited to setting or changing a user's nickname, creating, viewing or editing a users profile, and opening an instant messaging conversation with a particular user. A practitioner skilled in the art will appreciate that there are a number of generic user actions that could be invoked, and that one method for invoking such actions is via the representations of scaffold users shown in the Search Scaffold representation (1001), for example dots 1060 or 1070, or via their nicknames as shown in the search scaffold transcript (1002), for example the nicknames shown in lines 1210 or 1230.
When the user action handler (6100) is called, it first (at step 11010) posts the user action to the scaffold state database (4060), then, in step 11020, posts it to the event queue (4070), and finally, at step 11030, invokes the scaffold state handler (4050) (described in more detail in Figure 15). Depending on the nature of the user action, a miscellaneous user action handler may be called at step 11040 (for example, for begimiing an instant messaging conversation with another user). On completion of the handler, the flow continues at step 5000, where the server (3030) waits for input,
Figure 12 shows a Scaffold Chat Handler.
The scaffold chat handler (6120), as shown in Figure 12, allows users of a particular search scaffold to carry on conversations among themselves. Because the contributions to the conversation are persistent by virtue of being stored in the scaffold state database (4060), it will be appreciated that users need not be present simultaneously to carry on a conversation. Furthermore, while one preferred embodiment of this invention involves conversation conducted by typing textual notes as shown in the scaffold transcript in Figure 1 (1002), those skilled in the art will appreciate that there are other modes through which conversation can be conducted, including but not limited to voice over IP which may be digitized and stored to support persistent conversation among users not synchronously present.
When the scaffold chat handler (6120) is called, it first (at step 12010) posts the user action to the scaffold state database (4060), then, in step 12020, posts it to the event queue (4070), and finally, at step 12030, invokes the scaffold state handler (4050), which is described in detail in Figure 15. On completion of the handler, the flow continues at step 5000, where the server (3030) waits for input. Figure 13 shows a Query Execution Handler.
The query execution handler (8020), as shown in Figure 13, allows a user to enter a query, saves it, passes it to a search engine, receives the results, and saves them. Upon its invocation, the query execution handler provides a means for a user to enter a query; those skilled in the art will appreciate that there are a variety of means for achieving this, including but not limited to entering a query as a text string, filling out a form, or constructing a query using an icon query language.
At step 13010, the query execution handler (8020) posts the query to the scaffold state database (4060), then, in step 13020, posts it to the event queue (4070), and at step 13030, invokes the scaffold state handler (4050) to update the scaffold graphic (1001) and scaffold transcript (1002), as described in further detail in Figure 15.
At step 13040, the query execution handler (8020) calls a query engine which returns a set of results to the query execution handler (8020).
At step 13050, the query execution handler (8020) posts the result set to the scaffold state database (4060), then, in step 13060, posts it to the event queue (4070), and at step 13070, invokes the scaffold state handler (4050), which is described in detail in Figure 15, to update the scaffold graphic (1001) representation. On completion of the handler, the flow continues at step 5000, where the server (3030) waits for input.
Figure 14 shows a Scaffold Transcript Handler.
The scaffold transcript handler (8070) is called to handle two types of commands, one which uses the current selection the scaffold graphic (1001) to scroll the scaffold transcript
(1002) to a corresponding part of the scaffold transcript (1002), and the other which uses a selected line in the scaffold transcript (1002) to select an element in the scaffold graphic
(1001).
At step 14010, the scaffold transcript handler (8070) checks to determine whether its input is a request to select an element ofthe scaffold graphic (1001). If it is, then at step 14020 it checks to see if the selected transcript line is a query line (for example lines 1210 and 1240 in Figure 1, and line 2250 in Figure 2); if so, at step 14030 it calls the scaffold selection handler (6080) to set the new scaffold graphic (1001) selection.
Otherwise, if the check at step 14010 does not indicate a request to select a scaffold graphic (1001) element, then in step 14040, the scaffold transcript handler (8070) checks to see if the request is to show scaffold transcript (1002) context. If no, the handler completes, otherwise execution continues at step 14050.
At 14050 the scaffold transcript handler (8070) checks to see if the current scaffold graphic (1001) selection is a query (for example, elements 1020 and 1040 in Figure 1). If so, the transcript window (1002) is scrolled so to show the associated query line in the scaffold transcript (for example, line 1210 associated with scaffold graphic element 1020, or line 1240 associated with scaffold graphic element 1040), and then the handler completes.
Otherwise the scaffold transcript handler (8070) continues to step 14070, where it checks to see if the current scaffold graphic (1001) selection is a result set element (for example, elements 1030 or 1050). If so, the handler determines the query that produced the result set, and scrolls the transcript window so as to show the associated query line in the scaffold transcript (for example, line 1210 associated with scaffold graphic element 1030, or line 1240 associated with scaffold graphic element 1050), and then the handler completes.
Otherwise the scaffold transcript handler (8070) continues to step 14090, where it checks to see if the current scaffold graphic (1001) selection is an annotation such as element 1080. If not the scaffold transcript handler (8070) completes; if so, it continues to step 14100. There the scaffold transcript handler (8070) scrolls the transcript (1002) to show the line closest in time to the creation of the annotation. Practitioners skilled in the art will appreciate that all elements in the scaffold graphic (1001) and scaffold transcript (1002) will have time stamped entries in the scaffold state database (4060) that show the times at which they were created, and otherwise operated on. On completion of the handler, the flow continues at step 5000, where the server (3030) waits for input.
Figure 15 shows a Scaffold State Handler. The scaffold state handler (7300) is responsible for reading the event queue (4070) and updating the display including of the Search scaffold representation (1001) and the search scaffold transcript (1002) of one or more users of the search scaffold (1000).
At step 15010, the scaffold state handler (7300) checks to see if the event in the event queue involves the creation of a new scaffold. If so, it proceeds to step 15020 where, for the displays of all current users of the search scaffold (1000), it: creates a 'root' icon with the user icon of its creator associated with it in the scaffold graphic (1001), shows the root icon as selected in the scaffold graphic (1001); and displays the scaffold's title in scaffold transcript (1002).
Otherwise, the scaffold state handler (7300) proceeds to step 15030, where it checks to see if the event in the event queue involves creating or acting on a queiy. If so, it proceeds to step 15040. If the event involves creating a new query, for the displays of all users the handler adds a query icon to the display; in addition, the handler associates the user icon of its creator with the new query to indicate that that is where the creator's focus is; and it displays the query text in a new line in the scaffold transcript (1002). Otherwise, if the event involves acting on a query, for the displays of all users the handler (7300) associates the user icon of the user acting on the query with it, once again indicating the location of that user's focus. In addition, for the display of the user who is originating the action, the scaffold state handler (7300) shows the query icon as selected for that user only.
Otherwise, the scaffold state handler (7300) proceeds to step 15050, where it checks to see if the event in the event queue involves creating a result handle. If so, it proceeds to step 15060, where for the displays of all users it will create new result set icon in scaffold graphic, and will associate the user icon of the creator with it. In addition, for the display of the user who is originating the action, the scaffold state handler (7300) shows the result set icon as selected for that user only.
Otherwise, the scaffold state handler (7300) proceeds to step 15070, where it checks to see if the event in the event queue involves displaying a result set. If so, it proceeds to step 15080, where the scaffold state handler (7300) shows the result set icon as selected for that user only. Otherwise, the scaffold state handler (7300) proceeds to step 15090, where it checks to see if the event in the event queue involves creating or acting on an am otation. If so, it proceeds to step 15100. If the event involves creating a new annotation, for the displays of all users the handler adds an annotation icon to the display, and associates the user icon of its creator with it; otherwise, if the event involves acting on an annotation, for the displays of all users the handler associates the user icon ofthe user acting on the annotation with it. In addition, for the display of the user who is originating the action, the scaffold state handler (7300) shows the annotation icon as selected for that user only.
Otherwise, the scaffold state handler (7300) proceeds to step 15110, where it checks to see if the event in the event queue involves making or changing a scaffold selection. If so, it proceeds to step 15120. If the selected element is a scaffold graphic (1001) element, it will, for the displays of all users, associate the selecting user's user icon with that of the selected item, and for the display ofthe selecting user only will show the selected element's icon as selected. If the selected element is a scaffold transcript (1002) element, it will, for the display of the selecting user only, show the selected transcript element as selected.
Otherwise, the scaffold state handler (7300) proceeds to step 15130, where it checks to see if the event in the event queue involves a chat. If so, it proceeds to step 15240, where it will, for the displays of all users ofthe scaffold, show the new line of chat at the end of the scaffold transcript (1001).
Otherwise the scaffold state handler (7300) completes. On completion of the handler, the flow continues at step 5000, where the server (3030) waits for input.
Thus for a single user and single topic, the Search Scaffold is a dynamic interactive annotatable representation of an iterative search process. The Search Scaffold is composed of graphical elements and, optionally, audio or video elements. The Search Scaffold includes of four types of elements: • an anchor that represents the search process as a whole • one or more query elements that represent the queries composed in the process of the search • result set elements that represent results produced by given executions of particular queries • annotations that may be applied to elements or sets of elements ofthe Search Scaffold
Types of information depicted by a Search Scaffold
Typically a Search Scaffold includes of an anchor, and one or more pairs of a query element and its result set element. Various characteristics of the search process are depicted either through the Search scaffold representation, or by the annotations associated with elements or sets of elements ofthe Search Scaffold.
The dynamics of the Search Scaffold representation
As the search process continues, the Search Scaffold dynamically updates to reflect: • new queries • new result sets • the current computed properties, applied annotations, and user activity associated with the queries and result sets
Users may also edit a Search Scaffold, deleting unneeded elements, rearranging existing elements, and (as already noted) annotating its elements or element sets.
Interactions supported by a Search Scaffold
The Search Scaffold representation provides the following benefits: • an overview of the structure and complexity of a given search process • an index into the queries, result sets, annotations, and other activity associated with a search process, which can be utilized by interacting with the Search Scaffold representation • a means for backtracking and exploring alternative search paths from any point in the search process, which can be utilized by interacting with the Search Scaffold representation • a means for understanding how the various queries' result sets change over time (given that the content of the information space being searched is changing), which can be utilized by selecting a query in the Search Scaffold and re-executing it to produce a new result set. Multiple Users
A particular Search Scaffold may be viewed and used by multiple users. In this case, the Search Scaffold can offer several forms of added value: • Index into chat. A persistent chat space (in which text-based conversation is retained over time) may be associated with a Search Scaffold so that multiple users may talk among themselves while viewing or otherwise participating in the search process. The chat thus produced has the potential to provide valuable meta-information about the search process, and its value is augmented because the Search Scaffold provides an index into the conversation. • Depiction of presence and location. The Search Scaffold can depict the presence of users, and indicate the components of the search process on which the users' attentions are focused (e.g. one user may be examining the first result set in the search process, whereas another user might be examining the fourth result set in the search process). • Depiction of degree of involvement. The Search Scaffold can depict the degree of involvement in a search process. That is, of a set of users involved in a particular search process, some may simply be watching the development ofthe search process, others may be talking about the process and its results, and still others may be active in issuing queries or examining result sets. • Asynchronous use support. Note that the above characteristics of Search Scaffolds are not limited to simultaneous users. Since the Search Scaffold representation persists over time and across sessions, and that its associated chat and other annotations also persist, it can be configured to depict the above characteristics so that they are available to users not simultaneously present. For example, the Search Scaffold can be configured to show who has visited recently, how deeply they have been involved, and where their attention has been focused
Multiple Searches
Multiple Search Scaffolds may be created, their representations being made available in a scrolling list. Such a configuration enables: • viewing, monitoring, or participation in multiple search processes in parallel. • the comparison of multiple instances of a search (for example, in an educational or training situation, observing how efficiently different students execute an assigned search process ). • the sorting or filtering of search processes according to various characteristics including but not limited to: their degree of elaboration; users' subjective assessments of their quality of their results; the popularity of a Search Scaffold
Thus, the present invention provides a method for enabling at least one user to conduct at least one search on an information space, comprising the steps of: creating a first instance of one search from said at least one search and forming a first symbolic representation of said first instance; accepting a new query from said at least one user; modifying the first symbolic representation to include a query representation and a result handle of said new query forming a second symbolic representation; and forwarding said second symbolic representation to said at least one user.
In some embodiments, the method further includes: one user from said at least one user determining if said second symbolic representation satisfies said search, and terminating said search if the step of determining results in said one user being satisfied, otherwise repeating the steps of accepting, modifying and forwarding until the step of determining results in said one user being satisfied; and/or storing each new query in a query list, and wherein the step of determining is based upon an examination of at least one query in said query list; and/or the at least one user retrieves the results for said query; and/or said at least one user selecting a particular result handle from said second symbolic representation, executing the new query associated with said particular result handle forming a new set of results, and forwarding the new set of results to said at least one user; and/or repeating the steps of selecting, executing and forwarding the new set of results according to a search repetition criterion; and/or storing each new set of results in a result list, and a user from said users using a particular set of results in satisfying a user desire; and/or the step of creating includes including in the first representation a horizontal line; and/or the step of modifying comprises a step of providing an indication ofthe new query in the symbolic representation to which said new query is related, wherein the query representation is a line at the end of which is a square box which represents said result handle; and/or the step of modifying comprises reflecting the relationship between said new query and a previous query to which it is related, wherein the beginning of a line representing said new query indicates a previous query to which it is related; and/or the step of forwarding includes providing the display of said second symbolic representation; and/or the step of determining is based on an examination of a set of characteristics of said second symbolic representation; and/or the symbolic representation is a tree and said set of characteristics is selected from a group of characteristics consisting of: said representation's breadth, said representation's depth, a ratio of said representation's breadth to said representation's depth, and any combination of these; and/or the representation is a representation taken from a group of representations consisting of: a graphical representation,, a video representation, an audio representation, a haptic representation, a multimedia representation, or any combination of these representations; and/or the method includes a limitation taken from a group of limitations consisting of: the first symbolic representation includes a representation of said at least one user; and/or said representation of said at least one user is a dot; and/or a location of a user's representation adjacent to a query representation or a result handle representation indicates said user's focus; and/or said at least one user selecting a representation of a query in said symbolic representation and having the content of said query displayed to said at least one user; and/or said at least one user selecting a representation of one query in said symbolic representation, and said user's representation is moved adjacent to said representation of one query thereby showing said user's focus, and creating a third symbolic representation that is forwarded to said at least one user; and/or said at least one user selecting a particular representation of a result set handle in said symbolic representation and being prompted to have a result produced by a previous execution of said result set handle's query displayed; and/or said at least one user selecting a particular representation ofthe result set handle in said symbolic representation and being prompted to have a result produced by a previous execution of said result set handle's query re-executed and new results displayed; and/or said at least one user selecting a representation of a result set handle in said symbolic representation and said user's representation is moved adjacent to said representation of said result set handle showing said user's focus, and creating a third symbolic representation that is forwarded to said at least one user, a user selecting a representation of any element of said symbolic representation and creating an annotation associated with said any element; and/or adding the representation of said annotation to said symbolic representation creating the third symbolic representation forwarded to said at least one user; and/or said at least one user clicking on said representation of said annotation and having the contents of said annotation displayed; and/or said symbolic representation having an associated transcript window that includes a textual chronological sequence of user inputs each of which are associated with elements of said symbolic representation to provide a transcript window; and/or the step of accepting mcludes receiving arbitrary textual user input including receiving said input from said at least one user and depicting said input in said associated window to provide chat, the user's focus is specified by the user's selection of a transcript element; and/or the user's selection of an element of said symbolic representation causes said transcript window to scroll to textual input associated with said element of said symbolic representation; and/or said user's representation in said symbolic representation indicating a nature of user's activity, said user's activity including at least one action from a group of actions consisting of entering queries, executing queries, viewing result sets, amiotating, entering comments, entering time, entering a cumulative amount, and any combination of these limitations; and/or dynamically updating the search to reflect at least one of: a new query, a new result set, a current computed property, applied annotations, user activity associated with at least one query, and user activity associated with at least one result set; and/or the at least one user editing at least one of said representations; and/or the step of editing includes a step taken from a group of steps consisting of: deleting umieeded elements, rearcanging existing elements, annotating elements, amiotating element sets, and any combination of these steps; and/or providing at least one utility taken from a group of utilities consisting of: an overview of structure and complexity of a given search component, an index of queries, result sets, annotations, and other activity associated with a search process, a means for backtracking and exploring alternative search paths from any point in the search process, a means for understanding how various queries' result sets change over time, and a means for selecting a query in the Search Scaffold and re-executing it to produce a new result set; and/or empowering at least one of said representations to be viewed and used by multiple users; and/or creating representations of at least one other search, making available in a scrolling list the representations of said at least one search and said at least one other search; and/or the step of making available includes viewing, monitoring, and participation in multiple search processes in parallel; and/or comparing multiple instances of one or more searches; and/or sorting or filtering of search processes according to various sorting characteristics; and/or the sorting characteristics including but not limited to: degree of elaboration; users' subjective assessments of quality of results; and popularity of a representation; and/or depicting at least one characteristic ofthe search process to include at least one of: computable properties of parts ofthe search process; user-generated annotations of parts ofthe search process; and activity of the said at least one user.
The invention also provides a method for forming an annotatable representation of an iterative search process composed of graphical elements, said annotatable representation including the steps of: an anchor that represents the search process as a whole; at least one query element representing queries composed in the search process; result set elements representing results produced by given executions of particular queries; and annotations that may be applied to elements or sets of elements ofthe annotatable representation.
The invention also provides a method for conducting a search on a network server, comprising: creating a first instance of an online search scaffold forming a first graphical representation forwarded to at least one user; accepting a query from said at least one user; reflecting said queiy in the first graphical representation so as to form a second graphical representation forwarded to said at least one user; executing the query and producing a first set of results for said query; depicting said first set of results in the second graphical representation so as to form a third graphical representation forwarded to said at least one user; allowing one user from said at least one user to determine if a desired set of results is included in said first set of results; and if said desired set of results is included, termination said search, if said desired set of results in not included, repeating the steps of accepting, reflecting, executing, depicting, and allowing until the desired set of results is included in said first set of results.
In some embodiments the method mcludes forming a second dynamic graphic representation by clicking a button to begin the second dynamic graphic representation; and/or providing a handler to generate at least a portion of graphics, and providing a database to keep track of a state ofthe search process; and/or sharing at least one graphical representation with at least one other user.
The invention also provides an apparatus comprising means for enabling at least one user to conduct at least one search on an information space, the means for enabling comprising: means for creating a first instance of one search from said at least one search; means for forming a first symbolic representation of said first instance; means for accepting a new query from said at least one user; means for modifying the first symbolic representation to include a query representation and a result handle of said new query forming a second symbolic representation; and means for forwarding said second symbolic representation to said at least one user.
The invention also provides an apparatus including means for enabling at least one user to conduct at least one search on an information space, the means for enabling comprising: means for creating a first instance of one search from said at least one search; means for forming a first symbolic representation of said first instance; means for accepting a new query from said at least one user; means for modifying the first symbolic representation to include a query representation and a result handle of said new query forming a second symbolic representation; and means for forwarding said second symbolic representation to said at least one user.
Variations described for the present invention can be realized in any combination desirable for each particular application. Thus particular limitations, and/or embodiment enhancements described herein, which may have particular advantages to a particular application need not be used for all applications. Also, not all limitations need be implemented in methods, systems and/or apparatus including one or more concepts ofthe present invention,
The present invention can be realized in hardware, software, or a combination of hardware and software. A visualization tool according to the present invention can be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system - or other apparatus adapted for carrying out the methods and/or functions described herein - is suitable. A typical combination of hardware and software could be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein. The present invention can also be embedded in a computer program product, which comprises all the features enabling the implementation ofthe methods described herein, and which - when loaded in a computer system - is able to carry out these methods.
Computer program means or computer program in the present context include any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after conversion to another language, code or notation, and/or reproduction in a different material form.
Thus the invention includes an article of manufacture which comprises a computer usable medium having computer readable program code means embodied therein for causing a function described above. The computer readable program code means in the article of manufacture comprises computer readable program code means for causing a computer to effect the steps of a method of this invention. Similarly, the present invention may be implemented as a computer program product comprising a computer usable medium having computer readable program code means embodied therein for causing a function described above. The computer readable program code means in the computer program product comprising computer readable program code means for causing a computer to effect one or more functions of this invention. Furthermore, the present invention may be implemented as a program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for causing one or more functions of this invention.
It is noted that the foregoing has outlined some ofthe more pertinent objects and embodiments of the present invention. This invention may be used for many applications. Thus, although the description is made for particular arrangements and methods, the intent and concept ofthe invention is suitable and applicable to other arrangements and applications. It will be clear to those skilled in the art that modifications to the disclosed embodiments can be effected without departing from the spirit and scope ofthe invention. The described embodiments ought to be construed to be merely illustrative of some ofthe more prominent features and applications of the invention. Other beneficial results can be realized by applying the disclosed invention in a different manner or modifying the invention in ways known to those familiar with the art.

Claims

ClaimsWe claim:
1. A method comprising enabling at least one user to conduct at least one search on an information space, comprising the steps of: creating a first instance of one search from said at least one search and forming a first symbolic representation of said first instance; accepting a new query from said at least one user; modifying the first symbolic representation to include a query representation and a result handle of said new query forming a second symbolic representation; and forwarding said second symbolic representation to said at least one user.
2. A method as recited in claim 1, further comprising: one user from said at least one user determining if said second symbolic representation satisfies said search; and terminating said search if the step of determining results in said one user being satisfied, otherwise repeating the steps of accepting, modifying and forwarding until the step of determining results in said one user being satisfied.
3. A method as recited in claim 2, further comprising storing each new query in a query list, and wherein the step of determining is based upon an examination of at least one query in said query list.
4. A method as recited in claim 1 , wherein said at least one user retrieves the results for said query, further comprising: said at least one user selecting a particular result handle from said second symbolic representation, executing the new query associated with said particular result handle forming a new set of results; and forwarding the new set of results to said at least one user.
5. A method as recited in claim 4, further comprising repeating the steps of selecting, executing and forwarding the new set of results according to a search repetition criterion.
6. A method as recited in claim 4, further comprising: storing each new set of results in a result list, and a user from said users using a particular set of results in satisfying a user desire.
7. A method as in claim 1, wherein the step of creating comprises including in the first representation a horizontal line.
8. A method as in claim 1, wherein the step of modifying comprises a step of providing an indication of the new query in the symbolic representation to which said new query is related, wherein the query representation is a line at the end of which is a square box which represents said result handle.
9. A method as in claim 1, wherein the step of modifying comprises reflecting the relationship between said new query and a previous query to which it is related, wherein the beginning of a line representing said new query indicates a previous query to which it is related
10. A method as in claim 1, wherein the step of forwarding includes providing the display of said second symbolic representation.
11. A method as recited in claim 2, wherein said step of determining is based on an examination of a set of characteristics of said second symbolic representation.
12. A method as recited in claim 2, wherein the symbolic representation is a tree and said set of characteristics is selected from a group of characteristics consisting of: said representation's breadth; said representation's depth; a ratio of said representation's breadth to said representation's depth; and any combination of these.
13. A method as recited in claim 1 wherein said representation is a representation taken from a group of representations consisting of: a graphical representation;, a video representation; an audio representation; a haptic representation; a multimedia representation; or any combination of these representations.
14. A method as recited in claim 1, wherein said method includes a limitation taken from a group of limitations consisting of:
said first symbolic representation includes a representation of said at least one user;
said representation of said at least one user is a dot;
a location of a user's representation adjacent to a query representation or a result handle representation indicates said user's focus;
said at least one user selecting a representation of a queiy in said symbolic representation and having the content of said query displayed to said at least one user;
said at least one user selecting a representation of one query in said symbolic representation, and said user's representation is moved adjacent to said representation of one query thereby showing said user's focus, and creating a third symbolic representation that is forwarded to said at least one user;
said at least one user selecting a particular representation of a result set handle in said symbolic representation and being prompted to have a result produced by a previous execution of said result set handle's query displayed; said at least one user selecting a particular representation ofthe result set handle in said symbolic representation and being prompted to have a result produced by a previous execution of said result set handle's query re-executed and new results displayed;
said at least one user selecting a representation of a result set handle in said symbolic representation and said user's representation is moved adjacent to said representation of said result set handle showing said user's focus, and creating a third symbolic representation that is forwarded to said at least one user; a user selecting a representation of any element of said symbolic representation and creating an annotation associated with said any element;
adding the representation of said annotation to said symbolic representation creating the third symbolic representation forwarded to said at least one user;
said at least one user clicking on said representation of said annotation and having the contents of said annotation displayed;
said symbolic representation having an associated transcript window that includes a textual chrono logical sequence of user inputs each of which are associated with elements of said symbolic representation to provide a transcript window;
the step of accepting includes receiving arbitrary textual user input including receiving said input from said at least one user and depicting said input in said associated window to provide chat; the user's focus is specified by the user's selection of a transcript element;
the user's selection of an element of said symbolic representation causes said transcript window to scroll to textual input associated with said element of said symbolic representation; and
said user's representation in said symbolic representation indicating a nature of user's activity; said user's activity including at least one action from a group of actions consisting of entering queries, executing queries, viewing result sets, annotating, entering comments, entering time, entering a cumulative amount, and any combination of these limitations.
15. An article of manufacture comprising a computer usable medium having computer readable program code means embodied therein for causing conduction of a search, the computer readable program code means in said article of manufacture comprising computer readable program code means for causing a computer to effect the steps of claim 1.
16. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for conducting at least one search, said method steps comprising the steps of claim 1.
17. A method as recited in claim 2, further comprising dynamically updating the search to reflect at least one of: a new query; a new result set; a current computed property, applied annotations; user activity associated with at least one query; and user activity associated with at least one result set.
18. A method as recited in claim 2, further comprising said at least one user editing at least one of said representations.
19. A method as recited in claim 18, wherein the step of editing includes a step taken from a group of steps consisting of: deleting unneeded elements; rearranging existing elements; annotating elements; annotating element sets; and any combination of these steps
20. A method as recited in claim 2, further comprising: providing at least one utility taken from a group of utilities consisting of: an overview of structure and complexity of a given search component; an index of queries, result sets, annotations, and other activity associated with a search process; a means for backtracking and exploring alternative search paths from any point in the search process; a means for understanding how various queries' result sets change over time; and a means for selecting a query in the Search Scaffold and re-executing it to produce a new result set..
21. A method as recited in claim 2, further comprising empowering at least one of said representations to be viewed and used by multiple users.
22. A method as recited in claim 21, wherein the step of empowering includes providing at least one utility taken from a group of utilities consisting of: Search Scaffold can offer several forms of added value: index into chat; depiction of presence and location; depiction of degree of involvement; and asynchronous use support.
23. A method as recited in claim 1, further comprising: creating representations of at least one other search; making available in a scrolling list the representations of said at least one search and said at least one other search. :
24. A method as recited in claim 23, wherein the step of making available includes viewing, monitoring, and participation in multiple search processes in parallel; and/or
comparing multiple instances of one or more searches; and/or
sorting or filtering of search processes according to various sorting characteristics
25. A method as recited in claim 24, wherein the sorting characteristics including but not limited to: degree of elaboration; users' subjective assessments of quality of results; and popularity of a representation.
26. A method as recited in claim 1, further comprising depicting at least one characteristic ofthe search process to include at least one of: computable properties of parts ofthe search process; user-generated annotations of parts ofthe search process; and activity ofthe said at least one user.
27. A method comprising forming an annotatable representation of an iterative search process composed of graphical elements, said annotatable representation including: an anchor that represents the search process as a whole; at least one query element representing queries composed in the search process; result set elements representing results produced by given executions of particular queries; and annotations that may be applied to elements or sets of elements of he annotatable representation.
28. An article of manufacture comprising a computer usable medium having computer readable program code means embodied therein for causing an annotatable representation of an iterative search process, the computer readable program code means in said article of manufacture comprising computer readable program code means for causing a computer to effect the steps of claim 27.
29. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for an annotatable representation of an iterative search process, said method steps comprising the steps of claim 27.
30. An apparatus comprising means for enabling at least one user to conduct at least one search on an information space, the means for enabling comprising: means for creating a first instance of one search from said at least one search; means for forming a first symbolic representation of said first instance; means for accepting a new query from said at least one user; means for modifying the first symbolic representation to include a query representation and a result handle of said new query forming a second symbolic representation; and means for forwarding said second symbolic representation to said at least one user.
31. A method for conducting a search on a network server, comprising:
creating a first instance of an online search scaffold forming a first graphical representation forwarded to at least one user;
accepting a query from said at least one user;
reflecting said query in the first graphical representation so as to form a second graphical representation forwarded to said at least one user;
executing the query and producing a first set of results for said query;
depicting said first set of results in the second graphical representation so as to form a third graphical representation forwarded to said at least one user;
allowing one user from said at least one user to determine if a desired set of results is included in said first set of results; and
if said desired set of results is included, termination said search, if said desired set of results in not included, repeating the steps of accepting, reflecting, executing, depicting, and allowing until the desired set of results is included in said first set of results.
32. A method as recited in claim 31, further comprising forming a second dynamic graphic representation by clicking a button to begin the second dynamic graphic representation.
33. A method as recited in claim 31, further comprising providing a handler to generate at least a portion of graphics, and providing a database to keep track of a state ofthe search process.
34. A method as recited in claim 33, wherein the handler is a handler taken from a group of handlers consisting of: a search scaffold handler; a scaffold access handler; a chat handler; a selection handler; a query handler; a user action handler; an annotation handler; a query execution handler; a scaffold transcript handler; a scaffold state handler; and any combination of these handlers.
35. A method as recited in claim 31, further comprising sharing at least one graphical representation with at least one other user.
36. An article of manufacture comprising a computer usable medium having computer readable program code means embodied therein for causing conduction of a search on a network server, the computer readable program code means in said article of manufacture comprising computer readable program code means for causing a computer to effect the steps of claim 31.
37. An apparatus comprising means for enabling at least one user to conduct at least one search on an information space, the means for enabling comprising: means for creating a first instance of one search from said at least one search; means for forming a first symbolic representation of said first instance; means for accepting a new query from said at least one user; means for modifying the first symbolic representation to include a query representation and a result handle of said new query forming a second symbolic representation; and means for forwarding said second symbolic representation to said at least one user.
38. A computer program product comprising a computer usable medium having computer readable program code means embodied therein for causing conduction of at least one search on an information space, the computer readable program code means in said computer program product comprising computer readable program code means for causing a computer to effect the functions of claim 36.
PCT/US2003/029380 2003-09-18 2003-09-18 Representations of queries in search spaces as a resource for interaction WO2005036421A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/US2003/029380 WO2005036421A1 (en) 2003-09-18 2003-09-18 Representations of queries in search spaces as a resource for interaction
AU2003267285A AU2003267285A1 (en) 2003-09-18 2003-09-18 Representations of queries in search spaces as a resource for interaction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2003/029380 WO2005036421A1 (en) 2003-09-18 2003-09-18 Representations of queries in search spaces as a resource for interaction

Publications (1)

Publication Number Publication Date
WO2005036421A1 true WO2005036421A1 (en) 2005-04-21

Family

ID=34434205

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/029380 WO2005036421A1 (en) 2003-09-18 2003-09-18 Representations of queries in search spaces as a resource for interaction

Country Status (2)

Country Link
AU (1) AU2003267285A1 (en)
WO (1) WO2005036421A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055673B2 (en) 2008-06-05 2011-11-08 Yahoo! Inc. Friendly search and socially augmented search query assistance layer

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012055A (en) * 1996-04-09 2000-01-04 Silicon Graphics, Inc. Mechanism for integrated information search and retrieval from diverse sources using multiple navigation methods
US6134553A (en) * 1997-05-20 2000-10-17 At&T Corporation Method for using region-sets to focus searches in hierarchical structures
US6289353B1 (en) * 1997-09-24 2001-09-11 Webmd Corporation Intelligent query system for automatically indexing in a database and automatically categorizing users

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012055A (en) * 1996-04-09 2000-01-04 Silicon Graphics, Inc. Mechanism for integrated information search and retrieval from diverse sources using multiple navigation methods
US6134553A (en) * 1997-05-20 2000-10-17 At&T Corporation Method for using region-sets to focus searches in hierarchical structures
US6289353B1 (en) * 1997-09-24 2001-09-11 Webmd Corporation Intelligent query system for automatically indexing in a database and automatically categorizing users

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055673B2 (en) 2008-06-05 2011-11-08 Yahoo! Inc. Friendly search and socially augmented search query assistance layer

Also Published As

Publication number Publication date
AU2003267285A1 (en) 2005-04-27

Similar Documents

Publication Publication Date Title
US7356772B2 (en) Multi-column user interface for managing on-line threaded conversations
US6144991A (en) System and method for managing interactions between users in a browser-based telecommunications network
Dieberger Supporting social navigation on the World Wide Web
US8204847B2 (en) Idea page system and method
US20050027800A1 (en) Agenda-driven meetings
US7155676B2 (en) System and method for multimedia authoring and playback
US10320857B2 (en) Hybrid synchronous/asynchronous means for sharing user interactions across multiple devices
US9047388B2 (en) System, method, and software application for displaying data from a web service in a visual map
US20030154212A1 (en) Method and apparatus for determining attributes among objects
US20070226296A1 (en) Method and apparatus for iterative computer-mediated collaborative synthesis and analysis
Romano Jr et al. Architecture, design, and development of an HTML/JavaScript Web‐based Group Support System
Theng et al. Design guidelines and user-centred digital libraries
US10171386B1 (en) Methods and systems for storing instant messaging messages
Frich et al. Strategies in Creative Professionals' Use of Digital Tools Across Domains
Myhill et al. Virtual research environments–a Web 2.0 cookbook?
Schümmer GAMA: A Pattern Language for Computer Supported Dynamic Collaboration.
Ricken et al. TellUsWho: Guided social network data collection
US20090228447A1 (en) System, method, and solfware application for enabling a user to search an external domain within a visual mapping interface
WO2005036421A1 (en) Representations of queries in search spaces as a resource for interaction
Kolvenbach et al. A toolbar for efficient interaction in online communities
De Moor Toward a more structured use of information technology in the research community
Douma et al. SpicyNodes: Radial layout authoring for the general public
Lyardet et al. Discovering and using design patterns in the WWW
Holmer et al. Diminishing Chat Confusion by Multiple Visualizations.
Holmer et al. Addressing co-text loss with multiple visualizations for chat messages

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP