I wrote this document to generally argue for the need of more InterWiki connectivity but it explains very well why AdoptedPages are needed so urgenly IMHO.
Contents
The Wiki Way: A failing Revolution?
Most people hearing about the wiki idea the first time react in either a very positive or a very negative way. The negative reactions boil down to "This can not work because of vandalism, spam, lobbying and the evilness of human kind." Although spam, vandalism and biased editing happens all the time lots of flourishing wikis prove that the wiki idea works.
The positive reaction is "This will change the world! We will create the WikiWikiWeb - one network of pages that are owned, edited and improved by the community of all wikizens. All the benefits of freedom - plenty, rapid growth, openness - we already enjoy at the free software development will come to the World Wide Web." This can already be observed at the wikipedia project which is growing at an amazing speed and some other flourishing wikis.
The problem
But Wikipedia is the only wiki that grows at this amazing speed. So what makes wikipedia so special compared to most other wikis?
Wikipedia is the only wiki that is not limited to a special topic, but only to a special format (an encyclopedia). Outside of wikipedia the community of wikizens is divided to tens - perhaps hundreds - of thousands wiki instances each with its own topic. This slows down the development of content - not only by a factor but from a exponential to a linear growth.
Why does this fragmentation slow down the development of wikis?
The topics of the wiki instances overlap each other. This has several bad implications:
There is no "right" place to put a single piece of information. If you want to ask a question you never know which wiki is the right one.
Fragmentation of knowledge. Lots of the people that could add information to a page are not part of this community but are editing pages on other wikis.
Duplication of information. Because all of the wikis that are about this subtopic have to replicate or reinvent this content.
This all discourages users to participate in wikis. Generating valuable content is not that easy and people want to be sure that they don't do the work for nothing.
Wikis by now do not offer a technical solution to deal with this duplicated information. The only possibilities that the wiki engines offer are
- set a link
- copy the content
- rewrite it
All are insufficent. The first does not include the external content into the local focus (AKA RecentChanges); the second doubles the effort of further development of the page and - even worse - breaks the communication link to the creators of the page. In most cases the third option is chosen because no one has an idea what other wiki pages about a topic exist and the pages often do not have the exactly same topic and structure because they have developed independently.
This means it is not possible to cooperate with another wiki community over a shared topic. This weakens the border topic of the wikis - the borders on which the wikis would grow further.
But things are even worse. This lack of cooperation between wiki communities lead to the lack of communication between the developers of wiki engines because they of course use wikis as their communication platform. I would guess this is the other main reason why all efforts to etablish wiki standards have been fruitless.
Separation
So where does this separation into single wiki instances come from, why is it needed and why does it hurt so much? Wiki instances are separated from each other by several aspects of the wiki:
Name space
Each wiki instance has its own name space (or to be more precise: at least one name space). This means links to other pages do not have to preceeded with an URL or an interwiki name. These separated name spaces allow several pages with the same name. The name collision problem makes it undesirable to merge all wikis into one name space. There are some thoughts about solving it (FacetWiki) but this is a very unlikely development as one name space does not scale into the millions of wiki pages that already exist.
RecentChanges
The RecentChanges page has shown to be an important functionality in a wiki. It allows the community to keep track on what is going on and allows a kind of communication (see ThreadMode) and control over the content. It is (in combination with diff) the sharpest weapon against malevolent edits. Lots of the regular wikizens only read the RecentChanges and the diffs of the edited pages.
User account
Most wiki engines support user accounts to allow the users to identify themselves and to save some settings. Being able to use an wiki account over several wiki instances is more or less a question of convenience and will not be discussed further in the scope (see WikiPassport for more about this).
These aspects are more or less of technical nature. They are obstacles for a possible solution but they don't explain the reason why the WikiWikiWeb is that highly fragmented.
Control
One reason to establish a new wiki instance is the control over the own server. Being able to define an own policy and being able to choose a wiki engine, select a configuration and install the wanted extensions. Although the wiki way should make control obsolete this argument will lead to more and more wiki instances and won't be solvable.
Topic
Single wiki instances have a special topic. This is not as trivial as it sounds. The topic tells the users that they are at the right place and what fits in here. Although it is irrational to think a wiki would contain all information about a topic the existence of the topic gives the feeling of completeness. And it guarantees that the user doesn't get lost while surfing around the wiki.
What already exists
The problem of connecting wiki instances is not new or unknown. There already exist a number of mechanisms to connect wikis:
Interwiki links
Interwiki links are a basic feature to conveniently set links to wiki pages in foreign wikis. Syntax varies between implementaions but always looks like WikiName:PageName. This is really useful but does not connect wikis at a deeper level than http links would do.
Metawiki
Meta wiki (http://sunir.org/apps/meta.pl) is a title search engine that allows to search for pages in number of wikis (~25). By now it is not really comprehensive, but a meta wiki search over a larger number of wikis is conceivable. On the other hand it is easy to use a regular search engine like google and perhaps add "wiki" as keyword.
Twin Pages (Sister Sites)
Twin Pages have the same name but reside in "neighboring" wikis. Wiki engines supporting sister sites display links to the twin pages on top or bottom of each page. Six wikis around (and including) the WikiWiki (http://c2.com/cgi/wiki) use this feature to connect each other.
Unified Recent Changes
UnifiedRecentChanges are RecentChanges from several selected wikis merged into chronological order. Current implementations use the RecentChanges RSS feed. The obvious problem with this is that the traffic grows with every new wiki added. This limits the use of this feature.
Possible solutions
All the existing inter wiki mechanisms work across wikis but do not extend wikis or allow wikis to overlap and share content. Because of this they don't solve the real problem.
The separate name spaces makes it difficult to really share a page between wikis. The links on it must link either to one wiki or to the other (no we don't want links pointing to different locations when viewed from different wikis). There are advanced techniques imaginable that could solve that problem. But this will not be easy...
There are two features I can imagine that could be useful:
Adopted pages
Adopted pages are external wiki pages that show up in the RecentChanges. The idea is that simple that I nearly don't have the heart to present it as solution. In contrast to the UnifiedRecentChanges that pages that show up are not selected by wiki but on a per page basis. Wikizens are able to select single pages on an arbitrary wiki. These pages would be marked as external in the RecentChanges and would (for example) preceeded by the interwiki name of the external wiki instance. Adding and removing Adopted Pages also shows up in the RecentChanges.
Adoped pages allow to extend the focus of the community of a wiki to all pages covering the topic of the wiki even if they reside on "neighboring" wikis.
Although this is a very simple idea the implementation is not that easy as it should work across wiki engines. Perhaps RecentChanges RSS feeds or Wiki !XmlRPC can be a basis to set this feature up.
Extended Twin Pages
Extended Twin Pages are "See also" links that are generated/edited by users and not (only) based on randomly identical page names. The difference from just putting "See also" links on the page are that these links are managed on a central server. This server keeps groups of pages that have same or similar content. Users from all wikis using this server can add or remove pages. The idea would be not to have one server for the whole WikiWikiWeb but servers for larger topics. Single wiki instances could uses several servers. It would also be possible to add pages from wiki instances that don't use the server themself.
The idea behind Extended Twin Pages is to share the work of finding appropriate external pages between the contributing wikis.
As as side effect this mechanism could be used to manage links to pages in other languages.
Conclusion
The fragmentation into several ten thousand wiki instances is a real problem that endangers the success of the wiki idea as a whole. We need to find new possibilities to connect wikis and extend their border. Adopted Pages and Extended Twin Pages are not "the solution" but only show the direction in which wikis will have to evolve.
-- FlorianFesti 2004-08-28 09:48:15