kazeto / phillip

Abductive reasoner for NLP in C++
22 stars 5 forks source link

Inheritance and properties reasoning #4

Open bloodcarter opened 7 years ago

bloodcarter commented 7 years ago

Let knowledge: apple is fruit green is color fruit is food fruit has color

Let observation: green apple

Is there any way using Phillip to reason the following? food[apple] has color[green]

kazeto commented 7 years ago

Phillip cannot perform such reasoning because Phillip is a abductive reasoner and cannot use rules in deductive way.

What Phillip can do is to use rules backwardly and make hypothesis which can explain given observation. For instance, given observation of "John ate something green" and your KB (and knowledge of "Food is thing to eat"), Phillip applies rules to observation backwardly and will say that thing eaten is an apple.

bloodcarter commented 7 years ago

I see. Thanks. Is there any production ready deductive AND abductive reasoner library? Sorry, I''m not a scientist.

kazeto commented 7 years ago

Since abduction and deduction are based on completely different idea, there is not inference model to deal with both (as far as I know). However, probabilistic deductive inference model (ex. Markov Logic Networks) may be able to answer to your demands. So I recommend you to try following engines of MLNs:

bloodcarter commented 7 years ago

Yeah, I saw them. No, it's too complex. I need something simple, like Phillip...