栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux系统中Jena环境变量配置及使用

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux系统中Jena环境变量配置及使用

前言:最近在使用jena开发知识图谱,总结一下最近的使用过程。
文末有 apache-jena-3.6.0,Apache-jen.a-fuseki-3.6.0以及d2rq-0.8.1tar
文件。因为高版本的需要相应的java版本,对我其他软件不友好,所以以3.6版本为例子:
jena在windows中配置以及使用戳这里,优质博文

例子中的所有文件都在这里,膜拜知乎大佬

一:java环境变量设置。

Linux中java环境变量设置戳这里

二:配置jena 1. 下载看文末 2. 将两个文件房子合适位置,我是跟项目文件放在一起方便操作

解压:tar -zxvf apache-jena-3.6.0.tar.gz
解压:tar -zxvf apache-jena-fuseki-3.6.0.tar.gz

3. 配置环境变量。我是在 ~/.bash_profile中进行环境变量设置

code: vim ~/.bash_profie
文末添加:

		export JENA_HOME=/root/yhz/jena/apache-jena-3.6.0
		export PATH=$JENA_HOME/bin:$PATH
注: 这里的路径根据自己实际情况来制定。

激活:`source ~/.bash_profile`
查看:sparql,如果出现No query string or query file,证明配置成功。
三:使用jena和jena-fuseki 1. 数据准备
我用的是mysql,数据的话这里就不展示了,可以参考windows连接,这里面的数据过程与这个差不多一样。
2. 使用D2RQ进行数据转换
首先进入目录,运行命令,生成默认mapping文件
generate-mapping -u root -p "****" -o D:AI_Work_Demokg_demo_testkg_demo_movie_mapping.ttl jdbc:mysql:///kg_demo_movie

这里的输出位置可以随意指定。

注意:-o 这里输出路径位置根据实际情况

3. 对生成的默认mapping文件进行参数修改,特别是文件位置

这里注意的是,文件生成的位置为 指定的位置。
vim kg_demo_movie_mapping.ttl 进行更改
这里修改规则其实,跟RDFs的语法类似,将类与属性都要写上。

4. 使用下面的命令将我们的数据转换为RDF
./dump-rdf -o /root/yhz/kg_demo_test/kg_demo_movie.nt ./kg_demo_movie_mapping.ttl

注意实验:这一步的地址有点问题。

5. 与计算机进行交互,有两种方式

两种方式都要从这一步开始。
进入d2rq目录,使用下面命令启动 D2R Server

d2r-server /root/yhz/kg_demo_testkg_demo_movie_mapping.ttl

这一步主要目的是生成相应的tdb数据

两种方式:
方式一: 浏览器中查询。

	
	1. 进入浏览器操作
	默认端口是2020,在浏览器输入“http://服务器地址:2020/”
	
方式二: 通过脚本进行 (以知乎大佬的代码为例子)

	from SPARQLWrapper import SPARQLWrapper, JSON

	sparql = SPARQLWrapper("http://服务器地址:2020/sparql")
	sparql.setQuery("""
		PREFIX : 
		PREFIX rdf: 

		SELECT ?n WHERe {
		  ?s rdf:type :Person.
		  ?s :personName '巩俐'.
		  ?s :hasActedIn ?o.
		  ?o :movieTitle ?n.
		  ?o :movieRating ?r.
		FILTER (?r >= 7)
		}
	""")
	sparql.setReturnFormat(JSON)
	results = sparql.query().convert()

	for result in results["results"]["bindings"]:
		print(result["n"]["value"])
四:从这里说明一下:使用jena上面的两种交互方式可以跳过直接从这一步开始,我从头一步一步操作主要是为了验证环境,了解流程。 6. 使用Apache Jena 推理

创建一个文件夹(根据需要命名,这里创建了一个tdb文件夹),进入‘Apache-Jena-3.6’文件夹里bat文件夹,使用 tdbloaser

首先:将之前我们得到的RDF数据以TDB的方式存储。为下面的启动fuseki-server做准备
使用下面命令:(这里巨坑与windows有去别,很容易踩坑)

tdbloader --loc="/root/yhz/kg_demo_test/jena_linux/tdb" "/root/yhz/kg_demo_test/kg_demo_movie.nt"

“--loc”指定tdb存储的位置,即刚才我们创建的文件夹;
第二个参数是由Mysql数据转换得到的RDF数据。

7. 进入“apache-jena-fuseki-X.X.X”文件夹**,运行“./fuseki-server --config=ConfigFile”,然后退出

程序会在当前目录自动创建run文件。

8. 将我们的本体文件“ontology.owl”移动到“run”文件夹下的“databases”文件夹中,并将“owl”后缀名改为“ttl”(这里的相关文件都可以在windows方式中知乎大佬项目中下载的到,或者自己编写) 9. 在“run”文件夹下的“configuration”中,我们创建名为“fuseki_conf.ttl”的文本文件(取名没有要求),加入如下内容:
@prefix :       .
@prefix tdb:    .
@prefix rdf:    .
@prefix ja:     .
@prefix rdfs:   .
@prefix 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> ;

#本体文件的路径  TODO: 路径自定
ja:content [ja:externalContent  ] ;

#启用OWL推理机
ja:reasoner [ja:reasonerURL ] .

<#tdbGraph> rdf:type tdb:GraphTDB ;
tdb:dataset <#tdbDataset> ;
.
# TODO 路径
<#tdbDataset> rdf:type tdb:DatasetTDB ;
tdb:location "/root/yhz/jena/tdb" ;
10. 再次运行

./fuseki-server

注意:多次运行的时候会出现报错这个时候可以先删除 tdb 文件中的所有文件
进入tdb文件夹操作命令如下: rm -f *

11. web 交互网址:

浏览器访问“http://服务器地址:3030/”
脚本进行交互:

PREFIX : 
PREFIX rdf: 
PREFIX rdfs: 
SELECT * WHERe {
?x :movieTitle '功夫'.
?x ?p ?o.
}
12. 进行问答交流

到Jena_sparql_endpoint.py 修改endpoint_url="http://服务器地址:3030/kg_demo_movie/query"
运行 query_main.py文件,
这里的url进行修改。

链接:https://pan.baidu.com/s/1By5q8246b2Z4IALCX9uq8g
提取码:w68r
–来自百度网盘超级会员V5的分享

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/891402.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号