System and method for providing contextual and dynamic information retrieval

Samar May 13, 2

Patent Grant 6563514

U.S. patent number 6,563,514 [Application Number 09/548,586] was granted by the patent office on 2003-05-13 for system and method for providing contextual and dynamic information retrieval. This patent grant is currently assigned to Extensio Software, Inc.. Invention is credited to Vipin Samar.


United States Patent 6,563,514
Samar May 13, 2003

System and method for providing contextual and dynamic information retrieval

Abstract

In accordance with a set of previously defined options relating to such things as information retrieval, applications, items of interest, payment options, etc., a software program configures the computer system on which it executes to access information on an item over which a pointer has hovered for a preset time without the user having to provide any additional inputs. The information may be retrieved from a local or remote location. The information may be free, paid for by the user, a sponsor, or a third party. The information desired by the user is presented visual, audibly, or both.


Inventors: Samar; Vipin (Cupertino, CA)
Assignee: Extensio Software, Inc. (Cupertino, CA)
Family ID: 24189505
Appl. No.: 09/548,586
Filed: April 13, 2000

Current U.S. Class: 715/711; 707/E17.119; 715/714; 715/715
Current CPC Class: G06F 16/957 (20190101)
Current International Class: G09G 5/00 (20060101); G09G 005/00 ()
Field of Search: ;345/711,714,715,747,772 ;707/2,3,4,5

References Cited [Referenced By]

U.S. Patent Documents
5572643 November 1996 Judson
5754176 May 1998 Crawford
6078935 June 2000 Nielsen
6098065 August 2000 Skillen et al.
6236981 May 2001 Hill
6269361 July 2001 Davis et al.
6437800 August 2002 Malamud et al.

Other References

Lycos Advanced Search. http://lycospro.lycos.com. Captured by the Wayback Machine (http://web.archive.org) on Apr. 29, 1999. 1 page..

Primary Examiner: Cabeca; John
Assistant Examiner: Detwiler; Brian
Attorney, Agent or Firm: Blakely, Sokoloff, Taylor & Zafman LLP

Claims



What is claimed is:

1. A method of providing information to a user of a processing system, the method comprising: providing a set of user-selectable options, including a plurality of information retrieval options, each information retrieval option corresponding to a different type of information; determining a position of a user-controlled pointer displayed on a display device of the processing system; when the position of the pointer coincides with a specified item displayed on the displayed device, sending a request for information relating to the specified item, wherein a plurality of types of information are available to said processing system for the specified item, each of the types of information corresponding to a different one of the user-selectable information retrieval options; receiving information to the specified item from an information source in response to the request, wherein the received information is of a type that corresponds to currently selected one of the information retrieval options; and presenting the received information to the user in association with the specified item.

2. A method as recited in claim 1, wherein the information source is selected according to which of the plurality of information retrieval options is selected.

3. A method as recited in claim 1, wherein the received information is dynamic at a location where the information is stored.

4. A method as recited in claim 1, wherein said method is performable in the processing system during execution of any of a plurality of software applications in the processing system, and wherein the nature of the received information is dependent upon which particular software application is active in the processing system when the position of the pointer coincides with the specified item.

5. A method as recited in claim 1, wherein said sending a request for information is done without any user input except the user positioning the pointer to coincide with a specified item.

6. A method as recited in claim 1, wherein the received information comprises separate elements of information aggregated from a plurality of separate information sources.

7. A method as recited in claim 1, wherein the information relating to the specified item is filtered on a remote server prior to said receiving the information.

8. A method as recited in claim 1, wherein said presenting the received information to the user comprises displaying the received information on the display device within a subset of a display area of the display device in proximity to the specified item.

9. A method as recited in claim 8, wherein presenting the received information to the user comprises superimposing the received information over images displayed on the display device.

10. A method as recited in claim 1, wherein said sending a request for information relating to the specified item comprises sending the request to a remote processing system via a network after determining that the information relating to the specified item is not present in a local database.

11. A method of providing information to a user of a processing system, the method comprising: displaying, on a display device of the processing system, content from one of a plurality of remote content sites having content accessible from the processing system; providing a set of user-selectable options, including a plurality of information retrieval options, each information retrieval option corresponding to a different type of information that can be retrieved, wherein the plurality of information retrieval options depend upon from which of the remote content sites the content originates; determining a position of a user-controlled pointer displayed on the display device; when the position of the pointer coincides with a specified item, sending a request for information relating to the specified item; receiving information relating to the specified item from an information source in response to the request, wherein the received information is of a type that corresponds to a currently selected one of the information retrieval options and is dependent on a current context of the specified item, wherein a plurality of types of information are available to said processing system for the specified item displayed on the display device, each of the types of information corresponding to a different one of the user-selectable information retrieval options, and wherein the received information is dynamic at said information source; and displaying the received information on the display device within a subset of a display area of the display device in proximity to the specified item; wherein said method is performed during execution of, and within a context of, a software application executing in the processing system, and wherein said method is implemented in the processing system in a software program that executes on top of the software application.

