// 圐圙文化网络 - Neo4j Cypher 查询集合 // ===== 基础查询 ===== // 1. 查看所有词汇节点 MATCH (w:Word) RETURN w.name, w.category, w.meaning, w.region, w.dynasty ORDER BY w.category, w.name; // 2. 查看所有关系类型 MATCH ()-[r]-() RETURN DISTINCT type(r) as relationship_types; // ===== 圐圙词根网络分析 ===== // 3. 以"昆仑"为中心的词汇网络 MATCH (center:Word {name: '昆仑'})-[r]-(connected:Word) RETURN center, r, connected; // 4. 查找所有音转关系 MATCH (source:Word)-[r:SOUND_SHIFT]->(target:Word) RETURN source.name as 源词, target.name as 目标词, r.type as 关系类型; // 5. 查找音转路径(最多3步) MATCH path = (start:Word {name: '昆仑'})-[:SOUND_SHIFT*1..3]-(end:Word) RETURN start.name as 起点, [node in nodes(path) | node.name] as 路径, end.name as 终点, length(path) as 步数 ORDER BY 步数; // ===== 语义分析 ===== // 6. 按类别分组的词汇分布 MATCH (w:Word) RETURN w.category as 类别, collect(w.name) as 词汇列表, count(w) as 数量 ORDER BY 数量 DESC; // 7. 按朝代分组的词汇演化 MATCH (w:Word) RETURN w.dynasty as 朝代, collect(w.name) as 词汇, count(w) as 数量 ORDER BY CASE w.dynasty WHEN '先秦' THEN 1 WHEN '汉' THEN 2 WHEN '唐' THEN 3 WHEN '宋' THEN 4 WHEN '元' THEN 5 WHEN '明' THEN 6 WHEN '清' THEN 7 ELSE 8 END; // 8. 按地区分布的词汇地理分析 MATCH (w:Word) WHERE w.region IS NOT NULL RETURN w.region as 地区, collect(w.name) as 词汇, count(w) as 数量 ORDER BY 数量 DESC; // ===== 高级分析查询 ===== // 9. 查找"圐圙"的完整关联网络 MATCH (kulue:Word {name: '圐圙'})-[r*1..2]-(related:Word) RETURN kulue, r, related; // 10. 查找同时具有音转和语义关系的词汇对 MATCH (w1:Word)-[:SOUND_SHIFT]-(w2:Word) MATCH (w1)-[:SEMANTIC]-(w2) RETURN w1.name, w2.name, '既有音转又有语义关系' as 关系特征; // 11. 查找每个类别中的核心词汇(关联最多的) MATCH (w:Word)-[r]-(connected:Word) WITH w, count(r) as connections WHERE connections > 1 RETURN w.category as 类别, w.name as 核心词汇, w.meaning as 含义, connections as 关联数 ORDER BY 类别, connections DESC; // 12. 查找跨类别的关联模式 MATCH (w1:Word)-[r]-(w2:Word) WHERE w1.category <> w2.category RETURN w1.category as 类别1, w2.category as 类别2, count(r) as 关联数 ORDER BY 关联数 DESC; // ===== 历史演化分析 ===== // 13. 三个帝国的词汇分布 MATCH (w:Word) WITH w, CASE WHEN w.dynasty IN ['先秦', '秦汉', '汉', '三国', '南北朝'] THEN '长城帝国' WHEN w.dynasty IN ['隋唐', '隋', '唐', '五代', '辽', '金', '夏', '宋'] THEN '运河帝国' WHEN w.dynasty IN ['元', '明', '清', '民国'] THEN '圐圙帝国' ELSE '其他' END as empire RETURN empire as 帝国, collect(w.name) as 词汇, count(w) as 数量; // 14. 查找词汇的时空分布模式 MATCH (w:Word) RETURN w.dynasty as 朝代, w.region as 地区, collect(w.name) as 词汇 ORDER BY w.dynasty, w.region; // ===== 可视化查询 ===== // 15. 生成完整的圐圙网络图(用于可视化) MATCH (w:Word)-[r]-(connected:Word) RETURN w, r, connected; // 16. 生成核心概念的星形图 MATCH (core:Word {category: '核心'})-[r]-(related:Word) RETURN core, r, related; // 17. 生成音转关系的有向图 MATCH (source:Word)-[r:SOUND_SHIFT]->(target:Word) RETURN source, r, target; // ===== 数据统计 ===== // 18. 网络统计信息 MATCH (w:Word) WITH count(w) as total_words MATCH ()-[r]-() WITH total_words, count(r)/2 as total_relationships MATCH (w:Word)-[r]-(connected:Word) WITH total_words, total_relationships, w, count(r) as degree RETURN total_words as 总词汇数, total_relationships as 总关系数, avg(degree) as 平均度数, max(degree) as 最大度数, min(degree) as 最小度数; // 19. 查找孤立节点(没有关系的词汇) MATCH (w:Word) WHERE NOT (w)-[]-() RETURN w.name as 孤立词汇, w.category as 类别; // 20. 查找关联度最高的词汇(网络中心) MATCH (w:Word)-[r]-(connected:Word) WITH w, count(r) as degree ORDER BY degree DESC LIMIT 5 RETURN w.name as 中心词汇, w.meaning as 含义, degree as 关联度;