A Participant is an Edge that specifies the semantic role of an entity involved in an event within a predication.

Event Node (verb)
    ├─ PARTICIPANT Edge (role=Agent) ──→ Entity Node
    ├─ PARTICIPANT Edge (role=Theme) ──→ Entity Node
    └─ PARTICIPANT Edge (role=Instrument) ──→ Entity Node

Design Principles

Separation Principle

CategoryBelongs toExamples
ParticipantsEvent levelAgent, Theme, Recipient
Pragmatic infoContext/Claim levelSpeaker, Listener, Evidentiality

Speaker, Listener, and Source (information origin) are not participants but are handled in Qualifier or Context/Claim.

Encoding

  • 4 bits (0x0~0xF), up to 16 semantic roles
  • Pattern matching via SIMD bit operations

Semantic Role List (16)

Core Participants

IDCodeRoleDefinitionExample
0x0AGTAgentThe entity that intentionally performs an action“John kicked the ball”
0x1EXPExperiencerThe entity that experiences emotion/cognition/perception“Mary was sad”
0x2THMThemeThe entity that moves or whose state is described“John kicked the ball”
0x3PATPatientThe entity whose state changes due to an action“The window broke”
0x4RCPRecipientThe entity that receives something“He gave the book to Mary”
0x5BNFBeneficiaryThe entity that benefits from an action“Made it for the child”

Instruments & Means

IDCodeRoleDefinitionExample
0x6INSInstrumentThe tool used to perform an action“Drove the nail with a hammer”
0x7MNRMannerThe way an action is performed“Ran quickly”

Spatial

IDCodeRoleDefinitionExample
0x8LOCLocationThe place where an event occurs“Lived in Seoul”
0x9SRCSourceThe starting point of movement“Departed from home”
0xADSTDestinationThe ending point of movement“Went to school”
0xBPTHPathThe waypoint of movement“Went through the park”

Causal

IDCodeRoleDefinitionExample
0xCCAUCauseThe cause of an event“Cancelled because of rain”
0xDPRPPurposeThe purpose of an action“Went to exercise”

Others

IDCodeRoleDefinitionExample
0xECOMComitativeThe accompanying entity“Went with a friend”
0xFATRAttributeState/attribute predication“The sky is blue”

Participant Edge Structure

PARTICIPANT Edge {
    source:     Event SIDX       // verb node
    target:     Entity SIDX      // entity node
    role:       4-bit            // semantic role (0x0~0xF)
    gram_role:  2-bit (optional) // grammatical role (subject/object/complement)
    focus:      4-bit (optional) // emphasis level (0~15 → 0.0~1.0)
    quant_ref:  TID (optional)   // quantifier reference
}
FieldBitsDescription
role4Semantic role (required)
gram_role20=unspecified, 1=subject, 2=object, 3=complement
focus4Informational importance (0=background, 15=core emphasis)
quant_ref16Quantifier TID for “every”, “most”, etc.

Theme vs Patient

RoleState changeExample
ThemeNone (movement/description)“threw the ball” (ball unchanged)
PatientYes (affected)“broke the glass” (glass state changed)

In practice, they can be merged as Theme and distinguished by verb semantics when needed.

Examples

Simple sentence: “John gave Mary a book”

Event: give.v.01
├─ PARTICIPANT (AGT) → John
├─ PARTICIPANT (THM) → book
└─ PARTICIPANT (RCP) → Mary

Complex sentence: “Because of rain, I ran quickly from home to school with a friend”

Event: run.v.01
├─ PARTICIPANT (AGT) → [speaker]
├─ PARTICIPANT (CAU) → rain
├─ PARTICIPANT (COM) → friend
├─ PARTICIPANT (SRC) → home
├─ PARTICIPANT (DST) → school
└─ PARTICIPANT (MNR) → quickly

State predication: “The sky is very blue”

Event: be.v.01
├─ PARTICIPANT (THM) → sky
└─ PARTICIPANT (ATR) → blue (focus=15)

Active/Passive Normalization

Surface formAgentTheme
“Apple acquired Tesla”AppleTesla
“Tesla was acquired by Apple”AppleTesla

Normalized to the same pattern during the parsing stage.