Neosemantics是一个插件,支持在Neo4j中使用RDF。它能够以无损的方式在Neo4j中存储RDF数据(导入的RDF随后可以在导出过程中不丢失任何三元组)。按需将Neo4j的属性图数据导出为RDF。Neosemantics中的其他特性包括Neo4j图上的模型映射和推理。
安装教程
1. 下载Neo4j-community-4.2.3。Neo4j-community-4.2.3(Neo4j-community-4.2.3需要jdk11)
2. 下载Neosemantics-4.2.0.0。neosemantics-4.2.0.0
3. 解压neo4j,并将neosemantics-4.2.0.0.jar复制到neo4j-community-4.2.3/plugins目录下,并修改/conf/neo4j.conf配置文件,添加一行:
dbms.unmanaged_extension_classes=n10s.endpoint=/rdf (neo4j-3.X版本与4.X版本配置项不同)
4. 启动neo4j,输入 call dbms.procedures() 来检查是否安装完成。
5. 运行 :GET http://localhost:7474/rdf/ping 来检查扩展是否已挂载。至此安装完成
Neosemantics使用rdf4j来解析和序列化RDF。Eclipse rdf4j是一个用于处理和处理RDF数据的强大的Java框架。Rdf4j
配置neo4j使用RDF数据
在导入和使用Neo4j中的RDF数据之前,需要在图配置中定义如何处理这些数据。图配置中定义的所有设置都是全局的,并且在整个图的生命周期内都是有效的,并且会驱动n10s中的函数和过程的行为。
在neo4j中执行 CALL n10s.graphconfig.init(); 可以帮助我们进行这种设置。调用不带参数的程序将设置所有默认值。若更改默认值需要通过map进行修改 CALL n10s.graphconfig.init( { handleMultival: "ARRAY" })
在neo4j中执行 CALL n10s.graphconfig.drop; 可以删除图配置。
前提条件:创建唯一性约束
将数据持久化到Neo4j中的所有方法都有一个模式级的先决条件:这是在带有标签资源的节点的属性URI上存在唯一性约束。如果约束还没有出现,需要在neo4j上运行
CREATE CONSTRAINT n10s_unique_uri ON (r:Resource) ASSERT r.uri IS UNIQUE;
否则rdf导入会报错。这个约束的目的是通过URI保证资源的唯一性,并通过将资源添加到索引来加速获取过程。