用途
Knowledge Graph Builder 是一项技能,用于指导设计能够捕获实体、关系和语义含义的知识图谱,以支持强大的查询与推理。
核心能力
- 图建模:面向图的实体—关系设计
- 查询语言:Cypher(Neo4j)、SPARQL(RDF)、Gremlin
- 本体设计:模式、分类法与语义关系
- 图算法:路径查找、中心性、社区检测
知识图谱基础
知识图谱 = 实体 + 关系 + 模式 + 语义。与传统数据库(含行的表、外键、JOIN 操作)相比,知识图谱以节点与带类型的边表达连接,例如 (Person)─KNOWS─▶(Person)、(Person)─WORKS_AT─▶(Company)、(Company)─IN─▶(Industry)。
适用场景:
- 推荐系统:遍历连接以发现相关条目
- 欺诈检测:识别可疑的关系模式
- 知识管理:连接概念并推断关系
- 主数据管理:跨系统统一实体
- 根因分析:沿依赖关系追踪因果链
图数据建模
实体设计:识别核心实体(节点),可为节点设置多个标签进行分类,并使用属性描述实体。
关系设计:以带类型、有方向的边建模连接,可带属性;支持时间性关系。常见关系模式包括:
- 层级型:IS_CHILD_OF、REPORTS_TO
- 关联型:KNOWS、REFERENCES
- 时间型:PRECEDES、SUPERSEDES
- 分类型:BELONGS_TO、IS_A
- 空间型:NEAR、CONTAINS
模式定义:可创建节点唯一性约束、属性存在性约束,以及用于查询性能的索引。
Cypher 查询模式
资料给出了多类 Cypher 查询示例,包括:
- 基础遍历:查找同公司的同事、可变长度路径(1–3 跳)
- 聚合:统计关系数量、将结果收集为列表
- 推荐:二度人脉(好友的好友)、基于相似兴趣的内容推荐
- 路径分析:最短路径、全部最短路径
图算法
- 中心性度量:Degree(连接数,找热门节点)、Betweenness(桥接检测,找中介/瓶颈)、PageRank(影响力传播,排序重要性)、Closeness(平均距离,找连接良好的节点)。资料给出使用 Neo4j Graph Data Science 调用 gds.pageRank.stream 的示例。
- 社区检测:Louvain,示例调用 gds.louvain.stream 并按社区分组返回成员。
知识图谱模式
- 实体消解:查找潜在重复项(相同 email,或相同 name 与 birth_date),并使用 apoc.refactor.mergeNodes 合并重复项。
- 语义分层:分为实例层、模式层、本体层三层。
- 时间建模:以 HAS_STATE 关系配合 valid_from/valid_to 记录随时间变化的状态,并可按时间点查询状态。
最佳实践
建模准则:
- 当连接本身具有含义时,优先使用关系而非属性
- 使用具体关系类型(如 :MANAGES 而非 :RELATED_TO)
- 面向查询建模,先理解访问模式
- 保持属性原子化,可搜索数据不要使用数组
- 对节点而非整个图做版本管理,时间属性放在关系上
性能建议:
- 为 WHERE 子句使用的属性建立索引
- 使用参数($userId)而非字符串拼接
- 限制可变长度路径(*1..5 而非 *)
- 使用 EXPLAIN 与 PROFILE 分析查询
- 遍历中考虑关系方向
参考资料
- references/cypher-patterns.md:高级 Cypher 查询示例
- references/graph-modeling.md:实体与关系设计模式
- references/graph-algorithms.md:算法选择与配置
限制
资料未提供该技能的安装命令、运行环境、依赖项与具体使用步骤;未提供收费、价格或平台相关信息。