首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在Fuseki上运行

不能在Fuseki上运行
EN

Stack Overflow用户
提问于 2020-04-07 10:23:12
回答 1查看 269关注 0票数 0

昨天,我试图让Pellet和/或Openllet在我的Fuseki上运行。

我正在通过网络接口处理请求。无缘无故的工作罚款。

这是我的配置:

代码语言:javascript
复制
@prefix :      <http://base/#> .
@prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .

<http://jena.apache.org/2016/tdb#DatasetTDB>
        rdfs:subClassOf  ja:RDFDataset .

ja:DatasetTxnMem  rdfs:subClassOf  ja:RDFDataset .

tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .

tdb:GraphTDB  rdfs:subClassOf  ja:Model .

<http://jena.apache.org/2016/tdb#GraphTDB2>
        rdfs:subClassOf  ja:Model .

ja:MemoryDataset  rdfs:subClassOf  ja:RDFDataset .

ja:RDFDatasetZero  rdfs:subClassOf  ja:RDFDataset .

<http://jena.apache.org/text#TextDataset>
        rdfs:subClassOf  ja:RDFDataset .

:service_tdb_all  a                   fuseki:Service ;
        rdfs:label                    "TDB FOOT" ;
        fuseki:dataset                :tdb_dataset_readwrite ;
        fuseki:name                   "FOOT" ;
        fuseki:serviceQuery           "query" , "" , "sparql" ;
        fuseki:serviceReadGraphStore  "get" ;
        fuseki:serviceReadQuads       "" ;
        fuseki:serviceReadWriteGraphStore
                "data" ;
        fuseki:serviceReadWriteQuads  "" ;
        fuseki:serviceUpdate          "" , "update" ;
        fuseki:serviceUpload          "upload" .

:tdb_dataset_readwrite
        a             ja:RDFDataset;
        ja:defaultGraph       <#model_inf> ;
        tdb:location  "C:\\etc\\fuseki/databases/FOOT" .

<#model_inf> a ja:InfModel ;
     ja:baseModel <#graph> ;
     ja:reasoner [
        ja:reasonerClass "openllet.jena.PelletReasonerFactory";
     ] .

<#graph> rdf:type tdb:GraphTDB ;
  tdb:dataset :tdb_dataset_readwrite .

错误- Tomcat目录中的日志:

代码语言:javascript
复制
ERROR Exception in initialization: the class 'openllet.jena.PelletReasonerFactory' required by the object 7c374328cddba9fa8091dcebd77a7598 [ja:reasoner of file:///C:/etc/fuseki/configuration/FOOT.ttl#model_inf] could not be loaded

我一直在到处复制Openllet Files(openllet 2.6.5.jar和其他东西),但没有机会。不管怎样,这是正确的行动吗?!

在我的Apache项目(以及)中,我让Openllet运行,它给我带来了正确的结果。

我有几条规则都是这类的

代码语言:javascript
复制
                       [ rdf:type owl:Class ;
                         owl:unionOf ( [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
                                                                owl:onProperty food:hasIngredient ;
                                                                owl:someValuesFrom food:Dairy
                                                              ]
                                                              [ rdf:type owl:Restriction ;
                                                                owl:onProperty food:hasIngredient ;
                                                                owl:someValuesFrom [ rdf:type owl:Restriction ;
                                                                                     owl:onProperty food:hasFood ;
                                                                                     owl:someValuesFrom food:Meat
                                                                                   ]
                                                              ]
                                                            ) ;
                                         rdf:type owl:Class
                                       ]
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty food:hasIngredient ;
                                         owl:someValuesFrom [ rdf:type owl:Restriction ;
                                                              owl:onProperty food:hasFood ;
                                                              owl:someValuesFrom food:Pork
                                                            ]
                                       ]
                                     )
                       ]
                     ) ;
  rdf:type owl:Class ;
  rdfs:subClassOf [ rdf:type owl:Restriction ;
                    owl:onProperty food:violatesRestriction ;
                    owl:hasValue food:kosherReligious
                  ]
] .

“如果食谱里有猪肉,或者肉和奶制品结合在一起,那就不算犹太了。”

推理非常缓慢( 25000三重数据库上的8秒)。如果我在模型运行之前提取模型,但是模型的提取需要3分钟

我只想让用户在合理的时间内(< 2秒)用推理者的推论查询菜谱:(

还有(更好的)吗?谁可以使用空节点(隐士不能.)?

我的问题是:

我如何才能让Fuseki与Pellet/Openllet

  • Reasoner alternatives?

  • Is一起运行--有更好的方法来推断像上面这样的规则?

  • ,我是不是完全错了,难道我必须让推理者在程序开始时只运行一次,而不是对每个查询运行一次?

致以最良好的问候;)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-08 20:24:04

我没有使用Openllet,而是尝试了OWLMicroFBRuleReasoner,it worked!及其fast

代码语言:javascript
复制
<#model_inf> a ja:InfModel ;
     ja:baseModel <#graph> ;
     ja:reasoner [
        ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLMicroFBRuleReasoner>
     ] .
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61077823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档