Classifying Frame Elements
A Frame Element (FE) is FrameNet's most local unit of description — Cook in Apply_heat, Killer in Killing, Buyer in Commerce_buy. FrameNet deliberately names frame elements per frame, and this model has no interest in undoing that: Cook and Killer are not literally the same role, and collapsing frame-specific names into one shared inventory would throw away real distinctions FrameNet is careful to preserve.
At the same time, many frame elements plainly share a high-level semantics — the Cook, the Killer, and the Builder are all, at a coarser level, agentive instigators of their respective events. The model records that shared structure without touching the frame-specific names, through three genuinely independent facts a frame element can carry:
| Axis | Answers | Device |
|---|---|---|
| The FE's own concept-kind | What kind of concept is the FE itself? | an FE-scope namespace value, linked to a DUL Concept subclass |
| Qualia type | What part does this FE play in the event? | a rel_hassemtype link to one or more SemanticType values under sty_qualia_type — AGENTIVE / TELIC / CONSTITUTIVE / FORMAL |
| Filler restriction | What kind of thing may actually fill this FE? | two devices — a rel_hasontotype link to an @class frame for a class-membership expectation, or rel_constraint_frame/rel_constraint_framefamily for a coercion reading (see below) |
Each axis is developed in its own section below.
The FE's own concept-kind#
The FE display names in the resource
were read against DUL's Concept subclasses, and all of them sorted into one of six buckets:
| Concept-kind | What it means | Representative FEs (frequency) |
|---|---|---|
| Role | An ordinary participant role, defined by the frame it belongs to. | By far the largest cluster: Agent, Cause, Cognizer, Patient, Experiencer, Goal, Result, Theme, Instrument, Beneficiary, kinship/occupational nouns (Buyer, Seller, Employee, Employer, Cook, Killer, Owner...), and paired relata (Entity1/Entity2, Item_1/Item_2) |
| Parameter | A scalar or dimensional value. | Degree (502), Frequency (211), Duration (319), Speed, Distance, Rate, Age, Size, Mass, Count, Rank |
| EventType | An embedded event or situation, rather than a participant in the frame's own event. | Event (69), Activity, State, Situation, Condition, Phenomenon, Process, Journey, Incident |
| Task | An obligation defined relative to a plan. | Task (18) — confirmed by its own definition: "the Employee is obligated to perform the Task to receive Compensation" |
| PropositionType | Content that is believed or asserted, rather than something that occurs. | State_of_affairs, Content (24), Message (22), Proposition, Hypothesis, Opinion, Judgment, Fact |
| ClassifierConcept | An FE whose own filler is itself a classifying concept, rather than a role-holder, an event, or a value. | Type (129), Category, the FE literally named Role ("the category within which an element of the Content is considered"), Class, Genre, Subtype |
Two of these distinctions are easy to miss at first glance, and worth spelling out:
Why PropositionType is kept apart from EventType. An ordinary embedded
event — the Event that occurred — really did happen, or is talked about as if
it did. State_of_affairs, by contrast — "an event, a state, or a property
that the Agent wants others to believe have occurred or hold" — names something
someone is asserting, which might turn out to be false. Classifying an event
that occurs and classifying a claim someone is trying to get believed are
different acts: the second can be false, the first cannot.
Why ClassifierConcept earns its own place. An FE like Type or Category
doesn't hold a participant, a value, or an embedded event at all — its filler is
itself a concept that classifies something else. This recurs across independent
lexical domains — subtype classification, sensory categorization, cognitive
framing — often enough, and distinctly enough from the other five kinds, that it
earns its own bucket rather than stretching one of them to cover it.
The mechanism mirrors the one frames use. Just as every frame carries a
frame-scope namespace value (see Frames),
every FE carries an FE-scope namespace value — Role, Parameter,
EventType, Task, PropositionType, or ClassifierConcept — and each of
those six values, not the individual FE, carries the rel_hasontotype link to
a DUL Concept subclass (frm_class:role, frm_class:parameter, and so on;
frm_class:role itself inherits from frm_class:concept via
rel_inheritance, confirming it really is a Concept subclass rather than
just a same-named frame). An FE never carries the DUL link directly — it
inherits its concept-kind derivatively, through whichever of the six
namespace values it's assigned to, the same one-link-per-value,
many-objects-inherit-it economy the frame-scope namespace already uses for its
own DUL grounding.
What falls outside the six kinds#
Not every FE denotes a Concept at all. Three further patterns showed up in the
full survey and are excluded from this axis on purpose, not by oversight:
| Pattern | Why it's excluded | Examples |
|---|---|---|
Quality/Region, not Concept |
Describes a property value rather than classifying a concept — routed through the filler-restriction axis instead. | Descriptor (self-disclaimed by FrameNet as non-standard), Attribute, Value, Color, Shape |
InformationObject, via the filler-type axis |
Names a physical or informational artifact, not a concept-kind. | Name, Term, Text, Sign, Document, Label, Title |
| Annotation scaffolding / meta-DUL | Not lexical content at all — either FrameNet's own bookkeeping FE, or an FE that exists to represent DUL's vocabulary within the frame inventory (the @class namespace). |
Target_LU (1,549 rows — the single most frequent FE name in the resource); lowercase snake_case relations like has_component, is_role_of, classifies |
A small residual pocket — Norm, Rule, Precept, Standard, Criteria
(under 30 rows total) — is folded into ClassifierConcept rather than minted a
seventh kind: the volume doesn't clear the bar for a new bucket on its own, and
it can be revisited if it grows.
Qualia type#
FrameNet assigns frame-specific Frame Elements (FEs) by design — Cook in
Apply_heat is not literally the same FE as Agent in Killing. This
specificity is a strength and the current model does not seek to abolish it. But it is
plainly true that many FEs share a high-level semantics: the Cook, the
Killer, the Builder are all, at a higher level, agentive instigators.
The model exploits this shared high-level semantics using qualia types, adapted (roughly) from the Qualia Structure of the Generative Lexicon. Qualia types are not new FEs and do not replace frame-specific FEs. They are a small classifying vocabulary used to group FEs across frames and to describe the characteristic participant structure of each namespace.
The four qualia types:
| Qualia types | Intuition | Typical Roles |
|---|---|---|
| AGENTIVE | what brings the event about | Agent, Cause, Cognizer, Source |
| TELIC | the endpoint / purpose / goal / affected participant | Patient, Experiencer, Goal, Result |
| CONSTITUTIVE | what the event is made of / generic participants | Entity, Theme, Instrument, Path, Part, Material, Value |
| FORMAL | the condition that holds / classifies | Event, State, Attribute, Category, Condition, Activity, Relation |
The generic event structure, showing all four roles and their relation to the Event, is the backdrop against which each namespace profiles a subset:
graph BT
subgraph AQ["AGENTIVE ROLE"]
Agent[Agent<br/>+intentional +volitional]
Cause[Cause<br/>+causation -intentional]
Cognizer[Cognizer<br/>+intentional +volitional]
Source[Source<br/>-intentional -volitional]
end
subgraph TQ["TELIC ROLE"]
Patient[Patient<br/>+affected +endpoint +change]
Experiencer[Experiencer<br/>+perceiver +experiential]
Goal[Goal<br/>+recipient +destination]
Result[Result<br/>+recipient +endpoint]
end
subgraph CQ["CONSTITUTIVE ROLE"]
Theme[Theme<br/>+participant -specific_role]
Instrument[Instrument<br/>+means +used_by_agent]
Path[Path<br/>+component]
Part[Part<br/>+component]
Material[Material<br/>+substance]
Value[Value<br/>+component]
end
subgraph FQ["FORMAL ROLE"]
Entity[Entity<br/>+participant]
Activity[Activity]
Relation[Relation]
Condition[Condition]
State[State]
Attribute[Attribute]
Category[Category]
end
Condition -->|predicates| Theme
Theme -->|participates_in| Event
Agent -->|intentionally_causes| Event
Cause -->|causes| Event
Source -->|origin_of| Event
Cognizer -->|acts_on| Event
Activity -->|is_a| Event
State -->|is_a| Condition
Attribute -->|is_a| Condition
Category -->|is_a| Condition
Relation -->|is_a| Condition
Instrument -->|is_a| Theme
Part -->|is_a| Theme
Material -->|is_a| Theme
Value -->|is_a| Theme
Entity -->|participates_in| Event
Path -->|is_a| Theme
Event -->|affects| Patient
Event -->|stimulus_for| Experiencer
Event -->|directed_to| Goal
Event -->|results| Result
Event -->|affects_reflexively| Agent
Event -->|mutual| Agent
Patient -->|from| Condition
Patient -->|to| Condition
Experiencer -->|to| Condition
FrameNet names the roles by frame context; the labels above are the high-level classifying vocabulary. Two cautions, carried over from prior analysis:
- A frame-specific FE may not fit exactly one qualia type. Qualia types are a
grouping criterion, not a partition. Where an FE spans roles (the notorious
Theme; see below), it is entirely legitimate for the FE to carry more than one qualia type at once — see the note on cross-type FEs below. - Qualia types answer "what role does this FE play in the event". They are distinct from filler restrictions (see below), which answer "what kind of thing fills this FE". The two axes are orthogonal and the model uses both.
Note on cross-type FEs#
Patient, Experiencer, and Theme are intrinsically multi-role, and the
model treats this as expected, not as a defect. The device supports this
directly, rather than forcing a single label: a qualia type is itself a
SemanticType entry (sty_agentive_qualia, sty_telic_qualia,
sty_constitutive_qualia, sty_formal_qualia — children of sty_qualia_type),
and an FE is linked to one through the same rel_hassemtype relation used
throughout the resource, which is many-valued by construction. A cross-type FE
simply carries more than one such link; nothing about the mechanism prefers a
single "profiled" type over the others.
- Patient combines TELIC (affected endpoint), CONSTITUTIVE (participant), and FORMAL (the entity that ends in a state).
- Experiencer combines TELIC (endpoint of a stimulus), AGENTIVE (when under control, e.g. olhar), and FORMAL (bearer of a mental state, e.g. saber).
- Theme is the most generic CONSTITUTIVE participant and is deliberately underspecified for affectedness. It is the default role for a participant with no sharper characterization.
Filler restriction#
A filler restriction is the most literal of the three axes: a constraint on
whoever occupies the FE slot — but, as the two devices below show, not always
the same kind of constraint. It is a claim about the FE's filler, not about
the FE itself, and it is independent of the other two axes: it says nothing
about whether Cook is a Role, a Parameter, or any of the other
concept-kinds from the first axis, and nothing
about which qualia type Cook carries in Apply_heat.
The axis runs on two genuinely different devices, not one.
The first is a class-membership expectation: a rel_hasontotype relation
from the FE to an @class frame — a frame that exists purely to represent a
DUL class inside FNBr's own frame inventory (see the
@class namespace). This is a migration
away from an older, now-legacy device: filler restrictions used to be recorded
as links to SemanticType entries (sty_sentient_1, sty_state_of_affairs_1,
sty_place_1, and so on); those have been carried over one-for-one into
@class frames (frm_class:sentient, frm_class:stateofaffairs,
frm_class:place...), and new filler restrictions are recorded against the
@class frame directly, not the old SemanticType row. This device answers
"what class does the filler belong to?" — the same question a filler
restriction has always asked.
The second is a coercion reading, and it asks a different question
entirely: not what class the filler belongs to, but whether the filler's own
content is interpreted as evoking a frame. rel_constraint_frame and
rel_constraint_framefamily record this. The relation doesn't run directly
from the FE to the constraining frame; a generic constraint_entity row names
what's constrained (the FE), what it's constrained by (a Frame, for
rel_constraint_frame, or a frame family, for rel_constraint_framefamily),
and a constraint group that lets several alternatives stand as a disjunction.
In Attracting_tourists, for instance, the Attraction FE carries two such
rows — one constrained by Natural_features, one by Buildings, both in the
same constraint group — recording that whatever fills Attraction is read as
evoking one or the other. This is a live, populated mechanism (over 3,700
rel_constraint_frame rows on FEs), not a proposal.
A class restriction and a frame constraint can sit on the same FE at once, and they're never in tension, because they answer different questions: is the filler a member of DUL class X, versus does the filler's content itself evoke frame Y. Neither one is derivable from the other — a filler can belong to the right class without evoking the expected frame, or vice versa.
This axis also absorbs the FEs that fall outside the six concept-kinds above.
FEs whose own semantics is a Quality/Region rather than a Concept —
Descriptor, Attribute, Value, Color, Shape — are described by their filler
restriction instead of a concept-kind, because the FE itself denotes a property
value rather than classifying a concept: frm_class:quality and
frm_class:region are themselves among the @class frames FEs are typed
against. FEs that denote an InformationObject — Name, Term, Text, Sign,
Document, Label, Title — are handled the same way, against
frm_class:informationobject.
Why this matters in practice#
Together, the three axes let a modeller describe a frame element far more precisely than a bare, frame-specific name alone can. Auditing a frame, or deciding how to name a new frame element, becomes three separate, focused questions instead of one vague one: what kind of concept is it, in its own right (its concept-kind), what part does this play in the event (qualia type), and what's allowed to fill it (filler restriction)? Keeping the three questions separate — rather than trying to answer all of them with one label — is what makes each answer sharp enough to actually be useful.