by Johanna Fulda, Matthew Brehmer, and Tamara Munzner

UBC InfoVis Group

About | Web Application | Research Paper | Video | FAQ | Contact | Instructions | Examples | Source | Change Log


Want to make a visual timeline, but don't have the time to draw one manually? Or maybe you have some documents, but you're not sure if the events they depict form a compelling timeline?

TimeLineCurator quickly and automatically extracts temporal references in freeform text to generate a visual timeline. You can then interactively curate the events in this timeline until you are satisfied, or quickly decide that there is no interesting temporal structure within the document. You can also create a mashup of multiple documents against each other to compare their temporal structure.

Already using TimelineJS? TimeLineCurator works with TimelineJS: instead of tediously assembling your timeline in a spreadsheet, TimeLineCurator allows you to curate your timeline visually. When you are ready, you can export your curated timeline to a TimelineJS widget that you can embed on your website or blog.

Web Application

Research Paper

TimeLineCurator: Interactive Authoring of Visual Timelines from Unstructured Text

Abstract: We present TimeLineCurator, a browser-based authoring tool that automatically extracts event data from temporal references in unstructured text documents using natural language processing and encodes them along a visual timeline. Our goal is to facilitate the timeline creation process for journalists and others who tell temporal stories online. Current solutions involve manually extracting and formatting event data from source documents, a process that tends to be tedious and error prone. With TimeLineCurator, a prospective timeline author can quickly identify the extent of time encompassed by a document, as well as the distribution of events occurring along this timeline. Authors can speculatively browse possible documents to quickly determine whether they are appropriate sources of timeline material. TimeLineCurator provides controls for curating and editing events on a timeline, the ability to combine timelines from multiple source documents, and export curated timelines for online deployment. We evaluate TimeLineCurator through a benchmark comparison of entity extraction error against a manual timeline curation process, a preliminary evaluation of the user experience of timeline authoring, a brief qualitative analysis of its visual output, and a discussion of prospective use cases suggested by members of the target author communities following its deployment.

Pre-Print PDF

TimeLineCurator: Interactive Authoring of Visual Timelines from Unstructured Text
To appear in IEEE Transactions on Visualization and Computer Graphics (TVCG).
Proceedings of IEEE Conference on Visual Analytics Science and Technology (VAST), Chicago, USA, 2015
→ [Pre-Print PDF]




We'd like to know how you are using TimeLineCurator! We also want to know what to improve.

Get in touch with us via email at: {jfulda,brehmer,tmm} [at] cs.ubc.ca

On twitter: @jofu_, @mattbrehmer, @tamaramunzner.


Getting Started

When you arrive at TimeLineCurator, you start with an empty timeline. To fill this timeline with events, you can load in freeform text that contains temporal references (click the '+' in the Document View). You can also create individual events manually (click the '+' in the Control Panel at the far right).

When you choose to add your own freeform text, a dialog box will appear. You can paste text here or you can choose from some example files from the dropdown menu at the bottom of the dialog box.

Load text: if you paste in your own text, you must give your text a Document Title. Paste the body of your text in the Content area. You can optionally specify the date when the text was written; in other words, what date does "today" refer to in the text? (this is especially important if the text is copied from a news article). Finally, choose from one of the six colours; events from this text will be drawn on the timeline in this colour. (In the picture below, we used the the 20th Century section of the Wikipedia arcticle "History of British Columbia")

When you're ready, press "Go!" to let TimeLineCurator's text analyzer locate all of the temporal references within the text (it might take several seconds depending on the size of your text). You can repeat this step multiple times with different texts. You can add as much text as you want, though you are limited to the six colours provided here.

Curating the Timeline

Discrete events are represented as circles on the timeline, while span events are represented as triangles joined with a horizontal line. Events are offset to reduce occlusion; the vertical position does not correspond to anything meaningful.

