Wiki Name Plural Problem

I create the topic WikiName and its associated page. Then somewhere I refer to WikiNames and discover that this doesn't refer to the page I thought it did. -- Stefan Kapusniak

The two pages are different because they have different names. The general convention is to name pages in the singular unless the plural form is all that would normally be used. Sometimes, the flow of a sentence would lead one to prefer a plural name. In this case, one can revise the sentence, omit the link, or use an adulterated plural such as a parenthesized or italicized ending. -- WardCunningham

The WikiNamePluralProblem is that the Wiki engine generates separate pages for

One day, someone may refactor the MindMap, MindMaps? and MindMapping pages into just the MindMap page, and apply this solution to all links to MindMaps? and MindMapping. But don't hold your breath...

Make plural names link to singular page names by putting SixSingleQuotes in between the name and the s, like this:

However, this conventional solution leads to another problem: unconventional WikiGrammar.


Historic Solutions

These suggestions were offered before anyone ever thought of using SixSingleQuotes, you may see them in your travels.

Contributors: MarnixKlooster, WardCunningham, TomStambaugh

Some Possessive Discussion

Regrettably, WikiName's shadows WikiName's possessive form. -- PeterMerel

No, no. It makes sense. Just like the "80's" has an apostrophe - WikiName is an atomic symbol (as a link) and not a word (as long as you squint at it). So using an apostrophe fits with the whole concept. And it works. -- IanBicking

Not to be a pedant, but the <year>'s was initially used to refer to the <year>'s music, or whatever. The "80's" is possessive. It's just used improperly by so many people these days. -- EdGrimm

Untrue on the <year>'s issue. Look up the letter "A" in your dictionary. One of the plural forms will be "A's". As I understand it, this is one of the EnglishLanguage's better attempts at a UseMention distinction: numbers, letters, and anything else that appears not to be used to signify something else (There were 80 houses on the street), but as a mention of the signifier itself (Due to an error, there were two number 75's on the corner) takes on an apostrophe before the s. -- DavidSaff

Is "the eighties" an example of this kind of usage, though? I suppose one could argue that it is. In Spanish, they sometimes say los ochenta: a plural article with a singular noun.

I agree about UseMention. But still WikiName's seems ungrammatical/misleading/incorrect to my personal in-built parser, but on the other hand so does CamelCase.

The AP Stylebook says the plural of the letter A is A's
but the plural of the number 25 is 25s ...
In '80s the apostrophe goes before the 8 and stands for 19 ...

nathaniel t 2003-05-10

Everyone should read EatsShootsAndLeaves before fretting over this too much. There is a lot of good information in there, and if you care enough to edit this page, you'll care enough to read the book. The biggest thing I took from it is this: The most important goal of punctuation is to clarify the language for the reader. There are some rules that do not make sense, but are accepted as correct. I always choose the clearer, more straightforward version of the rule instead. This is one of those cases. Despite being 'acceptable', and listed in books as such, the excess use of apostrophes in English (especially American English) is an abomination. In most cases, it doesn't clarify anything. Anyway, read the book for more general punctuation ranting. As far as the topic at hand goes, SixSingleQuotes is awkward syntax, but the trimming of the 's' is what needs to be done. -- PhilipMaynard?


What about the converse problem? I created a page with a plural name, and there's no way to refer to it in the singular. I expect the answer is to never use plural names. I don't recall coming across a recommendation of this when I was learning the system. I'll check again, and add it somewhere if I can't find it. -- DaveHarris


Dictum: "Consider using the singular form attributively."

Exegesis: By this I mean that when a plural sense is desired, it is normally possible to use the WikiName attributively, (like an adjective). In English, this eliminates the need for weird punctuation or inflections, and is often more precise, anyway. Maybe English is the only language in which attributive use of nouns, and substantive use of adjectives is practically a built-in feature.

Example: My grandfather, an avid reader of The New York Times, saved every issue. When writing to a dealer in ephemera, I might be tempted to describe the collection as "a pile of old Timeses". Following the above dictum, I can more precisely state, "There is at least one copy of every issue of the Times."

-- DougMacKenzie?


Various server modifications have been suggested ...

