SYSTEM AND METHOD FOR ACCESSING NETWORK- BASED RESOURCES VIA A HANDHELD WIRELESS DEVICE
BACKGROUND OF THE INVENTION
Field of the Invention
This invention relates to network navigation methods in general and to methods suitable for handheld wireless network appliances in particular.
Description of the Related Art Handheld, wireless devices such as personal digital assistants (PDA) and smart phones executing a wireless application protocol (WAP) are emerging as an alternative to personal computers (PC) for consumer Internet access. The inherent limitations on the size of a handheld device present a novel challenge to engineer a consumer device that allows easy network navigation to a desired destination.
The current Internet addressing system was established at a time when the primary hardware elements of the user interface comprised a desktop keyboard in combination with a large display monitor. Contemporary handheld devices roughly the size of a human palm were not contemplated in establishing network location standards such as domain names and universal resource locators (URL). URLs and existing navigational tools, such as conventional search engines and directory services, are inappropriate for new handheld devices, as it is infeasible for the user to input the long sequence of typecast characters required by such technologies. As such, the advent of palm sized devices presents a need for a navigation method that enables users to navigate a network using a reduced or minimal number of keystrokes.
SUMMARY OF THE INVENTION
In the domain of non-PC devices, any new navigation system that can enable users to navigate using a minimal number of keystrokes holds a compelling value proposition. The present invention includes a one-key-one-
click navigation system that enables consumers to navigate to a destination site from a WAP phone or a net appliance using only a few key strokes. This one- key-one-click system includes 3 important components.
The first component comprises a server side database of Internet destinations (mobile Web sites). Each destination in the database is identified to the user using a keyword. Examples of keywords used in embodiments of the invention are company names, trademarks, book titles, personal names, document titles or any natural language string capable of being printed and easily memorized by a person. The second component comprises a server side navigation engine that indexes the individual words within a name as well as the first letters of a destination's keyword. These indexing features enable the navigation engine to return a list of results even when the query only contains the first few characters of the keyword. The third component comprises an estimated measure of popularity for each destination within the database. An example of popularity measure supported by embodiments of the invention is the number of times a destination has been visited by all users within a given time range. Another example is the number of external references to the destination, also referred to as the destination's page rank. Embodiments of the invention support many suitable measures of popularity. Some embodiments include popularity measures for the navigation system in which the user can be identified and tracked over time. In such embodiments, the measure of popularity can be customized to the specific user. One example of user-centric popularity metric is the number of times the user has visited the destination within a given time range.
Independently of the selected popularity measure, the navigation engine is designed to return a list of results ordered by decreasing relevance and decreasing popularity.
These and other embodiments will be more fully described infra.
BRIEF DESCRIPTION OF THE FIGURES
Fig. 1 illustrates a wireless client device used in an embodiment of the present invention.
Fig. 2 schematically illustrates a network configuration used to connect wireless client devices to resources in embodiments of the present invention.
Fig. 3 comprises a flow chart for providing URIs to clients in embodiments of the invention. Fig. 4 comprises a flow chart of the selection and ordering of resources according to embodiments of the present invention.
Fig. 5 comprises a flow chart for the processes of measuring the popularity of URIs and returning URIs to clients according to embodiments of the invention.
DETAILED DESCRIPTION
A. System Overview
The present invention includes an addressing system optimized for retrieving networked based resources via a handheld, wireless device. Present addressing systems are inadequate for the new generation of handheld wireless devices. Handheld devices such as cellphones and wireless PDAs have constraints on the length of input strings that a user may reasonably be expected to input. This limitation has not been an issue in PC-based network access, as PC based browsers typically accept a URL, which may be an arbitrarily long string. For instance, to access a URL such as "www. amazon. com", a PC user typically types in the entire string corresponding to the URL.
Amongst the limitations of a handheld device is the restricted number of characters a user can typically input. Figure 1 illustrates a WAP phone, which includes a display 100. The input to the phone 102 is typically a standard numerical key pad, including roughly 12 keys, appended with a cursor key 104 to highlight lines on the display 100. The restricted number of keys, and the manner in which cellular phones are typically used, places strict limits on the number of characters that a user can reasonably be expected to input, rendering it infeasible to type in URL, or even a substantial portion of a URL. The limitation on input is even more pronounced with wireless PDAs, in which input is provided by a user writing with a stylus.
The present invention includes a system and method for allowing a user to identify a network resource by its URI, with a limited number of characters. Novel indexing systems used in the present invention as well as popularity metrics supported by the present invention allow a user to identify a URI with a limited number of keystrokes .
B. Terminology Used
The following terms are used in this application. Some of the terms listed infra are also illustrated in Figures 2-3:
• Query: a set of parameters passed by the client 200 (e.g. handset) to the navigation server 202. The query comprises a query string and a query context. The query string may comprise any text or keystrokes input by a user of the client 200 device. The query context is any direct or indirect contextual information about the user or the query. Non-limiting examples of query context include: the user's preferred language, the user's geographical location, a unique identifier corresponding to the user. If no context information is to be transmitted from the client 200 to the navigation server 202, the query context may be null.
• Resource: an entity (Web page, person, MP3 song,...) on the network that can be uniquely identified by a URI. • Entry: a parameterized object that describes a resource. The object parameters are also called attributes or properties. Two important entry attributes in the present invention are the keyword and the URI.
• Keyword fragment: one or more letters of a keyword (e.g. ama for amazon). • Relevance ranking: The relevance of an entry with respect to a query is a function of how closely the given entry matches the query string and context. For instance, if the query context specifies that the user only wants results in French, all the entries in English may be regarded as irrelevant even though their keyword may be similar to the query string. If there is no context, the relevance of an entry to a user query is a direct function of comparing the query string to the entry keyword.
• Exact match: An exact match occurs when all the query parameters (query string and context) are exactly matching the corresponding parameters of an entry. Two parameter values are exactly matching when their normalized values are equal. • Global versus local measures of popularity: In embodiments of the invention, the query context may provide a mechanism to identify a specific user (e.g. subscriber ID from wireless operator or login ID). In such embodiments, the global measure of popularity may be customized to the specific user. In such cases, the resources visited by the user and the frequency of these visits can be aggregated to build a usage profile specific to that user. Such customized measure is called "local measure of popularity", as opposed to the global popularity measure, which aggregates usage across users.
C. System Architecture
Figure 2 illustrates a network architecture used in embodiments of the present invention. A client 200, such as a handheld wireless device, accesses a Gateway Server 202. The Gateway Server 202 may be WAP server. The Gateway Server 202 accesses a Navigation Server 204, which is primarily responsible for identifying network resources. The Navigation Sever 202 retrieves URIs for network resources from a Resource Database 212.
The Resource Database 212 includes a set of network destinations. In embodiments of the invention, the network destinations include Internet destinations. Each destination in the Resource Database 212 is identified to the user using a keyword. Examples of keywords include, but are not limited to: company names, trademarks, book titles, personal names, document titles, or any natural language string capable of being printed and easily memorized by a person.
The Navigation Server 204 indexes the individual words within a name but also indexes the first letters of a destination's keyword. As such, the navigation engine is capable of returning a list of results even when the query
only contains the first few characters of the keyword. To illustrate by example, suppose the Resource Database 212 contains the destination phone.amazon.com
A keyword stored in the corresponding record of the Resource Database 212 may be: amazon
The Navigation server may index the keyword with the following portions of the string: a am ama amaz
The Navigation Server 204 is coupled to a Resolution Tracking Server 206, which is responsible for updating the Resolutions Tracking Database 208 with profile information received from the Client 200. The Resolution Tracking Database 208 is coupled to a Popularity Engine 210. The Popularity Engine 210 computes usage popularity from aggregate navigation events and combined popularity based on other measures. The Popularity Engine 210 sends popularity updates to the Resource Database 212, which stores popularity as an attribute of the entry record.
Embodiments of the invention may support many different measures of popularity. An example of popularity measure is the number of times a destination has been visited by all users within a given time range. Another example is the number of external references to the destination, or page rank. Many other measures of popularity will be apparent to those skilled in the art.
An important subclass of popularity measures comprises individualized popularity metrics for users who can be identified and tracked over time. In such cases, the measure of popularity can be customized to the specific user. An example of user-centric popularity may be the number of times the user has visited the destination within a given time range. Other individualized, or local, popularity metrics, will be apparent to those skilled in the art.
The various servers illustrated schematically in Figure 2 and described herein may reside on one or more processors coupled by a LAN. The individual servers do not necessarily reside on individual processors, as one or more of the servers may reside on a single processor in embodiments of the invention. In embodiments of the invention, the Resource Database 212 may be a centralized database, and one or more Navigation Servers 204 may operate on top of readonly replicas of the Resource Database 212. In some such embodiments, changes to the Resource Database 212 may be propagated in real-time to the replica databases.
D. Resource Selection
Figure 3 illustrates a process by which a user may identify and select a network resource from a client device 200. The user enters a keyword or a keyword fragment 300 using a client keypad 102. A query including the keyword or keyword fragment 302 is forwarded to the navigation server 202. In embodiments of the invention, the query may also include context information comprising user specific-information, which may include but is not limited to the language preferred by the user; the user's geographical location; and a unique identifier for the user, such as a login name or other ID. The Navigation Server 202 determines if the query string is an exact match 304 to a key in the resource database 212. If there is an exact match for the query in the resource database 212, the navigation server 202 forwards 306 the user selection to the Popularity Engine 210 and redirects the client 200 to the corresponding URI 308. If the query is not an exact match 310, the navigation server computes a result list of entries relating to the query. The result list is ordered by decreasing relevance 312. If the result list is null, i.e., if there are no entries in the resource database 212 corresponding to the query, the navigation server prompts the user to try a different keyword , and the system returns to the initial state 300. If the result list contains exactly one entry, the navigation server returns the result to the user 318; the user selects the entry in the list and accesses the resource 320; the navigation server uses the user's selection to
update global and local measures of popularity 306; and the client is redirected to the resource URI 308.
If the result list 314 contains more than one entry, the navigation server reorders the list using the global or local measure of popularity. The new ordered list of results is returned to the user 324; the user selects one of the entries in the list and accesses the resource 320; the navigation server 204 uses selection to update global and local measures of popularity 306; and the client is redirected to the resource URI 308.
E. Relevance Ranking
Amongst the novel features of the present invention is the method by which the result list is generated 310. The generation of the result list is illustrated in the flowchart of Figure 4. The navigation server 204 constructs a query context vector 400. The query context vector includes the query supplied by the user via the client 200. In some embodiments, the query context vector also includes additional information from the client 200, including but not limited to the language preferred by the user and profile information regarding the user. The query context vector is n-dimensional, wherein n is the number of elements in the vector.
As an example, a four dimensional query context vector may have the following elements:
Keyword = "amazon"
Language = "en-US"
Category = "sic: 23"
Geography = "San Francisco" The navigation server 202 proceeds to impose a set of weights to the elements in the query context vector to generate a weighted query context vector 402. The weights applied to the query context vector reflect the relevance ranking criteria used by the service operating the system to establish the resources most relevant to the query and its context. In an embodiment of the invention, a weight vector is used to perform the weighting operation, wherein the weight vector has n scalar elements which map one-to-one to the elements in the n-dimensional query context vector.
For the query context vector presented in the example above, an example of a corresponding weight vector may have the following elements: Keyword = 0.6
Language = 0.2 Category = 0.1
Geography = 0.1
Other embodiments of the present invention support more general operators for performing the weight operation. In particular, for an n- dimensional query context vector, the weighting operation may be performed by a linear operator, given by a corresponding n by n matrix. In other embodiments, the weight operation may be performed by any non-linear function which maps n-dimensional vectors to n-dimensional vectors.
The Navigation Server 204 proceeds to compute a set of resources from the resource database 212 that are closest to the weighted query context vector 404. The resource records in the resource database may contain the following fields:
ID
Language Description Category
Geography Type
Global Popularity
In an embodiment of the invention, the relevance is computed by taking the normalized dot product of the weighted query context vector with a vector comprising the corresponding fields in the resource records. The Navigation Server 202 then reorders the list of resource records within a predetermined relevance of the query context vector according to their popularity, wherein the popularity is a scalar field in the resource record 406.
F. Constructing Global and Local Measures of Popularity
In embodiments of the invention, global and local measures of popularity are recomputed after a URI is identified for a user 306 308. This
procedure is illustrated in Figure 5. The navigation server 204 builds a resolution notification message that identifies the user selection 500. In embodiments, the resolution notification message also identifies additional information about the selection process. The message may include a unique identifier for the selected resource, which may be the resource ID; the time of selection; resolution specific information, which may include but is not limited to the origin of the selection, such as an entry point, and the mechanism of selection, such as a clink on a link, a keyword typed in full, partially typed keyword, etc.; and user specific information, such as user location, user identity or profile.
The navigation server 202 proceeds to send a resolution event message 502 to the resolution tracking server 206. In embodiments of the invention, the navigation server 202 and the resolution tracking server 206 reside on different, physically separated processors. In such embodiments, the resolution event message may be sent via a store and forward message. In other embodiments, where the navigation server 202 and the resolution tracking server 206 reside on the same processor, a function call may be used to transmit the resolution event message. In embodiments of the invention, the navigation server 202 tracks acknowledgments from the resolution tracking server 206 asynchronously. The popularity server receives the resolution event message 504 and stores it in a persistent store. In embodiments of the invention, this is acknowledged asynchronously.
The popularity server aggregates the resolution events 506 to compute a measure of popularity for each resource in the resource database 212. In embodiments, the popularity server may also compute a local popularity for each user for the given resource. The popularity server then aggregates all measures of popularity into a combined global popularity which is stored in the corresponding field of the resource record 508.
After sending the resolution event message 502 to the resolution tracking server 206, the navigation server 204 also assesses the best content format for the client and retrieves the URI for the resource corresponding to the best content type 510. The navigation server 204 then returns the best URI 512 to the client 200.
G. Conclusion
The foregoing description of various embodiments of the invention has been presented for purposes of illustration and description. It is not intended to limit the invention to the precise forms disclosed. Many modifications and equivalent arrangements will be apparent.