Class: SuperInstance::Equipment::ConsensusEngine::TripartiteDeliberation

Inherits:
Object
  • Object
show all
Defined in:
lib/equipment/consensus_engine/tripartite_deliberation.rb

Overview

TripartiteDeliberation - Pathos/Logos/Ethos 3-agent deliberation

Implements the classical rhetorical framework for argumentation through three fundamental modes of persuasion.

The tripartite framework originates from Aristotle’s Rhetoric and provides a comprehensive approach to argumentation:

  • Pathos: Appeals to emotion, intent, and human experience

  • Logos: Appeals to logic, reason, and rational argument

  • Ethos: Appeals to ethics, credibility, and moral character

Examples:

deliberation = SuperInstance::Equipment::ConsensusEngine::TripartiteDeliberation.new

pathos_analysis = deliberation.analyze(
  :pathos,
  'Should we reduce work hours?',
  'A company is considering a 4-day work week'
)

Instance Method Summary collapse

Constructor Details

#initializeTripartiteDeliberation

Creates a new TripartiteDeliberation instance



30
31
32
33
34
35
36
# File 'lib/equipment/consensus_engine/tripartite_deliberation.rb', line 30

def initialize
  @perspective_configs = {
    pathos: { threshold: 0.6, style: :collaborative },
    logos: { threshold: 0.7, style: :inquisitive },
    ethos: { threshold: 0.75, style: :adversarial }
  }
end

Instance Method Details

#analyze(perspective, proposition, context, previous_opinions = []) ⇒ Hash

Analyzes a proposition from a specific perspective

Parameters:

  • perspective (Symbol)

    The perspective to analyze from

  • proposition (String)

    The proposition to analyze

  • context (String)

    The context for deliberation

  • previous_opinions (Array<Hash>) (defaults to: [])

    Opinions from previous rounds

Returns:

  • (Hash)

    The perspective’s analysis



44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/equipment/consensus_engine/tripartite_deliberation.rb', line 44

def analyze(perspective, proposition, context, previous_opinions = [])
  case perspective
  when :pathos
    analyze_from_pathos(proposition, context, previous_opinions)
  when :logos
    analyze_from_logos(proposition, context, previous_opinions)
  when :ethos
    analyze_from_ethos(proposition, context, previous_opinions)
  else
    raise ArgumentError, "Unknown perspective: #{perspective}"
  end
end

#get_perspective_config(perspective) ⇒ Hash

Gets the configuration for a perspective

Parameters:

  • perspective (Symbol)

    The perspective to get config for

Returns:

  • (Hash)

    Configuration { threshold: Float, style: Symbol }

Raises:

  • (ArgumentError)


73
74
75
76
77
# File 'lib/equipment/consensus_engine/tripartite_deliberation.rb', line 73

def get_perspective_config(perspective)
  config = @perspective_configs[perspective]
  raise ArgumentError, "Unknown perspective: #{perspective}" unless config
  config.dup
end

#set_perspective_config(perspective, config) ⇒ Object

Sets the configuration for a perspective

Parameters:

  • perspective (Symbol)

    The perspective to configure

  • config (Hash)

    Configuration options { threshold: Float, style: Symbol }



60
61
62
63
64
65
66
67
68
# File 'lib/equipment/consensus_engine/tripartite_deliberation.rb', line 60

def set_perspective_config(perspective, config)
  current = @perspective_configs[perspective]
  return unless current

  @perspective_configs[perspective] = {
    threshold: config[:threshold] || current[:threshold],
    style: config[:style] || current[:style]
  }
end