Jena的介绍
最近在进行一些知识图谱的入门学习,一直想写一点学习笔记,今天刚把jena和fuseki装在了服务器上,又导入了一些rdf文件,并进行SPARQL语句的查询。我的一点总结如下:
什么是Jena?
Apache Jena是专门用于语义网本体操作的开源Java框架,其提供RDF和SPARQL API,来查询、修改本体和进行本体推理,并且提供了TDB和Fuseki来存储和管理三元组。
什么是TDB?
TDB的官方文档介绍如下:
TDB is a component of Jena for RDF storage and query. It support the full range of Jena APIs. TDB can be used as a high performance RDF store on a single machine.
大体就是,就是把RDF数据load到TDB中存储,之后的查询就是通过TDB查询,而且速度很快。Jena总共支持三种内置存储模式,分别是RDB,SDB,和TDB。其中RDB现在几乎不用了,因为速度比较慢。而官方推荐的则是TDB,速度快,操作简单,支持几十亿条记录,且支持几百个并行查询。所以在使用Jena的API时,要先导入相应的.nt、.rdf等数据,load到你的TDB中并在之后进行处理。(当然也有图形化界面如Fuseki服务器,之后会说)。
什么是Fuseki?
Fuseki是基于SPARQL 1.1版本的协议,以及SPARQL图存储协议,进行查询和修改操作。Fuseki是与TDB高度集成的服务,不仅集成了Jena文本查询和Jena空间查询,还提供了一个稳健的业务持久化存储层。对于其他RDF查询和存储系统来说,Fuseki可被用来提供协议引擎。
[官方文档](http://jena.apache.org/documentation/fuseki2/index.html
配置之前
在配置之前,我的linux服务器已经配置好了java环境,完成了jdk的安装,如果没安装的先百度一下如何安装jdk,我的服务器是Ubuntu14.04,但是是外国的ip,所以本地传输文件比较慢,但是下载速度杠杠滴。
Jena的配置安装署
Jena的安装很简单,在windows中直接安装即可,也可以把jar包导入项目,就可以直接用API,在linux中,先把压缩包传到linux服务器,之后解压,然后:
- 配置环境变量(配置
/etc/profile
或者当前用户目录下的~/.bashrc
,这里以后者为例):
export JENA_HOME=/usr/java/apache-jena-3.10.0
export PATH=$JENA_HOME/bin:$PATH
- 激活:
source ~/.bashrc
- 查看:输入
sparql
,如果成功则输出No query string or query file
。
Fuseki的配置安装
同上,先把fusuki的安装包传输到服务器,我是用的xshell的rz
命令,然后选择文件就可以了,我是放在/usr/java/
文件夹中,也就是放jdk的文件夹。然后解压:tar -zxcf filename
。
- 进入
fuseki
文件夹,启动服务:./fuseki-server --config=ConfigFile
,此时如果在本地部署就可以输入localhost:3030
访问,服务器部署可以在pc上登陆:ip:3030登陆,没有开启3030端口的百度打开3030端口。
这个时候遇到了一个问题,没法在图形化界面上添加数据库,也没有add one。这时候,找到了一个博主,看了它的方法,解决了问题,方法如下:
在安装目录下有一个run
文件夹,打开,修改里面的在执行启动服务同级目录下 有个run文件夹,修改里面的shiro.ini
:vi shiro.ini
,将
##/$/** = localhostFilter
改成:
/$/** = anon
完成!其实不在于这一个问题的解决,更在于博主解决问题的方法,感觉自己还是了解的太少。传送门
ps:新建的dataset在apache-jena-fuseki-3.10.0/run/databases
目录下,就是add的database。
命令行的安装
在命令行中,fuseki的配置也比较简单,使用TDB导入的命令如下:
/jena-fuseki/tdbloader --loc=/jena-fuseki/data filename
上面的/jena-fuseki/data
是tdb库的路径,也就相当于服务器图形化界面导入方法中的dataset目录,后面的filename
是.rdf
、.nt
等文件的路径。
Fuseki启动的命令如下,需要指定tdb生成的文件路径并指定数据库名:
/jene-fuseki/fuseki-server --loc=/jena-fuseki/data --update /music
用TBQuery进行查询
tdbquery --loc=/jena-fuseki/data --query=q1.rq
q1.rq
是sparql查询语句,可以放在tdb库文件里,路径和位置要放对,否则可能会出现File not found:
。
5 条评论
哈哈哈,写的太好了https://www.lawjida.com/
《古畑任三郎完结篇03最后之舞》恐怖片高清在线免费观看:https://www.jgz518.com/xingkong/141673.html
文章的确不错啊https://www.cscnn.com/
看的我热血沸腾啊www.jiwenlaw.com
不错不错,我喜欢看 https://www.ea55.com/