Current section

Files

Jump to
macula_neuroevolution include lc_communication_events.hrl
Raw

include/lc_communication_events.hrl

%%%-------------------------------------------------------------------
%%% @doc Behavioral event definitions for Communication Silo (τ=55).
%%%
%%% Events related to signaling, vocabulary, and coordination.
%%%
%%% @end
%%%-------------------------------------------------------------------
-ifndef(LC_COMMUNICATION_EVENTS_HRL).
-define(LC_COMMUNICATION_EVENTS_HRL, true).
-include("lc_events_common.hrl").
%%% ============================================================================
%%% Signal Events
%%% ============================================================================
-record(signal_emitted, {
meta :: #lc_event_meta{},
sender_id :: individual_id(),
signal_id :: binary(),
signal_content :: term(),
intended_receivers :: [individual_id()] | broadcast,
honesty :: honest | deceptive
}).
-record(signal_received, {
meta :: #lc_event_meta{},
receiver_id :: individual_id(),
sender_id :: individual_id(),
signal_id :: binary(),
interpretation :: correct | incorrect | ambiguous
}).
-record(signal_interpreted, {
meta :: #lc_event_meta{},
interpreter_id :: individual_id(),
signal_id :: binary(),
intended_meaning :: term(),
interpreted_meaning :: term(),
accuracy :: float()
}).
%%% ============================================================================
%%% Vocabulary Events
%%% ============================================================================
-record(vocabulary_expanded, {
meta :: #lc_event_meta{},
population_id :: population_id(),
new_signal_id :: binary(),
signal_meaning :: term(),
inventor_id :: individual_id(),
vocabulary_size_after :: non_neg_integer()
}).
-record(vocabulary_contracted, {
meta :: #lc_event_meta{},
population_id :: population_id(),
removed_signal_id :: binary(),
removal_reason :: obsolescence | ambiguity | replacement,
vocabulary_size_after :: non_neg_integer()
}).
%%% ============================================================================
%%% Dialect Events
%%% ============================================================================
-record(dialect_formed, {
meta :: #lc_event_meta{},
dialect_id :: binary(),
population_id :: population_id(),
speaker_ids :: [individual_id()],
unique_signals :: non_neg_integer(),
formation_cause :: isolation | drift | innovation
}).
-record(dialect_merged, {
meta :: #lc_event_meta{},
dialect_a_id :: binary(),
dialect_b_id :: binary(),
merged_dialect_id :: binary(),
merge_cause :: contact | migration | normalization
}).
%%% ============================================================================
%%% Coordination Events
%%% ============================================================================
-record(coordination_achieved, {
meta :: #lc_event_meta{},
coordination_id :: binary(),
participant_ids :: [individual_id()],
coordination_type :: synchronization | division_of_labor | joint_action,
success_level :: float(),
communication_rounds :: non_neg_integer()
}).
-record(deception_detected, {
meta :: #lc_event_meta{},
deceiver_id :: individual_id(),
detector_id :: individual_id(),
signal_id :: binary(),
deception_type :: false_alarm | concealment | manipulation,
detection_confidence :: float()
}).
%%% ============================================================================
%%% Type Exports
%%% ============================================================================
-type communication_event() :: #signal_emitted{} | #signal_received{} | #signal_interpreted{} |
#vocabulary_expanded{} | #vocabulary_contracted{} |
#dialect_formed{} | #dialect_merged{} |
#coordination_achieved{} | #deception_detected{}.
-endif. %% LC_COMMUNICATION_EVENTS_HRL