Ich versuche den Fuseki Server mit Pellet Reasoner und Jena zu starten. Ich fand another thread, die ähnliche Problem hatte, jedoch (1) meine Fehlermeldung ist anders, und (2) es sieht aus wie die endgültige Lösung wurde nicht im referenzierten Thread zur Verfügung gestellt.Fehler bei der Verwendung von Pellet Reasoner mit Fuseki Server
Das Problem ist, dass Fuseki sagt
no reasoner called file:///home/gosper/Desktop/tools/jena-fuseki1-1.3.1/org.mindswap.pellet.jena.PelletReasonerFactory
Es ist nicht klar, warum es zu dieser Wurzel Punkte, wo ich offensichtlich als org.mindswap.pellet.jena.PelletReasonerFactory
genannt keine Datei haben.
Dies ist meine config.ttl
Datei und ich beginne Fuseki Server wie folgt:
./fuseki-server --update --config=config.ttl
config.ttl
# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
## Basic Fuseki configuation file.
##
## See also config-tdb.ttl for TDB specific examples.
## See also config-examples.ttl for commented examples.
@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 tdb: <http://jena.hpl.hp.com/2008/tdb#> .
@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
[] rdf:type fuseki:Server ;
fuseki:services (
<#tdb>
) .
# Custom code.
[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
########################################################################
# TDB
<#tdb> rdf:type fuseki:Service ;
fuseki:name "tdb" ; # http://localhost:3030/tdb
fuseki:serviceQuery "query" ; # SPARQL query service
fuseki:serviceQuery "sparql" ; # SPARQL query service
fuseki:serviceUpdate "update" ; # SPARQL query service
fuseki:serviceUpload "upload" ; # Non-SPARQL upload service
fuseki:serviceReadGraphStore "get"; # SPARQL Graph store protocol (read only)
fuseki:dataset <#dataset2> ; #select which set to
. #use
tdb:GraphTDB rdfs:subClassOf ja:Model .
<#dataset2> rdf:type ja:RDFDataset ;
ja:defaultGraph <#model2>;
.
<#model2> a ja:InfModel;
ja:baseModel <#tdbGraph>;
ja:reasoner
[ ja:reasonerURL
<org.mindswap.pellet.jena.PelletReasonerFactory>];
.
<#tdbGraph> rdf:type tdb:GraphTDB;
tdb:location "DB";
.
ich alle notwendigen Jena Bibliotheken von here heruntergeladen und hinzugefügt, um sie zu Fuseki Wurzelverzeichnis wie beschrieben here. Schließlich meine modifizierte Fuseki-Server-Skript sieht wie folgt aus:
#!/bin/sh
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
export FUSEKI_HOME="${FUSEKI_HOME:-$PWD}"
if [ ! -e "$FUSEKI_HOME" ]
then
echo "$FUSEKI_HOME does not exist" 1>&2
exit 1
fi
JAR1="$FUSEKI_HOME/fuseki-server.jar"
JAR2="$FUSEKI_HOME/jena-fuseki-*-server.jar"
JAR=""
for J in "$JAR1" "$JAR2"
do
# Expand
J="$(echo $J)"
if [ -e "$J" ]
then
JAR="$J"
break
fi
done
if [ "$JAR" = "" ]
then
echo "Can't find jarfile to run"
exit 1
fi
# Deal with Cygwin path issues
cygwin=false
case "`uname`" in
CYGWIN*) cygwin=true;;
esac
if [ "$cygwin" = "true" ]
then
JAR=`cygpath -w "$JAR"`
FUSEKI_HOME=`cygpath -w "$FUSEKI_HOME"`
fi
JVM_ARGS=${JVM_ARGS:--Xmx1200M}
# By default this line should be uncommented
# exec java $JVM_ARGS -jar "$JAR" "[email protected]"
# By default these lines should be commented out
java $JVM_ARGS -cp "$JAR:$APPJAR" org.apache.jena.fuseki.FusekiCmd "[email protected]"
APPJAR=aterm-java-1.6.jar:pellet-cli.jar:pellet-core.jar:pellet-datatypes.jar:pellet-dig.jar:pellet-el.jar:pellet-explanation.jar:pellet-jena.jar:pellet-modularity.jar:pellet-owlapiv3.jar:pellet-pellint.jar:pellet-query.jar:pellet-rules.jar:pellet-test.jar:commons-collections-3.2.jar
Jetzt, wenn ich versuche Fuseki Server zu starten, wird folgende Fehlermeldung angezeigt:
[email protected]:/home/gosper/Desktop/tools/jena-fuseki1-1.3.1# ./fuseki-server --update --config=config-tdb-pelletreasoner.ttl
18:30:53 WARN ja:loadClass: Migration to Jena3: Converting com.hp.hpl.jena.tdb.TDB to org.apache.jena.tdb.TDB
org.apache.jena.assembler.exceptions.UnknownReasonerException: no reasoner called file:///home/gosper/Desktop/tools/jena-fuseki1-1.3.1/org.mindswap.pellet.jena.PelletReasonerFactory for d968cc61bfbe1366298b7276173e9fd2 [ja:reasoner of :model2]
doing:
root: d968cc61bfbe1366298b7276173e9fd2 with type: http://jena.hpl.hp.com/2005/11/Assembler#ReasonerFactory assembler class: class org.apache.jena.assembler.assemblers.ReasonerFactoryAssembler
root: file:///home/gosper/Desktop/tools/jena-fuseki1-1.3.1/config-tdb-pelletreasoner.ttl#model2 with type: http://jena.hpl.hp.com/2005/11/Assembler#InfModel assembler class: class org.apache.jena.assembler.assemblers.InfModelAssembler
root: file:///home/gosper/Desktop/tools/jena-fuseki1-1.3.1/config-tdb-pelletreasoner.ttl#dataset2 with type: http://jena.hpl.hp.com/2005/11/Assembler#RDFDataset assembler class: class org.apache.jena.sparql.core.assembler.DatasetAssembler
at org.apache.jena.assembler.assemblers.ReasonerFactoryAssembler.getReasonerFactoryByURL(ReasonerFactoryAssembler.java:192)
at org.apache.jena.assembler.assemblers.ReasonerFactoryAssembler.getReasonerFactory(ReasonerFactoryAssembler.java:133)
at org.apache.jena.assembler.assemblers.ReasonerFactoryAssembler.open(ReasonerFactoryAssembler.java:50)
at org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:130)
at org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.open(AssemblerGroup.java:117)
at org.apache.jena.assembler.assemblers.AssemblerGroup$ExpandingAssemblerGroup.open(AssemblerGroup.java:81)
at org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:39)
at org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:35)
at org.apache.jena.assembler.assemblers.InfModelAssembler.getReasonerFactory(InfModelAssembler.java:53)
at org.apache.jena.assembler.assemblers.InfModelAssembler.getReasoner(InfModelAssembler.java:46)
at org.apache.jena.assembler.assemblers.InfModelAssembler.openEmptyModel(InfModelAssembler.java:34)
at org.apache.jena.assembler.assemblers.ModelAssembler.openModel(ModelAssembler.java:36)
at org.apache.jena.assembler.assemblers.ModelAssembler.open(ModelAssembler.java:43)
at org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:130)
at org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.open(AssemblerGroup.java:117)
at org.apache.jena.assembler.assemblers.AssemblerGroup$ExpandingAssemblerGroup.open(AssemblerGroup.java:81)
at org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:39)
at org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:35)
at org.apache.jena.assembler.assemblers.AssemblerGroup.openModel(AssemblerGroup.java:35)
at org.apache.jena.sparql.core.assembler.DatasetAssembler.createDataset(DatasetAssembler.java:59)
at org.apache.jena.sparql.core.assembler.DatasetAssembler.open(DatasetAssembler.java:43)
at org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:130)
at org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.open(AssemblerGroup.java:117)
at org.apache.jena.assembler.assemblers.AssemblerGroup$ExpandingAssemblerGroup.open(AssemblerGroup.java:81)
at org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:39)
at org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:35)
at org.apache.jena.fuseki.server.FusekiConfig.processService(FusekiConfig.java:242)
at org.apache.jena.fuseki.server.FusekiConfig.configure(FusekiConfig.java:131)
at org.apache.jena.fuseki.FusekiCmd.exec(FusekiCmd.java:448)
at jena.cmd.CmdMain.mainMethod(CmdMain.java:93)
at jena.cmd.CmdMain.mainRun(CmdMain.java:58)
at jena.cmd.CmdMain.mainRun(CmdMain.java:45)
at org.apache.jena.fuseki.FusekiCmd.main(FusekiCmd.java:161)
Ich versuchte es so. Jetzt heißt es: 'org.apache.jena.assembler.exceptions.AssemblerException: catched: Klassenname URI muss mit 'java:' beginnen: file: ///home/gosper/Desktop/tools/jena-fuseki1-1.3.1/org.mindswap.pellet.jena.PelletReasonerFactory' – Klue
Suchen Sie im Assembler nach "java:". Es scheint, dass sich die Dinge von der obigen Beschreibung weg bewegt haben. – AndyS