jena-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marco Neumann <marco.neum...@gmail.com>
Subject Re: [GenericRuleReasoner] inner workings
Date Wed, 13 Mar 2019 11:28:15 GMT
that was my question indeed, I wasn't sure if they are shared or not. thanks

On Wed, Mar 13, 2019 at 11:26 AM ajs6f <ajs6f@apache.org> wrote:
>
> 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
>


-- 


---
Marco Neumann
KONA

Mime
View raw message