You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Neo4j的rdflib解析器时,如何将列表作为属性值导入

解决rdflib-neo4j导入RDF多值属性为Neo4j数组的问题

你的RDF Turtle文件内容如下:

<https://example/Product_1> <http://www.w3.org/ns/dcat#keyword> "health".
<https://example/Product_1> <http://www.w3.org/ns/dcat#keyword> "fitness".
<https://example/Product_1> <http://www.w3.org/ns/dcat#keyword> "sports".

要让rdflib-neo4j将多值的dcat:keyword解析为Neo4j的数组属性,核心是通过谓词-属性映射配置指定该属性以列表形式存储,具体实现如下:

  • 初始化Neo4jStore时,传入config参数,在predicate_to_property里定义dcat:keyword的映射规则,明确设置type: "list"。

完整代码示例:

from rdflib import Graph
from rdflib_neo4j import Neo4jStore, RDFGraph

# 配置谓词到Neo4j属性的映射,指定keyword为数组类型
predicate_mapping = {
    "http://www.w3.org/ns/dcat#keyword": {
        "property": "Keyword",
        "type": "list"
    }
}

# 连接Neo4j数据库
store = Neo4jStore(
    uri="bolt://localhost:7687",
    username="neo4j",
    password="你的数据库密码",
    config={"predicate_to_property": predicate_mapping}
)

# 创建RDF图并加载TTL文件
g = RDFGraph(store=store)
g.parse("你的文件路径.ttl", format="turtle")

关键说明

  • predicate_to_property用于定义RDF谓词到Neo4j节点属性的映射关系
  • 设置type: "list"后,同一主体的多个dcat:keyword值会被自动合并为一个数组,最终生成的节点结构就是(n:Product {Keyword:["health","fitness","sports"]})
  • 如果需要处理其他多值谓词,直接在predicate_mapping中添加对应的条目即可

内容的提问来源于stack exchange,提问作者Bahar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 11:52:09