The document describes SEPRO, a system for modeling and simulating qualitative network dynamics. SEPRO aims to test an alternative approach to simulating network problems using a purely qualitative approach. The system design principles focus on completeness, clarity, and minimal assumptions. In SEPRO, the simulated universe is represented as a directed graph of objects with qualitative properties. State transitions are triggered by an object's existing state or potential interactions between objects, and can only occur locally within the graph. The document outlines the basic concepts including actuators, selectors, transitions, and control signaling in SEPRO.
3. OBJECTIVES
▪︎ Test alternative approach for simulation of network problems
▪︎ Examine possibility of purely qualitative approach
▪︎ Find primitives of non-conventional computation of network
problem solving
▪︎ Develop a simulator prototype and set of models that demonstrate
the system
4. SYSTEM DESIGN PRINCIPLES
▪︎ Completeness and clarity of model description
▪︎ Minimal set of assumptions
▪︎ No explicit control flow
▪︎ Iterative simulation and parallel in nature
7. MODEL
▪︎ Simulated universe is a directed graph of objects
▪︎ Objects have only qualitative properties
▪︎ State transition is triggered either by existing state or potential
interaction of two objects
▪︎ State changes can happen only locally* to the transitioning or
interacting objects
* graph distance of 1; see “Local Context” later
13. CONCEPTS
▪︎ Actuator – atomic description of state change
▪︎ Selector – match pattern for objects subject to transition
▪︎ Transition/Modifier – description of state change
affects either object’s state or local* relationships
* graph distance of 1; see “Local Context” later
14. “LOCAL” CONTEXT
p
selected a
c
b
indirect a
indirect b
out of sight
out of sight
out of sight
q
r
Design limitation (intentional):
Object state and graph transitions can happen only within distance of 1 from the selected object.
15. ACTUATORS
selector
this
WHERE DO modifiers control
selector modifiersselector
this other
controlWHERE ON DO
unary
binary
transition of object’s state and local* relationships based on previous object’s state
transition of state of either of two objects based on states of objects in a tuple
from a cartesian product of specific objects
17. SELECTOR TESTS
▪︎ SET: all of selector tags are associated with an object
true if selector’s tags ⊂ object’s tags
▪︎ UNSET: none of selector tags are associated with an object
true if object’s tags ∩ selector’s tags = ∅
▪︎ BOUND: graph contains an edge from selector’s slots
▪︎ UNBOUND: graph does not contain an edge from selector’s slots
19. STATE MODIFIER
▪︎ SET tags: associate set of tag symbols with an object
result = object tags ∪ modifier tags
▪︎ UNSET tags: disassociate set of tag symbols with an object
result = object tags - modifier tags
20. GRAPH EDGE MODIFIERS
▪︎ BIND slot reference → target
create an edge in the graph
▪︎ UNBIND slot reference
remove an edge in the graph
21. UNARY BINDING MODIFIER
unbind
direct subject
u IN t
s
s
t
t
s
s
t
t
s
t
u
s
u IN ts
t
u
s -> THIS
s -> t
s -> t.u
THISthis this
this this
this
t
this
t
u
u
t t
s -> NONE
self-bind
clone
pull
t
unbind
indirect subject
s
u
t
u
this.t
s
s.u -> THIS
s.u -> t
this this.s
s
uthis s
this
this.s
t
u
this.t
s
this
s
back-self
connect
22. BINARY BINDING MODIFIER
direct subject
sshand handother otherjoin other IN LEFT s -> OTHER
IN RIGHT s -> OTHER
Intentionally unavailable state transitions of binary modifiers by design:
unbind – combination of binary state change and unary modifier
indirect – combination of binary direct subject, state change and unary modifier
23. OF MODIFIERS
▪︎ Proposed modifiers are assumed to be sufficient to achieve any
potential graph configuration.
▪︎ All state changes beyond distance of 1 from the selected object
must be composed of multiple transitions that propagate through
the network.
▪︎ Susceptibility to being affected by other actuators along the way is
intended design feature.
24. ACTUATORS – PRINCIPLES
▪︎ Order of applying actuators is not predetermined
▪︎ Order of actuators being applied might affect some simulations
25. CONTROL SIGNALLING
▪︎ NOTIFY: signal (symbols) to the simulator without interruption
Use case: monitor reached goals; trigger/start/stop measurement; visualize a state of interest
▪︎ TRAP: signal (symbols) and interrupt the simulator (resumable)
Use case: goal reached and user interaction is expected; a product has been created
▪︎ HALT: signal to the simulator and interrupt (non-resumable)
Use case: invalid state has been reached, resuming the simulation might yield non-sensical results
28. Objective:
Build a chain of elements.
Components:
- links to be chained
- object binding two links together
Catch:
Introduce fake link component and observe what happens.
30. ACTUATORS
WHERE linker AND NOT BOUND left ON link, free DO
BIND left TO other
IN other UNSET free
SET one
WHERE one ON link AND free DO
BIND right TO other
IN other UNSET free
UNSET one
SET two
Reminder: although this model works as it is, we don’t know how it will behave when composed with other actuators.
WHERE two DO
IN this.left BIND next TO this.right
UNSET two
SET advance
WHERE advance DO
BIND left TO this.right
UNSET advance
SET cleanup
WHERE cleanup DO
UNBIND right
UNSET cleanup
SET one
Sepro 2016
35. ROOT OBJECT
▪︎ Single object referred to as ROOT from anywhere in the simulation.
▪︎ Can be tested for and can be acted upon.
▪︎ Rejected due to potential abuse for globally accessible state which
would defeat the whole purpose of the system to be based on local
interactions.
REJECTED
37. SEPRO 2018 GOALS
▪︎ Simplified and formalized selectors and modifiers
▪︎ Removed redundancy – focus on primitives
▪︎ Prototype/referential implementation
38. Unary Actuator
Binary Actuator
Selector
Structure
Relationship
[Symbol:Prototype]prototypes
relationships
Prototype
{Symbol}tags
Relationship
Symbol
Symbol
Symbol
to
slot
from
Unary Actuator
Control
[Subject Mode: Unary Transition]
Selector
control
selector
transitions
Control
Bool
{Symbol}
{Symbol}
halts
traps
notifications
Selector ∑
Selector Patternmatch
all
match
Unary Target ∑
Slot
subject
indirect
in subject
unbind
slot
Slotin Slotslot
Unary Transition
[Symbol:Unary Target]
Symbol Mask
bindings
tags
Constraint: if Effective Slot is indirect, target
mode must not be indirect.
Binary Transition
[Symbol:Binary Target]
Symbol Mask
bindings
tags
Binary Actuator
Control
[Subject Mode: Binary Transition]
[Subject Mode: Binary Transition]
Selector
Selector
control
right transitions
left transitions
left selector
right selector Binary Target ∑
Slot
other
in other
unbind
slot
Model
[Symbol:Binary Actuator]
[Symbol:SymbolType]
[Symbol:Unary Actuator]
[Symbol:Structure]
binary actuators
symbols
unary actuators
structures
Presence ∑
present
absent
s → none
s → self
s → t
s → t.w
i.s → none
i.s → self
i.s → t
i.s → t.w
s → none
s → other
s → other.t
i.s → none
i.s → other
i.s → other.t
Structure
{Type}
[Type:Type]
[Type]
Type?
Type
set
dictionary
array
optional
base
Sum Type ∑
case 2
case 1
Symbol Type ∑
slot
tag
label
Legend
Sepro-18 Entities
Selector Pattern
Symbol Mask
Symbol Mask
slots
tags
Symbol Mask
[Symbol:Presence]mask
Subject Mode ∑
Slotindirect
direct
slot
left right
controlWHERE ON IN LEFT IN RIGHT
left target right target
transitions transitionsselector selector
this
WHERE IN THIS controlselector transition
this target
40. ▪︎ Model composition
Merging actuators and concepts from multiple models together into one.
▪︎ Constraints
Spatial or other constraints for selectors, for example grids.
▪︎ Symbol abstraction/inheritance
Classification of symbols (primarily for tags) into hierarchies. Example: test for liquid would
match water if such hierarchical association exists.