Table of Contents
Devtags
The objective is to organize http://project.tuxfamily.org/allwebsites.pl (the list of all websites)
see http://bugs.vhffs.org/view.php?id=179 for initial requirements and for all evolutions requested http://bugs.vhffs.org/view.php?id=235
examples :
- cloud http://debtags.alioth.debian.org/cloud/ categories + list of attributes (tags), alphabetically + font-size depending on popularity
- http://debtags.alioth.debian.org/faceted.html explanations of what are tags
- add tags : http://debtags.alioth.debian.org/edit.html?pkg=admesh I like it a lot with categories, there are suggestions
- navigation http://www.ohloh.net/tags/console with number of projects / search
- http://www.ohloh.net/tags/console/java url are directly readable (add tags to refine results), easy to remove a tag (and nice icon)
- what I don't like : tags for each project are not shown on this result list
-
- a bit too simple
- tags are displayed for each project listed but with no indication of importance :/
- http://de.lirio.us there's source code available :
-
- https://sourceforge.net/projects/sabrosus/ in PHP / MySQL
- http://sourceforge.net/projects/scuttle/ Web-based social bookmarking system. Allows multiple users to store, share and tag their favourite links online.
- http://www.libres-apps.org/ example of the use of tags (library Script.aculo.us see http://script.aculo.us/)
- http://demoll.tuxfamily.org/ a real implementation to identify enhancements required
- manage language for tags (only one language at the moment)
- display websites by alphabetical order (only per page display)
- enable users to log-in in order to modify / add tags
- manage admin tags (not seen by users with unsuficient rights)
- manage types of tags like License:GPL DocLicense:GFDL webTool:dokuwiki hosting:web hosting:SVN …
- identify latest modifications (tag added or modified, by who…)
user requirements
- Catégories de tags avec localisation
- Chaque catégorie de tag contient des tag eux même localisés (pas plus de 20car)
- Par défaut, les tags sont créés par les admins ou modérateurs, avec le libellé EN ANGLAIS (langue par défaut)
- Avoir une description par tag permettant de mieux cerner ce que doit contenir le tag (savoir si son projet correspond au tag ou non)
- Seuls les projets sont taggués (pour commencer, mais pourrait s'appliquer à espace web, svn ou cvs)
- Modération a posteriori :
- les modérateurs ont une page répertoriant les derniers tags ajoutés (tri par date) qu'ils peuvent supprimer si besoin
- les modérateurs ont une autre page répertoriant les derniers projets taggués
- les tags apparaîtront sur les pages:
- http://project.tuxfamily.org/allwebsites.pl (récupérer tags du projet)
- possibilité d'avoir des tags non publics (réservés à modérateur : par exemple, admin:site_vide admin:a_surveiller), cela impacte l'interface de saisie et d'affichage
- améliorations ultérieures:
- recherche par tag (sites concernant les graphismes comme http://oldfaq.tuxfamily.org/wakka.php?wiki=LinuxGraphics)
- recherche par inclusion/exclusion de tag (Exemple1: +jeu +3d ⇒ les projets de jeu avec moteur 3d ; Exemple2: +3d -jeu ⇒ les projets de rendu 3d, graphisme, etc.)
- statistiques par tag (eg: combien de projets GPL, Art Libre… ; combien de projets concernant des distributions http://oldfaq.tuxfamily.org/wakka.php?wiki=ListDistributions)
- possibilité pour pacman d'afficher les tags d'admin lors de la modération
specifications
database model
http://wiki.eagle-usb.org/wakka.php?wiki=HowToDia will have to be updated with latest changes to the database
Development version : vhffs_tags
- tag_id identifiant (serial)
- tag_parent categorie du tag. Ce tag est une categorie si ce champ vaut 0(int4)
- date_modif date de création du tag(timestamp)
- user_modif utilisateur ayant créé le tag(oid)
- type_modif type de modification(A=add, D=delete, U=update) (char)
- restriction gestion du niveau de restrictions (int4)
vhffs_tags_locate
- tag_id id du tag(int4)
- langue langue de la localisation(varchar(20)) A voir: mettre la liste des langues dans une table a part et lié?
- name nom du tag localisé (varchar(250))
- descr description du tag localisé (text)
vhffs_tags_link
- objectid id de l'objet taggé (oid) ⇒ permet retrouver description, type…
- tag_id id du tag (int4)
- date_create date de création du lien (timestamp)
- user_create utilisateur qui créé le lien(qui tag sont projet quoi) (oid)
latest version :
link_tags_objects table : (1,n) between objects / tags
- tag_id identifier of a tag (format ?)
- object_id identifier of an object (be it a project, web area, cvs / svn)
- date_creation identifies when the tag was added to this object
- user who added the tag to the project
example : project eagleusb is license:BSD+GPL, license_doc:Art Libre, license_doc:GFDL sans sections invariantes, license_doc:CC-BY-SA-2.5, license_doc:GPL, web:documentation, web:developments, web:forum hosting:tuxfamily, hosting:gna, hosting:endor
tags table : list of tags available (one table is sufficient for l10n)
- tag_id identifier of tag (format ?)
- lang language for description
- category_tag (this is in fact a tag_id : some tags are in fact categories to avoid creating a new table), 0 for tag being a category ?
- description is a localized description of the tag (25char max ?)
- date_creation identifies when the tag was created
- date_modif identifies when the tag was modified
- user_modif who last created/modified the tag
- level 0 public, 1 identified, 2 modo, 3 admin
SQL accesses
- latest projects tagged
- latest tags created
- tags for a project, for a web area (the ones of the project)
- list of projects (with description) for a selection of tags
- number of projects by tag
screens using tags
- (new) tag moderation: latest projects tagged and latest tags created : deletion / translation for modo (or authorized users ?)
- (new) list of tags by categories (alphabetical), add tags / translation (could be merged with previous one ?)
- (modif) add / remove (/ translate) tag to project in panel (owner, modo, admin, authorized user)
- (modif) display project / web area with tags (individual or complete list), web-area's tags correspond to the project
- (new) search / navigation by tags
Precisions :
- category of tag could be displayed as an “acronym” on the tag (to avoid too long lines) or it could be of the form category:tag
- if the language chosen by the user is not available, by default display english translation
- put a link on every tag to access navigation by tags (how to add tags to refine search ? check what's done on http://sourceforge.net and http://www.libres-apps.org/ - choose other colors though !)
later / reminder
- check http://www.snook.ca/technical/colour_contrast/colour.html for choice of colors
- re-read http://debtags.alioth.debian.org/vocabulary.html and http://debtags.alioth.debian.org/faceted.html to understand better how to organize categories / tags
- some examples
- distribution: BSD (NetBSD, OpenBSD, …), GNU/Linux, non-libre-OS
- license: BSD, GPL, ArtLibre, GFDL, GFDL without invariant sections, CC-BY-SA, CC-BY
- tools: Forum:PunBB, phpBB Wiki:wikini, wikka, doku, BTS:mantis,… (sub-categories may be needed)
- content: program, game, distribution, packages
- purpose: development, tutorial, support,
- “service” tags like “to be checked”, “empty”, “undesired publicity”, … to be restricted to modo / admin (not to be displayed, perhaps hard-code it in vhffs ?)
quelques requêtes utiles (démo)
- derniers ajouts de tags par site : par date, tag et lien concerné
- il n'y a pas encore d'utilisateur de loggué, pour savoir qui a fait la modif'
- une page php pour l'afficher serait plus sympathique… (je passe par phpmyadmin), ça permettrait d'avoir de la modération
SELECT lt.date_added, tags.tag, l.enlace FROM `tags_linktags` as lt, `tags_tags` as tags, `tags_sabrosus` as l where lt.tag_id=tags.id and l.id_enlace=lt.link_id ORDER BY lt.`date_added` DESC, l.enlace
- dernière création d'un tag : par date, tag et liens concernés
SELECT tags.date_creation, tags.tag, l.enlace FROM `tags_tags` AS tags, `tags_linktags` AS lt, `tags_sabrosus` AS l WHERE lt.link_id = l.id_enlace AND lt.tag_id = tags.id ORDER BY tags.date_creation DESC , tags.tag, l.enlace
pour tagguer utile
- se logguer sur http://demoll.tuxfamily.org le mot de passe étant tuxfamily02
- pas besoin de créer de nouveau tag, déjà utiliser ceux existants
- cliquer du milieu sur Edit pour ouvrir un nouvel onglet (c'est plus pratique les tags , déselectionner admin:to_tag et cliquer sur les tags existants correspondants au site
- notamment, trouver la licence, la langue, identifier si c'est un wiki/weblog et tout autre tag correspondant
- identifier la langue (obligatoire, il peut y en avoir plusieurs)
- identifier la licence (obligatoire)
- identifier le thème (sélectionner plusieurs tags au besoin : par exemple weblog license:CC-BY-SA os:GNU/Linux support développement license:GPL)
- pour les sites vides, contenant du non libre, à l'abandon, spammés ou cassés : tagguer en conséquence
- si besoin d'ajouter un tag non existant, me demander avant