Skip to content

Declaring vs inferring schemata #24

@wwaites

Description

@wwaites

There is a choice here:

  1. 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.
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions