As part of Wikidata, I'm rather fundamentally redesigning the namespace
logic of MediaWiki, and I'd like to invite input, specifically on
1) whether I should try to get these changes ready for 1.5, or commit
them to a separate branch,
2) whether there are objections or suggestions regarding any of the below.
Simply put, I am moving namespaces from the language files and from
Namespace.php into the database. In my present implementation, the
namespaces are loaded from the DB on every request, but I will add
support for memcached as well.
The goal is to make it easier to change and add namespace names and
properties (some names cannot currently be changed at all without
editing the Language*.php file, which is impractical when you're using a
shared codebase), and to have an arbitrary number of synonyms for any
namespace.
The table structures are as follows:
mysql> show columns from namespace;
+-------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| ns_id | int(8) | | PRI | 0 | |
| ns_system | varchar(80) | | | 0 | |
| ns_subpages | tinyint(1) | | | 0 | |
| ns_search_default | tinyint(1) | | | 0 | |
| ns_target | varchar(200) | YES | | NULL | |
+-------------------+--------------+------+-----+---------+-------+
(ns_target is a new feature I'm working on which allows you to specify a
default "destination prefix" for any link from within that namespace.
This can be an InterWiki link or a namespace. That will be useful in a
variety of contexts, for example, within a Wikibooks module, all links
could point to pages within the namespace by default; within a Wikidata
page, all links could go to Wikipedia by default, etc.)
mysql> show columns from namespace_names;
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| ns_id | int(8) | | | 0 | |
| ns_name | varchar(200) | | | | |
| ns_default | tinyint(1) | | | 0 | |
+------------+--------------+------+-----+---------+-------+
ns_default is the namespace all other namespace names for that ns_id
will redirect to.
I have got the backend fully working and am now working on the namespace
manager frontend and the installer code. Essentially, what it means is
that you can have stuff like:
mysql> select * from namespace_names where ns_id=6;
+-------+---------+------------+
| ns_id | ns_name | ns_default |
+-------+---------+------------+
| 6 | File | 1 |
| 6 | Image | 0 |
| 6 | Video | 0 |
| 6 | Sound | 0 |
+-------+---------+------------+
This means that the default namespace name is "File", and that "Image",
"Video" and "Sound" redirect to it. No more "Image" prefix for sound
files! It's quite a pleasure to see this working. There can be an
arbitrary number of namespace synonyms for any namespace.
The major part of the effort is getting this to work properly with all
language files. Essentially, I intend to import the initial namespace
names and English canonical names during installation or upgrade,
similar to the way the MediaWiki namespace is imported. I would also
like to try to figure out a smooth upgrade procedure for
$wgMetaNamespace and $wgExtraNamespaces, as well as the other
namespace-related settings.
The namespace manager will have a separate set of permissions which can
be atomically assigned to a group. I intend to add some checks here, e.g.:
* don't allow it to delete a namespace that contains pages
* don't allow it to create a namespace if there are existing pages with
that prefix (avoid conflicts with pseudo-namespaces)
* warn if there are conflicts with InterWiki prefixes
Again, please let me know what you think about this, if there are any
questions, and whether I should try to get this ready for 1.5. Are we
near/at the feature freeze stage? Is there going to be a REL1_5 branch soon?
Best,
Erik
I've used wikis before, but I'm new to trying to set one up. I have a somewhat
conceptual question.
I understand that wikis deal with articles and diffs to those articles. Can
MediaWiki (or any other wiki system) deal with groups of related diffs that get
applied to multiple articles all at once? This would be similar to changesets
in BitKeeper or subversion repositories.
Thanks for your help.
--
Joel Konkle-Parker
Webmaster [Ballsome.org]
E-mail [jjk3(a)msstate.edu]
I would like wiki to have the capability to create a [[link]] to a specific point inside another (or the same) article. This would be analogous to the HTML syntax as in... href="www.somewhere#specificPointInside". As a Wiki feature, this could support two ways to specify the #specificPointInside.
(1) use a hidden anchor (as in HTML <a> tags),
or (2) use a construct similar to XPointer, but using notation such as == or * to denote nodes. It would be great if this Wiki construct supported regular expressions and nesting.
For example, [[javaArticle#==history.*/*[2] ]], would mean:
link to the 2nd bullet in the title starting with "history" of the javaArticle article.
(Explanation: the # means that the following is a link to a point inside the article.
The "==history" refers to the wiki title construct. The " .* " after hister is the regular expression code for "skip any number of characters to the end of the line."
The "/" after that indicates that the following code is a narrowing navigation within the construct just seen on the left of the /.
Finally, the "*[2]" means match the bullet "*" nodes and return the 2nd one found.
)
This XPointer-like approach would make the links flexible and eliminate the need for a new article to edit an already-existing article just to put in a link to a point inside that article. This feature would be useful when long articles contain a number of key facts in a subject that new articles on the subject would like to reference conveniently.
Thanks in advance for any comment such as (1) it's already available, (2) how to get such things implemented by the Wiki developers, or (3) how to become a Wiki developer and so be able to implement it yourself, (4) why its a terrible idea.
John2000
Hi all,
The new user levels functionality in 1.5 looks pretty cool (referring to
this):
http://meta.wikimedia.org/wiki/Help:User_levels
One small concern I have is regarding terminology. This appears to be a
w:Role-Based Access Control
<http://en.wikipedia.org/wiki/Role-Based_Access_Control> system, but
with different terminology. See Role Based Access Controls at NIST
<http://csrc.nist.gov/rbac/> for the gory explanation.
Here's what I see as the difference:
Current MediaWiki 1.5 RBAC
Level Permission
User Group Role
Is my assessment of the situation correct? If so, it'd be nice to move
toward using more standard terminology. It's not something worth slowing
down a 1.5 release, but it'd be good to eventually align this
Rob
Since yesterday evening, on different machines, I keep getting MySQL
errors on de.wikipedia for some pages. Others are fine.
"1053: Server shutdown in progress (10.0.0.2)"
Looks like some broken reboot?
Magnus
Sorry if this is an old question, but is there a way to recalculate the
Special:Wantedpages on a private mediawiki installation? I've corrected many
of the listed wanted paged by adding them or changing the links in the pages
that were linking to them but they don't seem to recalculate, perhaps
because some of the links are within templates.
Is there a script to recalculate the links?
Hope you can help, many thanks.
Hi,
does anyone know about the (non-working) e-mail notification and the
missing "updated" markers (for watched pages which have new contents
since your last visit).
The functionality is totally broken on http://test.leuksman.com which is
a pity.
If you want me to assist in fixing this problem, please let me know.
For those who want to use a working MediaWiki with e-mail notification
for changed and new pages, it can be downloaded from
http://meta.wikipedia.org/wiki/Enotif .
It could be easily extended to send notification to Sysops, when new
users register. Pls. contact me, if you need this.
Wikinaut Tom
Hi, is there something special that I need to amend to show pictures
that are loaded on my server?
The picture for this page
http://ars-vita-italica.com/index.php?title=Rome
was uploaded in the direcotry /images.
But it does not show up - so I believe that I understood something wrong
or there must something I have to change maybe in a config file.
Thanks for any hint!
Ciao, Sabine
___________________________________
Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB
http://mail.yahoo.it
Brion:
... 1.5 (which will be going live within a week or two).
Can we have a fresh dump just before the first database is converted to 1.5,
so that I can run stats. I most probably won't be doing work on wikistats
for 1.5 during summer,
so June stats will be there for a while.
Erik Zachte