J'ai toujours vu les tags comme complètement différents du modèle de hiérarchie de dossiers normal. Je construis un système qui nécessite un marquage pour marquer des ensembles de données. Nous avons eu le design db tout a fonctionné, (modèle assez simple) mais un débat a surgi autour de la valeur de toujours avoir des concepts de hiérarchies dans un monde d'étiquettes. Sur les SOF, à titre d'exemple, le seul équivalent, je vois une partie de cela en utilisant -
dans certains noms de tag comme le tagging; Il n'y a donc pas de relation inhérente modélisée (juste une convention de nommage). Y a-t-il une sagesse conventionnelle des meilleures pratiques sur comment et si les hiérarchies devraient exister dans un monde de marquage?Le marquage doit-il avoir des hiérarchies?
Répondre
J'ai développé un portail qui impliquait des balises hiérarchiques. Je peux vous assurer que c'est un gâchis à gérer :)
Ma solution s'est ensuite déplacée vers une approche hybride dans laquelle les balises peuvent être autonomes ou bien contrôlées, mais elles résident dans deux espaces de noms différents.
Ceci parce que certaines peuvent être considérés comme des enfants de parents d'autres balises tandis que d'autres ne peuvent pas, donc par exemple étiquette dialog
est un concept qui est également indépendente de jquery
donc un contenu avec les balises jquery dialog
a implicitement la relation nécessaire.
Hiérarchique devrait être utilisé pour exprimer une sorte d'héritage entre les concepts, par exemple. collections -> trees, lists, maps
dans lequel une étiquette trees
peut être efficacement incluse à l'intérieur d'une étiquette collections
. Dans votre exemple, dialog
et jquery
sont orthogonaux et incomparables, donc cela n'a aucun sens de faire un enfant d'un autre.
Les noms "jquery", "jquery-ui", "jquery-ui-dialog" ne sont pas des balises, mais l'équivalent de chemins de structure de fichiers, hiérarchique par nature.
Si vos données sont faciles à catégoriser avec autorité, présentez-les sous forme d'arborescence. Si les utilisateurs ne voient que quelques-uns de leurs propres tags (comme dans Gmail), vous pouvez permettre de trier et d'imbriquer la liste de tags et de sauvegarder cette structure par utilisateur, indépendamment des tags eux-mêmes. S'il existe un grand nombre de balises avec répartition du contenu (par exemple, si 10% des balises décrivent 90% du contenu), un nuage de balises peut vous aider.
En résumé, cela dépend des données.
Les hiérarchies ont en général un inconvénient par rapport aux ensembles. Pensez aux signets et tag-bundles like delicious.com. je préfère rechercher un ensemble en utilisant sport
et newer-than-1-week
et (english-language
ou chinese-language
) et non (soccer
ou boxing
).