Turns an active Sensor node into a deployed CEP rule or machine-learning configuration and resolves its impact on the collaborative model.
SN
SensorModelsPopulateInterceptor
Bridges collaborative sensor definitions and low-level interpretation.
beforeAdd · afterAdd · afterUpdate
TriggerExact core-model Sensor type with ACTIVE status. Subtype determines which configuration builder is used.
BEFORE ADDComplete 3D asset URL
When 3D model url is empty, it is derived from the modeling icon of the sensor (.png → .glb). A sensor without modeling icon (older use case, import) keeps an empty URL with a warning instead of aborting the publication.
AFTER ADDCompile and deploy
Creates the appropriate CEP or ML configuration through LowLevelInterpretationManager.
AFTER UPDATERedeploy
Rebuilds interpretation so runtime behavior follows the latest sensor definition. A partial update with no sensor subtype leaves deployed rules unchanged.
01 · Dispatch
Subtype selects the interpretation path
Quantitative / Dedicated
Builds numerical or domain-specific CEP rules from measure, threshold and interpretation properties.
Media
Builds a media-aware CEP configuration for observation events.
Others / Knowledge
Uses the generic knowledge interpretation path for model-driven observations.
Social: Twitter / Messaging
Delegates to a machine-learning configuration rather than the standard CEP route.
ACTIVE Sensortyped properties
Select builderCEP or ML
Compileruntime configuration
Deployinterpretation manager
Resolve impactgraph + probabilities
02 · Runtime effects
Detection updates the collaborative graph
The generated interpretation does more than recognize an event. Its resolution path can create or update problems, connect them with Impacts or Fixed_Onto, maintain Near lineage and propagate probability values used by potentialities.
add / updateconceptual flow
if node.type != Sensor or node.status != ACTIVE: return
configuration = switch sensor subtype:
quantitative | dedicated | media | knowledge -> build CEP
twitter | messaging -> build ML
deploy(configuration)
on detection:
resolve affected model element
update impact/fix relations and probability
Import and frozen situations
During model import, invalid or incomplete rule definitions may be deferred only while interception control is disabled; the project deploys its own rules after the models. A frozen problem impacting an asset in the sensor’s recursive Fixed_Onto chain is activated in place. A frozen anticipation without that match stays frozen: detection creates a separate ACTIVE problem linked by Near. CEP results carry Occurred at from the sensor event date; simulated dates are not replaced with the current wall clock.
Deletion lifecycle
The delete hooks are empty in this interceptor. No explicit undeploy is performed here; runtime cleanup must therefore be guaranteed by the interpretation layer or another lifecycle mechanism.
03 · Thresholds
One CEP rule per threshold, with an optional release
A quantitative sensor carries a thresholds table. Each row (type MAX or MIN, value, referenced problems, potentiality probabilities) becomes one CEP rule: it activates its problems when the value crosses the threshold (THRESHOLD_TRANSITION, above for MAX, below for MIN) and, by default, releases them when the value crosses back.
Probability ladder — when several thresholds give a probability to the same risk, they share one runtime node and its probability follows the measured value step by step; going back under an intermediate threshold lowers it to the previous step, only the first threshold removes the risk.
Release with hysteresis — three optional columns delay the release: released below (MAX threshold) or released above (MIN threshold), and released after (h). What the threshold activates is then released only once the value has stayed past the release value for that many hours, with a SUSTAINED_THRESHOLD deactivation instead of the crossing back.
SUSTAINED_THRESHOLD trigger — fires on a reading taken at least durationMillis after a first reading past the value (staysBelowValue or staysAboveValue, exactly one), with no reading of the same sensor on the other side in between. The duration is measured on the dates of the events, so a replayed scenario follows its own clock (CEPRuleDefinitionCompiler.compileSustainedThreshold).
Orléans Flood CrisisLoire water level - Orleans
MAX 2.50 m -> George-V bridge flood risk 0.2
MAX 3.50 m -> George-V bridge flood risk 0.5
MAX 4.00 m -> George-V bridge flood risk 0.8
MAX 4.50 m -> George-V bridge flood risk 1
MAX 4.50 m -> flood, released below 4.00 m after 6 h
# rule R5: activation THRESHOLD_TRANSITION crossesAboveValue 4.5
# deactivation SUSTAINED_THRESHOLD staysBelowValue 4.0, durationMillis 21600000
The flood thus stays active while the Loire recedes from 4.50 m to 4.00 m and ends six hours after it went below 4.00 m; a reading back above 4.00 m in between starts the count again. The probabilities of the risk are covered in the 2L language reference, which sets the low tier of the same risk.
Transforme un Sensor actif en règle CEP ou configuration d’apprentissage déployée, puis résout son impact dans le modèle collaboratif.
SN
SensorModelsPopulateInterceptor
Relie les capteurs collaboratifs à l’interprétation bas niveau.
beforeAdd · afterAdd · afterUpdate
DéclencheurType core-model Sensor exact avec statut ACTIVE. Le sous-type choisit le constructeur de configuration.
AVANT AJOUTCompléter l’asset 3D
Quand 3D model url est vide, elle est dérivée de l’icône de modélisation du capteur (.png → .glb). Un capteur sans icône de modélisation (ancien cas d’usage, import) garde une URL vide avec un avertissement au lieu d’interrompre la publication.
APRÈS AJOUTCompiler et déployer
Crée la configuration CEP ou ML adaptée via LowLevelInterpretationManager.
APRÈS UPDATERedéployer
Reconstruit l’interprétation afin que le runtime suive la définition courante. Une mise à jour partielle sans sous-type de capteur laisse les règles déployées inchangées.
01 · Aiguillage
Le sous-type sélectionne le chemin d’interprétation
Quantitative / Dedicated
Construit les règles CEP numériques ou propres au domaine.
Media
Construit une configuration CEP adaptée aux événements d’observation média.
Others / Knowledge
Utilise le chemin d’interprétation générique piloté par les connaissances.
Social : Twitter / Messaging
Délègue à une configuration de machine learning plutôt qu’au CEP standard.
Sensor ACTIVEpropriétés typées
ChoisirCEP ou ML
Compilerconfiguration runtime
Déployergestionnaire d’interprétation
Résoudregraphe + probabilités
02 · Effets runtime
La détection met à jour le graphe collaboratif
La configuration générée ne se limite pas à reconnaître un événement. La résolution peut créer ou mettre à jour des problèmes, les relier par Impacts ou Fixed_Onto, maintenir la filiation Near et propager les probabilités des potentialités.
ajout / mise à jourflux conceptuel
si type != Sensor ou statut != ACTIVE : sortir
configuration = selon le sous-type :
quantitative | dedicated | media | knowledge -> CEP
twitter | messaging -> ML
déployer(configuration)
à la détection :
résoudre l’élément du modèle affecté
actualiser impacts, corrections et probabilités
Import et situations gelées
Pendant l’import des modèles, les règles invalides ou incomplètes ne peuvent être différées que si le contrôle des interceptions est désactivé ; le projet déploie ses propres règles après les modèles. Un problème gelé impactant une ressource de la chaîne récursive Fixed_Onto du capteur est activé sur place. Une anticipation gelée sans cette correspondance reste gelée : la détection crée un problème ACTIVE distinct relié par Near. Les résultats CEP portent Occurred at depuis la date de l’événement capteur ; les dates simulées ne sont pas remplacées par l’heure courante.
Cycle de suppression
Les hooks de suppression sont vides. Aucun undeploy explicite n’est effectué ici ; le nettoyage du runtime doit être garanti par la couche d’interprétation ou un autre mécanisme.
03 · Seuils
Une règle CEP par seuil, avec un relâchement facultatif
Un capteur quantitatif porte une table thresholds. Chaque ligne (type MAX ou MIN, valeur, problèmes référencés, potentiality probabilities) devient une règle CEP : elle active ses problèmes quand la valeur franchit le seuil (THRESHOLD_TRANSITION, vers le haut pour MAX, vers le bas pour MIN) et, par défaut, les relâche quand la valeur le refranchit dans l’autre sens.
Échelle de probabilité — quand plusieurs seuils donnent une probabilité au même risque, ils partagent un seul nœud d’exécution et sa probabilité suit la valeur mesurée palier par palier ; repasser sous un seuil intermédiaire la ramène au palier précédent, seul le premier seuil retire le risque.
Relâchement avec hystérésis — trois colonnes facultatives retardent le relâchement : released below (seuil MAX) ou released above (seuil MIN), et released after (h). Ce que le seuil active n’est alors relâché qu’une fois la valeur restée au-delà de la valeur de relâchement pendant ce nombre d’heures, par une désactivation SUSTAINED_THRESHOLD au lieu du franchissement inverse.
Déclencheur SUSTAINED_THRESHOLD — se déclenche sur un relevé pris au moins durationMillis après un premier relevé au-delà de la valeur (staysBelowValue ou staysAboveValue, exactement un), sans relevé du même capteur de l’autre côté entre les deux. La durée se mesure sur les dates des événements : un scénario rejoué suit sa propre horloge (CEPRuleDefinitionCompiler.compileSustainedThreshold).
Orléans Flood CrisisLoire water level - Orleans
MAX 2,50 m -> George-V bridge flood risk 0,2
MAX 3,50 m -> George-V bridge flood risk 0,5
MAX 4,00 m -> George-V bridge flood risk 0,8
MAX 4,50 m -> George-V bridge flood risk 1
MAX 4,50 m -> crue, relâchée sous 4,00 m après 6 h
# règle R5 : activation THRESHOLD_TRANSITION crossesAboveValue 4.5
# désactivation SUSTAINED_THRESHOLD staysBelowValue 4.0, durationMillis 21600000
La crue reste donc active pendant que la Loire redescend de 4,50 m à 4,00 m et se termine six heures après son passage sous 4,00 m ; un relevé repassé au-dessus de 4,00 m entre-temps relance le décompte. Les probabilités du risque sont détaillées dans la référence du langage 2L, qui fixe le palier bas du même risque.