2019-07-11: Raintale -- A Storytelling Tool For Web Archives

My work builds upon AlNoamany's efforts to use social media storytelling to summarize web archive collections. AlNoamany employed Storify as a visualization platform. Storify is now gone. I explored alternatives to Storify in 2017 and found many of them to be insufficient for our purposes. In 2018, I developed MementoEmbed to produce surrogates for mementos and we used it in a recent research study. Surrogates summarize individual mementos. They are the building blocks of social media storytelling. Using MementoEmbed, Raintale takes surrogates to the next level, providing social media storytelling for web archives. My goal is to help web archives not only summarize their collections but promote their holdings in new ways.

Raintale is the latest entry in the Dark and Stormy Archives project. Our goal is to provide research studies and tools for combining web archives and social media storytelling. Raintale provides the storytelling capability. It has been designed to visualize a small number of mementos selected from an immense web archive collection, allowing a user to summarize and visualize the whole collection or a specific aspect of it.

Raintale accepts a list of memento URIs (URI-Ms) from the user and produces a story containing surrogates of those URI-Ms. It then publishes this story to an individual file, in a format like HTML (as seen below), or a service, like Twitter (as seen above). Our goal is to explore and offer different publishing services and file formats to meet a variety of storytelling needs. You can help by finding defects and making suggestions on the directions we should take. The rest of this article highlights some of Raintale's features. For more information, please consult Raintale's websiteits documentation, and our GitHub repository.

Raintale provides many customization options for different types of storytelling. In this example, the HTML output contains Bootstrap cards and animated GIFs (MementoEmbed imagereels) of the best five images from each memento.

What Is Possible With Raintale

We created Raintale with several types of users in mind. Web archives can use it as another tool for featuring their holdings in new ways. Collection curators can promote their collections by featuring a small sample. Bloggers and other web page authors can write stories like they previously did with Storify.

When a user supplies the URI-Ms, Raintale supplies the formatted story. The URI-Ms do not even need to be from the same web archive. Raintale uses the concept of a storyteller to allow you to publish content to a variety of different file formats and social media services.

Raintale supports HTML storytelling with MementoEmbed social cards (see below). Story authors can use this HTML for static web sites or paste it into services like Blogger. Web archiving professionals can incorporate it into scripts for curation workflows. Raintale also provides storytellers that generate Jekyll headers for HTML or Markdown, suitable for posting to GitHub pages.

Raintale, by default, generates MementoEmbed social cards via the HTML storyteller.

Seen below, Raintale supports MediaWiki storytelling. It generates MediaWiki markdown that story authors can paste into a wiki page. This MediaWiki storyteller can help organizations who employ storytelling with wiki pages as part of ongoing collaboration.

Raintale can generate a story as MediaWiki markup suitable for pasting into MediaWiki pages.

Likewise, Raintale provides a Markdown storyteller with output suitable for GitHub gists. This output is useful for developers providing a list of resources from web archives.

Raintale provides a story as Markdown, rendered here in a GitHub gist available at this link.

For social media sharing, Raintale can also generate a Twitter story. Raintale leverages MementoEmbed's ability to surgically extract specific information from a memento to produce Tweets for each URI-M in a story. These URI-Ms are then bound by an overarching tweet, thus publishing the whole story as a Twitter thread.

Raintale's default Twitter storyteller generates surrogates consisting of the title of the memento, its memento-datetime, its URI-M, a browser thumbnail, and the top 3 images as ranked by MementoEmbed. The Tweet starting the thread contains information about the name of the story, who generated it, and which collection to which it is connected. The Twitter thread shown in this screenshot is available here.

Our Facebook equivalent is still in its experimental phase. We use a Facebook post to contain the story, and Raintale visualizes each URI-M as an individual comment to that post. Our Facebook posts do not yet have image support. The lack of images leads Facebook to generate social cards for the URI-Ms. As noted in a prior blog post, Facebook does not reliably produce surrogates for mementos. Also, Facebook's authentication tokens expire within a short window (sometimes 10 minutes), which requires the user to request new ones continually. We have observed that the comments on the post are not in the order they were submitted. We welcome suggestions on improving Raintale's Facebook storyteller.
We are beginning to explore Raintale's ability to post stories to Facebook.

