Yes the Consciousness is kind of complicated. It models human consciousness, i.e. it influences what is on the bot's mind.
Basically what is does is, when the bot receives input, it walks the input objects and all related objects and increases each objects "consciousness" state by a degrading percentage. So objects that are highly related to recent input score a higher conscious level, and objects that are not related fade to a lower conscious level.
That is pretty much all the Consciousness does.
The bot's knowledge and all processing is object oriented. Any object can be related to any other object, and an object can have the same relationship to many other objects. Each relationship maintains a correctness level from -1 to +1 (-1 = strongly not related, 0 = unknonwn, +1 = strongly related, 0.5 = related).
So when you ask an object for a relationship, like person.name it returns the most "conscious" related object, which is computed using the correctness and consciousness level.
So for example if a bot knew its name was 'Bob' and 'Bobby',
user: hi Bob
bot: hello
user: what is your name?
bot : My name is Bob
or,
user: hi Bobby
bot: hello
user: what is your name?
bot : My name is Bobby
So the Consciousness lets the bot resolve what a word or relationship refers to in context, when the word or relationship can have multiple meanings.
|