VSABrains

Frames & CNL

A simple explanation of semantic frames, why they exist, and how to read the demo.

What is a frame?

A frame is a semantic “lens” that tracks a specific aspect of the story: emotion, theme, power, dialogue, conflict, and so on.

Frames are not separate columns. They are extra tags stored alongside each event. This lets the system answer questions like “What is the dominant emotion?” without scanning every event manually.

Think of a frame as a labeled counter that can be queried quickly.

What is CNL?

CNL means Constrained Natural Language: a small, controlled list of frame definitions. Think of it like a menu of checkboxes. You choose which semantic lenses to track.

  • Example frame names: toneStyle, themeTags, trustRelation.
  • Each event can add facts to multiple frames at once.

How frames are stored

For each frame, the system keeps:

  • Counts (what values appear most often)
  • Relations (who relates to whom)
  • Trends (how a value changes over time)

This is intentionally simple and auditable.

Example: if “toneStyle = ironic” appears 12 times and “toneStyle = somber” appears 4 times, the system can answer “dominant tone” immediately.

How the demo animation works

The Frames tab plays a “film” of where frame-related steps occurred in the story. For each step that contained a given frame, the demo draws the segment from step-1 to step on each column. This is why the animation now follows the story order rather than a sorted list of frames.

In other words: frame animation = real story segments where that frame happened.

If the animation feels too fast, slow it down with the speed slider under the grid.

What frames can and cannot do

  • Good at: quick summaries (“dominant emotion”), coarse trends, and targeted queries.
  • Not good at: deep reasoning unless you define the rules explicitly.