Un exercice de modélisation sémantique

Add a comment

Sur la liste des adhérents du Praxeme Institute, nous nous sommes livrés récemment à un petit exercice de modélisation sémantique. En voici le résultat.

Énoncé

L’énoncé est tiré d’une expression d’un besoin “métier” (en fait,une présentation par le Marketing) :

A) The client sets preferred time & place.
B) The company indicates the “closest” available agent.

L’essentiel se joue dans l’aspect sémantique. En effet, le seul élément lié à l’organisation est le rôle “agent” dans la proposition “B”.

Client

Le rôle “Client” peut apparaître dans le modèle sémantique, sous la forme d’un rôle (au sens UML), c’est-à-dire d’un rôle sur une association (par exemple, vers Contrat ou Commande).

  • La notion de client peut être perçue comme sémantique car elle n’implique aucune hypothèse d’organisation, comme c’est souvent le cas avec les acteurs externes.
  • Cela n’interdit pas de revenir sur le rôle Client dans le modèle pragmatique , puisqu’il y a des décisions d’organisation à prendre : par exemple, droits accordés au client sur certains cas d’utilisation.
  • Il faut surtout éviter de traiter les rôles par la classification (l’héritage). Cela expose au problème de la “mutation”. Une même personne peut être à la fois client et agent. Le principe de modélisation est ici : la substance arrive avant la relation. Les rôles (comme client) sont toujours relationnels, donc à traiter comme tels dans le modèle sémantique (cela n’interdit pas de réifier la notion de rôle dans le modèle pragmatique, puisque c’est justement une notion organisationnelle). La pure substance – ce que nous découvrons en observant le monde sans a priori et sans le reformuler dans une perspective interne -, la substance, dans notre exemple, ce sont les personnes.
  • Le modèle générique (Open Business Concepts, pour reprendre l’expression de Fabien VILLARD) propose déjà la classe Party, laquelle couvre les cas : personnes physiques, personnes morales…

Les classes en jeu

On a donc :

  • Party (d’où nous tirons le client et l’agent).
  • Site, autre classe générique qui permet de traiter la sémantique des lieux comme des moyens de contacts (adresse, téléphone…).
  • Period, également générique. A noter : à bien y regarder, les préférences sur le moment du contact ne sont pas si faciles à exprimer, si on les traite sur le long terme. La personne peut être disponible à certaines heures pour une période donnée et à d’autres heures pour une autre période. Elle peut exprimer des préférences avec des exceptions pour des plages identifiées. Ou encore, elle peut faire référence à un calendrier partagé (congés scolaires, jours fériés…). Il y a là un bon exercice de modélisation, aussi. Supposons cela traité. De toute façon, cela appartient à la sémantique de la période et doit donc être encapsulé dans la classe générique Period.

Réponse à l’énoncé A)

Une fois posées les trois notions – Party, Site, Period -, il nous faut examiner comment l’expression de préférences doit les combiner. Par exemple, on peut indifféremment :

  • se donner P (un client) et T (un créneau), puis rechercher le lieu approprié, S = ce serait le cas pour un rendez-vous téléphonique ;
  • fixer d’abord S, le lieu, et rechercher ensuite un créneau compatible = cas d’une rencontre physique.

Le modélisateur doit se dire, aussi :

  • pour un P et un T, peut-il y avoir plusieurs S ? (oui = téléphone bureau et mobile ; à savoir : le téléphone mobile est traité comme un site)
  • pour un P et un S, combien de T ? (plusieurs, là aussi)
  • bien évidemment, pour un couple S (ex l’agence) et T (horaires d’ouverture), il y a plusieurs P potentiels (on espère : au moins un agent et un client).

De ces considérations s’impose la solution : il nous faut une association ternaire, reliant les trois classes Party, Site et Period.
Pas moyen d’y échapper car ce sont trois degrés de liberté dans la détermination des préférences spatio-temporelles.
Nous pouvons nommer cette association : “locates” (au sens de “répérer”), ce qui permet de respecter la convention pour les noms d’association (verbe à l’indicatif présent, 3ème personne du singulier). A noter : certains outils – et pas des moins populaires – ne vous permettent pas de nommer une association n-aire. Jetez-les !
Cette association doit être réifiée car elle porte des traits comme l’état (voir message de Fabien V.), peut-être le niveau de certitude, un commentaire, etc. Je l’appelle “Localization” (terme qui, en anglais, semble bien rendre la notion dont nous traitons ; ne pas confondre avec “location” qui est déjà placé sur le modèle générique comme rôle de Site dans l’association resides).

