when no intent is matched and no answer is given in wolpham alpha we shoudl have a fallback mechanism to deduce answers
here are the bullet points of the slack discussion we had
Json Database by categorie
animals
"cow"
"domestic"
"mammal"
"genus"
"etc..."
"whatever is in wikipedia formatted right side table?"
persons
family
history
....
On intent failure, go to knowledge backend:
parse sentence for subject -> nltk lib?
try default backend (search wikipedia / user configurable)
ask user is that is correct
update with answer or ask user correct input
wiki fails, next backend, until ask user
Usage example:
is a cow an animal?
parse for subject = cow categorie = animal
check animal db for cow
yes
no
check wikipedia backend for cow
"wikipedia says yes, is this correct?"
yes - add to db
no - fall back to ask user backend "what is a cow?"
"a person"
"adding to db that cow is a person"
no animal categorie in db
"sorry, i dont know what an animal is"
creating a categorie for animal
check wiki backend for animal
populate db with examples
check animal db for cow
"is cow an animal"? can now be answered offline, we can expand this for general questions categorie
the real question is how to structure this data for easy and fast access, what if some item falls in several categories?
also there will be details in parsing the utterance for subject/categorie
Think of it as a fan shape made of nodes. The middle node is Sarah. The Sarah node is attached to a bunch of other nodes that "fan out", those nodes can be "human", "female", "family", "wife". Those nodes are ranked by order of importance from the perspective of the Sarah node, so:
Sarah
-> human
-> female
-> family
-> wife
It's the perspective that simplifies it. So for the cow:
cow
-> animal
-> herbovire
-> livestock
-> female
So you can see that there is an overlap in the "female" category.
Mycroft might then ask "Are all female women called Sarah cows?"
Your answer might be risky if you know a female called Sarah.
if we connect categories right it will be a powerfull tool to "deduce" answers
question - is humans a food?
check food categorie, no humans, check animal categorie ("parent" categorie of food), humans is an animal
answer - human is an animal, and animals are generally also food, i deduce humans are food is this correct?
yes - add humans to food categorie
no - "Humans are animals. Some animals are food, but not humans"
for learning we could later implement a password for certain categories (personal / secret) so personal can only be changed by password, and secret only accessed/changed by password
if we add timestamps to info we can also change wikipedia/wolphram skill to search db first and auto-update db if say a month elapsed
when no intent is matched and no answer is given in wolpham alpha we shoudl have a fallback mechanism to deduce answers
here are the bullet points of the slack discussion we had
Json Database by categorie
On intent failure, go to knowledge backend:
Usage example:
"is cow an animal"? can now be answered offline, we can expand this for general questions categorie
the real question is how to structure this data for easy and fast access, what if some item falls in several categories?
also there will be details in parsing the utterance for subject/categorie
Think of it as a fan shape made of nodes. The middle node is Sarah. The Sarah node is attached to a bunch of other nodes that "fan out", those nodes can be "human", "female", "family", "wife". Those nodes are ranked by order of importance from the perspective of the Sarah node, so: Sarah
It's the perspective that simplifies it. So for the cow: cow
So you can see that there is an overlap in the "female" category. Mycroft might then ask "Are all female women called Sarah cows?" Your answer might be risky if you know a female called Sarah.
if we connect categories right it will be a powerfull tool to "deduce" answers
question - is humans a food? check food categorie, no humans, check animal categorie ("parent" categorie of food), humans is an animal
answer - human is an animal, and animals are generally also food, i deduce humans are food is this correct?
for learning we could later implement a password for certain categories (personal / secret) so personal can only be changed by password, and secret only accessed/changed by password
if we add timestamps to info we can also change wikipedia/wolphram skill to search db first and auto-update db if say a month elapsed