数据模型设计

易经文化知识库的核心数据实体定义。此模型同时适用于 PostgreSQL 关系数据库和 Neo4j 图数据库。


核心实体

1. Hexagram (卦象)

字段类型说明示例
idUUID唯一标识hexagram-001
namestring卦名乾卦
symbolstringUnicode 符号☰䷀
orderint卦序 (1-64)1
upper_trigramref上卦 → Trigram
lower_trigramref下卦 → Trigram
gua_citext卦辞元亨利贞
tuan_citext彖辞大哉乾元…
xiang_citext象辞天行健…
yao_cijsonb六爻辞 [位, 辞, 释义][{pos:1, ci:“潜龙勿用”,…}]
wuxingenum五行属性
directionenum方位西北
solar_termstring对应节气立冬
person_symbolstring人事象征父、君、首
keywordsstring[]关键词标签[天, 刚健, 元亨利贞, 龙]

2. Trigram (八卦)

字段类型说明示例
idref编号trigram-001
namestring卦名
symbolstringUnicode 符号
binarystring阴阳爻序列111
wuxingenum五行
directionenum先天方位南 (先天) / 西北 (后天)

3. Concept (概念)

字段类型说明示例
idUUID唯一标识concept-001
namestring概念名先天一炁
categoryenum分类理论基础
definitiontext定义宇宙开辟前的原初状态…
super_conceptref[]上位概念[无极]
sub_conceptref[]下位概念[太极]
related_conceptref[]关联概念[道, 元气, 浑沦]
classic_quotesjsonb经典原文引用[{text:”…”, source:“道德经”}]

4. Classic (典籍)

字段类型说明示例
idUUID唯一标识classic-001
titlestring书名周易正义
authorref[]作者[王弼, 孔颖达]
dynastyenum年代唐代
schoolenum[]学派类型[义理派, 官方注疏]
volumesint卷数10
collectionstring收录丛书十三经注疏
source_urlstring数字来源https://ctext.org/
structurejsonb篇章结构[…]

5. Person (人物)

字段类型说明示例
idUUID唯一标识person-001
namestring姓名王弼
courtesy_namestring字号辅嗣
birth_yearint生年226
death_yearint卒年249
dynastyenum朝代魏晋
schoolenum[]所属学派[义理派, 玄学]
teachersref[]师承 → Person[…]
studentsref[]弟子 → Person[…]
worksjsonb著作[{title:“周易注”, type:“注释”}]

6. Method (术数)

字段类型说明示例
idUUID唯一标识method-001
namestring术数名称六爻纳甲
typeenum分类占卜
theory_basisref[]理论依据 → Concept[阴阳, 五行, 八卦, 天干地支]
classic_sourcesref[]经典来源 → Classic[京房易传]
stepsjsonb操作步骤[…]

实体关系

关系类型起点终点说明
BELONGS_TO1:NHexagramTrigram卦属于某卦宫/上卦/下卦
GENERATESN:NHexagramHexagram卦变/综/错/互关系
EXPLAINSN:NConceptConcept概念间阐释关系 (上位/下位)
SOURCED_FROMN:NConceptClassic概念出自某经典
COMMENTED_BYN:NClassicPerson典籍由某人注释
AUTHOR_OF1:NPersonClassic人物著作典籍
TAUGHT_BYN:NPersonPerson师承关系
BASED_ONN:NMethodConcept术数的理论基础
DERIVED_FROMN:NMethodClassic术数源自某经典
INFLUENCED_BYN:NPersonPerson学术影响关系

知识图谱 Schema (Neo4j)

CREATE
  (:Concept {id, name, category, definition}),
  (:Trigram {id, name, symbol, binary, wuxing}),
  (:Hexagram {id, name, symbol, order, gua_ci, wuxing}),
  (:Classic {id, title, author, dynasty}),
  (:Person {id, name, dynasty, school}),
  (:Method {id, name, type}),
 
  // Relations
  (:Concept)-[:EXPLAINS]->(:Concept),
  (:Concept)-[:SOURCED_FROM]->(:Classic),
  (:Hexagram)-[:HAS_UPPER]->(:Trigram),
  (:Hexagram)-[:HAS_LOWER]->(:Trigram),
  (:Hexagram)-[:GENERATES]->(:Hexagram),
  (:Person)-[:AUTHOR_OF]->(:Classic),
  (:Person)-[:COMMENTED_ON]->(:Classic),
  (:Person)-[:TAUGHT_BY]->(:Person),
  (:Person)-[:INFLUENCED_BY]->(:Person),
  (:Method)-[:BASED_ON]->(:Concept),
  (:Method)-[:DERIVED_FROM]->(:Classic)

后续步骤

  1. 编写 Python 脚本解析 Obsidian Markdown → JSON
  2. 建立 PostgreSQL Schema Migration
  3. 建立 Neo4j 导入脚本
  4. 编写数据校验规则(确保数据完整性)