Arriving at more questions

I was pleased to work on a topic modeling project in Thursday’s workshop, as I have been learning about and practicing topic modeling for Alison Langmead’s digital humanities seminar this semester. In my own project, I am using the command line interface tool Mallet with a poetry corpus, experimenting with the tool’s ability to model figurative language. Any suspicion that the quantitative methods of topic modeling replace more humanist hermeneutics has been more or less erased as I have grappled with the interpretative questions necessary in “training” the model. Throughout the process I have also returned again and again to the question that is often asked about algorithmic textual analysis: is this generating anything meaningful? In my own project, I truly can’t say yet. In Thursday’s workshop, the example provided us with a list of topics that demonstrate what I think may be a more useful application of topic modeling.

I have been inspired by Lisa Rhody’s assertion that “topic modeling poetry works, in part, because of its failures.” (She also provides a very nice produce-based analogy to explain how topic modeling works; I find food to be a helpful point of entry for any subject.) Rhody’s explanation of her use of topic modeling in studying ekphrastic poetry, for me, echoes Ramsay’s statement that “in literary criticism, as in the humanities more generally the goal has always been to arrive at the question.” The models provide alternate means of exploration, not answers. Between my own project and our workshop, I have been able to imagine some scenarios in areas more closely related to my actual research in which topic modeling (or potentially other data mining methods) could provide a useful way to begin asking questions about a large body of work. But again, I see this merely as a way to get started. When it comes to the digital humanities, one of my concerns is whether or not there is too much of a learning curve or technological barrier to tools that simply allow us to prepare data for interpretation. It does seem that this work requires a dedication to computational methods themselves, beyond dedication to the interpretation of the content, which may be a (very reasonable) barrier for many researchers.

Image/Code as Information

I was drawn to post on this topic as an opportunity to reflect on and extend my previous experience as a photo archivist. Beyond an artistic interest in photography, I have always been interested in the life cycle of the digital image, whether it’s a digital surrogate of a physical object or born digital.  And while the “magic” of digitization fades after you have scanned enough Kodachrome slides and photographed enough glass plate negatives, what is gained is an appreciation of the digital image, a binary representation, as something very much its own, and often still very fragile.

In an attempt to tackle the subject of image from a new perspective, I spent some time experimenting with Processing, a program (language?) I found relatively easy to work with. Understanding that digital images are simply another form of data, it was a useful exercise to reverse my interaction with the image in this way. Rather than looking at a file and seeing it first as a representation of a visual image, while only secondarily acknowledging that the the image is actually a sort of coded numeric representation, I started first with the code and then observed the image.

Initially, the images I generated by following some Processing tutorials were not much more sophisticated than something I might have created 20 years ago in Microsoft Paint:

ellipses

Still, how gratifying to have created this by simply typing:

ellipsescode

Of course, the site demonstrates examples of the level of sophistication possible with this program. While far from that skill level, a little time spent looking through the user gallery on Open Processing provided a number of examples of beautiful work that seem a bit more within reach. Though finding the extra hours in the day to build my Processing skills may just be another pipe dream, I’m not deleting the application any time soon. I admittedly found the instant gratification of entering code and viewing the results very satisfying.

While working through the tutorials and experimenting with Processing, I found myself wondering about the merits of the, well, process of creating images this way. Certainly many of these effects can be achieved through Photoshop and Illustrator. What can we learn about the digital image by bypassing the more user-friendly interface and working directly with code? In “Digital Ontologies: The Ideality of Form in/and Code Storage – or Can Graphesis Challenge Mathesis?” Johanna Drucker explores the relationship of human thought to its representations in various forms, and particularly within the digital environment. She asks:

“Is our conception of an image profoundly changed by its capacity to be stored as digital code? Or is the commonality of code storage as the defining condition of digital processing a confirmation of a long-standing Western philosophical quest for mathesis (knowledge represented in mathematical form, with the assumption that it is an unambiguous representation of thought), in which there ceases to be any ambiguity between knowledge and its representation as a perfect, symbolic, logical mathematical form?”

This week was light on reading, and if for any reason anyone is lamenting that fact and hasn’t read this article, I would recommend it. There is a lot to consider here, and I think Processing provides an apt environment for exploring image at the level of code. Drucker’s article reminded me that problems with the public perception of photographs as objectively truthful evidence date back to the very beginning of photography; in the digital environment, those problems are further complicated by public perception of code as objective, or somehow mathematically

Georg Nees

Georg Nees

“truthful,” rather than as language, authored by individuals, or groups of individuals, as we have discussed in class. After years of watching the light flashing in a scanner and painstakingly color-correcting images in order to most accurately represent the physical attributes of a photograph or print, and wondering what exactly it was that I was creating, I think I have more questions than answers when it comes to exploring the image as code (and ultimately as information), and I think this article is a useful starting point.

It’s also worth noting that one of the works Drucker considers, Georg Nees’ Schotter / Gravel Stones, created with a random number generator can be created in Processing by following this tutorial, which is a fun way to get a little more experience with the program.

Human Outsider

Screen Shot 2015-10-14 at 10.13.52 PM

