[Home]LienLibre

MeatballWiki | RecentChanges | Random Page | Indices | Categories

Cette page a démarré sur FreeLink

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).


Discussion

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.

Pas exactement. Il y a beaucoup de caractères qui ne sont pas acceptés dans les URIs. Peut-être que vous vouliez dire le texte descriptif du lien ? Dans le sens UseModWiki, seules 4 caractères supplémentaires valides sont ajoutés. La plupart de la liberté provient d'autoriser les espaces arbitraires et les lettres capitales.

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".

...ou pour ce modèle "Lien Libre", "Chat Mot", "Modèle Lien", ou "Code Actique".

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 WikiNoms en casse ChatMot tendent à appartenir à la page que le nom représente

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}

Lien Accidentel

"The cost is that LienAccidentel is broken badly now."

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.

Flux

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.

  1. Use footnotes
  2. Parenthesis (see Using Free Links).
  3. Partial sentences, see Using Free Links.
  4. Normal sentences. See Using Free Links.

Equilibre de Forces

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]]
<A HREF="wiki?action=browse&id=42">Hitch hiker's guide to the galaxy [42]</A>

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.


Discussion des aspects plus techniques

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

e.g. "JohnFKennedy" --> "john_f_kennedy"
e.g. "sh.. bang!" --> "sh_bang"
e.g. "spread \n\r out \t text" --> "spread_out_text"
e.g. "NTT Do Co Mo" --> "ntt_do_co_mo"

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):

john_f_kennedy
JohnFKennedy
sh_bang
ShBang
spread_out_text
SpreadOutText
ntt_do_co_mo
NttDoCoMo

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


For links to non-existant pages, one future possibility is that they might be rendered in a different style or color. This could even be a per-user preference. Some people want non-existant pages to be obvious, and others want them to be subtle. (One likely near-term addition will be a "printable page" display mode which would display the non-existant page-links as ordinary text, as well as hiding the link bars and search interface.)

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.

You can get close to this behavior in 0.91--just set the $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


Discussion

MeatballWiki | RecentChanges | Random Page | Indices | Categories
Edit text of this page | View other revisions
Search: