Two points before I make my proposal:
1. I prefer the Frodo (Middle Earth) naming convention. It's more encyclopedia-like.
2. I stand against subpages. Having said that, I stand in support of a software solution that will translate links so people don't have to type so much.
So here's yet another proposal. (Although I haven't done anything yet, I am a registered SourceForce developer. So I'm willing to code up what I propose.)
It's a blend of ideas already presented by Uri, Magnus, and Mark.
Mine is different because I think the system should merely translate what an author has typed into what the author is presumed to have meant. This completely simplifies the wiki syntax to what we have now, but it makes it easier to create content. An acceptable balance, IMHO. Magnus has set a precedent for this with the ~~~ signature feature (however, it would be much more useful if it would expand in the preview screen). So I'm assuming that the section of the system that translates ~~~ would do these new translations.
So the elements of the changes are:
1. 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.
2. 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.
3. 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.
4. If we want to get fancy, then we can borrow from the way Perl programmers change namespaces. I'm simplifying, but basically, in Perl, typing
package "FantasyFiction";
will cause subsequent symbol lookups to happen in the FantasyFiction:: namespace.
So we could use Uri's idea of the #base pragma to cause something like this:
#base [[Fantasy Fiction]]
[[/elves]]
to be translated into this:
See also: [[Fantasy Fiction]].
[[elves (Fantasy Fiction)|elves]]
The system could remove the #base line completely instead of translating it, but I think it's useful to reflect by default that there's a relationship between the content of a give page and some other related page. After all, if the author doesn't like that behavior, he or she can simply type the links manually instead of using #base. Or the author can edit twice: the first is a major edit, and the second is a minor edit to remove the See also: line.
I like this proposal because it is both useful and technically sound - a rare combination these days ;)
As the software will then actually modify the articles automatically, I guess this needs approval from The One Who Said He'd Be Back (not Arnold;)
Magnus
-----Original Message----- From: wikipedia-l-admin@nupedia.com [mailto:wikipedia-l-admin@nupedia.com]On Behalf Of Tim Chambers Sent: Thursday, January 31, 2002 12:23 AM To: Wikipedia List Subject: [Wikipedia-l] yet another modest proposal to address subpage-like behavior
Two points before I make my proposal:
- I prefer the Frodo (Middle Earth) naming convention. It's more
encyclopedia-like.
- I stand against subpages. Having said that, I stand in support of a
software solution that will translate links so people don't have to type so much.
So here's yet another proposal. (Although I haven't done anything yet, I am a registered SourceForce developer. So I'm willing to code up what I propose.)
It's a blend of ideas already presented by Uri, Magnus, and Mark.
Mine is different because I think the system should merely translate what an author has typed into what the author is presumed to have meant. This completely simplifies the wiki syntax to what we have now, but it makes it easier to create content. An acceptable balance, IMHO. Magnus has set a precedent for this with the ~~~ signature feature (however, it would be much more useful if it would expand in the preview screen). So I'm assuming that the section of the system that translates ~~~ would do these new translations.
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.
- If we want to get fancy, then we can borrow from the way Perl
programmers change namespaces. I'm simplifying, but basically, in Perl, typing
package "FantasyFiction";
will cause subsequent symbol lookups to happen in the FantasyFiction:: namespace.
So we could use Uri's idea of the #base pragma to cause something like this:
#base [[Fantasy Fiction]]
[[/elves]]
to be translated into this:
See also: [[Fantasy Fiction]].
[[elves (Fantasy Fiction)|elves]]
The system could remove the #base line completely instead of translating it, but I think it's useful to reflect by default that there's a relationship between the content of a give page and some other related page. After all, if the author doesn't like that behavior, he or she can simply type the links manually instead of using #base. Or the author can edit twice: the first is a major edit, and the second is a minor edit to remove the See also: line.
[Wikipedia-l] To manage your subscription to this list, please go here: http://www.nupedia.com/mailman/listinfo/wikipedia-l
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
wikipedia-l@lists.wikimedia.org