Agora

De Troulite.

Aller à : Navigation, rechercher

Sommaire

Introduction

Le projet Agora vient d'un sentiment de frustration (partagé ou non) face aux moteurs de recherche intégrés aux forums actuels. En effet, c'est généralement la croix et la bannière pour retrouver un message précis ou un ensemble de messages correspondant à un même thème. Afin de faciliter un peu cette recherche, ces forums utilisent un système de catégories (hiérarchisées ou non) permettant de classifier les différents topics. Cela fonctionne relativement bien, mais est loin d'être parfait. En effet, il n'est pas rare que les sujets de threads s'élargissent ou au contraire se précisent, et dans ce cas-là il peut être encore difficile de s'y retrouver.

Agora se propose de tenter de résoudre ces problèmes en rajoutant une certaine sémantique aux messages par le biais de tags ainsi qu'une notion plus "Web 2.0" (bip ! buzz-word).

Nota : Dans ce document, un certain nombre de questions sont posées dans le but d'en discuter tous ensemble dans la page de discussion. Bien entendu, tout commentaire quel qu'il soit est recommandé, toujours sur la page de discussion.


Glossaire


Pour se mettre d'accord sur le vocabulaire.

Catégorie thème permettant de classer les threads.
Discussion ensemble (structuré ou non) des messages et réponses sur un sujet.
Interface d'une catégorie partie du forum présentant la liste des topics d'une catégorie.
Interface du forum partie du forum présentant la liste des catégories.
Message le truc qui permet de communiquer quoi !!
Premier post le premier post (a avoir été envoyé) qui ouvre une discussion.
Post cf message.
Sujet titre d'une discussion
Tag marqueur (ici sous la forme d'un mot ou d'un ensemble de mot) que l'on associe à quelque chose dans le but de le retrouver facilement.
Titre résumé du contenu de qch (message, discussion, ...)
Thread cf discussion.
Topic "de quoi on cause". Peut être le sujet, le sujet et le premier post, le sujet et un ensemble de posts, ...

Un "tag-based" forum


Que sont les tag ?

Définition de Wikipedia :

A tag is a (relevant) keyword or term associated with or assigned to a piece of information (like picture, article, or video clip), thus describing the item and enabling keyword-based classification of information it is applied to.

Dans cette définition apparaissent les deux principaux intérêts des tags :

Il apparaît également assez évident que ces tags vont grandement faciliter la recherche de contenu, puisqu'il suffira alors de rechercher les messages associés à un ensemble de tags.

