Defeasible Logic

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Defeasible Logic

Mark Proctor
Davide just got a first cut of Defeasible Logic in Drools. This is like a super charged TMS implementation, that allows users to handle conflicts in logical insertions. It introduces the following rule annotations
@Defeater
@Defeasible
@Defeats("rule1", "rule2", "rule3) // comma separated list of rules it defeats

The logical insertion now has a default value of "pos", but a second argument is provided to allow "neg" for negative to specific. Negative Logical insertions are inserted into the "neg" partition.

unit tests:
https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/test/java/org/drools/compiler/beliefsystem/defeasible/DefeasibilityTest.java
https://github.com/droolsjbpm/drools/tree/master/drools-compiler/src/test/resources/org/drools/compiler/beliefsystem/defeasible

What defeasible logic is and how it works is covered in a number of published papers, and it covers how ours works.
http://www.defeasible.net
http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=D5584FFD73C67EBDEB5384CD14EF1256?doi=10.1.1.59.6130&rep=rep1&type=pdf
http://spin.nicta.org.au/spindle/script/download.do?f=spindleUserGuide-2.2.2.pdf&d=DOCS
http://cs.uns.edu.ar/~grs/Publications/DeLP-ICLP-Color.pdf

Full list of publications:
http://www.governatori.net/research/pubs/defeasible.html

If you want to play, you'll need to build from master, and it will remain an experimental feature for some time. We can be contacted on irc, if anyone needs help:
http://www.jboss.org/drools/irc

Mark
_______________________________________________
rules-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/rules-dev
Reply | Threaded
Open this post in threaded view
|

Re: Defeasible Logic

rjr201
This post has NOT been accepted by the mailing list yet.
This is a really cool new feature. I'll have a more thorough read of the links you provide when I get some free time.

Very quick question though, is the idea that one "neg" is enough to remove a fact, regardless of how many rules support that fact? Or is it that there have to be more "neg" facts than "pos" for a fact to be removed?

I can see advantages of both approaches.