It’s about time I did this … Let’s start with Wikipedia’s definition of reputation:
Reputation is the general opinion (more technically, a social evaluation) of the public toward a person, a group of people, or an organization.
Following the link towards social evaluation, we learn:
The evaluation of an entity x is "a belief of an evaluating agent e about x’s usefulness with regard to a goal p".
So, in order to determine the reputation of, say, a person x on the ‘net, we need:
- agreement on the person (x)
- agreement on the goal (p)
- a set of entities (e) that are, or have evaluated the usefulness of x with respect to p.
For example, let’s take the blog comment spam problem as an example. For this example, the goal p could be stated as "permit as many blog comments as possible on my posts, while keeping the amount of spam down as much as possible." In order to determine whether or not I (or my software, on my behalf) should let a new comment through, I thus need to be able to:
- determine who submitted the comment (x)
- determine a suitable list of entities (e) that have an opinion on the reputation of x
- obtain their evaluation
- form my own opinion, based on the evaluations of the entities e, potentially taking into account the reputations of the various e’s.
YADIS/OpenID/LID directly address the first of these. Unless I can be sure who x is whose reputation I am trying to determine (i.e. I need to be sure that nobody can pretend to be somebody else), no reputation approach will get very far. YADIS/OpenID/LID provide a number of the facilities to do so, e.g. based on shared Diffie-Hellman secrets or decentralized private/public key pairs, either browser-based or software-agent to software-agent.
YADIS and LID also address the second: with the LID FOAF profile, or by making FOAF a YADIS service, I can determine a list of entities, provided by x, who I could consult to obtain their evaluation. (example: some person x commenting on a technical article could point to having been a book author or blogger at O’Reilly, which would increase their reputation among most technical people).
On the third item, one could easily build an additional LID profile that allowed reputation queries on the entity’s identity URL. Nobody has done this yet, as far as I know, but doesn’t appear to be very hard.
Compounding scores is a bit trickier and outside of the realm of YADIS/OpenID/LID. But that’s where the core problem of reputation services is, not in the previous three items, which essentially represent the necessary foundation before reputation services can really be built. Fortunately, this foundation is rapidly becoming a reality… dear reputation guys, I hope you are not re-inventing the identity wheel but focus on the actual reputation bit!