clara

http://www.clara-rules.org/
jimbob 2018-05-07T15:53:19.000624Z

Has anyone explored the area of exploration for why rules left-hand-side did not meet the rules prerequisites for firing of the RHS?

2018-05-07T16:05:50.000055Z

@ben.borders In a way yes. That is, if I understand your question.

2018-05-07T16:06:48.000380Z

Not directly that though, instead you could consider a pattern to create complementary rules to the primary rules. These complementary rules were meant to catch the opposite case of the assertions.

jimbob 2018-05-07T16:09:40.000241Z

yes, thats exactly it.

jimbob 2018-05-07T16:11:26.000662Z

Interesting.. im assuming then there are multiple complements to each core “rule”. maybe the # of complements = the number of left hand constrints or something similar? unless your compllement rule that is generated has more complex logic

1✅
2018-05-07T16:11:50.000502Z

I think the structure of generated rules may depend on which sorts of things you need to capture

2018-05-07T16:12:22.000242Z

You could end up writing rules in an alternative fixed format that can generated several “tiers” of rules from it. so there was the typically rule where you tried to match, but then there were tiers of unsatisfied matches where different parts of the rule were successively removed

jimbob 2018-05-07T16:15:30.000436Z

ah interesting, so you made the rules very granular so that the complements might be easier to generate?

1✅
jimbob 2018-05-07T16:15:55.000042Z

well.. the main rule you cared about at least.

2018-05-07T16:17:43.000481Z

A really rough example.

2018-05-07T16:17:57.000252Z

In that example, you can see it’d get carried away if you tried to capture everything perhaps

2018-05-07T16:18:13.000375Z

but maybe you could split the “constraints” you want to test for into logical “chunks”

2018-05-07T16:18:52.000451Z

And when it comes to joining to other facts, you can do somewhat similar things

2018-05-07T16:19:13.000442Z

but you have to capture the case that facts you are joining to may not be satisfied themselves

2018-05-07T16:22:41.000661Z

So you have to basically just come up with a way to structure these aspects you care about, then probably write something to generate the rules via some extra metadata markup on what is hand-written

2👍
2018-05-07T16:23:30.000582Z

I don’t think it is a trivial problem to solve and is going to end up being domain dependent. I think that this may also bring up another interesting question though regarding perhaps comparing the forward-chaining (as used in Clara) vs a backwards chaining approach to the problem

jimbob 2018-05-07T16:27:32.000516Z

definitely! Thanks Mike this helps a lot!

jimbob 2018-05-07T16:27:40.000144Z

@alex.furmanov

2018-05-07T16:28:53.000469Z

No problem