讲两句

现在基本上网上很少有知识图谱完整案例的构建,咱们开发者对于怎么构建没有一点思路,知识图谱基本就两个构建方法:方法1 neo4j图数据库; 方法2 echarts图谱插件。 我觉得方法2比较简单,主要省事。
下面带领大家进入中药可视化知识图谱的构建环节,带领大家熟悉如何开发知识图谱,免费分享技术知识

如何开发知识图谱

用户信息管理:新用户注册,已有账号再登录,用户注销,用户信息修改。
2. 中药材信息查询:用户可以点击系统给出的或按编码或按药性等条件进行查询,或通过搜索框自主输入想要查询的信息进行中药材查询。
3. 中药材资讯社区:进入后首页顶部有推荐咨询可供浏览,依靠基于内容的推荐算法(即基于用户与标的物的相关信息以及用户对标的物的操作行为来构成推荐算法模型为用户提供推荐服务)实现实时咨询推荐。推荐底下是最新审核并通过的资讯按发布时间进行排位。点击进入资讯后可以关注资讯的作者、点赞或收藏资讯。在资讯底部可以进行评论、回复和点赞评论。第二页是用户的消息与评论管理,可以接收系统消息、回复他人的评论以及删除自己的评论。最后一页是资讯发布及删除,用户可以利用图文与视频编辑自己的文章然后送审,经管理员审核通过即可成功发布。无论发布成功与否用户都可以选择删除自己所发布的文章。
4. 中药材产地可视化:内含全国省份的中药材种类分布地图(类似疫情地图),用户可以点击省份可查看该省份的药材种类数量及详情跳转;以及全国各省中药材种类分布的统计饼图、直方图;跳转详情页后可点击省份内不同地区查看药材产出种类详情。倘若信息出现错误,用户可以向后台管理员发送纠错申请。

管理员信息管理:管理员登录,用户注销,管理员的个人信息修改。
2. 用户信息管理:管理员可对用户信息进行查询,可以修改和重置用户的密码(初始密码默认为123456),也可以注销用户。
3. 中药材信息管理:管理员可以点击搜索框自主输入查询,也可以对中药材信息进行增删改等操作。
4. 中药材资讯社区管理:管理员可以进行中药材资讯发布;负责用户的文章审核,只有通过审核的用户文章才能成功发布;管理员还可以查看一系列的资讯统计,对资讯进行查询和删除。
5. 中药材产地可视化:管理员除了基本的浏览以外,还拥有地图和图表的信息管理权限,可以审核和处理用户的纠错申请,以此对一些数据信息进行修改。

知识图谱构建技术

  • 可视化门户网站 (Vue + Bootstrap)
  • 管理后台网站(Vue + ElementUI)
  • 服务端(Springboot + Mybatis)

服务端一个后台可以拖两个前端,前端的端口是不同的,可以同时启动

关键技术

关系图和药材地图都采用了Apache Echarts 5中的组件,进行了一定封装

  • 产地地图支持到县级的下钻

注意点

  • 药材的产地可以录入,录入后需要在产地管理中点击刷新按钮,刷新之后,数据会更新,再查询就会在地图上显示
  • 关系图谱来源于药方,只要添加了药方,并且药方中的药材在系统里已经添加了,就会自动绘制,节点大小和位置是随机的

开发过程分享










实现代码如下:

package com.university.demo.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.university.demo.common.ServerResponse;
import com.university.demo.common.UserLoginToken;
import com.university.demo.entity.Admin;
import com.university.demo.entity.request.PasswordVO;
import com.university.demo.entity.request.UserLoginRequest;
import com.university.demo.service.AdminService;
import com.university.demo.service.impl.TokenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.HashMap;
import java.util.Map;/*** @author lequal* @since 2020-03-06*/
@RestController
@RequestMapping("/admin")
public class AdminController {@Autowiredprivate AdminService adminService;@Autowiredprivate TokenService tokenService;/*** 管理员登录* @param adminLoginRequest* @return*///@SysLog("测试")@PostMapping("/login")public ServerResponse login(@RequestBody UserLoginRequest adminLoginRequest) throws Exception{Map<String, Object> map = new HashMap();Admin admin = adminService.adminLogin(adminLoginRequest.getUsername(), adminLoginRequest.getPassword());if (admin != null){String token = tokenService.getToken(admin);admin.setToken(token);adminService.saveOrUpdate(admin);map.put("admin", admin);map.put("token", token);return ServerResponse.ofSuccess(map);}return ServerResponse.ofError("用户名或密码错误!");}@PostMapping("/logout")public ServerResponse logout(@RequestBody UserLoginRequest request) {Map<String, Object> map = new HashMap();Integer ret = adminService.adminLogout(request.getToken());System.out.println("ret==>" + ret);return ServerResponse.ofSuccess("注销成功");}@GetMapping("/info")public ServerResponse info(@RequestParam String token) {Map<String, Object> map = new HashMap();Admin admin = adminService.info(token);if (admin != null){map.put("userinfo", admin);return ServerResponse.ofSuccess(map);}return ServerResponse.ofError("token无效!");}/*** 管理员更新个人资料* @return*///@UserLoginToken@PostMapping("/modify")public ServerResponse modify(@RequestBody Admin admin) {return adminService.updateById(admin) ? ServerResponse.ofSuccess("更新成功!") : ServerResponse.ofError("更新失败!");}/*** 根据ID查询管理员信息* @param id* @return*/@GetMapping("/{id}")public ServerResponse queryAdmin(@PathVariable("id") Integer id) {return ServerResponse.ofSuccess(adminService.getById(id));}/*** 管理员修改密码* @param passwordVO* @return*/@PostMapping("/password")public ServerResponse updatePass(@RequestBody PasswordVO passwordVO) {System.out.println(passwordVO + "======");QueryWrapper<Admin> wrapper = new QueryWrapper();wrapper.eq("id", passwordVO.getId());wrapper.eq("password", passwordVO.getOldPass());Admin admin = adminService.getOne(wrapper);if (admin == null) {return ServerResponse.ofError("旧密码错误");}// 否则进入修改密码流程admin.setPassword(passwordVO.getNewPass());boolean b = adminService.updateById(admin);if (b) {return ServerResponse.ofSuccess("密码修改成功");}return ServerResponse.ofError("密码更新失败");}}

实现代码如下:

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')module.exports = merge(prodEnv, {NODE_ENV: '"development"'
})

技术总结

关于知识图谱,经过现在分析,大家应该都能开发了,我的目的就是帮助大家学会springboot+vue.js组合开发知识图谱,奥利给,未来可期

