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:23:35 GMT
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