RDF4J and inferencing support #4960
Replies: 3 comments 4 replies
-
Rule-based inferencing could be a useful addition to the toolbox for some use cases. I'm currently resorting to a poor-man approach with custom rules expressed as SPARQL insert updates, but handling aggregate results (eg rules precomputing counts or other stats) is not straightforward and performance quickly degrades over about 1M statements. |
Beta Was this translation helpful? Give feedback.
-
Holger has initiated work on SHACL 1.1/1.2 and I've proposed to make SHACL AF part of the official standard. I haven't followed up on this, but I hope it can make it into the standard. It's got a lot of promise for supporting incremental inference. I would recommend against using SPIN. Our RDFS reasoner is very good though. It's faster and more memory efficient than most other reasoners I've tried. One big caveat is that it's very slow if you're going to be deleting data. Essentially it re-infers everything when something is deleted. I've personally never found OWL to be very useful. If you want to go down the OWL path you could consider trying to integrate OWL API with RDF4J. We would also welcome a SHACL AF reasoner, the key here though is to at least make it incremental for additions. I know that RDFox has a Datalog based rule engine with stratification. Something like that would also be very interesting. |
Beta Was this translation helpful? Give feedback.
-
The best way to save work would be to combine Jena's reasoners with RDF4J and vice-versa. Maybe IT IS possible to extract Jena's inference engine and base it on Commons RDF and then use it within an RDF4J SAIL? |
Beta Was this translation helpful? Give feedback.
-
Hey folks, hoping to get an understanding of how we should look at RDF4J wrt inferencing.
I realize there are some existing classes to support a few things (RDFS, SPIN, etc.) but not clear on which path to choose. We're getting asked at work to support things like RDFS, OWL, SHACL AF, and have existing home-brew custom rules that we'd like to port over to a "standard" approach. Is there a standard approach that we would like to pursue?
As far as I know, RDF4J does not support OWL (any variant). It looks like SHACL AF was dismissed in the past (#1912). And I know there's RIF, N3, SWRL, and even Jena appears to have it's own rules language (https://jena.apache.org/documentation/inference/#rules) and they all all exist out there. I kinda like Jena's approach of generalizing the rules engine and using it to implement RDFS as well as their (incomplete) OWL reasoner.
Anyways, has there already been some discussion about a direction on inferencers here and/or does anyone have any guidance on how we should think about beefing up the inferencing layer in RDF4J.
Beta Was this translation helpful? Give feedback.
All reactions