r-io suiter-io suiteinterceptor docs
← Model loading
Edge interceptor / Causal generation

Induces

Generates the chain of a risk induced by a danger: its actuality, its Prevent: and Treat: objectives, one risk per exposed resource and source, and the law of the danger zone on the susceptibilities.

IND

InducesModelsPopulateInterceptor

Turns one model risk into the risks of every resource it is about.

Potential → Induces → Risk
TriggerThe edge is an Induces or an Is_Susceptible_To. Only a FREEZE model Risk induced by a Potential, whose consumes has a “From Concept” or “From Role” row, gets a chain; anything else is left alone.
AFTER ADD/UPDATE · INDUCESGenerate the model chain

Next to the risk, FREEZE: the actuality of the same name, “Prevent: <event>” (Prevents the risk) and “Treat: <event>” (Treats the actuality), the Creates between risk and actuality, and, for a role, Consumes from both objectives to the role.

INSTANCESOne risk per resource and source

For each resource the risk is about (ACTIVE instances of the concept, sub-concepts included, or holders of the role) and each asset that Generates the potential: a risk instance, the actuality of the resource, their own objectives, each Near its model, and the Impacts to the resource.

AFTER ADD/UPDATE · IS_SUSCEPTIBLE_TOGive the rule of a role

From a role, the chains of the potential are generated again, then every holder of the role gets the rule of the role on its own Is_Susceptible_To, unless that edge was changed by hand.

AFTER DELETEKeep the chain

Nothing is removed when the Induces edge is deleted: the modeler deletes the generated nodes if the risk is no longer induced.

01 · Generation

From one model risk to the risks of each resource

Written by the modeler
Asset→Potential (Generates, danger zone)
Potential→Risk “A Kid burns” (Induces)
Risk→Role or concept, feared state (consumes)
⇒
Generated, FREEZE
Actuality·Prevent: · Treat:
Risk “A Kid burns: Henri Martinez (Martinez barbecue)”→Near the model
Resource or role→Potential (Is_Susceptible_To, law)

The instances are named after the event, the resource and the source; a risk instance keeps the id of its source in the property induced source. The actuality is shared by all the sources of one resource. The source resource itself gets no risk from its own zone. The generated Creates activates the actuality as soon as the resource is in the feared state, otherwise when the risk is certain, as the default rule of the causal links. The Treat: objective aims at the default state of the concept, or else at the default state shared by the resources. Generated edges are written with their pre- and post-treatments, so that the Code2L interceptor registers their 2L rules.

generateModelChainsimplified
if risk is not a FREEZE Risk, or no Potential Induces it, or no From Concept / From Role row: return
upsert actuality, "Prevent: " + event, "Treat: " + event   # unless touched by hand
upsert Prevents, Creates (triggering condition), Treats
for potential in potentials inducing the risk:
    sources = assets Generating potential (danger zone radius, contact distance)
    if role: write the law of the sources on Role --Is_Susceptible_To--> potential, give it to the holders
    for resource in resources the risk is about:
        for source in sources, source != resource:
            upsert actuality of the resource (once), its Treat: objective
            upsert risk instance, Near model, Impacts resource, Creates actuality, its Prevent: objective
        if not role: write the law on Resource --Is_Susceptible_To--> potential
02 · The law of a source

Probability from the distance, then from the time to reach

DistancedistanceToNode(source)
In the zone0 at the edge, 0.95 at contact
Contact1, or inside the polygon
Heading to it0.5 at 120 s, 0.9 at 0 s
Otherwiserisk frozen at 0

The Generates edge from the asset gives danger zone radius (m) (10 by default) and contact distance (m) (1 by default, 0 for a polygon source, which is reached when the resource is inside it). The law only runs while the potential is active, and leaves the risk alone while its actuality is active. Out of the zone, secondsToReach anticipates a resource heading to it when the extrapolation of the trajectories is on. See the generated code in the 2L language.

What the modeler changes stays

Each generated node keeps a SHA-256 fingerprint of its name and consumes, each generated edge of its conditions (generated fingerprint). When the values no longer match it, the element was changed by hand and is never generated again; an edge the modeler drew with an empty rule is still filled. A cloned objective of a generated model objective is renamed after its problem at run time (see Actuality & Potentiality).

Generated again when the situation changes

The same generation is called by the causal links interceptor (a Generates edge is written), the Has interceptor (a resource gets a role), the Actuality & Potentiality interceptor (a FREEZE model risk changes) and the Induced risk resource interceptor (an asset is added or renamed). The reading of the whole chain is on the causal chain page.

Compare with the other edge behaviorsAll edge interceptors →
Intercepteur d’arête / Génération causale

Induces

Génère la chaîne d’un risque induit par un danger : son actualité, ses objectifs Prevent: et Treat:, un risque par ressource exposée et par source, et la loi de la zone de danger sur les susceptibilités.

IND

InducesModelsPopulateInterceptor

Transforme un risque modèle en risques de chaque ressource visée.

