Pour mieux gérer les mots-clés

  Groupes de Mots (en) arborescen(ce)ts {ou} Mots-clés arborescents

Quand on veut organiser la gestion des mots-clés (sur le modèle des Rubriques par exemple en arborescence), on trouve deux plugins analogues (du même auteur, un spécialiste des mots d’ailleurs...) mais incompatibles entre eux :
- les Groupes de mots arborescents (2012) gma,
- les Mots-clés arborescents (2015) motsar.

Mais de quelle arborescence parle-t-on ?
Pour mieux comprendre, et choisir... une étude comparée  !

Article publié le 17 octobre 2019, et actualisé en février 2022

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Attention, cette page est encore en  

 Le plugin MOTS de SPIP

Rappelons d’abord que la gestion des mots-clés existe depuis les débuts de SPIP, et que l’ensemble est, fortement améliorée depuis SPIP 3, est désormais localisé dans un plugin MOTS verrouillé en standard, mais que vous n’êtes pas forcés d’utiliser...
(voir Comprendre les mots-clés).
Cette gestion est organisée en trois tables (voir la structure de BDD) :
- la table GROUPES_MOTS définit le premier niveau, avec une clé id_groupe
- la table MOTS regoupe tous les mots-clés utiles par id_groupe avec une clé id_mot
- enfin une table générique MOTS_LIENS contient tous les pointeurs de mots vers des objets sous forme de triplets ( id_mot, objet et id_objet).
spip3 groupes mots spip3 mots spip3 mots liens

 La gestion de l’arborescence

spip3 rubriquesPour gérer une arborescence hiérarchique, solution bien connue en bases de données, on utilise une relation "réflexive" [1] comme dans les RUBRIQUES de SPIP, en mettant dans chaque enregistrement avec une clé id_rubrique, un pointeur id_parent vers l’enregistrement (de rubrique) id_parent(e), et par simplicité SPIP rajoute aussi un pointeur vers la racine (id_secteur) ainsi qu’un indicateur de profondeur...

Ainsi, on peut gérer une arborescence hiérarchique simple multi-niveau sans soucis... les soucis viennent quand on veut introduire une poly-hiérarchie (voir le plugin adhoc...) ! ou comment rattacher un élément à deux chefs /conflits d’autorité garantis !
Rappelons aussi que l’arborescence des rubriques est à la base du fonctionnement de la confidentialité apportée par Accès Restreint !

 Une arborescence de mots

Pour mettre en place la structure de réflexivité sur les (groupes de) mots, les deux plugins appliquent ce même principe, mais en ciblant chacun une table différente : bouclage sur les GROUPES_MOTS pour gma, et sur MOTS pour motsar.

Ainsi, alors qu’une démarche identique aux Rubriques [2] est mise en œuvre par le plugin Mots-clés arborescents (avec les trois champs id_parent ,id_mot_racine et profondeur rajoutés aux MOTS ), on observe que le plugin Groupes de Mots clés arborescents fait porter la réflexivité sur la table GROUPES_MOTS (avec les mêmes champs id_parent et id_groupe_racine rajoutés aux GROUPES_MOTS )... [3]
En SPIP cela s’exprime très simplement en regardant la cible de l’alias de boucle hiérarchie : $interfaces['table_des_tables']['hierarchie_mots'] = 'mots' pour motsar, et pour gma c’est ['hierarchie_groupes_mots'] = 'groupes_mots' ...

 Au résultant

Outre les différences (minimes) d’ergonomie que l’on trouve dans l’interface de gestion privée, les conséquences se retrouvent essentiellement dans les accès par les squelettes publics de SPIP.
- tout d’abord il faut se souvenir clairement des spécificités d’accès aux objets éditoriaux par les mots-clés, déjà commentées
- la recherche-sélection directement par mot-clé ne sera pas modifiée (correspondance sur le id_mot ), [4]
- les différences interviendront lors de la recherche-sélection par groupes de mots :

  • pas de différence pour motsar : simplement le mot-clé peut-être plus spécifiquement défini pour l’utilisateur
  • gma permet de meilleures sélections des ensembles de mots-clés
    - si on utilise gma la recherche d’un groupe prendra tous les mots-clés à ce niveau
    en cours de compléments..

Une autre façon de voir...
Si vous voulez organiser vos mots-clés en arborescence, de façon à...
- trouver tous les objets rattachés à un mot-clé principal ou l’un de ses précisions...
- trouver tous les objets rattachés exclusivement à un mot-clé de haut-niveau (sans voir les détails
- trouver exclusivement les objets rattachés à un niveau de l’arborescence (mais pas en-dessous)


Merci de nous signaler les coquilles, imprécisions ou erreurs qui figureraient dans cette page.

[1La table est mise en relation avec elle-même, le pointeur pointe en "cercle" en retour sur un autre enregistrement dans la table de départ !

[2Les commentaires faisant explicitement référence à id_secteur laissent imaginer une possible mutualisation ultérieure du code de gestion des hiérarchies de Rubriques et Mots...

[3Plus précisement, voici les champs rajoutés par chacun des deux plugins :
- gma :

  1.         $tables['spip_mots']['field']["id_groupe_racine"] = "bigint(21) DEFAULT 0 NOT NULL";
  2.         $tables['spip_groupes_mots']['field']["id_groupe_racine"] = "bigint(21) DEFAULT 0 NOT NULL";
  3.         $tables['spip_groupes_mots']['field']["id_parent"]= "bigint(21) DEFAULT 0 NOT NULL";

Télécharger


- motsar :

  1.         $tables['spip_mots']['field']["id_parent"]     = "bigint(21) DEFAULT 0 NOT NULL";
  2.         $tables['spip_mots']['field']["id_mot_racine"] = "bigint(21) DEFAULT 0 NOT NULL"; // equivalent id_secteur des rubriques
  3.         $tables['spip_mots']['field']["profondeur"]    = "smallint(5) DEFAULT '0' NOT NULL";
  4.  
  5.         // configuration pour activer l'arborescence de mots sur un groupe donné
  6.         $tables['spip_groupes_mots']['field']["mots_arborescents"] = "varchar(3) NOT NULL DEFAULT ''";

Télécharger

[4mais si vous recherchez en sélectionnant plusieurs mots-clés de niveaux de groupes différents.... ?


Liens A2A visibles seulement pour les inscrits.
Liens visibles seulement pour les inscrits.

Article publié le 17 octobre 2019, et actualisé en février 2022 Provisoire (à compléter...) .

Répondre à cet article