Some systems rely on users to provide content and rate content provided by other users. For example, Amazon.com allows users to review products offered on that web site and to rate the reviews provided by reviewers. In some situations, a particular user may act as both an author, by submitting a review, and a rater, by rating a review submitted by another user.
According to one implementation, a method may be performed by one or more server devices. The method may include receiving, from a user and at a processor of the one or more server devices, a first comment associated with a web page, the user acting in an author capacity with respect to the first comment; receiving, from the user and at a processor of the one or more server devices, a rating of a second comment, the second comment being different from the first comment, the user acting in a rater capacity with respect to the second comment; calculating, using a processor of the one or more server devices, a first ranking score for the user acting in the author capacity based on one or more first signals; calculating, using a processor of the one or more server devices, a second ranking score for the user acting in the rater capacity based on one or more second signals, where the one or more second signals are different from the one or more first signals; and providing one of a first ranked list that includes a plurality of authors, the user being placed in the first list according to the first ranking score, or a second ranked list that includes a plurality of raters, the user being placed in the second list according to the second ranking score.
According to another implementation, one or more server devices may include a processor and a memory. The processor may receive, from a user, a first comment for a web page, the user acting in an author capacity with respect to the first comment; receive, from the user, a rating of a second comment, the second comment being different from the first comment, the user acting in a rater capacity with respect to the second comment; determine a first ranking score for the user acting in the author capacity, the first ranking score being based on one or more first signals; and determine a second ranking score for the user acting in the rater capacity, the second ranking score being based on one or more second signals, the one or more second signals being different from the one or more first signals. The memory may store the first ranking score, and store the second ranking score.
According to yet another implementation, a system may include one or more devices. The one or more devices may include means for determining a first reputation for a user in an author capacity; means for determining a second reputation for the user in a rater capacity, the second reputation being determined differently than the first reputation; means for determining an overall reputation for the user based on the first reputation and the second reputation; and means for providing a ranked list of users, the user being placed in the list at a location based on the overall reputation.
According to a further implementation, a computer-readable medium may contain instructions executable by one or more devices. The computer-readable medium may include one or more instructions to represent a plurality of users, acting in author capacities, as first nodes; one or more instructions to represent the plurality of users, acting in rater capacities, as second nodes; one or more instructions to represent a plurality of comments as third nodes; one or more instructions to form first edges from the first nodes to the third nodes based on relationships between the first nodes and the third nodes; one or more instructions to form second edges from the third nodes to the first nodes based on the relationships between the first nodes and the third nodes; one or more instructions to form third edges from the second nodes to the third nodes based on relationships between the second nodes and the third nodes; one or more instructions to form fourth edges from the first nodes to the second nodes based on relationships between the first nodes and the second nodes; and one or more instructions to form fifth edges from the second nodes to the first nodes based on the relationships between the first nodes and the second nodes. The computer-readable medium may further include one or more instructions to assign initial values to the first nodes, the second nodes, and the third nodes; one or more instructions to run iterations of a graph algorithm to obtain ranking values, the iterations being run until values of the first nodes, second nodes, and third nodes converge or a number of iterations has been reached, where the ranking value of each first node reflects a reputation of the corresponding user acting in the author capacity, where the ranking value of each second node reflects a reputation of the corresponding user acting in the rater capacity, and where the ranking value of each third node reflects an indication of quality of the corresponding comment; and one or more instructions to provide at least one of a list of authors that is ordered based on the ranking values of the first nodes, a list of raters that is ordered based on the ranking values of the second nodes, or a ranked list of comments, the comments in the ranked list being selected based using the ranking values of the comments in the ranked list.
In another implementation, a method may include maintaining, in a memory associated with one or more server devices, a database that associates, for each user of a plurality of users, an identifier for the user with information identifying a first ranking score of the user acting in an author capacity with respect to one or more first comments and a second ranking score of the user acting in a rater capacity with respect to one or more second comments; receiving, at a processor associated with the one or more server devices, a request for a ranking of raters; retrieving, in response to receiving the request and using a processor associated with the one or more server devices, the user identifiers and the second ranking scores, associated with the users, from the database; and providing, using a processor associated with one or more server devices, a list of the user identifiers, where the user identifiers in the list are ranked according to the second ranking scores associated with the users.
In still yet another implementation, a method may be performed by one or more server devices. The method may include determining, using a processor of the one or more server devices, a first reputation for a user acting in a first role; determining, using a processor of the one or more server devices, a second reputation for the user acting in a second role, the second role being different than the first role; associating, in a memory associated with the one or more server devices, an identifier of the user with a first value representing the first reputation and a second value representing the second reputation; and providing, using a processor of the one or more server devices, a ranked list of users, the user being placed in the ranked list at a location based on the first reputation or the second reputation.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more embodiments described herein and, together with the description, explain these embodiments. In the drawings:
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
For some documents, users might like to see comments regarding these documents. A “comment,” as used herein, may include text, audio data, video data, and/or image data that provides an opinion of, or otherwise remarks upon, the contents of a document or a portion of a document. One example of a comment may include a document whose sole purpose is to contain the opinion/remark. Another example of a comment may include a blog post. Yet another example of a comment may include a web page or a news article that remarks upon an item (e.g., a product, a service, a company, a web site, a person, a geographic location, or something else that can be remarked upon).
A “document,” as the term is used herein, is to be broadly interpreted to include any machine-readable and machine-storable work product. A document may include, for example, an e-mail, a web site, a file, a combination of files, one or more files with embedded links to other files, a news group posting, a news article, a blog, a business listing, an electronic version of printed text, a web advertisement, etc. In the context of the Internet, a common document is a web page. Documents often include textual information and may include embedded information (such as meta information, images, hyperlinks, etc.) and/or embedded instructions (such as Javascript, etc.).
In addition to providing comments, users may rate comments authored by other users. For example, as shown by the dotted line in
In one implementation, a user's reputation may be separated into different roles (e.g., an author role and a rater role) and the user's reputation with respect to these different roles may individually contribute to the ranking of comments with which the user is associated in an author capacity or a rater capacity. In addition, the different roles may affect the ranking of each other. That is, a user's author rank may affect the user's rater rank, and the user's rater rank may affect the user's author rank.
The number of users, comments, and web pages, illustrated in
Clients 210 may include client entities. An entity may be defined as a device, such as a personal computer, a wireless telephone, a personal digital assistant (PDA), a lap top, or another type of computation or communication device, a thread or process running on one of these devices, and/or an object executed by one of these devices. In one implementation, a client 210 may include a browser application that permits documents to be searched and/or accessed. Client 210 may also include software, such as a plug-in, an applet, a dynamic link library (DLL), or another executable object or process, that may operate in conjunction with (or be integrated into) the browser to obtain and display comments. Client 210 may obtain the software from server 220 or from a third party, such as a third party server, disk, tape, network, CD-ROM, etc. Alternatively, the software may be pre-installed on client 210. For the description to follow, the software will be described as integrated into the browser.
In one implementation, as described herein, the browser may provide a commenting function. The commenting function may permit a user to generate a comment regarding a document, permit the user to view a comment that was previously generated by the user or by other users, and/or permit the user to rate a previously-generated comment.
Servers 220-240 may include server entities that gather, process, search, and/or maintain documents in a manner described herein. In one implementation, server 220 may gather, process, and/or maintain comments that are associated with particular documents. Servers 230 and 240 may store or maintain comments and/or documents.
While servers 220-240 are shown as separate entities, it may be possible for one or more of servers 220-240 to perform one or more of the functions of another one or more of servers 220-240. For example, it may be possible that two or more of servers 220-240 are implemented as a single server. It may also be possible for a single one of servers 220-240 to be implemented as two or more separate (and possibly distributed) devices.
Network 250 may include any type of network, such as a local area network (LAN), a wide area network (WAN), a telephone network (e.g., the Public Switched Telephone Network (PSTN) or a cellular network), an intranet, the Internet, or a combination of networks. Clients 210 and servers 220-240 may connect to network 250 via wired and/or wireless connections.
Bus 310 may include a path that permits communication among the components of the client/server entity. Processor 320 may include a processor, a microprocessor, or processing logic (e.g., an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA)) that may interpret and execute instructions. Main memory 330 may include a random access memory (RAM) or another type of dynamic storage device that may store information and instructions for execution by processor 320. ROM 340 may include a ROM device or another type of static storage device that may store static information and instructions for use by processor 320. Storage device 350 may include a magnetic and/or optical recording medium and its corresponding drive, or a removable form of memory, such as a flash memory.
Input device 360 may include a mechanism that permits an operator to input information to the client/server entity, such as a keyboard, a mouse, a button, a pen, a touch screen, voice recognition and/or biometric mechanisms, etc. Output device 370 may include a mechanism that outputs information to the operator, including a display, a light emitting diode (LED), a speaker, etc. Communication interface 380 may include any transceiver-like mechanism that enables the client/server entity to communicate with other devices and/or systems. For example, communication interface 380 may include mechanisms for communicating with another device or system via a network, such as network 250.
As will be described in detail below, the client/server entity may perform certain operations relating to determining the reputations of users with respect to their roles as authors and raters. The client/server entity may perform these operations in response to processor 320 executing software instructions contained in a computer-readable medium, such as memory 330. A computer-readable medium may be defined as a logical or physical memory device. A logical memory device may include a space within a single physical memory device or spread across multiple physical memory devices.
The software instructions may be read into memory 330 from another computer-readable medium, such as storage device 350, or from another device via communication interface 380. The software instructions contained in memory 330 may cause processor 320 to perform processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
Comments component 410 may interact with clients 210 to obtain and/or serve comments. For example, a user of a client 210 may access a particular document and generate a comment regarding the document. The document may include some amount of text (e.g., some number of words), an image, a video, or some other form of media. Client 210 may send the comment and information regarding the document to comments component 410.
Comments component 410 may receive the comment provided by a client 210 in connection with the particular document. Comments component 410 may gather certain information regarding the comment, such as information regarding the author of the comment, a timestamp that indicates a date and/or time at which comment was created, the content of the comment, and/or an address (e.g., a URL) associated with the document. Comments component 410 may receive at least some of this information from client 210. Comments component 410 may store the information regarding the comment in comments database 420.
Comments component 410 may also serve a comment in connection with a document accessed by a client 210. In one implementation, comments component 410 may obtain a comment from comments database 420 and provide that comment to client 210 when client 210 accesses a document with which that comment is associated in comments database 420.
Comments component 410 may also receive ratings for comments served by comments component 410. When a comment is presented to a user in connection with presentation of a particular document, the user may be given the opportunity to provide explicit feedback on that comment. For example, the user may indicate whether the comment is meaningful (e.g., a positive vote) or not meaningful (e.g., a negative vote) to the user (with respect to the particular document) by selecting an appropriate voting button. This user feedback (positive or negative) may be considered a rating for the comment by the user. The rating may be a simple positive or negative indication, as described above, or may represent a degree of like/dislike for a comment (e.g., the rating may be represented as a scale from, for example, 1 to 5). Client 210 may send the rating and other information, such as information identifying the particular comment on which the rating is provided, information identifying the user, etc. to comments component 410. Comments component 410 may store the ratings in comments database 420 in association with information identifying the users that submitted the ratings and the comments for which the ratings were submitted.
Comments database 420 may store information regarding comments. In one implementation, comments database 420 may include various fields that are separately searchable. Comments component 410 may search comments database 420 to identify comments associated with a particular author, a particular rater, or a particular document.
Author component 510 may receive signals associated with an author of a comment and calculate an initial author score for the author based on the signals. In one implementation, author component 510 may calculate an initial author score for a user based on, for example, the length of time that the user has been a user of the system (e.g., the commenting system) or registered with the system (e.g., with the assumption that the longer that a user has been a user of the system (or registered with the system), the more trustworthy the user is). Author component 510 may further calculate the initial author score based on additional or other signals relating to the author. For example, the age of the author, if known, may be used in the initial author score calculation (e.g., with the assumption, for example, that the users between a certain age range may provide better comments). In addition, the education background of the author, if known, may be used in the initial author score calculation (e.g., with the assumption, for example, that the users with higher degrees may provide better comments). When multiple signals are used in calculating the initial author score, author component 510 may weigh some of the signals more heavily than other signals.
Rater component 520 may receive signals associated with a rater of a comment and calculate an initial score for the rater based on the signals. In one implementation, rater component 520 may calculate an initial rater score for a user based on the ratings provided by the user on a group of comments and the ratings provided by other users for the same group of comments. For example, rater component 520 may identify the comment ratings submitted by the user and compare how the user rated the different comments to how the majority of users rated the different comments. If rater component 520 determines that the user has agreed with the consensus on a majority of the user's ratings, rater component 520 may calculate a higher (i.e., better) initial rater score for that user. Similarly, when rater component 520 determines that the user has disagreed with the consensus on a majority of the user's ratings, rater component 520 may calculate a lower (i.e., worse) initial rater score for that user. Rater component 520 may consider other signals in calculating the initial rater score. When multiple signals are used in calculating the initial rater score, rater component 520 may weigh some of the signals more heavily than other signals.
Comment component 530 may receive signals associated with a comment and calculate an initial score for the comment based on the signals. In one implementation, comment component 530 may calculate an initial comment score for a comment based on the length of the comment. In this situation, longer comments (e.g., comments containing more than a threshold number of words) may be considered to be better comments than comments containing a fewer number of words. Comment component 530 may alternatively or additionally consider a language model of the comment. For example, the closer the language of a comment is to Standard English (or some other language), the better the comment may be considered to be. Other signals may alternatively or additionally be used. When multiple signals are used in calculating the initial comment score, comment component 530 may weigh some of the signals more heavily than other signals.
Rank calculation component 540 may combine the initial author scores, initial rater scores, and initial comment scores to calculate author ranking scores, rater ranking scores, and comment ranking scores. The author ranking scores may reflect reputations of the corresponding users as authors. For example, a higher ranking score may reflect that a user has a better reputation as an author over another user with a lower ranking score. The rater ranking scores may reflect reputations of the corresponding users as raters. The comment ranking scores may represent the quality of the corresponding comments.
In one implementation, rank calculation component 540 may calculate the author ranking scores, rater ranking scores, and comment ranking scores based on a graph. For example, rank calculation component 540 may represent every author, every rater, and every comment as nodes. Rank calculation component 540 may further represent relationships between these nodes as edges (or links). For example, an edge may be present between a first node that represents an author and a second node that represents the comment that the author submitted. Thus, author nodes may be linked to the comment nodes that the authors submitted and the comment nodes may be linked to the author nodes, allowing reputations of author nodes to be passed to comment nodes and qualities of comment nodes to be passed to author nodes. Additionally, an edge may be present between a first node that represents a rater and a second node that represents the comment for which the rater has submitted a rating. Thus, rater nodes may be linked to comment nodes and comment nodes may be linked to rater nodes, allowing reputations of rater nodes to be passed to comment nodes and qualities of comment nodes to be passed to rater nodes. Additionally, an edge may be present between a first node that represents a user in his/her author capacity and a second node that represents the user in his/her rater capacity. Thus, for example, referring back to
In one implementation, some of the edges may be weighed more heavily than other edges. For example, an edge from an author node to a rater node may be assigned a higher weight than the weight assigned to an edge from the rater node to the author node. The different weights may, for example, be based on the observation that an author with a good reputation may likely also be a good rater, but a good rater may not necessarily be a good author.
Once the nodes and edges have been represented in the graph, ranking calculation component 540 may calculate ranking scores for the nodes. In one implementation, rank calculation component 540 may use an algorithm similar to the PageRank™ algorithm to calculate the ranking scores for the nodes. Thus, for example, rank calculation component 540 may assign the initial scores calculated by author component 510, rater component 520, and comment component 530 to the nodes. Rank calculation component 540 may run iterations of the graph algorithm (where all or a portion of the initial scores of the nodes are conveyed to nodes to which the node links) until the ranking scores converge. In another implementation, rank calculation component 540 may terminate running iterations of the graph algorithm after a fixed number of iterations (without checking for convergence). In still another implementation, rank calculation component 540 may terminate running iterations of the graph algorithm when either the values converge or a predefined maximum number of iterations have been reached. In some implementations, rank calculation component 540 may use one or more other algorithms to calculate author ranking scores, rater ranking scores, and comment ranking scores or simply take the initial scores calculated by author component 510, rater component 520, and comment component 530 as the ranking scores. Once calculated, rank calculation component 540 may store the ranking scores in a database, such as databases 600 and 700.
As illustrated, database 600 may include a group of entries with the following exemplary fields: a user identifier (ID) field 610, an author ranking field 620, a rater ranking field 630, and a user ranking field 640. Database 600 may contain additional fields (not shown) that aid comment component 410 in providing information relating to users.
User identifier field 610 may store information that identifies a user. For example, user identifier field 610 may store a sequence of characters that uniquely identifies a user. In one implementation, the sequence of characters may correspond to a user name, an e-mail address, or some other type of identification information. Author ranking field 620 may store a value representing the author ranking score (e.g., as calculated by rank calculation component 540) for the particular user, identified in user identifier field 610, when acting in an author capacity. Rater ranking field 630 may store a value representing the rater ranking score (e.g., as calculated by rank calculation component 540) for the particular user, identified in user identifier field 610, when acting in a rater capacity. User ranking field 640 may store a value representing an overall user ranking score for the particular user identified in user identifier field 610. The user ranking score may be calculated by combining the author ranking score with the rater ranking score. In one implementation, rank calculation component 540 may weigh the author ranking score for a particular user more heavily than the rater ranking score for the user, or vice versa. Rank calculation component 540 may then add the weighted scores to produce the user ranking score. Other ways of combining the author ranking score with the rater ranking score may alternatively be used. The user ranking scores may represent overall reputations for the users.
As illustrated, database 700 may include a group of entries with the following exemplary fields: a comment identifier field 710 and a comment ranking field 720. Database 700 may contain additional fields (not shown) that aid comment component 410 in providing information relating to comments.
Comment identifier field 710 may store information that identifies a comment. For example, comment identifier field 710 may store a sequence of characters that uniquely identifies a comment. Comment ranking field 720 may store a value representing the comment ranking score (e.g., as calculated by rank calculation component 540) for the particular comment identified in comment identifier field 710.
The process of
The process may further include computing initial author scores based on the received signals (block 820). For example, author component 510 may calculate scores for each of the different author signals received and may combine the scores to obtain the initial author scores. As a very simple example, assume that author component 510 assigns a score to an author based the length of time that the author is a user of the system. For example, if the author has been a user of the system for a very short amount of time (below a first threshold), the author may be assigned a lowest (or worst) score. If the author has been a user of the system for more than the very short amount of time (above the first threshold), but less than a second, longer amount to time (below a second threshold), the author may be assigned a medium score. In addition, if the author has been a user of the system for more than the second, longer amount of time (above the second threshold), the author may be assigned a highest (or best) score.
Once scores for the different signals are calculated, author component 510 may combine the scores to obtain the initial scores for the authors. In one implementation, author component 510 may, for each individual author, add the individual scores for the individual author to obtain an initial author score for the author. Author component 510 may, in some implementations, weigh the score associated with one of the signals more heavily than the score associated with another one of the signals. Other manners of combining the scores to obtain the initial author scores may alternatively be used.
The process may further include storing the initial author scores (block 830). For example, author component 510 may store the initial author scores in a database, such as database 600. In one implementation, author component 510 may store the initial author scores in field 620 in the appropriate rows of database 600.
The process of
The process may further include determining, for each comment rated by the rater, how other raters rated the comment (block 920). For example, rater component 520 may access, using information identifying a comment, all the ratings submitted for the comment from comments database 420 and may identify, for each comment, how the other raters rated the comment.
The process may further include computing an initial score for the rater based on how the rater rated the comments and how other raters rated the same comments (block 930). For example, rater component 420 may compare, for each comment that the rater rated, the rater's rating to the ratings submitted by all other raters of the comment. Rater component 420 may calculate a score for each comment based on whether the rater agreed with the majority of raters of the comment. For example, if the rater's rating agreed with the ratings of the majority of raters of the comment, the rater may be assigned a first (or better) score for that particular comment. On the other hand, if the rater's rating disagreed with the ratings of the majority of raters of the comment, the rater may be assigned a second, different (or worse) score for that particular comment. Rater component 420 may add the scores for the comments for which the rater submitted ratings to obtain the initial rater score for the rater. In one implementation, rater component 420 may weigh scores for some of the rater's ratings more heavily than others of the rater's ratings. Other manners of combining the scores to obtain the initial rater score may alternatively be used. In addition, other manners of determining the initial rater score may alternatively be used.
The process may further include storing the initial rater score (block 940). For example, rater component 520 may store the initial rater score in a database, such as database 600. In one implementation, rater component 520 may store the initial rater score in field 630 in the appropriate row of database 600 for the user identifier with which the rater is associated.
The process of
The process may further include computing initial comment scores based on the received signals (block 1020). For example, comment component 530 may calculate scores for each of the different signals received and may combine the scores to obtain the initial comment scores. Once scores for the different signals are calculated, comment component 530 may combine the scores to obtain the initial scores for the comments. In one implementation, comment component 530 may add the individual scores for the individual comments to obtain an initial comment score for each individual comment. Comment component 530 may, in some implementations, weigh the score from one of the signals more heavily than the score from another one of the signals. Other manners of combining the scores to obtain the initial comment scores may alternatively be used.
The process may further include storing the initial comment scores (block 1030). For example, comment component 530 may store the initial comment scores in a database, such as database 700. In one implementation, comment component 530 may store the initial comment scores in field 720 in the appropriate rows of database 700.
The process of
In some implementations, a first author may identify one or more second authors as “favorite” authors or may subscribe to receive indications when the one or more second authors submit comments. In these implementations, rank calculation component 540 may provide an edge from a first node, representing a first user acting in his/her author capacity, and a second node, representing a second user acting in his/her author capacity, where the first user has indicated the second user as a “favorite” or has subscribed to the second user. In this way, a user's author reputation can be influenced by another user's author reputation.
The process may further include assigning initial values to the nodes in the graph (block 1120). For example, rank calculation component 540 may assign the initial author scores (e.g., as calculated above with respect to
The process may further include calculating ranking scores for all the nodes in the graph (block 1130). In one implementation, rank calculation component 540 may use an algorithm similar to the PageRank™ algorithm to calculate the ranking scores for the nodes. Thus, for example, rank calculation component 540 may run iterations of the graph algorithm (where all or a portion of the initial scores of the nodes are conveyed to nodes to which the node links). Other techniques for calculating the ranking scores can alternatively be used.
The process may include determining whether the calculated ranking scores have sufficiently converged and/or a number of iterations have been reached (block 1140). As described above, rank calculation component 540 may run iterations of the graph algorithm until the values of the nodes converge, until a number of iterations (e.g., a threshold number) has been reached, or either when the values of the nodes have converged or the number of iterations has been reached. If the calculated ranking scores have not sufficiently converged and/or the number of iterations has not been reached (block 1140—NO), then rank calculation component 540 may continue running iterations of the graph (block 1130). If, on the other hand, the calculated ranking scores have sufficiently converged or the number of iterations has been reached (block 1140—YES), the ranking scores may be stored (block 1150). For example, rank calculation component 540 may store the ranking scores in one or more databases, such as databases 600 and 700. In one implementation, the storage of the author ranking scores may act to replace the initial author scores in field 620 of database 600, the storage of the rater ranking scores may act to replace the initial rater scores in field 630 of database 600, and the storage of the comment ranking scores may act to replace the initial comment scores in field 720 of database 700.
The process may further include using the calculated ranking scores (block 1160). For example, the author ranking scores may be used for providing a ranked list of authors. Similarly, the rater ranking scores may be used for providing a ranked list of raters. Still further, the comment ranking scores may be used for selecting a highest ranking group of comments for display with a particular document.
Other techniques for calculating the author, rater, and comment ranking scores may alternatively be used. For example, in one implementation, the initial comment ranking scores may be calculated. The initial author ranking scores may be then calculated using the appropriate initial comment scores (in addition to the author signals). Thereafter, when no edges between authors and comments would be necessary when graphically representing the authors, raters, and comments since an initial author score would already reflect the qualities of the comments that the particular author submitted.
The process of
The process may further include retrieving the requested information from a database, such as database 600 or another database (block 1220). The retrieved information may include, for example, the user's author ranking score, the user's rater ranking score, and a list of comments that the user has authored and/or rated. The retrieved information may include additional, fewer, or different information relating to the user.
The process may further include providing the retrieved information (block 1230). For example, server 220 may provide a graphical user interface to client 210 that depicts the retrieved information.
The process of
The process may further include retrieving rater ranking information from a database, such as database 600 or another database (block 1420). For example, server 220 may access database 600 and retrieve information identifying the users (e.g., from field 610) and the corresponding ranking values from rater ranking field 630.
The process may include providing the rater ranking information (block 1430). For example, server 220 may provide the rater ranking information, sorted based on rank (i.e., with the highest ranking rater listed first).
In one implementation, the topical categories depicted in
As described above in connection with
Implementations, described herein, may separate a user's reputation into different roles: as an author and as a rater. Ranking values may be determined for each of the user's different roles and these ranking values may be used to rank the comments that the user authored and rated.
The foregoing description provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention.
For example, while a particular manner of calculating an initial rater score was described above with respect to
Also, certain portions of the implementations have been described as “logic” or a “component” that performs one or more functions. The terms “logic” or “component” may include hardware, such as a processor, an ASIC, or a FPGA, or a combination of hardware and software (e.g., software running on a general purpose processor that transforms the general purpose processor to a special-purpose processor that functions according to the exemplary processes described above).
Further, it has been described that scores are generated for authors, raters, and/or comments. The scoring scheme has been described where higher scores are better than lower scores. This need not be the case. In another implementation, the scoring scheme may be switched to one in which lower scores are better than higher scores.
It will be apparent that aspects described herein may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement aspects does not limit the embodiments. Thus, the operation and behavior of the aspects were described without reference to the specific software code—it being understood that software and control hardware can be designed to implement the aspects based on the description herein.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of the invention. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one other claim, the disclosure of the invention includes each dependent claim in combination with every other claim in the claim set.
No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.