今天我在使用Jena的过程中出现了一些问题,现在我将我出现的问题进行如下总结:
1.要使用Jena,需要分别下载apache-jena和apache-jena-fuseki,因为fuseki和其他的功能模块不在同一个文件中。
还要在环境变量中配置JENA_HOME和path.
2.我们需要创建一个tdb目录,用于存放tdb数据。我们可以进入Jena的bat目录,使用命令将我们的RDF数据以TDB
的方式存储。命令如下:
.\tdbloader.bat --loc="D:\apache-jena-3.8.0\apache-jena-3.8.0\tdb" "D:\D2RQ\kg_demo_movie.nt"
3.fuseki目录下的run目录中的databases使用的owl文件从protege中导出时应该选择turtle.导入目录中要将后缀名改为ttl。
4.fuseki目录下的run目录中的configuration下的ttl配置文件如下。我这里使用的是目前最新的版本3.5.0.这里如果使用其他版本会启动不了。或者查询不出内容。新版本的具体配置我也不知道。
@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#> .
:service1 a fuseki:Service ;
fuseki:dataset <#dataset> ;
fuseki:name "kg_demo_movie" ;
fuseki:serviceQuery "query" , "sparql" ;
fuseki:serviceReadGraphStore "get" ;
fuseki:serviceReadWriteGraphStore "data" ;
fuseki:serviceUpdate "update" ;
fuseki:serviceUpload "upload" .
<#dataset> rdf:type ja:RDFDataset ;
ja:defaultGraph <#model_inf> ;
.
<#model_inf> a ja:InfModel ;
ja:baseModel <#tdbGraph> ;
#本体文件的路径
ja:content [ja:externalContent <file:///D:/apache-jena-fuseki-3.5.0/apache-jena-fuseki-3.5.0/run/databases/ontology.ttl> ] ;
#启用OWL推理机
ja:reasoner [ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>] .
<#tdbGraph> rdf:type tdb:GraphTDB ;
tdb:dataset <#tdbDataset> ;
.
<#tdbDataset> rdf:type tdb:DatasetTDB ;
tdb:location "D:/apache-jena-3.5.0/apache-jena-3.5.0/tdb" ;
.