Help:Namespace

A namespace is a type of page in a wiki project. Page names with prefixes are probably associated with a category. Each wiki using the MediaWiki software has 16+2 namespaces: the main namespace, where page names have no prefix, 15 auxiliary types, each with its own prefix, and two pseudo-namespaces.

In each project they are similar to the 18 explained in w:Wikipedia:Namespace for Wikipedia. One of these is the project namespace, which uses as prefix the project prefix (variable     below).

Namespace uses

 * allows separation of different kinds of unrelated content;
 * several namespaces have special features related to their intended purpose
 * allows unrelated content to be stored in one wiki, but requires lots of extra typing
 * provides facilities to limit searches to a particular area
 * in principal allows easy exporting (but not with the Export feature, which is for selected individual pages) of a selection of work (categories could also be used for this more cleanly)
 * allows for feature separation

Namespace issues and ideas for improvements
Lots of programming languages have namespaces for their variables. Namespaces are commonly contained within curly braces "{}" and if a variable is referenced that is not included in the namespace, it might use the global namespace's variable.

Extensive content within a namespace causes lots of page name in place of page name typing, which isn't in the spirit of wikis. Nevertheless, it could be useful if the default would be to have the current namespace be searched first, and then the main namespace, or any other order of namespaces consulted.

Namespaces are used for a variety of features, including: interwiki linking, templates, and system messages. How are interwiki and namespace overlap issues dealt with?

Namespace benefits
(can namespaces go into their own tables, allowing for separation across servers?)

List of namespaces
The two pseudo-namespaces, main namespace and 15 auxiliary namespaces in this project (Meta) are the following (also the variables for them are shown):

Note that all characters of namespace prefixes are case-insensitive, so one can write e.g "mediawiki".

The names are set in files such as those listed in Locales for the Wikimedia projects, with default Language.php:

/* private */ $wgNamespaceNamesEn = array(	NS_MEDIA           => 'Media',	NS_SPECIAL          => 'Special',	NS_MAIN	            => '',	NS_TALK	            => 'Talk',	NS_USER             => 'User',	NS_USER_TALK        => 'User_talk',	NS_WIKIPEDIA        => $wgMetaNamespace,	NS_WIKIPEDIA_TALK   => $wgMetaNamespace . '_talk',	NS_IMAGE            => 'Image',	NS_IMAGE_TALK       => 'Image_talk',	NS_MEDIAWIKI        => 'MediaWiki',	NS_MEDIAWIKI_TALK   => 'MediaWiki_talk',	NS_TEMPLATE         => 'Template',	NS_TEMPLATE_TALK    => 'Template_talk',	NS_HELP             => 'Help',	NS_HELP_TALK        => 'Help_talk',	NS_CATEGORY	    => 'Category',	NS_CATEGORY_TALK    => 'Category_talk' );

Automatic conversions of page names
On the left in the table at the beginning of the previous section, a list of project-independent namespace names is shown, the same as those on Meta and the English Wikipedia, except that "Meta" and "Wikipedia" are replaced by "Project". The prefixes are the terms listed, followed by a colon.

The prefix "Project:" is for every project automatically converted to the project namespace, e.g. try the link Project:xyz. It is like a piped link. Therefore a page name starting with "Project:" is not possible (unless, of course, that is the name of the project).

Similarly the other project-independent namespace prefixes are also automatically converted to the project-specific ones.

Prefixes in various languages
For Wikimedia projects this project prefix is "Wikipedia:", "Wiktionary:", "Wikibooks:", "Wikisource:", "Wikiquote:", "Meta:", and in the case of In Memoriam also "Wikipedia:" (in French "Wikipédia:", in Czech "Wikipedie:", in Russian "Википеди�?:", in Korean "위키백과:", in Hindi "विकिपीडिया:", in Hebrew ":ויקיפדיה" and in Arabic ":ويكيبيديا"). The last two are RTL languages which put the prefixes on the right. In URLs the prefixes are always on the left.

To check which prefix is used, see e.g. the link "Contact us" or "Bug reports". "Talk", "User", "Image" and combinations can also be translated in the case of non-English wikis. see Locales for the Wikipedia Software.

Lists of pages
Oddly, for ordinary users there is no way to list all pages in the project, template, help and custom namespaces. A workaround would be to avoid these and use the main or another namespace, possibly using a non-system prefix, e.g. h:namespace instead of help:namespace.

See e.g.

Sysops can apply Special:Asksql when not disabled and use "SELECT cur_title FROM cur WHERE cur_namespace=10", etc. When disabled a form invites to submit a query, but then this leads to a HTTP 500 error.

Colon in page name
Adding a colon to a page name does not automatically create a new namespace. To see the namespace of a page, use which returns the namespace. For this page it returns "". The same code would return an empty string for a page in the main namespace. Similarly, returns the page name without prefix. For this page it returns "".

To take some examples from Wiktionary: Wiktionary:FAQ has Talk page Wiktionary talk:FAQ, but Wiktionary Appendix:Colours has Talk page Talk:Wiktionary Appendix:Colours, because the first is in the project preface namespace and the second is not. Accordingly the first is not in Special:Allpages but the second is. Unclear is why Wiktionary:Recentchanges is an exception.

Sites outside Wikimedia
Sites using MediaWiki but outside Wikimedia usually have their own project name as project prefix, but several have simply retained "Wikipedia:".

Interwiki linking is done with a prefix, that is similar to namespaces.

Special namespace
Main article: Help:Special page

The namespace "Special:" consists of "special pages", which are created by the software on demand, for example Special:Recentchanges.

Custom namespaces
A project can have additional namespaces. For example, if a single project is multilingual (as opposed to the case of sister projects, each in one language) there may be a namespace Help: and also a namespace Hilfe:, for help pages in the English and German language, respectively.

For a full list of all namespaces for your project, see the search options of the preferences (Special:Preferences).

The list of custom namespaces is $wgExtraNamespaces in LocalSettings.php. Custom namespaces are numbered from 100. See also Help:Custom namespaces.

Tab labels
The first tab shows the namespace. See the link, if it is there, to see what it is in this project. For Meta-Wikipedia it is as shown on the right.


 * category: mediawiki:nstab-category => ""
 * help: 'nstab-help' => "Help",
 * image: 'nstab-image' => "Image",
 * main: 'nstab-main' => "content page",
 * media: 'nstab-media' => "Media",
 * mediawiki: 'nstab-mediawiki' => "Message",
 * project: 'nstab-wp' => "About",
 * special: 'nstab-special' => "Special" - the tab is in an HTML element A without class or id, like an internal link, but it is not a link; to see the distinction, use a style for a:link and a:visited that is different from the style of just "a"
 * template: 'nstab-template' => "Template",
 * user: 'nstab-user' => "User page",

The second tab, linking to the talk page:


 * Talk: 'talk' => "Discussion"

On a diff page or a page with an old version, the links are to the current version (however, the edit tab on a page with an old version links to the edit page of that old version; this does not apply on a diff page comparing two old versions, there the edit tab links to the edit page for the current version).

The self link feature (a self link appearing as bold text) does not work for the tabs, no distinction is shown between a self link and a link to a different (version of a) page.

With the class "selected" one can let the tab for the same namespace as the current page (either a self link or a link to the current revison) be displayed differently; also the tabs "edit" and "history" are then displayed in this different way when applicable.