une approche fondée sur l idm pour le développement d un...
TRANSCRIPT
Une approche fondée sur l’IDM
pour le développement d’un environnement
de production journalistique
Cyril Faucher1, Frédéric Bertrand
1, Jean-Yves Lafaye
1,
Denis Teyssou2, Mathieu Bully
3
1. Laboratoire L3i, Université de La Rochelle
Avenue Michel Crépeau, F-17042 La Rochelle cedex 1
{cyril.faucher, frederic.bertrand, jean-yves.lafaye}@univ-lr.fr
2. Agence France Presse
11-15, place de la Bourse F-75002 Paris
3. Relaxnews
34, quai de la Loire F-75019 Paris
RÉSUMÉ. Nous présentons une expérience appliquant l’ingénierie dirigée par les modèles à
l’analyse et à la mise en œuvre d’une chaîne complète de gestion de dépêches d’agence
traitant de manifestations dans les domaines de la culture et des loisirs. La prise en compte
d’événements, structurellement complexes, porteurs d’information spatiale et surtout
temporelle, associée à la nécessité de gérer l’interopérabilité d’applications hétérogènes,
justifient pleinement le recours à l’IDM. Nous donnons une vue d’ensemble de notre
démarche et présentons les métamodèles utilisés, notamment le modèle d’événements servant
de pivot entre l’interface avec les applications de traitement de la langue naturelle en amont
et les environnements de visualisation d’information temporelle du côté de l’utilisateur final.
ABSTRACT. This paper presents an application of Model Driven Engineering to the design of a
complete news processing line within the scope of culture and leisure information. MDE is
the only technology actually enabling to master the management of complex composite events
with spatial and temporal properties, and to cope with making heterogeneous applications
interoperate. We provide an overview of our approach and outline the salient points of our
metamodels. The stress is put on the event metamodel, standing as a pivot between the
beforehand Natural Language Processing, and temporal information visualization
frameworks on the end user side.
MOTS-CLÉS : validation sémantique, IDM, information temporelle, événement.
KEYWORDS: semantic validation, MDE, temporal information, event.
1. Introduction
Dans le cadre du projet ANR Relaxmultimédias 2 (RMM21, mars 2009-
décembre 2011) nous avons utilisé l’ingénierie dirigée par les modèles (IDM) pour
la spécification et la mise en œuvre d’une chaîne complète de production et de
gestion d’événements dans le domaine de l’information de loisir. La plate-forme2
logicielle produite intègre des sources d’information hétérogènes et assure la
validation, l’interrogation et la visualisation des informations traitées. Le projet
RMM2 fait suite au projet ANR Relaxmultimédias dans lequel, dès 2005, nous
avions appliqué une démarche analogue pour transformer un modèle métier objet
annoté en une ontologie (Faucher et al., 2008).
Ce projet a été mené en collaboration avec l’Agence France-Presse, dont le
métier concerne l’information généraliste, l’agence Relaxnews spécialisée dans
l’information de loisir et le laboratoire MoDyCo3 (UMR 7114) pour son expertise
dans le traitement automatique des langues (TAL).
Les données produites et diffusées par les agences de presse sont centrées sur la
notion d’événement. Dans le processus existant, les journalistes, à partir de dépêches
d’agences, reconnaissent des événements, qu’ils associent à des entités nommées
représentant les acteurs impliqués et les lieux concernés. Ils extraient également les
informations temporelles caractérisant les occurrences des événements reconnus. Ces
éléments permettent de créer des documents XML conformes à des normes métiers
(NewsML-G2 et EventsML-G24). Les bases d’événements ainsi construites servent à
planifier la couverture médiatique et permettent la création de flux d’informations à
destination des clients et utilisateurs finaux. Le besoin d’automatisation, de validation
et de vérification des informations saisies est nécessaire et constitue la motivation du
travail présenté. De manière plus générale, les enjeux du projet sont :
– la facilitation du processus de collecte des informations par les journalistes ;
– une interopérabilité accrue entre les applications assurant la saisie, la
persistance, l’interrogation et la diffusion, dans un contexte multi-utilisateur,
multiplateforme et multilingue.
Outre l’hétérogénéité des contextes et des utilisateurs mentionnée, le processus
métier met en jeu des sources de données diverses. Les dépêches traitent
d’événements artistiques ou culturels (spectacle, exposition, manifestation,
publication, etc.) ou encore d’offres d’hébergement, de transport, ou de services
variés (sport, formation, etc.) ou enfin d’informations concernant l’activité de
personnalités connues. De manière générale, ces événements ont en commun de
concerner des éléments potentiellement référencés dans des ontologies liées aux
données interconnectées (linked data) (« DBpedia », « Geonames », etc.), des
1. Projet Relaxmultimedias 2 : http://www.rmm2.org
2. Plate-forme projet Relaxmultimedias 2 : http://www.afprelaxnews.com/
3. MoDyCo : http://www.modyco.fr/
4. NewsML-G2 et EventsML-G2 : http://www.iptc.org/site/News_Exchange_Formats/
institutions (cinéma, théâtre…) ayant leurs propres sites dédiés et des informations
temporelles comme, par exemple, les périodes d’accessibilité. Sur ce dernier aspect,
de nombreuses spécifications existent et se recouvrent sans nécessairement traiter
l’ensemble des besoins. En particulier, la prise en compte des événements répétitifs
– centrale dans nos préoccupations – est abordée de façon trop restreinte.
La suite de cet article est organisée en six sections. Dans la section 2, nous
détaillons les objectifs en termes de processus métiers. Dans un second temps, nous
constatons la complexité du sujet et la nécessité de faire appel à l’IDM pour la
maîtriser. Nous présentons l’architecture sous-jacente à notre approche en précisant
l’organisation des métamodèles que nous avons spécifiés et la manière dont ils sont
utilisés. Nous donnons également un aperçu des technologies choisies pour satisfaire
ces besoins. La section 3, présente le métamodèle d’événements en développant à la
fois les points de vue structurel et temporel. L’accent est mis sur la gestion des
événements répétitifs et sur la syntaxe textuelle concrète associée au modèle objet
qui – proche du langage naturel – facilite le dialogue avec l’utilisateur journaliste.
La vérification des expressions temporelles s’appuie sur un modèle de calendrier
que nous présentons en section 4. En section 5, nous décrivons l’utilisation de l’IDM
pour configurer et générer des applications web de visualisation des caractéristiques
spatio-temporelles des événements. Nous expérimentons nos modèles et
transformations en section 6. La conclusion (section 7), établit un bilan de l’apport
de l’IDM dans la réalisation du projet et les perspectives de notre travail.
2. Objectifs et architecture générale du projet Relaxmultimédias 2
2.1. Objectifs
En regard du processus existant essentiellement manuel, le processus à mettre en
place est illustré par la figure 1. Nous en détaillons ci-après les différentes étapes
avec les difficultés répertoriées et les réponses techniques envisagées.
L’arrivée de dépêches de presse, issues de l’AFP ou d’autres sources, active le
processus. Ces dépêches peuvent être constituées d’un texte brut ou structuré au
format NewsML, vocabulaire XML défini par l’IPTC5, accompagnant le texte de
métadonnées. Des flux RSS, très répandus sur le web, sont également traités.
La première phase, prise en charge par le laboratoire MoDyCo, procède à une
analyse et une annotation automatique du corps des dépêches pour mettre en
évidence les éléments atomiques répondant aux quatre « W » (Who, What, Where,
When) et conduit à la création d’un ou de plusieurs événements.
Bien qu’assez élaborée, la reconnaissance d’expressions temporelles reste
souvent incomplète et des problèmes de granularité temporelle peuvent subsister. La
difficulté majeure réside dans la structuration des événements composés et dans
l’appariement avec leurs propriétés, temporelles ou non.
5. http://www.iptc.org/site/Home/
Figure 1. Processus métier cible
L’enrichissement des données réalisé par le laboratoire MoDyCo, et l’appariement
effectif évoqué ci-avant ne peuvent être entièrement automatisés. Un expert métier
(journaliste) doit intervenir. Il est assisté par des applicatifs qui interrogent le modèle
d’événements et les bases de connaissances dans leur état courant. Ces applicatifs sont
développés en partie par les agences de presse partenaires. Le système suggère des
éléments de complétion et vérifie la cohérence des nouvelles informations candidates
destinées à incrémenter les instances du modèle d’événements et la connaissance
induite. Les informations échangées entre l’expert et le système sont exprimées dans
un langage proche du langage naturel (cf. section 3.2).
Le modèle d’événements est conçu pour représenter, d’une part, la structure des
événements composites (hiérarchie d’événements) et, d’autre part, leurs propriétés
temporelles, y compris dans le cas d’événements répétitifs.
L’une des originalités de notre proposition est de modéliser les ensembles
d’occurrences en intension et non en extension (i.e. spécifier « tous les premiers
samedis du mois entre 2008 et 2015 » à la place des 96 occurrences concrètes ainsi
référencées). La persistance des données est ainsi optimisée en stockant des formes
concises associées à une sémantique, alors que l’ensemble des dates concrètes
d’occurrences masque les propriétés de récurrence. Nous ne traitons pas ici des
autres informations (spatiales et métadonnées diverses).
L’efficacité du processus automatisé est naturellement liée à la généricité des
solutions proposées. L’essentiel du travail réside dans l’échange de données entre
acteurs : traduire les données annotées par MoDyCo pour obtenir des éléments
adaptés au métamodèle d’événements, traduire les instances de ce métamodèle en
structures persistantes ou en flux exportés vers les interfaces de l’utilisateur final. De
manière similaire, le métamodèle d’événements sera converti sous forme textuelle et
vice versa. Concernant la validation, il faut confronter les données événementielles à
la sémantique du calendrier. Appliquer les principes de l’IDM est un moyen de gérer
flot de données séquencement
E xtraction , a nnotation
Vérification , e nrichissement , c omplétion
Peuplement m odèle d ’ é vénements
Traduction , P ersistance (S QL , XML, RDF )
Export Diffusion
texte annoté formaté
texte brut , RSS , NewsML
formulation selon la grammaire formelle
valeurs d ’ instances et propriétés intégrées, validées et vérifiées
la complexité de façon organisée, contrôlée et explicite. Enfin, dans un domaine où
les applications et les environnements de visualisation sont grandement évolutifs,
l’usage de l’IDM garantit une robustesse tant en minimisant l’impact du changement
qu’en facilitant sa prise en compte.
La mise en œuvre de l’IDM dans le cadre de ce projet permet d’utiliser des
environnements de conception éprouvés et efficaces tels que la plate-forme Eclipse
EMF (Eclipse Modeling Framework6) ainsi que des outils développés dans les
projets TopCased7 et OpenEmbeDD8.
2.2. Métamodèles de référence
La mise en œuvre, dans une démarche générique, des besoins décrits
précédemment et l’automatisation des processus supposent la spécification et
l’usage d’un nombre conséquent de métamodèles interdépendants. La figure 2
détaille cette architecture. Chaque package correspond globalement à une activité du
processus métier décrit sur la figure 1 : M2_Source et M2_PreProcessing pour
l’extraction et l’annotation, M2_TemporalEvents pour les métamodèles pivots gérant
les événements et leurs propriétés temporelles dont la sémantique est issue de
M2_CalendarKnowledge et de M2_Legacy, enfin M2_Publication dédié à l’export
des informations et à l’adaptation aux systèmes cibles de visualisation.
Figure 2. Les différents packages des métamodèles du projet
TemporalEvents est le métamodèle pivot vis-à-vis des autres métamodèles. Il
exprime la structure des événements créés et contient les éléments suivants :
6. EMF : http://www.eclipse.org/modeling/emf/
7. TopCased : http://www.topcased.org/
8. OpenEmbeDD : http://openembedd.org/home_html
– StructuredEvent décrit la structure composite des événements et leurs relations
mutuelles (cf. section 3.1) ;
– Temporal décrit les dates d’occurrence des événements et, dans le cas d’un
événement répétitif, les règles régissant cette (pseudo) périodicité (cf. section 3.3).
Une formulation équivalente de ces règles est offerte via une syntaxe concrète
(textuelle).
La partie Temporal du métamodèle TemporalEvents s’appuie sur le métamodèle
Legacy qui contient la description de la spécification ISO 191089 (schéma temporel
pour l’information géographique). Celle-ci inclut les relations d’Allen (Allen, 1983)
et l’extension, que nous proposons, qui s’applique aux intervalles non convexes et
permet de traiter les événements répétitifs. Cette extension nommée Allen* (Faucher
et al., 2012) se fonde sur les travaux de G. Ligozat (1991).
TemporalEvents s’appuie sur le métamodèle Calendar qui décrit la connaissance
calendaire i.e., les entités présentes dans un calendrier (jour, mois…) et leurs règles
d’occurrence. Cette représentation du calendrier permet au processus de validation
sémantique des événements de détecter des incohérences telles que : « le 2e lundi de
chaque semaine » (cf. section 4 et (Faucher et al., 2011)).
En amont, le métamodèle PreProcessing représente l’information extraite des
sources d’information, notamment l’information annotée des dépêches après
traitement automatique de la langue (NLP_Output) et celle extraite des flux RSS
(RSS_Parsed). Cette information est ensuite exploitée pour instancier le métamodèle
d’événements.
La dernière étape, dans la chaîne de création des événements, utilise le
métamodèle Publication décrivant un modèle général d’interface graphique en
séparant les sources de données à visualiser (Content), les composants graphiques
(Widgets) utilisés et la disposition de ces composants (Layout). Pour la visualisation
des événements, nous avons utilisé la bibliothèque de composants Simile Exhibit10.
Cette modélisation des entités intervenant dans la chaîne de production a été
réalisée dans un souci d’intégration de nouvelles sources de données et pour faciliter
l’exportation vers de nouvelles plates-formes de diffusion. L’IDM nous a permis
d’exploiter les métamodèles à la fois pour la production de données et pour générer
des interfaces graphiques dédiées à la visualisation des événements stockés dans la
base de données.
2.3. Illustration avec l’exemple de l’événement « Festival des Francofolies »
Pour illustrer le processus général de traitement, prenons le cas d’un texte publié
sous forme de dépêche dans un journal régional au sujet du festival musical des
Francofolies (cf. figure 3). Ce texte constitue l’information brute entrant dans le
9. ISO, 2002. Text of 19108 Geographic information - Temporal schema.
10. Simile Exhibit 2 : http://simile-widgets.org/exhibit/
système. Le premier traitement consiste à reconnaître des entités nommées, i.e. les
éléments d’information pertinents pour la création d’événements.
Figure 3. Dépêche d’un quotidien régional décrivant une partie
de la programmation des Francofolies 2011
Le système d’extraction de connaissances, réalisé avec des techniques du
traitement automatique du langage (TAL), reconnaît les sujets principaux (ici
encadrés en traits pleins) qui constitueront les événements (What), les métadonnées
géographiques apportant la localisation (Where, surlignées), les entités nommées
identifiant les acteurs (Who, encadrées en pointillés), et les informations temporelles
(When, soulignées) (Battistelli et al., 2008 ; Teissèdre et al., 2010).
Ce système produit automatiquement, à partir du texte initial, un texte annoté, ce
qui rend ces informations directement utilisables dans des applications
informatiques. Comme il a été mentionné précédemment, cette première analyse
doit impérativement être validée et complétée par un expert humain (journaliste), de
façon à identifier les liens entre les différents éléments (lieux, acteurs, dates), pour
typer précisément les informations et lever les ambiguïtés. Pour la dépêche prise en
exemple, les annotations sont les suivantes :
Where:city = La Rochelle
What = les Francofolies
When:date-year = 2011
Where:scene = Saint-Jean-d’Acre
When:duration-start-day = 12
juillet
When:duration-end-day = 16
juillet
What = vente de billets
When:date-day = mardi 1er
février
What = Programme
When:date-hour = Mardi 12
juillet 18h…
Who:singer = Ch. Maé, Zaz
When :date:hour = Jeudi 14
juillet 19h…
Who:songGroup = Cocoon, The Do
Les annotations possèdent un type, ex. What = « les Francofolies » et parfois un
attribut, ex. Where:city = « La Rochelle ». Ces informations sont ensuite complétées
pour notamment mettre en relation les What. Par exemple, « Programme » est défini
comme un élément constitutif de « les Francofolies ». Lorsque la phase d’annotation
est finalisée par le journaliste, une transformation de modèles est appliquée afin de
peupler le modèle d’événements temporels et de générer des instances (Faucher et al.,
La Rochelle : les Francofolies dévoilent leurs têtes d'affiche 2011.
« Sud Ouest » révèle le programme en exclusivité des soirées de la
scène Saint-Jean-d'Acre du 12 au 16 juillet.
Une vente de billets à prix serrés aura lieu dès le mardi 1er
février.
Programme en exclusivité :
Mardi 12 juillet à 18h : Ch. Maé, Zaz
Jeudi 14 juillet à 19h : Cocoon, The Do
2010c). La figure 4 est un exemple de résultat de cette transformation et constitue un
modèle instanciant le métamodèle d’événements présenté en section 3.1. L’élément
typé Where devient Location, les What deviennent des Event, T_SimpleEvent ou
T_AggregatedEvent suivant leurs fonction et position dans la hiérarchie des
événements précédemment décidée par le journaliste. Enfin les When et Who sont
transformés en attributs. Dans la dépêche traitée comme exemple, certains concerts ne
sont pas pris en compte car les artistes n’ont pas encore notifié leur présence. Les
événements seront complétés au fur et à mesure, soit via une nouvelle dépêche
annonçant les compléments de programmation, soit par ajout direct des journalistes.
francofolies: T_AggregatedEvent
name = 'Francofolies'
periodicityRule = 'each 2nd
week of each July'
f2011: T_AggregatedEvent
name = 'Francofolies_2011'
period = '12/07/2011:16/07/2011'
periodicityRule = 'each day'
venteBillets: Event
name = 'Vente de billets'
date = '01/02/2011'
structuraltemporal
lr: Location
name = 'La Rochelle'takesPlace structural
progf2011: Event
name = 'Programme'
prog12juillet: T_SimpleEvent
artists = 'Ch. Maé, Zaz'
date = '12/07/2011'
prog14juillet: T_SimpleEvent
artists = 'Cocoon, The Do'
date = '14/07/2011'
structural
temporal
structural
temporal
Figure 4. Diagramme d’instance du métamodèle d’événements
En ce qui concerne la visualisation des événements tels que « Francofolies
2011 » (cf. figure 5), nous proposons une application web pour trier/filtrer les
événements suivant des catégories à l’aide de facettes (1), afficher une vue
chronologique (2) et une carte (3) indiquant leur positionnement spatio-temporel
(Faucher et al., 2010a).
Figure 5. Application de visualisation d’événements produite par l’AFP
utilisant l’approche MODSEA décrite section 5
1
2
3
3. Le métamodèle d’événements liés à l’information de loisir
Le métamodèle d’événements est un élément central du projet. L’importation et
l’exportation de données s’organisent autour de ce métamodèle pivot. Cette section
exprime les besoins et décrit ce métamodèle en insistant sur sa partie temporelle et
l’outillage que nous avons pu développer pour le rendre opérationnel.
Un événement possède des informations spatiales et temporelles ainsi que des
métadonnées. Le modèle spatial est celui de la norme ISO 19100. Pour la partie
temporelle, la norme ISO 19108 a été réutilisée et étendue afin de prendre en charge
les spécifications du projet.
3.1. Le métamodèle d’événements
La figure 6 donne un extrait du métamodèle d’événements associé au
métamodèle temporel. Ce dernier permet de représenter tout type de phénomène
périodique. La généricité de notre métamodèle apparaît en section 4 où il est montré
que le calendrier peut lui-même être représenté par un modèle d’événements dont
les éléments sont les entités calendaires récurrentes : jour, mois, année…
Le métamodèle d’événements répond à la volonté d’exprimer qu’un événement
peut se voir associer à la fois :
– des informations temporelles et spatiales (NonTemporalMetadata) ;
– des métadonnées générales (cf. ISO 19115 : MD_Identification, MD_Content
Information, etc.) ;
– une décomposition en sous-événements.
Figure 6. Extrait du métamodèle d’événements
La décomposition en sous-événements peut donner lieu à deux types de relation.
L’association structural représente le patron Composite (rôles subEvent et
superEvent), ex. les Francofolies sont composées de concerts. La relation temporal
signifie que les événements composants vérifient les propriétés temporelles décrites
sur l’événement composite, ex. Les Francofolies sont décrites comme un événement
annuel survenant en juillet depuis 1985. Il y a donc une seule occurrence par année.
Précisément, l’événement « Francofolies_2011 » aura lieu en juillet 2011. Un
exemple d’instanciation est présenté sur la figure 4 dans la section 2.3.
3.2. Pouvoir d’expression requis pour le métamodèle temporel
La partie temporelle du métamodèle d’événements décrit les règles d’occurrence
temporelle des événements. Notre métamodèle repose sur la norme ISO 19108 pour
modéliser des propriétés temporelles. Nous l’avons choisie car l’ISO définit des
éléments de base sous forme de modèles de classes. Cette norme définit notamment
TM_Instant représentant une date exprimée à un niveau de granularité variable, i.e.
soit une année, soit une année avec un mois précisé, soit une année avec un mois, un
jour et/ou une heure précisés. L’utilisation de deux TM_Instant permet de créer une
TM_Period avec un début et une fin. La norme définit également des signatures de
méthodes pour calculer des durées et des positions relatives entre instants et périodes.
Ainsi la méthode relativePosition détermine la position relative entre deux primitives,
ex. entre deux instants ou entre un instant et une période, et qualifie la relation entre
deux primitives en utilisant les relations d’Allen : before, during, overlaps, etc.
La norme ISO 19108 permet ainsi de définir précisément un ensemble de dates
concrètes (calendaires). Les événements traités ayant souvent un caractère temporel
récurrent, il est intéressant de pouvoir décrire une série de dates, non pas en extension,
mais en intension (Carnap, 1947). L’ISO 19108 ne permet pas de définition telle que
« le festival a lieu chaque 1er jeudi du mois de mai ». Une fois les règles de périodicité
connues, il est possible d’obtenir l’ensemble des dates (extension) par calcul. Ainsi
nous proposons de compléter l’ISO notamment avec les concepts utiles à l’expression
de périodicités temporelles en intension (Faucher et al., 2010d) tels que :
– une durée avec les notions de « semaine », de « siècle » et de « comparateur »,
permettant de spécifier que la durée entre deux instants est, par exemple, « inférieure
à 2 heures » ;
– des descripteurs périodiques utilisant les termes du calendrier auxquels sont
associés un rang, ex. : « 1er
lundi » ;
– des positions temporelles relatives entre des occurrences, ex. : « 2 heures avant
l’ouverture du musée ».
Le modèle temporel n’a pas pour objectif d’offrir toute la puissance d’expression
du langage naturel, mais de permettre à un journaliste d’exprimer des contraintes
temporelles fréquemment rencontrées dans les dépêches. Ce métamodèle n’a pas
non plus pour objectif de modéliser des propriétés d’ordonnancement de systèmes
comme le permettent les CCSL11, MARTE (André et al., 2007 ; 2010), etc. Il
permet de représenter les périodes d’occurrences d’événements récurrents. La
principale limitation par rapport à d’autres langages, par exemple TimeML
(Pustejovsky et al., 2005 ; 2010), concerne l’expression de règles prenant en compte
des événements dont la date est dépendante de l’instant d’énonciation i.e., les
déictiques telles que : « 3 jours avant aujourd’hui » ou « les dernières nuits ». Nous
ne prenons pas en charge nativement dans notre langage les propriétés temporelles
conditionnelles (subordonnées) « months starting with a Monday » ou « Every
Monday that is a holiday » (Pan et al., 2005 ; Mallet et al., 2010).
Une norme existante comme EventsML-G2 fondée sur iCalendar (Dawson et
Stenerson, 1998) permet de spécifier des ensembles de dates ou de périodes, des
règles de périodicité ainsi que des exceptions. Elle fournit un schéma de
correspondance avec iCalendar. Par rapport aux besoins constatés dans RMM2,
EventsML-G2 possède certaines limitations que nous levons dans le modèle
temporel proposé :
– les périodes récurrentes imbriquées ne sont pas exprimables, ex. « tous les
1ers
jeudis de chaque mois de 10h à 14h entre mai et septembre » (1re
période : tous
les 1er jeudis de chaque mois de 10h à 14h, 2e période : mai et septembre) ;
– les propriétés temporelles de l’événement sont dispersées. Par exemple, pour la
spécification d’une règle de périodicité, des informations concernant l’heure
d’occurrence (DTSTART, DTEND) sont contenues directement par l’événement et
non par la règle de périodicité (RRULE) ;
– les positions relatives entre événements ainsi que la réutilisation de propriétés
temporelles existantes ne peuvent pas être spécifiées.
La liste ci-après résume le pouvoir d’expression en intension nécessaire et
suffisant offert par notre métamodèle temporel :
– périodicité avec une fréquence explicite : 2 fois durant une période d’un mois,
2 fois par mois calendaire ;
– périodicité avec une fréquence implicite : du 1er
jour de chaque mois au second
jour de chaque mois de février à chaque mois de novembre ;
– positionnement relatif : de 3 heures avant la basse mer à 3 heures après la
basse mer (Faucher et al., 2010d) ; l’occurrence de « basse mer » est également
définie comme propriété temporelle d’un événement, les termes « avant » et
« après » appartiennent à l’ensemble de relations que nous nommons Allen* ;
– exception périodique : tous les jours sauf le lundi.
3.3. Le métamodèle temporel
Le métamodèle temporel (cf. figure 7) décrit des concepts pour spécifier en
intension les expressions temporelles rattachées à des événements périodiques.
11. CCSL : Clock Constraint Specification Language.
PeriodicTemporalOccurrence est la classe principale, elle possède des règles de
périodicité (PeriodicRule) s’exprimant, soit en termes de fréquence comme « 1 fois
par jour », soit à l’aide de descripteurs comme « tous les 1er jours de chaque mois ».
Dans ce dernier exemple, « tous les 1er jours » est un premier descripteur et « chaque
mois » est un second. CalendarUnit est une énumération décrivant les unités
calendaires utilisées par les descripteurs i.e., « tous les jours ». Dans l’expression
« tous les 1ers
jours », « 1er » est un rang (valeur de l’attribut value de la classe
NumericRank).
Notre métamodèle temporel a été testé et validé (cf. section 6) sur un corpus de
l’agence Relaxnews comportant 513 expressions temporelles relatives à des périodes
d’accessibilité décrites en langage naturel en intension, ex. « le musée est ouvert
tous les jours sauf le lundi ».
Figure 7. Extrait du métamodèle temporel
La création d’un nouveau métamodèle d’expressions temporelles et l’utilisation
d’un langage dédié (DSL) étaient ici appropriées car, d’une part, nous avions une
base à étendre, l’ISO 19108, définie sous forme d’un modèle UML, et, d’autre part,
nous souhaitions instancier et outiller le métamodèle notamment avec une syntaxe
textuelle (cf. section 4.2). Cette extension a été réalisée en utilisant la modélisation
par aspects (Aspect Oriented Modeling). Ceci permet de séparer les préoccupations
de la norme ISO par rapport aux concepts métiers. Plus précisément, l’extension est
définie dans un fichier séparé et ensuite fusionné avec l’ISO à l’aide de directives
pour préciser les points d’extension. Ceci est réalisé avec les fonctionnalités d’AOM
de Kermeta (Muller et al., 2005 ; Moha et al., 2010).
4. Le processus de vérification des expressions temporelles
Les modèles objets fondés sur le concept de classe nous assurent une validité
structurelle des objets instanciés. Cependant, selon la complexité du domaine métier,
beaucoup d’efforts sont nécessaires pour mettre en œuvre une validation sémantique
de l’ensemble des instances. Dans cette section, nous montrons de quelle manière
cette validation peut être facilitée par l’utilisation d’un modèle capturant la
sémantique du domaine (Faucher et al., 2011).
4.1. Validations syntaxique et sémantique des expressions temporelles
Un métamodèle permet de définir des concepts et leurs relations. Il est possible
de créer un modèle conforme au métamodèle et de vérifier son intégrité en termes de
typage et de cardinalités. Ces contraintes de construction sont souvent insuffisantes
pour garantir la correction sémantique du modèle. OCL peut être utilisé pour ajouter
des contraintes assurant l’intégrité, mais s’avère insuffisant lorsque la sémantique
des modèles devient trop complexe.
En préliminaire à une vérification sémantique, nous définissons une grammaire
fondée sur notre métamodèle. Outre la vérification syntaxique des informations
saisies, elle permet de reformuler, dans un langage compréhensible à un humain, les
valeurs des éléments de modélisation utiles au journaliste participant à la validation :
mise en évidence des informations incohérentes, suggestions d’alternatives valides,
etc. (cf. figure 8 pour un exemple de texte contrôlé utilisant la grammaire).
Prenons comme exemple l’expression temporelle suivante : « tous les 8e jours de
la semaine ». Cette expression représente un modèle conforme à son métamodèle
mais est sémantiquement incorrecte : le rang d’un jour au sein d’une semaine est
compris entre 1 et 7. Ici l’intervalle dans lequel le rang doit être compris n’est pas
spécifié à l’aide d’une cardinalité mais par la valeur d’un attribut du modèle de
classes. Ainsi les contraintes de cardinalité ne sont pas ici exploitables. D’autres
exemples motivent notre approche comme juger de la validité de l’expression « de
chaque mardi à chaque lundi de la semaine suivante ». Ici, il est nécessaire de
connaître la relation entre « lundi » et « mardi ». Il est donc apparu indispensable de
s’appuyer sur un modèle contenant cette connaissance (sémantique du calendrier)
pour la validation des expressions temporelles.
4.2. Validation syntaxique via une grammaire générée
La grammaire évoquée précédemment offre la possibilité de saisir des
événements et des expressions temporelles avec un langage contrôlé proche du
langage naturel (Faucher et al., 2010b). Ce vocabulaire est interprétable par une
machine pour produire des instances du métamodèle et, inversement, il est possible
de générer du texte conforme à ce vocabulaire à partir d’instances. Pour cela nous
utilisons l’outil Xtext12 fourni dans l’environnement EMF. La traduction
automatisée et bidirectionnelle est une aide au journaliste qui finalise l’annotation
des informations préalables à l’instanciation des propriétés temporelles d’un
événement. Ainsi ce dernier dispose d’une représentation textuelle des propriétés
(Konrad et al., 2005). L’utilisateur a la possibilité de valider ou corriger les textes et
sauvegarder la nouvelle version de l’expression. L’éditeur facilite la saisie en offrant
une autocomplétion qui propose des fragments de textes utiles. Nous avons
également des contrôles sur les textes avec des règles ETL13 (proche d’OCL14).
La figure 8 montre un exemple de règle de périodicité à l’aide d’un diagramme
d’instances et sa contrepartie textuelle générée. Il décrit l’ouverture d’un magasin :
« du lundi au vendredi, de 10h à 20h sauf le jeudi ». Le texte généré utilise une règle
de périodicité « de 10h à 20h » et une période de validité récurrente « du lundi au
vendredi ». Une exception pour le jeudi est également ajoutée. La taille du modèle
montre ici l’intérêt de la représentation textuelle pour sa concision.
Figure 8. Exemple de règle de périodicité : modèle d’instances et forme textuelle
12. Xtext : http://www.eclipse.org/Xtext/
13. ETL : http://www.epsilon.org
14. OCL : http://www.omg.org/spec/OCL/2.0/
// rule 1: 10 a.m. to 8 p.m. - rule: from each 10th hour to each 20th hour
// from Monday to Friday using a time span as from each Monday to each Friday
// except Thursday except during each Thursday
4.3. Validation sémantique par contraintes associées à un modèle de calendrier
Nous définissons un modèle de calendrier afin d’ajouter de la sémantique aux
éléments calendaires, au-delà d’une simple énumération structurée. Chaque élément
calendaire est décrit comme un événement périodique. Par exemple, l’expression
« une année commence le 1er jour de janvier et se termine le dernier jour de
décembre » utilise des concepts de périodicité. Notre métamodèle permet de définir
des événements avec de telles propriétés, et chaque élément calendaire peut être défini
comme instances de notre métamodèle. Nous traitons ici le calendrier Grégorien, une
approche similaire pourrait s’appliquer aux calendriers Républicain ou Lunaire.
La figure 9 montre la mise en correspondance de l’événement Year représentant
un élément calendaire avec le littéral year de l’énumération CalendarUnit issue du
métamodèle. On utilise la référence refers fournie par la classe Event dont la cible
est un EModelElement du métamodèle d’Ecore. Ainsi on peut accéder à la définition
temporelle d’un élément du métamodèle et vérifier les contraintes où il apparaît. Le
modèle de calendrier est extensible, l’utilisateur peut ajouter de nouvelles règles, ce
qui peut renforcer l’évaluation d’une contrainte. Une première version du calendrier
peut définir la notion d’année bissextile comme ayant lieu « tous les 4 ans », puis
l’expert du domaine pourra ajouter « sauf tous les 100 ans ».
Figure 9. Relation entre un événement et un élément du métamodèle temporel
4.4. Validation sémantique à l’aide de contraintes et du modèle de calendrier
Nous considérons la validation sémantique d’un modèle comme le résultat de
l’évaluation d’un ensemble de contraintes qui mettent en jeu plusieurs métamodèles
(cf. figure 10).
Figure 10. Ressources mises en œuvre dans le processus de validation
Métamodèle Contraintes
Modèle de calendrier Modèle à valider
<<enum>>
Evénements
réfère
conforme à
utilise
//Evénement périodique représentant une année
rule: from each 1st day of each January
to each last day of each December
rule "year": 100 times during each century
réfère
Elles s’appliquent sur le métamodèle temporel et nécessitent un accès au modèle
de calendrier selon la dépendance utilise. Cette navigation entre les modèles est
difficile à mettre en œuvre en OCL ; Noguera et Duchien (2008) utilisent une
technique d’expression de contraintes à travers des annotations. Nous avons préféré
définir nos contraintes comme des opérations codées avec Java et utilisant des
bibliothèques d’EMF pour accéder au modèle de référence.
Comme exemple considérons deux expressions à valider afin de mettre en œuvre
l’approche décrite ci-avant :
1. chaque 8e jour de chaque semaine (each 8th day of each week)
2. chaque 8e jour de chaque mois (each 8th day of each month)
La 1re
expression est incorrecte car le modèle de calendrier stipule qu’une
semaine possède au plus 7 jours. En revanche, la 2e expression est correcte car un
mois a 31 jours au plus. La figure 11 montre la mise en œuvre de la validation de la
1re
expression.
Nous définissons une contrainte sur la classe DescriptorRule pour déterminer la
validité des expressions telle que : descn.rang <= freq( descn.unité, descn+1.unité).
La contrainte possède une fonction freq prenant en paramètres les unités de deux
descripteurs successifs. Cette fonction retourne la fréquence définie dans le modèle
de référence et associée au couple d’unités de descripteurs. Pour le couple (jour,
semaine) : freq(day, week) = 7. Ainsi le rang de l’expression à valider doit être
inférieur ou égal à 7. Dans l’exemple, le rang de l’expression à valider a pour valeur
8, donc une erreur sera signalée car 8 > freq(day, week).
Figure 11. Exemple de contrainte utilisant le modèle de calendrier
5. Configuration et génération d’une application de visualisation
spatio-temporelle d’événements
Afin de visualiser les événements saisis ou générés, une tâche du projet RMM2
visait à fournir une application web de visualisation d’événements. L’objectif est de
produire une application facilement configurable et maintenable pour réduire les
développements notamment lors de mises à jour. Cette section présente les aspects
majeurs de la démarche IDM définie pour ce travail dans un contexte d’évolution
fréquente des composants graphiques utilisés.
Expression à valider sémantiquement : each 8th day of each week
Extrait du modèle de calendrier
// jours par semaine :
rule "day": 7 times during one 1 weeks period
desc n desc n+1
5.1. Les besoins en IDM pour la sélection de données et la génération
d’applications web
Les applications web deviennent de plus en plus élaborées grâce à l’usage de
bibliothèques de composants offrant des fonctionnalités avancées pour la
visualisation des données. Avec ce type de bibliothèque une partie importante du
travail de développement porte sur l’intégration de données c’est-à-dire la sélection
et la structuration des données fournies à ces composants.
Les données visualisées dans ces applications peuvent provenir de différentes
sources : bases de données relationnelles, bases de connaissances (points
d’interrogation SPARQL) ou flots XML. Il est rarement pertinent de visualiser
l’ensemble des données disponibles. Un travail de réorganisation, de sélection et de
fusion est nécessaire. Pour cela, nous considérons deux métamodèles : le
métamodèle d’événements (M2_TemporalEvents) et celui de contenu (content) (cf.
figure 12). Le métamodèle M2_TemporalEvents représente l’ensemble des données
provenant de différentes sources sur lesquelles s’opère la sélection des données. Le
métamodèle Content correspond aux données visualisées. Le passage de l’un à
l’autre a été mis en œuvre à l’aide d’une transformation de modèles.
Figure 12. Métamodèles pour la publication d’événements
Comme différentes bibliothèques peuvent être utilisées pour la visualisation, un
de nos objectifs est d’offrir au développeur de l’application à la fois de la flexibilité
et la possibilité de réutiliser des modèles. Pour cela, nous proposons un ensemble de
métamodèles associés à une application web traitant de différentes préoccupations :
contenu visualisé, composants employés et disposition graphique utilisée avec leurs
inter-relations (cf. figure 12). Nous ne nous sommes pas intéressés à l’aspect
navigation car notre interface est constituée d’une seule page. Similairement à
d’autres approches (Koch et al., 2008 ; Rossi et al., 2008) nous avons introduit un
métamodèle de composants (Widgets) et un métamodèle de disposition (Layout).
Pour la liaison entre les composants et les données, nous utilisons un métamodèle de
correspondance nommé « Widget_Content ». Les liens entre les composants et les
définitions de disposition sont stockés comme instances du métamodèle
« Widget_Layout ». Cette architecture rend facilement réutilisable chacun des
modèles instances des métamodèles pour produire des familles de configuration sans
nécessiter la recréation totale des modèles.
Les composants utilisés sont écrits en JavaScript. Leurs propriétés sont décrites
dans des métamodèles automatiquement construits par analyse de leur code source.
Les techniques de l’IDM assurent l’automatisation de la production de données.
Nous démontrons la mise en œuvre en utilisant la bibliothèque Simile Exhibit15
permettant de publier des informations structurées à partir de serveurs web. Notre
approche, nommée MODSEA (MOdel Driven engineering for Simile Exhibit
Application16), est donc orientée-modèle et en utilise différentes facettes :
– la métamodélisation pour abstraire les concepts utilisés et ainsi les gérer via
des métamodèles et modèles ;
– des transformations de modèles pour traduire les concepts d’un métamodèle
source vers un métamodèle cible ;
– la composition de modèles (Clarke, Walker, 2001) pour construire de manière
incrémentale un des métamodèles présentés par la suite ;
– la génération de code avec des patrons prenant en entrée des modèles.
5.2. Le métamodèle de composants graphiques
Le métamodèle de composants Widgets permet de configurer les composants
utilisés dans l’application web. Le métamodèle de composants est dual, une partie est
consacrée aux propriétés communes (métamodèle CWidget) et l’autre partie concerne
les attributs spécifiques (métamodèles SWidget). CWidget a pour classe racine Widget,
super-classe des différents types de composants (Timeline, Filter, etc.).
La partie spécifique (SWidget) est représentée par un ensemble de métamodèles
de composants (un par bibliothèque) définissant chacun les propriétés spécifiques du
composant concerné. Pour intégrer ces métamodèles au métamodèle CWidget, un
processus de composition de modèles est utilisé pour produire le métamodèle
complet Widgets (cf. section 5.3).
Lorsqu’une nouvelle version d’une bibliothèque est publiée, de nouveaux
composants peuvent apparaître ou certains peuvent être mis à jour (ex. ajout d’un
nouveau paramètre de configuration). Si le développeur souhaite utiliser ces
améliorations, il convient de mettre à jour Widgets. Si les nouvelles versions sont
fréquentes, il est difficile de réaliser des vérifications continues et de modifier
manuellement le métamodèle Widgets. Ainsi une extraction automatique des
propriétés de configuration permet de maintenir Widgets à jour.
15. Simile Exhibit : http://www.simile-widgets.org/exhibit/
16. MODSEA : http://relaxmultimedia2.univ-lr.fr/
Le développement de bibliothèques comme Simile Exhibit ou Ext JS17 est réalisé
en JavaScript. Leur structure et l’information qu’elles contiennent permettent à un
programme de les analyser et d’extraire suffisamment d’informations pour déduire un
modèle de configuration pour chacun des composants (SWidget). Ainsi nous
proposons de faciliter l’évolution du métamodèle Widgets en générant ses parties
spécifiques SWidget. Un composant peut être défini par une série de propriétés,
notamment dans un objet JSON (JavaScript Object Notation) pour Simile Exhibit (cf.
figure 13a) ou bien encore par des annotations dans le cas d’Ext JS (cf. figure 13b).
Exhibit.TimelineView_settingSpecs = {
"topBandHeight": { type: "int", defaultValue: 75 },
"topBandUnit": { type: "enum", choices:
Exhibit.TimelineView._intervalChoices },
"colorCoder { type: "text", defaultValue: null },
"selectCoordinator" { type: "text", defaultValue: null }
};
(a) Extrait de descriptions JSON pour un objet Timeline de Simile Exhibit
@cfg {Boolean} rootVisible false to hide the root node (defaults to
true)
@cfg {Object} dragConfig Custom config to pass to the {@link
Ext.tree.TreeDragZone} instance
@cfg {String} hlColor The color of the node highlight (defaults to
C3DAF9)
(b) Extrait de la configuration pour un objet TreePanel d’Ext JS
Figure 13. Extraits de définitions de paramètres pour configurer
les composants graphiques
À partir des propriétés analysées, un SWidget est généré pour chacun des
composants. Pour cela plusieurs étapes sont nécessaires et la figure 14 présente ce
processus. Tout d’abord, nous avons défini un métamodèle nommé ExhibitWidget
qui a pour but d’abstraire la bibliothèque Simile Exhibit. Ce métamodèle exprime
les différents types de composants graphiques i.e., WidgetType (des instances de
WidgetType seront Timeline, Filter, etc.) et les différents types de propriétés de
configuration que peut posséder un tel composant : ex. topBandHeight.
Le métamodèle ExhibitWidget est instancié lors de l’extraction des propriétés,
puis ces instances sont transformées en métamodèles SWidget via un mécanisme de
promotion de modèle. Nous utilisons la promotion de modèle car nous sommes ici
capables de traduire la totalité des concepts du métamodèle de configuration de
composant en concepts Ecore.
17. Ext JS : http://www.sencha.com/products/extjs/
Figure 14. De la spécification de la bibliothèque Exhibit au modèle Widgets
de configuration de l’application web
5.3. Construction incrémentale du métamodèle de composants par compositions
de modèles successives
Comme annoncé en section 5.2, afin de rendre MODSEA adaptable aux futurs
ajouts et améliorations de Simile Exhibit, la construction du métamodèle Widgets est
réalisée avec une approche générative : la composition de modèles. Le métamodèle
Widgets est basé initialement sur des éléments communs CWidget (cf. figure 15 :
Widget, View, Lens) et onze métamodèles SWidget issus de onze composants
Exhibit. Les SWidget sont intégrés successivement au métamodèle Widgets à l’aide
du moteur de composition de modèles Kompose (Fleurey et al., 2007). Pour mettre
en œuvre une composition de modèles, il est nécessaire d’identifier les concepts
communs aux modèles qui seront utilisés comme points de jonction (Clarke,
Walker, 2001) pour fusionner les modèles.
Avec Kompose, cette identification utilise une approche fondée sur les
signatures (Reddy et al., 2005). Ainsi la signature d’une classe Ecore correspond à
son nom qualifié (packageName::ClassName), cette signature étant suffisante pour
identifier les classes à composer et, par conséquent, les points de jonction. Pour
l’utilisateur aucune opération d’identification n’est à réaliser car la mise en
correspondance des signatures est assurée par Kompose.
La figure 15 montre un extrait du résultat du processus de composition de
modèles pour le composant TimelineView. Ainsi, le SWidget dédié à TimelineView a
été intégré dans Widgets en utilisant les points de jonction représentés par les classes
Ecore : AbstractTimeline, IconCoder and ColorCoder (éléments sur fond noir). Ce
sont les signatures de ces trois classes qui permettent l’identification des points
communs entre le métamodèle global Widgets et le spécifique SWidget. La classe
TimelineView, la relation d’héritage d’AbstractTimeline et les références iconCoder
et colorCoder (éléments en gras) ont été ajoutés par Kompose.
conforme à
M2 ExhibitWidget
Modèles de
ExhibitWidget
M2 Widgets
CWidget
SWidget
promotion
Modèle de Widgets pour configurer l’application
conforme à
Simile Exhibit
Exhibit.TimelineView_setti
ngSpecs = {
"topBandHeigh
t": { type:
"int",
defaultValue:
75 }
}
Figure 15. Résultat de la composition de modèles pour le composant Timeline
Lorsqu’une nouvelle version de Simile Exhibit est disponible, le processus de
génération du métamodèle Widgets peut être lancé afin de préserver la cohérence
avec cette nouvelle version. Aucune modification complémentaire n’est nécessaire.
Le concepteur définit son application en instanciant le métamodèle Widgets et en
choisissant les composants graphiques qu’il souhaite intégrer dans l’application
finale. Ensuite une transformation de modèles applique des patrons de code HTML
pour générer l’application, nous ne montrons pas ici le processus dans sa totalité
faute de place, mais la figure 5 montre un exemple d’application générée par l’AFP.
6. Expérimentation du processus : de l’annotation des dépêches
à la visualisation des événements dans une interface web
Afin d’évaluer nos approches, nous avons pris pour référence des corpus de
dépêches provenant des sociétés partenaires de ce projet. Dans cette section nous
décrivons deux expérimentations : la première concerne le traitement d’expressions
temporelles décrivant des périodes d’accès en intension ; la seconde a pour objet la
mise en œuvre du processus MODSEA pour fournir des applications de visualisation
d’événements fonctionnant sur différentes plateformes.
6.1. Des textes annotés aux instances du métamodèle d’événements
Comme nous l’avons présenté précédemment, un des objectifs de l’environnement
de production est de transformer des textes en langage naturel annoté en textes
utilisant un vocabulaire contrôlé (grammaire). Ce processus est une succession de
transformations de modèles (Faucher et al., 2010c), supervisées par un acteur humain,
permettant de passer du texte initial annoté à des informations garanties cohérentes,
enrichies de métadonnées et de propriétés temporelles calculables.
Ce processus a été mis en œuvre sur un corpus d’expressions temporelles
(513 exemples) sélectionné par l’agence Relaxnews. Ces expressions décrivent des
périodes d’accessibilité à des lieux publics. Cette phase d’expérimentation a permis
d’affiner les phases d’annotation et de validation. En effet, des expressions correctes
pour l’annotation peuvent être incomplètes pour le métamodèle temporel, i.e. des
incohérences d’unités comme, l’emploi successif de la même unité : « chaque 3e
jour de chaque mardi de chaque semaine ». Ici, « 3e jour » et « mardi » ont la même
résolution temporelle.
Le jeu de tests de référence18 pour notre transformation fournit, pour chaque
exemple, le modèle de période d’accès correspondant. Celui-ci est directement issu
des annotations réalisées avec les extracteurs de MoDyCo. Nous donnons également
le résultat de la transformation qui est une instance de notre métamodèle
d’événements. La dernière colonne donne le résultat de la validation. L’exemple 30
montre l’intérêt de la validation du coté modèle. En effet, l’expression « dimanche à
16h30 » doit être comprise comme un événement qui aura lieu « tous les dimanches
à 16h30 ». Or la phase d’annotation a interprété l’expression 30 comme un
événement commençant « tous les dimanches » et se terminant « tous les jours à
16h30 ». Les invariants et les vérifications réalisées lors de la transformation
permettent de détecter une erreur signalant un problème de granularité entre le début
et la fin de l’expression. Une instance du métamodèle temporel est cependant créée
pour permettre à l’expert de corriger l’expression.
Deux autres transformations de modèles ont été développées pour obtenir des
instances du modèle pivot à partir, soit d’événements au format EventsML-G2, soit
d’événements issus de flux RSS. Nous avons traité les flux RSS de la « FNAC
Spectacle19 » et de « l’Équipe20 ». Dans les flux RSS, les informations intéressantes,
pour la création d’événements, figurent dans les balises item. Celles-ci sont
analysées puis transformées en événements simples ou complexes en fonction du
nombre de propriétés temporelles capturées dans un même item.
18. Tests AP2TOM : http://relaxmultimedia2.univ-lr.fr/ap2tom/benchmark.html
19. FNAC Spectacle : http://www.fnacspectacles.com/rss/?flux=famille&famid=1MC
20. L’Equipe : http://www.lequipe.fr/Xml/actu_rss.xml
6.2. Famille d’applications web
Nous avons utilisé la démarche MODSEA pour configurer et générer des
applications web dans le but de visualiser des flux d’événements provenant des
agences Relaxnews et AFP. Nous utilisons ici le terme de famille d’applications web
car nous avons configuré et généré plusieurs applications partageant des modèles
communs. La figure 16 montre deux de ces applications avec les mêmes modèles
Content et Widgets nécessaires à leur génération. Ainsi, la définition d’une application
est le résultat de la combinaison des modèles Content, Widgets et Layout.
Figure 16. Famille d’applications web pour la visualisation d’événements21
7. Conclusion et perspectives
Dans le travail présenté, l’IDM a un rôle central. Dans la première partie du
projet, le nombre important de concepts liés à la notion d’événement journalistique a
pu être structuré et validé par l’ensemble des partenaires via une collection de
métamodèles définissant le domaine métier. L’IDM a permis l’intégration de normes
existantes dans ces modèles par extension. À partir de ces métamodèles, l’IDM nous
a fourni des outils permettant :
– d’importer et d’exporter les événements sous différents formats (NewsML-G2,
JSON), en utilisant principalement des transformations de modèles développées
avec Kermeta ;
– de créer une syntaxe concrète pour la représentation des événements dans un
langage proche du langage naturel via l’utilisation de Xtext. Les retours
d’expérience des journalistes montrent que ce langage facilite la compréhension des
informations saisies notamment via une reformulation des expressions temporelles ;
– de développer un processus de validation original pour les expressions
temporelles périodiques, fondé sur des règles exploitant les informations présentes à
la fois dans un métamodèle et dans un modèle externe. La complexité inhérente au
métamodèle d’expression temporelle a ainsi pu être contrôlée en exploitant les
informations contenues dans un modèle de calendrier, lui-même étant représenté
21. MODSEA : http://relaxmultimedia2.univ-lr.fr/modsea/
sous forme d’événements calendaires périodiques. Ce travail a permis de mettre en
évidence les limitations d’OCL pour exprimer des contraintes entre différents
niveaux de modélisation.
Bien que la mise en œuvre de ces outils n’ait pas toujours été simple, le temps
gagné nous a permis de prototyper rapidement le processus de saisie et de validation
des événements avec un effort particulier sur l’expression temporelle. Ce
prototypage a permis ainsi aux journalistes de tester la saisie de nombreuses
expressions temporelles, ce qui nous a conduits en retour à pouvoir raffiner le
pouvoir d’expression de la temporalité. Le processus global, allant de l’extraction
d’information à l’instanciation du métamodèle d’événements, a été testé et validé
sur un jeu d’expressions fourni par l’agence Relaxnews.
Parallèlement aux développements liés au métamodèle métier, nous avons
développé un ensemble de métamodèles et les transformations associées pour créer
une interface graphique dédiée à la visualisation d’événements. De plus l’IDM a
permis de conceptualiser les bibliothèques de composants utilisées, en nous rendant
relativement indépendant des spécificités de la bibliothèque choisie.
Remerciements
Ce travail est financé par le programme ANR « Contenus et Interactions ».
Bibliographie
Allen J. F. (1983). Maintaining knowledge about temporal intervals. Communications of the
ACM, vol. 26, n° 11, p. 832-84.
André C., De Antoni J., Mallet F., Simone R. (2010). The Time Model of Logical Clocks
Available in the OMG MARTE Profile. Synthesis of Embedded Software, S. K. Shukla,
J.-P. Talpin (eds), Springer US, p. 201-22.
André C., Mallet F., de Simone R. (2007). Modeling Time(s). Models’07, G. Engels,
B. Opdyke, D. Schmidt, F. Weil (eds), vol. 4735 of Lecture Notes in Computer Science,
Springer Berlin/Heidelberg, p. 559-573.
Battistelli D., Couto J., Minel J.-L., Schwer S. R. (2008). Representing and Visualizing
Calendar Expressions in Texts. Semantics in Text Processing. STEP 2008 Conference
Proceedings, vol. 1 of Research in Computational Semantics, J. Bos, R. Delmonte (eds),
College Publications, Venice, Italy, p. 365-373.
Carnap R. (1947). Meaning and Necessity. University of Chicago Press.
Clarke S., Walker R. J. (2001). Composition Patterns: An Approach to Designing Reusable
Aspects. ICSE 2001, IEEE Computer Society, Washington, DC, USA, p. 5-14.
Dawson F., Stenerson D. (1998). Internet Calendaring and Scheduling Core Object
Specification (iCalendar) - RFC2445.
Faucher C., Lafaye J.-Y., Bertrand F. (2012). Putting Non Convex Interval Mutual Relation
Models into Practice. Rapport de Recherche, Université de La Rochelle, France, p. 22,
http://hal.archives-ouvertes.fr/hal-00685182.
Faucher C., Chea S., Bertrand F., Lafaye J.-Y. (2011). Validation sémantique d’objets à l’aide
D’un modèle de référence et de contraintes. IDM 2011, Lille, France, p. 109-113.
Faucher C., Bertrand F., Lafaye J.-Y. (2010a). Génération d’un métamodèle de composants
graphiques à partir de la spécification d’une bibliothèque de composants Web. Atelier
IDM-IHM, Pau, France.
Faucher C., Lafaye J.-Y., Bertrand F., Teissèdre C. (2010b). Modélisation et reformulation
d’expressions temporelles extraites de textes en langage naturel. AFADL 2010,
Futuroscope-Poitiers, France, p. 213-216.
Faucher C., Teissèdre C., Lafaye J.-Y., Bertrand F. (2010c). Temporal Knowledge
Acquisition and Modeling. EKAW 2010, vol. 6317 of LNCS (LNAI), Springer-Verlag,
Lisbon, Portugal, p. 371-380.
Faucher C., Tissot C., Lafaye J.-Y., Bertrand F., Brosset D., Rouan M. (2010d). Location- and
temporal-based services for nature-society interaction regulation. Journal of Location
Based Services (JLBS), vol. 4, n° 3-4, p. 147-165.
Faucher C., Bertrand F., Lafaye J.-Y. (2008). Génération d’ontologie à partir d’un modèle
métier UML annoté. RNTI, vol. E, n°12, p. 65-84.
Fleurey F., Baudry B., France R., Ghosh S. (2007). A Generic Approach For Automatic
Model Composition. Aspect Oriented Modeling Workshop, Nashville, USA, p. 7-15.
Koch N., Knapp A., Zhang G., Baumeister H. (2008). UML-Based Web Engineering: An
Approach Based on Standards. Human-Computer Interaction Series, vol. 12, p. 157-191.
Konrad S., Cheng B. H. C. (2005). Real-time specification patterns. ICSE 2005, p. 372-381.
Ligozat G. (1991). On generalized interval calculi. AAAI-91, p. 234-240.
Mallet F., De Antoni J., André C., de Simone R. (2010). The clock constraint specification
language for building timed causality models. Innovations in Systems and Software
Engineering, vol. 6, n° 1, p. 99-106.
Moha N., Sen S., Faucher C., Barais O., Jézéquel J.-M. (2010). Evaluation of Kermeta for
Solving Graph-based Problems. STTT, vol. 12, n° 3-4, p. 273-285.
Muller P.-A., Fleurey F., Jézéquel J.-M. (2005). Weaving Executability into Object-Oriented
Meta-Languages. MODELS/UML’2005, S. K. L. Briand (ed.), vol. 3713 of LNCS,
Springer, Montego Bay, Jamaica, p. 264-278.
Noguera C., Duchien L. (2008). Annotation Framework Validation using Domain Models,
ECMDA 2008. vol. 3844 of LNCS, p. 584-600.
Pan F., Hobbs J. R. (2005). Temporal Aggregates in OWL-Time. FLAIRS 2005, p. 560-565.
Pustejovsky J., Lee K., Bunt H., Romary L. (2010). ISO-TimeML : An International Standard
for Semantic Annotation. Proceedings of the 7th conference on International Language
Resources and Evaluation (LREC’10), ELRA, Valletta, Malta, p. 394-397.
Pustejovsky J., Knippen R., Littman J., Sauri R. (2005). Temporal and Event Information in
Natural Language Text. Language Resources and Evaluation, vol. 39, n° 2-3, p. 123-164.
Reddy R., France R., Ghosh S., Fleurey F., Baudry B. (2005). Model Composition - A
Signature-Based Approach. Aspect Oriented Modeling Workshop, Montego Bay, Jamaica.
Rossi G., Pastor O., Schwabe D., Olsina L. (2008). Web Engineering: Modelling and
Implementing Web Applications. Human-Computer Interaction Series, vol. 12, Springer
Verlag.
Teissèdre C., Battistelli D., Minel J.-L. (2010). Resources for Calendar Expressions Semantic
Tagging and Temporal Navigation through Texts. Proceedings of the 7th conference on
International Language Resources and Evaluation (LREC’10), ELRA, Valletta, Malta,
p. 3572-3577.
Cyril Faucher est doctorant en informatique depuis 2009 au laboratoire L3i de
l’Université de La Rochelle. Ses travaux abordent la modélisation et la gestion de données
temporelles d’événements périodiques en lien avec l’e-Tourisme. Ses domaines d’intérêt sont
l’ingénierie logicielle, l’IDM et la gestion des connaissances. Auparavant il a été, pendant
près de 3 ans, ingénieur expert dans l’équipe INRIA Triskell à l’IRISA dans le cadre du projet
OpenEmbeDD.
Frédéric Bertrand est enseignant-chercheur en informatique au laboratoire L3i et au
département informatique de l’Université de La Rochelle depuis 1997. Ses thèmes de
recherche portent sur la mise en correspondance d’informations issues de modèles objets et
d’ontologies. Il travaille également sur la modélisation temporelle d’événements récurrents.
Il a été responsable, pour le L3i, du projet RIAM Relaxmultimedias 1 et co-responsable du
second projet Relaxmultimedias.
Jean-Yves Lafaye est professeur au laboratoire L3i de l’Université de La Rochelle
depuis 2000. De manière générale ses activités de recherche et d’enseignement se
développent dans les domaines de la modélisation formelle et semi-formelle des systèmes et
des connaissances. Depuis quelques années, il s’intéresse plus particulièrement à la
représentation et au traitement des informations spatio-temporelles, tant du point de vue
théorique qu’applicatif.
Denis Teyssou est responsable éditorial du Médialab de l’Agence France-Presse, unité
de R&D transdisciplinaire dédiée à la veille et à l’innovation (procédés et produits) depuis
2007. Il participe à ce titre à plusieurs projets européens et français (FUI et ANR) dans le
domaine de la structuration et de la visualisation de l’information comme Glocal (UE,
organisation des médias selon les événements), EDyLex (enrichissement dynamique de
ressources lexicales), Samar (plateforme multimédia en arabe), ChronoLines (chronologies
événementielles multimédia) et OTMedia (observatoire transmedia, analyse de la
propagation de l’information).
Mathieu Bully est directeur technique de l’agence de presse Relaxnews spécialisée dans
l’actualité des loisirs depuis 2005. Il définit et met en place les technologies et architectures
des SI, pilote les projets web/mobile/print, participe aux phases d’avant-vente et de
construction d’offres. Il définit également la stratégie R&D et, dans ce cadre, a piloté les 2
projets RIAM et ANR Relaxmultimedias 1 et 2. Auparavant, il avait participé à la conception
et la réalisation de l’intranet du ministère de la Justice (MODALIN) au sein de la SSII CGBI
puis au service de l’information et de la communication du ministère de la Justice.