jena-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ajs6f <>
Subject Re: [GenericRuleReasoner] inner workings
Date Wed, 13 Mar 2019 11:15:35 GMT
I'm not at all sure where the idea of a "silent consensus" came from. Certainly there _is_
interest in SHACL (as there should be), but that's all I can see.


> On Mar 13, 2019, at 7:10 AM, Dave Reynolds <> wrote:
> Hi Marco,
> Not a "consensus" that I'm part of so not something I could comment on.
> Dave
> On 13/03/2019 10:49, Marco Neumann wrote:
>> correct if me if I am wrong but from my vantage point I seem to notice
>> a silent consensus in the RDF community to go from SPIN rules to SHACL
>> which now comes with its own SHACL rule engine [1].
>> The new SHACL efforts are mostly guided by TopQuadrant and a change
>> from the initial layered approach to go with SPARQL RDF
>> (SPIN+(SHACL-rules)). So I presume the current game plan is that SHACL
>> will "rule" them all in the end.
>> If so it would be nice to have a feature list for SHACL rules. And
>> does this mean it will be rules without validation and just CONSTRUCT
>> queries or are the rule semantic restrictions build into SHACL? I am
>> sure this will work fine for many use cases we have but since we are
>> starting to blur the lines between rules/reasoner/sparql would be nice
>> to have some general autoritative clarification here.
>> [1]
>> On Wed, Mar 13, 2019 at 10:14 AM Dave Reynolds
>> <> wrote:
>>> 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.
>>> Dave
>>> [1]
>>> 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
>>>>> 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
>>>>> 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
>>>>> 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
>>>>> 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,
>>>>> 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).
>>>>> 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
>>>>> the forward engine can be used to prime the backward engine which in
>>>>> will be used to answer queries."
>>>>>>> source:
>>>>>>> Apart from Jena's documentation, Jena's mailing lists and its
>>>>> 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
>>>>> use it and for damage of any kind resulting from the risks inherent to
>>>>> electronic transmission of messages.
>> --
>> ---
>> Marco Neumann

View raw message