首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jena tdbloader汇编程序

Jena tdbloader汇编程序
EN

Stack Overflow用户
提问于 2012-10-12 05:30:15
回答 1查看 1K关注 0票数 1

如何通过tdbloader.bat (windows,Jena 2.7.3)加载带推理的TDB存储?

我使用了这个汇编文件:

代码语言:javascript
复制
 @prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
 @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 tdb: <http://jena.hpl.hp.com/2008/tdb#> .

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

  <#dataset> rdf:type ja:RDFDataset ;
          ja:defaultGraph <#infModel> .

   <#infModel>  a ja:InfModel ;
         ja:baseModel <#tdbGraph>; 
            ja:reasoner 
            [ ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner> ].

    <#tdbGraph> rdf:type tdb:GraphTDB ;
                     tdb:location "DB";
 .

我的命令:

代码语言:javascript
复制
c:\apache-jena-2.7.3\bat>tdbloader --tdb=test.ttl C:\apache-jena-2.7.3\Lubm10\*

我有一个例外:

代码语言:javascript
复制
   java.lang.ClassCastException: com.hp.hpl.jena.reasoner.rulesys.FBRuleInfGraph cannot be cast to com.hp.hpl.jena.tdb.store.GraphTDB

怎么啦?(删除"DB“后的分号-没有帮助)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-12 06:32:33

目前还不清楚你想要达到什么目的。tdbloader是一个工具,用于在通过应用程序或SPARQL端点处理这些三元组之前,将这些三元组加载到TDB存储中。另外,从您的应用程序代码中,您可以构建一个Jena模型,该模型在TDB图的基础模型上使用推理引擎。但是我不明白为什么您要在加载时使用推理模型。如果你看一下你得到的异常:

代码语言:javascript
复制
FBRuleInfGraph cannot be cast to com.hp.hpl.jena.tdb.store.GraphTDB

它证实了您不能在流程的那个阶段使用推理图,我不确定您为什么要这样做。当然,除非您试图在基础模型上静态计算推理闭包,并将其存储在TDB中,从而省去了运行时推理计算的需要。但是,如果您正在尝试这样做,我不相信目前可以通过Jena汇编程序来完成。目前,您必须编写自定义代码才能做到这一点。

底线:分离关注点。对tdbloader使用简单的图形描述,在运行时使用推理图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12848807

复制
相关文章

相似问题

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