Un label est une étiquette apposée à un mot-vedette et apportant des informations sur celui-ci. Les labels sont constitués de plusieurs paramètres :
- name : string
- type : enum{général, institutionnel, échéance d'apprentissage}
- masters : enum{1 user_id, 1 group_id, all users}
- visibilité : {user, {liste de lexiques}}
- milestone (pour les échéances) : date
- source (pour les labels instituionnels) : string
- approval (pour le renommage/suppression des labels publics) : int [4] = {0,0,0,0}
Le quadruplet {name, type, masters, milestone} permet d'identifier un label. Cela a pour conséquence que deux labels originellement distincts mais possédant le même quadruplet après une modification seront automatiquement fusionnés après validation de l'utilisateur en un unique label (si l'utilisateur ne valide pas, on n'applique pas la modificatione et on a donc toujours deux quadruplets distincts). Si c'est le triplet {name, type, milestone} (ou couple {name, type} si le type n'admet pas de milestone), on suit la procédure décrite dans #91 (closed), et l'action à effectuer dépend : 1.des valeurs prises par les paramètres masters des deux labels concernés ; 2. de la décision prise par l'utilisateur.
Les labels permettent de décrire un grand nombre d'informations dont le statut est différent.
On signifiera la différence entre les types de labels par un design / une couleur différente.
Types de labels
Labels généraux
(animal, voyage, Eté 2020, vocabulaireFoot…)
Ajouté par les utilisateurs, ils peuvent avoir une portée « universaliste » (ex : Foot, animal) ou une portée propre à l'auteur du label (ex : été 2020, mots qui sonnent bien), voire une portée propre à un groupe (ex : mots sur lesquels on a ri)
Lors du partage d'une entrée ou une sélection d'un lexique à un autre, l'utilisateur spécifie les labels qu'il veut partager ou non.
Labels d'échéance d'apprentissage (Milestone)
(Partiel, cours du 20/05, semaine prochaine…) Ce label requiert de spécifier une date dans le paramètre 'milestone'.
Lorsque la date est atteinte, un dialogue est engagé avec le créateur du label pour lui demander s'il souhaite le supprimer ou le reconduire (auquel cas une nouvelle date lui est demandée)
N'est pas "transmis" lors d'un partage d'entrée.
Labels institutionnels
(TOEIC, 1000 mots les plus courants en anglais, Liste des verbes irréguliers)
Ajouté par les enseignants, ils peuvent préciser une source officielle (TOEIC, TOEFL, dictionnaire....). Seul les enseignants peuvent les modifier.
Propriétaires des labels
Le paramètre "masters" permet de déterminer quels utilisateurs ont le droit de modifier le label. On trouvera 3 modes différents.
Label personnel
Le paramètre "masters" est un unique utilisateur. Seul lui a accès (droit de voir, modifier, se servir, supprimer) au label. La visibilité du label est établie par défaut à tous les lexiques accessible par cet utilisateur. Il pourra modifier la visibilité par la suite.
Label de groupe
Le paramètre "masters" est un unique groupe. Les membres du groupe ont accès (droit de voir, modifier, se servir, supprimer) au label. La visibilité du label est établie par défaut pour chaque membre à tous les lexiques accessible par lui. Les membres pourront modifier la visibilité en ce qui les concerne uniquement, par la suite.
Label public
Le paramètre "masters" est l'ensemble des utilisateurs de BaLex. Tous ont accès (droit de voir, modifier, se servir, supprimer) au label. La visibilité du label est établie par défaut à aucun des lexiques. Les utilisateurs pourront modifier la visibilité en ce qui les concerne uniquement, par la suite. Pour les actions critiques (supprimer et renommer le label) le paramètre "approval" permet de récolter la validation de n individus avant de procéder au changement. approval[0] comptabilise les votes pour le renommage, approval[1] les votes contre. approval[2] et approval[3] de même pour la suppression. Si le nombre de votes "pour" atteint la limite fixée en premier, alors l'action est effectuée et le vote disparait. Si le nombre de votes "contre" atteint la limite en premier, une notification "votre proposition n'a pas été retenue par la communauté" est envoyée à l'utilisateur à l'origine du vote, l'action n'est pas effectuée et le vote disparait.
Labels et applis externes
L'API BaBaLex permet d'ajouter des labels à des entrées.