InterWiki

From Wikipedia, the free encyclopedia

InterWiki is a facility for creating links to the many wiki wiki webs on the World Wide Web. Users avoid pasting in entire URLs (as they would for regular web pages) and instead use a shorthand similar to links within the same wiki (intrawiki links).

Unlike domain names on the Internet, there is no globally defined list of InterWiki prefixes — and owners of a wiki must define a mapping appropriate to their needs. Users generally have to create separate accounts for each wiki they intend to use (unless they intend to edit anonymously). Variations in text formatting and layout can also hinder a seamless transition from one wiki to the next.

By making wiki links simpler to type for the members of a particular community, these features help bring the different wikis closer together. Furthering that goal, InterWiki "bus tours" (similar to webrings) have been created to explain the purposes and highlights of different wikis. Such examples on Wikipedia include Wikipedia:TourBusStop and Wikipedia:WikiNode.

Contents

[edit] Notations

InterWiki notations vary, depending largely on what kind of link pattern a wiki uses. The two most common link patterns in wikis are CamelCase and free links (arbitrary phrases surrounded by some set delimiter, such as [[double square brackets]]).

Accordingly, InterWiki links on a CamelCase-based wiki frequently take the form of "Code:PageName", where Code is the defined InterMap prefix for another wiki. Thus, a link "WikiPedia:InterWiki" could be rendered in HTML as a link to an article on Wikipedia for example Wikipedia:Interlanguage links. Linking from a CamelCase-wiki to a page that contains spaces in its title typically requires substitution of the spaces with underscores (e.g. WikiPedia:Main_Page).

InterWiki links on wikis based on free links, such as Wikipedia, typically follow the same principle, but using the delimiters that would be used for internal links. These links can then be parsed and escaped as they would be if they were internal, allowing easier typing of spaces but potentially causing problems with other special characters. For example, on Wikipedia, [[MeatBall:AssumeGoodFaith]] appears as MeatBall:AssumeGoodFaith, and [[:de:InterWiki]] (former syntax: [[DeWikipedia:InterWiki]]) appears as de:InterWiki.

The MediaWiki software has an additional feature which uses similar notation to create automatic interlanguage links - for instance, the link [[de:InterWiki]] (with no leading colon) automatically creates a reference labelled "Other languages: Deutsch | ..." at the top and bottom of the article display. Various other wiki software systems have features for "semi-internal" links of this kind, such as support for namespaces or multiple sub-communities.

[edit] Implementation

Internally, a wiki that uses InterWiki links needs to have an "InterMap" that defines the mapping from wiki-code links to full URLs. For example, [[MeatBall:InterWiki]] might appear as MeatBall:InterWiki, but link to http://usemod.com/cgi-bin/mb.pl?InterWiki.

Since most wiki systems use URLs for individual pages where the page's title appears at the end of an otherwise unchanging address, the simplest way of defining such mappings is by substituting the InterWiki prefix for the unchanging part of the URL. So in the example above, the MeatBall: has simply been replaced by http://usemod.com/cgi-bin/mb.pl? in creating the target of the HTML rendered link.

Care must be taken, however, in the handling of special characters - both those that violate local link pattern rules, and those that must be represented specially in crafting a URL for the target system. So a CamelCase-based wiki must make special provision for recognising that non-alphanumeric characters can be part of an InterWiki link, and even a free link based system may disallow local links containing characters such as '+' or '"' for technical reasons. Similarly, characters such as '?' and '&' are treated specially within URLs and may need to be converted into some other representation, as might unusual characters when linking between sites using different character encodings.

However, rather than creating a new list from scratch for every wiki, it is often useful to obtain a copy of that from another site. Sites such as MeatballWiki [1] and the UseModWiki site contain comprehensive lists which are often used for this purpose - the former being publicly editable in the same way as any other wiki page, and the latter being verified as usable but potentially out of date.

MeatballWiki uses a mechanism called FileReplacement to directly use the openly editable InterWiki map for its own pages. Changes to that map do not take effect immediately, but the InterMap configuration file is re-generated if the wiki page remains unedited for a defined period of time. This delay is intended to assure proper review of all changes to the map while not preventing open editing.

[edit] Shorthand for non-wiki sites

Most InterMap implementations simply substitute the InterWiki prefix with a full URL prefix, so many non-wiki websites can also be referred to using the system. A reference to a definition on the Free On-line Dictionary of Computing, for instance, could take the form [[Foldoc:foo]] which would tell the system to append "foo" to "http://www.foldoc.org/foldoc/foldoc.cgi?", and display the link as Foldoc:foo. This makes it very easy to link to commonly referenced resources from within a wiki page, without the need to even know the form of the URL in question.

The InterWiki concept can equally be applied to links from non-wiki websites. Advogato, for instance, offers a syntax for creating shorthand links based on a MeatBall-derived InterMap.

[edit] External links