[spip-dev] Arborescence des mots-clés

Bonjour,

Dans le cadre d'un gros projet, nous allons être amené à développer entre
autres, la possibilité de gérer l'arborescence des mots-clés.

Nous souhaitons rendre la chose modulaire, afin de ne pas rendre
nécessairement la gestion de ceux-ci plus complexe qu'actuellement.
Ce serait donc une option, pas une obligation.

Le choix se ferait dans l'interface d'administration. Nous imaginons offrir la
possibilité de gérer l'arborescence des mots, mais aussi par "rhizome",
c'est-à-dire pour schématiser: lier des mots-clés à des mots-clés et ainsi
avoir une lecture tridimensionnelle de l'ensemble.

Un débat avait été initié à ce sujet sur le lab, dont voici l'url:
http://lab.spip.net/spikini/MotsCles

Nous pensons également qu'il serait utile de pouvoir lier les mots-clés aux
auteurs. L'intérêt est multiple. Imaginez par exemple la possibilité de
monter un organigramme hiérarchique classique:

Département (groupe1)
* PDG (auteur1)
=> Direction 1 (groupe2)
  * Directeur (auteur2)
  * Sous directeur (auteur3)
  => Service 1 (groupe3)
   * Chef de service (auteur4)
   => Equipe 1 (groupe4)
    * Collaborateur 1 (auteur5)
    * Collaborateur n (auteurn)

Utile en terme d'affichage, mais pourquoi pas, aussi sur un aspect du workflow
(espaces privés, collaboratifs, etc.)

Mais cette fonctionalité permettra aussi d'offrir la possibilité aux
utilisateurs d'enregistrer facilement leurs préférences sur le site, comme
les feuilles de style, des éléments dynamiques sur les pages et cie...

L'objet de ce mail, est de lancer une base de reflexion sur son intégration
dans la version 1.8. CVS courante. Nous donnerons à Fil, un gros patch
incluant les modifications qu'il sera bien-sur libre d'importer à sa
convenance.

Si nous vous sollicitions, c'est afin de produire des développements répondant
non seulement aux besoins de notre client, mais également dans la mesure du
possible aux besoins de la communauté. L'objectif étant que ces
développements soient repris par la communauté et réutilisable à l'avenir. En
outre, notre client est tout à fait intéressé par le reversement des
développements à la communauté.

Si la majeure partie de ces développements peuvent être résolus à l'aide du
compilateur, des contributions, ou en parallèle de Spip, certains, comme
l'arborescence des mots-clés touchent le code en profondeur.

Par conséquent, nous souhaiterions avoir votre avis, sur ce qui devrait être
fait ou pas, sur la manière de présenter la chose et ceci afin d'optimiser la
logique de reversement.

Merci

Pierre De Paepe
Linagora

De Paepe Pierre a écrit :

Bonjour,

Si la majeure partie de ces développements peuvent être résolus à l'aide du compilateur, des contributions, ou en parallèle de Spip, certains, comme l'arborescence des mots-clés touchent le code en profondeur.

Il y a beaucoup de fonctions dans ce que vous énoncez, et à vrai dire, pas grand chose qui ait à voir avec des mots-clés...

Le compilo de spip 1.8 permet de gérer des usages de Spip spécifiques, comme des organigrammes ou le reste de ce dont vous parlez..., vous pouvez également en faire des contribs à distribuer.

@+

Pierre De Paepe
Linagora

...

> Si la majeure partie de ces développements peuvent être résolus à l'aide
> du compilateur, des contributions, ou en parallèle de Spip, certains,
> comme l'arborescence des mots-clés touchent le code en profondeur.

Il y a beaucoup de fonctions dans ce que vous énoncez, et à vrai dire,
pas grand chose qui ait à voir avec des mots-clés...

Le compilo de spip 1.8 permet de gérer des usages de Spip spécifiques,
comme des organigrammes ou le reste de ce dont vous parlez..., vous
pouvez également en faire des contribs à distribuer.

Oui. L'organigramme évoqué était un exemple d'utilisation d'un système
d'arborescence des mots-clés sur les auteurs.