12. A method as recited in claim 11, wherein the information source is selected according to which of the plurality of information retrieval options is selected.

13. A method as recited in claim 11, wherein said method is performable in the processing system within a context of any of a plurality of software applications in the processing system, and wherein the nature of the received information is dependent upon which particular software application is active in the processing system when the position of the pointer coincides with the specified item.

14. A method as recited in claim 11, wherein the received information comprises separate elements of information aggregated by a remote server from a plurality of separate information sources.

15. A method as recited in claim 11, wherein the information relating to the specified item is filtered on a remote server prior to said receiving the information.

16. A method as recited in claim 11, wherein said displaying the received information comprises superimposing the received information over images displayed on the display device.

17. A method as recited in claim 11, wherein said sending a request for information relating to the specified item comprises sending the request to a remote processing system via a network after determining that the information relating to the specified item is not present in a local database.

18. A method of providing information to a user of a client system, the method comprising, in a server system: receiving from the client system, over a network, a request for information related to a specified item displayed on a display device of the client system, the request having been sent by the client system when a position of a user-controlled pointer coincides with the specified item; in response to the request, identifying information related to the specified item according to a currently selected information retrieval option, wherein the currently selected information retrieval option is one of a plurality of information retrieval options selectable by a user of the client system, wherein the identified information is of a type dependent upon the currently selected information retrieval option, and wherein the server system has access to a plurality of types of information for the specified item, each of the types of information corresponding to a different one of the user-selectable information retrieval options; accessing the identified information from at least one information source; filtering the accessed information according to a set of information filtering rules; sending the filtered information to the client system over the network, for displaying on the display device of the client system in proximity to the specified item.

19. A method as recited in claim 18, wherein said identifying information comprises selecting an information source from which to access the information related to the specified item according to the currently selected information retrieval option.

20. A method as recited in claim 18, wherein the client system can execute any of a plurality of software applications in the processing system, and wherein the nature of the identified information is dependent upon which particular software application is active in the processing system when the position of the pointer coincides with the specified item.

21. A method as recited in claim 18, wherein said accessing the identified information comprises aggregating separate elements of information from a plurality of separate information sources.

22. A method as recited in claim 18, wherein the identified information is dynamic in the information source.

23. A client system comprising: means for providing a set of user-selectable options, including a plurality of information retrieval options, each information retrieval option corresponding to a different type of information; means for determining a position of a user-controlled pointer displayed on a display device of the client system; means for sending, when the position of the pointer coincides with a specified item, a request for information relating to the specified item; means for receiving information relating to the specified item from an information source in response to the request, wherein the received information is of a type that corresponds to a currently selected one of the information retrieval options, and wherein a plurality of types of information are available to said client system for the specified item displayed on the display device, each of the types of information corresponding to a different one of the user-selectable information retrieval options; and means for presenting the received information to the user in association with the specified item.

24. A client system as recited in claim 23, wherein the information source is selected according to which of the plurality of information retrieval options is selected.

25. A client system as recited in claim 23, wherein the received information is dynamic at a location where the information is stored.

26. A client system as recited in claim 23, wherein the received information is dependent on a current context of the specified item.

27. A client system as recited in claim 23, wherein the nature of the received information is dependent upon which particular software application is active in the client system when the position of the pointer coincides with the specified item.

28. A client system as recited in claim 23, wherein said sending a request for information is done without any user input except the user positioning the pointer to coincide with a specified item.

29. A client system as recited in claim 23, wherein the received information comprises separate elements of information aggregated from a plurality of separate information sources.

30. A client system as recited in claim 23, wherein the information relating to the specified item is filtered on a remote server prior to said receiving the information.

31. A client system as recited in claim 23, wherein said means for presenting the received information to the user comprises means for displaying the received information on the display device within a subset of a display area of the display device in proximity to the specified item.

32. A client system as recited in claim 31, wherein said means for presenting the received information to the user comprises means for superimposing the received information over images displayed on the display device.

33. A client system as recited in claim 23, wherein said means for sending a request for information relating to the specified item comprises means for sending the request to a remote server via a network after determining that the information relating to the specified item is not present in a local database.

34. A client system comprising: a processor; a display device and a memory storing a first software program which, when executed by the processor, causes content to be displayed on the display device, the content from one of a plurality of remote content sites having content accessible from the client system; the memory further storing a second software program to provide a set of user-selectable options, including a plurality of information retrieval options, each information retrieval option corresponding to a different type of information that can be retrieved, wherein the plurality of information retrieval options depend upon from which of said remote content sites the content originates; the second software program including instructions which, when executed by the processor, cause the client system to perform a processor comprising determining a position of a user-controlled pointer displayed on the display device; when the position of the pointer coincides with a specified item, sending a request for information relating to the specified item; receiving information relating to the specified item from an information source in response to the request, wherein the received information is of a type that corresponding to a currently selected one of the information retrieval options, and wherein the received information is dynamic at said information source; and displaying the retrieval information on the display device within a subset of a display area of the display device in proximity to the specified item; wherein the first software program is for execution during execution of, and within a context of, the second software program, and wherein the first software program executes on top of the second software program.

