« PreviousContinue »
SYSTEM AND METHOD FOR ASSISTED
CROSS REFERENCE TO RELATED
This application is a continuation of U.S. patent application Ser. No. 10/950,904 filed Sep. 27,2004, entitled "System and Method for Assisted Awareness" the contents of which are fully incorporated herein by reference. 10
The present invention relates to the field of human-computer interface technology, and more particularly to a system 15 and method for alerting a user when a particular event occurs and providing contextual feedback to the user regarding the same.
Many computer-based innovations rely upon a humancomputer interface to effectively convey information to the user. Graphics programs on a personal computer, a spacecraft cockpit, dash instrumentation in a vehicle, a personal digital 25 assistant, or any other computer and/or embedded computation machine typically employs the use of an interface. Because of the importance of having an effective humancomputer interface, much focus has been centered around the design and implementation of them, especially to reduce the 30 cognitive and memory load on the user.
As such, much effort has gone into ways to filter or reduce the amount of "information overload" on the user. Yet, there is another problem, generally referred to as "attention deficit," that is not often solved by using the same tools that reduce 35 information overload. Attention deficit refers to the idea that the human user does not have nearly enough attention to deal with all of the information presented in traditional manners. Therefore, the human-user may experience a reduction in awareness pertaining to significant or interesting events. 40
One particular industry where information must be rapidly received and assimilated by a user through an interface is electronic trading. In electronic trading, an exchange brings buyers and sellers, also referred to as traders, together for the electronic execution of trades. Traders remotely log onto the 45 exchange through their trading stations to receive market data. The trading stations utilize specialized trading interfaces to display the market data and facilitate order entry. The trading interfaces are generally configured to update quickly to reflect near instant changes in the market. 50
An example of a trading interface, which provides an especially intuitive view of the market, is described in U.S. Pat. Nos. 6,766,304 and 6,772,132 given both to Kemp et al. The entire content of each of the above-referenced patents is incorporated herein by reference. This particular trading 55 interface displays market data in alignment with an axis of prices in a window on the screen of a trading station. The user can view the market's movement simply by watching the bid and ask indicators ascend or descend the axis.
A typical trading interface might present market informa- 60 tion for one tradeable object or many tradeable objects, depending on the type of interface and its intended purpose. Users might also have more than one trading window on their screen. Some users even go so far as to have two or more computer screens for displaying numerous trading windows. 65 As used herein, the term "tradeable object" refers to anything that can be traded with a quantity and/or a price. It includes,
but is not limited to, all types of traded events, goods and/or financial products, which can include, for example, stocks, options, bonds, futures, currency, and warrants, as well as funds, derivatives and collections of the foregoing, and all types of commodities, such as grains, energy, and metals. The tradeable object may be "real," such as products that are listed by an exchange for trading, or "synthetic," such as a combination of real products that is created by the user. A tradeable object could actually be a combination of other tradeable objects, such as a class of tradeable objects.
In addition to viewing market information through a trading interface, a user might set up his trading strategy through on-screen programming to view historical charts which can provide insight into the markets he is trading, to view important news which might be relevant to the markets they are trading, or to perform any other task thereby causing the user to look away from a given item or window on the screen. Additionally, the user might be subject to other distractions and interruptions, such as receiving an email or answering a telephone call.
Besides the distractions and interruptions, the human user can invariably focus on limited portions of a screen at any single time. This limited ability may result in missing important pieces of information that were presented at the same time, or near the same time, the user was focusing on something else. In some instances, where there is a great deal of information being displayed in a single window, the user might even miss something being presented in the same window on which he is currently focusing on.
As computer use becomes more widespread, especially in the area of electronic trading, the ability to assimilate large amounts of data becomes an increasing concern. It may be very difficult, next to impossible, for the user to be aware of everything that is potentially relevant to the user's activity without some assistance. As indicated earlier, much effort has already gone into designing an interface that guides and constrains human interactions to reduce the cognitive and memory load on the individual. While helping the user focus on one particular window of information may be desirable, this effort does not address the sort of problems incurred by users of such computer-based systems, especially in the electronic trading industry.
BRIEF DESCRIPTION OF THE DRAWINGS
Many aspects of the example embodiments may be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon illustrating example embodiments. Also, the same numbers, if any, refer to the same elements throughout.
FIG. 1 is a block diagram of an example system, in accordance with a preferred embodiment, that alerts a user when a particular event occurs and provides contextual feedback to the user regarding the same;
FIG. 2 is a flowchart illustrating an example process, in accordance with a preferred embodiment, for alerting a user when a particular event occurs and providing contextual feedback to the user regarding the same;
FIG. 3 is a graph for further illustrating various aspects of the example system and process shown in FIGS. 1 and 2; and
FIGS. 4-5 show example output devices for use in illustrating an example operation of the system and process shown in FIGS. 1 and 2.
DETAILED DESCRIPTION 5
I. Introductory Overview
The example system and method are appropriate for use in situations where human-computer interfaces are imple- io mented, and particularly in an electronic trading environment. The example system and method assist the user to become aware of and pay attention to significant or interesting events, preferably around the time that the event has just occurred. 15
According to a preferred embodiment, the example system records some or all of a data feed signal and it provides an alert when a particular event occurs in the signal. Thereafter, the example system switches to fast playback of the recorded portion of the data feed signal, thereby providing context for 20 the actions that occurred just prior to the event. The example system switches back to normal operation when the playback signal and the data feed signal coincide in time. Further, options may be made available to the user to again replay the section identified as being of interest, or even sections of the 25 data further back in time. While many of the example embodiments are described in the area of electronic trading, it will be understood by those of ordinary skill in the art that the example system and method may be embodied in many different forms and should not be construed as limited to elec- 30 tronic trading.
An advantage is that a user of the example system can pay attention to the information content in the data feed signal when it is important, as indicated by the alert and playback system, and not the rest of the time. Therefore, the user can 35 focus on other items of interest or perform other tasks while the example system is monitoring the data feed signal for the event, and then assisting the user to become aware of what is significant and/or interesting about the given event.
Another advantage is that the example system provides an 40 alerting mechanism that alerts the user when a particular event occurs. The alerting mechanism is triggered when an event occurs in an attempt to attract the user's attention to the event. In a preferred embodiment, the event is predefined by the user through the input of one or more conditions. Further, 45 according to another preferred embodiment, the type of alerting mechanism is also configurable by the user. At some point after the alerting mechanism is initiated, the alerting mechanism of the example system can be programmed to gradually subside and have the output signal automatically return to 50 normal operation.
Yet another advantage is that the example system provides a playback feature that provides context for the actions that occurred just prior to the event. The playback feature may be initiated immediately after the event occurs or when the user 55 is actually focused on a specific target area of the computer screen. In a preferred embodiment, the user can program the length and the rate of the playback, such as normal playback or fast playback. According to another preferred embodiment, once the playback signal and the real-time data feed 60 signal coincide in time, the output signal is automatically returned to normal operation.
Another advantage is the data feed signal may comprise data, video, and/or audio signal components. As such, the example system may effectively monitor trading data feeds, 65 news feeds, and/or audio streams (either a standalone audio feed or one associated with a video stream, for instance). In
one of these forms, the data feed signal is normally received by a software application designed to receive and output the content of the data feed to the user according to some programmed format. The example system, however, can record the same data feed and when the alerting mechanism is triggered, the system may provide the recorded data feed signal to the appropriate software application so that the recorded portion can be visually and/or audibly played back to the user. Alternative ways of recording and playback of the data feed signal are also described herein.
Other features and advantages will become apparent to one with skill in the art upon examination of the following drawings and examples. It is intended that all such features and advantages be included within the scope of the present invention, and be protected by the accompanying claims. Further, it will be appreciated by those of ordinary skill in the art that the example system may be provided as methods or computer readable program means.
II. An Example System Overview
An example system may be operated in an entirely software embodiment, in an entirely hardware embodiment, or in a combination thereof. In the interest of clarity, the example system is described generally in a software-based embodiment, which is executed on a computer-based device. As such, the example system takes the form of a computer program product that is stored on a computer readable storage medium and is executed by a suitable instruction execution system in the computer-based device. Any suitable computer readable storage medium may be utilized including hard disks, CD-ROMs, optical storage devices, or magnetic storage devices, for example.
FIG. 1 illustrates an example computer system, referenced to by general reference numeral 100, used to carry out an example embodiment. The computer system 100 might represent a trading station for receiving and displaying market information or other trading related data, and it might also be configured for order entry. As such, the computer system 100 might utilize software directed towards the operation of electronic trading, such as having a specialized trading screen that can display data and receive commands from the user to send orders to an exchange, for instance. Actual examples of the computer system 100 include a personal computer, laptop computer, workstation, handheld device, or some other computer-based device. While most of the functionality is implemented at the computer system 100, such as shown in FIG. 1, it is understood that the functionality may be distributed over multiple computer-based devices—for instance, a personal computer and one or more servers.
As shown in the example embodiment of FIG. 1, the computer system 100 includes a data interface 102 for receiving one or more various data feeds, a processor 104 for executing the software, an input interface 106 for communicating with input device(s) 112, a memory section 108 for representing temporary and/or permanent storage used by the system 100; an output interface 110 for controlling display unit and/or speakers 114. While only one display unit is shown in the figure (e.g., display unit and/or speakers 114), additional display units may also be used. Further, each of these internal components, including the data interface 102, the processor 104, the input interface 106, the memory 108 and the output interface 110, may be interconnected by a bus or some other data transfer mechanism. If the computer system 100 is operated in a distributed environment (which is not the environ5
ment shown in FIG. 1), then such components, like the memory 108, might communicate with other components over a computer network.
As indicated earlier, the functionality may be distributed over various devices. As an example, the actual data storage 5 (shown as the memory 108 in FIG. 1) may reside on a different physical device from the computer system 100 used to display alerts. To illustrate this example, the computer system might monitor a video stream by using a personal video recorder (PVR) operating under programmatic control of the 10 computer system 100.
FIG. 2 illustrates an example process taken by the example system 100 of FIG. 1 for alerting a user when a particular event occurs and providing contextual feedback to the user regarding the same. It is understood that each block in the 15 figure may represent a module, segment, or portion of code, which includes one or more executable instructions for implementing specific logical functions or steps in the process. Alternate implementations are included within the scope of the preferred embodiments in which functions may be 20 executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonable skilled in the art. Further, some steps may not need to be implemented to achieve the desired result. 25
At block 200, one or more conditions are received by the computer system 100 and are used to define a triggerable event. As an example, a triggerable event might include an economic or monetary indicator, such as inflation, interest rates, employment, volume, prices, credit market conditions, 30 changes in the market conditions, or any other particular item of interest to the user. A condition refers generally to an expression or a variable that can be used to define an event. As an example, a condition might include a Boolean expression that yields a Boolean value, like true or false (e.g., if the 35 employment number is announced, then alert and playback). Such expressions can involve comparisons and logical combinations of Boolean expressions. In the interest of clarity, a single condition will be used in the following examples with the understanding that a plurality of conditions may be used 40 (e.g., multiple "if statements) to define an event. A variety of other basic-to-complex matching/filtering mechanisms could be employed, which could yield a numerical measure of the degree of interest the user would have in this particular piece of content; the user would be able to configure a threshold 45 value for the numerical measure of interest that if met or exceeded would trigger the alerting process. The condition(s) are preferably stored in memory 108.
In a preferred embodiment, the computer system 100 receives the condition through the input interface 106, which 50 may include special programs or drivers to communicate with input devices generally shown as 112. Some example input devices include a mouse and keyboard (shown in the figure), game pad, virtual glove, joystick, or trackball, touch-screen, just to name a few. The user can input the condition through a 55 graphical user interface ("GUI"), which may represent a visual environment with graphical images, such as icons, menus, and dialog boxes on a screen. The user may select and activate these options by pointing and clicking with a mouse, selecting them with a keyboard, or by setting them with some 60 other input device. It is also possible to set such parameters through something other than a graphical user interface, such as through command-line entry.
In an alternative embodiment, the condition may be loaded onto the computer system 100 through a disk drive, CD 65 ("compact disc") drive, DVD ("digital versatile disc", which was previously referred to as "digital video disc"), over a
network, or through some other alternative loading mechanism. For instance, assuming that the computer system 100 had a CD drive, then the user could simply insert a CD with the conditions into the drive and load them into memory 108. In a similar manner, a user might receive conditions over a network through email or some other network protocol, and simply load the conditions into memory 108. None of these alternative loading mechanisms are shown in the figure.
At block 202, a data feed signal is received by the computer system 100 through the data interface 102. The data interface 102 may include special programs or drivers to receive (and transmit, if programmed to do so) information pertaining to a particular data feed. The data interface 102 may be the same data interface used by a particular software application that will ordinarily display the original data feed signal to the user. A particular data feed might include data, audio, and/or video components which represent price updates and market depth data from an electronic exchange, product tables, responses and outcomes from an electronic exchange pertaining to order requests, fill information, news and commentary, information concerning charts and analysis, or any other data feed. While the example computer system 100 shown in FIG. 1 is configured to receive data feeds from two information sources (e.g., market data and news data), the data interface 102 may be configured to receive only one data feed (e.g., just market data or news) or multiple data feeds (e.g., market data, news, historical data, audio feed, etc.).
Also at block 202, at least a portion of the data feed signal is recorded into memory 108. The example system can preferably detect which data feed signal to record based on the condition, manual configuration, or any other mechanism. For instance, if a condition refers to monitoring a change in the inside market price for a particular tradeable object, then the computer system 100 preferably has the ability to recognize that the data feed signal received for that particular tradeable object should be recorded. Alternatively, the user could manually configure the computer system 100 to record the data feed signal for the particular tradeable object. This manual configuration may occur through the GUI described earlier or through some other known input mechanism.
In an alternative embodiment, only the viewable and/or audible portion of the data feed signal which is ordinarily output of a particular software application is recorded (instead of the raw data actually found in the data feed signal)— e.g., through the use of screen-capture software or something similar. Then, the recorded screen and/or audio activity can be played back to the user. As an example, if a video was recorded, according to this alternative embodiment, then a series of snapshots may be recorded (rather than recording the actual raw data). Though the use of screen-capture software provides an alternative solution, it might also consume large amounts of memory. Nonetheless, while the examples described herein relate to recording the actual data feed, it is understood that the same process of recording and playback may be similarly applied regardless of how or in what form the data feed signal is recorded (e.g., the actual raw data or by screen-capture).
FIG. 3 illustrates an example operation of how a data feed signal, or portions thereof, may be recorded in accordance with a preferred embodiment. At "Start," the data feed signal is received and the recording preferably has started. The sliding window, which illustratively represents the time recorded, then moves incrementally forward in time, adding new recorded material, and dropping the oldest recorded material (if programmed to do so). The parameter utilized in this process is the size of the sliding window, referred to as "n." In most situations, the parameter "n" might be measured in