🕸️ 知识图谱驱动

基于 Neo4j 构建教程库与课件库的关联网络,打通 STEM 知识体系

← 返回首页

技术架构

OpenMTSciEd 使用 Neo4j 图数据库存储和管理 STEM 知识点之间的复杂关系,实现跨学科、跨学段的知识关联。

                    ┌─────────────┐      ┌──────────────┐      ┌─────────────┐
                    │ 教程库单元   │─────▶│  过渡项目     │─────▶│ 课件库章节   │
                    │ OpenSciEd   │      │ Blockly编程  │      │ OpenStax    │
                    └─────────────┘      └──────────────┘      └─────────────┘
                           │                      │                      │
                           ▼                      ▼                      ▼
                    ┌─────────────┐      ┌──────────────┐      ┌─────────────┐
                    │ 硬件项目     │◀─────│  理论映射     │─────▶│ AI虚拟导师   │
                    │ Arduino     │      │ MiniCPM      │      │ 解释逻辑     │
                    └─────────────┘      └──────────────┘      └─────────────┘
                    

核心数据

5
节点类型
7
关系类型
90%
跨学科准确率
500+
知识节点目标

图谱设计

节点类型

关系类型

代码示例

Cypher 查询 - 查找知识关联

// 查询"生态系统能量流动"关联的所有资源 MATCH (unit:CourseUnit {title: "生态系统能量流动"}) OPTIONAL MATCH (unit)-[:LEADS_TO]->(chapter:TextbookChapter) OPTIONAL MATCH (unit)-[:HAS_PROJECT]->(project:HardwareProject) RETURN unit, chapter, project

Python API 调用

from neo4j import GraphDatabase class KnowledgeGraphService: def __init__(self, uri, user, password): self.driver = GraphDatabase.driver(uri, auth=(user, password)) def get_related_resources(self, unit_id): with self.driver.session() as session: result = session.run(""" MATCH (unit:CourseUnit {id: $unit_id}) -[:LEADS_TO*1..3]->(resource) RETURN resource """, unit_id=unit_id) return [record["resource"] for record in result]

技术栈

相关文档