I can’t think of a more appropriate way to enter the world(s) of Dwarf Fortress than in adventure mode, as a “human outsider.” In establishing my background the blue text on the screen reads “You area stranger here.” Yes, accurate.

I took a fairly reckless approach to playing the game. If all roads lead to failure, it’s easy to feel very free in experimenting. Do I want to eat with a large copper dagger, or a spear? Large copper dagger, sure, why not? The game tells me that I lick the large copper spear. Fine! Make a campfire? Don’t mind if I do. I’m just a human outsider having an adventure.

Screen Shot 2015-10-14 at 10.33.05 PM

This is not the most meaningful way in which I can engage with this game, but as I find the game wildly overwhelming, simply wandering around and observing the virtual environment feels productive. The game requires interaction at every level; in initially opting to go into the init.txt file to enlarge the text, I felt immediately involved in this world through even this tedious administrative action. Within the game screen, through a combination of pressing random keys (which is how I came to build my fire, tbh) and consulting the wiki, I played Dwarf Fortress by treating it less as a game with defined objectives and more as an interactive fiction, absolutely. It is hard to read some of the text, like the following description of my human character, without seeing it as such.

Screen Shot 2015-10-14 at 10.43.56 PM

Even after my several hours of reading about and exploring the game, I feel that I have barely skimmed the surface of what it is and how it works. Initially I was inclined to think that this might be a game I could enjoy reading about in the abstract, or appreciating visually as a work of art, but bit by bit, I am increasingly inclined to continue playing and to see how much more I can learn. I don’t know that I have any idea what is happening or where I am, but I think I like it in here.

Second Living

When I began my Library and Information Science masters program in 2010, the use of Second Life in libraries was a popular topic among some of my fellow classmates, and was frequently cited as an example of an innovated “Library 2.0” outreach tool, and often, as a means of reaching library users who may not be able to physically visit a library. I was never sufficiently convinced that it provided a unique public service, beyond perhaps novelty, and as a result, never took the initiative to test the experience out. (I was also deterred by the game’s explanatory one-liner: “Second Life is a 3D world where everyone you see is a real person and every place you visit is built by people just like you,” which is also arguably a way that one could describe actual life.)

Though the enthusiasm for library services administered through Second Life seems to have quieted, for a period of time it was used often enough to receive some attention in professional literature and at conferences, and studies were conducted on the ways in which libraries employed the virtual world as an outreach or communication tool, and the ways in which users interact with libraries in Second Life.

In reading Noah Wardrip-Fruin’s Expressive Processing, I found myself occasionally thinking of Second Life and its utility as a library services tool. By the time I got to the chapter on the SimCity Effect, I was curious enough to download Second Life to learn more firsthand. There are some comparisons to be drawn between Second Life and SimCity – perhaps namely in the realistic terrain and processes enacted by users. Indeed, a significant component of gameplay seems to be in enacting processes in an attempt to better understand the game’s operations. In the game’s heyday, the play may have been focused more centrally on interacting with the avatars of other real-life members of this virtual world. In 2015, most of the libraries I visited looked like ghost towns.

secondreferencedesk

One can imagine that, in years past, there may have been a librarian avatar at this Caledon Library desk, ready to answer reference questions and direct the visitor to resources (either resources modeled within the virtual library, or through hyperlinks to electronic resources elsewhere).

Further proof of life in the library comes in the form of looking at the profile of one of the library’s staff, last active three years ago:

secondstaff

Beyond modeling physical library spaces, users could hold virtual parties, lectures, or reading groups, attended in real time by real users, in avatar form. In forums and on blogs, I found several mentions of an anticipated Caledon archive, comprised of content from users of the fictional library.

My specific interest in the use of Second Life by real-life libraries is most connected to Wardrip-Fruin’s discussion of the ideological systems that inform simulated games. While I have not spent nearly enough time in Second Life to make a strong assessment of the values that may inform its processes, as a librarian, it would seem imperative to compare these with the professional values of librarianship as a field, or at very least the policies and procedures of a specific library system. Beyond mimicking the appearance and basic functions of a library (the surface with which the audience interacts), I am curious as to whether the operational logics of Second Life represent those of an actual library? A number of articles on the subject of library representation in Second Life note that libraries that exist only in Second Life are often more successful than representations of physical libraries, which suggests the possibility of a disconnect between systems.

The value system of the creators of the game is arguably most evident in the case of Woodbury University, which was banned twice from Second Life. In a Chronicle of Higher Education article on the subject, Edward Clift, dean of the university’s School of Media, Culture & Design, said that “he felt that the virtual campus did not conform to what Linden Lab wanted a campus to be—with buildings and virtual lecture halls” [emphasis mine]. Though in this case the restriction was not imposed by computational processes, but by administrative action, it does serve as a reminder that the virtual world doesn’t go unmoderated, and reminded me of Wardrip-Fruin’s statement that “any simulation is actually an encoding of a set of choices…[and] whatever the motivation behind the choices, there is inevitably a politics to how the world is simulated.” If a value assessment of what a university should be is implicit in the story of Woodbury, I wonder if there are similar assumptions of what a library should be, and how that may have been considered or reflected in the processes of creating, staffing, and using a library within the Second Life world.

