I study the history and contemporary practice of Artificial Intelligence, with a focus on Natural Language Processing. I am currently working on a dissertation entitled Android Linguistics, in which I trace how ideas about language and computation gave rise to the current set of metaphors through which we conceptualize languaging machines, and attempt to think through alternative arrangements that may provide useful perspectives for future work in AI.

Android Linguistics

Influence diagram of narrative in AI historyMy dissertation takes the development of AI research on narrative and story understanding as a case study in the development of technical research programs that engage with nebulous, human concepts. From early work by Roger Schank and Eugene Charniak in the 1970s to more recent conference workshops on narrative, researchers have grappled with the concept of narrative and its role in language. This research has drawn on concepts from computer science, linguistics, and literary studies, but, I contend, its full resolution awaits a reconceptualization of the meaning of narrative for machines that extends—even as it goes beyond—existing thought in the humanities and natural and social sciences.

Textmining the History of AI

Graph of AI documents mentioning humanities keywords per yearAs part of my research into the intersection of technical and human concepts, I am using textmining techniques to explore the transformation of fuzzy human concepts into precise technical formalisms, and what these formalisms include and occlude, in the AI literature. Using thousands of conference papers and journal articles from the Association for Computational Linguistics, I am tracing how concepts such as emotion, metaphor, argument, and style enter into technical conversations in AI, and how they evolve in the process.

Probabilistic Logic Programming in MiniKanren

Along with others, I have been working on extending the miniKanren logic programming language with probabilistic operators. This will allow an extension of miniKanren's program synthesis functionality to handle problems in natural language processing. Applications include language engines for video game NPCs that mix classical planning with statistical language processing.