Drools with imperfect knowledge and logic

72 views
Skip to first unread message

rickhoro

unread,
Mar 3, 2016, 7:43:41 PM3/3/16
to Drools Usage
I am new to knowledge-based systems and new to Drools, and trying to figure out if Drools will work for my project, and how best to use it. 

The project is a medical diagnostic and treatment system for a particular complex disease. From the research that I've done so far, I believe that I will need to use imperfect knowledge and logic. This makes sense, as diagnoses are sometimes incorrect or unsure, and medical tests always have false positives and negatives; in fact, positive and negative results are often decided statistically. Furthermore, treatments may work on some people and not others. In some cases, likelihood that a chosen treatment will succeed can be predicted based on certain measurable factors for a patient. In other cases, outcomes are less well understood. In short, everything seems to be based on imperfect knowledge, with varying degrees of success. 

Based on the above, I am looking for advice...specifically:
  1. Can the current Drools release 6.4 (beta) support such requirements?
  2. Do I need to use drools-chance? If so, does it currently work with 6.4? I notice that it hasn't been updated in 2 years! Is it still a live project? I can't use this if it may not be available months into my project.
  3. Should I be looking to use drools bayesian support, which doesn't appear to be complete yet. For example, is there DRL support for this? Please correct me if I'm wrong.
I would very much like to use Drools due it's being Java based, has sufficient tool support (Eclipse!) and I like the DRL rule description language. But I really could use some help here. There seem to be a variety of unfinished methods of using imperfect knowledge and logic. I don't completely understand the differences between them, so could use advice on that front, but also on which of these technologies is complete enough to use with Drools. 

Thanks very much,

Rick

Mark Proctor

unread,
Mar 3, 2016, 7:49:13 PM3/3/16
to drools...@googlegroups.com
On 4 Mar 2016, at 00:43, rickhoro <rick...@gmail.com> wrote:

I am new to knowledge-based systems and new to Drools, and trying to figure out if Drools will work for my project, and how best to use it. 

The project is a medical diagnostic and treatment system for a particular complex disease. From the research that I've done so far, I believe that I will need to use imperfect knowledge and logic. This makes sense, as diagnoses are sometimes incorrect or unsure, and medical tests always have false positives and negatives; in fact, positive and negative results are often decided statistically. Furthermore, treatments may work on some people and not others. In some cases, likelihood that a chosen treatment will succeed can be predicted based on certain measurable factors for a patient. In other cases, outcomes are less well understood. In short, everything seems to be based on imperfect knowledge, with varying degrees of success. 

Based on the above, I am looking for advice...specifically:
  1. Can the current Drools release 6.4 (beta) support such requirements?
  2. Do I need to use drools-chance? If so, does it currently work with 6.4? I notice that it hasn't been updated in 2 years! Is it still a live project? I can't use this if it may not be available months into my project.
Drools-chance has the potential to do more, but it’s not been updated in a while and is incomplete in many ways. Davide the author might be able to provide more information.

You can do some type of defeasible reasoning with Drools already, without drools-chance. And this might be your best starting point. Have a look at the bird fly example, in drools-examples.

  1. Should I be looking to use drools bayesian support, which doesn't appear to be complete yet. For example, is there DRL support for this? Please correct me if I'm wrong.
This is still early stage, nothing you can use here yet. I’m hoping to finish this one of myself, later this year.

I would very much like to use Drools due it's being Java based, has sufficient tool support (Eclipse!) and I like the DRL rule description language. But I really could use some help here. There seem to be a variety of unfinished methods of using imperfect knowledge and logic.
There has been a lot of early R&D, the problem is trying to find the team to maintain these and finish them. This has mostly been a lone endeavour of one community developer, we’ve struggled to find others who would also contribute in this, very exciting, area.

I don't completely understand the differences between them, so could use advice on that front, but also on which of these technologies is complete enough to use with Drools. 

Thanks very much,

Rick

--
You received this message because you are subscribed to the Google Groups "Drools Usage" group.
To unsubscribe from this group and stop receiving emails from it, send an email to drools-usage...@googlegroups.com.
To post to this group, send email to drools...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/drools-usage/dec2cbfe-71e1-4acd-8270-5adf24138dc2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

rickhoro

unread,
Mar 3, 2016, 8:34:43 PM3/3/16
to Drools Usage
Thank you, Mark. I have looked at the defeasible logic support already and would probably want to use it. It looks very useful. 

I'd love to offer to help, but I suspect that it would end in disappointment. Just too overloaded, plus family commitments. Working 16 hour days just won't happen at this particular time ;-).

I do have a folllow-up question, however. With what I have described as my project, can I do this with the current Drools? And specifically, if I need rules that fire based on statistical probability, e.g. A is true (.7) AND B is false (.5), and result in multiple conclusions, each with a belief level (0-1)? Can this be done in Drools?

Thanks again!

Mark Proctor

unread,
Mar 3, 2016, 8:38:37 PM3/3/16
to drools...@googlegroups.com
While I have we can eventually offer this natively, there are ways to build simple systems for this onto power of drools.

It's all just facts. So you make you objects to hold degrees, and then use those in your conditions too.

Mark

rickhoro

unread,
Mar 3, 2016, 9:04:46 PM3/3/16
to Drools Usage
I thought that might be the case. The point of supporting this natively, then, would be what? Just not needing to track the probabilities in the business objects and facts and giving the system a consistent syntax and semantics? By degrees, you mean what I am calling probabilities?, e.g. degree of belief in fact A?
To unsubscribe from this group and stop receiving emails from it, send an email to drools-usage+unsubscribe@googlegroups.com.

Mark Proctor

unread,
Mar 4, 2016, 7:50:44 AM3/4/16
to drools...@googlegroups.com
the syntax and language is less verbose, there is less for you to think about as a user, and probably a little on the performance side too.

Mark

rickhoro .

unread,
Mar 4, 2016, 7:58:32 AM3/4/16
to drools...@googlegroups.com
Mark, so bottom line you believe that Drools can work for my application? I will give it a go since I there's a lot to like about Drools from my perspective...and thank you for your very quick responses. 

Mark

-- 
You received this message because you are subscribed to the Google Groups "Drools Usage" group.
To unsubscribe from this group and stop receiving emails from it, send an email to drools-usage...@googlegroups.com.
To post to this group, send email to drools...@googlegroups.com.

--
You received this message because you are subscribed to a topic in the Google Groups "Drools Usage" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/drools-usage/osXVg0WHP6Q/unsubscribe.
To unsubscribe from this group and all its topics, send an email to drools-usage...@googlegroups.com.

To post to this group, send email to drools...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Rick Horowitz

Reply all
Reply to author
Forward
0 new messages