Peter Hickman wrote a historically dazzling post, readable at: http://www.mailgate.org/comp/comp.ai.neural-nets/msg07244.html >"Arthur T. Murray" <mentifex / scn.org> wrote in message >> ATM: >> http://mind.sourceforge.net/index.html "The JavaScript AI Mind" >> is not vaporware. Yesterday, after the insertion of a psiDecay() >> module to remove stray activations from the simulated neurons of >> the AI based on spreading activation, the Mind began to function: PH: > Cut the [...]. > Heres my transcript... D:\My Documents>ruby fred.rb HUMAN: cats eat fish ROBOT: CATS EAT FISH HUMAN: fish eat bugs ROBOT: FISH EAT BUGS HUMAN: bugs eat dirt ROBOT: BUGS EAT DIRT HUMAN: cats eat ROBOT: CATS EAT FISH HUMAN: fish eat bugs ROBOT: Yes HUMAN: quit > The code in ruby follows... > Note that there is no removal of "stray activations from the > simulated neurons of the AI based on spreading activation" or > other such crap. Its clean, jargon free, took half an hour to > write and does more than your code. ATM: Upon careful inspection, the Ruby code, although praiseworthy and admirable by dint of ingenuity and brilliance, is not a Rubymind: http://mind.sourceforge.net/ruby.html -- still to be implemented! PH: > Note it can confirm that "FISH EAT BUGS". Now have I written an > AI that "builds up a miniature knowledge base (KB) of facts about > what animals eat" or just a look up table on ungrounded symbols. ATM: You have started Ruby AI; please consider releasing your code and other ideas at FAQTS : Computers : Programming : Languages : Ruby http://www.faqts.com/knowledge_base/index.phtml/fid/1000 on-line. >> The sample inputs were designed as a "worst-case" test in which >> English words jump from functioning as direct objects to subjects >> in the subject-verb-object (SVO) syntax required for user input. PH: > Well my code can handle your "worst-case" and do all this > jumping "from functioning as direct objects to subjects in the > subject-verb-object (SVO) syntax" that you seem so proud of so > lets try another session. ATM: Please also try a session with MSIE JavaScript of the AI Mind at http://www.scn.org/~mentifex/jsaimind.html -- version "1jan02A". There you will find the brand-new (31dec2001 and 1jan2002) coding of the "Rejuvenate()" function which will let the AI live forever. For the sake of robots, the Mentifex AI remains very much a Forth AI project which must first attain stability in JavaScript before http://www.scn.org/~mentifex/mind4th.html is brought up to date. PH: D:\My Documents>ruby fred.rb HUMAN: qwe asd zxc ROBOT: QWE ASD ZXC HUMAN: wer sdf xcv ROBOT: WER SDF XCV HUMAN: ert dfg cvb ROBOT: ERT DFG CVB HUMAN: qwe asd ROBOT: QWE ASD ZXC HUMAN: qwe asd zxc ROBOT: Yes HUMAN: quit > Gosh it even handles the "subject-verb-object (SVO) syntax" of > a language that doesn't even exist! My program must be smart!! ATM: >> The JavaScript AI Mind (q.v.) has no access to "physical concepts" PH: > Much like yourself. class Triple def initialize(a, b, c) @a = a.upcase @b = b.upcase @c = c.upcase display end def match2(a, b) if a == @a and b == @b then display return true else return false end end def match3(a, b, c) if a == @a and b == @b and c == @c then print "ROBOT: Yes\n\n" return true else return false end end private def display print "ROBOT: #{@a} #{@b} #{@c}\n\n" end end class Query def initialize @x = Array.new end def run response = '' while response != 'QUIT' do print "HUMAN: " response = gets.upcase.chomp list = response.split if list.length == 2 then ok = 0 @x.each {|y| if y.match2(list[0], list[1]) == true then ok = 1 break; end } if ok == 0 then print "ROBOT: Dont know\n\n" end elsif list.length == 3 then ok = 0 @x.each {|y| if y.match3(list[0], list[1], list[2]) == true then ok = 1 break; end } if ok != 1 then @x << Triple.new(list[0], list[1], list[2]) end else print "Please input SUBJECT OBJECT and optional VERB\n" end end end end Query.new.run