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.