L'avis de Nicolas B.

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 13 mai 2009

Données, contexte, interactions… RDF ?

Dans un article très intéressant, Trygve Reenskaug and James O. Coplien propose un autre modèle d'architecture en alternative au très usé et très malmené modèle MVC (modèle, vue, contrôleur). Ce modèle se nomme DCI. D pour données, C pour contexte, I pour interactions. L'idée est de dire qu'un objet représentant une donnée n'a pas en soit à avoir de comportement évolué. Il doit être uniquement capable de présenter son état et de lui appliquer des modifications basiques. La plupart des modifications (ou interactions) avec ces objets dépendent alors de ce que l'on veut en faire, et n'ont pas nécessairement à être attachées à l'objet, elles dépendent du contexte dans le quel on se trouve.

Si l'on regarde dans les langages existants, ce modèle fait penser à la différentiation Entitée / Session que l'on retrouve dans les java beans, ou de manière plus simple et intuitive, à la notion de traits qui sont très à la mode actuellement dans les langages de programmation.

Maintenant, gardez tout cela dans un coin de votre tête et allons voir ce qui se passe du coté du web sémantique. Nous avons un ensemble d'informations sur des identifiants. Cet ensemble d'informations peut être vu comme un amas difforme, difficile à manipuler avec un haut niveau d'abstraction. On peut alors compter sur les ontologies pour regarder cet amas d'information différemment. L'ontologie permet de s'assurer que l'ensemble d'information que je détiens me permet de manipuler un objet plus clairement défini. Les ontologies définissent quelles informations sont disponibles, pas comment les modifier.

Revenons un instant à l'architecture DCI, le web sémantique, à travers les ontologies, me fournit des données qui correspondent exactement aux données du modèle DCI. Reste alors à définir, en fonction du contexte, quelles interactions sont possibles pour nos objets. Là, à ma connaissance, la galaxie de spécifications du web sémantique n'apporte pas de réponse, du moins pas de réponse autre que l'utilisation de ces objets dans un langage classique via un ORM. Par contre, l'utilisation du web sémantique et des ontologies permettrait encore une clarification à la correspondance entre données stockées et données représentées. En effet, dans la proposition de Reenskaug et Coplien, le contexte n'a d'impact que sur la façon dont on manipule les objets. Or, en fonction du contexte, la façon dont on voit les objets est également différente. Ainsi, en partant de mon ensemble de données brutes, je dois pouvoir, en fonction du contexte, choisir non seulement les interactions que je souhaite pour mes objets, mais également la représentation que je me faits de ceux ci.

J'essaierai d'illustrer cela prochainement, pour l'instant le temps manque.

mercredi 26 mars 2008

URI sympas et web sémantique

Le W3C a publié il y a quelques jours une nouvelle version d’un document très intéressant sur les URI pour le web sémantique, qui ressemble à une version plus spécifique du très bon Cool URIs don’t change. On y retrouve des réflexions très intéressantes sur la négociation de contenu, dont je parlais il y a peu dans un billet sur RDFa. Une très bonne lecture pour ceux qui s'intéressent au web sémantique (qui a même réussi à infléchir sensiblement ma position sur le sujet).

jeudi 28 février 2008

RDFa était-il utile ?

Got lance une suite de billets sur RDFa, où il explique d’abord ce que c’est puis comment le mettre en pratique. À la fin de la première partie présentation, un paragraphe rejoint ma principale préoccupation sur le sujet :

Mais, je vous vois venir. Vous allez me répondre que c'est très joli, mais que la syntaxe est tout de même un poil complexe. Je ne peux pas vous donner tort. Mais, entre nous, n'est-ce-pas le but du Web dynamique et des CMS de générer le code HTML ? Toutes les données d'un CMS ne sont-elles pas parfaitement structurées dans une base de données ?

Je suis parfaitement d’accord avec lui. Allons même plus loin : le but de RDFa est de permettre l'extraction de donnée d’un document HTML, pour fournir normalement des données au format RDF. Très bonne idée… Mais Got et moi sommes d'accord, c'est à un programme de rajouter ces informations. Et s’il doit le faire, pourquoi ne pas le faire directement au format RDF ? La réponse usuelle, c’est que justement, on ne peut pas embarquer facilement le RDF dans du HTML. C’est vrai mais il est également vrai qu'avec HTTP, le client peut demander au serveur le format qu’il préfère (en précisant le format désiré dans le champ Accept, d'une requête). Ainsi, un serveur pourrait fournir pour une même page, soit les données au format HTML, soit les données au format RDF, soit dans tout autre format, y compris du HTML avec du RDFa dedans (beurk).

Quelle différence ? Peu et beaucoup à la fois. Tout d’abord, on évite d’alourdir le document de base. Certes, ce n’est que quelques données supplémentaires, mais ce raisonnement vaut pour plein de choses : javascript, feuilles de style, pour tout cela, la séparation est préférable, pourquoi les données sémantiques devraient elles avoir un traitement particulier ? Ensuite, on évite de se mordre la queue : RDF fournit des informations sémantique d’un document HTML qui contient des informations sémantiques au format RDFa. Cette phrase vous semble redondante et absurde ? C’est que vous devriez également trouver RDFa absurde.