<div dir="ltr">Hi Drools guys.<br><br>I just asked the <a href="http://stackoverflow.com/questions/18219841/using-drools-fusion-to-compute-overlaps-of-many-intervals">following question on StackOverlow</a>.<br>Could you please help :<br>

<br><div class="" style="margin:0px 5px 5px 0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;width:660px;line-height:18px;color:rgb(0,0,0);font-family:Arial,&#39;Liberation Sans&#39;,&#39;DejaVu Sans&#39;,sans-serif">

<p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;clear:both;word-wrap:break-word">I am already using Drools to do some <strong style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">preprocessing of an allocation problem</strong> (resources vs operations). The operations are already time <strong style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">intervals</strong> but I did not need to leverage the Drools Fusion features yet.</p>

<p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;clear:both;word-wrap:break-word">There is a new requirement for having some <strong style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">attributes of my resources changing over time</strong>.</p>

<p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;clear:both;word-wrap:break-word">I am willing to model this (the change of values over time) as <strong style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">&quot;events&quot; in Drools</strong> and take advantage of Drools Fusion, in <strong style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">Cloud</strong> mode.</p>

<p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;clear:both;word-wrap:break-word">Hence I will have to match those &quot;dynamic&quot; attributes events against my operations (again declared as events in Drools fusion). This will require Drools to <strong style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">compute a great amount of intervals overlaps</strong>.</p>

<p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;clear:both;word-wrap:break-word">I have several questions :</p><ul style="margin:0px 0px 1em 30px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;list-style-position:initial">

<li style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;word-wrap:break-word">I have found the <strong style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">overlap</strong> operator to be kind of counter-intuitive, and to not actually process<strong style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">overlap</strong> as we usually describe it. I would expect [a;b] and [c;d] to overlap if <strong style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">(b &gt; c) and (a &lt; c)</strong>. Is there a time operator for that ? Or should I use a composition of several time operators ?</li>

<li style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;word-wrap:break-word">Does Drools Fusion uses any kind of internal optimization for this kind of problem ? Naively matching N intervals against M intervals would require <strong style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">0(N x M)</strong> operations. I have found a way to go down to <strong style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">(M x log(M) + N x log(N))</strong>, by sorting the intervals beforehand : Should I prepare the pair of overlaps for Drools in advance ?</li>

<li style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;word-wrap:break-word">Related to the previous question : Is there any benefit in this case (in term of performances), of using <strong style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">Drools Fusion</strong> instead of <strong style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">regular Drools</strong> together with conditions over timestamps and duration ?</li>

</ul><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;clear:both;word-wrap:break-word">Thanks for your advice<br>Brgds,</p></div><div class="" style="margin:0px 0px 5px 5px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;width:660px;line-height:18px;color:rgb(0,0,0);font-family:Arial,&#39;Liberation Sans&#39;,&#39;DejaVu Sans&#39;,sans-serif">

<p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;clear:both;word-wrap:break-word">-- Raphael</p></div></div>