Chord / Behavior / Topic tables
Topic tables
Conversation is a declared table per person: one define topics for <person> … end topics block serving both ASK and TELL. Entity rows
(about the silver locket:) resolve like any noun and are checked
first. Quoted rows declare a topic plus comma-separated aliases. Each
alias is matched by normalized whole-topic equality, which is a direct
lookup and never a fuzzy guess. A
row's body is ordinary statements (it binds the owner), so a
conversation can change state anywhere in the world. A miss falls to
the owner's plain on asking it catch-all if it has one; on a hit the
row fully owns the response. Overlaps are compile errors, never runtime
tie-breaks.
define topics for tobias
about the silver locket: phrase tobias-locket-reply
about "the folly", "the fire":
change it to shaken
phrase tobias-folly-reply
end topics