ax_rd
6 hours ago a5c01a3f115399b55f43d639c8278b8d68c6211c
internal/graph/model.go
@@ -2,22 +2,35 @@
// Node 图节点(对应一个 markdown 文件)
type Node struct {
   ID        int64    `json:"id"`
   Path      string   `json:"path"`
   Title     string   `json:"title"`
   Section   string   `json:"section"`
   Tags      []string `json:"tags"`
   Entities  []string `json:"entities"`
   Wikilinks []string `json:"wikilinks"`
   Content   string   `json:"content"`
   ID          int64    `json:"id"`
   Path        string   `json:"path"`
   Title       string   `json:"title"`
   Section     string   `json:"section"`
   Tags        []string `json:"tags"`
   Entities    []string `json:"entities"`
   Aliases     []string `json:"aliases"`
   Status      string   `json:"status"`
   Wikilinks   []string `json:"wikilinks"`
   Content     string   `json:"content"`
   Size        int64    `json:"size"`
   Mtime       int64    `json:"mtime"`
   ContentHash string   `json:"content_hash"`
}
// Edge 图边(实体关系)
type Edge struct {
   FromNode int64  `json:"from_node"`
   ToNode   int64  `json:"to_node"` // 对于 tag/entity 边,ToNode 可以是虚拟节点 ID
   Relation string `json:"relation"` // "tag" | "entity" | "wikilink"
   Label    string `json:"label"`    // 具体值
   FromNode   int64  `json:"from_node"`
   ToNode     int64  `json:"to_node"` // 对于 tag/entity 边,ToNode 可以是虚拟节点 ID
   Relation   string `json:"relation"`   // "tag" | "entity" | "wikilink"
   Label      string `json:"label"`      // 具体值
   Provenance string `json:"provenance"` // "exact" | "fuzzy" | "tag" | "entity"
}
// UnresolvedLink 悬空 wikilink(未匹配到目标节点)
type UnresolvedLink struct {
   FromNode int64 // BuildGraph 内部节点 ID
   LinkText string
   NameTail string
}
// Graph 知识图谱