We approached this project with the goal of using the Everything2 and Perlmonks sites, dependent on a common web application software, as case studies to help further our understanding of the role technical architecture and social practices play in the development of community sites. Our research methods included observations of user behavior, a Web survey of users (295 responses), an e-mail survey of Editors and Gods (23 responses), in-depth telephone interviews with the developers, usability tests with naïve users (5 subjects), a search of literature on CSCW and communities, a comparative analysis of both similar technical architectures and similar community sites and the use of Web site statistics obtained from the developers.
Our analysis provides a feel for both the context of community-based sites and the technical and social features that contribute to the success of these two communities. We have also begun the process of interpreting our findings within the context of broader questions such as "How can community sites contribute to work?" and "What lessons learned from Everything2 and Perlmonks could be transferred to other community sites?" Our responses to such larger questions are more tentative, which we attribute in large part to the complexities of interactions in online communities, a puzzle we have only begun to unravel. However, they do provide a start and suggest many questions that could be followed up in future work.
Our paper is organized into three sections:
Section 1: Describes the Everything Engine, Everything2 and Perlmonks sites, including history, architecture, features, competitors, developer goals and parallels with systems studied in SI 789. It concludes with a description of our research methods.
Section 2: Focuses on Everything2 and Perlmonks as online communities. It begins by introducing definitions of community and assesses the correspondence between Everything2 and Perlmonks and these definitions. This is followed by an analysis of the technical and social features that foster community on the sites, which concludes with an analysis of how these sites addresses Grudin problems.
Section 3: Focuses on lessons learned, future questions and where these sites are headed as of this writing at the end of 2000.
1. The Everything Engine
The Everything Engine is a Web development application specifically designed to implement user generated content sites. Everything has a long intellectual history, and borrows design ideas from BBS's, Usenet, MUD's, and video games, among others.
1.1 History of the Everything Engine
The architecture of Everything was mainly designed by one member of the same team that developed Slashdot. Nathan Oostendorp initially developed Everything as a project to learn how to code in the Perl programming language, as well as do something related to user generated databases. Having been involved in the Open Source movement, the developer wanted to test whether the design could be extended beyond the traditional realm of software development through collaboration. Oostendorp had grown up using computers, and was a frequent user of BBS's, MUDs and video games, elements of which would later be incorporated into Everything.
The first test site for the Everything system went online in August of 1998.
The software for Everything was left dormant for a period of time while the developers concentrated on Slashdot. After the sale of Slashdot, part of the money went to hiring another programmer and a site administrator to start developing the site more. In November of 1999, the redesigned system and site went live, and data from the old site was migrated.
1.2 Architecture of the Everything Engine
1.2.1 General description of the architecture
At its core, the Everything Engine is driven by a series of inheritances. Even though Everything uses the Web as an interface, it does not really deal with web pages, but rather with nodes. A node is not a discrete object on its own, but rather is an architectural component that is then extended by all other nodetypes in the system. A nodetype is basically an information object, and can have many different types of properties depending on the nodetype chosen. Nodetypes have a system of cascading inheritances.
This structure allows a designer to create a sophisticated collection of nodetypes, which behave very much like XML types, without an enormous programming effort. It also is designed to allow for easy customization, since a developer adapting the system to their own site would be able to create nodetypes that meet the specific needs of that site.
1.2.2 Specific features of the Everything system
The basic nodetypes described above have been used to create a variety of features. Some that are considered key to the development of online communities are described below:
The basic Document nodetype has several "children", including one that allows a threaded discussion format, and another where multiple writers can add pieces of content (called writeups) to one particular document, commonly called a "node" in the system. Node here means a separate information object, which is slightly different than the system definition of node in that it is not part of the architecture. However, the system itself considers a node on "Photography" where there are many different writeups by many different users to be equivalent to the node "htmlcode" which is an architecture piece, the difference being parsed from the characteristics of the nodetype.
In the Everything system, there are two types of links. "Hardlinks" are links created by the person entering data into the system. Hardlinks are created by putting square brackets around a concept, which links it to the node for that concept in the database if one exists, or reserves a space for a new node to be created. For example, if one writes "I went to the supermarket today" the brackets around the term supermarket will be interpreted by the system as a link to the concept of supermarket. This easy linking encourages people to create a rich variety of links in the database. Another aspect of this feature is that "404" type errors are eliminated in an Everything website because if the link does lead to an empty node, the user has the option of filling in content on that node.
In the Everything2 instantiation of the Everything system, discussed in more detail below, there are at the time of writing 2,725,874 links between 763,102 different nodes.
The second, and more subtle, form of linking is called "softlinking". Whenever a user moves from one node to another, a link is created between those two nodes, and the link appears at the bottom of the document, outside the actual text of the document. As one of these links is followed, it becomes "stronger" and rises to the top of the list. Softlinks are often added by the creator of the node to link to other nodes with similar content. In other cases softlinks are created by the interactions of the multiple users of the site.
An interesting side use of softlinks is as a form of comment on the node itself. By linking a concept to another node that is a writeup on poor writing, a clear, anonymous message is being sent. For example, if a writeup on "CSCW" is extremely poorly written, another user might choose to connect it to the concept "Your writing is really bad" which exists as a separate meme in the system.
126.96.36.199 Voting/"XP" system
Everything uses a reputation system for both content and users, which it has implemented in its two main sites. XP is short for "eXperience Points", and is a common acronym for people who play video or role-playing games. Experience points only refers to users, while rating only refers to content. The XP system in Everything2 is the most developed, and will be described here. Users gain "experience points", or XP in the following ways:
- Having another user positively "vote up" a write up. Any user can vote a writeup up or down. When a writeup is voted upon, it influences the rating of the content, but also affects the XP of the initial creator of the content.
- Every time a person votes there is a 1 in 5 chance that they will receive experience for voting. This creates a direct reward for using all of the votes one has, which helps the system by ensuring that votes are being cast.
- Users can be "blessed" or "cursed" by "gods", who are high-level users of the system. This functionality was designed to allow site administrators to shape user behaviors.
- Having a user of high enough level rate your writeup as "Cool", which is described further below.
- Users can participate in "quests", which are assignments created by the site administrators where a user can provide information in return for XP. These quests were developed to encourage focused content development on the site.
There are 13 total levels of users within the system. Each level has a title, and special abilities are provided to the user based on their level. Examples of special user abilities dependent on level include having more votes, the ability to create new chat rooms, the ability to "cloak", or make oneself unseen by other users and a limited ability to post pictures.
In addition to the levels created through the XP system, there are two special classes of users that can be created by the site administrators. Editors are users who have been granted the ability to delete content and access restricted areas of the site. Gods are users who have been granted system level access, meaning that they are able to create and delete nodetypes. Very few of the gods on Everything2 actually do this, and instead use the status for other abilities, like seeing anyone who has made themselves invisible to the system, "bestowing" votes to people, and blessing/cursing as means of controlling user behavior.
Content is also rated, in a simple "thumbs up/thumbs down" manner. Users do not see the rating of any piece of content before voting, and may only vote on content once. If a writeup falls to a certain negative reputation it is brought to the attention of the Editors, and may be deleted.
Besides the voting process, content reputation might also be affected by "Cools". Users of a certain level, as well as super-users like Editors and Gods, can label any specific piece of content "cool", which creates a link on a list of such nodes. Having one's writeup "cooled" garners a high amount of XP for the user who created the writeup, and has had a profound effect on the creation of content in the site.
The Chatterbox is a Web based chat client that behaves somewhat like a traditional IRC channel, except that it is not realtime, but refreshed when the page is refreshed. The Chatterbox in Everything2 has several available "rooms" where users may congregate. Another useful feature of the Chatterbox is the messaging system that allows any user to leave a persistent, private message for any other user.
As mentioned, users of a certain level are able to "cloak" themselves in the Chatterbox. This allows users of high level to interact with the site while avoiding interaction with other users. Another interesting feature of the Chatterbox is the "Everything Death Borg", which is a script that can be invoked by any editor or god against a user who is causing a disturbance in the Chatterbox. This renders them unable to participate for a set period of time. This is a very public means of shaping behavior in the public space.
Nodelets are encapsulations of programming functions. These boxes of code serve different functions, like listing other users on the site, or new content that has been created. There are several that are available, and they can be customized by the user, so that only the particular nodelets desired by the user appear.
1.3 Competitors of the Everything Engine
There are a few other software systems that do the same, or similar things as Everything. Some websites obviously also try and replicate content that would be captured by either of the two main Everything sites developed thus far.
1.3.1 Similar types of architecture
Zope is a similar package that uses the Python programming language rather than Perl. Zope is another object oriented style site, though unlike Everything, Zope does not natively include a database. The Zope system is designed more for static websites, rather than user generated sites.
The Roxen Challenger web server includes many similar features to Everything, including threaded discussions and message boards. Almost any web development platform that allows dynamically generated content could be considered in competition with the Everything system. Microsoft's Active Server Pages, ColdFusion and RealNetworks are just a few. In addition, Application Service Providers as well as tools such as DocuShare or LearningSpace provide many of the same features of the Everything engine.
1.3.2 Similar content sites
The two main sites of Everything2 and Perlmonks discussed below have many competing content areas on the Web. There are several user generated content sites now available on the Web, though most are limited to threaded discussions and few have the robust nature of either Everything2 or Perlmonks. The main site that serves the same population as Perlmonks is Perlmongers , which has both a main site and several local sites.
Sites that offer the same information as Everything2 are obviously varied. The Humanities Text Initiative has been mostly copied into the site. Other sites capture some of the cultural aspects of Everything2, including H2G2 and Plastic.com.
1.4 Instantiations of the system
Everything2 is a site that was primarily designed as a test bed for the features of the Everything system, and as an example of a user generated database. The modest goal of the site is to capture all human knowledge, and includes topics ranging from personal writings to descriptions of computer error messages to physics problems. Everything2 has 20,236 registered users, though on average 2,000 unique users visit the site per day. An average of 70 users are added to the site per day. At any one time, about 60 registered users are logged in.
The sites tend to attract younger users, mostly in college, well-educated, involved in the technology fields, and male (see data appendix for more detailed demographic information). However, the site does support a larger female population than is usual, as reported by the Georgia Tech Survey.
Perlmonks.org is a site devoted entirely to the Perl programming language. User generated comment is in the form of questions about programming problems, Perl poetry, shared bits of Perl code the users want to share and news about the language. The content of the site is more focused on the task of programming, and has less of a social dimension than Everything2. Since knowing Perl is a tacit requirement of the site in order to understand the dialogue, the potential user base is smaller than that of Everything2. However, the feedback from Perlmonks users has been positive enough that the developers are planning similar sites for the PHP and Python languages.
Perlmonks uses many of the same features developed for Everything2, like voting and XP systems. The model of the main document is more a threaded discussion than a collaboratively generated document. As Perlmonks has brought in features from Everything2, the same has happened in reverse. As part of the Open Source heritage of the system, the developers have made what is called the "nodeball", which affords any feature developed in one Everything instantiation to be imported and used in another.
1.4.3 Less-populated sites
Though these are the two main sites run by the development company, several smaller sites use the engine in their operation. These sites include a knowledge sharing website for independent travelers in Southeast Asia, a book review site, and several "personal" sites, maintained by a single user usually for internal purposes.
Another Everything site worth mention is Everydevel, which is the Everything system home site and documentation repository. Recent updates have been aimed at creating a community of Everything developers, using such architectural means as ratings systems and experience.
1.5 Developer goals for Everything
The developers of the system are varied when it comes to what they see as the goals of Everything. Common advantages of the system listed by developers include the ability to easily incorporate user generated content, the way the system separates content from how it is presented, recursive code generation and inheritance of features.
Views on potential uses for the system range among the different developers. The head of the project sees coding custom software in partnership with a group of Web consultants as the most likely or desirable outcome at the moment. Other developers mentioned the use of the software to support company knowledge management, or any website where user generated content would be desirable. As one developer said,
"Lots of people download the software thinking that it's an exact copy of Everything2. It's a very generalized engine that allows you to build a system quickly. The reason that it's called Everything is that it can do pretty much everything."
Since developing an Everything system requires a knowledge of the Perl programming language, the developers want to seed the market with the software, and sell consulting services at "a highly discounted" rate in order to get the system working. Ideas that the developers had for other uses of the Everything system include:
- At a corporation pulling together internal information on systems for techs and putting it into a knowledge management system so they could access what others have done to troubleshoot problems.
- Sites similar to Perlmonks for PHP, Python and C++ programming languages are already in development.
- A used car dealership could create a web site that lists pictures of their autos, vehicle histories and prices that could be easily updated by the staff of the dealership, and accessible to a wide range of potential buyers.
- An interface between a corporation and external users. For example, a group of 5 to 10 people producing content for public dissemination.
- Any kind of ecommerce site could be run using Everything.
- Everything could probably be used to run CNN.com if needed.
The Everything Development Company feels the software is flexible enough to meet a wide range of user interests, and is more interested in developing the software than in developing future sites that use the software. By combining efforts with a web design company, they could focus on the software and disseminate it through the efforts of the information architect company. The core goals of the system are to remain flexible enough to allow easy development of dynamically generated web sites, especially those wishing to incorporate user generated content.
1.6 How the system supports collaborative work
The Everything engine was not designed with the specific goal of supporting collaborative work. However, one could interpret the giving and seeking of Perl knowledge as a form of work. More loosely, one could conceivably interpret the exchange of write-ups on Everything2 as work, if one considers creative writing and building a collection of facts to be work.
The contribution that community sites can offer to work has not been extensively studied in the CSCW literature. We found such questions to be of interest, but they remained on the periphery of our investigation, largely due to time constraints and the complexity of coming to terms with the basic dynamics of the sites. Some community sites, such as the Xerox Eureka! Database, the Apache Usenet forum and perhaps Perlmonks, clearly appear to support work. For other sites, the answer may hinge on how broadly one defines "work."
The potential for community sites to support work lies largely in their potential for matching people with common interests and complementary knowledge across geographic distance. Network communities may also provide opportunities for situated learning, helping individuals connect with communities of practice. We return to the question of the degree to which the Everything2 and Perlmonks sites appear to fulfill this potential in section 2.4.
1.7 Parallels with other systems studied in SI 789
Section 2 focuses on the Everything system within the context of a discussion of online communities. Before doing so, we focus on some of the other parallels that can be drawn between the Everything engine and sites and systems and topics we studied in SI 789. The culture of Everything2 and the intense devotion of community participants resembles aspects of MUDs. Everything2's grandiose goal of "building a repository of all human knowledge," evokes images of ideas that might be traced back two generations to Vannevar Bush and one generation to Ted Nelson and Doug Engelbart. Finally, the Everything engine can be thought of as an open source toolkit for rapid development of multi-user Web sites. Like the Prospero Toolkit described by Dourish, it is unconventional and innovative. We will now briefly discuss each of these parallels we saw between Everything and topics from SI 789.
1.7.1 Parallels between Everything and MUDs
We saw a resemblance between Everything and MUDs both in terms of their focus on largely text based virtual realities and in the devotion of their members. Churchill and Bly write of social co-presence that "seems to reside in shared goals and understandings which derive from conversations around a common focus" and is not dependent on the visual richness of the medium, a point that resonates with our observations of Everything 2 and Perlmonks. (Churchill and Bly, p. 41) Curtis draws a real world analogy of a bar environment "with a large number of "regulars," all of whom are transients without fixed schedules. (Curtis, p. 16). He sees text-based virtual communities providing a "necessary social outlet" like "CB radios and telephone party lines before them" (p. 17).
The ubiquity of the environment and the ability to seamlessly move between asynchronous and synchronous modes are seen as key features of MUDs that also play an important role in the Everything system. (Churchill and Bly, p. 45,6). Like MUDs, Everything provides users with signals of others availability upon logging on. The ability to interact synchronously with other users was not present in the original Everything 1 site. Both the developers and the editors noted how the addition of the chatterbox and the /msg features changed the feel of the site from a collaborative database into a community. This ability to communicate with other users in real-time "has a profound effect on the ways in which users interact with the system; it transforms the activity from a solitary one into a social one," Curtis writes (p. 2).
A question that often arises is to what extent these systems resemble or differ from real-life. A degree of anonymity is a particularly important feature. One effect is the "shipboard syndrome" of lowered inhibitions that come from a sense that one is unlikely to meet anyone from the virtual environment in real life (Curtis, p. 9). For example, Everything2 users have chosen the virtual world as a place to reveal rape stories and come out of the closet. Partial anonymity can also encourage obnoxious behavior. Like the wizards in the MUD, Everything gods have the power to publicly punish other users with temporary silence in the form of the "Everything Death Borg".
Finally, Garbis and Waern point out that MUDs have played a useful educational role in helping students acquiring writing and language skills. The degree to which Everything2 users believe the site has helped them with their writing was particularly evident in the e-mail interview of editors and gods and will be discussed in more detail in Section 2.
1.7.2 Parallels Between Everything and Visionary Works
It comes as no surprise to find nodes referencing the works of Vannevar Bush, Ted Nelson and Doug Englebart on the Everything2 site. Like the "memex," Bush's idea for organizing and sharing information to advance science, Everything 2 is based on association. Everything 2 also seems to share a certain kinship with Xanadu and Nelson's larger agenda of establishing a system of online literature that would allow people to go "beyond paper to represent the connections which are present in the data."
1.7.3 Everything as a Toolkit for Developing Multiuser Applications
In our interviews with the Everything developers it was clear that their professional interests with the system lie in developing the engine as a toolkit for developers of multi-user systems. Like the Prospero system described by Dourish, the Everything engine is unconventional and focused on supporting multi-user environments. Written entirely in Perl, its data structures exhibit extensive inheritance properties. For developers comfortable with Perl, this architecture can greatly reduce the amount of time needed to develop certain applications, such as the online survey we used in our project or online voting and ranking systems. One of the features currently under development is a system of "workspaces." These are copies of a Web site that can be used as a scratch area for developers. Regular users not in the workspace will see the old code while the developers will see the site as it would look with the new features.
Given the exploratory nature of our research, we opted for a wide array of research methods, which included:
- A Web survey of users, publicized through links from the Perlmonks and Everything2 sites. We received 295 responses to the 19-question survey in less than one week. Results provided information on demographics, participation patterns and benefits. We did not perform an analysis of sample selection bias. Full survey results are provided in the data appendix.
- An e-mail survey of editors and gods. We received 22 responses to our 13-question survey, of which 21 were usable, a response rate of slightly over 50 percent. Most of the questions on the editors and gods survey were open ended, offering extensive qualitative information. E-mail survey results are provided in the data appendix.
- Telephone interview with the developers (n=6, approximate length 1 hour each). Notes from these interviews are provided in the data appendix.
- Usability tests with naïve users (n=5).
- A search of literature on CSCW and communities, the results of which are integrated into the paper.
- A comparative analysis of both similar architectures and similar sites, guided by our own knowledge and site references made by the developers in interviews.
- Server log statistics gathered from the developers.