I solved it a nice way. WikiNames will automatically link to WikiName, except if WikiNames also exist. My SolutionOfTheWikiNamePluralProblem also takes into account the cases of SecurityPolicies? linking to SecurityPolicy?, and StateTaxes? linking to StateTax?. The only catch is that it's not possible to create plural pages, except by typing the URL manually. -- ChristopheVermeulen

What about the example WikiChild? vs WikiChildren?? Different languages have different pluralization rules. Languages borrow words and their plurals from other languages. -- AnonymousDonor

WikiChild? and WikiChild?ren isn't a problem. However, WildGoose? and WildGeese? can be mistaken. I suppose a better solution would be some form of connotation like WildGeese?(WildGoose?), much like a hyperlink in HTML (<a href="reallink">displaytext</a>). -- LeeLouviere

What if WikiNames mapped to the same page if they were equal except for a trailing 's' or 'es' on one of them? -- RonJeffries

Yes. Then we can use RonJeffrie? or RonJeffri? if we want to refer to you in the singular form. Or was that RonJeffry?? *smile* -- MarnixKlooster

Actually, I had in mind that it would prefer the plural if it existed, something like this:

  findPage: aString
| page singular |
page  := self
basicFindPage: aString
ifAbsent: [nil].
page isNil ifFalse: [^page].
aString last = $s ifFalse: [^page].
singular := aString
copyFrom: 1
to: aString size - 1.
^self
basicFindPage: singular 
ifAbsent: [nil]
[EditHint: move code to SolutionOfTheWikiNamePluralProblem ]


What about writing a synonym flag into a wiki page, which points to the canonical version. Wiki could either redirect the reference to the page, or allow indirect access to a page through its synonyms. I guess it might lead to all sorts of dangling pointer type problems. -- DavidMcNicol

Consider WikiName+ for multiples of a singular, and retain WikiNames as a unique identifier for standalone collections as in, TheKinks? would have lasted if they had worked TheKink?+ out. -- JackBolles


I propose we auto direct bad names to good names by adding a rule that says if a page consists of nothing but whitespace, punctuation, the word "see", and a WikiName, the Wiki engine automatically jumps to the target.

If the page contains anything else, it lives. For example, UnitTests talks about the philosophy, and UnitTest talks about the technology of one test. (Well, it did until its content was refactored into UnitTest.)

My rule would cure all the pages that currently only say "see". And if you then want to upgrade that page itself, you'd type the "?Edit=" URL by hand. The Editor would not invoke the "see" rule.

-- PhlIp

I like that. A far simpler and less obtrusive implementation of what I was trying to get to in WikiNameSynonym?s. -- TimVoght

But now the WikiEngine has to handle cycles [A: see B; B: see A]. What's the UseCase? What is presented to a visitor when he follows a link to A? -- AnonymousDonor

Of course, newcomers wouldn't be able to pick up on the rule just from the syntax of the TEXTAREA on an EditText page. Moreover, only RecentChangesJunkie-s wing around by editing the URL instead of clicking on the links. Seems to me like this raises the barrier to entry a little too high. -- SunirShah

