jena-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ajs6f <aj...@apache.org>
Subject Re: [GenericRuleReasoner] inner workings
Date Wed, 13 Mar 2019 11:26:15 GMT
I'm not sure what you mean by "editors" or "the dev group", but I am one person. Apache committer
email addresses are not shared.


ajs6f

> On Mar 13, 2019, at 7:23 AM, Marco Neumann <marco.neumann@gmail.com> wrote:
> 
> just for reference is the email "ajs6f@apache.org" always one person
> or is it used by a number of different editors in the dev group?
> 
> 
> 
> 
> On Wed, Mar 13, 2019 at 11:15 AM ajs6f <ajs6f@apache.org> wrote:
>> 
>> 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.
>> 
>> ajs6f
>> 
>>> On Mar 13, 2019, at 7:10 AM, Dave Reynolds <dave.e.reynolds@gmail.com>
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] https://github.com/TopQuadrant/shacl/blob/master/src/main/java/org/topbraid/shacl/rules/RuleEngine.java
>>>> On Wed, Mar 13, 2019 at 10:14 AM Dave Reynolds
>>>> <dave.e.reynolds@gmail.com> 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] https://ieeexplore.ieee.org/document/7516153
>>>>> 
>>>>> 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 <dave.e.reynolds@gmail.com>
>>>>>> 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] https://en.wikipedia.org/wiki/Rete_algorithm
>>>>>>> [2]
>>>>>>> 
>>>>>>> https://pdfs.semanticscholar.org/2078/96964ee85f983cd861a4f8c5dff0bfc9f03e.pdf
>>>>>>> [3]
>>>>>>> 
>>>>>>> https://pdfs.semanticscholar.org/6c6d/26e8fe1b755140ffcb57025b021a046b2a3b.pdf
>>>>>>> 
>>>>>>> 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)
>>>>>>> <barry.nouwt@tno.nl.INVALID> 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: https://jena.apache.org/documentation/inference/#rules
>>>>>>>>> 
>>>>>>>>> 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 dev@jena.apache.org
>>>>>>> <mailto:dev@jena.apache.org>?
>>>>>>>>> 
>>>>>>>>> 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.
>>>>>>>> 
>>>>>>> 
>>>> --
>>>> ---
>>>> Marco Neumann
>>>> KONA
>> 
> 
> 
> --
> 
> 
> ---
> Marco Neumann
> KONA


Mime
View raw message