generated from AlgebraicJulia/AlgebraicTemplate.jl
-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
There is a choice here:
- Write rules that need to be in some sense consistent with each other, and from the rules, infer the schema for system state. So if a rule talks about an agent's age, well, age must be in the schema for those kinds of agents.
- Specify the schema and then check that the rules are consistent with it. If not, it is an error.
Both approaches have advantages and disadvantages. (1) is nice because you can just write rules, and when we start think of composing models together (basically by concatenating rule-sets) we do not have to do anything explicitly with the schema. Very convenient. (2) is nice because sometimes rules become complicated and getting them right is tricky so a declaration of the schema ahead of time means you can do a kind of type checking on the rule. Also very convenient.
FWIW, KaSim allows both of these strategies. If you declare agents (~ specify the schema) then it will check that the rules make sense, if you don't it will derive the appropriate declarations if possible.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels