huhan3000/tools/ai-tools/scripts/kulue_network_demo.py

226 lines
7.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
圐圙文化网络演示 - 使用现有 Neo4j 实例
运行前请确保 Neo4j 容器已启动docker start neo4j-gpu 或 neo4j-cpu
"""
from neo4j import GraphDatabase
import json
class KulueNetworkDemo:
def __init__(self, uri="bolt://localhost:7687", user="neo4j", password="password"):
"""连接到现有的 Neo4j 实例"""
try:
self.driver = GraphDatabase.driver(uri, auth=(user, password))
# 测试连接
with self.driver.session() as session:
session.run("RETURN 1")
print("✅ 成功连接到 Neo4j 数据库")
except Exception as e:
print(f"❌ 连接失败: {e}")
print("请确保 Neo4j 容器已启动docker start neo4j-gpu")
self.driver = None
def close(self):
if self.driver:
self.driver.close()
def demo_kulue_concepts(self):
"""演示圐圙核心概念"""
if not self.driver:
return
print("\n🎯 圐圙文化网络核心概念演示")
print("=" * 50)
# 核心概念数据
concepts = {
"圐圙": {
"含义": "天下、穹庐",
"来源": "蒙古语 küriye",
"文化意义": "天似穹庐,笼盖四下",
"相关词汇": ["库伦", "固伦", "克烈", "昆仑"]
},
"忽里勒台": {
"含义": "大会、议事",
"来源": "蒙古语 Hurul'tai",
"文化意义": "长生天见证的神圣会议",
"相关概念": ["独贵龙", "圐圙"]
},
"索永布": {
"含义": "蒙古文字符号",
"结构": "智慧之火 + 日月 + 圐圙地象",
"文化意义": "蒙古民族的宇宙观",
"相关概念": ["阿胡拉·马兹达", "长生天"]
}
}
for concept, details in concepts.items():
print(f"\n📚 {concept}")
for key, value in details.items():
if isinstance(value, list):
print(f" {key}: {', '.join(value)}")
else:
print(f" {key}: {value}")
def demo_word_network(self):
"""演示词汇网络关系"""
print("\n🔗 圐圙词根网络关系")
print("=" * 50)
# 词汇关系网络
word_network = {
"昆仑": {
"音转": ["库伦", "固伦", "克烈", "崆峒", "洪洞"],
"同义": ["祁连", "轩辕", "贺兰"],
"含义": "神山、天"
},
"轱辘": {
"音转": ["辘轳", "囫囵"],
"功能": "圆形、转动",
"含义": "车轮、井具"
},
"圐圙": {
"音转": ["忽里勒台"],
"政治": ["库伦", "固伦"],
"含义": "天下、穹庐"
}
}
for word, relations in word_network.items():
print(f"\n🔤 {word}")
for relation_type, related_words in relations.items():
if isinstance(related_words, list):
print(f" {relation_type}: {''.join(related_words)}")
else:
print(f" {relation_type}: {related_words}")
def demo_three_empires(self):
"""演示三个帝国框架"""
print("\n🏛️ 三个帝国框架")
print("=" * 50)
empires = {
"第一帝国:长城": {
"时期": "夏商周秦 → 汉三国南北朝",
"象征": "秦始皇横接三国长城",
"意义": "400毫米等降雨量线华夏大防",
"核心": "从黄河到长城,中华文明重心"
},
"第二帝国:运河": {
"时期": "隋唐五代 → 辽金夏宋",
"象征": "隋炀帝纵贯五河",
"意义": "南北统一,国家认同",
"核心": "黄河与长江都是一个国家认同"
},
"第三帝国:圐圙": {
"时期": "蒙元 → 明清民国",
"象征": "忽必烈经略东亚",
"意义": "汉字文化圈认同",
"核心": "认同只与内心相连,无关血脉"
}
}
for empire, details in empires.items():
print(f"\n👑 {empire}")
for key, value in details.items():
print(f" {key}: {value}")
def demo_cultural_analysis(self):
"""演示文化分析框架"""
print("\n🎨 文化分析框架")
print("=" * 50)
analysis = {
"北朝宇宙理论": {
"地理逻辑": "东西阻隔,南北通透",
"政治模式": "游牧民族南下逐鹿中原",
"文化特征": "胡汉交融,多元一体"
},
"晋语活化石": {
"语言特征": "胡汉交融的语言遗存",
"词汇特点": "大量连绵词、借词",
"文化价值": "保存古代语音和词汇"
},
"符号系统": {
"索永布": "蒙古民族宇宙观",
"姑姑帽": "昆仑帽的音转",
"圐圙地象": "太极图 + 南下箭头"
}
}
for framework, details in analysis.items():
print(f"\n🔍 {framework}")
for key, value in details.items():
print(f" {key}: {value}")
def generate_cypher_examples(self):
"""生成 Cypher 查询示例"""
print("\n💻 Neo4j Cypher 查询示例")
print("=" * 50)
queries = [
{
"描述": "创建圐圙核心节点",
"查询": """
CREATE (kulue:Concept {
name: '圐圙',
meaning: '天下、穹庐',
origin: '蒙古语 küriye',
category: '核心概念'
})
"""
},
{
"描述": "创建词汇音转关系",
"查询": """
MATCH (source:Word {name: '昆仑'})
MATCH (target:Word {name: '库伦'})
CREATE (source)-[:SOUND_SHIFT {type: '音转', confidence: 0.9}]->(target)
"""
},
{
"描述": "查找圐圙相关词汇",
"查询": """
MATCH (kulue:Concept {name: '圐圙'})-[r*1..2]-(related)
RETURN kulue.name, type(r), related.name, related.meaning
"""
},
{
"描述": "分析词汇演化路径",
"查询": """
MATCH path = (start:Word {name: '昆仑'})-[:SOUND_SHIFT*1..3]-(end:Word)
RETURN [node in nodes(path) | node.name] as evolution_path
"""
}
]
for i, query in enumerate(queries, 1):
print(f"\n{i}. {query['描述']}")
print(f"```cypher{query['查询']}```")
def main():
"""主演示函数"""
print("🎯 忽汗3000文化项目 - 圐圙网络演示")
print("=" * 60)
demo = KulueNetworkDemo()
try:
demo.demo_kulue_concepts()
demo.demo_word_network()
demo.demo_three_empires()
demo.demo_cultural_analysis()
demo.generate_cypher_examples()
print("\n🚀 下一步建议:")
print("1. 启动 Neo4j 容器docker start neo4j-gpu")
print("2. 访问 Neo4j Browserhttp://localhost:7474")
print("3. 运行 Cypher 查询构建完整网络")
print("4. 使用可视化工具展示词汇关系")
finally:
demo.close()
if __name__ == "__main__":
main()