• Neo4j导入RDF文件


    一、背景

    众所周知,Neo4j 本身是不支持导入 RDF 文件的。但我们可以借助 neosemantics 来进行导入。

    neosemantics 简称 n10s ,4.0之前的把呢不能叫 semantics

    现在官网也无法访问 4.0 之前版本的相关文档了。推荐大家使用4.0以上的。

    二、安装插件

    1、下载 neosemantics ,我下载的是 neosemantics-4.1.0.1.jar

    下载地址1

    下载地址2

    2、复制 neosemantics-4.1.0.1.jarneo4j 的安装目录下的 plugins 文件夹中

    (注意:如果你想要支持 JSON-LD 序列化的 RDF,则需要安装 APOC 插件)

    3、修改配置文件

    neo4j/neo4j.conf 文件中添加以下内容:

    dbms.unmanaged_extension_classes=n10s.endpoint=/rdf
    
    • 1
    如果是4.0版本之前的,那么添加下面的内容:
    dbms.unmanaged_extension_classes=semantics.extension=/rdf
    
    • 1

    4、重新启动 neo4j

    ./bin/neo4j restart
    
    • 1

    5、用浏览器访问 neo4j ,并登录,查看现在是否支持导入 RDF

    call dbms.procedures()
    
    • 1

    返回如下信息:
    在这里插入图片描述
    或者:

    :GET http://IP地址:7474/rdf/ping
    
    • 1

    返回信息如下:
    在这里插入图片描述

    三、配置

    1、初始化,设置图形的配置

    CALL n10s.graphconfig.init();
    
    • 1
    如果是4.0版本之前的,那么使用下面的命令:
    CALL semantics.graphconfig.init();
    
    • 1

    返回信息如下:
    在这里插入图片描述

    2、创建唯一性约束

    将数据持久化到Neo4j中的所有方法都有一个模式级的先决条件:这是在带有标签资源的节点的属性URI上存在唯一性约束。

    如果约束还没有出现,需要在neo4j上运行

    CREATE CONSTRAINT n10s_unique_uri ON (r:Resource) ASSERT r.uri IS UNIQUE;
    
    • 1

    否则rdf导入会报错。这个约束的目的是通过URI保证资源的唯一性,并通过将资源添加到索引来加速获取过程。

    此时大功已经告成了。我们可以导入 RDF 文件了。

    四、导入数据

    支持导入的数据:Turtle、N-Triples、JSON-LD、TriG、RDF/XML

    call n10s.rdf.import.fetch("/NLP/KG/Wikidata/Onto/ontology-1.0.owl", "RDF/XML");
    
    • 1
    call n10s.rdf.import.fetch("/NLP/KG/Wikidata/other/nsmntx.ttl", "Turtle");
    
    • 1
    CALL n10s.rdf.import.fetch('/NLP/KG/Wikidata/other/test.nt', 'N-Triples')
    
    • 1

    4.0版本之前使用下面的命令:

    CALL semantics.importRDF(x, x, x)
    
    • 1

    注意:如果是在 Windows 上部署 Neo4j ,需要在路径前面加上file://

    CALL n10s.rdf.import.fetch('file:///C:/NLP/KG/Wikidata/other/test.nt', 'N-Triples')
    
    • 1

    五、删除所有数据

    MATCH (resource:Resource) DETACH DELETE resource;
    
    • 1

    六、bug 详见

    使用过程中遇到的bug,详见汇总:bug汇总地址

  • 相关阅读:
    Mat介绍
    算法刷题:P1908 逆序对
    JAVAEE初阶相关内容第十弹--多线程(初阶)
    java项目集成2个redis
    Java核心篇,二十三种设计模式(二十二),行为型——模板方法
    Vue学习——Vue-Cli创建Vue项目(19)
    基于Istio服务治理网格的SpringCloud大型微服务项目部署流程
    SpringBoot运维实用篇、打包、运行、高级配置、多环境开发、日志
    计算机网络:从入门到放弃
    c# 修改数据集
  • 原文地址:https://blog.csdn.net/qq_45083975/article/details/124935776