源码深读 · 2022
学科网络实验与可视化算法深读
拆解论文与百科网络的实验参数、客户端计算、图数据发布、缓存和三维网络交互,并标出缺失计算后端的证据边界。
系统真正承担的工作
641 次提交形成的不是单一仪表盘,而是一个长期演进的网络科学实验台。它并列研究论文引用网络和百科链接网络,以学科、年份、方向、入度/出度阈值、样本比例和算法版本作为实验变量,呈现语义距离、颠覆度、度分布、Zipf、小世界、结构熵、网络熵、流向与知识图。
代码证据同时揭示一个重要边界:大多数指标由远端服务计算,仓库中的前端负责参数编排、结果缓存、少量二次计算和可视化;不能把页面名称等同于算法后端已经保存在仓库。
数据与请求模型
API 适配层连接三类服务,并为不同数据域创建独立浏览器数据库。缓存键是完整请求对象的序列化结果,响应为对象时持久化;缓存库通过版本号人工失效。部分长计算接口把超时放宽到近似无限,反映出历史后端任务可能需要很长时间,但也会导致请求无法及时失败。
通用图表注册表把中文名称、页面模板、请求函数、响应转换器、选择器和范围滑块放在同一配置对象中。一个页面因此可以由参数定义生成,而无需复制视图。典型请求参数包括学科集合、年份区间、入边和出边下限、颠覆度上限、节点数量或百分比上限以及小数精度。
可确认的客户端算法
- 语义距离页面接收目标学科与多个参照学科的年度距离矩阵,按每年对所有参照值求算术平均,生成可保存的“平均距离”曲线。
- 三维图将节点权重先开立方,再映射到固定视觉区间,压缩长尾规模差异;边和节点按年份切片。
- 图加载到 Graphology 后计算连通分量,支持识别或过滤孤立子图;三维场景另有从原点向外平移标签、绕中心旋转相机的几何处理。
- 小世界页面用网络规模、边数和聚类量计算对数比值;度分布可把横轴转换为十进制对数,用于观察幂律形态。
- 熵页面对计数做二进制对数和基于网络规模的标准化;但静态 JSON 已包含结构熵与网络熵结果,前端主要选择层级、底数和序列,不负责从原始边重算熵。
“颠覆度”“Google 距离”等核心数值在前端仅作为接口返回值使用。页面能确认筛选语义:可按引用方向、是否去除零引用、引用量前百分位、历史截止年和 D 值上限取样;公式实现仍属于缺失证据。
图数据发布策略
仓库直接带有按 2016/2017 年拆分的节点、入边和出边数据,以及多层百科学科树、连通关系、论文数量、熵和颠覆趋势。静态快照让演示不依赖全部计算集群,也保留了研究阶段结果。
问题是数据文件没有统一清单、生成提交、输入摘要和算法版本。相似数据以日期或后缀区分,页面中也保留多个年份版本。它保留了演进,却不保证可复算。
技术价值与债务
最值得保存的是“实验参数即产品界面”的思想:用户不是看一个结论,而是改变时间窗口、方向、阈值和样本范围观察结论稳定性。图表注册表、分域缓存、静态快照与交互式三维网络共同服务于这一目标。
主要债务包括页面复制、数据与代码耦合、缓存无过期语义、超长网络请求、复杂图缺乏测试,以及在数组为空或最大最小值相同时可能出现除零。重建应将指标定义、后端任务、数据集版本和视图配置统一登记;每张图必须显示输入范围、公式版本和生成时间,并允许导出可复现实验清单。
证据边界
报告确认了前端内实际执行的平均、对数、立方根缩放、连通分量和几何布局,也确认了后端接口的参数契约。颠覆度、语义距离、PageRank 与熵的完整离线实现不在此仓库,本文不虚构其具体公式。