From Wikipedia, the free encyclopedia
- For interwiki
related to the Wikimedia projects, see
Wikipedia:Interwikimedia link.
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
-
1
Notations
-
2
Implementation
-
3
Shorthand for non-wiki sites
-
4
See also
-
5
External links
|
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]]).
CURIE
syntax uses a single set of square backets.
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, or in a sidebar
next to, 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.
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.
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. ...
See also
-
CURIE, emerging W3C standard
External links
Look up
interwiki in
Wiktionary, the free dictionary.
-
Discussion of the InterWiki concept at
MeatballWiki
-
Discussion of the FileReplacement concept