Les petites cases

Smob : le Twitter version Web sémantique

Tukka Hastrup, Uldis Bojars, John Breslin et l’inévitable Alexandre Passant ont mis au point Smob, un système de micoblogging décentralisé basé sur les technologies du Web sémantique, en particulier SIOC, choix logique quand on sait que les quatre développeurs en sont des contributeurs actifs. Cette application démontre parfaitement en quoi les technologies du Web sémantique vont offrir aux utilisateurs (pour ne pas dire « utilisacteurs ») un meilleur contrôle de leurs données dans le cadre de l’écosystème mis en place par le Web 2.0.

Le principe

Smob comprend deux parties :

  • Le smob client permet d’éditer des « micro-billets », de les stocker dans un fichier en RDF/XML, de les afficher sur une page Web enrichie en RDFa et de choisir sur quel(s) serveur(s), dont Twitter, vous voulez éventuellement publier votre « micro-billet ». Si vous voulez vous faire une idée, le projet SIOC met à disposition un smob client anonyme.
  • Le smob server reçoit des micro-billets, les indexe dans un triple store RDF, offre une interface à facettes basée sur Exhibit pour les visualiser, et un sparql endpoint, soit une API standard et universelle, pour les interroger. Vous pouvez consulter le serveur de démonstration.

Par ailleurs, le smob server reconnaît automatiquement la syntaxe des Hashtags en tant que tags du « micro-billet ». Les hashtags peuvent être préfixés avec des comportements associés :

  • En préfixant avec « geo: » suivi d’un nom de lieu, l’interface place automatiquement le « micro-billet » sur une carte Google Maps, en utilisant le service Geonames.
  • En préfixant avec « dbp: » suivi d’une page de Dbpedia, l’interface crée automatiquement un lien vers la page ad hoc sur Dbpedia.

Intérêts de Smob

Smob présente de multiples avantages.

Pour l’utilisateur du Smob client, il peut ainsi archiver ses différents micro-billets dans une syntaxe pérenne, à savoir XML et encodés selon un modèle d’information standard RDF et avec un vocabulaire RDF reconnu, SIOC. L’utilisateur peut choisir sur quel serveur, y compris Twitter, il veut publier son micro-billet voire de ne le conserver qu’en local. Ainsi, il pourra varier le serveur en fonction du sujet de son micro-billet. L’utilisateur garde donc l’entière maîtrise de ses données prêtes à la portabilité. Cerise sur le gâteau, Smob exploite automatiquement votre profil FOAF et l’enrichit.

Quant au smob server, il risque de faire évoluer les usages du micro-blogging. En effet, dans la mesure où il permet une décentralisation de la publication des « micro-billets », il est, par exemple, envisageable d’installer un Smob server pour une communauté précise, c’est d’ailleurs l’idée du serveur Smob de Websemantique.org ou du sioc-project, pour ses besoins personnels, mais aussi pour un organisme quelconque, une entreprise ou institution.

Dans ce cadre, non seulement les utilisateurs pourront continuer d’utiliser leur compte Twitter, s’ils en disposent d’un, mais aussi envoyer et recevoir des micro-billets internes à l’organisme. Ainsi, cette dernière garde la maîtrise des données éditées en son sein et trouve dans ce système un nouveau canal de diffusion plus simple et plus rapide que la messagerie électronique pour certaines informations. Enfin, last but not least, l’intégration des données du/des smob server dans le SI legacy et/ou l’intranet est simplifié par SPARQL, langage de requêtes et interfaces de Web services standard.

Installer et utiliser Smob

Pour le moment, il n’existe pas de plate-forme qui proposerait des smob clients par défaut. Il faut donc disposer d’un peu d’espace (c’est très léger) sur un serveur Web sur lequel PHP 4 ou 5 est installé. Vous téléchargez ensuite le smob client (pour le moment sur le dépôt SVN, mais la première release ne devrait pas tarder). Il vous faudra aussi télécharger ARC 2 et le copier dans le répertoire ‘lib’. Il ne vous reste plus qu’à personnaliser le fichier config.php en indiquant :

  • L’adresse des serveurs Smob sur lesquels vous voulez éventuellement poster vos micro-billets, des exemples sont indiqués ;
  • l’URL de votre profil FOAF ;
  • l’URI qui vous représente dans votre profil FOAF, par exemple, pour moi, cette URI est <http://www.lespetitescases.net/foaf_got.rdf#GP>;
  • le surnom ou le nom que vous utilisez pour micro-bloguer ;
  • le login et mot de passe de votre compte Twitter, si vous en disposez d’un et que vous voulez y publier vos micro-billets.

