neo4j的graph config params 翻译

来源:Neosemantics Reference

Graph Config Params (全局配置)

call n10s.graphconfig.init( params )

以下这些配置在Neo4j图谱的整个生命周期都起作用,贯穿import/export/delete/preview/stream这些API的调用过程。

  • handleVocabUris
    值(默认):‘SHORTEN’, ‘SHORTEN_STRICT’, ‘IGNORE’,‘MAP’,‘KEEP’ (‘SHORTEN’)
    'SHORTEN', 全称 uris 会通过使用前缀代替从而缩短属性名、关系名和标签,前缀会通过命名空间前缀管理来定义,如果没有定义的会产生诸如ns1 ns2 ...格式的代替。

    'SHORTEN_STRICT', 同样的行为“SHORTEN”,但是如果没有在导入的RDF中为名称空间预定义前缀,则失败。

    'IGNORE' uris 会被忽略,只有本地名称保留。

    'MAP'词汇表元素映射应用于导入的过程。

    'KEEP'uris 原封不动。

参照:在RDF中识别元素的URIs(例如:资源,属性等等)命名空间变短了,从而让人更易阅读,Cypher更容易查询。
例如: http://neo4j.org/vocab/sw#name缩短为ns0_\_name(注意前缀和本体名称之间的两个下划线)。类似的,http://www.w3.org/1999/02/22-rdf-syntax-ns#type 会被转换为rdf\_\_type

  • handleMultival
    值(默认):‘OVERWRITE’, ‘ARRAY’ (‘OVERWRITE’)
    'OVERWRITE' 属性值视为唯一,导入RDF中多个属性值会被重写。

    'ARRAY'属性存储在数组中,允许存储多个值。除非设置了multivalPropList,否则全部属性(多个属性)都会存储为数组。

  • multivalPropList

    值(默认):string[]

    存储全称uri的列表,列表中的属性多个会存储为数组,剩下的属性多个会被重写(单一)。

  • keepLangTag
    值(默认):boolean(false)
    当设置为 true ,language标签会作为一个属性值,这在多语言数据集中非常有用,另外,可通过getLangValue函数来获取相应的值。

  • handleRDFTypes
    值(默认):‘LABELS’, ‘NODES’,‘LABELS_AND_NODES’ (‘LABELS’)

    'LABELS',rdf:type 描述在Neo4j中会作为节点的 label 引入。

    'NODES', rdf:type 描述会作为与一个代表类的节点的 rdf__type 关系。

    'LABELS_AND_NODES' rdf:type 描述会以冗余方式存储,也即上述两种方式。

  • keepCustomDataTypes
    值(默认):boolean(false)

当设置为true,所有包含自定义属性类型的属性会存储为紧接自定义数据类型IRIs的字符串。

  • customDataTypePropList
    值(默认):string[]
    当设置后,列表中属性的自定义类型才会被引入。
  • applyNeo4jNaming
    值(默认):boolean (false)
    当设置为true后,而且和handleVocabUris: 'IGNORE',一起使用,词典元素会被大小写转化(关系类型所有字符大写,lable的首字母大写)。

自定义命名空间的前缀

链接
当我们在RDF导入中使用url简写时,我们拥有让neosemantics自动为引入RDF文件中出现的命名空间分配前缀。因此,在我们引入RDF之前,一些非常流行的前缀需要提前设置,这些包括:

"http://www.w3.org/1999/02/22-rdf-syntax-ns#" prefixed as rdf 
 "http://www.w3.org/2004/02/skos/core#" prefixed as skos.

无论何时,我们可以通过执行n10s.nsprefixes.list代码,来检查运行所使用的前缀。

call n10s.nsprefixes.list();

在运行你第一个import程序之前,方法应该没有任何返回结果,但是当你第一次执行后,它应该返回一个至少包含以下实体的列表。

prefixnamespace
“skos”“http://www.w3.org/2004/02/skos/core#”
“sch”“http://schema.org/”
“sh”“http://www.w3.org/ns/shacl#”
“rdfs”“http://www.w3.org/2000/01/rdf-schema#”
“dc”“http://purl.org/dc/elements/1.1/”
“dct”“http://purl.org/dc/terms/”
“rdf”“http://www.w3.org/1999/02/22-rdf-syntax-ns#”
“owl”“http://www.w3.org/2002/07/owl#”

比如说,我们要引入使用了http://neo4j.org/voc/sw#命名空间的RDF数据集,然后我们需要让其成为neo的前缀,而不是由neosemantics自动分类的ns0或者(ns7)。可以通过调用下面的代码来实现:

CALL n10s.nsprefixes.add("neo", "http://neo4j.org/vocab/sw#");

而且然后,当导入RDF数据命名空间被检测到的话,就会用到neo的前缀。

执行prefix定义时,要仔细确认,尤其是在导入RDF数据之后,你可以重写正在使用的命名空间,这会影响重新构造已经导入的RDF数据。

有时,我们需要定义一系列RDF头部的前缀,这可以来自SPAQL查询,来自Turtle的文档头部,或者RDF/XML的文档底部,你可以从你的RDF文档中截取,然后传进addNamespacePrefixesFromText方法里,它会提取命名空间的定义,然后通过触发n10s.nsprefixes.addFromText添加它们中的每个个体。示例代码:

WITH '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/"
         xmlns:cert="http://www.w3.org/ns/auth/cert#"
         xmlns:dct="http://purl.org/dc/terms/"' as txt
CALL n10s.nsprefixes.addFromText(txt) yield prefix, namespace
RETURN prefix, namespace;

向Neo4j导入RDF数据时的一些注意

  • 版本问题

neosemantics 从3.x 版本过渡到4.x版本时,导入rdf文件会存在一些区别

参考:neosemantics

  • 文件导入问题

window本地使用n10s进行rdf数据导入时,n10s官网教程给出下面的解决方案:

	CALL n10s.rdf.import.fetch("file://tmp/customDataTypes.ttl","Turtle")

但在neo4j browser中导入会出现下面无文件或者路径的问题,从而导入失败
在这里插入图片描述
解决:最快捷的解决方式便是搭建静态文件服务器(以nodeJs为例)

  1. 安装http-server
npm install -g http-server
  1. 在需要导入的rdf文件所在目录中,启动文件服务
http-server
  1. 按照提示在浏览器输入下面的地址,然后选择要导入文件,右键选择复制连接地址
    在这里插入图片描述
  2. neo4j browser中输入路径即可
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值