【技术免费分享-知识图谱的构建】SpringBoot+Vue.js知识图谱中药可视化系统相关推荐

  1. 【毕业设计】基于Springboot+vue.js的校园二手商城系统

    此为原创合作开发项目 [毕业设计]基于springboot+vue.js的校园二手商城系统 一.综述 二手市场在中国是一个不够完善和成熟的市场,尤其在大学校园内.随着经济的发展,大学生生活水平的不断提 ...

  2. 计算机毕业设计SpringBoot+Vue.js学前教育图片智能识别系统(百度AI平台)

    功能 本系统七个部分分别是用户管理模块.用户信息模块.用户留言模块.管理员模块.图片识别模块.学习收藏模块,它们的功能如下: (1) 用户管理模块 用户管理模块包含了注册(账号.昵称.密码).登录(不 ...

  3. 【JAVA程序设计】基于SpringBoot+VUE的高校疫情打卡系统-前后端分离

    基于SpringBoot+VUE的高校疫情打卡系统 零.项目获取 一.项目简介 二.开发环境 三.项目技术 四.系统架构 五.运行截图 六.数据库设计 零.项目获取 获取方式(点击下载):是云猿实战 ...

  4. 基于springboot+vue的疾病匿名检测查询系统

    基于springboot+vue的疾病匿名检测查询系统 ✌全网粉丝20W+,csdn特邀作者.博客专家.CSDN新星计划导师.java领域优质创作者,博客之星.掘金/华为云/阿里云/InfoQ等平台优 ...

  5. 基于springboot+vue的超市进销存系统 elementui

    本次设计任务是要设计一个超市进销存系统,通过这个系统能够满足超市进销存系统的管理及员工的超市进销存管理功能.系统的主要功能包括:首页.个人中心.员工管理.客户管理.供应商管理.承运商管理.仓库信息管理 ...

  6. springboot毕设项目基于SpringBoot+Vue的冷冻货物仓单质押系统9y3d6(java+VUE+Mybatis+Maven+Mysql)

    springboot毕设项目基于SpringBoot+Vue的冷冻货物仓单质押系统9y3d6(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tom ...

  7. Springboot毕设项目基于SpringBoot+Vue的冷冻货物仓单质押系统9y3d6java+VUE+Mybatis+Maven+Mysql+sprnig)

    Springboot毕设项目基于SpringBoot+Vue的冷冻货物仓单质押系统9y3d6java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 ...

  8. 【Vue.js 知识量化】ES6 语法积累

    ES6 语法 let / var const 的使用 class.extends.super 箭头函数(arrow function) 模版字符串(template string) 结构(destru ...

  9. 两个读书笔记:springboot+vue.js分布式组件全栈开发训练营 + 大数据开发基础

    (springboot+vue.js分布式组件全栈开发训练营原文在notion中, 大数据开发在思维导图中, 这个博客只是保存, 无法阅读. ) what is different between s ...

最新文章

  1. HashMap.values().addAll()异常
  2. Material组件之MaterialApp、Scaffold、AppBar学习笔记
  3. Python创建二维数组(关于list的一个小坑)
  4. 读取笔记本的摄像头的原始yuv数据,通过libav(ffmpeg编码)
  5. 03.进程和线程.md
  6. 使用pscp从windows电脑拷贝数据到linux遇到的ssh_init错误
  7. Hibernate:组合模式解决树的映射
  8. 机器学习朴素贝叶斯算法+tkinter库界面实现好瓜坏西瓜分类
  9. ATL和ActiveX做的控件.dll和.ocx最主要的区别(摘录)
  10. google python的风格规范
  11. Sharepoint中的Feature Stapling功能
  12. preg_match进行正则表达式匹配
  13. 中国光谷·“华为杯”第十九届中国研究生数学建模竞赛LaTeX模版
  14. VS2017 CUDA编程学习12:CUDA流
  15. (附源码)Springboot小型仪器公司生产管理系统 毕业设计 031853
  16. OSError: [WinError 123] 文件名、目录名或卷标语法不正确。
  17. 如何使用代理服务器上网
  18. 白帽专访丨大家好,我是阿杨,一个全职挖洞选手。
  19. Java曲线之削峰填谷,科学网—Lorenz曲线之削峰填谷 - 李宁的博文
  20. 傻白入门芯片设计,盘点计算机体系结构顶会

热门文章

  1. 卡拉ok应用Soulo Karaoke评测
  2. 对Apple Watch的取证分析(续)
  3. 2021年美容师(中级)报名考试及美容师(中级)新版试题
  4. 收集中文长尾关键词的方法
  5. 制作PPT的基本技巧
  6. 最新信管/资管/博易大师软件源码+通达信配资/外汇模拟
  7. AD-NeRF 由音频和人脸图像合成人脸视频并表现出自然的说话风格
  8. linux统计一个文本文件包含多少行,linux小计,统计文件中包含指定字符串的行数...
  9. java中等效encodeuri_encodeURI来解决URL传递时的中文问题
  10. IDEA插件系列(59):QAPlug插件——代码质量管理工具