35. A client system as recited in claim 34, wherein a plurality of types of information are available to the client system for the specified item displayed on the display device, each of the types of information corresponding to a different one of the user-selectable information retrieval options.

36. A client system as recited in claim 34, wherein the information source is selected according to which of the plurality of information retrieval options is selected.

37. A client system as recited in claim 34, wherein said process is performable in the client system within a context of any of a plurality of software applications in the client system, and wherein the nature of the received information is dependent upon which particular software application is active in the processing system when the position of the pointer coincides with the specified item.

38. A client system as recited in claim 34, wherein the received information comprises separate elements of information aggregated by a remote server from a plurality of separate information sources.

39. A client system as recited in claim 34, wherein the information relating to the specified item is filtered on a remote server prior to said receiving the information.

40. A client system as recited in claim 34, wherein said displaying the received information comprises superimposing the received information over images displayed on the display device.

41. A client system as recited in claim 34, wherein said sending a request for information relating to the specified item comprises sending the request to a remote processing system via a network after determining that the information relating to the specified item is not present in a local database.

42. A server system comprising: means for receiving from the client system, over a network, a request for information related to a specified item displayed on a display device of the client system, the request having been sent by the client system when a position of a user-controlled pointer coincides with the specified item; means for identifying, in response to the request, information related to the specified item according to a currently selected information retrieval option, wherein the currently selected information retrieval option is one of a plurality of information retrieval options selectable by a user of the client system, wherein the identified information is of a type dependent upon the currently selected information retrieval option, and wherein the server system has access to a plurality of types of information for the specified item displayed on the display device of the client system, each of the types of information corresponding to a different one of the user-selectable information retrieval options; means for accessing the identified information from at least one information source; means for filtering the accessed information according to a set of information filtering rules; means for sending the filtered information to the client system over the network, for display on the display device of the client system in proximity to the specified item.

43. A server system as recited in claim 42, wherein said means for identifying information comprises means for selecting an information source from which to access the information related to the specified item according to the currently selected information retrieval option.

44. A server system as recited in claim 42, wherein the client system can execute any of a plurality of software applications in the processing system, and wherein the nature of the identified information is dependent upon which particular software application is active in the processing system when the position of the pointer coincides with the specified item.

45. A server system as recited in claim 42, wherein said means for accessing the identified information comprises means for aggregating separate elements of information from a plurality of separate information sources.

46. A server system as recited in claim 42, wherein the identified information is dynamic in the information source.
Description



FLELD OF THE INVENTION

The present invention pertains to the field of information retrieval using computer networks. More particularly, the present invention relates to providing supplementary relevant information to the user of a computer on a network without changing the user's context.

BACKGROUND OF THE INVENTION

The explosion in growth of the World Wide Web (Web), and particularly the Internet and web sites, has resulted in vast amounts of information being available to users. Web sites often use HyperText Markup Language (HTML), embedded Universal Resource Locators (URL), and other "tag" mechanisms to provide hyperlinks between Web pages as well as interactivity and links to additional information or resources.

Current ways of accessing information on the Web have certain shortcomings. For example, a common way for acquiring information on the Web requires the user, when viewing a Web page, to actively select, (e.g., via a mouse click) a source or hyperlink for the additional information. It is sometimes undesirable for users to have to select a hyperlink to view additional information related to a Web page. The user may become lost or have difficulty returning to his starting point if he does this action repeatedly. Another approach requires the user to click on a word to open a menu, which may then take the user to another page. Again, the requirement for the user to click and further select is present. Another approach uses a combination of a keystroke and a mouse click, e.g., holding down the "Alt" key while clicking on a word. With these navigation approaches, the user is often taken to another Web page, menu, or another Web browser opens up with the information. Often the user's screen becomes cluttered, and the user may become confused, frustrated, or unable to return to where he wants. The result may be lost Web site consumer sales and upset users. The ability to maintain the same user context while providing supplemental information may reduce these undesirable results.

Additionally, information available to a user selecting a hyperlink generally has several other limitations. One is the static nature of the information. The information is intended to be viewed by anyone and so is necessarily generic and general purpose in nature. Thus, it is not tailored to a particular viewer. Another limitation is the static nature of the link itself. The link is not capable of changing based upon a particular viewer. The ability to personalize the nature of the information and its retrieval based on user-defined criteria may be beneficial.

SUMMARY OF THE INVENTION

