L'unification de la notion de contenu

Depuis maintenant plusieurs mois, un de mes plus grands projets est l'unification de la notion de contenu et de fournisseur de contenu. Que l'on navigue sur internet pour lire les dernières actualités, que l'on cherche une application sur le Play Store ou encore que l'on regarde des photos dans nos bibliothèques, on interagit avec des contenus (les actualités, les applications ou les médias, …) disponibles à travers de différentes sources (sites, blogs, magasins en lignes, stockage local, bibliothèques, …) dont le rôle est de fournir du contenu aux utilisateurs.

De ce constat m'est venue l'idée de rechercher un moyen d'unifier les comportements de ces éléments : une façon unifiée de rechercher les contenus au travers des différentes sources, de trier, de recroiser les informations entre elles. On pourrait alors utiliser un logiciel client permettant l'agrégation des différents contenus, où l'on peut trouver les contenus de centaines de sources dans une seule interface, où l'on pourrait classer, regrouper, fusionner différentes informations.

Mais l'utilisation d'un seul logiciel pour tous les types de contenu ne serait pas forcément adaptée. En effet, il serait difficile d'unifier le comportement des articles de journaux, des applications et des vidéos par exemple. Par contre, il serait possible d'établir une base de données locale à un périphérique (que ce soit un ordinateur, un téléphone ou autres) dont le travail serait d'agréger le contenu, et de fournir des logiciels spécialisés aux utilisateurs, tels qu'un logiciel de gestion de vidéos (films, séries, …), un logiciel d'agrégation des actualités se basant sur une seule source locale : notre base de donnée de contenu.

Je vais ici développer la notion de contenu, de fournisseur, et des différentes applications en relation.


La notion de contenu

L'unification des différents types de contenus passe par une étape essentielle : l'identification des éléments communs à tous les contenus afin de modéliser un type complètement générique dont tous les contenus pourront hériter. Voici ces éléments :

  • Id : un identifiant pas forcément numérique. Relatif à un fournisseur, il permet de pouvoir retrouver de manière unique le contenu.
  • Nom : un nom, un titre, une désignation permettant de décrire le contenu pour les utilisateurs.
  • Date : la date de création, publication du contenu.
  • Informations : l'ensemble des informations caractérisant le contenu. C'est là où seront stockés le corps et les informations spécifiques au contenu.
Voici quelques exemples d'application de ce modèle :

Un fond d'écran
Id : 326504
Nom : fly
Date : 3 janvier 2013 - 18h41
Informations :
  • Poids : 468 ko
  • Résolution : 1920x1080
  • Auteur : donas
Une application Android
Id : com.google.zxing.client.android
Nom : Barcode Scanner
Date : 2 octobre 2012
Informations :
  • Description : …
  • Développeur : ZXing Team
  • Note : 4,2
Un article de journal
Id : 1395204
Nom : Un Napoléon en or caché …
Date : 5 janvier 2013 – 12h06
Informations :
  • Article : …
  • Catégorie : Insolite
  • Source : AFP


Les types de contenu

Malgré cette unification, il reste intéressant de conserver un typage, des catégories pour distinguer les contenus. Cela permettrait aux futures applications de se baser sur un type unique de contenu, par exemple uniquement les contenus vidéo, et également de faire des recherches par type. Cela permet également de définir un ensemble d'éléments caractérisant chaque type de contenu.

Voici la liste temporaire des types de contenus que j'ai mis en évidence, leur hiérarchie et leurs caractéristiques, chaque sous-type héritant des caractéristiques du type supérieur :

  • Contenu : Id, Nom, Date
    • Audio : Encodage, Durée, Titre
      • Musique** : Album, Artiste
    • Vidéo : Encodage, Largeur, Hauteur, Durée, Langage, Titre
      • Film : Auteur
      • Série : Saison, Épisode
    • Document : Auteur
      • Livre
      • Article : Source
    • Application : Auteur, Plateforme, Version
      • Logiciel
      • Jeu
    • Image : Largeur, Hauteur

La notion de fournisseur de contenu

Un fournisseur de contenu correspond à une source, l'emplacement où les contenus sont publiés. Afin de compléter cette unification des comportements, il faut également trouver les éléments communs aux fournisseurs et établir un comportement commun que tous les fournisseurs pourront suivre. Par exemple, pour une grande partie des fournisseurs sur internet, il est possible de fournir une URL pour retrouver le contenu initial. En reprenant les trois exemples de contenu ci-dessus (et vous pouvez essayer par vous-même !) :

De plus, il faut penser que l'ajout de fournisseurs sera de la responsabilité des utilisateurs, si chaque utilisateur peut ajouter un nouveau fournisseur et le publier, la liste se remplira surement très vite. Pour le moment, j'ai développé un fournisseur « générique » s'adaptant à la plupart des sites internet. En fournissant une expression régulière et l'adresse du site en question, il est capable de retrouver la liste des contenus du site.


Implémentation et applications

A l'heure actuelle, j'ai implémenté les modèles des contenus et des fournisseurs de contenus, et je travaille sur la mise en cache et sur l'exploitation de ces données pour réaliser des applications diverses. J'ai par exemple pensé à une application permettant de gérer ses épisodes de séries télévisées, avec de multiples fournisseurs de contenu mis en relation :

  • Un fournisseur de contenu local (les épisodes sur le disque dur)
  • Un fournisseur d'informations concernant les séries
Cela permettrait de faire correspondre facilement un épisode vidéo avec ses informations.


Afin de suivre l'évolution de l'implémentation de ces notions, je vous invite à suivre certain de mes projets, notamment les suivants :

  • ProvidersCache, qui permet la mise en cache locale de contenus
  • MediaManager, qui unifie dans une seule interface les contenus de plusieurs fournisseurs, permettant l'ajout d'expressions déclenchant des notifications
  • MediaHub, pas directement lié, mais utilise la notion de fournisseurs pour le partage de contenus

Je vais évidemment continuer de travailler sur ces idées. Je mettrai sans doute à jour cet article au fur et à mesure de l'implémentation de ces notions et de l'évolution de mon travail.

N'oubliez pas que si vous souhaitez plus d'informations, ou si vous souhaitez contribuer à mes projets en proposant des idées, vous pouvez me contacter sur les réseaux sociaux.



// Restons en contact

Si vous êtes intéressés par mon travail ou mes projets, vous pouvez me suivre et me contacter sur les réseaux suivants :

// Statistiques

Actualités
3
Articles
5
Projets
16