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", )

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

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

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180312G06H3F00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券