Edit Events: You can select every event inside the timeline and you will see the event highlighted in the List View and its corresponding sentence highlighted in the Document View. In the Control Panel, you can edit the event: click on the date, title, or content text to modify. The event title is by default the first 5 words of the sentence in which the temporal reference was detected. The content text is by default the complete sentence surrounding the temporal reference. You also can change the colour track of the event, or delete the event from the timeline. Once you edit an event, its colour will become more saturated on the timeline, and a check mark will appear inside its icon in the List View.

Media can be added to an event by adding a URL that links directly to an image or video. The cat icon next to the "Add Media" button indicates if an event already has media associated with it: a grey cat indicates no media; a black cat indicates that media has been added to an event (at least a URL, the caption and credit is optional). Media will appear in the finished TimelineJS timeline.

List View: Click on an event to select it. The headers of the top of the List view, circled below let you order the events by type (discrete event vs. span event), by status (edited vs. not edited), by document, by colour track (1-6), by date, or by event title.

Vague Dates: Imprecise temporal references are shown as squares at the top right of the timeline and have the date '????' in the list view. These are not initially aligned in the timeline because often they do not represent concrete events that should be on the timeline; it is safe to ignore them because they will not be exported. However, some of these may contain genuine events that were not extracted correctly, so you can use the Control Panel to add concrete information according to your own interpretation of the text (or additional background knowledge).

Merge Events: you can select several events at once, by pressing the Shift key and selecting one after another. When you have a selection of more than one event, two new buttons will appear in the Control Panel. When you choose to merge events (the button with the circular icon), they will all be assigned the dates of the first event that you selected (the one with the boldest border in the timeline). You can also batch-delete the selected events (the button with the 'x' icon).

Naming the Timeline: select the 'Home' button in the Control Panel to edit the name and description of the whole timeline.

Export, Load, Save

Three buttons at the right of the Control Panel are for Exporting, Saving, and Loading your timeline:

Export: You can choose between "TLC Export" and "TimelineJS Export". In both cases a new browser tab will open and show all dates, including the pictures that you added.

Save and download the current state. Either as:

Load previous state: every minute the current state of your editing is saved to your local storage; if the browser crashes or you forget to save the latest version, there should be a backup available. Alternatively, you can load from file: if you created a .tl file in a previous session you can upload that one here and continue working on that.


Scandinavian Music
Comparing the history of pop music in five different countries. Based on the articles on Europopmusic

Result (TLC Export) | Result (TimelineJS) | tl-file
The Fall of the Berlin Wall
An overview of the events around the the fall of the wall in 1989. Based on the Wikipedia entry about the "Berlin Wall".

Result (TLC Export) | Result (TimelineJS) | tl-file
Events concerning Wolgang Amadeus Mozart's work, based on his Wikipedia article.

Result (TLC Export) | Result (TimelineJS) | tl-file
Net Neutrality
Comparing articles from The Guardian & Wired that report on the FCC's net neutrality vote from February 26th 2015.

Result (TLC Export) | Result (TimelineJS) | tl-file
The Jian Ghomeshi Timeline
Created in ~30 minutes based on the Wikipedia article about Jian Ghomeshi

Result (TLC Export) | Result (TimelineJS) | tl-file
The life of J.B. Tyrrell
The life and death of the man who discovered the Albertosaurus. Based on an article on Canadian Geographic and an archive article from 1953. Test case by Carys Mills, social media editor at Canadian Geographic magazine. Result (TLC output) | Result (TimelineJS) | tl-file
Sam Smith and the Grammys
Created in ~10 minutes based on the Wikipedia article about the British singer Sam Smith.

Result (TLC Export) | Result (TimelineJS) | tl-file


TimeLineCurator is a browser-based Heroku application. Event extraction from freeform text is handled by the Natural Language Toolkit and the TERNIP Python Library. The interface was implemented using D3.js and AngularJS.

And here is the public Github repository.

Change Log




Last modified: 3 Aug 2015.