为 Fuseki 服务器设置配置时出现问题 - 初始化异常:org/apache/jena/reasoner/BaseInfGraph$InfFindSafeCapabilities

问题描述 投票:0回答:1

我试图使用来自 protege 的 SWRL 规则推理器来设置 Apache Jena Fuseki。 遵循了Miguel2617/apacheJenaSetUp.md教程,但出现了这个错误

Exception in initialization: org/apache/jena/reasoner/BaseInfGraph$InfFindSafeCapabilities
21:48:48 WARN  WebAppContext   :: Failed startup of context oeje10w.WebAppContext@6eb089e6{Apache Jena Fuseki Server,/,b=file:///C:/Users/admin/Downloads/apache-jena-fuseki-5.0.0-rc1/webapp/,a=AVAILABLE,h=oeje10s.SessionHandler@715a70e9{STARTED}}
java.lang.NoClassDefFoundError: org/apache/jena/reasoner/BaseInfGraph$InfFindSafeCapabilities

Full error screenshot

不确定这是 Fuseki 还是 Reasoner 的问题。

也许罐子放错地方了?

apache-jena-fuseki-5.0.0-rc1\lib\original-openllet-distribution-2.6.5.jar
或者某处配置错误?

@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 (
<#service1>
) .

[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
tdb:GraphTDB rdfs:subClassOf ja:Model .

<#service1> rdf:type fuseki:Service ;
fuseki:name "FireDSS" ; # http://host:port/FireDSS
fuseki:serviceQuery "query" ; # SPARQL query service (alt name)
fuseki:serviceQuery "sparql" ;
fuseki:serviceUpdate "update" ;
fuseki:serviceUpload "upload" ; # Non-SPARQL upload service
fuseki:serviceReadWriteGraphStore "data" ; # SPARQL Graph store protocol (read and write)
# A separate read-only graph store endpoint:
fuseki:serviceReadGraphStore "get" ; # SPARQL Graph store protocol (read only)
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 tdb:GraphTDB ;
tdb:dataset <#tdbDataset> .

<#tdbDataset> rdf:type tdb:DatasetTDB ;
tdb:location "TDB2" ;
#set the timeout for a SPARQL query in milliseconds. 0 means no timeout and the query never times out.
ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "0" ] .

或者fuseki-server.bat包含错误?

java -Xmx1200M -cp fuseki-server.jar;lib/* org.apache.jena.fuseki.cmd.FusekiCmd %*

我已经尝试将 tdb 的前缀更改为 tdb2 并将 tdb 更改为本地内存中的 ttl。 在我删除除服务之外的所有内容后,它起作用了,但没有推理器,因此它不能使用 SWRL 规则。如果有其他推理器适用于 Protege 的 SWRL 规则,很高兴知道。

owl jena fuseki swrl pellet
1个回答
0
投票

正如评论中所说,Openllet 2.6.5与Apache Fuseki 5.0.0不兼容,它是为Apache Fuseki 4.2.0编写的

InfFindSafeCapabilities
已被提交 4923bf7d 删除,并且仍然存在于 Apache Fuseki 4.7.0 中。您也可以尝试这个版本。

© www.soinside.com 2019 - 2024. All rights reserved.