# knowledge-graph **Repository Path**: yanxxcloud/knowledge-graph ## Basic Information - **Project Name**: knowledge-graph - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-10 - **Last Updated**: 2025-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Neo4j 知识图谱应用 一个基于 Neo4j 数据库的现代化知识图谱可视化应用,提供直观的图形界面来创建、查看和管理知识图谱数据。 ## 功能特性 - 🎯 **可视化图谱**: 使用 D3.js 实现的交互式图谱可视化 - 🔍 **智能搜索**: 支持节点内容的全文搜索 - ➕ **数据管理**: 可视化创建和删除节点、关系 - 📊 **实时统计**: 显示图谱的节点和关系数量统计 - 🔧 **Cypher 查询**: 支持自定义 Cypher 查询语句 - 📱 **响应式设计**: 适配桌面和移动设备 - 🎨 **现代化UI**: 美观的渐变设计和流畅的动画效果 ## 技术栈 ### 后端 - **Node.js** - 服务器运行环境 - **Express.js** - Web 应用框架 - **Neo4j Driver** - Neo4j 数据库连接驱动 - **CORS** - 跨域资源共享支持 ### 前端 - **HTML5/CSS3** - 现代化网页结构和样式 - **JavaScript (ES6+)** - 客户端交互逻辑 - **D3.js** - 数据可视化和图形渲染 - **响应式设计** - 移动设备友好 ### 数据库 - **Neo4j** - 图数据库 ## 安装和运行 ### 前置要求 1. **Node.js** (版本 14 或更高) 2. **Neo4j 数据库** (版本 4.0 或更高) ### Neo4j 安装 #### 方法一:使用 Neo4j Desktop (推荐) 1. 下载并安装 [Neo4j Desktop](https://neo4j.com/download/) 2. 创建新的数据库项目 3. 设置数据库密码 4. 启动数据库 #### 方法二:使用 Docker ```bash docker run \ --name neo4j \ -p7474:7474 -p7687:7687 \ -d \ -v $HOME/neo4j/data:/data \ -v $HOME/neo4j/logs:/logs \ -v $HOME/neo4j/import:/var/lib/neo4j/import \ -v $HOME/neo4j/plugins:/plugins \ --env NEO4J_AUTH=neo4j/password \ neo4j:latest ``` ### 应用安装 1. **克隆或下载项目** ```bash git clone cd knowledge-graph ``` 2. **安装依赖** ```bash npm install ``` 3. **配置环境变量** 编辑 `.env` 文件,配置你的 Neo4j 连接信息: ```env # Neo4j数据库配置 NEO4J_URI=bolt://localhost:7687 NEO4J_USERNAME=neo4j NEO4J_PASSWORD=your_password_here # 服务器配置 PORT=3000 # 开发环境配置 NODE_ENV=development ``` 4. **启动应用** ```bash # 生产模式 npm start # 开发模式(自动重启) npm run dev ``` 5. **访问应用** 打开浏览器访问: http://localhost:3000 ## 使用指南 ### 初始化示例数据 1. 点击页面顶部的 "初始化示例数据" 按钮 2. 系统将创建包含人员、公司和项目的示例图谱 3. 数据包括节点间的工作关系、参与关系等 ### 图谱操作 #### 查看和导航 - **缩放**: 使用鼠标滚轮缩放图谱 - **拖拽**: 拖拽空白区域移动整个图谱 - **节点拖拽**: 拖拽单个节点调整位置 #### 节点交互 - **单击节点**: 查看节点详细信息 - **双击节点**: 在已选择另一个节点的情况下,创建两节点间的关系 #### 添加节点 1. 点击 "添加节点" 按钮 2. 填写节点标签(如:Person, Company) 3. 填写节点名称 4. 可选:添加其他属性(JSON格式) 5. 点击 "创建节点" #### 创建关系 1. 单击选择第一个节点 2. 双击第二个节点 3. 在弹出的对话框中填写关系类型 4. 可选:添加关系属性 5. 点击 "创建关系" #### 搜索功能 1. 在搜索框中输入关键词 2. 点击 "搜索" 或按回车键 3. 匹配的节点将被高亮显示 #### Cypher 查询 1. 在左侧面板的查询框中输入 Cypher 语句 2. 点击 "执行查询" 3. 查看下方的查询结果 ### 示例 Cypher 查询 ```cypher // 查找所有人员节点 MATCH (p:Person) RETURN p // 查找工作关系 MATCH (p:Person)-[r:WORKS_FOR]->(c:Company) RETURN p, r, c // 查找特定人员的所有关系 MATCH (p:Person {name: "张三"})-[r]-(n) RETURN p, r, n // 统计各类型节点数量 MATCH (n) RETURN labels(n) as NodeType, count(n) as Count ``` ## API 接口 ### 图谱数据 - `GET /api/graph/data` - 获取完整图谱数据 - `GET /api/graph/nodes` - 获取所有节点 - `GET /api/graph/search?q=keyword` - 搜索节点 ### 数据操作 - `POST /api/graph/nodes` - 创建节点 - `POST /api/graph/relationships` - 创建关系 - `DELETE /api/graph/nodes/:id` - 删除节点 - `POST /api/graph/query` - 执行自定义 Cypher 查询 ### 系统功能 - `GET /health` - 健康检查 - `POST /api/graph/init-sample-data` - 初始化示例数据 ## 项目结构 ``` knowledge-graph/ ├── package.json # 项目配置和依赖 ├── .env # 环境变量配置 ├── server.js # 主服务器文件 ├── services/ │ └── neo4jService.js # Neo4j 数据库服务 ├── routes/ │ └── graphRoutes.js # API 路由定义 ├── public/ │ ├── index.html # 主页面 │ ├── styles.css # 样式文件 │ └── app.js # 前端 JavaScript └── README.md # 项目文档 ``` ## 开发说明 ### 添加新的节点类型 1. 在 `public/app.js` 中的 `nodeColors` 对象添加新颜色 2. 根据需要修改节点显示逻辑 ### 扩展 API 功能 1. 在 `services/neo4jService.js` 中添加新的数据库操作方法 2. 在 `routes/graphRoutes.js` 中添加对应的路由处理 3. 在前端添加相应的调用逻辑 ### 自定义样式 修改 `public/styles.css` 文件来调整界面外观,包括: - 颜色主题 - 布局样式 - 动画效果 - 响应式断点 ## 故障排除 ### 常见问题 1. **无法连接 Neo4j 数据库** - 检查 Neo4j 服务是否启动 - 验证 `.env` 文件中的连接配置 - 确认防火墙设置 2. **页面显示空白** - 检查浏览器控制台错误信息 - 确认静态文件路径正确 - 验证服务器是否正常启动 3. **数据不显示** - 尝试初始化示例数据 - 检查数据库中是否有数据 - 查看网络请求是否成功 ### 日志查看 服务器日志会显示: - Neo4j 连接状态 - API 请求信息 - 错误详情 ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目! ## 联系方式 如有问题或建议,请通过以下方式联系: - 创建 GitHub Issue - 发送邮件至项目维护者 --- **享受探索知识图谱的乐趣!** 🚀