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.”
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.
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.
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.