AI Zone Admin Forum Add your forum

NEWS: survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

Can a ChatScript chatbot dream?

Was thinking about how humans dream and the process.

In one type of human dream, we take everyday scenarios and we modify the people, places, things and verbs to create a dream. We take a basic flow and our imagination modifies it, to create a new flow, so can be understood in different manner.

This pattern can be loosely replicated. The chatbot could also dream and learn from the dreams.  Replay conversations and replace nouns verbs and adjectives with similar concepts and then add dream or soft facts for the same.  Refer to these facts as dream content during dialogue. Or probably facts or relationships.

First step, replace part of the conversation sentences with similar words that are synonyms or that share one or more concepts.

Second step, process the revised content, but the new sentences could not be processed the same way that real user dialogue is processed. Any fact creation would need to be clearly identified as a dream fact.
Or marked as likely not as a fact.

Third step, add CS script to look for these dream facts and reference them if they are available.

Use case:
User:  i have a brother who likes to play frisbee
CS: creates fact.  User has brother. Brother plays frisbee. Brother likes frisbee.

CS: creates dream facts.
Revise sentence with synonyms and near concepts.
Use a special verb name. Normal verb, but prefixed by “dream_*”

User Dream_has sibling. 
Sibling Dream_enjoys playing_ballgames
Sinling dream_enjoys playing catch
brother dream_likes playing_ballgames

And a bunch of other variations

Or, there could be a special routine to review the past conversations and mark
Or modify the subject verb object relationships to include
Dream connections. 
During the next conversation, you can refer to these facts as soft facts
Or as dream related content

Example, ” I had a dream that you and your brother were playing catch.”





  [ # 1 ]

Dreaming chatbots has long been on my to do list, along with building an internal narrative. The tentative steps we’re taking towards it are through the knowledge map of triples/facts that the bot builds up and then let it take a random walk through that map, but with odd jumps and swaps along the lines of what you describe. To me this is more of a memory task that a conversation/Chatscript task per se. Similarly the bot also has an episodic memory bank which would be “pruned” each evening as they “sleep” and from that memories could be mixed and distorted to yield new dreams - which of course create their own episodic memories which may be used in late dreams! Ideally I’d like to have these dream environments actually realised with a virtual world such as Second Life so that the bot could have limited agency in the dream and experience it in the same was as it has its waking experiences.


  [ # 2 ]

To sleep – perchance to dream: ay, there’s the rub,
For in that sleep of death what dreams may come
When we have shuffled off this mortal coil…

Walking through the triples and facts could be in interesting journey.

One approach would be to get the facts and then to modify them with synonyms and concepts.
Then feed it back into the bot, to create new facts.
Without modification, the new facts would be indistinguishable from primary facts, or facts learned from real experiences.
They would probably need to be modified, where needed, to be some kind of dream fact. The verb could be used for this.
It could be the same verb but with some kind of prefix or marker that it is a dream SVO.

To start, I guess :userfacts could be dumped to a file with some special markers.
Then fed back into CS which recognizes these markers as dreams.
And then creates triples.
The trick is to find strong synonyms for the subject / verb / object, “SVO”, and replace them before you create the triples.
The new triple would need to have a new verb that designates it as a dream fact.
Without this, it would be impossible to know if the fact is a strong or real fact.
This could also be done with concepts. Burst the SVO across concepts and do the same.
But your concept list would need to be curated in some manner, or you will get a lot of “junk” or poorly formed triples.

I am going to explore the “BYTE_CODE QUERY LANGUAGE” within LIVEDATA/system/queries.txt to see what can be done.


  login or register to react