Hi!

G. David Barnett wrote:
>It appears that you are trying to map the contents of the database into
>the world of facts within JESS.  This may not be what you are really
>looking for.
>...

You are right. I definitely don't want to do this. This is what I meant
with the "on-demand" assertion (without bulk assertion). The databases
(potentially very large ones) should only be accessed when the fact is
actually needed.

I should perhaps tell you more about the background of my question:

As a part of my Ph.D. thesis I am currently implementing an EAI
architecture for a process-level integration of (legacy) information
systems (e.g. SAP R/3, host-based systems, etc.). One important component
is an intelligent sensor/listener that recovers high-level business events
(e.g., "Sales Order created") from database events (inserts, updates,
deletes) observed (using automatically generated database triggers) in the
information system's database (Ernest: I sent you a paper about it).
The recovery rules are semi-automatically induced using machine learning
algorithms and then installed (together with all other also automatically
generated templates one needs) in Jess at run-time. For each observed
database event (logged as an XML string in a special database table) a
corresponding fact is asserted in the Rete engine. When a rule fires, you
can do things like notify users or trigger dependent actions/workflows etc.
The current limitation is that you can only pass on the information carried
by the database events. In case one needs additional information (e.g. from
lookup tables) you need to query the database (just then).

I think Robin Burke got that point (by the way, what did Ernest reply to
that message):
>* a specialized version of deftemplate that specifies the database
>specifics, the columns of the relation, and the key fields.

I already generate "normal" deftemplates using the database schema.

>* a specialized matcher that, when encountering a "database-backed"
>fact, performs a query to retrieve all matching rows. You would be
>required to supply at least one value in a key field. Each row would
>be turned into an assertion and then matching would proceed normally.
>...
How would you do that?

In my special case I only need to read from the database (although writing
might be a future issue). Changes to database relations are reported by the
triggers anyway, so you don't need to continuously query the database.

I would be greatly interested in continuing that discussion.

Greetings

Thomas Barnekow

________________________________

Dipl.-Inform. Thomas Barnekow
Fraunhofer IAO, Competence Center Software Technology
                                              
 mail:  Nobelstraße 12, D-70569 Stuttgart,    
        Germany                               
                                              
 phone: +49 (0) 711 / 970 - 2346              
                                              
 fax:   +49 (0) 711 / 970 - 2300              
                                              
 email: [EMAIL PROTECTED]            
                                              
 web:   http://www.swt.iao.fhg.de             
                                              




---------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the
list (use your own address!) List problems? Notify [EMAIL PROTECTED]
---------------------------------------------------------------------

Reply via email to