Data model
An event is not an emotion; an emotion is not a behavior. The working pipeline is event/stimulus → trigger → appraisal → contextual modifiers → emotional state → dimensions/intensity → response tendencies → consequences → possible transition. It is a conceptual structure, not a universal temporal sequence.
Entities
- Emotion: definitions, family, synonyms, qualitative or sourced numerical dimensions, context notes, co-occurrence, and linked concepts. Family may remain null; the seed includes broader affective orientations such as trust and curiosity, without claiming a settled classification.
- Trigger: a potentially relevant situation, non-exhaustive category, examples, contexts, associated appraisals and possible emotions.
- Appraisal: an interpretation such as fairness, threat, goal relevance, or perceived control.
- ResponseTendency: a possible action orientation, response category, context and consequences. No normal/abnormal response fields exist.
- Modifier: reusable contextual concepts; only explicitly connected modifiers apply to a relationship.
- Transition: source and destination emotions, trigger, appraisal, modifiers, transition type, strength, temporal structure, and qualifications.
- IntensityDescriptor: relative language tied to an emotion, context, population, optional sourced range. It is not a universal ladder.
- Source: bibliographic metadata and a verifiable URL/DOI when known.
- Evidence: a statement about a subject's field or a specific subject/predicate/object relationship, with status, scope and opposing/supporting sources.
- Contributor: opted-in public professional metadata and credential status, never private contact details.
- ExpertReview: a reviewer and claim, outcome, comments, sources, expertise domain, review date/version and conflict disclosure.
Stable identifiers
openemotions:emotion:anger identifies a concept independently of storage. The final component is the filename and slug. IDs are unique within the dataset. Slugs are unique within entity type; the same phrase may legitimately be both an appraisal and modifier. Internal UUIDs derive from these IDs and survive repeated imports.
External links use namespace:entity_type:slug, such as opensensation:sensation:unexpected-touch, only in external_references. Local references must resolve and match their declared target kinds. External references are not fetched or asserted to exist. There is no sibling runtime dependency.
Numeric and temporal semantics
Dimensions have qualitative values and optional numerical value, value_type, source, scale bounds, uncertainty, and notes. Measured, normalized and derived values require a source. Editorial numerical estimates must identify themselves and an explicit scale. Unknown values are null. No seed contains arbitrary numerical scores, probabilities, or durations.
Transitions expose onset, duration, decay, persistence, recurrence, escalation and de-escalation fields through a structured temporal object. These are currently unknown. Co-occurring emotion links support simultaneous states, without weights. Later weighted-state structures should remain separate from taxonomy records.
Canonical layout and versions
Each data/<collection>/<slug>.yaml validates against schemas/<kind>.schema.json. The model code generates the schemas; CI detects drift. created_at and updated_at are ISO dates. Software, dataset, and schema versions are distinct even when all start at 0.1.0.
The release digest hashes the normalized ordered records. Record-level status never grants evidence to every contained field. Individual relationship evidence must identify the exact existing target; contradictory reviews remain separate records.