Réponse à l’énoncé B)

Faut-il compliquer le modèle pour répondre à la deuxième partie ? Non. L’agent est une personne. Son calendrier sera traité avec la même association. La ternaire permet de couvrir les cas de mobilité et travail à domicile.
Répondre au problème posé, revient donc :

  • à fixer un P – le client ;
  • à examiner ses préférences (couples de T & S trouvés par l’association “locates“) ;
  • pour chaque couple, à déterminer si un agent (Party assumant le rôle) est disponible, en faisant appel à son agenda.

Donc, “B” n’ajoute rien en termes sémantiques. La question est : où placer le mécanisme correspondant ?
Une première réponse consiste à le situer dans un cas d’utilisation. Nous en trouvons un, au moins, dans le domaine Sales, plus précisément pour le Lead management (gestion des contacts).
En y réfléchissant, nous pouvons imaginer de nombreuses autres situations où ce calcul peut se faire (visite d’un expert, rencontre avec un partenaire, contrôle de chantier…). Reconsidérons la requête impliquée par la proposition B. Qu’y a-t-il, là-dedans, qui soit lié à une façon de faire ? à une organisation ? Rien. Nous pouvons donc considérer cette requête comme purement sémantique, plus exactement : appartenant au champ sémantique que nous venons d’étudier. C’est donc sous la forme d’une opération dans le modèle sémantique que nous la formulerons.
Où placer cette opération ? C’est le prochain exercice !

Cardinalités

Nous aurons du “0..*” à chaque extrémité, ce qui est un bon indicateur de la qualité de la solution…

Élargissement

Prenons, maintenant, un peu de recul ! Ce que nous venons de traiter pour des personnes, est-ce que cela ne ferait pas sens pour d’autres objets ? Par exemple : un engin de chantier, un drone, un spectacle… Certes, dans ces cas, il ne s’agit plus de préférences mais de planification. Pourtant, la forme de la détermination est la même. En conséquence, le modélisateur sera tenté de “faire remonter” la branche de l’association ternaire vers la classe Being, superclasse de Party. Le nom de l’association n’a pas à changer (ça tombe bien, nous n’avions pas choisi “Préférence” ; le terme “consultation” est trop lié à un usage donné et déborde le champ sémantique obtenu par la réunion des trois notions). La préférence – par opposition à planification, par exemple – sera traitée comme un état de la classe Localization.
Remarque : une telle généralisation a déjà été réalisée pour l’association “resides“.

Solution

Conclusion

La solution au problème énoncé repose sur l’association ternaire, à laquelle nous attachons une classe associative.
Beaucoup de problèmes apparemment anodins (comme notre énoncé) débouchent sur des solutions bancales ou amputées parce que le concepteur n’a pas vu le faisceau de déterminations. Refuser d’utiliser les relations n-aires (dans un modèle sémantique, s’entend), c’est s’obliger à estropier la représentation du réel. Une telle attitude condamne à développer des solutions inappropriées.
On oppose souvent à cette pratique de l’association n-aire que :

  • elles sont difficiles à comprendre ;
  • elles ne correspondent à rien dans la technologie.

Ces arguments ne tiennent pas. Il n’y a rien de difficile à considérer qu’une notion est déterminée par plusieurs autres. Pour le second point, se reporter à notre guide PxM-41, qui explique comment dériver un modèle sémantique en modèle logique de données.

Si de telles discussions vous intéressent, n’hésitez pas à nous rejoindre en adhérant à l’association.

A partir de cette année, les inscriptions individuelles sont gratuites et se font en lignes : http://friends.praxeme.org/adhesion/

This entry is filed under méthodologie. And tagged with , , , , , , . You can follow any responses to this entry through RSS 2.0. You can skip to the end and leave a response. Pinging is currently not allowed.

  1. No Comments

You must login to post a comment.