Rowan Collins [IMSoP] wrote:
it's kind of central to the concept of a wiki that it uses real page names as the unique identifier
Imagine that the software had a way to recognize disambiguation pages. When a page is saved and contains the {{disambig}} tag, the software could set cur.cur_is_redirect = 2. Then assume that [[Napoleon]] is such a disambiguation page.
Now, when I write an article and link to [[Napoleon]] and preview my edit, the system consults the cur table to see if the link should be red or blue. But in the case of a disambiguation page, it could instead harvest that page for links and insert an HTML form selector (a drop down menu) where I can select which one of the people I want to link to. In the next step (save or preview), the edited text would be disambiguated to [[Napoleon I of France | Napoleon]].
This link harvesting would only take place on preview, and not during the normal display of an article. I think this could be implemented without compatibility problems. In fact, the same link disambiguation during preview could also be performed for links to redirects. In a way, a redirect is merely a disambiguation page with just one link.
This is how I imagine that the editing user interface to IMDb works. I don't think the IMDb editors open a separate browser window to find out that Pierce Brosnan is "nm0000112" before creating a new link. I think such ideas can be incorporated into a wiki without killing the wiki spirit. At one time, some people said that CamelCase was an essential part of a wiki, and we proved that they were wrong.
(Today in the English Wikipedia, [[Napoleon]] is a redirect to [[Napoleon I of France]], and the disambiguation page is called [[Napoleon (disambiguation)]]. That disambiguation page contains a lot more than links to the non-ambiguous terms.)