A method of providing information to a user of a processing system includes identifying a position of a user-controlled pointer on a display device of the processing system, determining if the position coincides with an item of interest, and if the position coincides with the item of interest, retrieving the information associated with the item of interest dynamically without requiring any further action from the user, and displaying the information on the display device.

Other features of the present invention will be apparent from the accompanying drawings and from the detailed description that follows.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:

FIG. 1 illustrates a number of client and server computer systems connected to each other via a network;

FIG. 2 is a block diagram of a computer system;

FIG. 3 conceptually illustrates an architecture for implementing the information retrieval and display technique;

FIG. 4. is a flow diagram of a client-side process for selecting an item of interest, and then retrieving and displaying information on the item of interest;

FIG. 5 is a flow diagram of a server-side process for looking up and sending information on an item of interest to a client;

FIG. 6a shows a displayed window generated by a word processing application; and

FIG. 6b shows a displayed window generated by a word processing application, including a bubble containing retrieved information;

FIG. 7 is a partial screen display of one embodiment of the bubble software in a web browser environment showing a menuing approach; and

FIG. 8 is a screen display of one embodiment of the bubble software in a web browser environment illustrating display of information retrieved.

DETAILED DESCRIPTION

A system and method for identifying and retrieving information for a computer user are described. What the system and method disclosed herein may include, among other things, is a system in which, over communication medium such as the Internet in an interactive scenario, a pointer or cursor is located by a user over an item of interest, and without further interaction from the user, information related to the item of interest is retrieved and displayed to the user. The user is not required to click on (or otherwise select) a hypertext link. Similarly, the user is not required to provide any additional input; no mouse click, no keyboard input, no voice input, and no user biometric input. As described in greater detail below, by enabling easier retrieval of information the user's performance, experience, and enjoyment of using the software or Internet may be enhanced. This approach provides a new level of ease for the user, and a potential new source of revenue to information providers, advertisers, and sponsors. The techniques described below include a computer software application which, when executed on the computer system of an end user, configures that computer system so that the user may initially select from a variety of information sources. Thereafter, by simply positioning a pointer over an item of interest, available information is communicated to the user automatically. While it is envisioned that the techniques described below may be aligned with the use of standard applications, such as a word processor, Web browser, etc., it is to be understood that the techniques presented need not be implemented within the application, although that is one possible implementation approach. Thus, the techniques described below can be implemented "on top of" any application and do not need to be part of the application. The information that is presented to the user may also involve visual or audible output, or both.

Note that to facilitate description, certain software elements are characterized in this description as having the ability to perform various functions or to "provide," "cause," or "implement" various functions, or other similar characterizations. It will be recognized, however, that what is meant by such characterizations is that the described functions occur as a result of a processor executing software. Note however, that the techniques described, can be embedded in hardware, software, or a combination of hardware and software. Note also that the processor executing software and/or the techniques embedded in hardware, software, or a combination of hardware and software may be at a client system, a server system, or a combination of client and server system.

FIG. 1 illustrates a network environment in which the techniques mentioned above may be applied. As shown, several computer systems in the form of M servers 104-1 through 104-M and N clients 108-1 through 108-N are connected to each other via a network, which may be, for example, the Internet. Note that alternatively the network 102 might be or include one or more of: a Local Area Network (LAN), Wide Area Network (WAN), satellite link, fiber network, cable network, or a combination of these and/or others. The system and method described herein may be applied to essentially any type of software application, such as a Web browser, a word processor, a spreadsheet, a database application, multimedia editing, etc. To facilitate explanation, this description will focus on a Web browser executing on a conventional personal computer in an Internet environment.

