Neo4j中导入RDF数据

知识图谱构建过程中图数据库Neo4j是比较常用的知识存储工具(上一篇文章介绍了图数据库Neo4j的安装与配置),RDF也是知识表示常见形式,由于Neo4j官方只介绍了CSV与关系数据库中数据如何导入Neo4j,但对于如何导入RDF三元组数据未作说明,故本文主要介绍将RDF数据导入Neo4j的过程。

1.下载扩展jar包

第一种方法获得jar包源码,编译得到jar

wget https://github.com/jbarrasa/neosemantics/archive/3.3.0.2.tar.gz

第二种方法直接获得jar包

wget https://github.com/jbarrasa/neosemantics/releases/download/3.3.0.2/neosemantics-3.3.0.2.jar

注:第二种方法在linux上基本无法下载,可能服务器在国外的原因,可以尝试先把jar下载到本地计算机,然后上传到云端的linux上

将jar复制到/var/lib/neo4j/plugins目录下

2.修改配置文件

vim /etc/neo4j/neo4j.conf

添加下面内容

dbms.unmanaged_extension_classes=semantics.extension=/rdf

3.重新启动 neo4j

sudo neo4j stop

sudo neo4j start

4.访问web端neo4j并登录

在查询语句输入栏输入以下语句:

call dbms.procedures()

发现列表中已经包含可扩展的rdf

也可以输入以下语句:

:GET /rdf/ping

得到以下结果

{"ping":"here!"}

通过以上操作表明neo4j已经扩展支持的RDF数据

5.创建命名空间前缀

根据自己的rdf数据内容创建命名空间,以下举个例子:

CREATE (:NamespacePrefixDefinition {

http://www.example.com/ontology/1.0.0#: 'ex',

http://www.w3.org/1999/02/22-rdf-syntax-ns#: 'rdfs'})

6.导入rdf数据

首先要创建常规标签,这是导入数据必要步骤

CREATE INDEX ON :Resource(uri)

CREATE INDEX ON :URI(uri)

CREATE INDEX ON :BNode(uri)

CREATE INDEX ON :Class(uri)

其次导入数据

CALL semantics.importRDF("file:///path/to/some-file.ttl", "Turtle", {shortenUrls: true})

在导入数据过程中,如果你的数据不符合RDF的标准规范,会提示一定的错误信息,经过查找定位,直到符合要求即可。

参考:https://github.com/jbarrasa/neosemantics

https://jesusbarrasa.wordpress.com/2016/06/07/importing-rdf-data-into-neo4j/

 

转载于:

https://mp.weixin.qq.com/s?__biz=MzU2NzQ2OTAwMw==&mid=2247483667&idx=1&sn=82d5b998b4f751a02240afa1734f56b9&chksm=fc9df7b7cbea7ea1a287e87b6d6e25f7eed43f3d780860ad3aa2ca4597a4bfe8c13eebe78bc0&mpshare=1&scene=23&srcid=0328odL3Molllc6Vke76iUQl#rd

  • 支付宝打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
Administrator

Administrator

知人不必言尽,留三分余地与人,留些口德与己。 责人不必苛尽,留三分余地与人,留些肚量与己。 才能不必傲尽,留三分余地与人,留些内涵与己。 锋芒不必露尽,留三分余地与人,留些深敛与己。 有功不必邀尽,留三分余地与人,留些谦让与己。

发表评论

电子邮件地址不会被公开。 必填项已用*标注