Code Monkey home page Code Monkey logo

a-rose-for-emily's Introduction

A Rose for Emily

This uses constraint logic programming in Prolog to analyze the nonlinear timeline in Faulkner's story “A Rose for Emily”.

Burg, Boyle, & Lang (2000) use the CLP(R) system, which was originally implemented as an add-on to Prolog.

My implementation updates their code with the more recent CLP(FD), included as a library in SWI-Prolog.

The main difference is that the original version uses real numbers, while my implementation uses integers.

However, some of their findings fail to replicate — notably, their dating of Emily's birth in 1850 and death in 1924.

Code Outline

Events in the story are denoted by variables, e.g. Emily's birth is event K, and her death is A.

Events in "A Rose for Emily"

We want to find out the range of years in which each event could have occurred.

Happily, the story has various intertemporal references, e.g. X occurred 6 years before Y.

We can encode these as constraints, in the form Y - X = 6.

Intertemporal relations in "A Rose for Emily"

[Note: one of the original charts on p. 387 has a typo, mixing up E (stops lessons) with F (Colonel dies)]

The main body of code simply lists various constraints given throughout the story.

We can adjust the constraints by hand to test various hypotheses, e.g. that Emily died in 1924.

To run the program, load the file with Prolog and query: emily([A,B,C,D,E,F,G,H,I,J,K,L,M,N]).

Results

  • Burg, Boyle, & Lang (2000: 385) conjecture that Emily died in 1924. However, this does not replicate: the latest year Emily could have died is 1923. So far, I haven't found an explanation for where this conflict comes from.
    • If the inequality J > I is nonstrict, A=1924 is possible, but this contradicts the text: “she bought the rat poison, the arsenic…over a year after they had begun to say "Poor Emily"” (i.e. after she had started seeing Homer Barron).
    • However, setting J ≥ I and A=1924 does not exactly replicate Burg, Boyle & Lang's (2000: 387) timeline in table 4.
  • A major controversy in the literature is whether Emily's taxes are remitted in the year of her father's death (C=H), or during her china-painting lessons (N ≤ C ≤ E); Burg, Boyle & Lang's (2000) program and ours confirm the latter.
  • A draft by Faulkner says Emily's taxes are remitted in 1904. We confirm previous findings that this is inconsistent.

Possible Extensions

  • The original code has a function to list all possible orderings of events, which I can't manage to reproduce.
  • It would be helpful to visualize this as a collection of dials; move one and the rest move accordingly.
  • Conflicting interpretations of the story likely result from discontinuities (sudden jumps in the dials).
  • This method is applicable to any nonlinear storyline, as long as there are enough intertemporal references.
  • With a larger corpus of stories, it would be interesting to visualize how their simplexes look different.

References

  • Faulkner, W. (1930). “A Rose For Emily,” in Faulkner, W. (1950). Collected Stories. New York: Random House.
  • Burg, J., Boyle, A., & Lang, S.-D. (2000). “Using Constraint Logic Programming to Analyze the Chronology in "A Rose for Emily".” Computers and the Humanities 34(4), pp. 377-92

a-rose-for-emily's People

Contributors

gjoncas avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.