<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">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<br>
      <br>
      <br>
      On 04/12/2013 01:45 AM, Upali Kohomban wrote:<br>
    </div>
    <blockquote cite="mid:5167C98C.40103@codegen.co.uk" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix">Hi,<br>
        <br>
        Sorry for the late reply, I was away from mail.<br>
        <br>
        I'm fine with assumptions such as unique name and closed world
        because whatever method I use these handicaps will be there in
        some form. In my case, why I can't&nbsp; go on with OWL/Logic is the
        issue of large amounts of factual data which change frequently,
        unlike, say, in Biomedical ontologies.<br>
        <br>
        For an instance, I want to model the semantics of a country's
        appeal as a holiday destination for a particular crowd depending
        on any events that makes it interesting for that crowd. These
        things can change on day-to-day basis depending on weather,
        currency rates, school holidays, ticket prices etc. OWL
        ontologies (as you must know) handle these kind of volatile data
        quite poorly. Unfortunately, its difficult to plug things to the
        reasoner at the facts-end of the OWL. This last bit is different
        for Drools.<br>
        <br>
        On the other hand, as I said, the number of possible inferences
        are near infinite, and unnecessary unless they are explicitly
        queried. For instance take a transitive relationship such as
        situated_in(x, y).&nbsp; If there are few levels of locality (say,
        country/district/city/town/suburb) there will be so many
        unnecessary inferences for the relationship in drools rules.
        With a backward chaining reasoner, these inferences won't fire
        unless queried.<br>
        <br>
        According to my limited understanding of drools, this is the
        main issue one could come up against using drools here. I was
        trying to work around that fact by using the (apparently recent)
        backward-chaining queries, and by delegating some of the worse
        (transitive etc) clauses to POJO. I really enjoy being able to
        do that, even if I'm doing it wrong and there's a better way ;-)<br>
        <br>
        So far, I'm using a mix of technologies to get what I think is
        the best of both worlds: backward-chaining, POJO for logic
        itself at lower level for recursive rules, semantic classes to
        "store" inferences about stuff so they can be queried later.<br>
        <br>
        If there is a better way of doing this, I'd really love to know
        it. I'm aware that this is not ideal problem for an expert
        system or an ontology. However I need to model a little bit of
        semantics than a database-only system, and do it in an easily
        changeable way.<br>
        <br>
        Thanks,<br>
        Upali<br>
        <br>
        <br>
        <br>
        On 12/04/2013 00:56, Davide Sottara wrote:<br>
      </div>
      <blockquote cite="mid:51670E6C.2000006@gmail.com" type="cite">
        <meta content="text/html; charset=ISO-8859-1"
          http-equiv="Content-Type">
        <div class="moz-cite-prefix">Ontology Reasoners and Rule Engines
          are quite different, can be integrated under some assumptions,
          <br>
          but are definitely not easily interchangeable.. (unique name
          assumption, closed world assumption, etc..)<br>
          Which one is better pretty much depends on the use case, which
          also dictates the required level of <br>
          expressiveness of the language - even Fact++, Hermit and
          Pellet do not support full FOL...<br>
          <br>
          This said, your case seems very interesting.. would you mind
          sharing a few more details or a concrete example?<br>
          We would then be able to assess whether Drools is appropriate
          or not, and which constructs could be<br>
          used (e.g. traits, hybrid chaining queries, tms, ...) to
          tackle the complexity.<br>
          <br>
          Or maybe we could take it as a use case to improve the engine
          capbilities :)<br>
          <br>
          Best<br>
          Davide<br>
          <br>
          <br>
          <br>
          <br>
          On 04/11/2013 05:01 AM, Upali Kohomban wrote:<br>
        </div>
        <blockquote cite="mid:5166A61B.7070705@codegen.co.uk"
          type="cite">
          <meta content="text/html; charset=ISO-8859-1"
            http-equiv="Content-Type">
          <div class="moz-cite-prefix">Thanks a lot again, you made my
            life easy with the build instructions :)<br>
            <br>
            Yes I'm trying to do an integration. I have some experience
            with ontologies and want to experiment with drools as an
            alternative.<br>
            <br>
            OWL with reasoners like Fact ++ are pretty much good for the
            job, except for the fact that they handle individual data
            bits in quite a cumbersome way. It was because of this
            reason that I wanted to experiment on other ways of modeling
            a knowledge structure with better facilities for querying
            large amounts of factual data. I'm giving drools a try, but
            I'm not entirely sure if drools can do things as powerful as
            a reasoner.<br>
            <br>
            Basically, I'd like to be able to let the data lie (without
            firing any "events" until necessary)&nbsp; and query the
            inferences in a first-order logic like manner. This is very
            space-efficient in data-heavy scenarios. I know that this
            isn't the traditional way drools is designed to work. I'm
            trying to solve the inference problem by dynamically adding
            semantic classes to each object to store all the possible
            inferences about it, so they can be queried later. Problem
            with this approach is that it gets out of hand very quickly,
            because the enumerated number of such inferences can be HUGE
            even for a moderate KB. Backward chaining will eventually
            solve this problem, but it seems that the constructs
            available for that in drools queries are not too matured at
            the moment. For instance they don't seem to support
            numerical inequality operators (or I am wrong, which is also
            very likely).<br>
            <br>
            Thank you again for the quick help,<br>
            Upali<br>
            <br>
            <br>
            <br>
            <br>
            <br>
            <br>
            On 11/04/2013 14:14, Davide Sottara wrote:<br>
          </div>
          <blockquote cite="mid:516677D1.9000009@gmail.com" type="cite">
            <pre wrap="">You should be able to
git clone ...
the droolsjbpm repository, then
git checkout -t origin/5.5.x

this should switch to 5.5.1-SNAPSHOT (you can check the pom in the root
folder)
eventually, mvn clean install should do the trick.

See also the readme.md in github

Btw, it seems that you're working with rule/ontology integrations..
would you
be interested in sharing thoughts?

Davide

On </pre>
          </blockquote>
        </blockquote>
      </blockquote>
      <br>
      <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>