PATENT DOCUMENT

Publication Number: US-8555172-B2
Application Number: US-66208210-A
Country: US
Kind Code: B2

Title: Method, system, and computer readable medium for managing resource links

Abstract:
Resource links also known as Unified Resource Links (URL&#39;s), bookmarks, hyperlinks etc. located in a category hierarchy. The resource links are used to navigate on the world wide web, on a local machine, on the interact, or on an intranet. A method of assessing a users competence in a category in the category structure comprising the steps of analyzing the users interaction with the resource links placed in the hierarchy table for that category and extracting a competence level for the user in that category.

Claims:
The invention claimed is: 
     
       1. A method of obtaining a list of resource links indexed by categories, the resource links pointing to resources on a network, the method comprising:
 receiving, at a server computer, data representing user interactions with resource links from a plurality of clients over the network, the resource links being associated with a plurality of categories; 
 for each user interaction of each category, performing following operations:
 generating a usage entry in a usage table, wherein each usage entry includes a set of activity parameters including a link identifier (ID) and a user ID identifying a user interacting with a resource link identified by the link ID, 
 analyzing a user&#39;s interaction with the resource links placed in said category, including retrieving, from the usage table, the usage entries for resource links within said category, and 
 calculating a user rating for the user in said category; and 
 
 rating the resource links from the categories, including:
 retrieving resource links placed within a given category, and 
 rating the retrieved resource links using one or more accumulated sets of activity parameters in the usage table, the resource links&#39; ratings being based on calculated user ratings of a plurality of users who have previously interacted with a resource link within the given category. 
 
 
     
     
       2. A method according to  claim 1 , wherein the user rating within said category is calculated by assessing a frequency or duration of the user&#39;s interaction with resources pointed to by a resource link in said category. 
     
     
       3. A method according to  claim 1 , wherein the user rating within said category is calculated by assessing when the user has interacted with resources pointed to by a resource link in said category. 
     
     
       4. A method according to  claim 1 , wherein the resource links ratings are arranged in a rated list of resource links where higher rated resource links are accessed by higher rated users. 
     
     
       5. A method according to  claim 1 , wherein the resource links ratings are based on the number of usage entries for each resource link, such that content accessed the most often by all clients is rated higher. 
     
     
       6. A method according to  claim 1 , wherein the resource links ratings are based on usage by a subset of users who share certain characteristics, where these certain characteristics include the rating of the users within the requested category. 
     
     
       7. A method according to  claim 1 , wherein the resource links ratings are based at least in part on a timestamp submitted as part of the activity parameters. 
     
     
       8. A method according to  claim 1 , wherein the resource links ratings are based at least in part on a modification date submitted as part of the activity parameters. 
     
     
       9. A method according to  claim 1 , wherein the user&#39;s rating in said category is calculated as a linear function of all the user&#39;s usage entries within said category divided by the total number of usage entries within said category. 
     
     
       10. A method according to  claim 1 , wherein the user&#39;s rating in said category is calculated as a logarithmic function where each usage entry within said category from the user represents a slightly different change in the user&#39;s rating in said category. 
     
     
       11. A method according to  claim 1 , wherein the user rating is a floating point number with a minimum value of 1.0 for users with no usage entries within said category, and a higher value for users with usage entries within said category, and each of the resource links ratings are a multiplication of the user ratings of all users that have accessed said resource link. 
     
     
       12. A method according to  claim 1 , wherein the calculation of a user rating within said one category comprises obtaining ratings of resource links in said category that the user has accessed, and the calculated user rating is based at least in part on the obtained resource link ratings. 
     
     
       13. A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform a method of obtaining a list of resource links, the resource links pointing to resources on a network, the method comprising:
 receiving data representing user interactions with resource links from a plurality of clients over the network, the resource links being associated with a plurality of categories; 
 for each user interaction of each category, performing following operations:
 generating a usage entry in a usage table, wherein each usage entry includes a set of activity parameters including a link identifier (ID) and a user ID identifying a user interacting with a resource link identified by the link ID, 
 analyzing a user&#39;s interaction with the resource links placed in said category, including retrieving, from the usage table, the usage entries for resource links within said category, and 
 calculating a user rating for the user in said category; and 
 
 rating the resource links from the categories, including:
 retrieving resource links placed within a given category, and 
 rating the retrieved resource links using one or more accumulated sets of activity parameters in the usage table, the resource links&#39; ratings being based on calculated user ratings of a plurality of users who have previously interacted with a resource link within the given category. 
 
 
     
     
       14. A medium according to  claim 13 , wherein the user rating within said category is calculated by assessing a frequency or duration of the user&#39;s interaction with resources pointed to by a resource link in said category. 
     
     
       15. A medium according to  claim 13 , wherein the user rating within said category is calculated by assessing when the user has interacted with resources pointed to by a resource link in said category. 
     
     
       16. A medium according to  claim 13 , wherein the resource links ratings are arranged in a rated list of resource links where higher rated resource links are accessed by higher rated users. 
     
     
       17. A medium according to  claim 13 , wherein the resource links ratings are based on the number of usage entries for each resource link, such that content accessed the most often by all clients is rated higher. 
     
     
       18. A medium according to  claim 13 , wherein the resource links ratings are based on usage by a subset of users who share certain characteristics, where these certain characteristics include the rating of the users within the requested category. 
     
     
       19. A medium according to  claim 13 , wherein the resource links ratings are based at least in part on a timestamp submitted as part of the activity parameters. 
     
     
       20. A medium according to  claim 13 , wherein the resource links ratings are based at least in part on a modification date submitted as part of the activity parameters. 
     
     
       21. A data processing system, comprising:
 a processor; and 
 a memory coupled to the processor for storing instructions, which when executed from the memory, cause the processor to
 receive data representing user interactions with resource links from a plurality of clients over the network, the resource links being associated with a plurality of categories, 
 for each user interaction of each category, perform following operations:
 generating a usage entry in a usage table, wherein each usage entry includes a set of activity parameters including a link identifier (ID) and a user ID identifying a user interacting with a resource link identified by the link ID, 
 analyzing a user&#39;s interaction with the resource links placed in said category, including retrieving, from the usage table, the usage entries for resource links within said category, and 
 calculating a user rating for the user in said category, and 
 
 rate the resource links from the categories, including
 retrieving resource links placed within a given category, and 
 rating the retrieved resource links using one or more accumulated sets of activity parameters in the usage table, the resource links&#39; ratings being based on calculated user ratings of a plurality of users who have previously interacted with a resource link within the given category. 
 
 
 
     
     
       22. A system according to  claim 21 , wherein the user rating within said category is calculated by assessing a frequency or duration of the user&#39;s interaction with resources pointed to by a resource link in said category. 
     
     
       23. A system according to  claim 21 , wherein the user rating within said category is calculated by assessing when the user has interacted with resources pointed to by a resource link in said category. 
     
     
       24. A system according to  claim 21 , wherein the resource links ratings are arranged in a rated list of resource links where higher rated resource links are accessed by higher rated users. 
     
     
       25. A system according to  claim 21 , wherein the resource links ratings are based on the number of usage entries for each resource link, such that content accessed the most often by all clients is rated higher. 
     
     
       26. A system according to  claim 21 , wherein the resource links ratings are based on usage by a subset of users who share certain characteristics, where these certain characteristics include the rating of the users within the requested category. 
     
     
       27. A system according to  claim 21 , wherein the resource links ratings are based at least in part on a timestamp submitted as part of the activity parameters. 
     
     
       28. A system according to  claim 21 , wherein the resource links ratings are based at least in part on a modification date submitted as part of the activity parameters.

Description:
PRIORITY STATEMENT 
     This application is a continuation of application Ser. No. 11/437,750, filed May 22, 2006, now U.S. Pat. No. 7,694,227, issued Apr. 6, 2010, which is a continuation of application Ser. No. 10/129,332, filed May 3, 2002, now U.S. Pat. No. 7,073,132, issued Jul. 4, 2006, which is a 35 U.S.C. §371 application of PCT/DK00/00614, filed Nov. 3, 2000, the entire contents of each of which is incorporated herein by reference. 
    
    
     This invention relates to finding relevant resources on a large network. This has traditionally been done either by having a program search through the resources and placing indexed resource links in a database, or by having a human editor sort the resources and place resource links to the resources in a category hierarchy. Resource links are links pointing to a resource on the local computer or on a network. These resource links may include hyperlinks or bookmarks to documents on the Internet. A user may then conduct a search within the indexed resource links, and receive a search result based on matches to his search criteria. 
     The problem with these two approaches will be described below: 
     Having a program search through a large amount of content on the Internet or an Intranet and place indexed resource links in a searchable database poses some problems. It has proven to be extremely hard to create a program that can locate relevant content. 
     The main problem is that traditional programs will base the result of a search query on a computerized and stringent set of criteria, which often fall short of the complexity of the real world. It is very hard to set up algorithms for locating and rating the resource links that are relevant for a specific user&#39;s search. This is problematic since a very high number of search results are often returned. It is even harder to rate these returned results, based on quality or popularity because no measurement of these properties usually exists. 
     The problem is particularly evident when searching for content on the Internet, or on a large Intranet. An Intranet is a number of computers connected in a closed network. 
     Having a human editor sort through content and sorting resource links to the content into category hierarchy containing several categories and subcategories poses other problems. It is very ineffective to use humans to index information, especially if the network is large, such as the Internet. This is problematic because it relies on the knowledge of the individual sorting the content. There is a fair chance that at least some resource links to content will be indexed or even rated incorrectly. 
     Furthermore, the problem with both of these approaches is that neither of the above systems relate the search results to the unique characteristics of the user conducting the search query. This is a problem since two users conducting a search containing the same search string may expect entirely different results, based on what prior knowledge and interests they have. 
     The known techniques to address these problems are inadequate, and fall far short of the goal. Particularly it has been hard to create a system that only indexes resource links to relevant pieces of content based on the users preferences. Typically a search query may result in thousands of returned results where only a marginal part are truly relevant for the user. 
     Thus, the problem with finding relevant content on a large network is that a large number of irrelevant results are returned to a search query, and that an editor does not possess the knowledge or the resources to sort a large number or resource links pointing to relevant content. 
     Implementing the device described below solves this problem. 
     Consequently, this invention relates to indexing content on a large network, rating it by relevance, filtering it, and presenting it to a user. 
    
    
     
       The invention will be explained more fully below in connection with a preferred embodiment and with reference to the drawing, in which: 
         FIG. 1  shows a computer system with a client computer and a server computer for running a program according to the invention; 
         FIG. 2  shows components on the server computer; 
         FIG. 3  shows components on the client computer; 
         FIG. 4  shows a category hierarchy; 
         FIG. 5  shows a flowchart of communicating resource link information between the client and the server; 
         FIG. 6  shows a detailed flowchart of filtering and ordering resource links; 
         FIG. 7  shows a flowchart of rating a user&#39;s competence within a category; and 
         FIG. 8  shows a detailed flowchart of rating resource links according to usage data. 
     
    
    
       FIG. 1  shows a computer system with a client computer and a server computer for running a program according to the invention. A client communicates with a server via LAN or WAN. The client consists of a browser ( 11 ) and a client ( 12 ). The client communicates via a network layer ( 13 ) with the server ( 20 ) via WAN or LAN. The server consists of a server application ( 21 ) that communicates with the client protocol via a network layer ( 22 ). 
     The client application  12  monitors the client file- or web browser  11  activity and registers parameters representative of this activity. These parameters are submitted to the server application  21  via the network layer  13  either automatically or upon a user&#39;s command. The parameters can be e.g. the point of time at which a resource link is activated, the type of interaction, the time a connection to the resource was open, a reference to the resource link or the link itself, etc. The type of interaction can be e.g. clicking a link to the resource in a document, typing the URL to the resource in a browser, creating a bookmark to the resource etc. 
     The activity of the file- or web browser  11  can be monitored by direct interaction with the browsers event and properties system or by monitoring log data stored by the browser, or by monitoring network data traffic. 
     All client applications have a unique identification number. These parameters are submitted to the server application  21  as a packet with the unique identification number appended for the purpose of relating the parameters to a specific client at the server. 
       FIG. 2  shows components on the server computer. The server application  47  requests and updates data via a database application  46 . In the database application data is kept in a number of tables: A category table  42 ; a resource link table  43 ; a user table  44 ; a submit table  45 ; and a usage table  48 . 
     Information in the form of parameters in packets received from client applications is processed by the server application and stored in different tables. Parameters relating to client interaction with resource links are stored in the usage table  48 . If the type of client interaction is creating a bookmark to the resource, the parameters may be stored in the submit table  45 . 
     A category hierarchy  41  wherein resource links are ordered exists on the server. This hierarchy comprises a category table  42  and a link table  43 . If a resource link submitted by a client exists in the link table  43 , the resource link is already associated with a category ID in the category table  42 .
         The category table  42  consists of at least, but not necessarily just the following fields:
           ID. ID comprises a unique ID associated with the category.   Name. Comprises the name of the category   
           The link table  43  consists of at least, but not necessarily just the following fields:
           ID. ID comprises a unique ID associated with the link.   URL (Uniform Resource Locator)   Title. The title of the link. This title may be derived from the site that is linked to, or from user-input.   
               

     Together  42  and  43  comprise the hierarchy database  41 .
         The user table  44  consists of at least, but not necessarily just the following fields:
           ID. A unique user ID to identify the user.   Userinfo, that may, among other things, consist of a name, codeword and demographical data.   
           The submit table  45  consists of at least, but not necessarily just the following fields:
           Link ID, that refers to  43 .   User ID, that refers to  44     Category ID, that refers to  42     Timestamp that asses when an item in the submit table has been accessed and for how long.   
           The usage table  48  consists of at least, but not necessarily just the following fields
           Link ID, that refers to  43     User ID, that refers to  44     Timestamp that asses when an item in the submit table has been accessed and for how long.   
               

       FIG. 3  shows components on the client computer. Describes the client. The figure describes the client application in fig. A. The client comprises the following parts:
         User Login  31     Submit favourites  32     Search  33     Present hierarchy  34     Use links  35         

       FIG. 4  shows a category hierarchy. The category hierarchy is stored in the hierarchy table  41 . The hierarchy consists of a number of levels. On each level there are one or more categories. Each category may contain one or more categories and/or items in the form of resource links. In any category, on any given level in the category hierarchy it is possible to view items deriving from that category or any category within it. For instance viewing items in the category  121  on level  0 , may include items  124 ,  125  and  126 , but also items  129 ,  130 ,  136 ,  137 ,  138 ,  139 ,  133 ,  134 ,  141 , and  142 . Furthermore, viewing items in the category  123  on level  1 , may include items  133  and  134 , but also items  138 ,  139 ,  141  and  142 , but not items  129 ,  130 ,  136  or  137 . 
     The category hierarchy  120  can be viewed and browsed by a user of a client application  12 , and viewed items may be presented in a filtered and/or rated list in accordance with claim  1 . Filter and rating criteria may be set by the individual users. The individual users may also choose to move certain categories or items to other locations in the hierarchy. However, this may only affect the local presentation of the hierarchy for that user. If a user for instance chooses to do so he may have a level  3  category  135  presented in level  0  by moving it to this level. The category will remain in the same place in the server hierarchy. 
       FIG. 5  shows a flowchart of communicating resource link information between the client and the server. The client application requests to view a certain category ( 51 ) by sending a request to the server application ( 21 ). The server application retrieves all resource links and categories placed within the category in question  61 , these resource links are filtered, rated and ordered  64 , and the process is repeated recursively for each category retrieved  66 . After all requested resource links have been retrieved, they are sorted by rating  67  and the sorted list is sent to the client application  68 . The client application saves every new incoming link ( 53 ), waits until all links have arrived, or the server times out  54  and makes a final sorting before the list is presented to the user  55 . 
       FIG. 6  shows a detailed flowchart of filtering and ordering resource links. The server application reviews every resource link  70 , retrieves the category ID of the associated category  71 , and a list of usage entries relating to the current item  72 . The application then rates the item according to the current rating criteria  73 . If the item passes the current filter criteria  74  it is added to the list along with the item rating  75  and processing moves onto the next resource link in the list  76 . Finally, all links are sorted according to their rating  77 . 
     The current filter criteria may be defined by either the user or by the server, and may also comprise a separate rating and filtering process according to a set of rating criteria different those used previously  73 . Thus, it may be possible to prevent resources that share certain characteristics from appearing in a listing. 
       FIG. 7  shows a flowchart of rating a user&#39;s competence within a category (c). Category ID and user ID are retrieved  91  and usage data relating to said users usage of resources in said category (c) is retrieved from the usage table  48 . For each of these usage entries u(n)  93  activity parameters are retrieved  94  and the users rating in said category R(c) is adjusted accordingly  95 . This is repeated until there are no usage entries for this category and user  96 . Finally, the calculated user rating for this category is stored in the user table  44 . 
     The calculation of a users rating in a category R(c), may be based on various formulas;
         R(c) is a linear function where each usage entry u(n) adds a fixed value to R(c)   R(c) is a linear function where each usage entry u(n) adds a fixed value to R(c), and divided by the total number of usage entries in said category (c).   R(c) is a logarithmic function, where each usage entry u(n) represents a slightly different change in R(c).       

     The rating R(c) may be a floating point number with a minimum value of 1.0 for users with no usage entries within said category, and a higher value for users with more usage entries within said category. 
       FIG. 8  shows a detailed flowchart of rating resource links according to usage data. For every line in the usage table  48  relating to the current resource link  80 , the application retrieves the user ID for the user that submitted the data, which comprise that usage entry, and a rating R(c) of that user&#39;s competence in the current category (c)  82 . The current resource link&#39;s rating is then multiplied by R(c)  83  and the process is repeated until there are no more lines in the usage table  48  for that category  84 . 
     This results in a rated list of resource links where the highest ranked are those that most high ranked user have accessed. Thus resources that are generally used more by people with higher competence within the current category are rated highest. 
     This rating could be performed in a number of other ways using the accumulated set of activity parameters in the database submitted by all the clients programs installed on machines, from which resources within said category has been accessed:
         The rating could be based solely on the number of usage entries for each resource link. Thus, content accessed the most by all users of the system would be rated highest.   The rating could be based on usage by a subset of users, who share certain characteristics. These characteristics may include a rating of the user&#39;s competence within said category.   The rating could be based on the timestamp submitted as part of the activity parameters. Thus, content accessed more recently by a larger number of people may be rated highest.   The rating could be based on a modification date submitted as part of the activity parameters. Thus, content updated more recently may be rated highest.       

     The invention may be embodied as a computer program or a part of a computer program, which may be loaded into the memory of a computer and executed therefrom. The computer program may be distributed by means of any data storage or data transmission medium. The storage media can be magnetic tape, optical disc, compact disc (CD or CD-ROM), mini-disc, hard disk, floppy disk, ferro-electric memory, electrically erasable programmable read only memory (EEPROM), flash memory, EPROM, read only memory (ROM), static random access memory (SRAM), dynamic random access memory (DRAM), ferromagnetic memory, optical storage, charge coupled devices, smart cards, etc. The transmission medium can be a network, e.g. a local area network (LAN), a wide area network (WAN), or any combination thereof, e.g. the Internet. The network may comprise wire and wire-less communication links. Via the network a software embodiment (i.e. a program) of the invention, or a part thereof, may be distributed by transferring a program via the network.

Metadata:
Filing Date: 20100330
Publication Date: 20131008
Grant Date: 20131008
Priority Date: 19991103
Inventors: RYDAHL MADS
TOBIASEN MAX KIM
Assignee: APPLE INC
CPC Classifications: [{"code": "G06F16/9535", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F16/951", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F16/9535", "inventive": true, "first": false, "tree": "[]"}]
Family ID: 8106325