# rag-project04-knowledgegraph **Repository Path**: geektime-geekbang_admin/rag-project04-knowledgegraph ## Basic Information - **Project Name**: rag-project04-knowledgegraph - **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-05-19 - **Last Updated**: 2025-05-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 黑神话:悟空 知识图谱示例 这是一个基于Neo4j的黑神话:悟空游戏知识图谱示例项目。该项目展示了如何使用图数据库构建游戏中的角色、武器、技能和位置之间的关系网络。 ## 项目结构 ``` . ├── Sample-CSV/ # 示例CSV数据文件 │ ├── character_new.csv # 角色数据 │ ├── weapon_new.csv # 武器数据 │ ├── skill_new.csv # 技能数据 │ ├── location_new.csv # 位置数据 │ ├── DR_has_weapon_new.csv # 角色-武器关系 │ ├── DR_has_skill_new.csv # 角色-技能关系 │ └── DR_located_in_new.csv # 角色-位置关系 ├── build_monkey.cypher # 数据库构建脚本 ├── sample_monkey.cypher # 示例查询脚本 └── README.md # 项目说明文档 ``` ## 数据模型 ### 节点类型 - Character (角色) - Weapon (武器) - Skill (技能) - Location (位置) ### 关系类型 - HAS_WEAPON: 角色 -> 武器 - HAS_SKILL: 角色 -> 技能 - LOCATED_IN: 角色 -> 位置 ## 使用方法 1. 安装Neo4j数据库 2. 复制CSV文件到Neo4j的import目录 ```bash cp -r Sample-CSV/ $NEO4J_HOME/import/ ``` 3. 执行构建脚本 ```bash cypher-shell -f build_monkey.cypher ``` 4. 执行示例查询 ```bash cypher-shell -f sample_monkey.cypher ``` ## 示例查询 查看所有节点数量: ```cypher MATCH (n) RETURN labels(n) as 节点类型, count(*) as 数量; ``` 查询角色的完整信息: ```cypher MATCH (c:Character) OPTIONAL MATCH (c)-[r1:HAS_WEAPON]->(w:Weapon) OPTIONAL MATCH (c)-[r2:HAS_SKILL]->(s:Skill) OPTIONAL MATCH (c)-[r3:LOCATED_IN]->(l:Location) WHERE c.FSN = '孙悟空' RETURN c.FSN as 角色, collect(DISTINCT w.FSN) as 武器列表, collect(DISTINCT s.FSN) as 技能列表, collect(DISTINCT l.FSN) as 位置; ``` 更多查询示例请参考 `sample_monkey.cypher` 文件。 ## 数据格式 所有CSV文件都包含以下基本字段: - id: 唯一标识符 - active: 是否激活 - effectiveTime: 生效时间 - moduleId: 模块ID - FSN: 全称名称 - history: 历史记录 关系CSV文件额外包含: - sourceId: 源节点ID - destinationId: 目标节点ID - rolegroup: 角色组 ## 注意事项 - 确保Neo4j服务已启动 - 确保CSV文件路径正确 - 首次运行时需要创建约束和索引 ## 参考资料 - [Neo4j官方文档](https://neo4j.com/docs/) - [Cypher查询语言参考](https://neo4j.com/docs/cypher-manual/current/)