Carnet Wiki

MoMots

SPIP-Contrib :: Carnet Wiki :: Recherche :

MoMots

Mots sur Mots (ou de son petit nom MoMo ) est un plugin prévu pour rajouter des mots-clés descriptifs sur les mots-clés !

Ci-après quelques éléments de documentation, récupérés sur la liste...
Le suvi de ce plugin est sur la zone zone.spip.org/trac/spip-zone/browse...

Mots sur Mots (ou de son petit nom MoMo) est un plugin prévu pour rajouter des mots-clés descriptifs sur les mots-clés !
Il reprend une vieille idée exprimée là : spip-contrib.net/MotsClesDeMotsCles !

Il propose deux modèles :
-  [(#MODELE{enfants_mot}{id_mot=#ID_MOT})]
-  [(#MODELE{parents_mot}{id_mot=#ID_MOT})]


d’après la Description "Plugin"


des explications complémentaires

Assez simplement [3] les mots-parents sont les mots attachés à un mot-clé.

Ex. : tu as un mot-clé "carotte", on peut lui attacher deux autres
mots-clés : "légume" et "tubercule". Les mots-parents de "carotte" sont
donc "légume" et "tubercule" (quel que soient les groupes de mots dans
lequel sont ces mots-clés). Par conséquent, "légume" a comme enfant
"carotte". "tubercule" a aussi comme enfant "carotte" (principe de
polyhiérarchie).

L’idée vient rapidement d’un réseau sémantique.

Car ces possibilités de mots multiples sont intéressantes pour un usage en polyhiérarchie.

Dans mon test, j’ai repris un groupe de mots-clés "personnes citées" pour lesquels le descriptif comprenait parfois le contenu "spectacle" (soit un musicien, une groupe, une troupe, etc.). Le plugin Momo est très bien pour libérer ce champ et, en plus, faire de belles boucles.

À l’usage, il manquerait la possibilité de mettre un mot comme indice à un autre mot pour indiquer que dans tel usage, il sert à cela. Ainsi, toujours dans mon groupe "personnes citées", pour tel article le mot "le nom de la personne" devrait être indiciée/indexée "spectacle", et sur un autre article non.

Exemple : un catalogue de revues (un article par revue) avec la liste des participants en mots-clés. Si le participant est illustrateur, je l’indique. Le problème c’est que pour une revue, le participant est juste auteur manuscrit mais que dans une autre, il sera aussi ou seulement illustrateur. Multiplier les groupes, une solution (déjà appliquée sur un site) revient à multiplier les doublons et les renvois à faire à la main.

Je ne vois pas comment "qualifier" l’utilisation d’un mot suivant l’article où il est lié. De plus, on peut compliquer si on choisit qu’une qualification peut-être simple (unique) ou multiple. Dans ce dernier cas, le mécanisme déjà utilisé par le "statut" des objets (article, brève, site… et peut-être d’autres) semble peu transposable.

-  un exemple de soucis...(pour historique)

> Cette boucle affiche les enfants d’un mot clé dont  l’id est passer en
> paramètre, mais je constate que la class EXPOSE on  et le critère exclus
> ne marche pas. Est ce un bug ?

> voici la boucle

<B_mot_parent_ou_tous>
<BOUCLE_mot_parent_ou_tous(MOTS){id_mot = #ENV{id_mot}}{par num titre}>
<BOUCLE_Liste_mots_enfants(MOTS){id_mot_parent = #ID_MOT}{par num
> titre}{exclus}>
<li [class="(#EXPOSE{on})"]><a href="#URL_MOT&type=#ENV{id_mot}"
> title="">[(#TITRE|supprimer_numero)]</a></li>
</BOUCLE_Liste_mots_enfants>
</BOUCLE_mot_parent_ou_tous>
</B_mot_parent_ou_tous>

Ton problème vient de l’imbrication des deux boucles : exclus et expose
se réfèrent à l’id_mot retourné par la première boucle
(mot_parent_ou_tous)

Dans Momo, il te suffit d’utiliser le modèle doublons_enfants_mot
comme critère pour avoir la liste des enfants et tu pourras les
manipuler comme tu veux dans une boucle.

Je te propose de faire plutôt :

<BOUCLE_Enfants du mot(MOTS){id_mot IN
#MODELE{doublons_enfants_mot}{id_mot}|explode{','}}{par num
titre}{exclus}>
<li[ class="(#EXPOSE{on})"]><a
href="[(#URL_MOT|parametre_url{'type',#ENV{id_mot}})]"
title="">[(#TITRE|supprimer_numero)]</a></li>
</BOUCLE_Enfants_du_mot>

Là encore il vaut mieux utiliser le doublons fourni par
le plugin : "doublons_parents_directs_mot"

<BOUCLE_Mot_Parents_directs(MOTS){id_mot IN
#MODELE{doublons_parents_directs_mot}{id_mot}|explode{','}}{par
hasard}{0,1}>
<a href="[(#URL_MOT|parametre_url{'type',#ENV{id_mot}})]"
title="">[(#TITRE|supprimer_numero)]</a>
</BOUCLE_Mot_Parents_directs>

Par ailleurs, je ne sais pas quel est ton but, mais si c’est
d’afficher la hiérarchie d’un mot donné, il vaut mieux te tourner vers
"hierarchies_mot" par exemple en utilisant
[(#MODELE{hierarchies_mot}{id_mot=#ID_MOT}{0,1})]
(si tu as une
préférence de groupe de mots à voir apparaître dans la hierarchie tu
peux passer une liste de id_groupe. Voir les commentaires dans le code
du modèle)


Merci Beurt pour ton aide, J’ai suivi les instructions que tu m’as donné , pour le hiérarchie des mots par hasard ca marche bien, par contre pour doublons_enfants_mot le critère {exclus} marche toujours pas ! J’ai bien utilisé ce modele mais avec tous les manips que j’ai fais {exclus} marche toujours pas.

<BOUCLE_Enfants_du_mot(MOTS){id_mot IN
#MODELE{doublons_enfants_mot}{id_mot}|explode{','}}{par num titre}{exclus}>
<li[ class="(#EXPOSE{on})"]><a
href="[(#URL_MOT|parametre_url{'type',#ENV{id_mot}})]">[(#TITRE|supprimer_numero)]</a></li>
</BOUCLE_Enfants_du_mot>

J’ai un paramètre a passé à l’id_mot avec un critère dans la boucle
{id_mot=#ENV{type}} type étant l’id du parant. Alors si j’ajoute
{id_mot=#ENV{type}} dans cette boucle rien ne s’affiche, par contre si je
met un id_parent en dure dans doublons_enfants_mot, alors j’ai ma liste avec
{exclus} qui marche bien.

Je ne suis pas sûr de comprendre.

Que veux-tu afficher ? Les enfants d’un mot passé en paramètre c’est
ça ? l’id_mot de ce mot est passé dans #ENV{type}, c’est ça ?

Si c’est ce que tu veux, alors il faut écrire (je n’ai pas mis le
critère {exclus}) :

<BOUCLE_Enfants_du_mot(MOTS){id_mot IN
#MODELE{doublons_enfants_mot}{id_mot=#ENV{type}}|explode{','}}{par num
titre}>
<li[ class="(#EXPOSE{on})"]><a
href="[(#URL_MOT|parametre_url{'type',#ENV{id_mot}})]">[(#TITRE|supprimer_numero)]</a></li>
</BOUCLE_Enfants_du_mot>

le « #MODELE{doublons_enfants_mot}{id_mot=#ENV{type}} » retourne la
liste des id_mot des enfants du mot dont l’id est passée dans
#ENV{type}. Il faut donc bien passer l’id_mot que tu veux à ce modèle,
ce qui se fait ici par {id_mot=#ENV{type}}.

Le filtre « |explode{','} » permet de transformer cette liste en un
tableau compréhensible par le critère « IN » de la boucle (voir
http://www.spip.net/fr_article4010.html et un exemple similaire
d’utilisation de « |explode{','} » :
http://www.spip.net/fr_article4123.html)

Si ce n’est pas ça que tu veux faire : explique bien ce que tu veux
afficher que je puisse plus facilement t’aiguiller.

Milles merciii, ca marche nickel ! comme je le voulais

ergonomie

Sur un site avec beaucoup de groupes de mots, la page d’administration d’un mot, d’une part fait chargée, d’autre part complique la gestion des rédacteurs/administrateurs et rédactrices/administratrices (surtout quand il faut s’expliquer à distance et dans des langues différentes).

suggestion : la page d’administration d’un groupe de mots permet de cocher l’objet que l’on s’autorise à lier. Pouvoir cocher que l’on autorise ce groupe à être parent (du moins à ce que les mots qu’il contient soient possiblement parents). Un plugin comme Agenda rajoute la possibilité de lier aux "événements". Il n’est peut-être pas possible d’adapter le code directement puisque momo n’offre pas vraiment un nouvel objet.


et des projets possibles

Momo n’est pas prévu pour typer la relation entre les mots et
les objets de Spip (articles, rubriques, etc.). Toutefois j’ai prévu
(à très long terme !) de pouvoir typer les relations entre mots dans
Momo.

Mais ça pourrait être intéressant de typer la relation entre les
objets. J’ai déjà été confronté au problème des auteurs qui ne sont
parfois que des illustrateurs, des traducteurs ou simplement des
rédacteurs ou des copistes, alors qu’il y avait aussi de vrais
auteurs. Comment les différencier ? et ce dans chaque cas (un copiste
pour un article donné, peut-être auteur pour un autre) ?

Quelques contribs connexes

Dans le désordre total...

-  Étiquettes
-  Rhizome
-  Des mots clefs partout
-  Plugin Mots Objets
-  Abandonner les rubriques au profit des mots clés ...
-  Sémantique SPIP
-  MotsClesDeMotsCles

(à compléter)
En SPIP 3, vu la refonte complète des tables en une seule spip_mots_liens, le problème est totalement simplifié : ainsi il m’a fallu juste retirer 20 caractères dans une ligne d’un fichier HTML pour autoriser les mots sur mots ou sur groupes de Mots.... (à suivre)

[1Noter que c’est déjà la forme adoptée dans SPIP3, mais sans interface de saisie pour les « mots sur mots »..

[2Il faut alors prévoir une clé-primaire ’id_momo’ (hors relationnel, donc en autoincrement) sur chaque ligne !

Pour ceux qui connaissent, cela permet alors carrément un moteur expert d’ordre 2, et n’est pas tellement plus lourd a développer dès que la structure de données est gérée !

On peut aussi présenter cela comme une notion de « groupe de mots-sur-mots », qui a la meme utilisation en SPIP mais pas encore aussi générique !

[3et à l’inverse peut-etre d’une interprétation commune

Concrètement, pour ce plugin là, ce qui est sûr c’est qu’à moi il
m’est super utile et sera notamment la pierre angulaire de futurs
développements (et l’est déjà d’anciens développements : je fais des
mots sur les mots depuis 2005, mais avant c’était de façon très sale,
ce plugin a pour but de rendre tout ça plus propre).

Je pense que s’il intéresse d’autres gens, il sortira progressivement
de l’anonymat et son nom ne sera plus un obstacle. Sinon, ben il ne
restera utile que pour moi et c’est déjà pas mal !


D’autres plugins qui correspondent peu ou prou à cet axe de réflexion :
-  Grappes

en SPIP 3