The code contained in this repository is the result of a year-long independent, peer-reviewed project carried out within the Princeton Center for Digital Humanities. Each item functions as a supporting document or digital annex to my doctoral dissertation, “Reading and Writing Patterns: The Mathematical Methods of the Oulipo” which I am currently writing under the direction of Professor David Bellos and which I will defend in May 2017. The point of these annexes is to complement the literary analysis contained within my chapters 2, 3, and 4 with pedagogical, interactive, digital editions of canonical Oulipian texts and procedures. As my chapter 1 is a largely historical analysis of the Oulipo’s understanding of the mathematical field of set theory, such a digital annex would have been of an entirely different nature, and I therefore abandoned the idea of making one. Likewise, while I did create a digital annex for my chapter 5 which consisted of a Tinderbox hypertext of Italo Calvino’s “Le città invisibili” in which the geometric structure gave way to a new visual mode of reading and understanding the novel and its many influences, due to the different nature of this annex and copyright issues, I am unable to include it within this repository. Instead, I am using it as a note-taking tool in the writing of this final chapter.
CDH Website: https://cdh.princeton.edu/projects/digital-oulipo/
Personal Website, Digital Humanities: https://natalieberkman.commons.mla.org/digital-humanities/
Personal Website, Digital Oulipo: https://natalieberkman.commons.mla.org/digital-humanities/digital-oulipo-project/
Blog, Post #1 The Plan: https://natalieberkman.commons.mla.org/digital-oulipo-the-plan/
Blog, Post #2 Coding as Analysis: https://natalieberkman.commons.mla.org/digital-oulipo-coding-as-analysis/
Blog, Post #3 Unexpected Results: https://natalieberkman.commons.mla.org/digital-oulipo-unexpected-results/
Blog, Post #4 Learn Python the Hard Way: https://natalieberkman.commons.mla.org/digital-oulipo-learn-python-the-hard-way/
Blog, Post #5 Graph Theory: https://natalieberkman.commons.mla.org/digital-oulipo-graph-theory-for-literary-analysis/
Blog, Post #6 S+7 through NLTK: https://natalieberkman.commons.mla.org/s7-through-nltk/
Algorithm Conference Website: https://poeticsofthealgorithm.wordpress.com/
- S+7 code and data (text files)
The first annex corresponds with my chapter 2, which deals with the Oulipo’s algebraic constraints. The early Oulipo used simple arithmetical procedures to manipulate the basic units of literature, and none of its first experiments was as productive and prolific as Jean Lescure’s S+7. My annex allows the reader to experiment with this method,creating author-specific dictionaries with which to replace the nouns in famous literary excerpts with those 7 entries later. NB: there are a few glitches in the part of speech tagging that are unrelated to my own programming, but rather the result of bugs that exist within the nltk framework itself. Also, this annex requires Python 3 or higher, whereas the following require Python 2.
Cent mille milliards de poèmes, an exercise in array manipulation.
- CMMP.py is a simple interactive program that generates poems based on user input.
- Shakespeare_Generator.py is a variation of CMMP.py using Shakespeare’s sonnets.
The second annex is a digital edition of Raymond Queneau’s canonical “Cent mille milliards de poèmes”, which corresponds with my chapter 3 on combinatorics. The user can generate pseudo-random sonnets according to a variety of initial inputs. This illustrates the combinatorial potential of the collection as well as the Oulipian mistrust of pure chance.
An exercise in graph traversal.
- Conte2.py is an interactive program that lets the reader traverse the story and then print out a graph.
- Depends on graphviz
The third annex corresponds with my chapter 4 on algorithmic procedures. It takes the form of an interactive choose-your-own-adventure story written by Queneau, Un conte à votre façon. My program gives Queneau’s list of binary options the structure of a graph with nodes and edges and allows the reader to read and reread choosing different paths. At the end, the program prints out a graph of all possible nodes and edges with the path the user has taken highlighted in green.
As I said above, there are a few glitches in the part of speech tagging (in the first annex) that are unrelated to my own programming, but rather the result of bugs that exist within the nltk framework itself.