nothingbot

I chose to make what I expected to be a fairly relatively simple bot in the style of the Poe example provided for the class. I thought I would use text from John Cage’s “Lecture on Nothing,” which is composed of short artful lines that I thought would lend themselves well to tweet form. I set up my Twitter account and app and pulled the text I needed from the Internet Archive, feeling perhaps overly confident about pulling together a project that would be easy(ish) to execute and have a fairly interesting outcome. That is of course a rookie move, and I quickly realized what I had chosen to do wasn’t as simple as I had thought.  It is fitting and ironic that I selected a text that ends:

“All I know about method is that when I am not working I sometimes
think I know something, but when I am working, it is quite clear that I know nothing.”

“Lecture on Nothing” is written out as a musical composition, in measures with musical spacing and repetition. On the page, it looks like this:

page1image

The same content, in a plain text file, looks like this:

page1text

So far, so good! But the order dissolves almost immediately afterward.

page1image2

A little further down the page, the above image translates to the following text:

page1text2

It looks like a fairly standard OCR problem. I found it sort of funny and fitting that in trying to create a bot, I had inadvertently picked a text that a machine had essentially already altered for me. My file ended up creating a nonsensical word-jumble effect that seems fairly common to bots, without my actually coding it to do that. So I ended up with some very typical bot tweets:

tweet1

tweet2

tweet3

While working my way through the initial process of creating the bot, I spent some time reading through additional tutorials and documentation, and thought about bots as compared to human-generated outreach projects on Twitter, like NPR’s Today in 1963, or historical societies that have tweeted diaries from their collections. I’m interested in the impact of these projects, and how the use of bots in these settings can automate the workflow of posting; and yet curatorial decisions made by humans are at the root of these accounts. Additional searching also turned up no “Lecture on Nothing” text that wasn’t similarly formatted in the OCR process. The part of me that would follow a John Cage bot wonders if creating that text by hand is the only way to generate an accurate machine-readable version of the lecture, and if I am the person who will end up obsessively taking the time to type it out…

Code & English & a List

I will say up front that I expected to need to break my Python sessions into small, easily digestible segments. My (analog, handwritten) planner very clearly outlines the reticence I was feeling toward learning what felt like a new language and a new math rolled into one. Which is not to say that this is my first stab at coding; but as a few classmates have also written, my comfort zone is somewhat outside of what might be called proper coding. As a high school student, before options like WordPress or Squarespace were available, I created my own HTML website with an FTP client that made wonderfully 1980s-cartoon-style noises every time I uploaded a file. Later, I learned some CSS, and a tiny bit of PHP, though I had only the rare occasion to put either to use in any real way. As an archivist, I frequently encoded finding aids in the XML markup language EAD. Working in libraries and small non-profits, I rarely had a job where I wasn’t asked to customize a WordPress or Omeka template to make it look less like what it was: a template.

So the editor module is not entirely foreign to me, but the process of systematically learning a new language from scratch was intimidating, and I worried that I wouldn’t be able to make sense of it out of context. To put it another way: I felt some anxiety about simply learning for the sake of learning, and wondered if, without a specific problem to solve, would I actually grasp the meaning of the content, and further, would I be able to recall or apply it later? I was surprised to find that time flew by while I worked through the lessons, though I occasionally hit roadblocks where I was sure I was applying the rules appropriately, only to be repeatedly confronted with error messages (I’m looking at you, Conditionals & Control Flow). I would experiment with variations of what I thought I was supposed to be doing, and often found that only when I tried the variation that I was sure was wrong, the code finally worked.

While I worked through the Python lessons, I thought about how I might relate this to English studies, and in the most general sense, I felt that I was acquiring a set of skills that would allow me to navigate a breadth of ideas and content and, eventually, with practice, express my own original content, or a point of view, to communicate with others and contribute to a larger dialogue.

A few notes that I made while I worked:

  1. The process of learning code is not dissimilar from the process of learning grammar and vocabulary. Eventually these will help in the framing of a more sophisticated narrative, but likely only after learning from a series of clumsier choices.
  2. Reading lines of code in examples – not a great stretch from the practice of close reading. Again, much easier when you have an established foundation. Nothing clicks instantly, and practice and examination contribute to a cumulative knowledge over time.
  3. From Python Syntax 5/13 Whitespace: “In Python, whitespace is used to structure code. Whitespace is important, so you have to be careful how you use it.” This is only barely paraphrasing conversations I remember from earning my BFA in poetry.
  4. While the line structure and use of space share bear some resemblance to poetry, the coding process reminded me more of short stories – create the environment, establish the structure, make sure everything that’s included really needs to be included, leave out the elements that don’t contribute anything essential to the narrative.
  5. For all the rules, and all the value of the rules, I suspect that code is more malleable than it feels when we are learning it, in the way that language is not as rigid as rules of grammar and sentence structure could make it seem. Once you learn what you are working with, you build on it and test the boundaries of what you can do outside the rules. This is how we can get new, weird, exciting art, and this is probably also how I can chop up someone’s well-constructed code to make the website my boss asks me to make, without completely destroying it.