当前位置:首页 > 技术文章 > 正文内容

springboot+Neo4j:快速搭建自己的知识图谱可视化构建平台

zonemu1周前 (07-23)技术文章8

简介

这是一个可视化的知识图谱构建工具,可以根据自己的需求,直接在UI上操作创建节点,创建关系等,从而快速形成自己的知识图谱。本系统虽然现在功能比较少,也比较简单,但完全开源,也在不断完善中,值得关注和参与一下。

实现的基本功能:

  1. 新增节点,添加连线,快速添加节点和关系;
  2. 节点的颜色和大小可修改;
  3. 节点和关系的编辑,删除;
  4. 导出成图片;
  5. csv导入;
  6. 导出csv;
  7. 添加图片和富文本;
  8. 节点之间多个关系;
  9. 其它功能也在增加中...

技术栈

比较简单,管理后台前端页面是基于vue + d3.js ,服务端是springboot+Neo4j.

快速运行/启动

需要首先安装基础环境:jdk1.8,neo4j(参见《知识图谱构建利器:图数据库Neo4j的环境部署和简单使用》),node,mysql等。

1.下载项目

git clone https://gitee.com/MiraculousWarmHeart/Neo4j.git 

目录如下图所示:kgBuilder-ui为管理后台前端项目;kg_builder.sql为数据库初始化源码。

2.初始化数据库

手动创建数据库,rdsmysql,执行数据库初始化脚本对数据进行初始化。

3.修改配置

使用idea打开项目,等待依赖包加载完成。打开目录 src/main/resources下的application.yml配置文件,分别修改neo4j数据库配置和mysql数据库配置。

application.yml

  neo4j:
      #url: bolt://localhost:7687  #3.x
      url: neo4j://localhost:7687 #4.x
      username: neo4j
      password: 123456
  datasource:
      url: jdbc:mysql://localhost:3306/rdsmysql?useSSL=false&serverTimezone=UTC
      driverClassName: com.mysql.cj.jdbc.Driver
      username: root
      password: 123456

4.编译运行

使用idea工具,Build->Build Project等待构建完成,然后运行com.warmer.Application即可启动服务端,服务端的默认端口为8080,可自行修改。

打包发布流程,在idea右侧有maven project工具栏,点击展开,选择lifecycle-clean,然后install,等待完成后控制台可以看到打包目录(一般默认路径为genmul\target\xxx), 例如:[INFO] Installing F:\git\Neo4j\kgmaker\target\
kgmaker-0.0.1-SNAPSHOT.jar 复制jar包, 去windows 或者linux下使用jar命令执行执行即可。

  java -jar kgmaker-0.0.1-SNAPSHOT.jar   //启动后台服务

5.前端编译

安装依赖

cd kgBuilder-ui
npm install //安装依赖

运行启动

npm run serve //启动

启动成功后,打开浏览器,输入url地址:http://localhost即可访问系统。

如果要发布前端程序,执行npm run build即可。

系统使用

因系统比较简单,不做说明,如有困难,可以先了解一下neo4j数据库,对使用这个工具很有帮助。

查看图谱json数据内容:



图谱三元组导入

支持,.xlsx,.xls,.csv,编码格式一定要是utf-8 无bom格式的,格式:节点-节点-关系,在本地测试时上传下载的文件要和neo4j在同一台电脑,当然如果能传到七牛或者hdfs上也是一样的,必须确认neo4j能访问到,否则load不成功

开源协议

暂无

相关文章

微软的Linux发行版终于加入了对XFS根文件系统的支持

当许多Linux发行版在评估新的根文件系统选项或甚至像OpenZFS这样的特性,微软内部Linux发行版到本月才开始支持XFS作为根文件系统选项。随着这个月对微软内部Linux发行版CBL-Marin...

前端React面试基础系列(React基础篇)

本文阅读8分钟,喜欢的小伙伴可以持续关系小编哦1. 什么是受控组件和非受控组件?受控组件像表单元素在用户输入时,像<input> <select>等元素需要绑定一个 chang...

用IDEA开发如何用Git快速拉取指定分支代码?

1,准备空的文件夹,git init2,关联远程仓库,git remote add origin gitlab地址3,拉取远程分支代码,git pull origin 远程分支名再用IDEA打开项目即...

程序员效率提升!使用自动化工具gitx,每周节约半小时

你是否经历过这样的折磨?一个 JIRA 需求要同时修复 dev、qa、staging 三个分支每个版本涉及 A、B、C 三个项目手动执行以下操作:从 dev 切临时分支cherry-pick 提交推送...

「云原生」Containerd ctr,crictl 和 nerdctl 命令介绍与实战操作

一、概述作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使用,只是大部分时候我们因熟悉Docker,在部署集群时采用了默认的dockers...

2个将HTML5打包成app的方法(h5打包成android)

越来越多的开发者热衷于使用html5+JavaScript开发移动Web App。不过,HTML5 Web APP的出现能否在未来取代移动应用,就目前来说,还是个未知数。那么,有什么办法,既可以使用H...