Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

To Pray Without Ceasing

To Pray Without Ceasing is a web-app that invites users to pay attention to the needs of strangers. It listens for expressions of need on Twitter (e.g. "I really need somebody to talk to"), especially those tweeted by Twitter users who have few followers. It then generates empathetic prayers specific to these needs. I completed the first version of To Pray Without Ceasing during a residence via in late 2020/early 2021.

To make the system pray, the visitor must keep lit a virtual candle that slowly burns down and is eventually extinguished. However, this is not a particularly demanding ritual; the web-app is designed to be left on in the background of one's day, checked in upon and tended to from time to time.

Evoking the "Liturgy of the Hours," the system prays in different ways at specific times of the day. Consuming the entire progression of the prayers (Matins, Lauds, Prime, Terce, Sext, Nones, Vespers, and Compline) takes at minimum 24 hours, longer should the visitor let the candles go out, halting progress. However, each day the system generates new prayers for new tweets. And so the loop begins again, from yesterday's weary Compline to today's fresh Matins.

When visiting the web-app, the visitor must move their cursor slowly, with respect for the holiness of the space. Moving the cursor too quickly may result in a stern warning---but no number of violations results in the visitor's expulsion.

Computer-Augmented Prayers

To Pray Without Ceasing issues prayers via a combination of information-retrieval and what I'd call computer-augmented (rather than computer-generated) writing. Using sentence vectors, the system tries to match need-statements from Twitter to one of a finite list of Target Needs that I have written. Through composing these Target Needs, I have decided in advance what kinds of tweets for which the system will pray as well as those for which it will not.

Each of these needs is paired with a prayer that I have written, but these prayers are bland and half-baked. I want them to be ornate and even opaque in the ways that liturgical writing can be. Here is where the computer-augmentation comes in. Each prayer that I have written may be augmented in three ways:

  1. revised by substituting my words with semantically-proximal words that occur frequently in the King James Bible (done with some measure of randomness, increasing entropy at the expense of coherence)
  2. adorned with semantically-relevant grammatical chunks extracted from the King James Bible using SpaCy's dependency parser; for instance, a reference to the noun "song" may be adorned with a preposition phrase used to describe this noun, such as "of the drunkards" (see this notebook);
  3. matched with sentences extracted from the Proverbs as well as Ecclesiastes, again using sentence vectors

Visualization of the above process.

Data-Science-Assisted Writing

For what needs should I compose prayers? Searching Twitter for "I need" and "I just need" and "I really need" will summon a diverse panoply of needs, from the trivial to the abject. To help me target frequent/typical Need Statements, I analyze a corpus of Need Statements from Twitter using various data, clustering them (using "agglomerative clustering") as well as simply analyzing frequent n-grams. When I write prayers (an unending process), I have this notebook open.

What words are Biblical enough to be included in the system's vocabulary? Once again, quantitative analysis helped me to answer this question, since I myself only have the most vague and depressingly under-educated notions of what words appear the the King James. ("Pottage," I did not know, is relatively important.) In this notebook I rather rustically target "key words," those that appear in the KJV more frequently than in a comparison corpus. I sift through the output of this notebook, adding choice specimens in the system's vocabulary.


No description, website, or topics provided.







No releases published


No packages published