Exploring a Zoomable Timeline of 4 Million Wikipedia Events

Exploring a Zoomable Timeline of 4 Million Wikipedia Events

Lortex has created a zoomable timeline interface that visualizes 4 million events sourced from Wikipedia and Wikidata. This project serves as a demonstration of a custom timeline UI developed for a journal application, utilizing a modern Kotlin-based tech stack to handle large-scale temporal data visualization.

Technical Architecture and Stack

The application is built using a Kotlin-centric ecosystem to ensure consistency across the frontend and backend. The core components include:

  • Kotlin Multiplatform (KMP): Used extensively across the project to share logic and code.
  • Compose Multiplatform: Powers the user interface, providing the zoomable timeline experience.
  • Kotlinx-RPC: Handles communication between the client and the server.
  • PostgreSQL: A simple Postgres database hosted on a Hetzner machine serves as the backend storage for the event data.

Data Sourcing and Ranking

The timeline displays 4 million events imported from Wikipedia and Wikidata. To manage the visibility and relevance of these events within the zoomable interface, the developer used PageRank to score the events, ensuring that the most significant events are prioritized in the visualization.

User Feedback and Performance Observations

Community feedback from Hacker News indicates a variety of performance experiences and data accuracy issues:

Performance and Compatibility

While some users reported smooth performance on Linux Gnome with Firefox and iOS Safari, others experienced significant issues. Some users noted that the application freezes upon interaction on Firefox, and others reported it being "borked" on Chrome for Android.

Additionally, one user highlighted a lack of visual feedback during the initial load, stating they saw a blank screen for up to 30 seconds.

Data Accuracy and UI Constraints

Users identified specific data errors and technical limitations of the the timeline's current implementation:

  • Data Misclassification: One user noted that an entry for Jekadefari is incorrectly placed in the year 760251, likely because the system interpreted a postcode as a year.
  • Tense Usage: A user suggested that future events should be labeled as "forecast" rather than "happened in," to avoid using the past tense for future dates.
  • Precision Limits: A user observed that the UI breaks when years are approximately one pixel in size, suggesting that for extremely high-precision events (such as those occurring in the second-scale immediately after the Big Bang), the system would require more accurate timestamp storage (e.g., 128-bit) and handling.

Potential Use Cases

Beyond the general exploration of Wikipedia events, users suggested that similar zoomable timeline tools could be useful for analyzing system logs and metrics, providing a spatial layout for temporal data.

Sources