© The Emotion Quotient← SplashAtlas

2. Ontology Design — Schema, Edge Semantics, and Representational Model

Human Emotion Ontology (HEO) · Schema version 1.0.0

2.1 Design Goals

The ontology is designed to answer the question: can it represent the emotional states and transitions a real human might experience, rather than merely providing a dictionary of emotion words? The design follows from that goal:

    of 18 edge types; similarity, opposition, blending, transition, co-occurrence, amplification, inhibition, motivation, expression, physiology, appraisal, and culture are all first-class.

      Contested nodes carry multiple parents/groupers, low confidence, and notes documenting the dispute.

        desire, motivation, appraisal, physiological state, behavioral tendency, trait, sentiment, and mental state are distinct node categories (see §1.4 of the research report). The graph can be filtered to "emotions only" or queried across categories.

          unsupported, strength is strong | moderate | weak | unknown and strength_value is absent. No numeric similarity is fabricated.

            level and an evidence status, with citation keys resolved in data/ontology-meta.jsonsources.

            2.2 Node Schema

            See schema/emotion-node.schema.json (JSON Schema draft 2020-12). Key fields:

            FieldMeaning
            idStable identifier, namespaced: emotion., mood., feeling., drive., need., motivation., desire., appraisal., physio., behavior., trait., mental., meta., system., cultural., cat. (category roots), grp. (subcategory groupers), abstract.
            categoryOne of 17 ontological kinds (see research report §1.4)
            subcategoryFiner class: basic_emotion, social_emotion, self_conscious_emotion, moral_emotion, epistemic_emotion, aesthetic_emotion, prospective_emotion, retrospective_emotion, empathic_emotion, mixed_emotion, cultural_emotion, mood_state, homeostatic_drive, appraisal_type, affective_trait, neurobehavioral_system, category_grouper, superordinate, …
            definitionConcise definition distinguishing the state from near neighbors
            synonymsAlternative labels for the same concept
            near_synonymsIds of distinct-but-close states (generates near_synonym_of edges)
            parentsIds of direct superordinates (generates subtype_of edges); children is computed
            dimensionsPrototypical valence/arousal/dominance (+ optional approach-avoidance, certainty, agency, sociality, temporal orientation). Estimates — see §2.6
            common_triggers, appraisals, physiological_associations, behavioral_tendenciesContent fields; the last three also generate edges
            duration, object_directednessEmotion-episode vs. mood-like structure
            cultural_scopebroadwestern_biasculturally_specificunclear
            confidence, evidence_status, evidenceConfidence model (see 05-confidence-model.md)
            theoretical_frameworksWhich traditions treat this as a genuine construct

            2.3 Edge Schema and Type Semantics

            See schema/relationship.schema.json. Edge types and their semantics:

            TypeDirectionalSemantics
            subtype_ofyesClass–subclass. Generated from every parent link.
            is_ayesInstance-of. Reserved for instance nodes (none currently; documented for future use, e.g., "this person's state at t").
            part_ofyesWhole–part within a construct (e.g., appraisal_process part_of emotion episodes; valence/arousal/dominance are parts of core affect).
            component_ofyesInverse of part_of (derivable; not emitted separately).
            blend_ofyesTarget is a combination of source + sibling components (component → blend).
            similar_tonoContinuous similarity (non-hierarchical closeness).
            near_synonym_ofnoNear-interchangeable terms.
            opposite_ofnoBipolar contrast (Plutchik pairs, circumplex opposites, semantic contrasts).
            co_occurs_withnoFrequently experienced together (mixed emotions, background+foreground).
            amplifiesyesSource intensifies target.
            inhibitsyesSource dampens target.
            transitions_toyesPeople commonly move from source state to target state (temporal dynamics).
            often_follows / often_precedesyesWeaker temporal regularities; mirrors of each other (both emitted for query convenience).
            triggered_byyesSource state is elicited by the target (used for non-appraisal elicitors: fatigue → irritation, pain → anger, systems → emotions).
            appraised_asyesSource state characteristically involves the target appraisal.
            motivatesyesSource state instigates the target motivation/behavior.
            behavioral_expression_ofyesTarget is the expressive behavior of source.
            physiological_associationyesSource co-occurs with target bodily state (weakly and inconsistently; see disagreement registry).
            culturally_related_tonoCultural concept maps partially onto the target concept.

            Design choices worth noting:

            similar (fear ≈ anxiety) without a person typically transitioning between them; and a transition (threat → fear → relief) may pass through dissimilar states. This is the distinction the field's static taxonomies usually lack.

            materialize both directions. directional: false marks the symmetry.

            but a blend can also be a node that co-occurs with or transitions to its components.

            2.4 The Hierarchy (Category Roots and Groupers)

            Every node has at least one parent. Structural nodes:

            desire, appraisal, physiological_state, behavioral_tendency, trait, sentiment, mental_state, affective_system, meta_state).

            positive_emotion, negative_emotion, social_emotion, self_conscious_emotion, moral_emotion, epistemic_emotion, aesthetic_emotion, prospective_emotion, retrospective_emotion, empathic_emotion, mixed_emotion, cultural_emotion, homeostatic_drive, appraisal_type).

            Because subcategory groupers are themselves nodes, the hierarchy is queryable: emotion.guilt is subtype_of cat.emotion, grp.self_conscious_emotion, grp.moral_emotion, and grp.negative_emotion; emotion.fear is subtype_of cat.emotion, grp.basic_emotion, and grp.negative_emotion. A machine-readable taxonomy tree can be derived directly from subtype_of edges (see 03-taxonomy.md).

            2.5 Representing Concurrent Affect, Intensity, and Transitions

            The ontology's schema supports a state-space representation that no single JSON node expresses:

            Momentary state. A person at time t is a vector over node ids. The graph places soft constraints on plausible vectors: co_occurs_with edges mark pairs that frequently co-activate; opposite_of edges mark pairs unlikely to co-activate strongly; inhibits edges mark causal damping; amplifies marks escalation. Representing a moment as {Fear: 0.7, Curiosity: 0.6, Excitement: 0.4, Sadness: 0.2} is fully consistent with the schema; the weights are degrees of activation/prototypicality (a blend of fuzzy-set and appraisal-intensity readings), not physiological measurements.

            Blends. blend_of edges model composition: nostalgia = joy + sadness (Sedikides et al. 2015), schadenfreude = pleasure + resentment (Smith et al. 1996), heartbreak = love + grief. Where Plutchik's dyads are idiosyncratic (e.g., guilt = joy + fear), confidence is low and the dispute is recorded.

            Transitions. transitions_to edges form directed paths, e.g.: uncertainty → concern → fear → panic; desire → anticipation → frustration → anger; loss → sadness → grief → resignation; threat → fear → relief; injustice → anger → resentment; achievement → pride → confidence. The research report and 04-disagreement-registry.md note which transitions have direct empirical support (e.g., frustration → aggression, Berkowitz 1989; guilt → reparation, Tangney & Dearing 2002) versus which are plausible modeling choices.

            Intensity. Intensity is not a separate node type; it is (a) the arousal and dominance dimensions, (b) intensity-pole nodes already present (irritation → anger → rage; unease → anxiety → terror), and (c) a free parameter in the state-vector representation.

            2.6 Dimensional Estimates — What the Numbers Mean and Don't Mean

            Every node with a dimensions object carries valence ∈ [−1, 1], arousal ∈ [0, 1], dominance ∈ [−1, 1], and optional appraisal-like dimensions (certainty, agency, sociality, temporal_orientation), all marked confidence: low with the note that they are prototypical estimates anchored on:

            English lemmas);

            These values are useful for plotting (the Valence × Arousal map view), clustering, and approximate inference. They are not measurements of any individual's state and should not be treated as ground truth. See 05-confidence-model.md.

            2.7 Graph-Database Readiness

            The datasets load directly into any property-graph system:

            edges = typed relationships with strength, confidence, evidence_status.

            directional: false edges can be added in both directions or treated as undirected.

            to properties; subtype_of maps to rdfs:subClassOf; part_of to dcterms:isPartOf; opposite_of to a custom property.

            tools/inspect_graph.py is a working minimal loader and integrity checker (validates node/edge existence and non-redundant symmetric storage). A NetworkX one-liner example is in the README.

            © 2026 The Emotion Quotient·by Zachary Loeber