Anyway, following on from a Twitter conversation, I'm wondering how it would work to make a writing program which could track the genders of a number of characters and then arbitrarily shuffle them. What I'm picturing is, simplified, something like this:
• At the top of the document are a number of fields which ask for a character name (or a list of character references, such as name and nickname and other variations) and pairs the name with a gender (and its associated set of pronouns).
• Each character you add is arbitrarily assigned a color (or icon or other distinguishing visual marker).
• As you type, a parser will keep track of which name (or referent) has been typed last for each of the original genders. When you type a pronoun, it will look at the last character reference matching that pronoun's set, and highlight the pronoun (or assign it the correct icon) to associate it with the specific character. It'll also have some kind of (mouseover?) menu to allow users to correct its assumption about which character it refers to.
• When you finish writing, each pronoun will be associated with a character. So you can hit a shuffle button, and then the characters' genders will be shuffled, and each pronoun can be brought back into compliance with the character's gender.
Needless to say, this would fail in a lot of situations. Take, for example:
• Dialogue. "He's not coming today," he said. (I mean, I guess I could set up a sub-parser which kept track of the last character reference inside a set of quotes?)
• Ambiguiety. We'll just call this the Randall Munroe exploit. I guess people would just have to make close, personal friends with the drop-down menus?
• Gay porn. I am reliably informed by people who have tried to write gay porn that pronouns are a nightmare anyway. And humans are better at parsing language than computers are.
• Unexpected cases. Language is complicated, yo!
I feel like there should be a way to handle this, and that it probably involves algorithms. I'm a bit worried that trying to write a general-purpose pronoun shuffler would actually require re-inventing Google Translate. Any computational linguists out there who want to point out things I'm missing?