关于 knowledge-graph
此 ServiceNow 知识管理技能构建并分析文章关系图谱,覆盖分类层级、显式关联和从内容中发现的隐含联系。知识管理员可用它识别孤立文章、评估主题覆盖,并生成学习路径。
主要功能
- 01建立分类主题层级
- 02映射文章间关系
- 03从内容与标签发现关联
- 04识别孤立文章和主题缺口
- 05生成学习路径与可视化数据
适用场景
- 01检查知识库的断连文章与主题簇
- 02为新员工整理分步学习路径
- 03为相关知识文章补充交叉引用
MCP 相关
使用 ServiceNow MCP 工具查询文章、分类、标签和关系记录,也可创建文章关系并获取可用于可视化的图谱数据。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill knowledge-graph安装后在 Claude Code 中输入/knowledge-graph确认已加载。
详细介绍
知识图谱构建与导航
概述
此技能介绍如何在 ServiceNow 知识管理中构建和导航知识图谱:
- 映射文章之间的关系(前置条件、相关、取代、依赖)
- 根据类别结构和内容分析构建主题层次结构
- 创建交叉引用图,呈现文章之间的隐藏关联
- 分析内容依赖关系,了解知识流动和缺口
- 识别没有入向或出向连接的孤立文章
- 可视化知识领域的覆盖范围和密度
- 使用图遍历推荐相关内容和学习路径
适用场景: 知识管理人员需要了解知识库的结构及其相互关联、构建引导式学习路径、识别知识孤岛,或通过丰富文章间的关系来提升文章的可发现性时。
前提条件
- 角色:
knowledge_manager、knowledge_admin或admin - 插件:
com.glideapp.knowledge(知识管理) - 访问权限: 对
kb_knowledge、kb_category、m2m_kb_to_kb、label_entry具有读写权限 - 知识: 图概念(节点、边、遍历)、知识管理分类原则
- 相关技能: 使用
knowledge/gap-analysis评估覆盖范围,使用knowledge/content-recommendation获取基于图的推荐
操作流程
步骤 1:映射类别层次结构(主题树)
检索完整的类别结构,以建立主题层次结构的骨干。
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: kb_category
query: active=true^ORDERBYparent,order
fields: sys_id,label,parent_id,parent_table,full_category,active,kb_knowledge_base
limit: 500
REST 方式:
GET /api/now/table/kb_category
?sysparm_query=active=true^ORDERBYparent_id,order
&sysparm_fields=sys_id,label,parent_id,full_category,active,kb_knowledge_base
&sysparm_display_value=true
&sysparm_limit=500
构建层次结构树:
Knowledge Base: IT Support
+-- Hardware
| +-- Laptops
| | +-- Setup & Configuration
| | +-- Troubleshooting
| +-- Printers
| +-- Mobile Devices
+-- Software
| +-- Operating Systems
| +-- Business Applications
| +-- Development Tools
+-- Network
+-- VPN & Remote Access
+-- WiFi
+-- Email & Calendar
步骤 2:检索现有文章关系
获取文章之间的多对多关系记录。
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: m2m_kb_to_kb
query: from_kb.workflow_state=published
fields: sys_id,from_kb,to_kb,relationship_type
limit: 1000
REST 方式:
GET /api/now/table/m2m_kb_to_kb
?sysparm_query=from_kb.workflow_state=published
&sysparm_fields=sys_id,from_kb,to_kb,relationship_type
&sysparm_display_value=true
&sysparm_limit=1000
步骤 3:从内容中发现隐含关系
通过分析文章内容中的交叉引用来发现隐藏关联。
方式 1 —— 行内链接:
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: kb_knowledge
query: workflow_state=published^textLIKEKB00
fields: sys_id,number,short_description,text
limit: 200
解析 text 字段,查找 KB001XXXX 等模式,以提取被引用的文章编号。
方式 2 —— 共享标签和标记:
Tool: SN-Query-Table
Parameters:
table_name: label_entry
query: table=kb_knowledge
fields: sys_id,id_display,label,table,id
limit: 500
按共享标记对文章分组,以识别主题集群:
Label: "vpn" -> KB0012001, KB0012345, KB0012290, KB0012310
Label: "remote-access" -> KB0012001, KB0012189, KB0012290, KB0012310
Label: "security" -> KB0012310, KB0013001, KB0013045
方式 3 —— 在事件解决过程中的共现:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: u_knowledge_articleISNOTEMPTY^resolved_at>javascript:gs.daysAgo(90)
fields: u_knowledge_article,category,subcategory
limit: 500
经常用于解决同一事件类别的文章之间存在隐含关联。
步骤 4:构建知识图谱数据结构
将图表示为节点(文章)和边(关系):
=== KNOWLEDGE GRAPH STRUCTURE ===
Nodes (Articles): 342 published articles
Edges (Relationships): 567 connections
Node Properties:
- sys_id, number, title, category, knowledge_base
- view_count, rating, age_days, word_count
- in_degree (articles pointing to this), out_degree (articles this points to)
Edge Types:
- RELATED_TO: General topical relationship (312 edges)
- PREREQUISITE: Must read A before B (45 edges)
- SUPERSEDES: Article A replaces article B (28 edges)
- DEPENDS_ON: Article A references procedures in B (89 edges)
- SAME_TOPIC: Articles in the same category (93 edges)
Graph Metrics:
- Average degree: 3.3 connections per article
- Density: 0.0097 (sparse - room for enrichment)
- Connected components: 23 (ideally should be 1-3)
- Orphaned articles: 47 (no connections at all)
步骤 5:识别孤立和连接薄弱的文章
查找没有连接或连接极少的文章。
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: kb_knowledge
query: workflow_state=published^sys_idNOT IN<list_of_connected_article_ids>
fields: sys_id,number,short_description,kb_category,sys_view_count,rating,sys_created_on
limit: 100
=== ORPHANED ARTICLES ===
Articles with zero connections: 47
High-Impact Orphans (>100 views, still unlinked):
| Article | Title | Views | Category |
|------------|---------------------------------|-------|-----------------|
| KB0014523 | Outlook Calendar Sync Issues | 890 | Email |
| KB0014601 | Docker Container Best Practices | 456 | Dev Tools |
| KB0014789 | Expense Report Submission Guide | 1,234 | Finance |
Recommended Actions:
1. KB0014523 -> Link to KB0012290 (shares email/remote topic)
2. KB0014601 -> Link to KB0013201 (development environment setup)
3. KB0014789 -> Create new "Finance" topic cluster
步骤 6:创建缺失的关系
将发现的关系添加到知识图谱中。
MCP 方式:
Tool: SN-Create-Record
Parameters:
table_name: m2m_kb_to_kb
data:
from_kb: "<article_a_sys_id>"
to_kb: "<article_b_sys_id>"
relationship_type: "related"
REST 方式:
POST /api/now/table/m2m_kb_to_kb
Body: {
"from_kb": "<article_a_sys_id>",
"to_kb": "<article_b_sys_id>",
"relationship_type": "related"
}
步骤 7:分析主题密度和覆盖范围
评估不同主题的覆盖情况:
=== TOPIC COVERAGE ANALYSIS ===
| Topic Area | Articles | Avg Rating | Avg Views | Gaps Identified |
|---------------------|----------|------------|-----------|-----------------|
| VPN & Remote Access | 12 | 4.1 | 1,450 | Mobile VPN setup |
| Email & Calendar | 8 | 3.8 | 980 | Shared mailbox config |
| Laptop Setup | 15 | 4.3 | 2,100 | Linux support |
| Printer Setup | 6 | 3.2 | 560 | Wireless printing |
| Software Install | 22 | 3.9 | 1,800 | License requests |
| Security Policies | 5 | 4.0 | 780 | BYOD policies |
Under-served Topics (high incident volume, low article count):
1. Password Reset - 450 incidents/month, only 2 articles
2. MFA Setup - 280 incidents/month, only 1 article
3. File Sharing - 190 incidents/month, only 3 articles
步骤 8:通过图遍历构建学习路径
使用前置条件关系创建有序的阅读序列:
=== LEARNING PATH: VPN Administration ===
Level 1 - Foundations:
1. KB0012001 - VPN Client Installation (prerequisite for all)
2. KB0012310 - Remote Security Policy (prerequisite for all)
Level 2 - User Support:
3. KB0012345 - VPN Troubleshooting (depends on KB0012001)
4. KB0012290 - Network Drive Mapping (depends on KB0012001)
Level 3 - Advanced:
5. KB0012400 - VPN Split Tunnel Configuration (depends on KB0012345)
6. KB0012450 - VPN Server Administration (depends on KB0012001, KB0012310)
Estimated Total Reading Time: 45 minutes
Assessment Available: Yes (quiz after Level 2)
步骤 9:生成图可视化数据
以适用于可视化工具的格式导出图数据:
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: kb_knowledge
query: workflow_state=published
fields: sys_id,number,short_description,kb_category,sys_view_count
limit: 500
以节点—边列表的形式输出,供可视化使用:
{
"nodes": [
{"id": "KB0012001", "label": "VPN Installation", "group": "Network", "size": 1890},
{"id": "KB0012345", "label": "VPN Troubleshooting", "group": "Network", "size": 2340}
],
"edges": [
{"from": "KB0012001", "to": "KB0012345", "type": "prerequisite"},
{"from": "KB0012345", "to": "KB0012400", "type": "related"}
]
}
步骤 10:监控和维护图谱
设置持续的图谱健康状况监控:
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: kb_knowledge
query: workflow_state=published^sys_created_on>javascript:gs.daysAgo(30)
fields: sys_id,number,short_description,kb_category
limit: 50
对于每篇新文章,检查其是否已连接到图谱。标记尚未连接的新文章,以便分配关系。
工具使用
| 工具 | 用途 | 使用时机 |
|---|---|---|
| SN-Query-Table | 获取文章、类别、关系和使用数据 | 用于构建图谱的主要数据检索方式 |
| SN-Get-Record | 检索单篇文章的详细信息,以供内容分析 | 深入分析特定节点 |
| SN-Create-Record | 创建新的关系记录 | 为图谱添加边 |
| SN-Update-Record | 更新文章标签、主题和元数据 | 丰富节点属性 |
| SN-Natural-Language-Search | 查找语义相关的文章 | 发现隐含关系 |
最佳实践
- 从类别层级开始 -- 主题树是知识图谱的骨干
- 优先处理访问量高的孤立文章 -- 优先关联热门文章,以获得最大影响
- 使用双向关系 -- 如果 A 与 B 相关,B 也应与 A 相关
- 明确定义关系类型 -- 区分“相关”“前置条件”和“取代”
- 每月检查图谱健康状况 -- 没有关联的新文章会降低可发现性
- 利用共同查看数据 -- 在同一会话中查看的文章很可能彼此相关
- 限制关系深度 -- 前置条件超过 3 层会增加阻碍
- 统一标记方式 -- 在整个知识库中规范标签词汇
- 清理过时的边 -- 删除指向已退役或过时文章的关系
- 验证学习路径 -- 发布前让实际用户测试前置条件链
故障排除
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 未找到 m2m 记录 | 此实例未使用关系 | 检查是否存在 m2m_kb_to_kb 表;可能需要自定义关系表 |
| 类别层级扁平 | 类别未通过父级引用构建层级结构 | 使用 kb_category 上的 parent_id 字段构建层级结构 |
| 孤立文章过多 | 关系管理未纳入发布工作流 | 在文章审核流程中添加关系检查 |
| 图谱过于密集 | 每篇文章都与其他所有文章关联 | 仅保留有意义的关系;改用主题聚类 |
| 学习路径存在循环 | 前置条件链形成环路 | 验证前置条件图谱是否为 DAG(有向无环图) |
| 大型查询出现性能问题 | 一次查询的文章过多 | 使用 sysparm_offset 对查询分页,并分批处理 |
示例
示例 1:知识库健康报告
输入:“分析 IT Support 知识库图谱,并找出彼此断开的集群”
**步骤:**检索所有已发布的文章和关系,构建邻接表,运行连通分量分析,找出孤立集群,并生成包含连接集群建议的报告。
示例 2:为新员工构建学习路径
输入:“为新的 IT 支持 Agent 创建一条涵盖事件管理的学习路径”
**步骤:**找出 Incident Management 类别中的所有文章,分析前置条件关系,按依赖深度排序,并生成包含预计阅读时间的顺序学习路径。
示例 3:丰富交叉引用
输入:“查找并为所有与 VPN 相关的文章创建缺失的关系”
**步骤:**查询标题或正文中包含“VPN”的所有文章,分析行内引用和共享标签,找出彼此引用但缺少正式关系的文章,并为发现的关联创建 m2m_kb_to_kb 记录。
相关技能
knowledge/gap-analysis- 找出知识覆盖缺失的领域knowledge/content-recommendation- 根据图谱邻近度推荐文章knowledge/duplicate-detection- 查找图谱中的冗余文章knowledge/kb-summarization- 总结文章,以生成图谱节点描述knowledge/article-generation- 创建文章,填补已发现的图谱缺口knowledge/gap-grouping- 按主题集群对知识缺口分组