Cette notion de tags n'est pas réservée au Web, ni même à l'informatique (cela peut s'avérer très utile pour une bibliothèque), mais le Web permet de rajouter un côté communautaire à la gestion des tags : c'est ce que l'on appelle la folksonomie. Au lieu qu'une seule personne crée et précise les tags relatifs à une ressource, c'est toute la communauté qui s'en charge. Cependant, comme l'explique l'article ci-dessus, cette possibilité de tout un chacun de créer des tags et les associer à ce qu'il souhaite, peut rendre la recherche plus difficile que prévu. On peut par exemple imaginer une personne utilisant le tag "chat" alors qu'une autre utilisera "chats". Ce cas est relativement facile à résoudre en utilisant des algorithmes de détection de singulier/pluriel, mais dans d'autres cas cela peut être beaucoup plus difficile d'automatiser cette résolution de conflits : les synonymes ou les mots à signification mutliples en sont un bon exemple.

Un des challenges du projet sera donc d'arriver à balancer ce que peut faire l'utilisateur et ce qu'il ne peut pas faire afin d'éviter ces problèmes.

Représentation des tags

Dans un premier temps, les tags seront représentés très simplement par un nom. Faut-il également leur adjoindre une description ? Cela peut être utile pour fixer leur sens dans le cas de tags pouvant avoir plusieurs sens, mais d'un autre côté, si un tag a plusieurs sens possibles, pourquoi devrait-on le restreindre ?

Arbre des tags ?

Lorsque le forum sera fonctionnel avec les tags simples, une bonne chose serait de pouvoir organiser les tags : si un sujet parle de Jeux videos, il parle également de jeux. Quelqu'un qui cherche les sujets parlant de jeux devra donc trouver également trouver les sujets de jeux videos. Cela peut déjà se faire avec la version basique des tags, mais cela implique de tagguer manuellement un sujet avec "jeux videos" et "jeux", ce qui n'est pas très agréable. Si par contre on n'a non plus un tag mais un arbre de tags (en fait une forêt), on pourra utiliser seulement le tag "jeux videos", mais comme "jeux videos" est un fils de "jeux", lorsqu'on cherchera les topics parlant de jeux, on tombera également sur ceux parlant de jeux videos.

Graphe de tags ?

on sait tous que l'arbre a pas mal de défaut pour la taxonomie, mais on pourrait envisager l'héritage multiple. On garde l'aspect hiérarchisé de l'arbre mais avec un peu de la souplesse du graphe.

Exemple :

              Jeux
     ___________|____________
    |                        |
Jeux de Rôles           Jeux vidéos
    |                        |
     ------------------------
                |
              MMORPG

Un MMORPG est un jeu, un jeu de rôles, un jeu vidéo.

Un problème tout de même

Les RPG sont un bon exemple des problèmes que peut poser cette hiérarchisation. En effet, un RPG peut être un jeu video, mais pas forcément. Donc que se passe-t-il si on veut parler de jeux de rôles sur table ? Si on utilise le tag RPG, le sujet sera automatiquement taggué "jeux videos", ce qui ne convient pas. Utiliser un deuxième tag "jeux de rôle sur table" ? Permettre à l'utilisateur de "détacher" un tag momentanément un tag de son père ? Est-ce bien au forum de gérer ces cas où au(x) administrateurs de bien choisir les tags ?

Bonne question...

Structure générale du forum

Catégories

Un forum classique est divisé en catégories et sous-catégories thématiques pour faciliter la navigation. Agora se doit aussi de proposer cela afin de s'y retrouver.

Plusieurs possibilités s'offrent à nous :

Mais pour que ce système de catégories dynamiques fonctionne bien, il faudrait aussi permettre à une catégorie d'exclure des tags : si je poste dans cette catégorie, je ne pourrais pas utiliser tels tags (et donc si j'utilise certains tags, mon topic n'apparaitra pas dans telle catégorie, bien que certains des tags l'y autoriseraient).

Note: Il faut aussi une catégorie qui recueille tous les topics ne rentrant dans aucune catégorie.

Posts

Les posts seront hiérarchisés : on écrit une réponse à un post, ce qui devrait permettre d'éviter majoritairement l'utilisation de la citation comme on le voit sur les forums à présentation linéaire type JoL ou HFR.

A chaque post seront associées deux listes de tags :

Topics

Un topic est un ensemble hiérarchisé de posts. Deux vues seront disponibles :

Dans la vue linéaire, on perd la notion de réponse à un post, il faut donc avoir un moyen de savoir à quel post se réfère tel autre.

La structure d'un topic est la suivante :

Topic
 |_ Post original
 |   |_ Réponse 1
 |   |   |_ Réponse 2
 |   |   |_ Réponse 3
 |   |_ Réponse 4
 |   |_ Réponse 5
 |_ Post 2
     |_ Réponse 6
     |_ Réponse 7
     |   |_ Réponse 8
     |_ Réponse 9
         |_ Réponse 10

Le topic en lui-même n'est qu'un "point d'entrée" d'une discussion. Il contiendra des informations globales sur celle-ci telles que le nombre de messages, si le topic est fermé ou non, la liste de tous les tags de la discussion, ...