FIG. 2 illustrates a conventional personal computer in block diagram form, which may be representative of any of the clients and servers shown in FIG. 1. The block diagram is a high level conceptual representation and may be implemented in a variety of ways and by various architectures. Bus system 202 interconnects a Central Processing Unit (CPU) 204, Read Only Memory (ROM) 206, Random Access Memory (RAM) 208, storage 210, display 220, audio, 222, keyboard 224, pointer 226, miscellaneous input/output (I/O) devices 228, and communications 230. The bus system 202 may be for example, one or more of such buses as a system bus, Peripheral Component Interconnect (PCI), Advanced Graphics Port (AGP), Small Computer System Interface (SCSI), Institute of Electrical and Electronics Engineers (IEEE) standard number 1394 (FireWire), etc. The CPU 204 may be a single, multiple, or even a distributed computing resource. The ROM 206 may be any type of non-volatile memory, which may be programmable such as, mask programmable, flash, etc. RAM 208 may be, for example, static, dynamic, synchronous, asynchronous, or any combination. Storage 210, may be Compact Disc (CD), Digital Versatile Disk (DVD), hard disks, optical disks, tape, flash, memory sticks, video recorders, etc. Display 220 might be, for example, a Cathode Ray Tube (CRT), Liquid Crystal Display (LCD), a projection system, Television (TV), etc. Audio 222 may be a monophonic, stereo, three dimensional sound card, etc. The keyboard 224 may be a keyboard, a musical keyboard, a keypad, a series of switches, etc. The pointer 226, may be, for example, a mouse, a touchpad, a trackball, joystick, etc. I/O devices 228, might be a voice command input device, a thumbprint input device, a smart card slot, a Personal Computer Card (PC Card) interface, virtual reality accessories, etc., which may optionally connect via an input/output port 229 to other devices or systems. An example of a miscellaneous I/O device 228 would be a Musical Instrument Digital Interface (MIDI) card with the I/O port 229 connecting to the musical instrument(s). Communications device 230 might be, for example, an Ethernet adapter for local area network (LAN) connections, a satellite connection, a settop box adapter, a Digital Subscriber Line (xDSL) adapter, a wireless modem, a conventional telephone modem, a direct telephone connection, a Hybrid-Fiber Coax (HFC) connection, cable modem, etc. The external connection port 232 may provide for any interconnection, as needed, between a remote device and the bus system 202 through the communications device 230. For example, the communications device 230 might be an Ethernet adapter, which is connected via the connection port 232 to, for example, an external DSL modem. Note that depending upon the actual implementation of a computer system, the computer system may include some, all, more, or a rearrangement of components in the block diagram. For example, a thin client might consist of a wireless hand held device that lacks, for example, a traditional keyboard. Thus, many variations on the system of FIG. 2 are possible.

Referring back to FIG. 1, clients 108-1 through 108-N are effectively connected to web sites, search engines, and/or database resources represented by servers, such as servers 104-1 through 104-M, via the network 102. The web browser and/or other applications are generally running on the clients 108-1 through 108-N, while web pages and information being browsed generally resides on the servers 104-1 through 104-M. For ease of explanation, a single client 108-1 will be considered to illustrate one embodiment of the present techniques. It will be readily apparent that such techniques can be easily applied to multiple clients. In FIG. 1, the client 108-1 might be running a web browser application that has the capability to accept browser "plugins." Browser plugins are devices, generally implemented in software, that can access, interact, enhance, and/or compliment the functionality of the main application (e.g., the browser). The invention's implementation of such a plugin shall be referred to herein as "an information bubble plugin" or "bubble software" for short. The bubble software configures a processing system such that when a pointer or cursor is positioned by a user over an item of interest, and without further interaction from the user, information related to the item of interest is retrieved locally and/or remotely and then presented to the user. The user is not required to click on (or otherwise select) a hypertext link.

The information that is presented to the user may also involve visual or audible output, or both. The bubble software may be installed either by the client user locally via a machine-readable medium or storage device, for example, a CD-ROM, DVD, or the other storage medium. Alternatively, the client user may download the bubble software or any updates thereto from a server via the Internet and/or other network, and then install the bubble software. A description of the method of installation of the bubble software is not necessary for an understanding of the present invention. The server 104-1 in this explanation is a web site that client 108-1 is configured to access.

FIG. 3 conceptually illustrates a common computer system architecture showing the major levels of interaction between resources. Conceptually, and in order of increasing abstraction, HardWare (HW) 312 interacts with low-level drivers 310, which then communicate with the Operating System (OS) 308, which has an Application Programming Interface (API) 306 for use by application software 304. In one embodiment, the application software 304 is a web browser. The bubble software 302 interacts with the application software 304 via a plugin capability. In another embodiment, the bubble software might be part of the application software 304. Note also that the bubble software 302 may have access to the API 306, the OS 308, drivers 310, and hardware 312.

Once the user has installed the bubble software on the computer, the user may set program options, such as the source of inputs, program defaults, favorites, preferred providers, applications, etc., through standard menuing toolbar selection systems, or these options may be set for the user by a service provider. The bubble software, by having access to the system resources, is able to sense automatically without user interaction, for example, the mouse pointer location as displayed on the display device, as well as display information.

FIG. 4 illustrates a flow diagram for one embodiment of a client-side process of performing a simple lookup of information regarding an item. This process may be implemented by the bubble software 302. Initially, at 402, the user of a client system selects from a bubble software menu toolbar, preferences, options, the application name, attributes, etc. For illustration purposes, assume that the user, at 402, has initially identified that the application they will be using is a word processor. Assume further, that the user has also indicated, via the bubble options and preferences, that they are interested in words (i.e. that the item of interest is a word), that the information the user would like displayed on the display device is the word's definition, that the user prefers information (in this example, the word definition) from a specified dictionary, and finally, perhaps a preference for a remote information server site. Once configured with the user's preferences for the bubble software 402, the bubble software 302 checks to see if the pointer or cursor has "hovered over" (i.e. is positioned in proximity to) an item, in this case a word, for at least a period of time T 406, where T may be, for example, onehalf second. If the hover time is not greater than the specified time T, then the process simply loops back to 406. When the hover time T over an item of interest, in this case a word, is satisfied at 406, the process proceeds to determine, at 408, if the information on the item of interest, in this case a word definition, is locally available. If the information on the item of interest, in this case a word definition, is available then this information is displayed in a "bubble" (e.g. a callout box) adjacent to the hovered item of interest, in this case a word, at 410. The process then loops back to 406. If the information is not available, then the bubble program, which is running on the client, sends a request for the information at 412 to a predefined server, as set by the user in the user preferences or by default. The client then checks to see if the information was received from the server at 414. If the information was received from the server within a predefined time out period, the program then finds the information available locally at 408, and proceeds to display the retrieved information at 410. If the information is not received from the server within the predefined time out period, then the bubble software loops back to 406.

