I'd like to work on Hal's internal logic, but those people waiting for my emotions project to be completed will know how slow I work on things like this [

] I've promised myself to finish that project before I start anything else!!
vrossi made a great plug-in for logical reasoning, which does a little better than Hal's inbuilt reasoning and uses more natural language too.
One difficulty with deductive reasoning is when to use it. If used too much, we block some of Hal's more "creative" chat, not to mention that plain deductive logic can make for rather "dry" conversation. Another trick is to find linguistic patterns that we can trust to provide
good premises. And finally, ideally, we'd want the deductive process to be integrated with the rest of Hal's thoughts - at the moment (both in Hal internally, and in vrossi's plug-in) deductive thought is a seperate module which Hal can choose to use, but does not compare to his other thought modules. As freddy888 says, this needs to sound
natural - simply spitting out deductions is very robotic.
Hmm, here's an idea. If Hal knows A leads to B, and the user states A, Hal currently spits out B. How about pretending the user said B, and forming a response on
that! For example, if "it's cloudy" leads to "it's going to rain," and the user states "it's cloudy," then Hal should
not comment on "cloud" or blandly say "it's going to rain," but pretend the user said "it's going to rain" and respond to that. Hold on, let me feed that into Hal... righto, here's what the above idea would result in:
Grant: It's cloudy.
Hal: Into every life some rain must fall. (<-- Hal's response if I say "it's going to rain.")
I quite like that. Oh well, I'll add it to the massive to-do list.... [xx(]