Gender bug?

[code]The Zoo is a room.

The tortoise is a neuter animal in the Zoo.

Instead of examining the tortoise:
If the noun is male, say "He ";
If the noun is female, say "She ";
if the noun is neuter, say "It ";
say “is a wonderful shade of green.”

test me with “x tortoise”[/code]

It appears that an animal that is declared neuter is both male and neuter. Is this a bug?

It’s a straightforward consequence of 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.

An animal is a kind of person.

The same thing happens if you declare a “male person”, but not with a “man” (which is a subkind declared to be non-neuter.)

Whether it’s a bug is Graham’s decision. The library is set up so that neuter overrides the other two declarations – your tortoise can only be referred to using the “it” pronoun, not “he”. With the rules the way they are, you must do the same:

if the noun is neuter: 
  say "It ";
  if the noun is male, say "He ";
  If the noun is female, say "She ";

Maybe that’s an unreasonable requirement, but redesigning this bit would mean switching from two binary properties to one three-value property. That might have nasty consequences for existing code; I haven’t worked it through.

Maybe I’m being unusually dense today, but it looks to me as if capmikee’s example code contradicts you. The library seems to be set up so that neuterness does not override maleness. If neuter overrode male, an object declared as neuter would not continue to be male.

Whether it’s a bug depends on whether we assume that Inform is attempting to model the real world, or is off in some little universe of its own. If Inform is attempting to model the real world, then I would have to conclude that it’s a bug. In the real world, a being cannot be both male and neuter. If Inform is off in a little world of its own, then why are male and female mutually exclusive? Why can’t we have an object that’s both male and female, eh?

In some other language than English, I suppose the word we would translate into English as “eunuch” might be a male noun. In that case, a neuter object could be referred to using a male pronoun. Other than that, I can’t see any justification for this choice of library design. The question of whether fixing it would break existing code … my impression is that new releases of Inform tend to break existing game code on a fairly regular basis. If you’re referring to existing library code, then, well, yeah, fixing the bug could be a big job. And quite likely not a high priority. But saying, “It’s not a high priority,” is a little different than saying, “It’s not a bug unless Graham says it’s a bug.”

Them’s mah 2 cents, anyhow.


You’re not being unusually dense.

What I meant was: the library is set up with the presumption that if the “neuter” flag is set, the object should be treated as neuter, and the “male/female” flag should be ignored.

Physically, no. Linguistically, yes. And IF deals with the linguistic properties of things, not the physical properties. A turtle is a perfect example here. If you don’t know or care whether the turtle is male or female, you’d probably use the neuter pronoun. But if you know it’s male, you might use the male pronoun instead. A work of IF should therefore be able to accept either pronoun in cases like these.

That said, zarf is right. You can make the turtle both male and neuter, but you can still only use one of the pronouns (“it”) to refer to it. I don’t understand why I7 has implemented it this way.

…and there’s a reassurance that has a less complimentary secondary meaning.

Thanks, I think.

I think I get it now, though. Maybe what you’re saying is that the library itself will never refer to a male object as male, if the object is also neuter. However, the author’s code can still discover (and either make use of or trip over, as here) the fact that a neuter object is also male.

If that’s the case, then I would have to agree that the question of whether or not this is a bug is a bit of a gray area.

Ahh. I’m feeling less dense already!


This week I was reading a novel in which one of the characters was a college professor of post-modern literary criticism. Something about semiotics, a word I would have to look up If I were planning to use it in a sentence. Your statement reminds me a little of that approach to discourse – the idea that things have no inherent properties, that they exist only as objects of discourse.

Was it Samuel Johnson who kicked a rock and said, “I refute it thus!”?

At the risk of starting a philosophical food fight, I would suggest that, on the contrary, IF very often deals with the physical properties of things. Their visibility, for instance. Their location vis-a-vis other things. Stuff like that.


There might be situations where you wanted to know the gender (say, if you were modeling the population of a turtle colony) but you still wanted to use “it” in the dialogue. Anyway, you can just say:

Instead of examining the tortoise: say "[if neuter]It[otherwise if male]He[otherwise if female]She[end if] is a wonderful shade of green."

That way it says “it” by default. If you want to say “he/she” by default, you can move the “it” to the end.

Or you could use the Plurality extension.

Maybe it’s for purposes of understanding?

Oh well, it was a nice idea.

But only insofar as those things need to be described. If they don’t need to be described, IF is completely unconcerned with the physical properties of things, but it is always concerned with the linguistic properties regardless of other factors. So while I see your point, that physical properties are definitely involved, I would agree with the view that they are only there because IF is so concerned with describing stuff fluently and takes only what it needs to meet that goal.

But then, I was pretty deep into semiotics in school so this kind of thinking comes natural-like. 8)

I notice that things like lighting placement and object locations are not implemented in any way resembling reality, for instance. They are regularised to the point of unrecognisability, data-structure-wise – but the regularised structure happens to be what language requires to economically (with few words) evoke a setting in the human mind, and ventures no further than that.

So… man is the measure of all things? Yeah, this is getting philosophical.