以下是将 Neo4j 图算法(Graph Data Science Library)应用于倪李神学关系网络分析的完整指南:

***

## 一、安装 GDS 插件

Neo4j Graph Data Science(GDS)是官方算法库,需先启用 :[1]

– **Neo4j Desktop**:在数据库设置 → Plugins → 安装 **Graph Data Science Library**
– **Neo4j Aura**:AuraDS 版本内置 GDS,直接可用

安装后验证:
“`cypher
RETURN gds.version()
“`

***

## 二、创建内存图投影(Graph Projection)

所有 GDS 算法必须先将图投影到内存中 :[2][1]

“`cypher
// 投影倪李神学概念网络(仅含 Concept 节点与所有关系)
CALL gds.graph.project(
‘theology-graph’, // 图名称
[‘Concept’, ‘Book’, ‘Person’], // 节点标签
{
RELATED_TO: { orientation: ‘UNDIRECTED’ },
AUTHORED: { orientation: ‘NATURAL’ },
EXPOUNDS: { orientation: ‘NATURAL’ },
CULMINATES_IN: { orientation: ‘NATURAL’ }
},
{ relationshipProperties: ‘weight’ }
)
“`

***

## 三、中心性算法:找到核心神学概念

中心性算法回答”哪个节点最重要”,不同算法揭示不同维度的重要性 :[3][4][2]

### PageRank——影响力最高的概念
“`cypher
// 找出倪李神学中被最多概念引用/连接的核心节点
CALL gds.pageRank.stream(‘theology-graph’, {
maxIterations: 20,
dampingFactor: 0.85,
relationshipWeightProperty: ‘weight’
})
YIELD nodeId, score
RETURN gds.util.asNode(nodeId).name AS concept,
round(score, 4) AS pageRank
ORDER BY pageRank DESC LIMIT 10
“`
**神学解读**:PageRank 最高的节点(预计是”神圣经纶”或”神圣生命”)即是倪李神学体系的**枢纽教义**,其他概念都围绕它展开 。[4]

### Betweenness Centrality——桥接不同神学主题的概念
“`cypher
// 找出横跨多个神学范畴的”桥梁概念”
CALL gds.betweenness.stream(‘theology-graph’)
YIELD nodeId, score
RETURN gds.util.asNode(nodeId).name AS concept,
round(score, 2) AS betweenness
ORDER BY betweenness DESC LIMIT 10
“`
**神学解读**:Betweenness 高的节点是连接不同神学范畴的**过渡概念**,如”调和(Mingling)”可能同时连接人论、经纶论与召会论 。[3]

### Degree Centrality——关联最广的概念
“`cypher
// 找出与最多概念直接相连的节点
CALL gds.degree.stream(‘theology-graph’)
YIELD nodeId, score
RETURN gds.util.asNode(nodeId).name AS concept,
toInteger(score) AS connections
ORDER BY connections DESC LIMIT 10
“`

***

## 四、社群检测:发现神学主题聚类

社群算法自动发现图中紧密相连的节点群,对应倪李神学内部的**教义群组** :[1]

### Louvain——最佳神学主题聚类
“`cypher
// 自动发现神学概念的自然聚类
CALL gds.louvain.stream(‘theology-graph’, {
relationshipWeightProperty: ‘weight’
})
YIELD nodeId, communityId
RETURN gds.util.asNode(nodeId).name AS concept,
communityId
ORDER BY communityId, concept
“`
**预期输出**:算法可能自动识别出”神论群组”(三一神、父子灵)、”经历群组”(生命、灵、变化形态)、”召会群组”(建造、地方召会、得胜者)等自然聚类 。[1]

### 将社群ID写回节点(持久化)
“`cypher
CALL gds.louvain.write(‘theology-graph’, {
writeProperty: ‘community’,
relationshipWeightProperty: ‘weight’
})
YIELD communityCount, modularity
RETURN communityCount, round(modularity, 4) AS modularity
“`
写回后,在 Neo4j Browser 可按 `community` 属性着色显示,直观呈现教义聚类。

***

## 五、路径算法:追踪教义推导链

### 最短路径——两概念之间的推导路径
“`cypher
// 从”三一神”到”召会建造”的最短推导路径
MATCH (source:Concept {name: ‘三一神’}),
(target:Concept {name: ‘召会建造’})
CALL gds.shortestPath.dijkstra.stream(‘theology-graph’, {
sourceNode: source,
targetNode: target,
relationshipWeightProperty: ‘weight’
})
YIELD path
RETURN [node IN nodes(path) | node.name] AS theology_chain
“`
**神学解读**:这条路径即是”三一神 → 神圣经纶 → 神圣生命 → 人的灵 → 召会建造”这一倪李神学核心推导链的图算法验证。

***

## 六、算法组合分析框架

结合多算法可获得完整神学网络画像 :[4][3]

| 算法 | 测量维度 | 倪李神学意义 |
|——|———|————|
| **PageRank** | 影响力(被引用度) | 找到教义体系的基础性概念 |
| **Betweenness** | 连通性(桥梁作用) | 识别跨主题的枢纽概念 |
| **Degree** | 直接关联数 | 找到应用范围最广的概念 |
| **Louvain** | 社群聚类 | 自动发现教义主题群组 |
| **Dijkstra** | 最短路径 | 追踪教义推导逻辑链 |

***

## 七、Python GDS 客户端(批量分析)

若需将算法结果输出为 CSV 做进一步分析 :[3]

“`python
from graphdatascience import GraphDataScience
import pandas as pd

gds = GraphDataScience(“bolt://localhost:7687″, auth=(“neo4j”, “password”))

# 投影
G, _ = gds.graph.project(“theology-graph”, [“Concept”], {“RELATED_TO”: {“orientation”: “UNDIRECTED”}})

# 同时运行 PageRank 与 Betweenness,合并结果
pr_df = gds.pageRank.stream(G)
bc_df = gds.betweenness.stream(G)

pr_df[“name”] = pr_df[“nodeId”].apply(lambda x: gds.util.asNode(x)[“name”])
bc_df[“name”] = bc_df[“nodeId”].apply(lambda x: gds.util.asNode(x)[“name”])

result = pr_df.merge(bc_df, on=”nodeId”).rename(
columns={“score_x”: “pageRank”, “score_y”: “betweenness”}
)
result[[“name”, “pageRank”, “betweenness”]].to_csv(“theology_centrality.csv”, index=False)
“`

这份输出 CSV 可直接导入 Gephi 或 Plotly,生成倪李神学概念的**影响力 vs. 桥接性**二维散点图,直观识别”核心枢纽概念”与”跨主题桥梁概念” 。[3]

Sources
[1] Neo4j Graph Algorithms: (4) Community Detection Algorithms https://data-xtractor.com/blog/graphs/neo4j-graph-algorithms-community-detection/
[2] Neo4j Graph Algorithms: (2) Centrality Algorithms – Data Xtractor https://data-xtractor.com/blog/graphs/neo4j-graph-algorithms-centrality/
[3] Betweenness Centrality – Neo4j GraphAcademy https://graphacademy.neo4j.com/courses/workshop-gds/3-python-client/7-betweenness-deep-dive/
[4] PageRank | GraphAcademy https://graphacademy.neo4j.com/courses/workshop-gds-python-aga/1-python-client/6-pagerank-deep-dive/
[5] Neo4J Graph Data Science: Centrality Algorithms … – YouTube https://www.youtube.com/watch?v=gg6Uz0KkB3U