WO2001069882A2 - System and method for providing information that is responsive to a freeform request - Google Patents

System and method for providing information that is responsive to a freeform request Download PDF

Info

Publication number
WO2001069882A2
WO2001069882A2 PCT/US2000/041059 US0041059W WO0169882A2 WO 2001069882 A2 WO2001069882 A2 WO 2001069882A2 US 0041059 W US0041059 W US 0041059W WO 0169882 A2 WO0169882 A2 WO 0169882A2
Authority
WO
WIPO (PCT)
Prior art keywords
string
match
information
additional
request
Prior art date
Application number
PCT/US2000/041059
Other languages
French (fr)
Other versions
WO2001069882A3 (en
Inventor
Anthony C. Fascenda
Original Assignee
Aether Systems, Inc.
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 Aether Systems, Inc. filed Critical Aether Systems, Inc.
Priority to AU2001216302A priority Critical patent/AU2001216302A1/en
Publication of WO2001069882A2 publication Critical patent/WO2001069882A2/en
Publication of WO2001069882A3 publication Critical patent/WO2001069882A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles

Definitions

  • the present invention relates generally to communications, and more particularly to a system and method for providing information in client-server type systems.
  • menu driven information systems Most two way communications systems that provide information to users require a user to select from a list of topics that are provided in, for example, a pull down menu or a list-box. Examples of a pull down menu 102 and a list box 202 are shown in FIGS. 1 and 2, respectively. Such systems shall be collectively referred to herein as menu driven information systems.
  • menu driven systems users are limited to selecting a topic from a list or menu. Requiring users to select from a list or menu does provide certain benefits. For example, with menu driven systems, users are prevented from entering requests that a system does not understand. Additionally, menu driven systems are relatively simple to organize and program. However, menu driven systems can be extremely tedious to operate. This is especially the case where there are a significant number of topics that users can choose from.
  • users are typically required to navigate through multiple levels of lists or nested menus. For example, if a user wants to learn the score of a baseball game (e.g., a New York Yankees baseball game), the user may have to navigate through up to seven or more levels to receive the desired information (e.g., the game results).
  • An example of multiple pull-down menu levels is shown at 302 in FIG. 3. It is often difficult, tedious and time consuming to navigate such menus or list-boxes, especially when using small handheld devices.
  • One type of two-way communication system includes a client device and a server both coupled to a network.
  • the client device sends client requests to the server, and the server sends server responses to the client device.
  • the use of nested menus in such a client-server environment disadvantageously adds to the message traffic between the server and client, namely, the amount of characters the server sends to the client device to provide menus to the user at the client device.
  • Such a menu-driven client-server system is typically rigid and inefficient in its implementation because a user of the client device must be presented with a large enough number of menu choices to enable the user to make only one or two desired selections, from perhaps as many as several thousand available menu choices. Presenting such a large number of menu choices can waste program memory. In systems wherein the large number of menu selections are transmitted to the client device, transmitting the menu selections once and/or repetitively wastes valuable transmission bandwidth, and because such transmissions are not instantaneous, wastes the user's time.
  • bookmarking also known as “favorites”
  • bookmarking usually reduces the number of nested menus a user must traverse to arrive at a favorite site, the user must still navigate through at least a bookmarked list or menu.
  • the present invention is directed toward a system and method for providing information that is responsive to freeform requests.
  • the method includes the step of receiving a first request from a client device of a user, wherein the first request includes a first string.
  • the method also includes searching a plurality of additional strings for a match for the first string, wherein the plurality of additional strings are associated with rules for retrieving information. If a match is found for the first string, information corresponding to the additional string causing the match is retrieved. The retrieving is accomplished using the rule associated with the additional string causing the match. Once the information is retrieved, at least a portion of the retrieved information can be sent to the user.
  • further information is derived from the retrieved information and at least a portion of the further information is sent to the user. If a match is not found for the first string, the first string is stored and one or more further requests immediately following the first request are monitored. If a match is found for one of the additional requests, the first string is added to the plurality of additional strings and the first string is associated with the same rule for retrieving information that is associated with the further string causing the match.
  • the first string is analyzed to infer what information was desired by the user. Then, the first string is added to the plurality of additional strings and associated with a rule for retrieving the information that was inferred.
  • FIG. 1 is an example of a list used by conventional systems to provide information to users
  • FIG. 2 is an example of a pull-down menu used by conventional systems to provide information to users;
  • FIG. 3 illustrates multiple levels of a menu driven system that a user may be required to navigate through to receive information;
  • FIGS. 4 A and 4B illustrate exemplary communications systems in which the present invention is useful
  • FIG. 4C illustrates an exemplary client device for use with the present invention
  • FIGS.5 A, 5B and 5C are flow diagrams depicting the high level operation of an embodiment of the present invention.
  • FIGS. 6 A, 6B and 6C show lists that are used to explain an embodiment of the present invention
  • FIG. 7 is an exemplary computer system, which can be used to perform the operations of the present invention.
  • the present invention relates to a system and method that provides information to a client device (e.g., a two-way paging device, a wireless phone, a personal data assistant, or a desk top computer) in response to receiving a freeform request from the client device.
  • a client device e.g., a two-way paging device, a wireless phone, a personal data assistant, or a desk top computer
  • the present invention can be used in a two-way wireless communications system. Additionally, the present invention can be used in various other types of communications systems.
  • the present invention can be used with the Internet.
  • a client device can be, for example, a wireless device that wirelessly accesses the Internet (e.g., a PalmPilot® or a wireless phone) or a personal computer that is wired to the Internet.
  • a wireless device that wirelessly accesses the Internet
  • a PalmPilot® or a wireless phone e.g., a PalmPilot® or a wireless phone
  • Preferred embodiments of the present invention are discussed in detail below. While specific steps, configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only.
  • Communications system 400 includes a plurality of cell sites 402 each having a coverage area that is typically about 5 to 10 miles in diameter. A coverage area of one cell site often overlaps a portion of a coverage area of another cell site, which are illustrated for exemplary purposes by the hexagonal regions.
  • Each cell site 402 includes an antenna 104 for transmitting and receiving messages to and from two-way wireless client devices 408 (e.g. , a two-way pager, a wireless phone, a hand held computing device) that are located within a geographic coverage area of the cell site 402. Alternatively, separate antennas may be used for sending and receiving messages, as would be apparent to a person skilled in the relevant art.
  • Each cell 402 is coupled to communications network 410, which can be, for example, an
  • Communications network 410 may include, but is not limited to, land based links such as fiber optics or terrestrial microwave, and/or satellite based links, as would also be apparent to a person skilled in the relevant art.
  • Each cell site 402 communicates with a message system center (MSC) 420 that includes a subscriber database (also referred to as a user database) that maintains records of all subscribers (also referred to as users) on the system, a unique identity sequence for the subscriber's client device, and an indication of the cell site from which the client device last sent a message (such as an acknowledgment message or a request message).
  • MSC message system center
  • subscriber database also referred to as a user database
  • MSC 420 message system center
  • communications between each cell cite 402 and MSC 420 is accomplished through communications network 410.
  • each cell site 402 can have a dedicated link to MSC 420.
  • Communications network 410 can be coupled to a public switched telephone network (PSTN) 412 so that a message can be sent to and from client device 408 via PSTN 412. A message can also be sent from one client device 408 to another client device 408 using communications system 400.
  • PSTN public switched telephone network
  • communications system 400 is the Bell South Wireless Data network (also known as the RAM Mobile Data network) or the ARDIS network, which are both well known two-way nationwide wireless packet data networks.
  • a client device 408 typically identifies itself to MSC 420 by sending a registration or identification signal.
  • Such signals include a data field including at least one unique identifier, such as a Mobile Identification Number (MIN), an Electronic Serial Number (ESN) and/or a Mobile Access Number (MAN).
  • MIN Mobile Identification Number
  • ESN Electronic Serial Number
  • MAN Mobile Access Number
  • a MIN which can be reprogrammed, is analogous to a telephone number.
  • An ESN is hard-coded and fixed such that it difficult, if not impossible to change.
  • a Mobile Access Number (MAN) is similar to an ESN in that it is hard-coded and fixed.
  • the identification signal sent by client device 408 can include one or more of the above discussed unique identifiers, or any other similar unique identifier. Such identification information can be periodically transmitted by client device 408 and/or included with other types of messages sent by client device 408. Such unique identifiers can also be sent with each request sent by a client device 408.
  • An optional function of MSC 420 is to determine whether the unique identifier of a client device is valid.
  • a received unique identifier such as a unique identity sequence comprising a string of digitally represented alphanumeric characters, can be compared to a maintained database of unique identifiers (i.e., MINs, ESNs, MANs) to detect fraud.
  • MSC 420 can keep track of the approximate whereabouts of each client device 408 by keeping track of which cell site 402 a message, sent by a client device 408, originated. When MSC 420 is thus informed of the approximate whereabouts of each individual client device 408, it can later limit the number of cell sites 402 from which it transmits a message addressed to a particular client device 408. MSC 420 can even limit the transmission of a message to only one cell site 420 having a coverage area within which the particular client device 408 is believed to be located. The coverage area of a limited number of cell cites 402 (possibly only a single cell site or a last know site and its adjacent sites) shall be referred to as a targeted coverage area.
  • the targeted area can be the area covered by a single cell site or a slightly larger area that is also covered by a few adjacent cell sites.
  • This limited or "targetted" transmission is much more efficient than broadcast-type transmission where a message is transmitted from every cell site, regardless of a location of a client device 408 to which the message is addressed.
  • Servers 414 (typically controlled by a service provider) are supported by communications system 400. That is, communications system 400 provides for message delivery between a server 414 and one or more client devices 408. Servers 414 can communicate directly with client devices 408 or indirectly with client devices 408 via communications network 410. Alternatively, servers 414 can communicate with communications network 410 throu ⁇ h PSTN 412.
  • a server 414 provides information to a client device 408 upon receiving a request from the client device 408. Additionally, servers 414 can initiate the sending of information to a client device 408. This can be done periodically or upon a triggering event. Additional details about the types of services and the information provided by services providers 414 are discussed below.
  • the present invention is also useful in data networks such as a local area network (LAN) or a wide area network (WAN).
  • LAN local area network
  • WAN wide area network
  • the present invention is useful in the largest present day WAN, referred to as the Internet.
  • the Internet is a world-wide set of interconnected computer networks that can be used to access a growing amount and variety of information electronically.
  • One method of accessing information on the Internet is known as the World Wide Web (www, or the "web").
  • the web is a distributed, hypermedia system, and functions as a client-server based information presentation system. Information that is intended to be accessible over the web is generally stored in the form of
  • FIG. 4B is a network block diagram showing a plurality of clients 408 and servers 414 connected to the Internet 418.
  • server 414 When client device 408 sends a request to server 414, the request specifies, among other things, a destination address (e.g.. a URL) and a source address that can be used to identify a user.
  • a destination address e.g.. a URL
  • DNS domain server
  • IP Internet protocol
  • the client request is passed to the server 414 having the network address.
  • the present invention can then be used to by server 414 to provide a response to the request.
  • the response is a web page.
  • Servers 414 maintain or otherwise have access to local or remote databases that store and/or provide various types of data. For example, referring to FIG.
  • FIG. 4A remote databases 430 are maintained by data sources 432.
  • FIG. 4A also shows a local database 416 that is maintained by server 414.
  • Servers 414 can communicate with data sources 432 through dedicated links or through communications network 410, for example.
  • the type and number of databases, and the form of communication of data between the servers 414 and the databases, is implementation specific.
  • the invention covers the ability of a server 414 to provide information to client devices 408 via a wireless communications system, which typically has a plurality of cell sites that are coupled to a communications network.
  • the invention also covers the ability of a server 414 to provide information to client devices 408 via a wired communications system, or via a communications system consisting of a combination of wired and wireless links.
  • the communications systems of FIGS. 1A and IB can be coupled together.
  • a server 414 can comprise software running on one or more general purpose computers or on telecommunications-specific hardware.
  • the combination of the software and hardware to accomplish the functions of the present invention can be conceptualized as a union of server controllers that each perform a discrete task, such as: receiving a request from a client device of a user; searching additional strings for a match; retrieving information using a rule associated with the additional string causing the match, or the like.
  • One, two, or more of these discrete tasks can be performed by a single server controller. That is, the tasks performed by a first server controller and a second server controller can be performed by a single server controller and still be within the spirit and scope of the present invention.
  • the discrete tasks can be performed by any number of server controllers. That is, the task performed by a single server controller can be performed by a first server controller and a second server controller.
  • exemplary software and hardware controllers is provided below. III. Exemplary Client Devices
  • Client device 408 includes an antenna 442, a transmitter 444, a receiver 446, a microprocessor 448, a display 440 and a keypad 442.
  • Transmitter 444 is controlled by microprocessor 448 and transmits messages using antenna 442.
  • Messages received via communications system 400 are received through antenna 442 or a separate antenna (not shown).
  • the received messages are routed from antenna 442 to receiver 446 and processed by microprocessor 448, for example.
  • Display 450 can be a liquid crystal display and is used for displaying, to a user (also referred to as subscriber) of client device
  • Display 450 can also display lists and/or menus from which a subscriber can make selections and perform various functions. Other methods of presenting the received information, such as aurally through a speaker or through another type of display, are not precluded.
  • Keypad 452 can include as few as one button, but may also include an entire alphanumeric keypad, a touch pad, or can be integrated with a display as a touch screen display.
  • Client device 408 also includes a memory 454 that can store software and/or data. Microprocessor 448 can write to and read from memory 454.
  • client device 408 is an Inter@ctiveTM Pager 950 manufactured by Research In Motion (RIM), Limited, of Waterloo, Ontario, Canada.
  • the RIM Inter@ctive pager (RIM pager) is a commercially available device that provides for two-way wireless communications.
  • the RIM pager includes a 31 -key keypad, a roller wheel that is similar to a mouse, and a screen display with 8 lines of text by approximately 28 characters per line.
  • client device 408 is a PalmTM computing device, manufacture by 3Com Corporation, of Santa Clara, California.
  • Client device 408 can also be a wireless communication device such as, but not limited to, a wireless telephone or a data transceiver.
  • Client device 408 can be fixed, portable, or mobile, such -l i ⁇
  • client device 408 can be a personal computer that, for example, communicates with servers 414 via a network such as the Internet 418.
  • Client device 408 can also be a personal computing device that wirelessly accesses the Internet.
  • Those of ordinary skill in the art will envision other implementations of client device 408 and appreciate that they are encompassed by the present invention.
  • the method of an embodiment of the present invention begins when a request is received at server 414 from a client device (e.g., two-way pager or a cell phone), as shown in step 504.
  • a client device e.g., two-way pager or a cell phone
  • Each request consists of a string, which can be, for example, one or more alphanumeric characters, or the like.
  • a string can also comprise more than one group of alphanumeric characters (e.g., two alphanumeric words, such as "yankees score").
  • the string is entered by a user on client device 408 and forwarded to server 414 when the user, for example, presses send.
  • a plurality of additional strings are searched to determine if the string of the request (referred to hereafter as the first string) matches a string in the plurality of additional strings.
  • the plurality of additional strings are organized in a list.
  • the plurality of additional strings are organized in a plurality of lists.
  • the plurality of lists can be searched in a logical (e.g., a predetermined) order. Regardless of how they are organized or searched, each string of the plurality of additional strings is associated with a rule for retrieving information. Each string may have its own rule. Alternatively, two or more of the plurality of additional strings can be associated with the same rule for retrieving information.
  • the first string must be identical to one of the plurality of strings for a match to occur.
  • a match may be found if the first string and one of the plurality of strings match beyond a predefine threshold (e.g. , 90% of the alphanumeric characters are the same).
  • a threshold e.g. 90% of the alphanumeric characters are the same.
  • An embodiment that uses such a threshold can account for spelling errors that may be made by a user.
  • the disadvantage of such a threshold embodiment is that matches may be found where they do not really exist. Further, depending on the implementation, matching may or may not be case sensitive. If a match if found, flow continues to step 510. If a match is not found, then flow jumps to point B in FIG. 5B, which is discussed below.
  • a match Assuming a match is found, information that corresponds to the string causing the match (i.e., that corresponds to one of the plurality of additional strings) is retrieved in step 510.
  • the procedure for retrieving the information is defined by the rule associated with the string causing the match.
  • This rule can initiate, for example, the dispatching of a search agent that retrieves the information (associated with the string causing the match).
  • An example of a search agent is a web site address, which can be defined by a uniform resource locator (URL) of a page of a web site.
  • a rule directs server 414 to query internal database 416 and/or external database 418.
  • a rule can be quite complex.
  • a rule can initiate the running of a program that retrieves and correlates various types of data.
  • a rule can use various types of conditions or factors to produce a result.
  • the rule can use a formula to generate the valuation of a commodity.
  • the information can then be sent to the client device 408 of the user that sent the request, as shown in step 512.
  • server 414 receives a request from client device 408 (step 504).
  • the request which in this case consists of the string "YANKS"
  • the request was then sent from client device 408 to server 414 when the user pressed SEND, ENTER, or the like.
  • server414 After receiving the request consisting of the string "YANKS", server414 searches for a match for "YANKS” (step 506).
  • server 414 searches a plurality of lists that include a quote list 604, a sports list 608 and a smart list 612.
  • Each list 604, 608 and 612 includes a plurality of strings as shown in FIG. 6A.
  • quote list 604 includes strings “APPLE COMPUTER INC.”, "APPLE”, “APPLE STOCK”, “APPLE QUOTE”, “APPLE INC”, “MICROSOFT”, “MICRO SOFT”, “MSFT” and “M SOFT”.
  • the strings in quote list 604 are associated with rules that define how server 414 is to retrieve the information associated with the string.
  • rule 2 "MICRO SOFT”, "MSFT” and “M SOFT” are each associated with the same rule (i.e.. rule 2), if a request consists of any of these strings, the same rule (i.e., rule 2) will be used by server 1 14 to retrieve information (e.g . a stock quote for Microsoft Corp.).
  • server 414 will find a match for the string "YANKS” when it searches sports list 608. (Thus, for this example the answer to step 508 is YES and flow continues to step 510.) After finding a match for "YANKS", server 414 will use the corresponding rule (i.e., rule 3) in list 608 to retrieve information (step 510).
  • Rule 3 can include, for example, the URL
  • rule 3 will cause server 414 to retrieve, from the CNN Sports Illustrated web site, today's score of the New York Yankees' baseball game.
  • rule 3 directs server 414 to retrieve today's score of the New York Yankees baseball game from internal database 416, which is constantly updated with all sporting event scores.
  • rule 3 directs server 414 to retrieve the score information from external database 430. After retrieving the appropriate information, server 414 can then forward the information (in this case, today's score of the New York Yankees baseball game) to client device 408 (step 512).
  • Server 414 can format and/or filter the information prior to sending it to client device 408.
  • the first string is stored, for example, in a suspense list 616 (shown in FIG. 6B) consisting of those strings for which matches have not been found.
  • Server 414 then monitors one or more further requests that immediately follow the first request (for which a match was not found). The precise number of further requests that server 414 monitors is implementation specific. If a match is found for a string of one of the further requests (i.e., if the answer to step 518 is YES), the first string is added to the plurality of additional strings (e.g., to one of the lists of strings) in step 520.
  • server 414 associates the first string (for which a match was not found) with the same rule for retrieving information that is associated with the further string that caused the match.
  • server 414 receives the request consisting of the first string "YANKES” from client device 408 (step 504).
  • Server 414 does not find a match for "YANKES” when searching (step 506) lists 604, 608 and 612 (i.e., the answer to step 508 is NO). Accordingly, server 414 stores the "YANKES” string (step 514) in suspense list 616 and then monitors further requests that immediately follow the request consisting of string "YANKES” (step 516).
  • server 414 finds a match for "YANKS” in sports list 608 (i.e., the answer to step 518 is YES). Server 414 then proceeds to retrieve the relevant information using rule 3, and sends the retrieved information to client device 408 (i.e. , as if "YANKS" is the string of the first request and steps 504, 506, 510 and 512 are performed). Server 414 can filter and/or format the retrieved information before forwarding it to client device 408. Alternatively or additionally, server 414 can use the retrieved information to calculate further information, and then send the further information to client device 408.
  • server 414 adds the first string "YANKES” to the plurality of additional strings.
  • server 414 adds "YANKES” to smart list 612.
  • Server 414 then associates "YANKES” with the rule (i.e., rule 3) associated with additional string that caused the match (i.e., "YANKS”).
  • server 414 can add "YANKES” to sports list 608.
  • an advantage of adding strings to smart list 612 is that each user can have its own smart list that server 414 accesses only for the particular user.
  • server 414 can maintain a smart list for each user by associating each smart list with a unique identifier (e.g., ESN, MIN, MAN). Since each request includes a unique identifier, server 414 knows which smart list to search. In one embodiment, server 414 searches the non user specific list(s) prior to searching the user specific lists(s).
  • a unique identifier e.g., ESN, MIN, MAN
  • server 414 when a match is found for one of the further requests (e.g. , "YANKS") that immediately follows the request consisting of the string for which a match was not found (e.g. , "YANKES"), server 414 sends a confirmation message to client device 408.
  • This confirmation message can be, for example, "Do you want the same information when you enter YANKS or YANKES?".
  • steps 520 and 522 are only performed if the user of client device 408 answers YES to the confirmation message.
  • server 414 can avoid associating a string with a rule for retrieving the wrong information. Additionally, in the manner described above, server 414 can adapt to misspellings (e.g., "YANKES”. instead of "YANKEES” or "YANKS”) and/or to unique words that users may employ to request information.
  • misspellings e.g., "YANKES”. instead of "YANKEES” or "YANKS”
  • server 414 if server 414 does not find a match while monitoring one of the further requests immediately following the first request (i.e., if the answer to step 518 is NO) then flow jumps to point C in FIG. 5C. Flow may also jump to point C if the user of client device 408 answered NO to a confirmation message, as discussed above.
  • step 524 server 414 and/or a system administrator analyzes those strings for which a match was not found. Such unmatched strings could have been stored in suspense list 616.
  • step 524 can occur as soon as the answer to step 508 is NO. That is, if the answer to step 508 is NO, flow can jump right to point C of FIG. 5C, rather than to point B of FIG.
  • server 414 analyzes each unmatched string in an attempt to infer what information was desired by the user that sent the string. For example, if the unmatched string is "MICROST" (which can be a misspelling of "MICROSOFT” or a unique word that a user employs to request information regarding Microsoft, Corp.), it can be inferred that the information that was desired was a stock quote for Microsoft Corp.. In one embodiment, this can be confirmed through communications with the user that sent the request consisting of the string "MICROST".
  • MICROST can be a misspelling of "MICROSOFT” or a unique word that a user employs to request information regarding Microsoft, Corp.
  • server 414 After the desired information is inferred, server 414 then adds the unmatched string to the plurality of additional strings (e.g., to smart list 616) in step 526, and associates the string with a rule for retrieving information in step 528. In this manner, the unmatched strings that were stored in suspense list 616 are added (with rules) to the plurality of additional strings (e.g.. to smart list 616). Accordingly, server 414 will find a match the next time it receives a request consisting of a string that previously did not produce a match (e.g.,
  • server 414 continually and dynamically learns what information to retrieve and send in response to freeform requests.
  • Requests can of course relate to things other than stock quotes or sports scores. For example, requests can relate to movies, weather, exchange rates, airline schedules, and the like. Examples of information sources 432 from which server 414 can retrieve information include Reuters, which is a well known leading financial and news provider, and GovPX, which provides Treasury market pricing. A data source that maintains foreign exchange information is Garvin Information Systems, LLC, of New York, NY, who provides real-time data feeds for spot foreign exchange rates, spot cross rates, currency forward rates, and the like.
  • the present invention can be used to allow a user to receive a desired result in a number of different ways.
  • receipt of a desired result e.g., the Yankees score
  • Server 414 can perform specific features of the present invention using server controllers, which in effect comprise a computer system.
  • server controllers which in effect comprise a computer system.
  • communication-specific hardware can be used to implement the present invention, the following description of a general purpose computer system is provided for completeness.
  • the present invention is preferably implemented in software.
  • the invention may be implemented using hardware or a combination of hardware and software. Consequently, the invention may be implemented in a computer system or other processing system.
  • An example of such a computer system 700 is shown in FIG. 7.
  • client and server applications each execute on distinct computer systems
  • the computer system 700 includes one or more processors, such as processor 704.
  • the processor 704 is connected to a communication infrastructure 706 (for example, a bus or network).
  • a communication infrastructure 706 for example, a bus or network.
  • Computer system 700 also includes a main memory 708, preferably random access memory (RAM), and may also include a secondary memory 710.
  • the secondary memory 710 may include, for example, a hard disk drive 712 and/or a removable storage drive 714, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc.
  • the removable storage drive 714 reads from and/or writes to a removable storage unit 718 in a well known manner.
  • Removable storage unit 718 represents a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive 714.
  • the removable storage unit 718 includes a computer usable storage medium having stored therein computer software and/or data.
  • secondary memory 710 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 700.
  • Such means may include, for example, a removable storage unit 722 and an interface 720.
  • Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 722 and interfaces 720 which allow software and data to be transferred from the removable storage unit 722 to computer system 700.
  • Computer system 700 may also include a communications interface 724.
  • Communications interface 724 allows software and data to be transferred between computer system 700 and external devices. Examples of communications interface 724 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc.
  • Software and data transferred via communications interface 724 are in the form of signals 728 which may be electronic, electromagnetic, optical or other signals capable of being received by communications interface 724. These signals 728 are provided to communications interface 724 via a communications path 726.
  • Communications path 726 carries signals 728 and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels.
  • computer program medium and “computer usable medium” are used to generally refer to media such as removable storage drive 714, a hard disk installed in hard disk drive 712, and signals 728.
  • Computer program products are means for providing software to computer system 700.
  • Computer programs also called computer control logic
  • Computer programs are stored in main memory 708 and/or secondary memory 710.
  • Computer programs may also be received via communications interface 724.
  • Such computer programs when executed, enable the computer system 700 to implement the present invention as discussed herein.
  • the computer programs when executed, enable the processor 704 to implement the process of the present invention. Accordingly, such computer programs represent controllers of the computer system 700.
  • the software may be stored in a computer program product and loaded into computer system 700 using removable storage drive 714, hard drive 712 or communications interface 724.
  • features of the invention are implemented primarily in hardware using, for example, hardware components such as application specific integrated circuits (ASICs).
  • ASICs application specific integrated circuits
  • features of the invention can be implemented using a combination of both hardware and software.

Abstract

A method and system for providing information that is responsive to a freeform request. The method includes the step of receiving a first request from a client device of a user, wherein the first request includes a first string. The method also includes searching a plurality of additional strings for a match for the first string, wherein the plurality of additional strings are associated with rules for retrieving information. If a match is found for the first string, information corresponding to the additional string causing the match is retrieved. The retrieving is accomplished using the rule associated with the additional string causing the match. The retrieved information can then be sent to the first user. If a match is not found for the first string, the first string is stored and one or more further requests immediately following the first request are monitored. If a match is found for one of the additional requests, the first string is added to the plurality of additional strings and the first string is associated with the same rule for retrieving information that is associated with the further string causing the match.

Description

System and Method for Providing Information That Is Responsive to a Freeform Request
Background of the Invention
Field of the Invention
The present invention relates generally to communications, and more particularly to a system and method for providing information in client-server type systems.
Related Art
Most two way communications systems that provide information to users require a user to select from a list of topics that are provided in, for example, a pull down menu or a list-box. Examples of a pull down menu 102 and a list box 202 are shown in FIGS. 1 and 2, respectively. Such systems shall be collectively referred to herein as menu driven information systems. When using these menu driven systems, users are limited to selecting a topic from a list or menu. Requiring users to select from a list or menu does provide certain benefits. For example, with menu driven systems, users are prevented from entering requests that a system does not understand. Additionally, menu driven systems are relatively simple to organize and program. However, menu driven systems can be extremely tedious to operate. This is especially the case where there are a significant number of topics that users can choose from. More specifically, in systems offering a significant number of topics to choose from, users are typically required to navigate through multiple levels of lists or nested menus. For example, if a user wants to learn the score of a baseball game (e.g., a New York Yankees baseball game), the user may have to navigate through up to seven or more levels to receive the desired information (e.g., the game results). An example of multiple pull-down menu levels is shown at 302 in FIG. 3. It is often difficult, tedious and time consuming to navigate such menus or list-boxes, especially when using small handheld devices.
One type of two-way communication system includes a client device and a server both coupled to a network. The client device sends client requests to the server, and the server sends server responses to the client device. The use of nested menus in such a client-server environment disadvantageously adds to the message traffic between the server and client, namely, the amount of characters the server sends to the client device to provide menus to the user at the client device. Such a menu-driven client-server system is typically rigid and inefficient in its implementation because a user of the client device must be presented with a large enough number of menu choices to enable the user to make only one or two desired selections, from perhaps as many as several thousand available menu choices. Presenting such a large number of menu choices can waste program memory. In systems wherein the large number of menu selections are transmitted to the client device, transmitting the menu selections once and/or repetitively wastes valuable transmission bandwidth, and because such transmissions are not instantaneous, wastes the user's time.
Some systems provide a "bookmarking" (also known as "favorites") feature allowing the user to save frequently accessed addresses (i.e., sites) or "bookmarks", to minimize repetitive menu traversals. Use of the bookmarking feature disadvantageously requires the user to traverse at least one menu sequence and to make a positive selection action to establish each bookmarked entry. Although bookmarking usually reduces the number of nested menus a user must traverse to arrive at a favorite site, the user must still navigate through at least a bookmarked list or menu.
Accordingly, there is a need for an easier and more efficient system and method for providing information and selectable options to users. Summary of the Invention
The present invention is directed toward a system and method for providing information that is responsive to freeform requests. According to one embodiment, the method includes the step of receiving a first request from a client device of a user, wherein the first request includes a first string. The method also includes searching a plurality of additional strings for a match for the first string, wherein the plurality of additional strings are associated with rules for retrieving information. If a match is found for the first string, information corresponding to the additional string causing the match is retrieved. The retrieving is accomplished using the rule associated with the additional string causing the match. Once the information is retrieved, at least a portion of the retrieved information can be sent to the user. Alternatively, further information is derived from the retrieved information and at least a portion of the further information is sent to the user. If a match is not found for the first string, the first string is stored and one or more further requests immediately following the first request are monitored. If a match is found for one of the additional requests, the first string is added to the plurality of additional strings and the first string is associated with the same rule for retrieving information that is associated with the further string causing the match.
In one embodiment, if a match is not found for the first string the first string is analyzed to infer what information was desired by the user. Then, the first string is added to the plurality of additional strings and associated with a rule for retrieving the information that was inferred. Additional features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with reference to the accompanying drawings. Brief Description of the Figures
The features, objects, and advantages of the present invention will become more apparent from the detailed description set fourth below when taken in conjunction with the drawings in which like reference characters identify corresponding elements throughout, and wherein:
FIG. 1 is an example of a list used by conventional systems to provide information to users;
FIG. 2 is an example of a pull-down menu used by conventional systems to provide information to users; FIG. 3 illustrates multiple levels of a menu driven system that a user may be required to navigate through to receive information;
FIGS. 4 A and 4B illustrate exemplary communications systems in which the present invention is useful;
FIG. 4C illustrates an exemplary client device for use with the present invention;
FIGS.5 A, 5B and 5C are flow diagrams depicting the high level operation of an embodiment of the present invention;
FIGS. 6 A, 6B and 6C show lists that are used to explain an embodiment of the present invention; and FIG. 7 is an exemplary computer system, which can be used to perform the operations of the present invention.
Detailed Description of the Preferred Embodiments
I. Introduction
The present invention relates to a system and method that provides information to a client device (e.g., a two-way paging device, a wireless phone, a personal data assistant, or a desk top computer) in response to receiving a freeform request from the client device.
The present invention can be used in a two-way wireless communications system. Additionally, the present invention can be used in various other types of communications systems. For example, the present invention can be used with the Internet. In an embodiment where the present invention is used with the Internet, a client device can be, for example, a wireless device that wirelessly accesses the Internet (e.g., a PalmPilot® or a wireless phone) or a personal computer that is wired to the Internet. Preferred embodiments of the present invention are discussed in detail below. While specific steps, configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only.
II. Exemplary Communications Systems
An exemplary wireless communication system 400 in which the present invention is useful is illustrated in FIG. 4A. Communications system 400 includes a plurality of cell sites 402 each having a coverage area that is typically about 5 to 10 miles in diameter. A coverage area of one cell site often overlaps a portion of a coverage area of another cell site, which are illustrated for exemplary purposes by the hexagonal regions. Each cell site 402 includes an antenna 104 for transmitting and receiving messages to and from two-way wireless client devices 408 (e.g. , a two-way pager, a wireless phone, a hand held computing device) that are located within a geographic coverage area of the cell site 402. Alternatively, separate antennas may be used for sending and receiving messages, as would be apparent to a person skilled in the relevant art. Each cell 402 is coupled to communications network 410, which can be, for example, an
X.25 packet switched network. Communications network 410 may include, but is not limited to, land based links such as fiber optics or terrestrial microwave, and/or satellite based links, as would also be apparent to a person skilled in the relevant art.
Each cell site 402 communicates with a message system center (MSC) 420 that includes a subscriber database (also referred to as a user database) that maintains records of all subscribers (also referred to as users) on the system, a unique identity sequence for the subscriber's client device, and an indication of the cell site from which the client device last sent a message (such as an acknowledgment message or a request message). Preferably, communications between each cell cite 402 and MSC 420 is accomplished through communications network 410. Alternatively, each cell site 402 can have a dedicated link to MSC 420.
Communications network 410 can be coupled to a public switched telephone network (PSTN) 412 so that a message can be sent to and from client device 408 via PSTN 412. A message can also be sent from one client device 408 to another client device 408 using communications system 400.
In one embodiment, communications system 400 is the Bell South Wireless Data network (also known as the RAM Mobile Data network) or the ARDIS network, which are both well known two-way nationwide wireless packet data networks.
A client device (e.g., two-way wireless communications device) 408 typically identifies itself to MSC 420 by sending a registration or identification signal. Such signals include a data field including at least one unique identifier, such as a Mobile Identification Number (MIN), an Electronic Serial Number (ESN) and/or a Mobile Access Number (MAN). A MIN, which can be reprogrammed, is analogous to a telephone number. An ESN is hard-coded and fixed such that it difficult, if not impossible to change. A Mobile Access Number (MAN) is similar to an ESN in that it is hard-coded and fixed. Some client devices 408 include more than one unique identifier. The identification signal sent by client device 408 can include one or more of the above discussed unique identifiers, or any other similar unique identifier. Such identification information can be periodically transmitted by client device 408 and/or included with other types of messages sent by client device 408. Such unique identifiers can also be sent with each request sent by a client device 408. An optional function of MSC 420 is to determine whether the unique identifier of a client device is valid. A received unique identifier, such as a unique identity sequence comprising a string of digitally represented alphanumeric characters, can be compared to a maintained database of unique identifiers (i.e., MINs, ESNs, MANs) to detect fraud. MSC 420 can keep track of the approximate whereabouts of each client device 408 by keeping track of which cell site 402 a message, sent by a client device 408, originated. When MSC 420 is thus informed of the approximate whereabouts of each individual client device 408, it can later limit the number of cell sites 402 from which it transmits a message addressed to a particular client device 408. MSC 420 can even limit the transmission of a message to only one cell site 420 having a coverage area within which the particular client device 408 is believed to be located. The coverage area of a limited number of cell cites 402 (possibly only a single cell site or a last know site and its adjacent sites) shall be referred to as a targeted coverage area. Thus, the targeted area can be the area covered by a single cell site or a slightly larger area that is also covered by a few adjacent cell sites. This limited or "targetted" transmission is much more efficient than broadcast-type transmission where a message is transmitted from every cell site, regardless of a location of a client device 408 to which the message is addressed. Servers 414 (typically controlled by a service provider) are supported by communications system 400. That is, communications system 400 provides for message delivery between a server 414 and one or more client devices 408. Servers 414 can communicate directly with client devices 408 or indirectly with client devices 408 via communications network 410. Alternatively, servers 414 can communicate with communications network 410 throuεh PSTN 412. In one embodiment, a server 414 provides information to a client device 408 upon receiving a request from the client device 408. Additionally, servers 414 can initiate the sending of information to a client device 408. This can be done periodically or upon a triggering event. Additional details about the types of services and the information provided by services providers 414 are discussed below.
The present invention is also useful in data networks such as a local area network (LAN) or a wide area network (WAN). For example, the present invention is useful in the largest present day WAN, referred to as the Internet. The Internet is a world-wide set of interconnected computer networks that can be used to access a growing amount and variety of information electronically. One method of accessing information on the Internet is known as the World Wide Web (www, or the "web"). The web is a distributed, hypermedia system, and functions as a client-server based information presentation system. Information that is intended to be accessible over the web is generally stored in the form of
"pages" on servers (e.g. , general purpose computers). Users can access a web site using general-purpose computers, wireless hand held computing devices, Internet capable wireless phones (e.g., a Wireless Internet Protocol (WAP) enabled, Internet capable phone), and the like, referred to as clients, by specifying the uniform resource locator (URL) of the site. FIG. 4B is a network block diagram showing a plurality of clients 408 and servers 414 connected to the Internet 418.
When client device 408 sends a request to server 414, the request specifies, among other things, a destination address (e.g.. a URL) and a source address that can be used to identify a user. A part of the URL known as the Domain Name is passed to a domain server (DNS) to be translated to a network address. The network address specifies the Internet protocol (IP) address of the intended server 414. The client request is passed to the server 414 having the network address. The present invention can then be used to by server 414 to provide a response to the request. In one embodiment, the response is a web page. Servers 414 maintain or otherwise have access to local or remote databases that store and/or provide various types of data. For example, referring to FIG. 4A, remote databases 430 are maintained by data sources 432. FIG. 4A also shows a local database 416 that is maintained by server 414. Servers 414 can communicate with data sources 432 through dedicated links or through communications network 410, for example. The type and number of databases, and the form of communication of data between the servers 414 and the databases, is implementation specific.
The invention covers the ability of a server 414 to provide information to client devices 408 via a wireless communications system, which typically has a plurality of cell sites that are coupled to a communications network. The invention also covers the ability of a server 414 to provide information to client devices 408 via a wired communications system, or via a communications system consisting of a combination of wired and wireless links. For example, the communications systems of FIGS. 1A and IB can be coupled together.
The functions performed by a server 414 can comprise software running on one or more general purpose computers or on telecommunications-specific hardware. Alternatively, the combination of the software and hardware to accomplish the functions of the present invention can be conceptualized as a union of server controllers that each perform a discrete task, such as: receiving a request from a client device of a user; searching additional strings for a match; retrieving information using a rule associated with the additional string causing the match, or the like. One, two, or more of these discrete tasks can be performed by a single server controller. That is, the tasks performed by a first server controller and a second server controller can be performed by a single server controller and still be within the spirit and scope of the present invention. Alternatively, the discrete tasks can be performed by any number of server controllers. That is, the task performed by a single server controller can be performed by a first server controller and a second server controller. A further description of exemplary software and hardware controllers is provided below. III. Exemplary Client Devices
An exemplary two-way wireless communications client device 408 is illustrated in FIG. 4C. Client device 408 includes an antenna 442, a transmitter 444, a receiver 446, a microprocessor 448, a display 440 and a keypad 442. Transmitter 444 is controlled by microprocessor 448 and transmits messages using antenna 442. Messages received via communications system 400 are received through antenna 442 or a separate antenna (not shown). The received messages are routed from antenna 442 to receiver 446 and processed by microprocessor 448, for example. Display 450 can be a liquid crystal display and is used for displaying, to a user (also referred to as subscriber) of client device
408, information received via communications system 400. Display 450 can also display lists and/or menus from which a subscriber can make selections and perform various functions. Other methods of presenting the received information, such as aurally through a speaker or through another type of display, are not precluded. Keypad 452 can include as few as one button, but may also include an entire alphanumeric keypad, a touch pad, or can be integrated with a display as a touch screen display. Client device 408 also includes a memory 454 that can store software and/or data. Microprocessor 448 can write to and read from memory 454. In one embodiment, client device 408 is an Inter@ctive™ Pager 950 manufactured by Research In Motion (RIM), Limited, of Waterloo, Ontario, Canada. The RIM Inter@ctive pager (RIM pager) is a commercially available device that provides for two-way wireless communications. The RIM pager includes a 31 -key keypad, a roller wheel that is similar to a mouse, and a screen display with 8 lines of text by approximately 28 characters per line. In another embodiment, client device 408 is a Palm™ computing device, manufacture by 3Com Corporation, of Santa Clara, California. Client device 408 can also be a wireless communication device such as, but not limited to, a wireless telephone or a data transceiver. Client device 408 can be fixed, portable, or mobile, such -l i¬
as a mobile telephone. Of course the use of other two-way communications devices is within the spirit and scope of the present invention.
For some embodiments, client device 408 can be a personal computer that, for example, communicates with servers 414 via a network such as the Internet 418. Client device 408 can also be a personal computing device that wirelessly accesses the Internet. Those of ordinary skill in the art will envision other implementations of client device 408 and appreciate that they are encompassed by the present invention.
IN. Preferred Embodiment of the Invention
An embodiment of the present invention shall be explained with reference to the flow diagrams of FIGS. 5A-5C. Referring first to FIG. 5 A, the method of an embodiment of the present invention begins when a request is received at server 414 from a client device (e.g., two-way pager or a cell phone), as shown in step 504. Each request consists of a string, which can be, for example, one or more alphanumeric characters, or the like. A string can also comprise more than one group of alphanumeric characters (e.g., two alphanumeric words, such as "yankees score"). The string is entered by a user on client device 408 and forwarded to server 414 when the user, for example, presses send.
After the request is received in step 504, in step 506 a plurality of additional strings (e.g., stored in one or more lists of strings) are searched to determine if the string of the request (referred to hereafter as the first string) matches a string in the plurality of additional strings. In one embodiment, the plurality of additional strings are organized in a list. In another embodiment, the plurality of additional strings are organized in a plurality of lists. In the multiple list embodiment, the plurality of lists can be searched in a logical (e.g., a predetermined) order. Regardless of how they are organized or searched, each string of the plurality of additional strings is associated with a rule for retrieving information. Each string may have its own rule. Alternatively, two or more of the plurality of additional strings can be associated with the same rule for retrieving information.
In step 508, a determination is made as to whether a match is found for the first string. In one embodiment, the first string must be identical to one of the plurality of strings for a match to occur. In a more complex embodiment, a match may be found if the first string and one of the plurality of strings match beyond a predefine threshold (e.g. , 90% of the alphanumeric characters are the same). An embodiment that uses such a threshold can account for spelling errors that may be made by a user. However, the disadvantage of such a threshold embodiment is that matches may be found where they do not really exist. Further, depending on the implementation, matching may or may not be case sensitive. If a match if found, flow continues to step 510. If a match is not found, then flow jumps to point B in FIG. 5B, which is discussed below.
Assuming a match is found, information that corresponds to the string causing the match (i.e., that corresponds to one of the plurality of additional strings) is retrieved in step 510. The procedure for retrieving the information is defined by the rule associated with the string causing the match. This rule can initiate, for example, the dispatching of a search agent that retrieves the information (associated with the string causing the match). An example of a search agent is a web site address, which can be defined by a uniform resource locator (URL) of a page of a web site. In another embodiment, a rule directs server 414 to query internal database 416 and/or external database 418. In still another embodiment, a rule can be quite complex. For example, a rule can initiate the running of a program that retrieves and correlates various types of data. Alternatively or additionally, a rule can use various types of conditions or factors to produce a result. For example, the rule can use a formula to generate the valuation of a commodity. These are just a few example of rules, and are not meant as limitations to the types of rules that can be associated with a string. Further, different strings (e.g. , in a list of strings) can be related to different types of rules (e.g., one rule can dispatch a URL, while another rule can cause a query of internal database 430).
Once the information (associated with the string causing the match) is retrieved, the information can then be sent to the client device 408 of the user that sent the request, as shown in step 512.
The above described embodiment can be illustrated with reference to the diagram in FIG. 6 A. First, server 414 receives a request from client device 408 (step 504). The request, which in this case consists of the string "YANKS", was entered by a user of client device 408 using, for example, a key pad of client device 408. The request was then sent from client device 408 to server 414 when the user pressed SEND, ENTER, or the like.
After receiving the request consisting of the string "YANKS", server414 searches for a match for "YANKS" (step 506). In this example, server 414 searches a plurality of lists that include a quote list 604, a sports list 608 and a smart list 612. Each list 604, 608 and 612 includes a plurality of strings as shown in FIG. 6A. For example, quote list 604 includes strings "APPLE COMPUTER INC.", "APPLE", "APPLE STOCK", "APPLE QUOTE", "APPLE INC", "MICROSOFT", "MICRO SOFT", "MSFT" and "M SOFT". The strings in quote list 604 are associated with rules that define how server 414 is to retrieve the information associated with the string. Notice that many strings are associated with the same rule. For example, "APPLE COMPUTER INC.". "APPLE", "APPLE STOCK", "APPLE QUOTE" and "APPLE INC" are each associated with rule 1. Accordingly, if a request consists of any of these strings, the same rule (i. e. , rule 1 ) will be used by server 414 to retrieve information (e.g. , a stock quote for Apple Computer Inc.). Similarly, because "MICROSOFT",
"MICRO SOFT", "MSFT" and "M SOFT" are each associated with the same rule (i.e.. rule 2), if a request consists of any of these strings, the same rule (i.e., rule 2) will be used by server 1 14 to retrieve information (e.g . a stock quote for Microsoft Corp.). In this example, server 414 will find a match for the string "YANKS" when it searches sports list 608. (Thus, for this example the answer to step 508 is YES and flow continues to step 510.) After finding a match for "YANKS", server 414 will use the corresponding rule (i.e., rule 3) in list 608 to retrieve information (step 510). Rule 3 can include, for example, the URL
"http://cnnsi.com/baseball/mlb/al/scoreboards/today.html/yankees". In this example, rule 3 will cause server 414 to retrieve, from the CNN Sports Illustrated web site, today's score of the New York Yankees' baseball game. In another example, rule 3 directs server 414 to retrieve today's score of the New York Yankees baseball game from internal database 416, which is constantly updated with all sporting event scores. In another example, rule 3 directs server 414 to retrieve the score information from external database 430. After retrieving the appropriate information, server 414 can then forward the information (in this case, today's score of the New York Yankees baseball game) to client device 408 (step 512). Server 414 can format and/or filter the information prior to sending it to client device 408.
Returning to FIG. 6B and the flow diagram of FIG. 5A, assume the received request consists a first string "YANKES" (as opposed to "YANKS" or "YANKEES"), and server 414 does not find a match for the first string. If this is the case, flow will continue to point B in FIG 5B. Turning to FIG. 5B, in step
514 the first string is stored, for example, in a suspense list 616 (shown in FIG. 6B) consisting of those strings for which matches have not been found. Server 414 then monitors one or more further requests that immediately follow the first request (for which a match was not found). The precise number of further requests that server 414 monitors is implementation specific. If a match is found for a string of one of the further requests (i.e., if the answer to step 518 is YES), the first string is added to the plurality of additional strings (e.g., to one of the lists of strings) in step 520. In step 522, server 414 associates the first string (for which a match was not found) with the same rule for retrieving information that is associated with the further string that caused the match. This can be illustrated with reference to FIG. 6B. Still referring to FIG. 6B, the request consisting of the first string "YANKES" is received by server 414 from client device 408 (step 504). Server 414 does not find a match for "YANKES" when searching (step 506) lists 604, 608 and 612 (i.e., the answer to step 508 is NO). Accordingly, server 414 stores the "YANKES" string (step 514) in suspense list 616 and then monitors further requests that immediately follow the request consisting of string "YANKES" (step 516).
Assume the next request received by server 414 from client device 408 is a request consisting of the string "YANKS". Server 414 finds a match for "YANKS" in sports list 608 (i.e., the answer to step 518 is YES). Server 414 then proceeds to retrieve the relevant information using rule 3, and sends the retrieved information to client device 408 (i.e. , as if "YANKS" is the string of the first request and steps 504, 506, 510 and 512 are performed). Server 414 can filter and/or format the retrieved information before forwarding it to client device 408. Alternatively or additionally, server 414 can use the retrieved information to calculate further information, and then send the further information to client device 408.
Flow then continues to step 520, where server 414 adds the first string "YANKES" to the plurality of additional strings. Referring to FIG. 6C, server 414 adds "YANKES" to smart list 612. Server 414 then associates "YANKES" with the rule (i.e., rule 3) associated with additional string that caused the match (i.e., "YANKS"). In an alternative embodiment, rather than adding the string "YANKES" to smart list 612, server 414 can add "YANKES" to sports list 608. However, an advantage of adding strings to smart list 612 (rather than sports list 608) is that each user can have its own smart list that server 414 accesses only for the particular user. This enables each user to use their own freeform requests (e.g. , "YANKES") without effecting responses by server 414 to requests made by other users. More specifically, server 414 can maintain a smart list for each user by associating each smart list with a unique identifier (e.g., ESN, MIN, MAN). Since each request includes a unique identifier, server 414 knows which smart list to search. In one embodiment, server 414 searches the non user specific list(s) prior to searching the user specific lists(s).
In one embodiment, when a match is found for one of the further requests (e.g. , "YANKS") that immediately follows the request consisting of the string for which a match was not found (e.g. , "YANKES"), server 414 sends a confirmation message to client device 408. This confirmation message can be, for example, "Do you want the same information when you enter YANKS or YANKES?". In this manner, steps 520 and 522 are only performed if the user of client device 408 answers YES to the confirmation message. In one embodiment, if the user of client device 408 answers NO, flow jumps to point C in FIG. 5C, which is discussed below. In this manner, server 414 can avoid associating a string with a rule for retrieving the wrong information. Additionally, in the manner described above, server 414 can adapt to misspellings (e.g., "YANKES". instead of "YANKEES" or "YANKS") and/or to unique words that users may employ to request information.
Returning to FIG. 5B, if server 414 does not find a match while monitoring one of the further requests immediately following the first request (i.e., if the answer to step 518 is NO) then flow jumps to point C in FIG. 5C. Flow may also jump to point C if the user of client device 408 answered NO to a confirmation message, as discussed above.
Turning to FIG. 5C, in step 524 server 414 and/or a system administrator analyzes those strings for which a match was not found. Such unmatched strings could have been stored in suspense list 616. In one embodiment, step 524 can occur as soon as the answer to step 508 is NO. That is, if the answer to step 508 is NO, flow can jump right to point C of FIG. 5C, rather than to point B of FIG.
5B. In step 514, server 414 analyzes each unmatched string in an attempt to infer what information was desired by the user that sent the string. For example, if the unmatched string is "MICROST" (which can be a misspelling of "MICROSOFT" or a unique word that a user employs to request information regarding Microsoft, Corp.), it can be inferred that the information that was desired was a stock quote for Microsoft Corp.. In one embodiment, this can be confirmed through communications with the user that sent the request consisting of the string "MICROST".
After the desired information is inferred, server 414 then adds the unmatched string to the plurality of additional strings (e.g., to smart list 616) in step 526, and associates the string with a rule for retrieving information in step 528. In this manner, the unmatched strings that were stored in suspense list 616 are added (with rules) to the plurality of additional strings (e.g.. to smart list 616). Accordingly, server 414 will find a match the next time it receives a request consisting of a string that previously did not produce a match (e.g.,
"MICROST"). In this manner, server 414 continually and dynamically learns what information to retrieve and send in response to freeform requests.
Requests can of course relate to things other than stock quotes or sports scores. For example, requests can relate to movies, weather, exchange rates, airline schedules, and the like. Examples of information sources 432 from which server 414 can retrieve information include Reuters, which is a well known leading financial and news provider, and GovPX, which provides Treasury market pricing. A data source that maintains foreign exchange information is Garvin Information Systems, LLC, of New York, NY, who provides real-time data feeds for spot foreign exchange rates, spot cross rates, currency forward rates, and the like.
In the example discussed above, it is assumed that the same information (i.e., the score of the New York Yankees game) is being requested whether a user enters the strings "YANKS", "YANKEES" or "NYY". because Rule 3 is used to retrieve information in each of these instances (see FIG. 6C). However, this need not be the case. That is, the string "YANKS" can correspond to a different rule than the string "YANKEES", if that is the desire of a user. Thus, for example, by entering "YANKS" instead of "YANKEES", a user can receive different information about the N.Y. Yankees, or simply the same information in a different format. Therefore, the present invention can be used to allow a user to receive a desired result in a number of different ways. For example, receipt of a desired result, e.g., the Yankees score, can be achieved by specifying different formats of the desired result, e.g., "YANKS", "YANKEES", "NYY", etc.
D. Hardware and Software Implementations
Server 414 can perform specific features of the present invention using server controllers, which in effect comprise a computer system. Although communication-specific hardware can be used to implement the present invention, the following description of a general purpose computer system is provided for completeness. The present invention is preferably implemented in software.
Alternatively, the invention may be implemented using hardware or a combination of hardware and software. Consequently, the invention may be implemented in a computer system or other processing system. An example of such a computer system 700 is shown in FIG. 7. In the present invention, for example, client and server applications each execute on distinct computer systems
700. The computer system 700 includes one or more processors, such as processor 704. The processor 704 is connected to a communication infrastructure 706 (for example, a bus or network). Various software implementations are described in terms of this exemplary computer system. After reading this description, it will become apparent to a person skilled in the relevant art how to implement the invention using other computer systems and/or computer architectures.
Computer system 700 also includes a main memory 708, preferably random access memory (RAM), and may also include a secondary memory 710. The secondary memory 710 may include, for example, a hard disk drive 712 and/or a removable storage drive 714, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc. The removable storage drive 714 reads from and/or writes to a removable storage unit 718 in a well known manner. Removable storage unit 718, represents a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive 714. As will be appreciated, the removable storage unit 718 includes a computer usable storage medium having stored therein computer software and/or data. In alternative implementations, secondary memory 710 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 700. Such means may include, for example, a removable storage unit 722 and an interface 720. Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 722 and interfaces 720 which allow software and data to be transferred from the removable storage unit 722 to computer system 700.
Computer system 700 may also include a communications interface 724. Communications interface 724 allows software and data to be transferred between computer system 700 and external devices. Examples of communications interface 724 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and data transferred via communications interface 724 are in the form of signals 728 which may be electronic, electromagnetic, optical or other signals capable of being received by communications interface 724. These signals 728 are provided to communications interface 724 via a communications path 726. Communications path 726 carries signals 728 and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels.
In this document, the terms "computer program medium" and "computer usable medium" are used to generally refer to media such as removable storage drive 714, a hard disk installed in hard disk drive 712, and signals 728. These computer program products are means for providing software to computer system 700. Computer programs (also called computer control logic) are stored in main memory 708 and/or secondary memory 710. Computer programs may also be received via communications interface 724. Such computer programs, when executed, enable the computer system 700 to implement the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor 704 to implement the process of the present invention. Accordingly, such computer programs represent controllers of the computer system 700. Where the invention is implemented using software, the software may be stored in a computer program product and loaded into computer system 700 using removable storage drive 714, hard drive 712 or communications interface 724.
In another embodiment, features of the invention are implemented primarily in hardware using, for example, hardware components such as application specific integrated circuits (ASICs). Implementation of the hardware state machine so as to perform the functions described herein will be apparent to persons skilled in the relevant art(s).
In yet another embodiment, features of the invention can be implemented using a combination of both hardware and software.
N. Conclusion
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example, and not limitation. It will be apparent to persons skilled in the relevant art that various changes in form and detail can be made therein without departing from the spirit and scope of the invention. The present invention has been described above with the aid of functional building blocks illustrating the performance of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Any such alternate boundaries are thus within the scope and spirit of the claimed invention. One skilled in the art will recognize that these functional building blocks can be implemented by discrete components, application specific integrated circuits, processors executing appropriate software and the like or any combination thereof. Thus, the breadth and scope of the present invention should not be limited by any of the above- described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents. All cited patent documents and publications in the above description are incorporated herein by reference.

Claims

What Is Claimed Is:
1. A method for providing a responsive reply to a freeform request, comprising the steps of: a. receiving a first request from a client device of a user, said first request comprising a first string; b. searching a plurality of additional strings for a match for said first string, wherein said plurality of additional strings are associated with rules for retrieving information; and c. retrieving, if a match is found for said first string, information corresponding to the additional string causing the match, wherein said retrieving is accomplished using the rule associated with the additional string causing the match.
2. The method of claim 1, further comprising the steps of: d. sending to said client device of said user, if a match is found for said first string, at least a portion of the retrieved information corresponding to the additional string causing the match.
3. The method of claim 1, further comprising the step of: d. deriving further information from the retrieved information if a match is found for said first string: and e. sending the further information to said client device of the user.
4. The method of claim 1, further comprising the step of: d. storing said first string if a match is not found for said first string.
5. The method of claim 4, further comprising the steps of: e. monitoring one or more further requests received from said user that immediately follow said first request; f. adding said first string to said plurality of additional strings, if a match is found for one of said further requests; and g. associating said first string with the same rule for retrieving information that is associated with the further string causing the match.
6. The method of claim 5, further comprising the steps of: h. receiving a later request from said client device of said user, said later request comprising said first string; and i. retrieving, if a match was found for one of said further requests, information corresponding to said first string, wherein said retrieving is accomplished using the rule associated with the further string causing the match.
7. The method of claim 4, further comprising the steps of: e. analyzing said first string to infer what information was desired by said user; f. adding said stored first string to said plurality of additional strings; and g. associating said first string with a rule for retrieving the information that was that was inferred in step e.
8. The method of claim 1, wherein said plurality of additional strings are stored in a plurality of lists that include one or more of said additional strings, and wherein step b. further comprises searching said plurality of lists in a predetermined order.
9. The method of claim 1. wherein the rule for retrieving information associated with the additional string causing the match includes the step of:
(I) dispatching a search agent to retrieve the information associated with the additional string causing the match.
10. The method of claim 9, wherein the search agent comprises a web site address.
1 1. The method of claim 1 , wherein the rule for retrieving information associated with the additional string causing the match includes the step of:
(I) querying a database to retrieve the information associated with the additional string causing the match.
12. The method of claim 1, further comprising the step, between steps a. and b., of: identifying said user based on said request, and wherein at least a portion of said plurality of additional strings searched in step b. are specific to said user.
13. A system for providing a responsive reply to a freeform request, comprising: a first server controller adapted to receive a first request from a client device of a user, said first request comprising a first string; a second server controller adapted to search a plurality of additional strings for a match for said first string, wherein said plurality of additional strings are associated with rules for retrieving information; and a third server controller adapted to retrieve information corresponding to one of said additional strings causing a match, wherein said retrieving is accomplished using the rule associated with the one of said additional strings causing the match.
14. The system of claim 13, further comprising: a fourth server controller adapted to send to said client device of said user, if a match is found for said first string, at least a portion of the retrieved information corresponding to the one of said additional strings causing the match.
15. The system of claim 13, further comprising: a fourth server controller adapted to derive further information from the retrieved information, if a match is found for said first string; and a fifth server controller adapted to send the further information to said client device of said user.
16. The system of claim 13, further comprising: a sixth server controller adapted to store said first string if a match is not found for said first string.
17. The system of claim 16, further comprising: a seventh server controller adapted to monitor one or more further requests received from said user that immediately follow said first request; an eighth server controller adapted to add said first string to said plurality of additional strings, if a match is found for a string of one of said further requests; and a ninth server controller adapted to associate said first string with the same rule for retrieving information that is associated with the string of the further request causing the match.
18. The system of claim 17, wherein, if said first server controller receives a later request comprising said first string from said client device of said user, and if said seventh server controller finds a match for a string of one of said further requests, then said third server controller uses the rule associated with the string of the further request causing the match to retrieve information corresponding to said first string.
19. The system of claim 16, further comprising: a seventh server controller adapted to analyze said first string to infer what information was desired by said user; and an eight server controller adapted to add said stored first string to said plurality of additional strings; and a ninth server controller adapted to associate said first string with a rule for retrieving the information that was that was inferred by said seventh server controller.
20. The system of claim 13, wherein said plurality of additional strings are stored in a plurality of lists that include one or more of said additional strings, and wherein said second server controller searches said plurality of lists in a predetermined order.
21. The system of claim 13, wherein the rule for retrieving information associated with the additional string causing the match includes a search agent that causes said third server controller to dispatch a search agent to retrieve said information associated with the additional string causing the match.
22. The system of claim 21, wherein said search agent comprises a web site address.
23. The system of claim 13, wherein the rule for retrieving information associated with the additional string causing the match causes said third server controller to query a database to retrieve the information associated with the additional string causing the match.
24. The system of claim 13. further comprising a server controller adapted to identify said user based on said request, and wherein at least a portion of said plurality of additional strings searched by said second server controller are specific to said user.
PCT/US2000/041059 2000-03-10 2000-10-04 System and method for providing information that is responsive to a freeform request WO2001069882A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001216302A AU2001216302A1 (en) 2000-03-10 2000-10-04 System and method for providing information that is responsive to a freeform request

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US52316300A 2000-03-10 2000-03-10
US09/523,163 2000-03-10

Publications (2)

Publication Number Publication Date
WO2001069882A2 true WO2001069882A2 (en) 2001-09-20
WO2001069882A3 WO2001069882A3 (en) 2002-03-14

Family

ID=24083897

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/041059 WO2001069882A2 (en) 2000-03-10 2000-10-04 System and method for providing information that is responsive to a freeform request

Country Status (2)

Country Link
AU (1) AU2001216302A1 (en)
WO (1) WO2001069882A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8014768B2 (en) 2003-04-30 2011-09-06 Disney Enterprises, Inc. Mobile phone multimedia controller

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998047270A2 (en) * 1997-04-16 1998-10-22 Nokia Networks Oy Data service in a mobile communications network
WO1999022488A2 (en) * 1997-10-28 1999-05-06 D & I Systems, Inc. Method and system for accessing information on a network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998047270A2 (en) * 1997-04-16 1998-10-22 Nokia Networks Oy Data service in a mobile communications network
WO1999022488A2 (en) * 1997-10-28 1999-05-06 D & I Systems, Inc. Method and system for accessing information on a network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HARTMAN J H ET AL: "Index-based hyperlinks" COMPUTER NETWORKS AND ISDN SYSTEMS, NORTH HOLLAND PUBLISHING. AMSTERDAM, NL, vol. 29, no. 8-13, 1 September 1997 (1997-09-01), pages 1129-1135, XP004095310 ISSN: 0169-7552 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8014768B2 (en) 2003-04-30 2011-09-06 Disney Enterprises, Inc. Mobile phone multimedia controller

Also Published As

Publication number Publication date
WO2001069882A3 (en) 2002-03-14
AU2001216302A1 (en) 2001-09-24

Similar Documents

Publication Publication Date Title
US20030046291A1 (en) System, method and apparatus for utilizing transaction databases in a client - server environment
EP1274264B1 (en) Location-based content delivery
US6304746B1 (en) Method and system for providing formatted information via a two-way communications system
US6047327A (en) System for distributing electronic information to a targeted group of users
US6169897B1 (en) Mobile communications system and mobile terminal therefor with capabilities to access local information resources
US7433922B2 (en) Method and system for collecting and displaying aggregate presence information for mobile media players
US8676929B2 (en) System and method for pushing information to a mobile device
US20020034954A1 (en) Information distribution system
WO2002093408A1 (en) Method and system for collecting and displaying aggregate presence information for mobile media players
KR19990013423A (en) Apparatus and method for accessing data file in data communication network
KR20040093136A (en) Method and apparatus for targeting service delivery to mobile devices
US7233809B2 (en) Efficient communication with passive devices
JPH11285053A (en) Radio communication system, information retrieval server and mobile radio communication terminal
US20080248821A1 (en) Method for sharing data using sms
KR20010052840A (en) Headline hyperlink broadcast service and system
WO2001069444A2 (en) System, method, and apparatus for providing value added services to specific users
WO2001069882A2 (en) System and method for providing information that is responsive to a freeform request
JP3510957B2 (en) Regional information display device, regional information management device and regional information display system
KR20020044556A (en) Method and apparatus for electronic bookmarking of vendor locations via a personal digital assistant or other user device
JP2003303148A (en) Information delivery method, information delivery system, and system control program
KR100420599B1 (en) Method of searching for information by using cell broadcast technique
KR100706896B1 (en) Providing System and Method for Customized Contents Information
WO2001069860A2 (en) System and method for providing information based on user histories
KR20020027101A (en) library using service system used for mobile phone and method of serving thereof
KR20020058149A (en) Apparatus for searching and receiving Internet broadcast data wih graphic user interface and computer readable medium storing application program therefor

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE 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 NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

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

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE 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 NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

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

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP