Neo4j官方:neosemantics (n10s): Neo4j RDF & Semantics toolkit
一、安装
1、下载
下载 扩展neosemantics jar包 将jar复制到neo4j/plugins目录下。注意:neosemantics jar包必须与Neo4J版本相匹配。https://github.com/neo4j-labs/neosemantics
2、修改配置文件
2.1 Neo4j的4.x版本
在配置文件结尾加上:
dbms.unmanaged_extension_classes=n10s.endpoint=/rdf
2.2 Neo4j的3.x版本
在配置文件结尾加上:
dbms.unmanaged_extension_classes=semantics.extension=/rdf
3、重启neo4j
二、导入RDF文件
1、先初始化 Graph Config
CALL n10s.graphconfig.init()
参数默认值:
param | value |
---|---|
“handleVocabUris” | “SHORTEN” |
“handleMultival” | “OVERWRITE” |
“handleRDFTypes” | “LABELS” |
“keepLangTag” | false |
“keepCustomDataTypes” | false |
“applyNeo4jNaming” | false |
“baseSchemaNamespace” | “neo4j://graph.schema#” |
“baseSchemaPrefix” | “n4sch” |
“classLabel” | “Class” |
“subClassOfRel” | “SCO” |
“dataTypePropertyLabel” | “Property” |
“objectPropertyLabel” | “Relationship” |
“subPropertyOfRel” | “SPO” |
“domainRel” | “DOMAIN” |
“rangeRel” | “RANGE” |
2、预览待导入文件
2.1 通过远程链接预览【n10s.rdf.preview.fetch】
As our RDF document is hosted online, we can use n10s.rdf.preview.fetch to fetch the RDF from a remote URL.
CALL n10s.rdf.preview.inline(
'<< YOUR RDF QUERY HERE >>',
'<< FORMAT >>'
)
比如:
CALL n10s.rdf.preview.fetch(
'https://raw.githubusercontent.com/neo4j-labs/neosemantics/3.5/docs/rdf/nsmntx.ttl',
'Turtle'
)
2.1 通过文本预览【n10s.rdf.preview.inline】
CALL n10s.rdf.preview.inline(
'
@prefix neo4voc: <http://neo4j.org/vocab/sw#> .
@prefix neo4ind: <http://neo4j.org/ind#> .
neo4ind:nsmntx3502 neo4voc:name "NSMNTX" ;
a neo4voc:Neo4jPlugin ;
neo4voc:version "3.5.0.2" ;
neo4voc:releaseDate "03-06-2019" ;
neo4voc:runsOn neo4ind:neo4j355 .
neo4ind:apoc3502 neo4voc:name "APOC" ;
a neo4voc:Neo4jPlugin ;
neo4voc:version "3.5.0.4" ;
neo4voc:releaseDate "05-31-2019" ;
neo4voc:runsOn neo4ind:neo4j355 .
neo4ind:graphql3502 neo4voc:name "Neo4j-GraphQL" ;
a neo4voc:Neo4jPlugin ;
neo4voc:version "3.5.0.3" ;
neo4voc:releaseDate "05-05-2019" ;
neo4voc:runsOn neo4ind:neo4j355 .
neo4ind:neo4j355 neo4voc:name "neo4j" ;
a neo4voc:GraphPlatform , neo4voc:AwesomePlatform ;
neo4voc:version "3.5.5" .
',
'Turtle'
)
3、导入待导入文件
3.1 通过远程链接导入【n10s.rdf.preview.fetch】
CALL n10s.rdf.import.fetch(
'https://raw.githubusercontent.com/neo4j-labs/neosemantics/3.5/docs/rdf/nsmntx.ttl',
'Turtle'
)
3.2 通过文本导入
CALL n10s.rdf.import.inline(
'
@prefix neo4voc: <http://neo4j.org/vocab/sw#> .
@prefix neo4ind: <http://neo4j.org/ind#> .
neo4ind:nsmntx3502 neo4voc:name "NSMNTX" ;
a neo4voc:Neo4jPlugin ;
neo4voc:version "3.5.0.2" ;
neo4voc:releaseDate "03-06-2019" ;
neo4voc:runsOn neo4ind:neo4j355 .
neo4ind:apoc3502 neo4voc:name "APOC" ;
a neo4voc:Neo4jPlugin ;
neo4voc:version "3.5.0.4" ;
neo4voc:releaseDate "05-31-2019" ;
neo4voc:runsOn neo4ind:neo4j355 .
neo4ind:graphql3502 neo4voc:name "Neo4j-GraphQL" ;
a neo4voc:Neo4jPlugin ;
neo4voc:version "3.5.0.3" ;
neo4voc:releaseDate "05-05-2019" ;
neo4voc:runsOn neo4ind:neo4j355 .
neo4ind:neo4j355 neo4voc:name "neo4j" ;
a neo4voc:GraphPlatform , neo4voc:AwesomePlatform ;
neo4voc:version "3.5.5" .
',
'Turtle'
)
三、Neo4j导出RDF文件
CALL n10s.rdf.export.cypher("MATCH (p:GraphPlatform) RETURN p")
四、删除导入到Neo4j中的RDF数据
To delete RDF data from our Neo4j Graph, we can use the n10s.rdf.delete.fetch procedure.
As with the preview and import procedures, this accepts two arguments: the URL of the RDF query and the format.
CALL n10s.rdf.delete.fetch(
'https://raw.githubusercontent.com/neo4j-labs/neosemantics/3.5/docs/rdf/nsmntx.ttl',
'Turtle'
)
CALL semantics.importRDF("file:///C:/软件/neo4j-community-3.5.5-windows/neo4j-community-3.5.5/import/dsc.nlp-bigdatalab.org.ttl", "Turtle", {shortenUrls: false})
参数:数据的绝对路径
数据格式:turtle, 即ttl格式
shortenUrls:是否省略url展示
参考资料:
Neo4j官方:neosemantics (n10s): Neo4j RDF & Semantics toolkit
如何将owl/RDF文件导入neo4j
RDF数据(ttl)导入neo4j
将中文开放知识图谱的owl文件导入到neo4j中,踩坑总结