Commenting
From P2P-Fusion
| Commenting
| |
|---|---|
| Depends on: | id, access management |
| Metadata: | userid, text, timestamp, reply-to, signature |
| Scenarios: | all |
| Communities: | all |
| Importance: | high |
Commenting allows users to append remarks to some object (possibly another comment). (Forums will be discussed on their own page.)
Contents |
Description
Commenting allows users to provide public feedback. Users can attach remarks to certain objects (articles, images, files, users etc), and in some cases to the comments of others. The contents of a comment can range from simple text to arbitrary HTML and attached files. Comments are very flexible - they can be used to provide feedback (rating, bug reports or suggestions) to the author, to expand the original article, to evaluate or to criticize, to correct erroneous information, to link to related material, to help users contact each other and/or the author, or to give tech support to each other. Comments are also the fundamental tool for communities to organize themselves, providing an asimmetric communication channel.
Data
Input
Commenting usually consists of the user selcting the object on which to comment, and typing in the text of the comment in the appearing form. The comment system might allow for some subset of HTML, or some other markup for simple text formatting, linking and/or images (BBCode is a popular choice).
Most comment systems use some form of identification. This way commenters can maintain a persisent identity which cannot be stolen, and it is possible to constrain the ability to comment to a selected group of users, or to users with sufficiently high reputation or trust. These systems attach a user id to the text. Other systems might ask commenters for their nickname, and possibly for email address and homepage URL.
Comments are often combinated wih rating: ratings explained in the comments are more meaningful than pure numbers. Comments themselves can be rated, too; this can be used for filtering, and also to calculate reputation. Flagging of comments can mean another source of input.
Comments can be tagged, though this is rare and to date only happens in more complicated, forum-like sytems like Slashdot.
Storage
Usually, these fields are stored:
- text of the comment
- time of creation
- user data (user id or nickname/email/homepage)
- preceding comment (which this comment is in reply to).
In a P2P environment, where the authenticity of the comment and the identity cannot be guaranteed by some central authority, an additional signature field must be stored to cryptographically prove that the comment has not been manipulated in any way.
Most of the time comments are stored on a central server along with all other content. In a decentralized system, some sort of distributed storage is necessary. This is usually done with distributed hash tables or some sort of flooding/gossipping protocol.
Output
Simply the stored data (comment text, sender, timestamp etc).
Management
Typical management tasks are setting access management, and configuring spam filtering, captcha and moderation rules.
Dependencies
Tools used
Tools using this tool
Interface
Comments can be presented in a linear structure, sorted by time, rating or reputation of the writer; or in a threaded (tree) structure, sorting the comments by subject. The latter also makes it possible to access comments dynamically, "just in time". (Some websites, like Slashdot and Kuro5hin, do this using AJAX technology.)
Comments are also a good place to show user information like reputation or friend-of-friend.
Prevalence
Comments are ubiquitous: they are the most often used form of interacting with users. Forums are built specifically around comments (and most communities, especially the smaller ones, are built around forums).
Technical aspects
Given a centralized system, implementation is straightforward: comments only need to be stored and recalled. Decentralized implementations can be based on flooding/gossiping/epidemic protocols, or on distributed hash tables. It is also possible to store comments locally on the writer's machine, but this severely limits the availability of the comment. Authenticity can be easily maintained by using public-private key pairs to sign comments.
The greatest technical problem with comments is spam. Spammers usually exploit weaknesses in the software to generate large amounts of ad messages, in part to reach those who read the comments, and in part to menipulate search engine ratings ("spamdexing"). Several techniques have been developed to combat spammers:
- simple text-based filtering (word blacklists) is used by many p2p clients (e.g. eMule, DC++). This can be easily defeated by a serious spammer.
- sophisticated probabilistic filtering methods like Bayesian filtering. This is what most e-mail clients do; it's effective, but relatively slow.
- user blacklists or IP blacklists (DNSBL). This is also supported by many mail clients/servers, and by some P2P clients (e.g. IP-filter in eMule). Effective, and can be against other kinds of attackers too, but usually it has to be maintained manually by some trusted person or group to avoid possibility of abuse. Storing the list is not trivial either - a central storage does not scale well, and distributed storage means overhead. (See blocking for more details.)
- captcha. This requires some central authority, so it's not suited for a P2P system.
Social aspects
In most comment systems (especially in forums) a large part of the comments do not contain any valuable information, only stuff like jokes, vanity or flame. Trolls often intentionally provoke these sorts of comments. Having to wade through tons of useless comments to find the interesting ones significantly degrades the user experience. One way is to protect against it technologically, with filtering or ranking comments using rating, reputation or trust. The other way is using some sort of moderation scheme: for example moderation by a trusted group of users, randomly chosen moderators (e.g. Slashdot) or moderators periodically chosen based on reputation (e.g. Kuro5hin).
The result of the moderation/rating can be used to influence the commenter's reputation. This creates an incentive to write meaningful comments. For example, Kuro5hin reputation is based on the last 30 ratings a user received to his comments. Metamoderation can be used in a similar way to create incentive for fair moderation.
Moderation, and most reputation systems require a centralized architecture, and users must accept some central authority that computes reputation and appoints moderators; thus, they are unsuitable as a global solution for P2P systems, but still can be used locally in a community, provided there is some sort of metadata server available. Trust systems, on the other hand, work well as global tools for the P2P system.
Existing examples
- Slashdot comments are threaded, and have filtering ability and a difficult moderation/metamoderation system that affects reputations.
- Kuro5hin comments are threaded, and have filtering ability and have ratings which are then transformed to reputation.
- Digg comments are threaded (though limited in depth to two levels), have rating and filtering (which is called blocking in Digg).
P2P file sharing examples
- eMule comments are (optional) explanations attached to file ratings. Comments are stored locally on the comment writer's machine; only users seeding the file are allowed to rate/comment.
- Azureus comments are also attached to ratings; they are stored in a global distributed hash table.
- Winny provides an anonymous message board.
Application in Fusion
For audio/video files
Users can comment on content/quality/etc. of files. While this is already possible in several P2P file sharing systems, only very simple implementations exist, which lack tools like threads, rating and moderation, and usually have a very restrictive format and length limit. This supresses most social aspects of commenting.
In P2P systems
Users can point out inappropriate or erroneous metadata. This is somewhat more flexible than a simple flagging/reporting scheme.
Scenarios
Commenting could be used as a support forum, wherever applicable (e.g. for software files or tutorials); this requires threaded comments.
Related tools
- other forms of communication: forum, wiki, messaging
- annotation
