-> PLEASE TRANSLATE THIS MESSAGE INTO YOUR LANGUAGE AND SEND A COPY TO YOUR LOCAL PROJECT MAILING LIST. THANK YOU!
MediaWiki is a great software package, but in one department it is lacking: documentation. In spite of the collaborative power of wiki, so far there exists no single user documentation. Instead, each project maintains its own fork, and the Meta pages are one big mess (although the English documentation has become a bit better with the introduction of the Help: namespace).
I have just taken live some code changes which allow us to finally systematically document MediaWiki. I have added code to allow custom namespaces, so that any wiki can have any number of namespaces beyond the ordinary ones. Using this, I have then created namespaces in the largest languages (for which I had translations of "Help" and "Help talk") on http://meta.wikimedia.org . See http://meta.wikimedia.org/wiki/Help:Contents for a list of available namespaces.
That means you can now edit Hilfe:Inhalt or Aide:Aide like the English users have been editing Help:Contents. Why is that important? Because it allows us to easily export all the help files in one language, and import them into another wiki.
Any wiki may want to make custom changes to the help pages. This is best done using custom header and footer templates. Interlanguage links should also be passed to a template as a parameter, so that users who only import one translation can hide them easily (by removing the parameter).
I have laid out some basic editorial guidelines for working on pages in the Help: namespace of your language: http://meta.wikimedia.org/wiki/Help:Contents
This also includes a modified Template:Hc which shows how interlanguage links can work.
The gist of it is that we must make sure that the pages in the namespace can be imported by *any project*, Wikimedia or not, without changes (except to a handful of templates).
Once the pages have stabilized, we should clean out the Help: namespaces of all Wikimedia projects and import the meta pages instead. We can then upgrade them regularly (even daily) and automatically on all wikis.
The project namespace ("Wikipedia:", "Wikisource:" etc.) should then be used strictly for policy.
I propose that the Help: namespace be used both for user and administration documentation (installation guidelines etc.), so we can move towards a single neatly integrated handbook.
I invite all interested parties to participate in consolidating our documentation.
Regards,
Erik
Hi,
Thanks for your effort, Erik - but I cannot imagine how to get to a multilingual MediaWiki documentation soon. Not only MediaWiki but also Wikipedia (at least the German one) lacks a clean documentation. How do you want to seperate both?
You wrote:
That means you can now edit Hilfe:Inhalt or Aide:Aide like the English users have been editing Help:Contents. Why is that important? Because it allows us to easily export all the help files in one language, and import them into another wiki.
Import how? Do you want to make the Help:-Namespace on local Wikipedia read-only and dynamically mirror the localised pages from meta? What does happen to the (indeed messy) documentation at each Wikipedia?
Once the pages have stabilized, we should clean out the Help: namespaces of all Wikimedia projects and import the meta pages instead. We can then upgrade them regularly (even daily) and automatically on all wikis.
Seems like a hen and egg problem.
I just doubt you get Wikipedia users writing documentation at meta, because:
1. There is no single log-in (and with this a single watchlist!) 2. You better document the Wikipedia you are working on. This includes documenting MediaWiki but there is no sense to seperate for a Wikipedian
I tried to integrate MediaWiki and Wikipedia documentation at http://meta.wikimedia.org/wiki/Hilfe:Inhalt but I better do it within the German Wikipedia in the Help-Namespace.
Once the pages have stabilized, we should clean out the meta:Hilfe namespaces and import the de:Hilfe pages instead. We can then upgrade them regularly (even daily) and automatically on all wikis.
Greetings, Jakob
I'm curious if there is any documentation on the "rules" for updating a mediawiki SQL database. Specifically, something like "if you want to delete a page, modify these tables and fields" or "here are the steps to insert a page into the database".
I ask because I have a need to dump some dynamically created content into a mediawiki database on a regular basis (e.g., a script called out of cron). I'm a perl hacker, not a php man, and so most of the includes directory if Greek to me...but on the other hand, that shouldn't really matter, since all I'm doing is updating the MySQL database.
Does this documentation exist?
Does anyone have any scripts for inserting a page or deleting a page from the database?
Thanks,
andrew fabbro [andrew@fabbro.org] ------------------------------[ quote-o-matic] ----------------------------- Q: If I am traveling at the speed of light and turn on a flashlight, what happens? A: You become internationally famous and everyone wants to know how you managed to travel at the speed of light.
andrew fabbro wrote:
I'm curious if there is any documentation on the "rules" for updating a mediawiki SQL database. Specifically, something like "if you want to delete a page, modify these tables and fields" or "here are the steps to insert a page into the database".
Not really; there's just the code. In brief, to add a new page:
* Insert a complete record into the cur table. (cur_id is auto_increment, do not assign a value to it!)
* Insert a summary record into the recentchanges table.
* Update links, brokenlinks, imagelinks, and categorylinks with the pages that your new page links to.
* Move links from brokenlinks to links if there are existing broken links to this page.
* Update the cur_touched field of any pages affected by the last step.
* Insert an appropriate record into the searchindex table.
* Update the article count in site_stats if and only if the new article passes the article count criteria (is in namespace 0, is not a redirect, and contains at least one instance of the string "[[")
To delete a page: * Copy the cur and old records into the archive table so it can be restored if need be
* Delete the records from cur and old.
* Delete the searchindex row.
* Delete summary rows from recentchanges.
* Remove outgoing links from links, brokenlinks, imagelinks, and categorylinks.
* Move any incoming links from links to brokenlinks.
* Update cur_touched field of any page affected by the last step.
* Add a note to the deletion log page (creating it if necessary)
* Add a recentchanges summary row for the deletion log update
* Update site_stats as for new page, decrementing rather than incrementing.
Updating all these things correctly might be a bit tricky, and you'll have to update your scripts when the database format changes. You might consider using a client-side bot to avoid duplicating the whole of MediaWiki's backend. ;) There's an actively maintained python-based bot family at http://pywikipediabot.sf.net
-- brion vibber (brion @ pobox.com)
andrew fabbro wrote:
I'm curious if there is any documentation on the "rules" for updating a mediawiki SQL database. Specifically, something like "if you want to delete a page, modify these tables and fields" or "here are the steps to insert a page into the database".
Such a documentation would be nice to have (and brion has already provided a good start), but I fear it will be hard to keep up to date. Changes in the code can often affect these procedures.
It would probably be nice if there was a single function in our PHP code, createPage() or something, that does everything. But even with that, you'd have to write your own stuff in PHP.
If I were you I'd instead go for Brion's latter suggestion. Don't manipulate the DB directly; send an HTTP request to the wiki and let it do it. It's probably easier for you to code, and it's also less prone to requiring future maintenance whenever small things change.
Timwi
Jakob-
That means you can now edit Hilfe:Inhalt or Aide:Aide like the English users have been editing Help:Contents. Why is that important? Because it allows us to easily export all the help files in one language, and import them into another wiki.
Import how? Do you want to make the Help:-Namespace on local Wikipedia read-only and dynamically mirror the localised pages from meta?
Yes, that would be one option.
Seems like a hen and egg problem.
I just doubt you get Wikipedia users writing documentation at meta, because:
- There is no single log-in (and with this a single watchlist!)
A single login does not get you a single watchlist. There is currently code for single signon in CVS (don't get too excited - we have no migration code yet), but that will "only" allow you to re-use your user data and session across all Wikimedia projects. A combined watchlist is a project of its own.
Meta *is* our cross-project wiki. If we keep working around its deficiencies we have less of an incentive to fix them. The more we use it the larger the pressure will be to have things like single sign-on and a proper internationalized interface. With the developer funding trial starting soon, this could be not too far in the future.
- You better document the Wikipedia you are working on. This includes
documenting MediaWiki but there is no sense to seperate for a Wikipedian
What is Wikipedia documentation and what is MediaWiki documentation? To me, Wikipedia "documentation" is mostly policies, community pages and the like. These really belong uniformly in the Wikipedia: namespace and not on Meta. (We may at some point try to develop a set of importable policies on meta as well, but to me this is a project for a later stage.) None of this belongs in Help:.
How do we get people involved in working on the Meta documentation? E.g. on Wikipedia: 1) Remove all MediaWiki documentation from the Wikipedia: namespace 2) Redirect and link to local Help: pages where needed. 3) Add a [[Template:Obsolete]] to all local Help: pages:
"The documentation is currently being consolidated on http://meta.wikipedia.org/wiki/Myhelpnamespace:Contents - please do not edit these pages anymore and edit directly on meta instead."
4) Protect all Help: pages.
So, essentially, by locking people out from doing it locally ;-). It will be a bit ugly in the transition phase but it's certainly workable.
I tried to integrate MediaWiki and Wikipedia documentation at http://meta.wikimedia.org/wiki/Hilfe:Inhalt but I better do it within the German Wikipedia in the Help-Namespace.
The Help: namespace of individual projects should not be used for editing but for importing only (maybe some custom Help: pages and some header/ footer changes, but that's it). The Project: namespace is for project- specific information.
Once the pages have stabilized, we should clean out the meta:Hilfe namespaces and import the de:Hilfe pages instead. We can then upgrade them regularly (even daily) and automatically on all wikis.
Wikimedia is more than just Wikipedia. That's the whole point of putting it on meta - not giving preference to any individual project in maintaining the documentation. For a Wiktionary, Wikibooks, Wikiquote or Wikisource user, editing pages on Wikipedia is no easier than editing them on Meta.
Wikipedia is a bad foundation to build cross-project documentation on. As projects like Wikibooks grow and new ones like Wikinews are started, its prominence in the Wikimedia world will decline. To a Wikinews editor of 2005, Wikipedia may be what Wikisource is to most Wikipedians - an interesting project but not their primary point of interest.
Furthermore, the best way to educate our editors that this is a cross- project documentation is to put it on Meta:. As long as editors have a feeling that they are editing on Wikipedia, they will write specifically *about* Wikipedia.
Regards,
Erik
Erik Moeller wrote:
A combined watchlist is a project of its own.
If would make collaboration on meta-stuff much more easier.
What is Wikipedia documentation and what is MediaWiki documentation? To me, Wikipedia "documentation" is mostly policies, community pages and the like. These really belong uniformly in the Wikipedia: namespace and not on Meta.
For instance there should be an article on "Links" on Wikipedia describung a) how to make links and b) when to use and not to use which kind of Links. You cannot seperate it entirely. At least two pages should point to each other - this link is missing at the current documentation at meta.
How do we get people involved in working on the Meta documentation? E.g. on Wikipedia:
- Remove all MediaWiki documentation from the Wikipedia: namespace
- Redirect and link to local Help: pages where needed.
Needed in every almost case (but better not with redirects)
- Add a [[Template:Obsolete]] to all local Help: pages:
"The documentation is currently being consolidated on http://meta.wikipedia.org/wiki/Myhelpnamespace:Contents - please do not edit these pages anymore and edit directly on meta instead."
This Template should contain an "edit this page at meta"-link.
- Protect all Help: pages.
Wikipedia:Links => Help:Links => Meta:Help:Links
At least one link to much.
So, essentially, by locking people out from doing it locally ;-). It will be a bit ugly in the transition phase but it's certainly workable.
Thats the only way to do it. But Meta:Help-Pages should automatically be mirrored to local Wikipedias during the process and not afterwards.
The Help: namespace of individual projects should not be used for editing but for importing only (maybe some custom Help: pages and some header/ footer changes, but that's it). The Project: namespace is for project- specific information.
Does importing work yet?
Wikimedia is more than just Wikipedia. That's the whole point of putting it on meta - not giving preference to any individual project in maintaining the documentation. For a Wiktionary, Wikibooks, Wikiquote or Wikisource user, editing pages on Wikipedia is no easier than editing them on Meta.
Well, MediaWiki is mainly designed for Wikipedia. You drive other Wikis with it, but for thinks like Wikitionary, Wikiquota, Wikievents and other *Databases* it does not fit very well. Wikipedia is like a fulltext database (remeber askSam?) but without a search-engine :-(
Furthermore, the best way to educate our editors that this is a cross- project documentation is to put it on Meta:. As long as editors have a feeling that they are editing on Wikipedia, they will write specifically *about* Wikipedia.
Thats right but using and editing documentation should be made as simple as posible.
Jakob
wikitech-l@lists.wikimedia.org