Résumé Ce rapport traite du problème de la définition d’une ontologie d’événements vidéos utilisables par une plate-forme d’interprétation automatique de séquences vidéos.. CHAPITRE 1:
Trang 1Mémoire de fin d’études
Ontologie d’événements vidéos pour un
système automatique d’interprétation vidéo
Réalisé par
PHAM Le Son
Sous la direction de
Monique THONNAT Nicolas MAILLOT
Sophia-Antipolis, Septembre 2004
Trang 2Merci également à Thanh Le Bach et Fabient Gandon de l’équipe ACACIA pour leurs conseils précis et les discussions intéressants que j’ai eu avec eux
Enfin, je tiens à remercier l’Institut de la Francophonie pour l’informatique – IFI qui m’a aidé à effectuer mon stage de fin d’étude à l’INRIA Sophia Antipolis
Trang 3
Résumé
Ce rapport traite du problème de la définition d’une ontologie d’événements vidéos utilisables par une plate-forme d’interprétation automatique de séquences vidéos Une grande difficulté dans la construction d’une telle otologie est qu'il n'y a pas encore une plateforme standard Pour résoudre ce problème, les ontologies sont formalisées dans le langage VERL (Video Event Representation Language) Au lieu d’utiliser XML pour représenter les ontologies comme l’auteur de VERL, nous avons transformé des expressions de VERL sur OWL (Web Ontology Language) Grâce à cela, l'ontologie a un sémantique clair et peut être plus facilement partagée
et réutilisée entre des communautés Nous avons créé également un outil graphique d'acquisition
de connaissance, utilisant cette ontologie, pour aider les experts à définir des événements d'intérêt dans des domaines d’application spécifiques A l’aide de l’ontologie d’événements vidéos, un expert peut créer, gérer et manipuler des événements complexes relatifs à son domaine Cette 'outil est utilisé pour définir les événements vidéos dans l'application de la surveillance en agence bancaire Malgré des résultats prometteurs, il reste encore des problèmes non résolus, par exemple, comment enfoncer l'ontologie dans les moteurs d'inférence disponibles dans les cadres standard de représentation tels que SWRL (Semantic Web Rule Language)
Trang 4Abstract
In the thesis, we propose an event ontology that can be used for an Automatic Video Interpretation system The main obstacle is that there is no standard framework for defining event ontologies To solve this issue, we first use the VERL (Video Event Representation Language) to describe the ontology as a formalization step Then, these concepts are transformed in OWL (Web Ontology Language), a standard language of ontology So, the ontology not only has a clear semantic but also can be shared and reused among communities easily We also introduce a graphical ontology-based knowledge acquisition tool which allows the domain experts to understand, manage and manipulate events of interest for video interpretation The tool is used to define video events in the banking monitoring application Despite of promising results, however, there are still open problems needed further researches, for example, how to embed the ontology in the inference engines available in standard representation frameworks such as SWRL (Semantic Web Rule Language)
Key words
ontology, video event, OWL, VERL, knowledge representation, knowledge acquisition
Trang 5Table des matières
CHAPITRE 1: INTRODUCTION 8
1.1 Contexte du travail 8
1.2 VSIP : Un système automatique d'interprétation vidéo 8
1.3 Langage de Description de Scénarios de l’équipe ORION 9
1.4 Objectifs 10
1.5 Contenu du rapport 10
CHAPITRE II: ETAT DE L’ART 11
2.1 L'ontologie 11
2.1.1 La notion d’ontologie 11
2.1.2 Pourquoi construire des ontologies ? 11
2.1.3 Le processus de création d’une ontologie 12
2.1.4 Vue d'ensemble des langages d'ontologie 14
2.2 La représentation d’événements vidéos 16
2.2.1 Revue de la bibliographie de la représentation d’événements vidéos 16
2.2.2 VERL : Une langage de la représentation d’événements vidéos 17
2.3 Conclusion 18
CHAPITRE 3 : ONTOLOGIE D’EVENEMENTS VIDEOS 19
3.1 Vue d’ensemble de la méthodologie 19
3.2 Conceptualisation du domaine 19
3.2.1 Des objets physiques 19
3.2.2 Relations spatiales 20
3.2.3 Etats et événements vidéo 21
3.2.4 Relations temporelle 21
3.3 Représentation des événements sur VERL 21
3.3.1 Définition hiérarchique des concepts 22
3.3.2 Représentation des états et événements sur VERL 22
3.4 L’implémentation de l’ontologie sur OWL 23
CHAPITRE 4 : UN OUTIL D’ACQUISITION DE CONNAISSANCES 26
4.1 Structure de l’outil 26
4.2 Fonctionnalités de l’outil 26
4.3 Etude de cas : la représentation de l’événement de l’attaque en agence bancaire 27
4.4 Résultat obtenu 29
CHAPITRE 5: CONCLUSION & PERSPECTIVES 30
5.1 Conclusion 30
Trang 65.2 Perspectives 30
BIBLIOGRAPHIE 31
ANNEX : REPRESENTATION DE L’ONTOLOGIE SUR VERL 33
Trang 7Table des figures
Figure 1 : Structure simplifiée d’une plate-forme d’interprétation vidéo 8
Figure 2 : Structure du système automatique d'interprétation vidéo VSIP 9
Figure 3 : Le cycle de vie d’une ontologie 12
Figure 4 : Exemple de représentation XML 14
Figure 5 : Exemple de représentation RDF 14
Figure 6 : Représentation d’un graphe de triplets 15
Figure 7 : Exemples d’objets physiques 20
Figure 8 : Exemple des relations spatiales 20
Figure 9 : L’arbre des objets physiques (a) et l’arbre des relations spatiales et temporelles (b) 26
Figure 10 : La fenêtre principale de l’outil 27
Figure 11 : Définition d’un objet physique 27
Figure 12 : Définition d’un composant 28
Figure 13 : Définition une contrainte 28
Figure 14 : Détection de l'événement de l’attaque en agence bancaire utilisant des scénarios définis par l’outil graphique 29
Figure 15 : L’événement vidéo attaque en agence bancaire obtenu grâce à l’outil d’acquisition de connaissances 29
Trang 8CHAPITRE 1: NTRODUCTION
1.1 Contexte du travail
Depuis plusieurs années, une partie de l'équipe Orion de l'Inria Sophia-Antilolis concentre ses efforts sur la construction d’une plate-forme d'interprétation automatique de séquences vidéos pour la reconnaissance de comportements humains (ex situation de violence, attaque en agence bancaire) Une version simplifiée d’une plate-forme d'interprétation automatique de séquences vidéos est donnée dans la figure 1 L’objectif de ce système est de reconnaître des événements vidéos définis à priori à partir d’un flux vidéo
Figure 1 : Structure simplifiée d’une plate-forme d’interprétation vidéo
Lors de la construction d’une plate-forme d’interprétation vidéo, un des problèmes rencontré est celui de la représentation et de la définition d’événements vidéos d’intérêt
Dans la plate-forme de l’équipe (VSIP), la définition d’événements vidéos se fait actuellement par le biais d’un langage de description qui n’est facile d’accès pour un non informaticien Pour faciliter ce processus d’acquisition de connaissances, l’équipe s’intéresse à la construction d'ontologies pour représenter les concepts utiles pour la définition d’événements vidéos Il s’agit
de construire une ontologie d'événements vidéos fournissant une base sémantique et un vocabulaire conceptuel consensuel utile pour définir des événements vidéos complexes Cette ontologie d'événements vidéos permet à l'utilisateur de comprendre les termes employés pour décrire des événements vidéos sans être concerné par la problématique du traitement d'image
De plus, l’ontologie d'événements vidéos facilite la communication entre les experts d’un domaine (ex experts de la sécurité en agence bancaire), et les développeurs de systèmes de
interprétation automatique de séquences vidéos Une telle ontologie est également utile pour
partager et réutiliser des modèles d’événements
Enfin, cette ontologie d'événements vidéos est utile pour évaluer les systèmes d'interprétation automatique de séquences vidéos et pour comprendre quels types d'événements ces systèmes sont capable de reconnaître
1.2 VSIP : Un système automatique d'interprétation vidéo
Nous avons introduit nos intérêts sur la construction d’une plate-forme d'interprétation automatique de séquences vidéos pour la reconnaissance de comportements humains Dans cette section, nous allons présenter notre système automatique d’interprétation vidéo
VSIP, le système automatique d'interprétation vidéo de l’équipe ORION est décrit dans la figure
2 Le système prend comme entrée les connaissances à priori comprenant des événements vidéos d’intérêt prédéfinis par des experts, l'information géométrique 3D et la sémantique relative à l’environnement En cours d’utilisation du système, le flux vidéo acquis par une camera constitue une entrée du système Le sortie du système est l'ensemble des événements
Evénements vidéos reconnus
Trang 9vidéos identifiés (ex attaque en agence bancaire) Le module de reconnaissance de scénario est décrit dans [Vu et al 2003]
Notre objectif est de proposer une ontologie d’événements vidéos ainsi qu’un outil d’acquisition
de connaissances afin de faciliter la définition d’événements vidéos d’intérêt Les chapitres 3 et
4 de ce rapport présentent respectivement une ontologie d’événements vidéos et un outil d’acquisition de connaissances
Figure 2 : Structure du système automatique d'interprétation vidéo VSIP
1.3 Langage de Description de Scénarios de l’équipe ORION
Des événements vidéos sont représentes par le Langage de Description de Scénarios développé dans l’équipe ORION
Il y a deux types principaux de concepts : les objets physiques observés dans la scène et les événements vidéos apparaissant dans la scène
• Un objet physique peut être un objet statique (ex bureau) ou un objet mobile (ex personne, voiture)
• Un événement vidéo peut être un état primitif, état composite, événement primitif ou événement composite Les états primitifs sont des atomes nécessaires pour la construction d’événements complexes utilisables par la plate-forme d’interprétation automatique de séquences vidéos de l’équipe ORION
Un même événement peut être regardé à différentes granularités spatiales et temporelles Par exemple, un homme courant dans un Marathon peut être vu comme un état (il court) ou comme événement composé La granularité choisie indique les propriétés d'intérêt pour l'utilisateur
La syntaxe pour définir un état ou un événement se compose trois parties :
PhysicalObjects: déclare les objets physiques concernant le concept Seulement les objets qui
peuvent changer entre les occurrences de concept doivent être déclarés
La connaissance à priori
Information géométrique et sémantique relative à l’environnement
Evénements vidéos d’intérêt définis par des experts
Evénements Vidéos Reconnus
Trang 10Components: déclare tous les composants constituant l’événement vidéo
Constraints: déclare toutes les relations entre les sub-concepts (objets physiques et composants) du concept
L’exemple ci-dessous illustre la représentation de l’état Inside_zone dans le Langage de
Description de Scénarios de l’ORION :
PrimitiveState Inside_zone PhysicalObjects
((p : Person), (z : Zone))
Constraints
(p in z)
Un autre exemple, l’événement Changes_zone est définit en utilisant des états Inside_zone
comme ses composants :
Le but de ce stage de DEPA est d’améliorer le travail de l'équipe Orion sur l’ontologie d'événements vidéos:
• Premièrement, il s’agit d’étendre et d’implémenter dans un langage standard l’ontologie d'événements vidéos existante
• Deuxièmement, il s’agit de construire un outil graphique d'acquisition de connaissances basé sur l’ontologie d’événements vidéos afin de permettre à des experts de comprendre, de contrôler et de manipuler des événements d'intérêt pour leurs domaines d’application
1.5 Contenu du rapport
Ce rapport est organisé comme suit Le chapitre 2 introduit une vue d’ensemble du domaine de l’ontologie ainsi que le problème de la représentation et la définition d’événements vidéos Une ontologie d’événements vidéos est proposée dans la chapitre 3 Le chapitre 4 présente un outil graphique d'acquisition de connaissances destiné à aider les experts d’un domaine à définir des événements d’intérêts Enfin, nous concluons et donnons des perspectives de travail dans le chapitre 5
Trang 11CHAPITRE I: ETAT DE L’ART
Comme nous l’avons expliqué dans l’introduction de ce rapport, notre objectif est de faciliter la définition d’événements vidéos par l’utilisation d’une ontologie d’événements vidéos L’état de l’art proposé dans ce chapitre est structuré en deux parties Une introduction au domaine de l’ontologie est d’abord proposée Ensuite, nous donnons un aperçu des approches existantes dans le domaine de la représentation d’événements vidéos
2.1 L'ontologie
Durant la dernière décennie, l’ingénierie ontologique est devenu un thème de recherche très populaire [Roche, 2003] et joue un rôle de plus en plus important dans différents domaines tels que la recherche intelligente sur le Web, le partage, la gestion et la réutilisation de connaissances
2.1.1 La notion d’ontologie
En informatique, une ontologie a pour but de représenter formellement l’existant La représentation formelle des connaissances est basée sur une étape de conceptualisation La
conceptualisation consiste à identifier un ensemble de concepts ainsi que les relations qui les
relient Une spécification explicite de cette conceptualisation s'appelle une ontologie [Gruber, 1993] Formellement, une ontologie se compose des termes, de ses définitions, des relations et des axiomes [Gruber, 1993]
Selon [Roche, 2003] l’ingénierie ontologique repose sur une approche multidisciplinaire:
• linguistique, comme nous employons des mots pour communiquer;
• théorie de la connaissance, puisque les mots se rapportent à la connaissance qui définit leur signification;
• logique, afin de garantir de la concordance;
• représentation de la connaissance afin d’adresser le problème de la compréhension d’un domaine
2.1.2 Pourquoi construire des ontologies ?
Quelles sont les raisons de développer des ontologies? L’une des motivations principales est de permettre la communication et partager la compréhension commune d’un domaine Ceci, entre des personnes ou des agents de logiciel
Une autre raison importante qui inspire la recherche sur les ontologies est que des ontologies permettent la réutilisation de la connaissance Par exemple, dans le cadre de la représentation d’événements vidéos, plusieurs approches permettent de représenter la notion du temps Il s’agit par exemple des notions d’intervalles de temps, points de temps, mesures relatives du temps Si un groupe de chercheurs développe une telle ontologie, d'autres peuvent simplement
la réutiliser pour d’autres applications
Trang 12Finalement, l'analyse ontologique clarifie la structure de la connaissance [Chandrasekaran et al., 1999] Plus qu’un vocabulaire spécialisé pour un domaine, les ontologies fournissent les conceptualisations des termes du domaine De plus, l'analyse formelle des termes est extrêmement importante pour la réutilisation ou de l’extension d’ontologies existantes
2.1.3 Le processus de création d’une ontologie
Le processus de création d’une ontologie doit être considéré comme un projet Les méthodes de gestion de projet peuvent donc s'appliquer [ Gandon, 2002 ] Un cycle de vie d’une ontologie est proposé dans [Lopez et al, 2000] Trois types d’activités sont identifiés (Figure 3):
• La gestion
• La construction
• Le support
Figure 3 : Le cycle de vie d’une ontologie
L’activité de construction est la partie centrale du cycle, au cours duquel les activités de gestion
et de support participent La construction se compose quatre étapes :
Spécification :
La construction d’une ontologie commence par la définition d’un domaine et de sa portée C’est
à dire, il faut trouver des réponses a des questions comme [Noy et McGuinness, 2001] :
• Quel est le domaine que l'ontologie couvrira?
• Quels sont les buts de l'utilisation de l'ontologie?
Trang 13• A quels types de questions l'information contenue dans l'ontologie devra-t-elle fournir des réponses?
• Qui va utiliser et maintenir l'ontologie ?
Conceptualisation :
La phase conceptualisation a pour but de la structuration des connaissances d’un domaine Cette phase se compose des étapes suivantes:
• D’identifier des concepts, des attributs, et des valeurs dans un Dictionnaire Glossaire
• De classifier des groupes de concepts dans des Arbres de Concepts
• De construire une Table des Relations
• De construire une Table des Instances d’Attributs
• De définir des constantes dans un Table des Constantes
• De construire une Table de Formules
Formalisation :
Une fois le modèle conceptuel structuré, il faut le traduire dans un formalisme formel or informel Grâce à la formalisation, les définitions des concepts sont plus explicites et précises L’objectif est de faciliter l'interprétation de l’ontologie [Uschold et Jasper, 1999] ont proposé quatre niveaux de formalismes d’une ontologie, du haut niveau informel au niveau formel rigoureux Le niveau du formalisme d’une ontologie est choisi selon les besoins et selon le langage d’implémentation de l’ontologie Par exemple, si l’ontologie est un framework pour la communication entre des personnes alors la représentation d’une ontologie peut être informelle Cependant, si l’ontologie est utilisée par les outils logiciels, la représentation doit être plus formelle
Parmi les nombreux langages de formalisation des ontologies, il y a trois grandes familles: les langages à base de frames, les modèles des graphes contextuels et les logiques de description Dans les langages à base de frames, les frames représentent les catégories d’objets et sont dotées d’attributs (slots) Les slots peuvent prendre différentes valeurs Une instance de classe, qui a un identifiant et des attributs uniques est liée à sa classe par le lien « is - a » Les classes sont structurées par un lien hiérarchique « a-kind-of » Flogic [Kifer et al., 1995] est un exemple connu de formalisme qui intègre les langages à base de frames, les formalismes orientés objet et
la logique du premier ordre
Dans le modèle des graphes conceptuels [Chein et Mugnier, 1992] on distingue des niveaux différents Au niveau conceptuel, il peut servir de base à un langage spécialisé de communication entre les spécialistes de différentes disciplines impliquées dans un travail cognitif commun Au niveau d'exécution, il peut servir de base à un outil commun de représentation employé par plusieurs modules d'un système complexe
Les logiques de description sont basées sur la logique prédicat, les réseaux sémantiques et les langages à base de frame Dans le formalisme des logiques de description, les connaissances sont représentées sous forme de concepts, de rôles et d’individus Un concept est une entité générale d’un domaine d’application Les rôles sont des relations binaires entre concepts et les individus sont les instances des concepts Les propriétés des concepts, rôles et individus sont exprimées en logique des prédicats
Implémentation :
Finalement, on doit l’implémenter l’ontologie sur un langage Le langage choisit doit correspondant avec le modèle de formalisation Une introduction brève des langages d’ontologie est présentée dans la session suivante
Trang 142.1.4 Vue d'ensemble des langages d'ontologie
Pour implémenter des ontologies, de nombreux langages ont été utilisés La plupart sont basés sur XML et les logiques de description Dans cette section, nous présenterons brièvement XML, XML Schema, RDF, RDF Schema et OWL qui sont les langages le plus populaires
Figure 4 : Exemple de représentation XML
XML fournit seulement une structure syntaxique pour des documents [Klein, 2004] XML ne permet pas une interprétation sémantique des données
un langage mais un modèle pour représenter des données au sujet de « choses sur l’Internet »
Ce type de données pour données s'appelle des metadonnées Les choses sont des ressources dans le vocabulaire de RDF [Klein, 2004]
RDF est basée sur la notion d'URI (Uniform Resource Identifiers), en décrivant des ressources
en termes de propriétés et de valeurs de propriétés
Trang 15Le modèle de base de données de RDF comporte quatre types d'objets:
Les ressources sont toutes les choses décrites par des expressions de RDF Une ressource peut
varier d’une page entière de Web à un élément d’un document XML
Une propriété est un aspect, une caractéristique, un attribut, ou une relation spécifique employée pour décrire une ressource
La notion de literal est employée pour identifier des valeurs telles que des nombres et des dates
au moyen d'une représentation lexicographique
Un statement se compose d'une ressource spécifique ainsi que d’une propriété plus la valeur de
cette propriété pour cette ressource
Chaque statement est représenté par un triplet qui est se compose d'un sujet (une ressource), d'un attribut (une propriété) et d'un objet (ressource ou un literal) Un ensemble de tels triplets
s'appelle un graphe de RDF La figure 5 représente l’exemple précédant sous la forme d’un graphe de triplets
Comme XML, un modèle RDF ne définit pas (à priori) la sémantique d'un domaine d'application Il fournit seulement un mécanisme d’intermédiaire pour décrire des meta-données Pour définir les propriétés spécifiques d’un domaine ainsi que leur sémantique, il est nécessaire d’utiliser des éléments additionnels
RDF schema fournit un système de type pour RDF Il fournit un mécanisme pour définir des propriétés associées à des classes ainsi que leurs ranges et leurs domaines
Figure 6 : Représentation d’un graphe de triplets
Les primitives pour construire un schéma pour un domaine spécifique sont :
• Les définitions de classe (rdf:Class) de statements rdf:subClassof qui permettent la définition d’hiérarchies de classe
• Les définitions de propriété et les statements rdf :subPropertyof pour créer des hiérarchies
Trang 16Un Langage basé sur les logiques de descriptions et XML : OWL
Une autre famille de langages de représentation de connaissances est construite sur XML et les logiques de descriptions Ces langages sont ainsi compatibles avec des normes standard existantes du Web et en même temps offrent la sémantique des logiques de description Le
principal représentant de cette famille de langages est OWL OWL est devenu une
2.2 La représentation d’événements vidéos
2.2.1 Revue de la bibliographie de la représentation d’événements vidéos
Dans la communauté de la vision par ordinateur, il a y eu beaucoup de recherches destinées à définir et à représenter des événements vidéos Par exemple, les auteurs de [Nagel, 1998] utilisent une hiérarchie de verbes de mouvements, contenant jusqu'à neuf niveaux d'abstraction
de verbes tels que : « changement », « événement », « verbe-phrase », « phase », « historique » Ils proposent également d'utiliser un diagramme de transition à chaque niveau d'abstraction pour représenter la succession des verbes [Nevatia et al, 2003] propose une décomposition hiérarchique des événements et suggèrent l'utilisation des terminologies « single thread » et
« multiple thread »
Concernant les ontologies d'événements vidéos, peu de travaux ont été menés En 2003, l'objectif de trois workshops organisés dans le contexte du programme ARDA (**) était de proposer une ontologie d'événement vidéo pour le domaine de la sécurité Pendant ces workshops, des chercheurs venus de la communauté de la vision par ordinateur et de l'administration américaine ont travaillé ensemble pour proposer une structure d'ontologie d'événements vidéos pour faciliter la construction d’ontologies consacrées aux domaines spécifiques de la sécurité Les chercheurs de la communauté de la vision par l'ordinateur ont proposé six ontologies consacrées à des applications spécifiques de sécurité telles que la surveillance de croisement de chemin de fer L’équipe ORION a participé à ces workshops et a proposé deux ontologies pour la surveillance de banque et de métro [Bremond et al 2004] Ces ontologies ont été définies de manière incrémentale par une interaction avec des utilisateurs, comme par exemple des opérateurs de surveillance de métros et de banques
A la suite des workshops du programme ARDA, Les auteurs de [Nevatia et al., 2004] ont proposé un langage formel de représentation d’événements vidéos ainsi que des ontologies spécifiques pour le domaine de la sécurité Le langage formel proposé s’appelle VERL que on
va voir en détail dans la session suivant
_-
Trang 172.2.2 VERL : Une langage de la représentation d’événements vidéos
VERL (Video Event Markup Language), proposé par des auteurs dans [Nevatia et al., 2004], est
un langage formel pour décrire une ontologie des événements Il est possible de traduire des expressions de VERL dans la logique premier ordre Les expressions dans VERL ont donc une sémantique claire
Objects, états, événements et types
Les notions importantes dans VERL sont objets, états et événements Les objets ont des propriétés ou des attributs qui sont considérées comme des prédicats d'un argument Ils se composent également des relations avec autres objets Nous pouvons penser à ces derniers comme prédicats avec deux ou plus arguments Les propriétés, les attributs, et les relations peuvent être considérés comme des états Un événement est un changement d'état dans un objet
Il y a de trois types basiques dans le langage Tout est une thing (une chose) La thing décrit un état ou un événement, ou une entité telle qu'un objet physique Il y a deux types de things Le type ent comprend des entités, et généralement peut être considéré comme des objets physiques
Le type ev se compose des états et des événements Normalement, une personne serait du type ent, et son action de courir serait du type ev
Expressions dans VERL
Les constantes peuvent être de n'importe quel type prédéfini Un constant ou une variable est
une expression de VERL Une expression de VERL (vexpr) est définie comme ci-dessous: vexpr > constant | variable
Une fonction symbolique qui s'est appliquée au nombre approprié de vexprs comme des arguments est une vexpr:
vexpr > fct "(" [ vexpr { "," vexpr }* ] " )"
Un prédicat symbolique s’est appliqué au nombre approprié d'arguments est une vexpr :
vexpr > pred "(" [vexpr { "," vexpr } * ] " )"
Fait attention que les arguments doivent être du bon type et le résultat est toujours de type ev
Un opérateur logique appliqué au nombre approprié des vexprs de type ev est un vexpr :
vexpr > "AND" "( " vexpr {"," vexpr } * " )" | "OR" " (" vexpr { "," vexpr }* " ) " | "IMPLY" " ( " vexpr "," vexpr " )
| "NOT" " ( "vexpr " ) " | "EQUIV" " ( " vexpr "," vexpr " ) "
Représentation des événements composés
L'opérateur de base pour définir des événements composés est PROCESS Il prend un prédicat
et une vexpr comme ses deux arguments Le prédicat applique au nombre approprié
d'arguments, ó les arguments ont des spécifications optionnel de type
defn > "PROCESS" "(" pred "(" [argspec {"," argspec}* ")" ["," vexpr] ")"
argspec > [type] variable
Par exemple, si nous avons le prédicat located-at reliant une thing à un ent, et un prédicat change reliant deux arguments de type ev, alors nous pouvons définir le prédicat move comme
ci-dessous:
PROCESS(move(thing x, ent y, ent z), change(located-at(x,y),located-at(x,z)))