Protege 构建知识图谱并接入 Neo4j 与前端可视化实战
本文记录了一个完整的教育领域知识图谱项目流程,从本体建模到图数据库存储,再到前端的可视化展示。主要涉及 Protégé、Neo4j、Python 数据处理以及 Vue+ECharts 技术栈。
工具准备
1. Protégé 安装
推荐使用版本:Protégé-5.5.0。安装后需熟悉基本操作,如创建本体、定义类与属性等。
2. Neo4j 安装
Neo4j 对 JDK 版本有一定要求,建议配置 JDK 11。若本地存在多个 Java 版本,需确保环境变量 JAVA_HOME 指向正确的版本,避免启动报错。
数据导入流程
1. 启动 Neo4j
在命令行输入以下命令启动控制台模式:
neo4j.bat console
启动成功后,访问浏览器中的 Neo4j Browser。
2. 格式转换(OWL 转 Turtle)
Protégé 导出的 .owl 文件通常需转换为 .turtle 格式才能被 Neo4j 高效读取。如果直接生成失败或文件大小为 0KB,可尝试使用命令行工具手动转换。
在项目目录下打开 PowerShell,执行以下指令(注意替换文件名):
java -jar rdf2rdf-1.0.1-2.3.1.jar creature.owl creature.turtle
转换完成后检查文件大小,非空即表示成功。
3. 导入 Neo4j
进入 Neo4j Browser,依次执行以下 Cypher 语句。
清除旧数据
MATCH (n) DETACH DELETE n;
初始化 RDF 插件配置
CALL n10s.graphconfig.init();
导入 RDF 数据 请根据实际路径修改文件地址:
CALL n10s.rdf.import.fetch("file:///E:/BaiduNetdiskDownload/owl 导入 neo4j/第一单元_test.turtle", "RDF/XML", {handleVocabUris: "IGNORE"})
验证数据 查询部分节点信息:
MATCH (n) WHERE n:`课名称` OR n:`知识元` RETURN n LIMIT 500;
查询关系类型:
MATCH ()-[r]->() RETURN DISTINCT type(r) AS relationshipType
清理 URI 前缀 导入后的节点 URI 可能包含冗长的命名空间前缀,可使用以下语句简化:
MATCH (n) SET n.uri = REPLACE(n.uri, 'http://www.semanticweb.org/florence/ontologies/2025/1/untitled-ontology-9#', '') RETURN n
导出 JSON 数据
为了在前端进行可视化,需要将图数据导出为 JSON 格式。这需要借助 APOC 库。
首先确认 APOC 是否安装成功:
RETURN apoc.version()
使用 apoc.export.json.query 导出指定范围的数据:


