Le site officiel de John Bonobo : Comment ça marche ?

Comment ça marche ?



Sources


Pour les programmeurs et les curieux, la mécanique du site est décrite dans cette rubrique, avec les sources PHP/MySQL.

Afin d'éviter de perdre tout le monde au bout de deux phrases, je commence par un peu de terminologie : je compare un site à un arbre (ou, pour faire pro, une structure arborescente). Il a toujours une racine (la page d'accueil), et de chaque page (appelée noeud) partent éventuellement quelques branches (des liens) vers les pages enfant. Pour représenter n'importe quel site, on peut donc dessiner une sorte d'arbre généalogique à l'envers, avec des parents et des enfants. La hauteur (ou encore profondeur, ou génération, ou niveau) de chaque page dans l'arbre correspond au nombre minimal de clicks pour y arriver depuis la page d'accueil.

Au départ de mes préoccupations, il y avait un problème de structure : imaginons que je veux faire un site avec une rubrique "les fromages" et une autre rubrique "les chèvres". Pas de problème jusqu'au jour où j'ai envie de faire une sous-rubrique sur le fromage de chèvre. Vais-je la mettre dans "fromage" ou dans "chèvre" ?
C'est un choix impossible : je veux impérativement que cette page soit accessible depuis les fromages et depuis les chèvres. Mais, pas question de la taper deux fois. Si jamais j'avais fait une faute, je ne veux avoir à la corriger qu'une fois.

Une bonne façon de résoudre ce problème est d'utiliser des mots-clés (ou labels) : chaque page sera répertoriée non pas par une position absolue et unique dans un sommaire lexical, mais par un certain nombre de mots-clés. Dans notre exemple, je vais donc définir les mots clés "fromage" et "chèvre" et remplir une base de données avec quelquechose comme la table suivante :

Titre de la pageTexte Fromage Chèvre
Page d'accueilBienvenue sur mon site...nonnon
Les fromagesLe fromage est un aliment à base de lait...ouinon
Les chèvresLes chèvres sont des animaux végétariens...nonoui
Le fromage de chèvreLe fromage de chèvre, comme son nom l'indique...ouioui

Ce qui est génial, c'est que toute l'arborescence du site est maintenant directement et naturellement induite par cette indexation binaire. Les enfants d'une page donnée, prenons par exemple la page "les fromages" qui contient uniquement le mot-clé fromage, sont toutes les pages qui contiennent ce mot-clé plus un autre. Le niveau d'une page est exactement le nombre de mots-clés.
Avec ce système, il y a donc plusieurs chemins naturels pour arriver à une même page, et c'est bien ça que je voulais.
Ainsi, au lieu d'un arbre, il est maintenant plus pertinent de dire que ce site est un graphe (car plusieurs branches peuvent arriver à un même noeud).

on comprend tout de suite avec un pitit dessin

Ainsi, chaque page de ce site est repérée par quelques mot-clés (parmi une liste de 64, voir la section Recherche) dans une table d'une base de données.

Le couple PHP/MySQL est parfaitement adapté à la réalisation de ce projet. Mon premier essai recalculait, à chaque appel de page, le sommaire directement à partir de la base de données. Ca marche, mais l'expérience a prouvé que c'est un peu lent.
Vous surfez en ce moment sur la deuxième version de ce site, bien plus rapide : à chaque fois que je saisis ou que je modifie une page, un moteur de réindexation lexicale crée une seconde table où chaque page sera eventuellement présente en plusieurs exemplaires à des positions différentes. Vous pouvez constater que certaines pages apparaissent bien plusieurs fois (avec différents parents) dans le Plan du site lexical, ce qui était mon but.


© John Bonobo - Bonobo Future Systems - Nancy, Berlin, 2000-2004.

Cette page respecte les standards définis par le W3C.

Navigation avancée

Plan du site Recherche Options

Recevez la lettre d'info



This page in english This page in english
Diese Seite auf Deutsch Diese Seite auf Deutsch


MP3 in background



Get Firefox










all U need is John Bonobo