Open Glavin001 opened 9 years ago
Essentially making the InputEntity
for raw data (right from the senses) and IntentEntity
into ThoughtEntity
and the IntentRouter
would be the ThoughtRouter
.
Thought entities
should have a field for Thought Handler History
or something similar, that handlers would be added to if the Thought
passed through them.
By including this, we could take a Thought
at the end of it's life, such as when it is sent to Output
, and then compare the meta data for the thought
and the thought handler history
and further optimize, such as with artificial neural networks.
There could also be a supervised learning mode for Donna that would allow the user to train this artificially intelligent thought router.
Also utilize the confidence
factor. Picture an Artificial Neural Network
with each input flowing through the connections joining each of the nodes until it reaches the output.
Now consider that each of the hidden nodes represent a thought handler / process / transformer
. In an ANN, each node has a coefficient. In the thought pathway
, the coefficient reflects the bias of confidence for each thought handler
(hidden node). Each thought handler
should have their own confidence for their result given the input (thought entity
), and that confidence is then influenced by their own coefficient as learned in the thought pathway
network.
Sense
-> Sense/Input receiver pluginThought
-> Thought handler pluginOutput
-> Output handler plugin"Play <song name here>
on YouTube" (Sense) -> Speech-to-text (Thought) -> text-to-intent with Wit.ai (Thought) -> intent processing for intent play_youtube_video
(Thought) -> Play video on YouTube (Output)
<song name here>
" (Sense)
thought entity
data type: audiothought entity
data types: audiothought entity
data types: textthought entity
data types: textthought entity
data types: Intentplay_youtube_video
(Thought)
thought entity
data types: Intentthought entity
data types: N/Aoutput entity
data type: YouTubeVideoIntent
would receive this Thought entity
however only those applicable to play_youtube_video
should process it.Have an expiry date and date of last access attached to each of the Thought entities
? Older thoughts can be pushed from short-term into long-term memory and read later.
Thought entities
should have keywords associated to them such that they can be "primed". Priming Priming is an implicit memory effect in which exposure to one stimulus influences a response to another stimulus. Donna is constantly receiving stimulus and priming is an important aspect of making sure she reacts appropritely.
Consider integrating with Node-RED! https://github.com/node-red/node-red
This looks interesting (especially the idea of using Node-RED) - would like to contribute to this. How much work have you done on this and could you provide any pointers to get started?
Similar to Neural pathways except on a larger, more modular scale.
While neural pathways connect neurons throughout distant areas of the brain, Donna's
thought pathways
would represent traversals throughthought handlers
.A
thought handler
is a function that transforms athought entity
, given it has an expected input and output data type that the handler supports processing. While the brain has clusters of neurons that connect to each other and eventually learn how to process information passing through them (neural network), athought handler
is like a pre-computed neural network that is specialized for processing certain type of data and can output another specific type of data. For instance, there are areas of the brain responsible for understanding speech. In Donna, those areas would be represented as individualthought handlers
, such asSpeech-to-Text handler
that supports input typeaudio
orspeech
and output type oftext
. Donna could have anotherthought handler
fortext to Intent
, such as wit.ai.A
thought entity
can be thought as a unit describing a chunk of related information that can be processed by Donna.Sensory input (
Input entities
) will be received by Donna and then be converted toThought entities
that can be passed throughthought pathways
in the same way information in the human body's nervous system passes through the neurons in the brain. Graph traversal algorithms could be implemented to improve efficiency / precision of traversal frominput entity
throughthought handlers
. Neural networks could also be used to further optimize whichthought handlers
are used more often in different cases.