Discussion sur la plate-forme MIMOSA Jean-Pierre Müller, CIRAD-TERA Équipe "Dynamique et usage des...
-
Upload
renaud-jacquot -
Category
Documents
-
view
106 -
download
1
Transcript of Discussion sur la plate-forme MIMOSA Jean-Pierre Müller, CIRAD-TERA Équipe "Dynamique et usage des...
Discussion sur la plate-forme MIMOSADiscussion sur la plate-forme MIMOSA
Jean-Pierre Müller, CIRAD-TERAÉquipe "Dynamique et usage des ressources
et modélisation des systèmes complexes"
IntroductionIntroduction
TERA-ERE/CORMAS II
ArchitectureArchitecture Fournir les mécanismes de base pour la modélisation et
la simulationNiveau I
Fournir un vocabulaire pour le modélisateur qu’il puisse étendre à volonté
Niveau 2 Fournir un environnement de développement, de
simulation et d’analyse de modèlesNiveau 3
TERA-ERE/CORMAS II
Niveau 2: Un vocabulaire pour le modélisateurNiveau 2: Un vocabulaire pour le modélisateur
Les points de vue Les entités Espace représenté versus espace construit Temps représenté versus temps construit Le niveau méta
Les points de vueLes points de vue
TERA-ERE/CORMAS II
Les points de vue (I)Les points de vue (I) Un point de vue comprend:
Les rôles (ou types d’entité)Les méthodes d’accès aux instances (nommage)
Un modèle ajoute à un point de vue:Les relations (liens statiques)Les interactions (liens dynamiques)Divers descripteurs:– cardinalités, invariants, etc.
TERA-ERE/CORMAS II
Les points de vue (II)Les points de vue (II)RoleType
+getMeasure(i:MeasureInstrument, p:Parameters): Role+sendEvent(e:Event): void
ViewPoint
Model
OrganisationSynonym
Observateur
Modélisateur
Naming
Behaviour
+sendEvent(e:Event): void
RelationNaming
ComposedNaming
+getRole(n:AttributeName): Role
TERA-ERE/CORMAS II
Les rôles (I)Les rôles (I)
Les rôles (ou entités)La capacité d’être mesuréLa capacité de recevoir des influences/évènementsUn ensemble de comportementsComprenant entre autres:– Des instruments de mesure– Des agents– Des horloges
TERA-ERE/CORMAS II
Les rôles (II)Les rôles (II)
RoleType
+getMeasure(i:MeasureInstrument, p:Parameters): Role+sendEvent(e:Event): void
AgentTypeEntityType
Synonyme
Synonyme
Clock
Model
NumberTypeSymbolType
PrimitiveRoleType ComposedRoleType
TERA-ERE/CORMAS II
Nommage (I)Nommage (I)
Le procédé de nommage:Ensemble des noms possiblesMéthodes d’accès à (aux) instance(s) par le nomComprenant:– Noms de rôle ou d’attribut– Coordonnées– Méthodes d’indexation
TERA-ERE/CORMAS II
Nommage (II)Nommage (II)
Schéma général:
Le cas des attributs:
Naming
+getRole(n:Name): Role
Name
-cardinality: int
+getCardinality(): int
defines
RoleType
+getMeasure(i:MeasureInstrument, p:Parameters): RoleType+postInf luence(i:Inf luence, p:Parameters): void
domain
Name
-cardinality: int
+getCardinality(): int
Naming
+getRole(n:Name): Roledefines
AttributeName
-n: String
ComposedNaming
+getRole(n:AttributeName): Role
AttributeNaming
TERA-ERE/CORMAS II
Nommage: le cas de l’espaceNommage: le cas de l’espace
Space
+getRole(e:RoleType, p:SpaceName): Role+getRole(e:RoleType, p:Place): Role
TopologicalSpace
MetricSpace
+getRole(e:RoleType, n:MetricName): Role+getRole(e:RoleType, n:MetricName, d:Distance): Role
SpatialRelation
Scale
Unit Resolution
2
*
OrganizationalSpace
DiscreteSpace ContinuousSpace
Synonym
Metadescription
2D and3D grids
Place
+getRole(e:RoleType): Role
Orientationdefines
defines
defines
TopologicalPlace
+getNeighbours(r:SpatialRelation): PlaceDistance
defines
Hole
defines
SpaceNaming
Naming
+getRole(n:Name): Role
MetricNaming MetricName
Name
SpaceName
-n: String
TERA-ERE/CORMAS II
Nommage: le cas du tempsNommage: le cas du temps
TimeSpan
+getEvent(e:EventType): Event
Scale
Time
+getEvent(e:EvenType, n:TimeName): Event+getEvent(e:EventType, t:TimeSpan): Event
Unit
OrdinalTime
CardinalTime
+getNeighbourRole(e:RoleType, n:Date, d:TemporalDistance): Role
TemporalRelation
2
*
DiscreteTime ContinuousTime
Resolution
defines
defines
Metadescription
Interval orinstant
TopologicalTimeSpan
+getNeighbours(r:TemporalRelation): TimeSpan
TemporalDistance
defines
TimeNaming TimeName
CardinalTimeNaming Date
Naming
+getRole(n:Name): Role
Name
TERA-ERE/CORMAS II
Les interactions (I)Les interactions (I)
Les interactions (ou comportements)Conditions-évènementsEnsemble d’interactions (?)Comprenant:– Les changements affectant:
Une mesure d’une entité Un ensemble de mesure d’une même entité Les mesures de plusieurs entités
TERA-ERE/CORMAS II
Les interactions (II)Les interactions (II)
Behaviour
ProactiveBehaviour
Influence
Event
Stimulus
Message
EventContent
Synonym
Utterance CognitiveBehaviour
ReactiveBehaviour
Peut-être un acte delangage en KQMLou ACL
RoleType
+getMeasure(i:MeasureInstrument, p:Parameters): RoleType+postInf luence(i:Inf luence, p:Parameters): void
effect
effect
effect
Condition
activation
TERA-ERE/CORMAS II
Les instances (I)Les instances (I)
Il faut distinguer:Les types de points de vue– Les organisations sous la forme de type d’entités avec les
interactions et les méthodes d’accès
Les instances de points de vue– Groupes d’entités sur lesquelles vont s’appliquer les
interactions et les méthodes d’accès
TERA-ERE/CORMAS II
Les instances (II)Les instances (II)RoleType
+getMeasure(i:MeasureInstrument, p:Parameters): Role+sendEvent(e:Event): void
Role
instantiates
SubjectiveViewPoint
Agent ouavatar
Model
Group
+getValue(n:Name): Role
instantiates
Environment
Synonym
PrimitiveRole
SymbolNumber
Les entitésLes entités
TERA-ERE/CORMAS II
Entité comme organisation (I)Entité comme organisation (I) Une entité peut être composée d’un ensemble d’autres
entités:Un point de vue dans lequel l’entité est un toutUn point de vue dans lequel elle est un ensemble d’entitésComposition comme une relation entre deux points de vue dans un troisième point de vue
Une entité est en relation avec sa (ses) composition(s), éventuellement spatiale(s) et/ou temporelle(s)
TERA-ERE/CORMAS II
Entité comme organisation (II)Entité comme organisation (II)
RoleType
+getMeasure(i:MeasureInstrument, p:Parameters): Role+sendEvent(e:Event): void
AgentTypeEntityType
Synonyme
Synonyme
Clock
Model
NumberTypeSymbolType
PrimitiveRoleType ComposedRoleType
TERA-ERE/CORMAS II
ConséquenceConséquence
Relations comme nommage d’une entité
ViewPoint
Model
OrganisationSynonym
Observateur
Modélisateur
RoleType
+getMeasure(i:MeasureInstrument, p:Parameters): RoleType+postInf luence(i:Inf luence, p:Parameters): void
Naming
Behaviour
Relation
TERA-ERE/CORMAS II
Entité comme agentEntité comme agent
Deux visions:L’agent comme une entité (un tout) à un certain niveau d’abstraction
– Le corps (?)
L’agent comme composé de différentes entités (mémoire, etc.)
– Le « cerveau » (?)
TERA-ERE/CORMAS II
Entité comme environnementEntité comme environnement Une entité à un niveau supérieur est un
environnement pour les entités qu’elle porte au niveau inférieur:
Peut avoir un espace qui lui est associéPeut avoir un temps qui lui est associé (à comparer avec SWARM)Implémentation:– Ensemble de nommages distincts sur les entités
composantes
TERA-ERE/CORMAS II
ConséquenceConséquence
Espace (et le temps) comme point de vue
Space
+getRole(e:RoleType, p:SpaceName): Role+getRole(e:RoleType, p:Place): Role
Place
+getRole(e:RoleType): Role
defines
Hole
defines
SpaceNaming
Naming
+getRole(n:Name): Role
Name
SpaceName
-n: String
ViewPoint
TimeSpan
+getEvent(e:EventType): Event
Time
+getEvent(e:EvenType, n:TimeName): Event+getEvent(e:EventType, t:TimeSpan): Event
defines
Interval orinstant TimeNaming TimeName
ViewPoint
TERA-ERE/CORMAS II
Relations particulières (I)Relations particulières (I) Les relations de composition
Lient une entité comme un tout à une entité comme un ensemble d’entités
Les relations de positionLient une entité comme composant à une entité comme un tout comprenant
– l’entité contenante– le nom de l’entité composante dans l’entité contenante
(nom d’attribut ou coordonnée)
TERA-ERE/CORMAS II
Relations particulières (II)Relations particulières (II)
Relations de conversionConversion d’une entité composante d’une entité dans une entité composante d’une autre entité
– Changement de point de vue
Conversion d’un nom dans un nommage dans un nom d’un autre nommage
– Changement de point de vue– Changement de coordonnées
TERA-ERE/CORMAS II
Relations particulières (III)Relations particulières (III)
Relation
Composition PositionConversion
+convertName(): Name+convertRole(): Role
AttributeName
-n: String
ComposedNaming
+getRole(n:AttributeName): Role
RelationNaming
Group
+getValue(n:Name): Role+applyAction(a:Action, n:Name): void
Name
-cardinality: int
+getCardinality(): int
TERA-ERE/CORMAS II
Les mesuresLes mesures Structure d’une mesure :
Par son instrument de mesurePar des paramètresPar le type du résultat attendu pour conversion éventuelle
– Règles de passage d’un type à l’autre (p.e. d’un espace à l’autre)
Le traitement d’une mesureCalcul du résultat converti à partir des relations
Espace et tempsEspace et temps
TERA-ERE/CORMAS II
Espace construit et représentéEspace construit et représenté
Espace représenté:Espace a prioriLes entités sont placés dans l ’espace
Espace construit:Les entités et leurs relations a prioriL’espace est induit à partir des relations
TERA-ERE/CORMAS II
Espace représenté (I)Espace représenté (I)
Space
+getRole(e:RoleType, p:SpaceName): Role+getRole(e:RoleType, p:Place): Role
TopologicalSpaceSpatialRelation
2
*
Synonym
Place
+getRole(e:RoleType): Role
Orientationdefines
defines
defines
TopologicalPlace
+getNeighbours(r:SpatialRelation): Place
Hole
defines
SpaceNaming
Naming
+getRole(n:Name): Role
Name
SpaceName
-n: String
ViewPointUn espace est unensemble de lieux
Un espace est unensemble de lieuxmuni d'une relation devois inage
OrganizationalSpace
TERA-ERE/CORMAS II
Espace représenté (II)Espace représenté (II)
MetricSpace
+getRole(e:RoleType, n:MetricName): Role+getRole(e:RoleType, n:MetricName, d:Distance): Role
Scale
Unit Resolution
DiscreteSpace ContinuousSpace
MetadescriptionDistancedefines
Coordinates Coordinate
Extent
2DDiscreteSpace
2DContinuousSpace
3DDiscreteSpace
3DContinuousSpace
DiscreteCoordinates ContinuousCoordinates
SpatialConversion
Conversion
SpaceOrigin
Un espace muni decoordonnées, d'unsystème de mesure etd'une étendue
TopologicalSpace
TERA-ERE/CORMAS II
Espace construit (I)Espace construit (I)
Les parcelles Parcellesfoncières
Parcellesculturales
Parcellesfiscales
Espaceinduit
TERA-ERE/CORMAS II
Espace construit (II)Espace construit (II)
Conséquence:Le nombre de lieux varie au cours du tempsMise en relation entité/lieu
Entité=lieu
Notion de lieuindépendante
des entités
« Algèbrede Allen »
des surfaces
TERA-ERE/CORMAS II
Temps représentéTemps représenté
TimeSpan
+getEvent(e:EventType): Event
Scale
Time
+getEvent(e:EvenType, n:TimeName): Event+getEvent(e:EventType, t:TimeSpan): Event
Unit
OrdinalTime
CardinalTime
+getNeighbourRole(e:RoleType, n:Date, d:TemporalDistance): Role
TemporalRelation
2
*
DiscreteTime ContinuousTime
Resolution
defines
defines
Metadescription
Interval orinstant
TopologicalTimeSpan
+getNeighbours(r:TemporalRelation): TimeSpan
TemporalDistance
defines
TimeNaming TimeName
CardinalTimeNaming Date
Naming
+getRole(n:Name): Role
Name
ViewPoint
Extent
Conversion
TimeConversionTimeOrigin
TERA-ERE/CORMAS II
Temps construit (I)Temps construit (I)
Temps par instantTemps comme succession des évènements
Temps par intervalleTemps comme succession des états
Vie
Période
Etat civil
enfant adulte 3ème age
célibataire marié
Temps induit
TERA-ERE/CORMAS II
Temps construit (II)Temps construit (II)
Evènement ou état=temps
Notion de tempsindépendante
des entités
Algèbrede Allen
+
DualitéÉvènement/état
DualitéInstant/intervalle
TERA-ERE/CORMAS II
Temps construit (suite)Temps construit (suite)
Temps construit et simulationLa simulation déroule le temps– Simulation évènementielle– Simulation synchrone: événements distingués (tops
d’horloge)– Question: évènements simultanés, synchronisation ?
L’observateur doit passer du temps déroulé au temps représenté
– Reconstruction des successions– Calage sur une mesure du temps (heure, min, sec)
La dynamiqueLa dynamique
TERA-ERE/CORMAS II
Noms et valeursNoms et valeurs Nom d’un ou plusieurs rôles (entités):
C’est un couple (groupe,nom) où– Le nom appartient à l’espace de nommage du groupe
Valeur d’un nom de rôle:Le ou les rôles désignés par le nom
Problème de cardinalité:Un nom désigne toujours un ensemble: vide, un élément, plusieurs éléments
TERA-ERE/CORMAS II
Les évènementsLes évènements Evènement :
Signalement du changement de la valeur d’un nom de rôle Structure
(groupe, nom)Changement: ajout, retrait, modificationEntitéFacultatif en modification: ancienne entité
Event
-eventType: String
+getEventType(): String
Group
+getValue(n:Name): Role
Name
-cardinality: int
+getCardinality(): int
RoleName
+getValue(): Role
Role
argument1..2
TERA-ERE/CORMAS II
Les actionsLes actions Action
Changement de la valeur d’un nom Structure
(groupe,nom)Changement: ajout, retrait, modificationNouvelle valeurFacultatif en modification: ancienne valeur
Remarque: toute action provoque un évènementGroup
+getValue(n:Name): Role
Name
-cardinality: int
+getCardinality(): int
RoleName
+getValue(): Role
Role
Action
-actionType: String
+getActionType(): String
argument
TERA-ERE/CORMAS II
Modèles d’exécutionModèles d’exécution Modèles asynchrones
Une entité s’abonne à un ensemble de noms d’entitéChaque modification est transmise à l’entité
Modèles synchronesUne entité s’abonne à un nom d’entité distingué (top d’une horloge)Chaque top est transmis à l’entité
Modèles mixtes
Le niveau métaLe niveau méta
TERA-ERE/CORMAS II
Le niveau métaLe niveau méta Quelques pistes
Le groupe comme un typeL’entrée et la sortie d’un groupe comme un modèle
– Dynamique des groupes– Contrôle de la création de scénarios
La modification d’un nommage comme un modèleUn point de vue comme un point de vue
– Les RoleType sont les instances– Leur nommage par le même mécanisme
Les relations comme un point de vue– Nommage des rôles de la relation