From: "Tim Chambers" tbchambers@yahoo.com
[...] So the elements of the changes are:
- If the title has a parenthetical phrase, then that phrase is presumed
to
be the parent article. So on the Frodo (Middle Earth) page, a link typed [[/elves]] will be expanded to [[elves (Middle Earth)|elves]] when the
page
is saved.
- If the Title doesn't have a parenthetical phrase, e.g. Middle Earth,
then
links of the form [[/elves]] are translated to [[elves (Middle Earth)|elves]] when the article is saved.
- To make it easier to use random parethesized article names, the system
could translate any link of the form [[/name (parenthetical)]] to [[name (parenthetical)|name]]
It doesn't save much typing, it has a nice symmetry to the previous two translation patterns.
Excellent idea; clear, simple and elegant. But I also see a small problem: except for a small difference in notation this is almost exactly the same as having subpages. However, I think the big difference here is that we know what the name "X (Y)" means; X is a term that has a specific meaning in knowledge area Y, e.g., "Function (Set theory)" or "Mapping (Topology)", or X is the name of a thing of a certain type, e.g., "Java (Island)", "Java (Coffee)", and "Java (Programming language)" . (I would expect that many namespaces correspond with Wikipedia categories.) I believe that his makes namespaces less arbitrary than subpages, which was IMHO Larry's most important argument against subpages. But I have to admit that it also could have been "Java (Computer science)" or even something else, some arbitrariness is still left.
Another small problem is: what do I do if I want a links on "Middle Earth (Tolkien)" to have the name space "Middle Earth"? That is something that you would probably want for many links there. So I would suggest the following notation: - [[:name]] for a sibling page, i.e., a page in the same name space as the page the link is on - [[/name]] for a child page, i.e., a page in the name space corresponding with the page the link is on
Another argument that Larry used was "why only two levels?". As you can probably guess from my previous mail, I agree with that. So allow me to take your idea and make it horribly complex and unimplementable. :-) No seriously, I'll try to keep it simple this time. Here goes.
1. If there is a page with a name of the form "X (Y)" then X is a sub-name space of Y. Pages without a name space in their name are presumed to belong to the highest global name space. (only terminology) 2. links [[/X]] and [[/X (Y)]] are replaced as in your proposal 3. link [[:X]] on page [[Y (Z)]] is replaced with [[X (Z)|X]] (only slightly different notation) 4. link [[X]] on page [[Y (Z)]] is replaced with [[X (Y)|X]] if "X (Y)" exists and Y is the first name-space from below that is a super-name space of Z. This makes that sub-name spaces inherit page names from super-name spaces as you would expect.
This avoids having lists of #base pragma's which you may have to retype (you could even have "multiple inheritance" of name spaces) and if you like you can also have automatic links to the super-name spaces without the need of a double edit.
-- Jan Hidders