***
## 一、安装 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’ }
)
“`
***
## 三、中心性算法:找到核心神学概念
中心性算法回答”哪个节点最重要”,
### PageRank——影响力最高的概念
“`cypher
// 找出倪李神学中被最多概念引用/连接的核心节点
CALL gds.pageRank.stream(‘theology-
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 最高的节点(预计是”神圣经纶”或”神圣生命”)
### Betweenness Centrality——桥接不同神学主题的概念
“`cypher
// 找出横跨多个神学范畴的”桥梁概念”
CALL gds.betweenness.stream(‘
YIELD nodeId, score
RETURN gds.util.asNode(nodeId).name AS concept,
round(score, 2) AS betweenness
ORDER BY betweenness DESC LIMIT 10
“`
**神学解读**:Betweenness 高的节点是连接不同神学范畴的**过渡概念**,如”调和(
### Degree Centrality——关联最广的概念
“`cypher
// 找出与最多概念直接相连的节点
CALL gds.degree.stream(‘theology-
YIELD nodeId, score
RETURN gds.util.asNode(nodeId).name AS concept,
toInteger(score) AS connections
ORDER BY connections DESC LIMIT 10
“`
***
## 四、社群检测:发现神学主题聚类
社群算法自动发现图中紧密相连的节点群,对应倪李神学内部的**
### Louvain——最佳神学主题聚类
“`cypher
// 自动发现神学概念的自然聚类
CALL gds.louvain.stream(‘theology-
relationshipWeightProperty: ‘weight’
})
YIELD nodeId, communityId
RETURN gds.util.asNode(nodeId).name AS concept,
communityId
ORDER BY communityId, concept
“`
**预期输出**:算法可能自动识别出”神论群组”(三一神、
### 将社群ID写回节点(持久化)
“`cypher
CALL gds.louvain.write(‘theology-
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.
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://
# 投影
G, _ = gds.graph.project(“theology-
# 同时运行 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(“
“`
这份输出 CSV 可直接导入 Gephi 或 Plotly,生成倪李神学概念的**影响力 vs. 桥接性**二维散点图,直观识别”核心枢纽概念”与”
Sources
[1] Neo4j Graph Algorithms: (4) Community Detection Algorithms https://data-xtractor.com/
[2] Neo4j Graph Algorithms: (2) Centrality Algorithms – Data Xtractor https://data-xtractor.com/
[3] Betweenness Centrality – Neo4j GraphAcademy https://graphacademy.neo4j.
[4] PageRank | GraphAcademy https://graphacademy.neo4j.
[5] Neo4J Graph Data Science: Centrality Algorithms … – YouTube https://www.youtube.com/watch?