FIG. 5 illustrates a flow diagram for a server-side process for retrieving information, which may be performed in conjunction with the client-side process of FIG. 4. The server receives the request for information at 502, in this case a word definition. The server then determines if this information is available locally at 504. If the information is available locally, then the server sends the information to the client at 506. If the information is not available locally, then the server identifies a source for the information at 508. The server then sends the identified information source a request for the information at 510. The server then checks to see if it has received the information from the information source within a timeout period at 512. If the server receives the information from the information source within the timeout period at 512, the information is then formatted if required at 516, and then the server then sends to the client the information at 506; otherwise, the server sends to the client a signal indicating that no information was received at 514. The identified source for information might be another database identified by a Universal Resource Locator (URL). The formatting if required 516, may consist of, but is not limited to, condensing the retrieved information, filtering the information, packaging the information with additional items, etc. For example, the retrieved information might consist of more data than the user requested in which case it would be condensed and filtered according to the user options. Additionally, a sponsor may be paying for the information, in which case an advertisement, logo, etc. may be packaged with the information and this entire formatted result sent to the client by the server 506.

FIG. 6 illustrates an example of two display presentations resulting from the example just described. FIG. 6a shows an illustrative display window generated by an executing word processor, which includes lines of text, and a mouse pointer 606 that is not hovered over any word. FIG. 6b shows the result when the mouse pointer 666 is hovered over a word for more than a specified time T and illustrates in this example the displayed bubble 668, with the retrieved information, i.e., the word definition 670.

It should be noted that for each particular application there may be a wide variety of options, choices, and differing characteristics of the bubble program. For instance, in the example given above, the definition of a word was provided. Other options might have allowed for a spelling check of the word, common examples of usage of the word, translation of the word into another language, synonyms of the word, antonyms for the word, abbreviations for the word, a thesaurus, punctuation, or even an audio pronunciation of the word. Likewise, the bubble software is not limited to solely operating on the item directly below the pointer. For example, in one embodiment, it is possible for the bubble software to look at the words or other items in any predefined region surrounding the pointer. This would allow information to be retrieved on grammar checking, possible other equivalent phrases, or even common abbreviations. Suppose for example that the bubble software were set up to look at an entire sentence for purposes of grammar checking. In that case, the bubble software, after determining the item of interest to be the sentence, "We got a communication.", might suggest the sentence, "We received a communication." Similarly, the bubble software could be set to suggest abbreviations. In that case, for example, if the bubble software found the phrase "Patent and Trademark Office," as an item of interest, it might suggest the abbreviation "PTO." The reverse is also possible, where upon encountering the acronym "PTO," the bubble software could provide a list of source words, in this case, PTO could mean, Parent-Teacher Organization, Paid Time Off, Primary Test Organization, Personal Time Off, Public Telephone Operator, or perhaps Patent and Trademark Office. Of course the bubble software might be set up to do any combination of things, like check the spelling, suggest abbreviations, etc.

The bubble software, as explained above in the discussion about FIG. 3, may interact with the application software, API, and other system resources. Through possibly one or more of these resources, the bubble software is capable of identifying such things as a pointer location, an application that is executing, information being displayed on a user's display device, etc. For example, in the case of a web browser, the bubble software by utilizing API calls can identify that a web browser is executing. Additionally, by interaction with the web browser through the Document Object Model (DOM) or related API, the bubble software given the position of the pointer, can determine the word, sentence, paragraph, etc. at that location. From this information the bubble software, in accordance with the user defined options, can determine an item of interest. It should be clear that because the bubble software is capable of determining such things as an application executing, it has the capability to provide context-relevant information. For example, if the user is using a web browser to visit a stockbroker website and positions the pointer over the displayed stock symbol of a company on the user's display device, the bubble software by using the API and other system resources could identify the stock symbol as an item of interest, retrieve information and display, for example, the name of the company, current price, Price/Earnings (P/E) ratios, volume, charts, options, futures, research ratings, or other information such as late breaking news. Similarly, if the user is using a web browser to visit a bookseller website and the pointer is hovered over the title of a book (an item of interest), the information displayed in the bubble might be price, delivery, availability, author, other books by the author, other books of the same genre, etc.

