Ok, looks like I got it working - took more effort than expected:
- set FUSEKI_BASE to the path of the Fuseki distribution
- create a directory $FUSEKI_BASE/extra - this will used for the
additional Jars on classpath
- given that it is JDK 11 we have to either modify the distribution
pom.xml, or for now just download form Maven repo and put to
$FUSEKI_BASE/extra:
* javax.xml.bind:jaxb-api:2.3.0
* com.sun.xml.bind:jaxb-core:2.3.0
* com.sun.xml.bind:jaxb-impl:2.3.0
- modify the openllet/distribution/pom.xml to **not** exclude the
JGraphT dependency but instead include it (you have to explicitly
include it)
- rebuild and then put the openllet-distribution-2.6.6-SNAPSHOT.jar file
to $FUSEKI_BASE/extra
- use the attached assembler and adapt it - currently it assumes a TDB2
database at /tmp/DB folder where I loaded some data via tdb2.tdbloader
--loc /tmp/DB
On 23.02.22 10:29, Lorenz Buehmann wrote:
Ok, I'm still on JDK 11 and this worked for me - so you could give it
a try. If not then can't you set the compiler plugin to 13? Although
I'm wondering why it failed with JDK 17 if you have it installed. Did
you also set this as your current JDK?
mvn --version should have shown Java 17 then
But let's try with JDK 11 first, Fuseki distribution is currently also
on Java 11
On 23.02.22 10:22, Luca Turchet wrote:
I have amended the file as you suggested (and even modifying
the aven-enforcer-plugin <version> to 3.0.0) but the result is the
same.
I attach the pom POM file.
However, I don't have installed JDK version 11, or 15. I have 13 14,
16 and 17. Do I need to install JDK version 11?
Cheers
Luca
-----------------------------------------------------------------------------------------
*Luca Turchet*
Associate Professor
Head of the Creative, Intelligent & Multisensory Interactions Laboratory
*https://www.cimil.disi.unitn.it/* <https://www.cimil.disi.unitn.it/>
Department of Information Engineering and Computer Science
University of Trento
Via Sommarive 9 - 38123 Trento - Italy
E-mail: [email protected]
Tel: +39 0461 283792
Il giorno mer 23 feb 2022 alle ore 10:04 Lorenz Buehmann
<[email protected]> ha scritto:
I checked Openllet, it has been set to Java 17 - you can change
it in
the POM file:
- set maven-compiler-plugin source and target entry to 11
- change maven-enforcer-plugin Java rule to
<version>[10,15)</version>
Note, the fork is currently set to Jena 4.2.X, not sure if it will
have
conflicts when you use it with latest Jena
On 23.02.22 08:02, Lorenz Buehmann wrote:
> Hi,
>
> follow up from your Stackoverflow thread, the Jena built-in
reasoners
> do not support SWRL rules - what exactly is supported by which OWL
> reasoner is documented here:
> https://jena.apache.org/documentation/inference/#owl
>
> None of them is a full OWL DL reasoner, that's only covered via
> Pellet. And Pellet does also support SWRL. I suggested to use a
Pellet
> fork like Openllet because the official Pellet reasoner is
still on
> Jena 2.x/3.x and any further version of Pellet is closed source
being
> integrated in Stardog triple store.
>
> Openllet does support Jena 4.x so in theory it should work. It
would
> be helpful to show your Java/Maven issues, otherwise it's a wild
guess.
>
> The other option I suggested was to use the Jena rules instead of
> SWRL. I understand though that if you want to stick to W3C
standards
> (technically SWRL isn't) this won't be an option for you.
>
> Note, the whole reasoner will happen mostly in-memory - don't
expect
> OWL DL reasoning to scale in a large dataset in a triple store-
that's
> why people designed profiles like OWL RL which can be easily
mapped to
> rule based inference and don't need a tableau algorithm or the
like.
>
> Cheers,
>
> Lorenz
>
> On 22.02.22 18:36, Luca Turchet wrote:
>> Dear list members,
>> I am trying to integrate a reasoner in the Fuseki server. I
first tried
>> openllet but there are some technical issues with java and
maven which
>> currently prevent the openllet installation on a mac.
>>
>> So I tried to launch fuseki with the --conf option using one
of the
>> reasoners listed at the bottom of this page:
>>
https://jena.apache.org/documentation/fuseki2/fuseki-configuration.html
>>
>> in particular, I tried the examples
>>
>> - config-inference-1.ttl
>>
<https://github.com/apache/jena/blob/main/jena-fuseki2/examples/config-inference-1.ttl>
>> - config-inference-2.ttl
>>
<https://github.com/apache/jena/blob/main/jena-fuseki2/examples/config-inference-2.ttl>
>>
>> which are provided in the documentation:
>> https://github.com/apache/jena/tree/main/jena-fuseki2/examples
>>
>> When performing the query which should return the result of an
>> inference I
>> don't get the expected result, like if the reasoner was not
integrated.
>> I am sure that the triplestore I am using is correct and
contains the
>> rule
>> as I have tested it in Protegè using the Snap SPARQL query tab
with the
>> Pellet reasoner activated.
>>
>> What am I doing wrong? I launch the server with
>> ./fuseki-server
>> --conf=/Users/luca/semanticweb/prova/config-inference-1.ttl
>>
>> Thanks in advance
>>
>> Best wishes
>>
>> Luca
>>
>>
-----------------------------------------------------------------------------------------
>>
>>
>> *Luca Turchet*
>> Associate Professor
>> Head of the Creative, Intelligent & Multisensory Interactions
Laboratory
>> *https://www.cimil.disi.unitn.it/*
<https://www.cimil.disi.unitn.it/>
>>
>> Department of Information Engineering and Computer Science
>> University of Trento
>> Via Sommarive 9 - 38123 Trento - Italy
>>
>> E-mail: [email protected]
>> Tel: +39 0461 283792
>>
## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
# Example of a data service with SPARQL query ahgrep and update on an
# inference model. Data is taken from TDB.
PREFIX : <#>
PREFIX fuseki: <http://jena.apache.org/fuseki#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ja: <http://jena.hpl.hp.com/2005/11/Assembler#>
PREFIX tdb2: <http://jena.apache.org/2016/tdb#>
[] rdf:type fuseki:Server ;
fuseki:services (
:service
) .
# Service description for "/dataset" with all endpoints.
:service rdf:type fuseki:Service ;
fuseki:name "dataset" ;
fuseki:endpoint [
fuseki:operation fuseki:query ;
fuseki:name "query"
] ;
fuseki:endpoint [
fuseki:operation fuseki:query ;
fuseki:name "sparql"
] ;
fuseki:endpoint [
fuseki:operation fuseki:update ;
fuseki:name "update"
] ;
fuseki:dataset :dataset ;
.
## ---------------------------------------------------------------
:dataset rdf:type ja:RDFDataset ;
ja:defaultGraph :model_inf ;
.
:model_inf a ja:InfModel ;
ja:baseModel :tdbGraph ;
ja:reasoner [
ja:reasonerClass "openllet.jena.PelletReasonerFactory";
] .
:tdbGraph rdf:type tdb2:GraphTDB2 ;
tdb2:dataset :tdbDataset .
## Base data in TDB.
:tdbDataset rdf:type tdb2:DatasetTDB2 ;
tdb2:location "/tmp/DB" ;
.