Potential → Induces → Risk
DéclencheurL’arête est un Induces ou un Is_Susceptible_To. Seul un Risk modèle en FREEZE, induit par un Potential, dont la table consumes a une ligne « From Concept » ou « From Role », reçoit une chaîne ; le reste est laissé tel quel.
APRÈS AJOUT/MISE À JOUR · INDUCESGénérer la chaîne modèle

À côté du risque, en FREEZE : l’actualité de même nom, « Prevent: <événement> » (Prevents le risque) et « Treat: <événement> » (Treats l’actualité), le Creates entre risque et actualité et, pour un rôle, les Consumes des deux objectifs vers le rôle.

INSTANCESUn risque par ressource et par source

Pour chaque ressource visée par le risque (instances ACTIVE du concept, sous-concepts compris, ou porteurs du rôle) et chaque actif qui Generates le potentiel : une instance de risque, l’actualité de la ressource, leurs propres objectifs, chacun Near son modèle, et l’Impacts vers la ressource.

APRÈS AJOUT/MISE À JOUR · IS_SUSCEPTIBLE_TODonner la règle d’un rôle

Depuis un rôle, les chaînes du potentiel sont régénérées, puis chaque porteur du rôle reçoit la règle du rôle sur son propre Is_Susceptible_To, sauf si cette arête a été retouchée à la main.

APRÈS SUPPRESSIONGarder la chaîne

Rien n’est retiré quand l’arête Induces est supprimée : le modélisateur supprime les nœuds générés si le risque n’est plus induit.

01 · Génération

D’un risque modèle aux risques de chaque ressource

Écrit par le modélisateur
Asset→Potential (Generates, zone de danger)
Potential→Risk « A Kid burns » (Induces)
Risk→Rôle ou concept, état redouté (consumes)
⇒
Généré, en FREEZE
Actuality·Prevent: · Treat:
Risk « A Kid burns: Henri Martinez (Martinez barbecue) »→Near le modèle
Ressource ou rôle→Potential (Is_Susceptible_To, loi)

Les instances sont nommées d’après l’événement, la ressource et la source ; une instance de risque garde l’identifiant de sa source dans la propriété induced source. L’actualité est commune à toutes les sources d’une même ressource. La ressource source ne reçoit aucun risque de sa propre zone. Le Creates généré active l’actualité dès que la ressource est dans l’état redouté, sinon quand le risque est certain, comme la règle par défaut des liens causaux. L’objectif Treat: vise l’état par défaut du concept, ou à défaut l’état par défaut commun aux ressources. Les arêtes générées sont écrites avec leurs pré- et post-traitements, pour que l’intercepteur Code2L enregistre leurs règles 2L.

generateModelChainsimplifié
si le risque n’est pas un Risk en FREEZE, ou qu’aucun Potential ne l’induit, ou sans ligne From Concept / From Role : sortir
créer ou mettre à jour l’actualité, "Prevent: " + événement, "Treat: " + événement   # sauf retouche à la main
créer ou mettre à jour Prevents, Creates (triggering condition), Treats
pour chaque potentiel qui induit le risque :
    sources = actifs qui Generates le potentiel (danger zone radius, contact distance)
    si rôle : écrire la loi des sources sur Role --Is_Susceptible_To--> potentiel, la donner aux porteurs
    pour chaque ressource visée par le risque :
        pour chaque source différente de la ressource :
            actualité de la ressource (une fois), son objectif Treat:
            instance de risque, Near le modèle, Impacts la ressource, Creates l’actualité, son objectif Prevent:
        si pas de rôle : écrire la loi sur Ressource --Is_Susceptible_To--> potentiel
02 · La loi d’une source

La probabilité selon la distance, puis selon le temps d’arrivée

DistancedistanceToNode(source)
Dans la zone0 au bord, 0,95 au contact
Contact1, ou dans le polygone
En approche0,5 à 120 s, 0,9 à 0 s
Sinonrisque gelé à 0

L’arête Generates depuis l’actif donne danger zone radius (m) (10 par défaut) et contact distance (m) (1 par défaut, 0 pour une source polygonale, atteinte quand la ressource est dedans). La loi ne joue que tant que le potentiel est actif, et laisse le risque tel quel tant que son actualité est active. Hors de la zone, secondsToReach anticipe une ressource qui s’y dirige quand l’extrapolation des trajectoires est activée. Voir le code généré dans le langage 2L.

Ce que le modélisateur change reste

Chaque nœud généré garde une empreinte SHA-256 de son nom et de sa table consumes, chaque arête générée de ses conditions (generated fingerprint). Quand les valeurs ne correspondent plus, l’élément a été retouché à la main et n’est plus jamais régénéré ; une arête tracée par le modélisateur avec une règle vide est quand même remplie. Le clone d’un objectif modèle généré est renommé d’après son problème à l’exécution (voir Actuality & Potentiality).

Régénéré quand la situation change

La même génération est appelée par l’intercepteur des liens causaux (une arête Generates est écrite), l’intercepteur Has (une ressource reçoit un rôle), l’intercepteur Actuality & Potentiality (un risque modèle en FREEZE change) et l’intercepteur des ressources à risque induit (un actif est ajouté ou renommé). La lecture de toute la chaîne est sur la page de la chaîne causale.

Comparer les autres comportements d’arêtesTous les intercepteurs d’arêtes →