Vous chargez tous les fichiers sur un serveur et le tour est joué, vous pouvez utiliser le Smob client.

Ce n’est pas beaucoup plus compliqué pour un smob server, si ce n’est que vous devrez disposer d’une base de données MySQL. Ensuite, le principe est le même : téléchargement du smob server et de ARC 2, personnalisation du fichier config.php :

  • La configuration de votre base de données ;
  • Une API key pour utiliser Google maps ;
  • Une API key que les utilisateurs devront indiquer dans leur fichier de configuration s’ils veulent publier sur ce smob server.

Vous chargez et c’est terminé, vous disposez d’un smob server sur lequel vous et d’autres utilisateurs, disposant, le cas échéant, de votre API key, pouvez publier vos micro-billets sur ce serveur.

Exploiter les données de Smob

Il est ensuite très simple de récupérer et d’exploiter les données issues de Smob. Smob client expose les données en RDFa sur la page d’accueil et le smob server offre un sparql endpoint permettant de le requêter et d’afficher les données sur un autre site, comme n’importe quel Web service en REST.

A titre d’exemple, j’ai mis au point un module pour drupal 5 qui permet d’afficher dans un bloc le dernier micro-billet publié sur un serveur Smob que vous paramétrez. Vous en verrez un exemple sur la barre de droite sur ce blog (rubrique "Dernier micro-billet"). CQFD : ce module est la preuve de la portabilité des données permises par les technologies du Web sémantique dans l’écosystème du Web 2.0.

En savoir plus

Quelques billets et articles sur Smob :

Management de l'information Web sémantique Blog Geekeries — 

Commentaires

Je voulais faire un screencast de SMOB en montrant le server http://smob.websemantique.org mais il est down :/ Tu es au courant de quelque chose ?
Non, je suis désolé. C'est Eric qui s'occupe du serveur. Il était déjà down hier soir et, ce matin, il fonctionnait. D'ailleurs, à l'heure où j'écris, il fonctionne. Le serveur a l'air d'avoir un petit souci, car, de mon côté, mon smob server fonctionne très bien...
Ouai. J'ai l'impression (intuition) que dès qu'un nouveau message est publié il tombe. Pas de problème sur les autres servers SMOB en tout cas.
Petite note : Si on protège le dossier data du client (comme proposé dans le readme) avec un .htpasswd les serveurs n'arrivent pas à récupérer les archives, donc ça plante.
Alex, si tu passes par là, il y a visiblement un petit souci avec cette partie du readme. A noter que l'implémentation d'Open id est prévu pour la version finale.
Bonjour, SMOB m'intéresse beaucoup, mais je ne sais pas où trouver plus d'informations (sur le profil, l'avatar ou autres), et surtout, mon serveur ne fonctionne pas ! Sur mon client, on voit bien que mes messages ont été envoyés, que ce soit à twitter ou au serveur (d'ailleurs Twitter les reçoit bien), mais mon serveur ne les reçoit pas ! :/ Auriez-vous une idée, ou sauriez-vous ou je peux trouver de l'aide ?

Smob est actuellement en phase de développement, d'où peut-être l'absence de documentation. Je vous conseille d'aller sur le blog d'Alexandre Passant (cité dans le billet) si vous ne l'avez pas déjà fait, sinon il faut vous inscrire à la liste SIOC-dev (http://groups.google.com/group/sioc-dev) et y poser votre question.

Quant à vos problèmes, je pense qu'ils proviennent de la configuration du fichier config.php du client. Pour l'avatar, il utilise la propriété foaf:depiction de votre profil FOAF dont vous indiquez l'URL dans le fichier de configuration. Quant au serveur, il faut préciser l'URL de votre serveur toujours dans le même fichier de configuration du client et vérifier le fichier config.php du serveur.

Dernière indication, je vous conseille d'utiliser la version actuellement mis à disposition sur le SVN, un bug a été corrigé qui expliquerait votre problème.

j'espère que cela vous aidera.