# Knowledge-Graph **Repository Path**: freedomwolf/knowledge-graph ## Basic Information - **Project Name**: Knowledge-Graph - **Description**: Knowledge-Graph - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-12 - **Last Updated**: 2026-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🎬 电影知识图谱 Demo 基于 Python + Neo4j 的电影知识图谱入门项目,包含数据导入、图数据库存储查询和 Web 可视化功能。 ## 📁 项目结构 ``` Knowledge-Graph/ ├── data/ │ └── movies.csv # 电影数据集(30部经典电影) ├── src/ │ ├── __init__.py │ ├── config.py # Neo4j 配置 │ ├── neo4j_client.py # Neo4j 客户端封装 │ ├── data_importer.py # 数据导入脚本 │ └── queries.py # 常用查询封装 ├── web/ │ ├── app.py # Flask Web 应用 │ ├── static/ │ │ ├── css/style.css │ │ └── js/graph.js # ECharts 可视化 │ └── templates/ │ └── index.html ├── docker-compose.yml # Neo4j Docker 配置 ├── requirements.txt └── README.md ``` ## 🚀 快速开始 ### 1. 启动 Neo4j 数据库 在远程服务器上运行: ```bash docker-compose up -d ``` 或者使用已有的 Neo4j 实例,修改 `src/config.py` 中的配置。 ### 2. 安装 Python 依赖 ```bash pip install -r requirements.txt ``` ### 3. 导入数据 ```bash cd Knowledge-Graph python -m src.data_importer ``` ### 4. 启动 Web 服务 ```bash python web/app.py ``` 访问 http://localhost:5000 查看知识图谱可视化。 ## 📊 数据模型 ### 节点类型 - **Movie**: 电影(id, title, year, rating) - **Person**: 人物(name) - **Genre**: 类型(name) ### 关系类型 - **DIRECTED**: 导演执导电影 - **ACTED_IN**: 演员出演电影 - **BELONGS_TO**: 电影属于类型 ### 示例图结构 ``` (周星驰)-[:DIRECTED]->(功夫) (周星驰)-[:ACTED_IN]->(功夫) (功夫)-[:BELONGS_TO]->(动作) ``` ## 🔧 API 接口 | 接口 | 方法 | 说明 | |------|------|------| | `/api/graph` | GET | 获取完整图数据 | | `/api/movies` | GET | 获取所有电影 | | `/api/movie/` | GET | 获取电影详情 | | `/api/person/` | GET | 获取人物信息 | | `/api/genres` | GET | 获取所有类型 | | `/api/genre/` | GET | 获取某类型的电影 | | `/api/search?q=` | GET | 搜索电影 | | `/api/co-actors/` | GET | 获取合作演员 | ## 📚 学习要点 1. **知识图谱建模**: 如何将现实世界的实体和关系抽象为图结构 2. **Neo4j 基础**: Cypher 查询语言、节点/关系/属性 3. **图数据可视化**: ECharts 力导向图展示 4. **数据导入**: CSV 数据到图数据库的 ETL 过程 ## 🔗 Neo4j 连接信息 - **URI**: bolt://111.229.38.227:7687 - **用户名**: neo4j - **密码**: knowledge123 - **Browser**: http://111.229.38.227:7474 ## 📖 参考资源 - [Neo4j 官方文档](https://neo4j.com/docs/) - [Cypher 查询语言](https://neo4j.com/developer/cypher/) - [ECharts 关系图](https://echarts.apache.org/zh/option.html#series-graph)