On se rend compte que contrairement à une mailing list, on n'est pas obligé de répondre à un post pour écrire dans un topic (cf. Post 2 ci-dessus). Cela peut permettre par exemple d'écrire de longs textes sur plusieurs posts sans pour autant relier hiérarchiquement ceux-ci (la date suffit à déterminer la précédence). Mais est-ce une fonctionnalité réellement utile ?

Sa présence dans une catégorie sera déterminée par la liste des tags qu'il contient (ensemble des tags de tous les posts).

Plusieurs questions en rapport avec les catégories se posent.

Les fonctions de recherche

Une chose faisant généralement défaut dans les forums est un moteur de recherche fonctionnant correctement et facilement exploitable.

Dans Agora, il sera possible de choisir entre des recherches de messages ou de discussions. Ces recherches pourront s'effectuer par auteurs, tags ou contenu et pourront utiliser les opérateurs (), NOT, AND, et OR (de la plus haute priorité à la plus basse) pour effectuer des recherches précises.

Ainsi, une version peu agréable à utiliser mais permettant d'illustrer le fonctionnement serait la suivante :

discussions(((author:Ze Reaper AND tag:troulite) OR (author:Nymuo AND tag:cuisine AND !content:baba au rhum))

Ce qui aurait pour effet de rechercher toutes les discussions traitant de troulite auxquelles Ze Reaper a participé et toutes les discussions parlant cuisine, mais pas baba au rhum auxquelles Nymuo a participé.

Là encore, il reste des questions en suspens :

Il existe bien d'autres possibilités de recherche comme par exemple, rechercher les posts d'AK en réponse à un post de Lolo, ... Faut-il essayer de prendre en compte toutes ces variantes ? Cela semble assez difficile, donc dans un premier temps la réponse est non, à voir lorsqu'Agora en sera à un stade de développement avancé.

Utilisateurs

Les utilisateurs seront représentés par les mêmes caractéristiques que sur les forums classiques. En plus de cela, chaque utilisateur aura la possibilité de créer sa propre vue du forum. En d'autre termes, il aura la possibilité de créer lui-même ses catégories afin de classer les topics comme il le souhaite. Dans ce cas, une catégorie reviendra en fait à nommer une requête de recherche. La catégorie non triée sera en revanche toujours présente, pour assurer la complétude (pas de topics invisibles)

Gestion des Permissions

(Discussion sur Discuter:Agora#Classes d'utilisateur, groupes et permissions)

Un point épineux pour Agora est la gestion des permissions. Voyons pourquoi...

Sur un forum normal

Sur un forum normal, on a la notion de groupes d'utilisateurs. Chacun de ces groupes possède un certain nombre de droits pour chaque catégorie du forum. Les droits possibes sont généralement les suivants (le droit n impliquant le droit n-1):

Les groupes ne sont en fait pas indispensables mais permettent de faciliter la gestion des permissions : en affectant des droits à un groupe, on les affecte ainsi à plusieurs utilisateurs réunis par centre d'intérêts (guildes, modérateurs, chefs cuisiniers, ...).

La gestion des droits est donc très simple sur un forum classique : des groupes d'utilisateurs possédant des droits particuliers sur chaque catégorie.

Sur un forum basé sur des tags ?

Dans le monde d'Agora, des tags et des catégories dynamiques, cela se complique. Plusieurs possibilités sont envisageables :

Il existe sans doute d'autres possibilités et aucune décision n'ayant encore été prise, la discussion est ouverte (et même encouragée). Ce qui est sûr c'est que cette gestion des permissions ne sera intégrée qu'assez tard dans le développement, n'étant pas primordiale au fonctionnement du forum.

Autres Fonctionnalités

On passera ici sous silence les fonctionnalités évidentes comme l'édition de ses messages, de son profil, visualisation de la liste des utilisateurs, ... Les points qui vont être cités sont sujets à discussion.

Côté utilisateur

Côté administrateur

Technologies

Ruby on Rails

Symfony

A l'ancienne

Et le Web 2.0 dans tout ça ?

Outils personnels
Espaces de noms
Variantes
Actions
Navigation
Boîte à outils