We are experimenting with producing MPEG videos of collections, as seen below. Raintale generates these videos from the top sentences and top images from the submitted URI-Ms. A story author can then publish the video can to Twitter or YouTube to tell their story. Below, we show a tweet containing an example video created with Raintale.

Raintale supports presets, allowing you to alter the look of your story. If you do not like the social card HTML story shown above, a four column thumbnail story may work better (shown below). These presets provide a variety of options for users. Presets are templates that are already included with Raintale. We will continue to add new presets as development continues. To see what is available, visit our Template Gallery.

This story was produced via the HTML storyteller, but with the thumbnails4col preset. Presets are templates included with Raintale. Users can also supply their own templates.
Templates are an easy way to generate different types of surrogates for our research studies. Some of the initial presets come from those studies and are quite vanilla in tone because we wanted to limit what might influence the study participant. Raintale's output does not need to be this way. Raintale provides template support so that you can choose which surrogate features work best for your web archive or blog, as shown in the fictional "My Archive" story below.

Raintale allows users to supply their own templates, such as this one for the fictional "My Archive." Using these templates, curators can create their own stories describing their collections.
In the "My Archive" example, we show how one can brand a story using their own formatting and images. This example displays thumbnails, favicons, text snippets, titles, original resource domains, memento-datetimes, links to other mementos, links to the live web page, and the top four images discovered in each memento. Each of these features is controlled by a template variable and there are more features available than those shown here. We will continue to add new features as development proceeds.

Take a look at our Template Gallery to see what is available. The documentation provides more information on how to build your own templates using the variables and preferences provided by Raintale.

Requirements for Running Raintale

In the Raintale documentation, we discuss the different ways of installing and running Raintale. Raintale is a command-line Python application tightly coupled to MementoEmbed. The easiest way to run Raintale is with docker-compose. We implemented a command-line utility named tellstory so that a user can easily include Raintale in scripts for automation.

For file formats, tellstory requires a -o argument to specify the output file.

# docker-compose run raintale tellstory -i story-mementos.txt --storyteller html -o mystory.html --title "This is My Story Title"

For social media services, tellstory requires a -c argument to specify the file containing your API credentials.

# docker-compose run raintale tellstory -i story_mementos.txt --storyteller twitter --title "This is My Story Title" -c twitter-credentials.yml

A user can supply the content of the story as either a text file, like the story_mementos.txt above, or JSON. The text file is a newline-separated list of URI-Ms. Alternatively, the user can supply a JSON file for more control over the content. See the documentation for more information.

Our Reasons for Developing Raintale

As noted in a prior blog post, each surrogate is a visualization of the underlying resource. My research focuses on social media storytelling and web archives. The surrogates, presented together as a group, are visualizations of a sample of the underlying collection. In recent work, we explored how well different surrogates worked for collection understanding. Raintale came out of the lessons learned from generating stories with different types of surrogates. We decided that both we and the community would benefit from a tool fitting in this problem space.

Providing Feedback on Raintale

Development on Raintale is just starting, and we would appreciate feedback at our GitHub issues page. In addition to finding defects, we also want to know where you think Raintale should go. Have you developed a template that you find to be useful and want to share it? Is there a storyteller (file format or service) that you want us to incorporate?

The Dark and Stormy Archives Toolkit

Raintale joins MementoEmbed, the Off-Topic Memento Toolkit, and Archive-It Utilities as another member of the growing Dark and Stormy Archives (DSA) Toolkit. The DSA Toolkit includes tools for summarizing and generating stories from web archive collections. The next tool in development, Hypercane, will use structural features of web archive collections, along with similarity metrics and Natural Language Processing, to select the best mementos from collections for our stories.

We will continue to improve Raintale. What stories will we all tell with it?

-- Shawn M. Jones