DISCUSSION OF THE INVENTION:
[0047] In FIG. 1, a mobile station, in the form of a battery driven telephone cellular handset MS 1 , is shown schematically in radio communication with PLMN 1 . Mobile handset MS 1 , includes a microphone 2 , keypad 3 , soft keys 4 , a liquid crystal display device 5 , ear-piece 6 and internal antenna 7 . It is understood that the spirit and scope of the present invention applies to numerous other handsets, such as those illustrated in subsequent illustrations, and that the examples shown herein are for illustrative purposes. The circuitry of handset MS 1 is shown in more detail in FIG. 2 . Signal processing is carried out under the control of digital micro-controller 8 which has an associated RAM/ROM 9 and flash memory 10 . Electrical analog audio signals are produced by microphone 2 and amplified by pre-amplifier 11 . Similarly, analog audio signals are fed to the ear-piece 6 through an amplifier 12 . The micro-controller receives instruction signals from the keypad and so-called soft keys 4 a,b,c , and controls operation of the LCD display 5 .
[0048] Information concerning the identity of the user is held on a smart card 13 in the form of a GSM SIM card which contains a GSM international mobile subscriber identity and encryption K i that is used for encoding the radio transmission in a manner well known per se. The SIM card 13 is removably received in a SIM card holder 14 . Radio signals are transmitted and received by means of the antenna 7 connected through a RF Interface stage 15 to a codec 16 , configured to process signals under the control of a micro-controller 8 .
[0049] Thus, in use for speech, the codec 16 receives analog signals from the microphone amplifier 11 , digitizes them into a form suitable for transmission and feeds them to the RF stage 15 for transmission through antenna element 7 to PLMN 1 shown in FIG. 1 . Similarly, signals received from PLMN 1 are fed through the antenna element to be demodulated by the RF interface stage 15 and fed to codec 16 so as to produce analog signals fed to amplifier 12 and ear-piece 6 .
[0050] The mobile station MS 1 is also configured to operate as a client to receive data from remote servers and to communicate through PLMN 1 to a gateway 18 shown in FIG. 1 which acts as a proxy server for connection to remote servers, such as server 19 . For example, for a WAP enabled system, access to the gateway 18 is provided by dialing a telephone number associated with the gateway although other communication techniques can be used e.g. for GPRS and UMTS. The server 19 may provide data corresponding to individual sites each with an individual homepage with a specific network address or universal resource locator (URL). The data may be provided in WML through the PLMN 1 to the handset MS 1 , which acts as a mobile client.
[0051] The mobile handset MS 1 runs a micro-browser. The software for running the micro-browser may be held in flash memory 10 shown in FIG. 2 , so as to be run by the micro-controller 8 and provide an output on display 5 .
[0052] An example of the display provided by the micro-browser is shown in more detail in FIG. 3 . In this example of the display 5 , the user has elected to view the bookmark list, listing network addresses previously selected by the user, as illustrated by information bar 20 . The bookmarks include entries in the form of menu options which comprise links to corresponding network addresses. The links may be selected using a so-called focus region 21 which can be scrolled upwardly and downwardly shown in FIG. 3 using key 4 c , which can be pushed upwardly and downwardly in the direction of arrow 22 in order to perform a scrolling function. Thus, as shown in FIG. 3 , the network address “www.news.wml” falls within the focus region 21 . The bookmarks may have been produced by the user in a conventional manner or may have been downloaded to the handset for example by a network operator.
[0053] Soft keys 4 a and 4 b are attributed functions shown on the display 5 , which varies from display to display. For the bookmark list shown in FIG. 3 , the keys 4 a , 4 b are attributed functions “options” and “back” respectively and appropriate legends 4 a ′ and 4 b ′ are displayed on the LCD display 5 under the control of software being run by controller 8 . If the key 4 a is actuated, a list of options e.g. select, re-load, help etc are displayed (not shown) on the display 5 . The “select” function may then chosen from the displayed list using the scrolling key 4 c , in the event that the user wants to actuate the link to the “www.news.wml” address shown in FIG. 3 . At this time, the soft key function attributed to the key 4 a is itself “select” so that an operation of the key 4 a will cause the link to the news page within the focus region 21 to be actuated and navigation to the “www.news.wnl” network address is carried out.
[0054] Alternatively, the user may elect to view a different list of bookmarks, e.g. the “re-dial” list shown in FIG. 4 , which lists the bookmarks which are deemed most likely to be re-dialed by the user. The user has recently navigated to network addresses “www.news.wml”, “www.sport.wml” and “www.weather.wml”. This other list stores only addresses that were previously bookmarked, or manually entered by the user and, therefore, the individual network addresses associated with pages decks or cards within these sites that were navigated previously are not stored in the second list. The re-dial list of FIG. 4 can only contain a small number of bookmarks compared with the bookmark list of FIG. 3 . For example, the bookmark list may have a maximum capacity of 200 bookmarks whereas the re-dial list may have a maximum capacity of 10 bookmarks. The soft key 4 a is attributed a “select” function so that the user can scroll using key 4 c to select one of network addresses and navigate directly to the relevant page by appropriately moving the focus region 21 and operating the select key 4 a.
[0055] FIG. 5 illustrates bookmark list 23 and re-dial list 24 together with a process for updating bookmarks held in both lists. It is understood that multiple lists of various kinds may be set up under the present invention. The user may navigate to a desired page for example, by one of the following methods: selecting a bookmark from either of the lists shown in FIGS. 3 and 4 , manually typing in a network address or URL, or by following a link provided in another page viewed in the browser, as shown at step 500 . At step 501 , a check is made to determine if the displayed page is a homepage, and if so, the redial list 24 is updated as will be explained hereinafter ( 506 ), so as to contain the home page address as a bookmark.
[0056] If the displayed page is not a homepage, then at 502 , it is determined whether the page displayed at 500 was accessed using bookmark list 23 or redial list 24 . In this instance, re-dial list 24 is updated ( 506 ), to include a relevant network address. If the page was accessed by other means, the user may choose to bookmark it ( 503 ), in which case an entry is made in main bookmark list 23 ( 504 ). If the user had typed in the address, determined in step 505 , a separate entry is made in re-dial list 24 ( 506 ), regardless of whether the user has bookmarked the page. Re-dial list 24 therefore contains entries relating to homepages, pages accessed using bookmark list 23 , re-dial list 24 , or by entering an address manually. Network addresses accessed by following links are not included, so that the re-dial list 24 is limited the pages that are likely to be currently important to the user. Alternately, network addresses may be included for a complete link history for the user.
[0057] The process of updating the bookmark list is explained with reference to FIGS. 6 and 7 . FIG. 6 depicts memory organization of the RAM/ROM 9 shown in FIG. 2 . Memory locations corresponding to a selected number of network addresses for the visited pages are cached in a shift register according to how recently they were last accessed. When a page is accessed by a user via the bookmark list 23 , re-dial list 24 , or manual address entry ( 701 ), the controller 8 determines whether the relevant network address is already stored in the re-dial list ( 702 ). If this is not the case, a check is made at step 703 to determine if the re-dial list is full of bookmark entries It is not full, the new address may be added to the top of the list shown at step 704 . If the list 24 is full the final entry 35 is deleted from the memory location corresponding to the bottom of the list ( 705 ) and the entries above it, 32 - 34 ( FIG. 6 ) and addresses D-I, are shifted ( 706 ) so that the new address 30 may be added to the top of the list 31 ( 704 ). However, the page already has an entry in the re-dial list, e.g. if the address to be added 30 related to www.sport.wml, the previous entry 34 relating to that page is removed ( 707 ), any preceding entries 32 , 33 are shifted accordingly ( 706 ) and the address stored at the memory location corresponding to the top of the list 31 ( 704 ). In this manner, the most frequently used network addresses will tend to remain on the re-dial list, producing a short list of the pages visited most regularly by the user.
[0058] The re-dial list comprises the network addresses that are likely to be most frequently accessed by a user and, as it may be much shorter than the main bookmark list, allows the user of a mobile telecommunications device to quickly select and access a favorite network address without the inconvenience of scrolling through large numbers of bookmarks. Many modifications and variations falling within the scope of the invention will be evident to those skilled in the art. For example, whilst the described example relates to the use WAP technology, the invention can be used in any mobile telecommunications system in which mobile devices act as clients for remote servers. Also, whilst the invention has been described in relation to the example of a telephone handset, it can be used in other mobile devices such as PDAs, gaming devices and remote handheld devices for home entertainment systems.
[0059] A service recommendation engine or algorithms (used interchangeably herein) are configured to recommend or determine a subset of services from a plurality of services according to user-related filter criteria. Such criteria may be any factor unique or personal to the user or the user's wireless device which can be utilized in ascertaining or inferring possible services preferred by a particular user. Examples of user-related filter criteria may include static or dynamic factors, such as the user's service usage pattern or preference (e.g., when, where, how, a number of times, etc. that a service was used); the user's current context which may inferred from the user's perceived environment through various sensory devices; the user's past and current activities; the user's profile (habits, likes-dislikes, personal characteristics, personal background, etc.); and/or the current environment of the wireless device sensed by one or more sensors (e.g., a location/positioning sensor, a compass, a touch sensor, an audio sensor, a light sensor, and a temperature sensor). Once a set of recommended services are determined, the service may be stored as bookmarks in the wireless device, or at a remote server.
[0060] Accordingly, through the above-noted combination, a wireless device may be configured to enable a user to access preferred or desired services by short cuts/bookmarks, user command or other form of user input (e.g., keypad, touch-display, etc.), while reducing or minimizing the processing load and memory and other hardware requirements necessary to implement such functionality or control in a wireless device. Such an arrangement does not require the user to remember the exact service addresses, which are often complex and difficult to remember, to access desired services; reduces privacy concerns for the user in the access of services; provides for service options which may be organized and accessed without requiring substantial effort on the part of the user.
[0061] In one exemplary embodiment, such a system and method are implemented through a portable wireless device including a recommendation engine and a database of past services accessed by the user. The recommendation engine recommends or determines a subset of services from a plurality of services to provide recommendations which are personal to and preferred by the user. The recommendation may be based on various user-related filter criteria (e.g., context) and, if desired, limited to the range of past used services of the user. These recommended services may then be visibly or audibly outputted to the user for selection thereof, and such output may include information identifying short-cuts for one or more or each of the recommended services. For example, visual output of enabled services may be displayed in the form of an icon or other visual forms (e.g., URL address) to inform the user of the availability of such short-cuts so as to assist the user in effectively utilizing such short-cuts. This may also be accomplished by other output means, such as audio output. The service may also be enabled to provide URL completion functions of stored addresses or bookmarks, which automatically complete partial entries by a user.
[0062] The user may thereafter input a command to select a service to be accessed from the subset of recommended services. When the input is received, a portable wireless device processes input to an appropriate computer readable format (e.g., metadata), compares the processed data to data associated with the recommended services, and identifies the service with short-cut matching the user's command. Thereafter, the portable wireless device, such as through its micro-browser, accesses the selected service automatically or upon a user command.
[0063] In another embodiment, such a system and method are implemented through a distributed networked system in which various processing tasks and data maintenance may be distributed between a portable wireless device and one or more network elements, such as a network server, ad hoc network partner, and so forth. The tasks may be distributed in the following manner:
[0064] [1] The network server(s) or other network element may be configured to implement both the recommendation and bookmark/short-cut processing. For example, after initiation of the micro-browser by the user or other triggering event, the wireless device receives a bookmark/short-cut command from the user and forwards the command data to the network server and other relevant information, such as user-related filter criteria (e.g., context) and/or information for determining such criteria. The network server determines a subset of recommended services from a plurality of services based on the user-related filter criteria. The network server then, identifies a service therefrom with a short-cut matching the user's command. The network server then returns information corresponding to the identified service, such as the service's address (e.g., URL) or other service access information, to the wireless device for access thereof. Alternatively, the network server may act as an intermediary between the wireless device and the service provider of the identified service and access the identified service for the wireless device.
[0065] In another example, after initiation of the micro-browser by the user or other triggering event, the wireless device requests a service recommendation from a network server. The request may include other relevant information, such user-related filter criteria (e.g., context.) or information for determining such criteria. The network server receives the request along with any relevant information and determines a subset of recommended services from a plurality of services based on the user-related filter criteria. These recommendations are then sent to the wireless device which outputs, audibly or visibly, the availability of such recommended services through user input bookmarks/short-cuts.
[0066] The wireless device then receives the user's command and passes corresponding command data to the network server. The server then performs processing on the command to identify a service (from the plurality of recommended services) with a short-cut matching the user's command. The network server then returns information corresponding to the identified service, such as the service's address (e.g., URL) or other service access information, to the wireless device for access thereof. Alternatively, the network server may act as an intermediary between the wireless device and the service provider of the identified service and access the identified service for the wireless device.
[0067] [2] The network server(s) may be configured to implement the recommendation processing within the wireless device. For example, after initiation of the micro-browser by the user or other triggering event, the wireless device requests recommendations from a network server. The request may include other relevant information, such as user-related filter criteria or associated information in determining such criteria. The network server receives the request and relevant information and determines a subset of recommended services from a plurality of services based on the user-related filter criteria. These selections are then sent to the wireless device, and the device outputs, audibly or visibly, the availability of such recommended services through user input short-cuts.
[0068] The wireless device then receives the user's short-cut command and performs processing of the command to identify a service (from the plurality of recommended services) with a short-cut matching the user's command. Thereafter, the wireless device, via its micro-browser or other platform, accesses the selected service automatically or upon the user command.
[0069] [3] The network server(s) or other network element may be configured to implement the short-cut processing. For example, after the recommended services are transmitted to the user, the wireless device receives a command from the user and forwards the command data to the network server and possibly other relevant information, such as the recommended services information and/or other short-cuts (e.g., XML tags) for such services. The network server identifies a service (from the plurality of recommended services) with a short-cut matching the user's command. The network server then returns information concerning the identified service, such as the service's address (e.g., URL) or other service access information, to the wireless device for access thereof. Alternatively, the network server may act as an intermediary between the wireless device and the provider of the identified service and access the identified service for the wireless device.
[0070] In further embodiments, the maintenance and generation of short-cuts(s) for a particular digital service may be accomplished in various ways, for example, as follows:
[0071] [A] Address attributes, such as host name and service name, or other portions of the address attributes may be utilized as a short-cut of a digital service when performing bookmark/shortcut processing.
[0072] [B] Bookmarks/short-cuts may be generated from metadata associated with a particular service site. Metadata is often employed by search engines, service sites and/or other network entities to characterize or classify the content on a particular service site to facilitate user searches. Accordingly, one or more short-cuts may be generated for association with a particular service according to the metadata associated with that service, such as by identifying and selecting one or more words or terms from the metadata which aptly characterizes the service. This may be accomplished by manually examining the metadata associated with a service site, or through probability analysis in which the words or terms showing up a significant number of times or the greatest number of times is used as the short-cut.
[0073] [C] A bookmark/short-cut registry or the like may be maintained by a network element, such as a server, which maintains a relational database of service addresses and their associated bookmark/short-cut tag. The registry may be similar to domain name registry, in which bookmark/short-cut tags may be uniquely defined for a particular service using a standard format, such as in XML. Through a central registry, a uniform standard may be achieved for bookmark/short-cut tags or the like and their usage in enabling access to associated services. A wireless device may request bookmark/short-cut tags from the registry for the subset of recommended services prior to performing processing. Alternatively, whenever a service site is accessed, the site may deliver the bookmark/short-cut tag to the accessing device which can store the bookmark/short-cut tag for future use.
[0074] Along similar lines, a service provider may predefine bookmark/short-cut tags for its service addresses and provide such information to the wireless device or other network elements in communication with the wireless device to facilitate bookmark/short-cut based access to such service(s). For example, the service provider may embed bookmark/short-cut tags in an XML message sent to the user's wireless device.
[0075] [D] A user may define, change or delete bookmark/short-cuts for a particular service which are stored locally on the user's wireless device or at a remote location accessible by the wireless device.
[0076] [E] The wireless device generally may download predefined or generated short-cuts associated with services from a remote location, via a network. Such download may be performed when a new service is accessed by the user, at periodic intervals, upon a user request, or upon some other predetermined triggering event.
[0077] [F] Short-cut(s) may also be a “temporary” short-cut assigned to a recommended service, such as according to hierarchy or priority of the recommendations. For example, the short-cut “bookmark one” or “bookmark 1” can be temporarily assigned to a first recommended service of the subset, the short-cut “bookmark two” or “bookmark 2” can be temporarily assigned to a second recommended service of the subset, and so forth. Alternatively, the short-cut “A” can be temporarily assigned in an outline form to a first recommended service of the subset, the short-cut “B” can be temporarily assigned to a second recommended service of the subset, and so forth. Temporary short-cuts may be employed together with a selection menu, whether displayed or audibly outputted, for enabling short-cut to recommended services.
[0078] [H] To specify a short-cut, bookmark/short-cut tags may be used to categorize the bookmark/short-cut short-cut for a particular service. For example, a bookmark/short-cut may be tagged for a particular service in XML format (“bookmark XML tag”), e.g., <BOOKMARK TAG>[short cut]</BOOKMARK TAG> to facilitate access in a digital service environment, such as with Internet service, etc.
[0079] These and other exemplary embodiments will now be discussed in further detail below with reference to the Figures. Turning to FIG. 8 , an exemplary network environment is provided in which a user, operating a portable wireless device 800 , is able to employ multi-modal input forms, along with other user input forms, to access preferred digital services through device 800 . This is accomplished through combination of a service recommendation engine and a short-cut engine, each of which may be implemented locally at the portable wireless device or at a remote location, such as at a network server 826 , to provide short-cuts to the user's preferred services.
[0080] A recommendation engine may be employed to determine a subset of recommended services from a plurality of services based on user-related filter criteria (e.g., context, etc.). Commands by the user may be further processed to compare and match the commands to short-cuts associated with the recommended services to enable user selection and access of a service from the recommended services by short-cut.
[0081] As shown, a network diagram illustrates an example of a relationship between the user's portable wireless device 800 , a wireless access point 820 , an infrastructure network 821 , a network server 826 , and a third party service provider 822 interconnected over the Internet 824 . The user's wireless device 800 communicates over a radio link with the wireless access point 820 , which is connected to a wireless network 821 , which is connected to a protocol gateway 823 . The gateway 823 is connected over the Internet 824 to the server 826 .
[0082] The network 831 formed by the wireless device 800 , wireless access point 820 , and infrastructure network 821 can be implemented as a digital wireless wide area network (WAN), based on architectures such as Global System for Mobile Communication (GSM), IS-136 TDMA-based Digital Advanced Mobile Phone Service (DAMPS), Personal Digital Cellular (PDC), IS-95 CDMA-based cdmaOne System, General Packet Radio Service (GPRS) and broadband wireless architectures such as W-CDMA and Broadband GPRS. For more information on these digital wireless, wide area network architectures, see the book by Yi-Bing Lin, et al. entitled Wireless and Mobile Network Architectures , John Wiley & Sons, 2001. Network 831 can also be a short-range wireless system connected to a wide area landline infrastructure network such as the Internet 824 . Short-range wireless systems include both wireless personal area network (“PAN”) and wireless local area network (“LAN”). Both of these networks have the common feature of operating in unlicensed portions of the radio spectrum, usually either in the 2.4 GHz Industrial, Scientific, and Medical (ISM) band or the 5 GHz Unlicensed-National Information Infrastructure (“U-NII”) band. Wireless personal area networks use low cost, low power wireless devices that have a typical range of ten meters. The best-known example of wireless personal area network technology is the Bluetooth Standard, which operates in the 2.4 GHz ISM band. It provides a peak air link speed of one Mbps and a power consumption low enough for use in personal, portable electronics such as PDAs and mobile phones. The Bluetooth Special Interest Group, Specification Of The Bluetooth System , Version 1.0B, Volumes 1 and 2, December 1999, describes the principles of Bluetooth device operation and communication protocols. Wireless local area networks generally operate at higher peak speeds of from 10 to 800 Mbps and have a longer range, which requires greater power consumption. Wireless local area networks are typically used as wireless links from portable laptop computers to a wired LAN, via an access point (AP). Examples of wireless local area network technology include the IEEE 802.11 Wireless LAN Standard and the HIPERLAN Standard, which operates in the 5 GHz U-NII band. For more information on wireless LANs, see the book by Jim Geier entitled Wireless LANs , Macmillan Technical Publishing, 1999. The network 831 formed by the wireless device 800 , wireless access point 820 , and infrastructure network 821 can use a wireless communications protocol, such as the Wireless Application Protocol (WAP), the I-Mode protocol, or the mobile IPv6protocol.
[0083] Portable wireless device 800 may take the form of a processor-based wireless communication-enabled device, such as a wireless mobile telephone (see FIG. 1 , MS 1 ), pager, two-way radio, smartphone, personal communicator, laptop or notebook computer, wireless personal digital assistant (PDA) or the like. Typically, wireless device 800 has a resident memory 880 , CPU 881 , radio 882 , speaker 803 , and sensor interface 883 . Portable wireless device 800 includes a plurality of output subsystems, such as a displayed browser 801 and speaker 803 , to provide for supplemental multi-modal output functionality and a plurality of user input subsystems, such as microphone 804 , keypad 805 , a touch-display and so forth, to provide for multi-modal input functionality. Browser 802 may be partitioned, as desired, to have a main display area, along with other display or touch-screen areas, such as in the form of an icon or other visual representation to notify the user of the availability of shortcuts to recommended services.
[0084] The portable wireless device 800 further includes various programs and databases, including the user's personal programs and databases, programs and databases associated with the conventional operation of the wireless device, and programs and databases to implement short-cut service access processes discussed herein. These programs and databases may include, for example, application programs 813 , communication programs 814 , service history log 815 , current context state 816 , recommendation algorithms or engine 817 to enable local and/or network-based service recommendations. These programs may alternately include a voice response unit (VRU) (not shown) for converting data, such as text, to speech which can be outputted to the user via speaker 803 .
[0085] As further shown in FIG. 8 , the portable wireless device 800 may also include a plurality of sensors for sensing the mobile user's ambient conditions. The sensors shown include Positioning Sensor 806 , Touch Sensor 808 , Audio Sensor 809 , Compass Sensor 807 , Ambient light Sensor 810 , Ambient Temperature Sensor 811 , and Three-Axis Acceleration Sensor 812 . Audio sensor 809 can be a microphone, for example, which can detect speech or other environmental sounds. The positioning sensor 806 can be, for example, a GPS receiver integrated in the device. The positioning sensor can also be, for example, a radio beacon triangulation sensor that determines the location of the wireless device by means of a network of radio beacons, base stations, or access points, as is described for example, in Nokia European patent EP 0 767 594 A2, entitled “Mobile Station Positioning System”. These sensors provide inputs which are sampled by the wireless device 800 to sense the user's environment and to infer a current context which may be used to provide recommendations to the user based on the user's environment. The portable wireless device 800 may perform context inference techniques locally, or may offload to the network server 826 some of the computationally intensive computing involved in context inference techniques.
[0086] For example, in one or more embodiments discussed herein, as the user carries about the wireless device 800 , its sensors may automatically and continuously measure the geographic location and context of the device. The wireless device may periodically transmit the current context in a message over the wireless network to the network server 826 . There are several types of messages, each of which is distinguished by its own unique op code. When the wireless device sends a message containing the current context, the network server 826 parses the op code and responds with information corresponding to the op code, the information being related to the current context.
[0087] If the op code indicates that the message is a spontaneous message which is automatically transmitted by the device 800 , then the network server 826 may respond with information such as a service category menu, or information such as recommended services (along with associated short-cuts) based on the current context, or prepaid advertising of local services related to the current context. As shown in FIG. 8 , the user's portable wireless device 800 further includes a service history log 815 . The activities stored in the service history log 815 may be divided into two major categories: past recommendations made by the wireless device 800 and/or network server 816 , and services including short-cuts. Under one embodiment, the category of services may be broken into four sub-categories: (1) Past Services used, (2) Prestored Service Preferences, (3) Special requested service requirements, and (4) Digital Services and Associated Short-Cuts. The term “activities”, as used herein, may refer to any of these categories and sub-categories. The service history log 815 may store five component databases: [1] Past Recommendations and Context, [2] Past Services Used and Context, [3] Prestored Service Preferences, [4] Special Requested Service Requirements, and [5] Digital Services and Short-Cuts. An example is shown in FIG. 10 of the two component databases: [1] past recommendations and context 1000 and [2] past services used and context 1001 .
[0088] When implementing distributed processing with the network server 826 , the wireless device 800 can automatically send messages with a unique op code designating that the message is an automatically transmitted message containing the device's past recommendations and context or past services used and context, in addition to the current context or other information for use in enabling short-cut access to recommended services. In one or more embodiments, the network server 826 may parse the op code and uses the device's past recommendations and context or past services used and context to find similar service recommendations in its database. The network server 826 then responds with information customized to the user's perceived interests, the information being related to the current context. While the above discusses one approach to recommending services, any user-related filter criteria may be employed to determine recommendations personal to the user.
[0089] The user of the wireless device 800 can also manually enter requests for menus and recommendations related to the current context. In any event, the wireless device 800 may then determine the service recommendations locally based on the current context and enable short-cut access to such recommended services. Alternatively, the wireless device 800 may send messages with a unique op code designating that the message is a manual request by the user containing the device's past recommendations and context or past services used and context, in addition to the current context or other information for use in enabling short-cut access to recommended services. The network server parses the op code and uses the device's past recommendations and context or past services used and context to find similar recommendations in its database consistent with the user's manual request. The network server 826 then responds with information customized to the user's expressed interests, the information being related to the current context. While the above discusses one approach to recommending services, any user-related filter criteria may be employed to determine customized or personalized recommendations to the user.
[0090] Under one embodiment, the service history log 815 can accumulate data on past services used by the user of the device 800 in several ways. The service history log 815 can be programmed to capture on-line transactions and activities, such as ticket purchase information for services, access of a service, and so forth. The service history log 815 can also be programmed to monitor the dwell-time of the device at scheduled events and to draw the inference that the user is in fact engaged in such an event. The event and the current context are then stored in the database “[2] past services used and context”, in the service history log 815 .
[0091] While the portable wireless device 800 may be configured to perform the context, recommendation and short-cut processing alone, one or more or all of these processes can be offloaded to one or more other network elements, such as the network server 826 . Accordingly, depending on which processes are offloaded, the network server 826 may include context inference engine 827 , digital service and short-cuts database 828 , recommendation algorithms or engine 829 , and context-activity pairs database 830 .
[0092] In one distributed system embodiment, the wireless device 800 provides recommendations to its user that are appropriate to the device's current environment by selecting an activity (e.g., a category or sub-category), pairing it with the current context result, and sending the context-activity pair to the network server 826 . The network server 826 searches its database of recommendations using the context-activity pair, and returns recommendations to the user. While the portable wireless device 800 and the network server 826 may employ context-activity pairs to determine recommended services, other user-related criteria and processes may be employed to ascertain preferred services desired to be accessed by the user.
[0093] Portable wireless device 800 , in combination with context inference engine 884 , are configured to determine a current context based on the user's current context which, in turn, may be inferred through sensory information from sensors of the device (e.g., location sensor, speed sensor, light sensor, sound sensor, etc.), clock, user's activities, and so forth. The portable wireless device 800 , in combination with the recommendation engine 817 , determine and recommend a subset of services from a plurality of services based on user-related filter criteria, such as the current context or other personal factors (e.g., service usage history—those services utilized the most by the user, etc.). To reduce the workload of the wireless device, the searchable range of services may be limited to past used services.
[0094] Once determined, recommended services may then be visibly (or audibly) outputted to the user for selection thereof by user input, and such output may include information identifying the short-cut(s) for one or more or each of the recommended services. For example, visual output of short-cut enabled services may be displayed in the form of an icon or other visual forms (e.g., URL address) to inform the user of the availability of such short-cuts so as to assist the user in effectively utilizing such short-cuts. This may also be accomplished as well by other output means, such as audio output. The user may thereafter enter a command to select a service to be accessed from the subset of recommended services.
[0095] In operation, after initiation of the micro-browser 801 by the user or upon some other triggering event, the portable wireless device 801 requests recommendations from the network server 826 . The request may include other relevant information, such as user-related filter criteria or associated information in determining such criteria. The network server 826 receives the request and any relevant information and determines a subset of recommended services from a plurality of services based on the user-related filter criteria. These selections are then sent back to the wireless device 800 , and the device outputs, audibly or visibly, an indication of the availability of such recommended services through user input short-cut. The short-cuts for the recommended services may be forwarded by the network server 826 or may be already stored locally for lookup on the portable wireless device 800 .
[0096] In one operational example, after initiation of the micro-browser 801 by the user or upon some other triggering event, the portable wireless device 801 may request service recommendations from the network server 826 . The request may include other relevant information, such user-related filter criteria or information for determining such criteria. The network server 826 receives the request and any relevant information, and determines a subset of recommended services from a plurality of services based on the user-related filter criteria. These selections are then sent back to the wireless device 800 , and the device outputs, an indication of the availability of such recommended services through user input short-cuts.
[0097] The portable wireless device 800 then receives the user's input command and passes corresponding command data to the network server 826 which performs processing of the command to identify a service (from the subset of recommended services). The network server 826 then returns information on the identified service, such as the service address (e.g., URL) of the service site operated by service provider 822 or other service access information, to the wireless device 800 , 815 for access thereof. Alternatively, the network server 826 may act as an intermediary between portable wireless device 800 and service provider 822 of the identified service and access the identified service for wireless device 800 .
[0098] In an alternative example, after initiation of the micro-browser 801 by the user or upon some other triggering event, the portable wireless device 800 receives a command from the user and forwards the command data to the network server 826 , along with other relevant information, such as user-related filter criteria (e.g., context) and/or information for determining such criteria. The network server 826 determines a subset of recommended services from a plurality of services based on the user-related filter criteria. Thereafter, server 826 identifies a service from the subset of recommended services. Network server 826 then returns information on the identified service, which may include the service address (e.g., URL) of the service site operated by service provider 822 , to wireless device 800 for access thereof. Alternatively, network server 826 may act as an intermediary between the portable wireless device 800 and service provider 822 of the identified service and access the identified service for the wireless device.
[0099] To facilitate ease of use as well as to explain various functions enabled on the portable wireless device 800 , a Recommendation Web Services Menu may be provided and displayed on browser 801 of the device. An example of such a menu as well as other screen shots of recommended services will be discussed below with reference to FIGS. 9A through 9J .
[0100] In FIG. 9 A, the user's portable wireless device 800 includes the browser 801 which displays the Recommendation Web Services menu 900 , to enable the user to navigate through the cards or pages being displayed and to select options that are programmed by the application programs 813 . Recommendation Web Services Menu 900 may provide the user with the following options to select:
[0101] [A] Request a Recommendation,
[0102] [B] Update Privacy Features and
[0103] [C] Manage Context-Activity Profile.
[0104] The Request A Recommendation menu may display the following options:
[0105] [1] Select A Service Category
[0106] [2] Send past recommendations
[0107] [3] Send Past services Used
[0108] [4] Send Prestored Service Preferences
[0109] [5] Enter Special Service Requirements
[0110] [6] Change Prestored Service Preferences
[0111] [7] Change Privacy Filter Settings
[0112] [8] Local Recommendation
[0113] [9] Change Short-Cut Settings
[0114] Reference to FIG. 11A illustrate how processes to be implemented at the wireless device 800 or the network server 826 may be invoked through the menu selection of FIG. 9A . One or more of the processes to be discussed below, particularly the recommendation related processes, may alternatively be invoked upon initiation of browser 801 or some other triggering event.
[0115] As shown in FIG. 11 A, the option 1101 to [1] SELECT A SERVICE CATEGORY invokes process 1119 in the user's device 800 , to RETRIEVE UPDATED SERVICE CATEGORY MENU, as shown further in FIGS. 11B and 11C . Process 1119 of FIG. 11A sends updated menu request message 1133 to process 1127 in the network server 826 , to UPDATE SERVICE CATEGORY MENU, as shown in FIG. 11B . The updated menu 901 ( FIG. 9B ) is returned in updated menu response message 1815 , as shown in FIGS. 11B and 11C . The updated menu 901 is displayed in the device's browser 801 in FIG. 9B . This same sequence of steps is automatically performed by the wireless device 800 and the network server 826 in response to wireless device 800 automatically transmitting messages with a unique op code designating that the message is an automatically transmitted message.
[0116] The option 1102 to [2] SEND PAST RECEIVED RECOMMENDATIONS invokes process 1120 in the user's device 800 , to SEND CONTEXT & PAST RECEIVED RECOMMENDATIONS, as shown in FIGS. 11D and 11E . Process 1120 sends recommendation request message 1111 to process 1128 in the network server 826 , to PROVIDE NEW RECOMMENDATIONS CORRESPONDING TO PAST RECOMMENDATIONS as shown in FIG. 11D . The recommendations 1157 ( FIG. 11E ) are returned in recommendation response message 1112 . The recommendations 1157 are displayed 908 in the device's browser 801 in FIG. 9H . This same sequence of steps is automatically performed by the wireless device 800 and the network server 826 in response to the wireless device 800 automatically transmitting messages with a unique op code designating that the message is an automatically transmitted message.
[0117] The option 1103 to [3] SEND PAST SERVICES USED invokes process 1121 in user's device 800 , to SEND CONTEXT AND PAST SERVICES USED, as shown in FIGS. 11F & G . Process 1121 sends recommendation request message 1113 to process 1129 in network server 826 , to PROVIDE NEW RECOMMENDATIONS CORRESPONDING TO PAST SERVICES USED, as shown in FIG. 11F . The recommendations 1157 are returned in recommendation response message 1820 , as shown in FIG. 11G . Recommendations 1157 are displayed in the device's browser 801 in FIG. 11H . This same sequence of steps is automatically performed by wireless device 800 and network server 826 in response to wireless device 800 automatically transmitting messages with a unique op code designating that the message is an automatically transmitted message.
[0118] The option 1104 to [4] SEND PRESTORED SERVICE PREFERENCES invokes process 1122 in the user's device 800 , to SEND CONTEXT AND PRESTORED SERVICE PREFERENCES in the pre-stored service preferences file 1122 , as shown in FIGS. 11D & F . An example of pre-stored service preferences is shown displayed 903 in the browser 801 of FIG. 9D . Process 1122 sends message 1115 to process 1824 in network server 826 , to PROVIDE RECOMMENDATIONS CORRESPONDING TO SERVICE PREFERENCES. The recommendations 908 are returned in message 1821 .
[0119] Option 1105 to [5] ENTER SPECIAL SERVICE REQUIREMENTS invokes process 1123 in user's device 800 , to SEND CONTEXT AND SPECIAL SERVICE REQUIREMENTS. An example of special service requirements is shown displayed 902 in the browser 801 of FIG. 9C . Process 1123 sends message 1117 to process 1131 in network server 826 , to PROVIDE RECOMMENDATIONS CORRESPONDING TO SPECIAL REQUIREMENTS. The recommendations 908 are returned in message 1118 .
[0120] The option 1106 to [6] CHANGE PRESTORED SERVICE PREFERENCES invokes process 1124 in user's device 800 , to CHANGE PRESTORED SERVICE PREFERENCES. An example of a menu to change pre-stored service preferences is shown displayed 903 in the browser 801 of FIG. 9D .
[0121] The option 1107 to [7] CHANGE PRIVACY FILTER SETTINGS invokes process 1125 in user's device 800 , to CHANGE PRIVACY FILTER SETTINGS. An example of a menu to change privacy filter settings is shown displayed 904 in the browser 801 of FIG. 9E .
[0122] The option 1108 to [8] LOCAL RECOMMENDATION invokes process 1125 in the user's device, to initiate LOCAL RECOMMENDATION, e.g., to determine service recommendations locally at the user's device. An example of a menu to initiate local recommendation is shown displayed 905 in the browser 801 of FIG. 9F . The local recommendations may be determined from a database of [a] past used services or [b] downloaded services from a network server, such as server 826 . An example of service recommendations displayed on the browser 801 is shown in FIGS. 9H through 9L . Additional options, such as ones to change short-cut setting may also be utilized to initiate associated processes.
[0123] As the user carries about wireless device 800 , sensors 806 - 812 continuously measure the geographic location and context of the device, which are compiled into a metadata vector 1134 representing the current context ( FIG. 11B ). Wireless device 800 periodically transmits the current context in an updated menu request message 1133 , shown in FIG. 11 B, over the wireless network 831 to the network server 826 . The updated menu request message 1133 includes the network address of the server 826 , an op code value RQ_MN that designates the message as an updated menu request message, and an operand portion containing the current context. The network server 826 of FIG. 11B includes a server op code parser 1134 that interprets the op code value RQ_MN as indicating that the message is an updated menu request message 1133 . In response, the server op code parser 1134 invokes step 1135 of the server recommendation algorithms 829 . Step 1135 gets from a database a list of services provided by regional advertisers corresponding to the current context of the device 800 . Step 1135 flows to step 1136 , which gets from a database a list of services provided by regional points of interest, such as galleries, monuments, museums, and the like, corresponding to the current context of the device 800 . Step 1136 flows to step 1137 , where the list of services provided by regional advertisers and the list of services provided by regional points of interest are filtered for weather related and time related service categories, eliminating those services that cannot be used by the user in the current context. For example, night_baseball is eliminated, if the current context is “daytime”. Hiking_nature_trail is eliminated if the current context is “bad weather”. Likewise, in a digital service scenario, electronic_stock_trading may be eliminated, if the current context is “nighttime”. Step 1137 flows to step 11134 , where the updated menu message 1133 ′ is prepared. The updated menu message 1133 ′ includes the network address of the device 800 , op code RSP_MN that designates the message as an updated menu server response message, and operands. The operands include the updated menu 1133 ( FIG. 11C ). The updated menu 1133 is returned to the device 800 in the updated menu response message 1133 ′, as shown in FIGS. 11B and 11C . This same sequence of steps is automatically performed by the wireless device 800 and the network server 826 in response to the wireless device 800 automatically transmitting messages with a unique op code designating that the message is an automatically transmitted message.
[0124] The device op code parser 1134 in FIG. 11C interprets the op code value “RSP_MN′ as indicating that the message is an updated menu server response 1133 ′. In response, the device op code parser 8206 invokes step 1120 of the device recommendation algorithms 817 . Step 1120 stores and displays the updated menu 1120 in the device's browser 801 in FIG. 9B .
[0125] The user can initialize the device 800 by entering special service requirements as shown in the browser 801 of FIG. 9C . Examples of special service requirements that can be stored in the service history log 815