Hi,
I’m currently using my bot (subbot.org) for simple information retrieval. If I’m studying physics, for example, I might enter an acceleration equation:
> an equation for acceleration is v_f = v_0 + a*t
> an acceleration equation is x = v_0*t + (1/2)(a * t^2)
Then later if I’m doing a problem, I might want to retrieve that information. But before I can ask it in a natural way I have to tell the bot:
> an equation for acceleration = an acceleration equation
> the acceleration equations = an equation for acceleration
> botname: if input =~ /^list (.*)/ then response = self.send(“logicagent: what is #{$1}?”); score += 2 end
Then I can ask the bot, later when I’m doing some problem:
> list the acceleration equations
And it will tell me:
the equations for acceleration is an acceleration equation, v_f = v_0 + a*t, an equation for acceleration, x = v_0*t + (1/2)(a * t^2)
Then later I might want to use a different syntax, so I have to do:
> the acceleration equations = the equations for acceleration
> list the equations for acceleration
the acceleration equations are the equations for acceleration, an acceleration equation, v_f = v_0 + a*t, an equation for acceleration, x = v_0*t + (1/2)(a * t^2)
—-
This is very basic IR, but allows me to add synonymous lookup expressions at runtime. I hope (soon) to automate some of the “A = B” expressions I’m currently entering explicitly, and to exclude these synonyms from the response listings. What I want to head towards is a system where I could tell the bot: “Learn about the equations of motion” and it would go out on its own time and search the web, reading wikipedia articles etc., then I could quiz it like: “I know that the final velocity is 0, the initial velocity is X m/s and the acceleration due to gravity is -9.8 m/s; how do I find distance?” and it would reply “First use v_f = v_0 + a*t to find the time then substitute that for t in x = v_0*t + (1/2)(a * t^2)”. And when it can do that it is a smaller jump to simply giving it the word problem and having it figure out how to do it itself