Dans le vocabulaire de gestion de contenu nous faisons souvent référence au concept d’une classe de contenu. Il s’agit ici de modéliser un peu comme un modèle de base de données. Dans cet article nous expliquons les bases.
Une classe de contenu est un ensemble de propriétés qui permettent de représenter un contenu d’un type donné. Par exemple, une classe de contenu pour un cours dans un organisme de formation continue (voir par exemple la fiche d’un cours offert par Espace Courbe Formation), pourrait avoir les champs suivants :
Noter ici que la liste de préalables sera une relation d’objet vers d’autres cours.
Avec ces informations, nous pourrions faire une liste ou plusieurs listes de cours, une fiche détail pour décrire un cours, etc. Les champs associés à une classe de contenu permettent de faire des automatismes sur les contenus au niveau du montage d’un site Web (en particulier créer différentes listes de promotion de contenus) et d’offrir des mécanismes pour facilement faire la saisie du contenu. Dès que des éléments pour un morceau d’information sont partagés à plusieurs endroits dans le site Web, il peut être intéressant de les regrouper dans une classe de contenu.
À notre exemple pourrait se rajouter une classe pour des diffusions de cours, une autre pour des formateurs et une pour les lieux, permettant ainsi de créer une programmation d’événements de formation livrés par divers formateurs.
Les cours pourraient être mis en relation avec des diffusions de cours. La classe de contenu des diffusions de cours pourrait avoir les champs suivants :
Avec ces informations, nous pourrons faire différentes listes automatiques et dynamiques (au lieu de les faire à la main). Par exemple: la listes des formations offertes par un formateur donné, celles qui seront offertes dans le mois suivant ou celles offertes dans un lieu donné. Pour chacune de ces listes, nous devons décrire pourquoi un item s’y trouve et dans quel ordre nous présentons les items. Si par exemple nous avons la liste des 5 diffusions à mettre en vedette sur la page d’accueil: comment faire pour déterminer quelles diffusions s’y trouveront? En fonction de la date, par sélection manuelle? Et après nous devons déterminer l’ordre de tri des éléments dans la liste. Par priorité? Par date?
Au niveau de la page détail du cours, nous pourrons mettre tous les éléments nécessaires pour un cours et la liste des diffusions dans les prochains mois par exemple. Des liens automatiques pourraient être faits vers la page du formateur ou celle du lieu où le cours sera offert. Pour chaque diffusion du cours, nous saurons si nous pouvons mettre le bouton pour l’inscription au cours (si la date limite d’inscription n’est pas passée) ou un lien pour s’inscrire à une liste d’attente (si le nombre limite de participants inscrits a été atteint).
Une autre question au niveau de la modélisation : supposons que nous voulons promouvoir des formations bien que leurs dates exactes restent à déterminer. Comment changerons-nous notre modèle pour permettre cette possibilité? Et pour ces diffusions de formations « sans dates », comment ferons-nous pour les trier dans notre liste de promotion sur la page d’accueil?
Une des décisions importante sera la granularité de la modélisation. Par exemple pour une classe de contenu pour des recettes de cuisine aura-t-on un seul champ pour mettre la liste des ingrédients ou un champ répété pour chaque ingrédient? Si nous choisissons la deuxième approche, est-ce que le champ "ingrédient" sera un champ texte ou une relation d’objet vers un objet "ingrédient"? Si c’est une relation d’objet, pour chaque ingrédient il faudrait permettre de spécifier la quantité et les unités. Mais alors, comment pourrons-nous qualifier l’ingrédient comme par exemple la notion de "rapées" dans "2 tasses de carottes rapées"?
Lorsque nous faisons une modélisation avec une granularité fine, nous parlons souvent de contenu structuré. Il est souvent moins direct de créer le contenu, mais le résultat sera plus polyvalent et permettra que le contenu soit plus découvrable. Pour la modélisation avec une granularité fine d’une recette de cuisine nous pourrions trouver par exemple les recettes sans sucre, celles qui prennent moins de 10 minutes à préparer, les desserts à moins de 150 calories par portion, les recettes de Josée di Stasio.