<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">I created a test case which shows a
      combination of traits+BC<br>
      <br>
      <a class="moz-txt-link-freetext" href="http://pastebin.com/Wrq6Hj5L">http://pastebin.com/Wrq6Hj5L</a><br>
      <br>
      it's pending a tiny but critical bug fix in core, so it won't be
      "officially" available<br>
      until early next week. <br>
      <br>
      What essentially happens is: <br>
      - dynamic traits are used to "inject interfaces" to a class - it's
      stronger than simply<br>
      storing the class literal in a field (which it does anyway),
      because it now allows to <br>
      use the object through the newly added interface.<br>
      I am working on a way to derive the interfaces - and some
      classification rules -<br>
      directly from an ontology<br>
      - BC is used to resolve the transitive queries. <br>
      Consider that queries are "LHS" elements, so they are evaluated as
      tuples are being<br>
      propagated.<br>
      <br>
      If you run the example with the string "Como", it will look for a
      ** Country **<br>
      that the place called "Como" is also in (transitively)<br>
      <br>
      The last pattern in the rule is redundant - for test purpose only
      - and is remarking<br>
      that the returned Country is actually Italy :)<br>
      <br>
      Best<br>
      Davide<br>
      <br>
      <br>
      On 04/15/2013 09:45 PM, Upali Kohomban wrote:<br>
    </div>
    <blockquote cite="mid:516CD774.4030101@codegen.co.uk" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix">hi Davide,<br>
        <br>
        Your summary is quite accurate about my case.<br>
        <br>
        Thanks for the pointer, I will look in to hybrid chaining once I
        do a little investigation on why exactly the original problem
        occurred. I'm still having little issues with the 5.5.1 source
        compilation (for which your help worked flawlessly to get the
        source working, but there were test fails during the
        compilation. I will try myself to fix them before asking
        questions on that).<br>
        <br>
        As i said, the bigger problem is with the rules that are
        transitive in nature. Let's say there is a is_in rule which is
        used to derive spacial relationships. For instance, a concrete
        example<br>
        <br>
        is_in (uni_of_michigan, ann_arbor).<br>
        is_in(ann_arbor, MI).<br>
        is_in(MI, USA).<br>
        is_in(A, C) &lt;- is_in(A, B), is_in(B, C).<br>
        <br>
        I want to deduce (in general course of reasoning) such stuff as
        is_in(uni_of_michigan, USA), but if I do it in the regular
        drools way, I'd end up with a load of unnecessary deductions.
        This is the biggest problem I have. If you want a more involved
        concrete example, say I define (for the sake of simplicity)<br>
        <br>
        romantic(A) &lt;- scenic(A), secluded(A).<br>
        scenic(A) &lt;- next_to(A, B), scenic_artefact(B).<br>
        scenic_artefact(B) &lt;- lake(B) or waterfall(B) or ... and so
        on<br>
        secluded(A) &lt;-&nbsp; [ situated further than N km from the nearest
        city ]<br>
        <br>
        Now this last rule is where logic gives way to POJO and
        databases. It seems to me that this is the most sensible thing
        to do. Also, this is as far as I want to go at the moment.
        (Having known the non-boolean reasoning ability of drools from
        your mail, I can think of many ways I want to use it :) )<br>
        <br>
        I looked into your profile and saw that you have a background on
        the ontologies. Especially what you have mentioned under Drools
        - "Open Source Knowledge Integration and Reasoning Platform" in
        your university profile seems quite intersting and seems to be
        exactly the things I might be needing in the near future. I was
        thinking that I'll have to implement non-boolean reasoning using
        some fuzzy toolkit, if it becomes available with drools I'll be
        really happy to give it a try.<br>
        <br>
        If you have any material to share for further reading on your
        drools research, I'd be grateful.<br>
        <br>
        Thanks,<br>
        Upali<br>
        <br>
        <br>
        On 15/04/2013 03:10, Davide Sottara wrote:<br>
      </div>
      <blockquote cite="mid:516B2235.4070108@gmail.com" type="cite">
        <meta content="text/html; charset=ISO-8859-1"
          http-equiv="Content-Type">
        <div class="moz-cite-prefix">Correct me if I'm wrong, I would
          summarize your requirements as follows:<br>
          - you need some "A-box" reasoning, but you are fine with a
          rule-based approach<br>
          - the object-oriented integration Drools provides is quite
          convenient<br>
          - you have large data sets for which an opportunistic,
          "query-oriented" approach<br>
          would work better rather than a fully generative "forward
          chaining" approach<br>
          <br>
          Drools "hybrid-chaining" approach could be very useful here -
          I'm not sure how<br>
          well documented it is, and how you are planning to use it, but
          it would be interesting<br>
          to see one of your rules - even "stripped" of the details you
          don't want to show -<br>
          to discuss the behaviour of the engine and its implications.<br>
          <br>
          I had a use case apparently very similar to yours some time
          ago.. I'm working even<br>
          now on some experimental forms of rule/object/ontology
          integration. The "trait"<br>
          feature might be an alternative to the explicit addition of
          classes to objects .. it was<br>
          enhanced a few days ago to support updates and modifications.
          <br>
          If you have an ontology to begin with, you might also be
          interested in the ontology -&gt; class<br>
          conversion tool I'm working on even now<br>
          <br>
          Davide</div>
      </blockquote>
      <br>
      <br>
      <div class="moz-signature"> </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
rules-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a></pre>
    </blockquote>
    <br>
  </body>
</html>