Thus, in a broader sense, it is to be understood that the bubble software is capable of performing a transaction. This transaction, as illustrated above, may be information retrieval. Additionally, if the user preferences and/or options are set for another transaction, for example, ordering, then hovering the user-operated pointer over an item of interest for ordering may effect an ordering transaction. Additionally, in the ordering example, the ordering may take place as well as retrieval and presentation of information related to the ordering, for example, information confirming that the item of interest was ordered, expected ship date, total amount, and other order status. Another example may be that of requesting a book at a library. With user options set for reserving a book, for example, a pointer hovering over a title of a book may place the book on reservation, and information on where the user is in a queue for reservation of the book may be displayed. Another example may be the activation of, for example, a user's home alarm once a pointer is hovered over a home alarm icon. Information displaying the status of the alarm system, or any intrusion alerts may be displayed. Yet another example is the pointer hovering near the name and address of, for example, a business listing, where the transaction may be the storing of the name, address, telephone number, facsimile number, email address, and web location information of the business listing to a user's address electronic book, a PDA (personal digital assistant), etc., and then displaying to the user information related to the successful completion of this transaction.

As illustrated in FIG. 4, if the information for an item is available locally at 408 on a client system, then it is displayed at 410 without the need to send an information request to a server. In the event that a request for information is sent to a server at 412, it should be realized that this server may function in any of a variety of ways. In one embodiment, the server stores the information locally at 504 and sends it back 506. In other embodiments, the user may have set preferences in the bubble program that indicate a preferred source for the information. Continuing the word definition example above, the user may have selected a particular dictionary source from a list of dictionary sources. If the server receiving the information request did not have the definition from the preferred source, then the server might look up a URL for an alternate dictionary source, retrieve the information, and then provide it to the requesting user. In this way information from a variety of sources may be retrieved. In another embodiment, the source of the information might be located in the website that the user is currently visiting. Again, as discussed above, if the user is visiting a bookseller website and the pointer hovers over a book title, the bubble software may send a request for information to the server. The server in this case may visit the same website, retrieve the information, and send it back for display. In this way the user, without clicking or performing additional action, is able to receive information that might otherwise take more time, clicks, etc. This also reduces the possibility that the user would become lost in navigating, or that a sale would be lost due to confusion of the user.

It is also possible, at the same time information is retrieved, to present to the user an advertisement (ad). In fact, some information providers might provide free information if an ad for that provider were present. This ad could be an icon, an audio jingle, text, a graphic, or even the background or shape of the bubble itself. For example, a dictionary definition provider might simply have the dictionary name after the definition. In another case, an advertiser might have paid the information provider and/or the bubble software manufacturer to include a jingle that plays every time certain information is provided.

There is also the possibility that a user may be willing to pay for the retrieved information, such as research reports on stocks. In this case, the server receiving a request for information may have accounting and security functions that determine whether the user is who he claims to be and has sufficient funds for the information; if not the server, might send a message that is displayed in the bubble informing the user what to do, whom to call, etc. In a situation where the user may have purchased, for example, a given number of accesses, to say, financial reports sent to the user on a CD where no remote access is need, the accounting, payment, and security functions may be performed on the client alone. The accounting and security functions might also be performed on a remote database, website, or any combination of local and remote resources.

Multiple suppliers might also provide information for enabling a "comparison bubble." For example, if the pointer is hovered over an International Standard Book Number (ISBN) number, then price quotes from several book vendors might be displayed in a bubble simultaneously. The order of displaying the vendor's information and the color, and size of fonts, for example, might be influenced by financial support from the vendors.

Since the information displayed in the bubble may come from a remote server, it may be dynamic in nature, meaning that it can readily change over time, such as a stock price quote. In one embodiment, the information received from the server may already be in a form ready for display. In other embodiments, it may be necessary for the client and/or the information server(s) to reformat and/or filter the data so it is in a form ready for display. It is envisioned that any existing standards for information presentation and retrieval may be used, such as HyperText Markup Language (HTML), Dynamic HyperText Markup Language (DHTML), Transmission Control Protocol/Internet Protocol (TCP/IP), HyperText Transfer Protocol (HTTP), Internet, World Wide Web (WWW), File Transfer Protocol (FTP), User Datagram Protocol (UDP), Secure Sockets Layer (SSL), extensible Markup Language (XML), Wireless Application Protocol (WAP), Wireless Markup Language (WML), standard web browsers, etc. However, it is to be understood that the bubble software is not limited to existing standards.

