Hi, great project there
Hi, and thanks!
May I ask:
* What kind of logic do you use (first order, higher order, probability network, type theory, calculus of constructions, ...)?
The logic in its present state is pretty simplistic and fuzzy, but nothing formal.
Every time "logic" is conveyed (subject-action-subject relationship, with a "truth" value of true/false/maybe, and optionally a conditional), it's added to to a knowledge base.
When queried or assessing the knowledge base, it queries all items with matching subjects/actions, and takes the sum of the "truth" values (1 for true, 0 for maybe, -1 for false) and plugs them all into a sigmoid function for normalization.
If the result is between 1 and 2/3, the query is deemed "true"; if the result if between 1/3 and 2/3, the result is deemed "maybe" (and considered a conflict worth inquiring about if this is due to contradictory statements), and if less than 1/3 then the result is deemed false.
If conditionals are involved, then the dependencies are recursively checked.
* Did you plan or have already implemented induction?
As in inductive reasoning? I've given it some thought, though at the moment it's not supported. When the current logic system is stable, I'd like to move on to implementing it.
* Did you plan a natural language interface?
There's a very rudimentary proof of concept that uses the knowledge base to infer the structure of natural language. I believe it was packaged with the source, but it's far from efficient or reliable and hasn't been maintained in several years.
At some point I'd like to dedicate more time to processing "raw" natural language, though my main focus as of late has been modeling the dynamics of conversation and facilitating coherent and even deliberately calculated responses.
* How much would it take to turn Fadela into a scientist?
It would probably require a complete overhaul of the algorithms and processes in use and the project's application stack, as the current architecture isn't nearly as stable, efficient, or expressive as it ought to be for the kinds of problems a scientist would have to deal with. The software also currently has no support for learning mathematics, so that's a big roadblock.
I'm deeply hesitant about taking the project in the direction of an expert system, but on the other hand, the capacity to put forth great questions given a rich set of observations wouldn't be a bad long-term objective.
Thanks for the link. I added to my website.
Looks good. I like the inferences and the ability to learn rules on the fly.
Thanks!
Wondered what ever happened to you after all this time.
Thanks for sharing and perhaps we can learn better techniques for our own experiments from your efforts.
Best!
Hey, long time no see!
I expressed the intent to open up the source code sometime last year, but decided that before I did so I wanted to at least demonstrate that a string of coherent conversation - logical, informal, and transitioning between the two - was possible with the project's current design.
I laid out some guidelines for what such a demo conversation would look like, and then set out to realize it. The two main hurdles - aside from making time in between life's demands - were resolving a large number of previously hidden bugs, and bootstrapping the conversational sequence. There were also certain project features in the demo requirements that didn't previously exist, so they had to be added and verified as well.
If there's anything from this project that I think may be of use to others, it's the applicability of a Lisp-like intermediate language for conveying otherwise complicated sentence structures, and the distillation of sentences to sequences of vectors for easier analysis.