Ce que nous proposons, pour résumer, est

* d'offrir la possibilité de structurer les mots clés en arborescence (autant
de groupes/mots que l'on veux à l'instar de spip agora)
* d'offrir la possibilité de structurer les mots clés en rhyzomes
* d'offrir la possibilité de lier les mots clés aux auteurs

Le tout conditionné par des options du panel d'administration.

Personnellement, je suis pour, de bout en bout.
  Je peux même participer au développement s'il le faut (en fait,
j'avais en projet de m'y attaquer de toutes façons, mais c'est
dépendant de l'avenir d'un projet sur lequel je cogite (voir mon mail
d'il y a 10 minutes))

À+, Pif.

De Paepe Pierre a écrit :

* d'offrir la possibilité de structurer les mots clés en arborescence (autant de groupes/mots que l'on veux à l'instar de spip agora)
* d'offrir la possibilité de structurer les mots clés en rhyzomes
* d'offrir la possibilité de lier les mots clés aux auteurs

Waouh. Génial.

Vous pouvez nous en dire un peu plus sur la manière dont vous comptez implémenter ça?

Si ça peut servir, j'avais posté un truc là-dessus:
http://thread.gmane.org/gmane.comp.web.spip.devel/19820

François

François Schreuer wrote:

De Paepe Pierre a écrit :

* d'offrir la possibilité de structurer les mots clés en
arborescence (autant de groupes/mots que l'on veux à l'instar de
spip agora)
* d'offrir la possibilité de structurer les mots clés en rhyzomes
* d'offrir la possibilité de lier les mots clés aux auteurs

Waouh. Génial.

Idem !
Une remarque qui complète l'intervention d'Emmanuel concernant les mots
clefs utilisés, pour modifier le comportement des squelettes.
Une cas à cocher pour le signaler dans l'admin et une modification de la
boucle MOTS pour qu'elle exclue par défaut ceux-ci serait peut-être source
de clartée.
Autrement-dit, il y aurait 2 sortes de mots clefs :
- ceux qui apportent du sens
- ceux qui modifient les pages (protection, choix de squelette...)

En tout cas, j'apprécie la démarche de reversement propre du code à la
communauté.

Une dernière question : en quoi ce sera modulaire et facultatif ?
Une case à cocher dans l'admin pour dire si on veut des groupes de mots clef
?
Ou alors au moment de l'installation en dernière étape ?
Ou encore un paramètre dans mes_options.php3 ?

Cordialement,

Une dernière question : en quoi ce sera modulaire et facultatif ?
Une case à cocher dans l'admin pour dire si on veut des groupes de mots
clef ?
Ou alors au moment de l'installation en dernière étape ?
Ou encore un paramètre dans mes_options.php3 ?

Sauf avis contraire ce serait des cases à cocher dans l'admin:

Arborescence: Oui/non
Rhizome: Oui/non
Auteur: Oui/non

De Paepe Pierre a écrit :

Arborescence: Oui/non
Rhizome: Oui/non
Auteur: Oui/non

Ce serait une config globale pour tout le site ou y aurait-il la possibilité de configurer individuellement chaque groupe de mots-clés?

François

Globale et individuelle, je m'explique:

Dans l'admin: on activerait les supports.

Au cas par cas, on définierait comme, on le fait déjà pour les articles,
rubriques et breves, si c'est lié également aux auteurs, s'il s'agit d'une
arborescence, ou si c'est un rhizome.

Si toutes ces options sont sur non dans l'admin, ces choix n'aparaitrait pas
au cas par cas.

Arborescence: Oui/non
Rhizome: Oui/non

Excusez mon inculture, mais c'est quoi des Rhizome d'un point de vue mots
clefs (pas du point de vue des champignons!)?

Cordialement,

A peu près la même chose : des trucs protéiformes qui poussent un peu
partout selon une organisation chaotique, et qui font de bonnes
fricassées.

a+

Antoine.

De Paepe Pierre a écrit :

Au cas par cas, on définierait comme, on le fait déjà pour les articles, rubriques et breves, si c'est lié également aux auteurs, s'il s'agit d'une arborescence, ou si c'est un rhizome.

"Arborescence OU rhizome"? Je ne suis pas sûr que les deux sont
incompatibles.

En fait, comme le souligne Jacques Pyrat, il faudrait préciser ce qu'on
entend par "rhizome". Concrètement, il s'agit surtout de *permettre la
liaison de mots-clés entre eux*. Cela permet de concevoir la navigation
d'un site non plus selon des groupes strictement définis de contenus
(des rubriques qui font partie d'autre rubriques, organisées en
arborescence) mais de manière plus souple.

L'enjeu est de produire des chaînes de navigation complètement transversales, en proposant sur chaque page, des liens pertinents vers d'autres ressources qui se trouvent ailleurs dans l'arborescence (ou dans une autre arborescence).

Au final, il s'agit de permettre à l'utilisateur de se ballader sur un site selon un chemin qui ressemble à ceci:

Conventions internationales -> Droits de l'homme -> Peine de mort -> Texas -> Etats-Unis -> Guerre en Irak -> Pétrole -> Energies -> Climat -> Protocole de Kyoto -> Conventions internationales

Ce qu'il faut, c'est préciser de quelle manière la liaison des mots-clés
entre eux est autorisée. Entre mots du même groupe? Avec des mots
d'autres groupes uniquement?

François

Au final, il s'agit de permettre à l'utilisateur de se ballader sur un
site selon un chemin qui ressemble à ceci:

Conventions internationales -> Droits de l'homme -> Peine de mort ->
Texas -> Etats-Unis -> Guerre en Irak -> Pétrole -> Energies -> Climat
-> Protocole de Kyoto -> Conventions internationales

Ce qu'il faut, c'est préciser de quelle manière la liaison des mots-clés
entre eux est autorisée. Entre mots du même groupe? Avec des mots
d'autres groupes uniquement?

Je ne vois pas l'intérêt de limiter à un seul groupe ; en revanche il peut
être intéressant de gérer le sens des flèches du graphe (A -> B ou A <-> B).

NB: sur rezo.net après des tas de calculs compliqués (qui n'ont rien à voir
avec la problématique ci-dessus, car ce sont des liens automatiques qui sont
créés), on a ce genre de choses, voir Rezo.net - Les thèmes ; pour chaque
mot-clé on a "thèmes liés".

-- Fil

Ca fait référence à un texte célèbre de Deleuze & Guattari,
repris ensuite comme un des chapitres de "Mille plateaux",
leur meilleur livre à mon avis, où il dénonce la métaphore trompeuse
de l'arbre des connaissances.

      Emmanuel

* Fil <fil@rezo.net> [040920 18:22]:

Je ne vois pas l'intérêt de limiter à un seul groupe ; en revanche il peut
être intéressant de gérer le sens des flèches du graphe (A -> B ou A <-> B).

NB: sur rezo.net après des tas de calculs compliqués (qui n'ont rien à voir
avec la problématique ci-dessus, car ce sont des liens automatiques qui sont
créés), on a ce genre de choses, voir Rezo.net - Les thèmes ; pour chaque
mot-clé on a "thèmes liés".

hello,

j'ai pu travailler sur un système logique de fichier en univ. donc dans
ces questionnements et problématiques. Ca semble intérressant d'ajouter
cela à spip. (La capacité ou non a en faire une usine à gaz tiens plus
des réalités au remplissage de chaque utilisateur n'est ce pas ? :slight_smile: )

En regardant la structure de la base, me vient une question, pourquoi
plusieurs tables identiques sinon par le lien vers lequel elles
pointent ?

cad [spip_mots_*] ou * est un type (actuel)
     plutot que
    [spip_mots] avec un champs 'type'

aussi je me dis que si cela est ainsi c'est qu'il y a bien une volonté à
la source. et par rapport à cette idée d'introduire un tel graphe /
rhizome/arbre, quel besoin fort peut il exister de ne pas avoir un tel
arbre global ? sur ce genre de problème je pense plutot à la solution
polizdat (vs samizdat..), et un identifiant unique. en effet:

dans cette vue, je m'imagine par exemple une rubrique consacrée à la Santé,
et a coté, si on reprend l'exemple des 'conventions internationales', un
sujet dans une rubrique sur la guerre, mais qui souleverait par rapport aux
autres éléments de sa rubrique les questions de santé en Irak.
Devennant donc connexes, donc necessairement exisant dans le meme arbre.

Kenavo

mued

muetdhiver [aMP] wrote:

* Fil <fil@rezo.net> [040920 18:22]:

Je ne vois pas l'intérêt de limiter à un seul groupe ; en revanche
il peut être intéressant de gérer le sens des flèches du graphe (A
-> B ou A <-> B).

NB: sur rezo.net après des tas de calculs compliqués (qui n'ont rien
à voir avec la problématique ci-dessus, car ce sont des liens
automatiques qui sont créés), on a ce genre de choses, voir
Rezo.net - Les thèmes ; pour chaque mot-clé on a "thèmes liés".

hello,

j'ai pu travailler sur un système logique de fichier en univ. donc
dans ces questionnements et problématiques. Ca semble intérressant
d'ajouter cela à spip. (La capacité ou non a en faire une usine à
gaz tiens plus des réalités au remplissage de chaque utilisateur
n'est ce pas ? :slight_smile: )

En regardant la structure de la base, me vient une question,
pourquoi plusieurs tables identiques sinon par le lien vers
lequel elles pointent ?

cad [spip_mots_*] ou * est un type (actuel)
     plutot que
    [spip_mots] avec un champs 'type'

aussi je me dis que si cela est ainsi c'est qu'il y a bien une
volonté à la source. et par rapport à cette idée d'introduire un
tel graphe / rhizome/arbre, quel besoin fort peut il exister de ne
pas avoir un tel arbre global ? sur ce genre de problème je pense
plutot à la solution polizdat (vs samizdat..), et un
identifiant unique. en effet:

Sur les arbres, j'ai aussi repéré cette page :
http://sqlpro.developpez.com/Tree/SQL_tree.html qui permet d'optimiser les
SELECT (au prix de INSERT, UPDATE et DELETE plus coûteux, mais rares).
Une piste à creuser ?

Jacques PYRAT wrote:

Sur les arbres, j'ai aussi repéré cette page :
http://sqlpro.developpez.com/Tree/SQL_tree.html qui permet d'optimiser les
SELECT (au prix de INSERT, UPDATE et DELETE plus coûteux, mais rares).
Une piste à creuser ?

Cette gestion d'arbre est celle utilisée dans SPIP-Agora via la brique de DB_NestedSet qui propose toute ce qu'il faut pour manipuler son arbre.
Une petite adaptation de cette brique pour spip_query et c'est gagné!

Erwan LE BESCOND

Erwan LE BESCOND wrote:

Jacques PYRAT wrote:

Sur les arbres, j'ai aussi repéré cette page :
http://sqlpro.developpez.com/Tree/SQL_tree.html qui permet
d'optimiser les SELECT (au prix de INSERT, UPDATE et DELETE plus
coûteux, mais rares). Une piste à creuser ?

Cette gestion d'arbre est celle utilisée dans SPIP-Agora via la brique
de DB_NestedSet qui propose toute ce qu'il faut pour manipuler son
arbre. Une petite adaptation de cette brique pour spip_query et c'est
gagné!

Donc, il faut réécrire DB_NestedSet pour qu'il n'utilise pas PEAR mais
spip_query.

hugh

Ce que nous proposons, pour résumer, est

* d'offrir la possibilité de structurer les mots clés en arborescence (autant de groupes/mots que l'on veux à l'instar de spip agora)

oh oui, je veux je veux !!

* d'offrir la possibilité de structurer les mots clés en rhyzomes

pourquoi pas

* d'offrir la possibilité de lier les mots clés aux auteurs

pas utile dans mon cas

Le tout conditionné par des options du panel d'administration.

oui oui et encore oui

bref, j'espère que vous mènerez le projet jusqu'au bout

@+

j'ai les mêmes préférences et priorités que "toufou"
merci par avance, et encore bravo pour ces avancées !

franck