Custom Pronouns Break the World

Hi,

As part of my experiments for another topic about pronouns, I’m implementing a custom set. I wrote an extension (attached below) which adds to The Standard Rules and English Language libraries. It makes the word “person” generic, thus assigning the custom set to any character without a specified gender, or specifically to characters that have the “non-binary” property.

Through conditionals regarding saying in the third person singular, e.g.
if the player is non-binary:
say “ey”;…

It teaches Inform to use a variant of the Spivak pronoun (1975) for non-binary and gender-ambiguous characters. Instead of doing this, it applies the pronouns to everyone, and appends male ones to every message that uses them, regardless of the gender of the character. Some sample code, and then the results:

"Somewhere Between" by Rainmaze.

The story headline is "an interactive test".

Include Non-Binary Genders by Rainmaze.

When play begins:
	now the story viewpoint is third person singular.

To suppose is a verb. To know is a verb. To appropriate is a verb.

The Grammar Lab is a room. "The seat of all power when it comes to adapting the English language to meet the needs of the modern-day speaker."

Clover is an enby in the grammar lab. Julia is a woman in the Grammar Lab.

A page is a thing in the lab. "A sheet of paper has been discarded on the floor." It has printed name "sheet of paper". Understand "sheet" or "paper" or "essay" as the page.

After taking the page:
	say "[We] [appropriate] [the noun] for [ourselves]. Turning it over [we] [see] it is a page from Orwells 1948 essay on Newspeak. It would seem that someone here is a joker."

Instead of asking someone about something:
	say "[We] [don't] [suppose] [regarding the noun][they] [know] what to tell [us] about [the topic understood], because [their] response [are] a puzzled silence."

Test me with "get sheet / x sheet / ask Julia about errors / ask Clover about the essay"

And here’s what happens:

Somewhere Between
an interactive test by Rainmaze
Release 1 / Serial number 200415 / Inform 7 build 6M62 (I6/v6.33 lib 6/12N) SD

Grammar Lab
The seat of all power when it comes to adapting the English language to meet the needs of the modern-day speaker.

A sheet of paper has been discarded on the floor.

HeEy can also see Clover and Julia here.

test me
(Testing.)

[1]> get sheet
HeEy appropriates the sheet of paper for himselfemself. Turning it over heey sees it is a page from Orwells 1948 essay on Newspeak. It would seem that someone here is a joker.

[2]> x sheet
HeEy sees nothing special about the sheet of paper.

[3]> ask julia about errors
HeEy doesn’t supposes ey knows what to tell himem about errors, because hiseir response is a puzzled silence.

[4]> ask clover about the essay
HeEy doesn’t supposes he knows what to tell himem about the essay, because hiseir response is a puzzled silence.

Something here has gone horribly wrong, and I’m struggling to work out what. I understand that male and female are I6 properties, but are they so solidly set as to ignore present conditions and default everyone to male? It doesn’t seem to happen to objects, e.g.
“>eat paper
That’s plainly inedible.”, but the binary is so strictly enforced otherwise, it breaks everything else.

Anyone know what else I need to adapt, or if this inflexibility is the rule?

Kia ora.

Non-binary Genders.i7x (12.8 KB)

1 Like

I think the issue here is that male/female is set as a separate property from neuter/non-neuter. This is the code from the Standard Rules:

A person can be female or male. A person is usually male.
A person can be neuter. A person is usually not neuter.

So a person will always be male or female in the code, and may or may not be neuter on top of that. Then I think that the standard male/female stuff in the I6 is overridden for neuter persons (but I haven’t looked at the I6 so I’m not sure here).

So your enbies will generally be set to male and non-neuter as well as enby. If you do “showme Clover” you get this:

>showme clover
Clover - enby
location: in the Grammar Lab
singular-named, proper-named; unlit, inedible, portable; male, non-binary
list grouping key: none
printed name: “Clover”
printed plural name: “enbies”
indefinite article: none
description: none
initial appearance: none
carrying capacity: 10

Then in a rule like this from your extension:

To say we:
	now the prior named object is the player;
	if the story viewpoint is first person singular:
		say "I";
	if the story viewpoint is second person singular:
		say "you";
	if the story viewpoint is third person singular:
		if the player is male:
			say "he";
		if the player is non-binary:
			say "ey";
		otherwise:
			say "she";
	if the story viewpoint is first person plural:
		say "we";
	if the story viewpoint is second person plural:
		say "you";
	if the story viewpoint is third person plural:
		say "they".

The “if the player is male” and “if the player is non-binary” conditions are both firing, so you get “he” and “ey” right after each other.

One way to patch this up would be to switch the order around in those clauses like this:

		if the player is non-binary:
			say "ey";
		otherwise if the player is male:
			say "he";
		otherwise:
			say "she";

This first checks if the player is enby; then since the second clause is an “otherwise,” it doesn’t check it if the first test succeeded–so people who are enby and (internally) male will only get the enby pronoun printed.

Now, this is something that will only work for printing the pronouns. I’m not sure what the effect of the enbies being male/female in the internals will have on using pronouns to refer to them. That seems like it might be a harder problem that would really require diving into the I6.

2 Likes

Also the reason you get “ey” for Julia is that your code says

A person is usually non-binary.

Since a woman is a kind of person, this means that women will be non-binary by default, so Julia is defined as non-binary.

Then when you get to the code for printing Julia’s pronoun, since Julia is non-binary and female, this code:

	otherwise if the item is a male person and item is not neuter:
		say "he";
	otherwise if the item is a non-binary person and item is not neuter:
		say "ey";
	otherwise if the item is a female person and item is not neuter:

checks the first clause, which fails; then checks the second clause, which succeeds; then since the third clause is an “otherwise if,” it doesn’t check it.

You could take care of this by adding

A woman is usually not non-binary. A man is usually not non-binary.

if you want to.

2 Likes

I know the reasons for the current male/female separate from neuter/not-neuter split lie in I6 (where binary attributes are handled differently, and more easily, than enumerated ones), but would anything break horribly if this were handled differently?

Grammatical gender is a kind of value.
The grammatical genders are masculine, feminine, common, and neuter.
Everything has a grammatical gender. A thing is usually neuter. A person is usually common.

(Using grammatical terms here because that’s where this matters most, for Inform.)

The main reason I could see for wanting an object to be both masculine and neuter would be for, say, a male animal (which could be either “he” or “it” in English). But for things like that you’d want more fine-grained control over which form is printed—I’d think a ship should print as “it” but be recognized as “she”, while a female cat should print as “she” but be recognized as “it”. So a different solution might be needed there.

2 Likes

These responses are very helpful and have started some ideas. Thanks, @matt_weiner for pointing out my oversights, I was pretty eager to make it work and didn’t quite look at when (and which) operations were taking place. Lol.

And thanks to @Draconis for your input, and for tidying up the terminology! Slightly embarrassing, being a linguist and all, but I’ve made a lot of valuable mistakes today I think. :slight_smile:

I agree that I’ll have to dig around in the I6, but it’s a relief to be heading on the path that leads away from those Frankenstein’s pronouns.

(Nothing to be embarrassed about! Inform by default uses the sociological terms instead of the grammatical ones, and there’s nothing wrong with those; I just find it easier to stick with grammatical.)

2 Likes

I have nothing helpful to add. I just wanted to say… awesome topic title. I’d like to see it on the front of the Sydney Morning Herald one day.

-Wade

3 Likes

Any updates on if anyone’s implemented this? We don’t know where to look, and Gender Options by Nathanael Nerode doesn’t quite do it for us. We just want to be able to reliably use a singular they for characters, preferably by default.

I haven’t used it yet, but Non-binary Gender by Sadie de Might looks very promising.

where can we find that? it’s not on the extensions github

Here:

1 Like

Thanks for the link! I was having trouble finding that.

That is indeed the one. Again, never used it so I can’t speak to that, but everything I’ve seen of it looks good. It’s extremely thorough and probably overkill for your use case (just wanting some people to be “they”), but that also means it’s robust to edge cases you might never have thought of.

2 Likes