jena-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Reynolds <>
Subject Re: [GenericRuleReasoner] inner workings
Date Wed, 13 Mar 2019 10:13:49 GMT
Hi Marco,

Sorry, I'm not aware of other rule engines having been wired to Jena but 
that doesn't mean it hasn't been done. In particular I'm surprised 
there's not a drools-for-jena project somewhere. People have certainly 
experimented with that, even written papers comparing performance [1], 
but I'm not aware of any supported tooling.



On 12/03/2019 22:18, Marco Neumann wrote:
> so what's your current recommendation for a superior third party rules
> reasoner that works efficiently with the jena tooling? free & commercial
> option welcome
> Marco
> On Mon 14. Jan 2019 at 19:16, Dave Reynolds <>
> wrote:
>> Hi Barry,
>> [Agreed that dev is probably the better place to discuss this.]
>> The two engines in jena are indeed loosely styled on RETE and on tabled
>> datalog. However, I wouldn't claim they were particularly complete or
>> good implementations of either. So while looking at some of the source
>> literature that inspired them might be helpful don't expect very much of
>> what's covered in the literature to be present in the code.
>> For RETE then the wikipedia article [1] is a good summary and source of
>> starting references. I had a copy of the original Forgy paper [1](ref
>> 1), among others,when I was doing the work. There has been a *lot* of
>> work on improvements to RETE since the 80s and while there were times
>> when we might have done a new forward engine using more modern
>> techniques it never happened.
>> For the backward engine the approach is a variant of SLG-WAM as used for
>> XSB but highly highly simplified since we can't express general tuples
>> or recursive data structures within jena's triples. A few google
>> searches haven't turned up the exact paper that originally inspired the
>> approach. The closest I've found are [2] and [3], which probably cover
>> the same ground.
>> Let me reinforce that the Jena engines are really simplified. They were
>> enough to get the job done at the time (over a decade ago now) and have
>> proved useful for some people since but I wouldn't want to defend any of
>> the implementation choices.
>> Dave
>> [1]
>> [2]
>> [3]
>> On 14/01/2019 16:33, ajs6f wrote:
>>> I have no useful general information about the reasoning framework, but
>> I am copying this over to dev@. Discussions of how to extend Jena
>> definitely have a place there.
>>> ajs6f
>>>> On Jan 14, 2019, at 6:40 AM, Nouwt, B. (Barry)
>> <> wrote:
>>>> Hi all, I want to investigate the inner workings of the
>> GenericRuleReasoner (with the purpose of extending it in the future). In
>> Jena's documentation I read:
>>>> "Jena includes a general purpose rule-based reasoner which is used to
>> implement both the RDFS and OWL reasoners but is also available for general
>> use. This reasoner supports rule-based inference over RDF graphs and
>> provides forward chaining, backward chaining and a hybrid execution model.
>> To be more exact, there are two internal rule engines one forward chaining
>> RETE engine and one tabled datalog engine - they can be run separately or
>> the forward engine can be used to prime the backward engine which in turn
>> will be used to answer queries."
>>>> source:
>>>> Apart from Jena's documentation, Jena's mailing lists and its source
>> code, are there any resources that can better help me grasp what is
>> happening inside the generic rule reasoner? For example, the text above
>> mentions the forward chaining RETE engine and the tabled datalog engine,
>> are there any scientific papers that I might read to better understand
>> their inner workings?
>>>> Maybe this question is better suited for the
>> <>?
>>>> Regards, Barry
>>>> This message may contain information that is not intended for you. If
>> you are not the addressee or if this message was sent to you by mistake,
>> you are requested to inform the sender and delete the message. TNO accepts
>> no liability for the content of this e-mail, for the manner in which you
>> use it and for damage of any kind resulting from the risks inherent to the
>> electronic transmission of messages.

View raw message