It is to be understood that in an embodiment where the server is formatting information, as in FIG. 5, at 516, i.e. providing filtering and/or condensing of information, which is then provided to the user, that from the user's perspective there may be an improvement in the performance of retrieving the information. The server may be attached to a higher speed connection than the client and because of this higher speed connection may retrieve information faster than the client. After receiving this information, the filtering and/or condensing reduces the amount of data that needs to be transferred to the client. This smaller amount of data takes less time to transfer to the client and so performance is improved. The filtering and/or condensing may be as simple as removing information that is not required by the user. For example, if the user has requested only the opening and closing bids on a stock, the information retrieved from, for example, a web site, may include graphics, and such unwanted ancillary information as the company's latest press release information, P/E (price/earnings) ratio, etc. By having the server filter and/or condense this information to substantially what information the user has requested, in this example, opening and closing bid price, much less information needs to be transferred to the client and performance is increased.

It is also to be understood that the "bubble" itself may take on different forms, such as a callout box, a balloon, a box, the image of a television set or computer, etc. Alternatively, the "bubble" might be a display in a menu, a task bar, etc., and may be capable of being scrolled. The bubble may also take on a variety of colors, shapes, shadings, and transparency levels. The bubble is also not necessarily static in shape, size, form, or color and thus may change over time. For example, a bubble might form at an estimated rate of information retrieval. That is if the information appears to be coming rapidly, the bubble might form rapidly. Conversely, if the information is slower to retrieve, the bubble may form more slowly, or the bubble might display ad information until the information is available. In this way the user would get feedback on the retrieval process. It is also to be understood that a visual, audio, or combination bubble presentation may be made. The properties of the bubble itself may also be under user control. For example, the shape, form, size, color, fonts, etc. may be user selectable. Also selectable may be functional characteristics of the bubble, such as, sticky bubble (bubble stays open with the information retrieved and stays.associated with the then executing application), non-sticky bubble, printable bubbles, moveable, non-moveable, persistence (length of time for presentation), multiple bubbles (open at the same time), savable bubbles (can save them to a file, or for later recall), recursive bubbles (bubbles inside other bubbles), etc. For example, the user might select during a word processing session to have a single persistent bubble moved to an unobtrusive location on the screen where all retrieved information would be displayed. The user's level of knowledge may also be a user selectable option. For example, an adult might receive a more detailed definition of a word compared to a young child, who might, if the word is considered inappropriate, a suggestion to use another word. The younger child might also receive not only a definition, but also a picture of the item the word represents if one is available. Other characteristics of the user might also be selectable, such as a native or preferred language for information displayed in the bubble. These features may be selective via menus, toolbar, dialog box, mouse or pointer clicks, keyboard, or any combination.

While it is envisioned that the bubble software would benefit greatly from the access to outside information from servers, it is to be understood that a local database, which may be contained fully within a client system, would be capable of operation without outside access. For instance, the word definition example above could be fully implemented in a user's computer system (with or without ads) and not require access to a server or other outside access. This applicability is particularly beneficial where the information is more static in nature. With increasing storage capacity, for example DVD, a bubble software enabled word processing application might contain definitions, pictures, video, sounds, translations, synonyms, abbreviations, etc.

FIG. 7 is a partial screen display 700 of the bubble software as illustrated in a web browser embodiment. There is a bubble software bar 702 which displays a variety of icons including a shop, dictionary, and stock 704 icon. A pull down menu 706 related to the stock icon 704 is shown with a variety of options. The selected option Rating 708 is shown. In this example, the user may have chosen to retrieve stock rating information as the information related to an item of interest.

FIG. 8 is a screen display 800 generated by the bubble software, as illustrated in a web browser embodiment. Assuming the Rating settings for stock is active as illustrated in FIG. 7 and as described above, the bubble software bar 802 displays a variety of icons, including a the stock icon 804 which is indicated as active. A pointer 806 has hovered over a stock symbol (an item of interest) for a preset time, and a bubble with the Ratings information 808 has appeared on the display. Note that in addition to the Ratings information, an advertisement from a sponsor 810 (in this example, Yahoo!.RTM.) is also displayed inside the bubble 808.

Thus, a system and method for providing clickless, contextual, and dynamic information retrieval have been described. Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention as set forth in the claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than a restrictive sense.

* * * * *

References


uspto.report is an independent third-party trademark research tool that is not affiliated, endorsed, or sponsored by the United States Patent and Trademark Office (USPTO) or any other governmental organization. The information provided by uspto.report is based on publicly available data at the time of writing and is intended for informational purposes only.

While we strive to provide accurate and up-to-date information, we do not guarantee the accuracy, completeness, reliability, or suitability of the information displayed on this site. The use of this site is at your own risk. Any reliance you place on such information is therefore strictly at your own risk.

All official trademark data, including owner information, should be verified by visiting the official USPTO website at www.uspto.gov. This site is not intended to replace professional legal advice and should not be used as a substitute for consulting with a legal professional who is knowledgeable about trademark law.

© 2024 USPTO.report | Privacy Policy | Resources | RSS Feed of Trademarks | Trademark Filings Twitter Feed