使用可缩放时间轴可视化 400 万个维基百科事件

使用可缩放时间轴可视化 400 万个维基百科事件

Lortex 创建了一个可缩放的时间轴界面,用于可视化来自 Wikipedia 和 Wikidata 的 400 万个事件。该项目作为为期刊应用设计的自定义时间轴 UI 的演示,利用了基于 Kotlin Multiplatform 的高性能技术栈。

技术架构与技术栈

该应用程序使用以 Kotlin 为核心的现代技术栈构建,以确保跨平台兼容性和性能。核心组件包括:

  • 前端 UI: 使用 Compose Multiplatform 构建用户界面,实现历史事件的可缩放、空间布局。
  • 跨平台逻辑: 在整个项目中广泛使用 Kotlin Multiplatform (KMP) 以在不同目标平台之间共享逻辑。
  • 通信: 前端通过 Kotlinx-RPC 与后端通信。
  • 后端与基础设施: 系统由托管在 Hetzner 机器上的 Postgres 数据库提供支持。

为了策划庞大的数据集,开发者使用了 PageRank 对事件进行评分,以确保从 Wikipedia/Wikidata 导入的最重要事件在可视化中得到优先展示。

用户体验与性能观察

虽然该项目因其空间布局而获得了积极反馈,但用户报告在不同环境下表现出不同的性能结果:

  • 流畅的性能: 一些用户报告在 Linux Gnome 上使用 Firefox 的体验非常流畅。
  • 稳定性问题: 其他用户在 Firefox 上遇到了即时冻结,并在 Android 上的 Chrome 遇到了功能失效。
  • 加载状态: 用户注意到在初始加载期间缺乏视觉反馈,一些人报告屏幕空白长达 30 秒。

数据准确性与 UI 限制

社区反馈突出了关于数据解析和时间精度方面的特定问题:

  • 数据错误: 引用了一个数据错误示例,其中一个地点的邮政编码被错误地解释为年份(例如,一个事件出现在 760251 年)。
  • 时间精度: 用户观察到,当年份缩减到大约一个像素的大小大小时,UI 会崩溃。这表明在处理极高精度的时间戳(例如,大爆炸之后的秒级事件)时存在局限性,这需要更高位数的时间戳存储。
  • 时态一致性: 有人注意到,计划中的未来事件目前使用过去时态进行标记,这对于预测性事件可能会产生误导。

社区观点

用户已表示有兴趣将类似的可缩放时间轴界面应用于其他技术领域,例如系统日志和指标的分析。其他人则将该项目与现有的工具,如 "deep-timeline.org" 的宇宙对数时间轴,进行了比较,后者采用的是人工策划的方法,而不是从 Wikipedia 进行批量导入。

Sources