class Wongi::Engine::AlphaMemory
Attributes
betas[R]
rete[R]
template[R]
Public Class Methods
new(template, rete = nil)
click to toggle source
# File lib/wongi-engine/alpha_memory.rb, line 7 def initialize template, rete = nil @template = template @rete = rete @betas = [] @wmes = [] @frozen = false end
Public Instance Methods
activate(wme)
click to toggle source
# File lib/wongi-engine/alpha_memory.rb, line 15 def activate wme wme.overlay.add_wme(wme, self) # TODO: it used to activate before adding to the list. mandated by the original thesis. investigate. it appears to create duplicate tokens - needs a remedy in collecting nodes betas.each do |beta| beta.alpha_activate wme end end
deactivate(wme)
click to toggle source
# File lib/wongi-engine/alpha_memory.rb, line 23 def deactivate wme wme.overlay.remove_wme(wme, self) betas.each do |beta| beta.alpha_deactivate wme end end
inspect()
click to toggle source
# File lib/wongi-engine/alpha_memory.rb, line 36 def inspect "<Alpha #{__id__} template=#{template}>" end
size()
click to toggle source
# File lib/wongi-engine/alpha_memory.rb, line 44 def size wmes.count end
snapshot!(alpha)
click to toggle source
# File lib/wongi-engine/alpha_memory.rb, line 30 def snapshot! alpha alpha.wmes.map( &:dup ).each do |wme| activate wme end end
to_s()
click to toggle source
# File lib/wongi-engine/alpha_memory.rb, line 40 def to_s inspect end
wmes()
click to toggle source
# File lib/wongi-engine/alpha_memory.rb, line 48 def wmes Enumerator.new do |y| rete.overlays.each do |overlay| overlay.raw_wmes(self).dup.each do |wme| y << wme end end end end