FoxForumWiki, UseModWiki, and BazzaWiki (and others, I'm sure) have implemented redirection in various forms. In BazzaWiki, the problem of editing redirects was resolved by placing a symbol linked to the editor beside each page link resulting from a search. The same symbol was used as the edit button on each page, beside the page titles, so that users got used to the idea that that was the way to start editing. -- BrianEwins


What about adding markup functionality for synomymes like: LoveChildren=LoveChild or LoveChildren{LoveChild}? This would also make it possible to use single words like Perl and Coffee instead of PerlLanguage and CoffeeDrink? or CofFee? or whatever ("I like a good cup of Coffee{CoffeeDrink} in the morning and a pint of Beer{BeerDrink} in the evening")... Maybe it could be possible to define pages from one-word WikiWords by writing {Microsoft} (instead of MicrosoftCorporation or the incorrect MicroSoft).

BTW: I think the idea of the server guessing plural form from singular (or vice versa) is totally ludicrous. This would lock Wiki to the English language forever.

-- KurtGeorgeGjerde


WardsWiki manages to DoTheSimplestThingThatCouldPossiblyWork about the WikiNamePluralProblem: nothing. That causes problems, but they can be resolved by refactoring links. The benefit is simplicity: visitors aren't troubled by about another rule for forming WikiNames or editing WikiPages.

Wiki is not a perfect system. It is WabiSabi. That is one of its strengths.


The problem of external sites referencing old names has been illustrated on UnitTests by people listing the pages from which they came.


JspWiki has an option to link a plural and singular to the same page if no page for the plural exists already. I believe it just chops off a trailing 's' and tries again, nothing very fancy. It recommends turning it off for non-english sites, though French might do all right with it on (and German could for the most part just chop a -en suffix instead of 's').


From UnitTests:

What insanity... UseMod has forwards, and JSPWiki can map plurals to singulars. Ward is apparently running an experiment in how long a wholly unmaintained codebase can remain viable, because technical solutions to this problem exist that are far better than manually chasing down every link and changing them.

I always thought that WardsWiki was a carefully-crafted experiment in psychology...

The wiki we use here at work has forwarding, and that completely emasculates searches. Mapping plurals to singulars is also implemented and suffers the same problem. We have now made a company-wide decision specifically not to use the technical solutions and instead to get people to do what people are good at - making decisions. Fixing the original reference ensures that searches work the way they ought, and recycles pages into the attention span of the company.

Your criticisms are noted, along with your apparent inability to recognize that not everyone has the same aims as you.


Imho, this shows a problem in the searching more than the forwarding. The fact is that the WikiWiki syntax involves so much jumping through hoops with SixSingleQuotes and bizarre WikiNames and suchlike that, to me, it shows itself as a perfect example of the failure of DomainSpecificLanguages (wherein WikiWiki's rules can be thought of as a DomainSpecificLanguage variation of HTML). While, say, enforcing a subset of HTML, BBScript, etc. might be less instantly legible and quick to write in, it would make up for it in familiarity, resources, editor support, etc.


It would seem to me that if there is anybody who is bothered by the WikiNamePluralProblem (as in AlarmBellPhrase vs AlarmBellPhrases) that it would not be those who fashion themselves to be programmers. A considerable effort has been put forth over the past few years to eliminate, as if it were a duplication, the plurally named page in favor of the singularly named page.

ObjectOriented programmers can easily discern the difference between a class and an instantiation of that class, an have little trouble in using both, and to extend that use by building structure on structure and employing morphing techniques to shape related usages. What is so different then between maintaining separation between the name of a set, and the collection of instances of that set?

An AlarmBellPhrase page should in my opinion the definition of what it is that identifies a phrase as causing an Alarm bell to sound in the discerner's ears.

If one is to allow for it, an AlarmBellPhrases page should contain a collection of phrases meeting the definition and criteria of an AlarmBellPhrase.

Some Wikis have pages which can be associated where elaborations and examples can be put forward using a mechanisms indicated by a tab, for discussion, this one does not.

I have resigned myself to the approach utilized by the community here, but with this page, I am ThinkingOutLoud about my views on the subject.

There is a difference between the effort to eliminate duplication as in OnceOnly and the extension by way of collection, structure or actions of objects created by, or created from, other objects.

Illustrative:

Other pluralities same subject:

moved from another page

One might also point out that programming conventions such as overloading, overriding, and scope, violate the OnceOnly principle in general programming. It seems that in actual usage, even among ExtremeProgrammers it is UseAsManyTimeAsYouNeedTo, and ItDoesntReferToTheSameThingEvenThoughItUsesTheSameName. The actual practice of reuse (of names such as i, j, k, x, y, z, m, n, args, int, float, string, and so forth make one cry out "What do you mean once?" Object? Instance? Method? Module? Program? I'm afraid this one is just a buzzword which crys out ItDepends on context and the reply to which is not often more than a nod of the head, which may mean IAgree, IUnderstand, or IHaveThatPattern, but which most often only means, IhearYouContinue. To me OnceOnly has no singular,concrete, and definitive meaning. If you mean "RemoveDuplication", or "ReduceComplexity", or TheWheelAlreadyExists, say so!

-- DonaldNoyes


CategoryWiki


EditText of this page (last edited August 17, 2010) or FindPage with title or text search