Un LienLibre permet une combinaison flexible de caractères, lettres, chiffres et ponctuation (différents wiksi varient dans les symboles qu'ils permettent), à la différence par exemple de la casse ChatMot qui est restreinte à l'alphabet anglo-saxon et qui doit alterner les capitales et les lettres en bas de casse selon un modèle particulier. Ceci permet beaucoup plus de libertés dans le nommage des pages, qui peuvent être vraiment avantageuses dans disons une encyclopédie ou un dictionnaire, mais exigent des standards ad hoc au moment de créer un LangageDeFormes.
Parce que la syntaxe LienLibre est si flexible, elle doit être marqué au corps avec une syntaxe spéciale. Ce pourrait être [un lien]
, [[un lien]]
, _un_lien_
, ou toute une variété d'autres modèles équivalents. Ceci en contraste tant avec la casse ChatMot et la SyntaxeLienDynamique (par ex : CommunityWiki:LienClair).
Un LienLibre, au moins dans une DatabasePage fermée comme un wiki, signifie que le ModèleDeLien est complètement ouvert. Toute chaine de caractères peut être un lien. Les HREF du World Wide Web (maintenant des xlink:hrefs) sont des LienLibres.
Par exemple, au lieu de restreindre tous les liens résoudre le pattern CamelCase (ChatMot) que nous avons ici (par ex. "LienLibre", "ChatMot", "ModèleDeLien"), nous pourrioins faire un lien pour "Je pressens que ce code arctique sent vraiment bon".
Sur un wiki, ceci veut dire qu'à la différence du ModèleDeLien communément utilisé, le wiki peut produire des pages avec n'importe quel nom, y compris une page qui s'appelle "Je pressens que ce code arctique sent vraiment bon"." Tandis que l'argument est que cela détourne (detract ? détend ?) le LienAccidentel, beaucoup de gens semble encore les utiliser. WikiPedia pourrait vraiment bénéficier des ces exigences, par exemple. Bien sûr, le modèle restrictif est véritablement en train de les détendre du LienAccidentel sur leur site.
Les liens librement-formés mènent à l'image de fond dans le nom de lien. Avec des liens librement-formés, le nom de lien tend à dépendre de son contexte de référence (comme le caller de la method/function) parce qu'il est facile _ faire couler le lien avec texte environnant. C'est une forme d'approche haut-bas où les nouvelles pages sont seulement créées pour clarifier les pages existantes.
Avec un modèle de lien strict, d'un autre côté, le nom tend à appartenir à la page que le nom représente (the actual method/function itself). Il est plus facile de remplir en contenu pour une page, ou d'écrire une method/function, si la method/function peut converger sur ce qu'il fait et totalemnt ignorer comment il est utilisé à l'extérieur. Bien sûr, c'est la method/function qui définit comment il est appelé et les appelants sont responsables pour l'obtenir instantanément. Pareil ici. Nous voulons perdre le contexte dans le modèle de lien. C'est plus de la stratégie de composition de bottom-up.
C'est simplement comme l'utilisation des Haiku ou des cartes de crédit pour consolider, clarifier et cristalliser les idées. Ils vous forcent (en étant une douleur dans le derrière) à utiliser la solution la moins gourmande en énergie.
Plus de pouvoir n'est pas toujours une bonne chose, ou sinon we'd all be hacking in assembly. -- SunirShah
Avec des liens librement-formés, le nom du lien tend à dépendre de son contexte de référence parce qu'il est facile à _(faire coluler le lien) avec l'environnement aux alentours.
V. vrai. Je n'ai pas de bonne solution, bien que j'observe en passant que le problème arrivera probablement avec des pages qui n'ont pas de Titres Capitales. -- DanBarlow
The important part is that words smashed together in any way -- ie. without whitespace -- also form a token visually. This makes linking more deliberate, as the name does not flow easily with the text. It stands out visually as one term. Therefore, the following make good link patterns:
_wiki_names_ wiki_name wiki-name
And the following make bad link patterns:
_(wiki names)_ [wiki names] [[wiki names]] {wiki names}
Free links break accidental linking, because the increased freedom in page naming reduces the chances of accidentally using the same page name in a different context. This happens anytime you have to make a choice between two syntactically different yet semantically identical identifiers. See AccidentalLinking for a discussion whether creating links "by accident" is actually something to be desired or not.
It seems that the "accidental" goals are more a function of choosing good names rather than the link syntax. General phrases (especially noun phrases like "arctic cod") are more likely to be useful in other contexts. The specific syntax of the links (ArcticCod? vs [[arctic cod]]) is less important.
One concession to AccidentalLinking is that all FreeLink pages have their first letter capitalized. This lets one write sentences like "[[Arctic cod]] is a kind of fish." and "Polar bears eat [[arctic cod]]." which will both link to the same [[Arctic cod]] page.
The WikiNom convention encourages shorter names because it requires work proportional to the number of words, and because long WikiNames are hard to read. Perhaps the Wiki:WikiNature requires these constraints. Not all sites want to be wikis, however, and I am not very interested in enforcing the limitations of wikis.
Many people feared that free linking would make linking to other pages difficult, since longer page titles are harder to "inline" into a sentence. The natural tendency of people to use meaningful page titles -- even when using Free Links -- results in less problematic links than the community expected in the beginning. Neither TrikiWiki? nor WhyClublet experience much accidental linking, yet both are arguably successful wikis. Therefore, it makes no sense to worry whether "I love arctive code!" is a good page title, and whether it can be used in the middle of other sentences.
A good way to use longer page names when linking without breaking the flow of a text has been used in paper publishing for a long time, now.
This abstract discussion isn't really interesting in the particular case of UseModWiki's implementation. It's far better for UseModWiki to allow whatever its users demand. I am using it as an example because it's new and this site has a tradition of supporting the UseModWiki script for obvious reasons.
Instead, I'd rather talk about the various EquilibreDeForces at play, in order to think about what a good LinkPattern might be or even that the basic concept of a LinkPattern is broken to begin with. After all, it's possible to number each node on the wiki and then use HTML-style DescriptiveLink?s. This could look like (modeled after footnotes):
[Hitch hiker's guide to the galaxy [42]]
Anyway, the point is that WikiWiki has the appropriate ModèleDeLien for its context, which doesn't work for WikiPedia for example. Picking a good ModèleDeLien is really important. Some places need FreeLinks. My argument is that FreeLinking makes LienAccidentel no longer work (effectively). But even that's false.
Really, the whole point is usability. By using a SolutionTechnologie to enforce the linking convention, this allows new users unfamiliar with the local customs to create links that conform to some sort of local standards. However, with FreeLinks, a greater onus is on the community to maintain consistent and sane page names. For instance, it would be the very rare exception that "I feel that I really like arctic cod." [ed: ha. See, I even forgot what the link was. Of course, I really meant, "I feel that arctic cod tastes really good."] would be a good name.
UseModWiki (though not MeatballWiki) as of version 0.91 now has LienLibre. It looks like (WikiSyntax first, emitted HTML second):
[[I feel that arctic cod tastes really good.]]
<a href="wiki.pl?I_feel_that_arctic_cod_tastes_really_good.">I feel that arctic cod tastes really good.</a>
The NoSuchPageSyntax has to be special in order to make it clear how much previous context will form the link, so that looks like:
[[I feel that arctic cod tastes really good.]]
[I feel that arctic cod tastes really good.]<a href="wiki.pl?I_feel_that_arctic_cod_tastes_really_good.">?</a>
The square brackets wrap around the whole text that will form the link. Consider what would happen if the text were:
[[I feel that arctic cod tastes really good.]]
I feel that arctic cod tastes really good.<a href="wiki.pl?I_feel_that_arctic_cod_tastes_really_good.">?</a>
What words actually will form the link? Maybe It's only "arctic cod tastes really good."
Nonetheless, notice that the current syntax sucks up the trailing punctuation. So, now the two references:
[[I feel that arctic cod tastes really good.]]
and
[[I feel that arctic cod tastes really good]]
are different (note the trailing period in the first link, and the lack thereof in the second).
While the script may pick this syntax out, it shouldn't really. It's a free link, after all. The cost is that LienAccidentel is broken badly now. But really, what's the correct way to link to "i-mode" using MeatballWiki's LinkPattern? (IModeProtocol? is probably the best, but it's really non-intuitive). For phrase titles, like "FreeLink", the existing ModèleDeLien is nearly ideal. For proper nouns, it's terrible. In fact, one reason why the UseModWiki ModèleDeLien is different from WikiWiki's is to allow middle initials.
Even the UseModWiki implementation isn't as free as it could be as you admit as you do a little WikiNameCanonicalization. You could go even further to canonicalize the links too. For instance, you can
link_pattern
;
These transforms would allow better writability yet improve LienAccidentel. This is definitely an improvement over the existing systems, I think.
By the way, if you doubt the power of this many-to-one ModèleDeLien philosophy, you can also translate all of those into the UseModWiki LinkPattern style as well (allowing for one-word links too):
One side note that I don't really think is important, but it's interesting. Someone once wrote that the CamelCase LinkPattern of WikiWiki was its particular stylistic identifier. I suppose similar to odes to hot grits on SlashDot. ;) -- SunirShah
Another advantage of FreeLinks is that they make it obvious how to type plural-forms of links. For instance, on a FreeLink-enabled wiki one could type [[FreeLink]]s
rather than trying to remember which combinations of single or double quotes the local wiki uses.
Response.
The argument here is more at the ridiculousness of the double-quote rule or the Wiki:SixSingleQuotes idiom. Neither rule is user friendly, both are hacks. One is an unexpected bonus of existing page translation, the second is hacked directly into the script. Unfortunately, there is no clear way through the problem.
One solution might be to extend the ModèleDeLien to require bracketing characters, ala [[ModèleDeLien]]
. Then, you can talk about many [[ModèleDeLien]]s
all at once.
So, as you see, it's not the FreeLink that gives you the latter property, but the BracketedLinks. That might be a legitimately useful upgrade to the ModèleDeLien too. That would solve the unwanted links that happen frequently in program listings for example.
$WikiLinks
variable to 0. All valid ModèleDeLiens are a subset of LienLibres. Program listings should use the nowiki, code, or pre tags, however.
Another argument for a free-format ModèleDeLien in a Wiki (striving for multimedia collaboration) is compatibility with different WikiForums: each non-CamelCase LinkPattern elsewhere that we would like to link to has to be translated first into a cumbersome CamelCase LinkPattern.
When allowing free-format ModèleDeLiens, the casse ChatMot hard-core people could form a stable subspace. -- FridemarPache, FriendlyPeerContributor
Voir aussi ModèleDeLien, LienAccidentel
PageTranslation LangueFrançaise FreeLink