Names of things that use 'and'

Hi! I’ve tried just searching for the answer to this, but searching has been difficult because my query either involves the word “and” or is too generic to get any good results…

My question: How can I name a thing that has the word ‘and’ and the name? Inform seems to get confused, thinking I’m speaking in both the singular and plural at the same time.

For example, I want to make a bookshelf called the ‘math and science bookshelf.’

If I say:

The math and science bookshelf is a thing.

The math and science bookshelf is in the living room. The description of the math and science bookshelf is “xyz.”

I get:

This is the report produced by Inform 7 (build 6E72) on its most recent run through: 

In Chapter - A, Section - Bookshelves: 

Problem. You wrote 'The description of the math and science bookshelf is "xyz."'  : but this seems to say that a thing is a value, like saying 'the chair is 10'. 

Use “printed name”, like so:

The first bookshelf is a thing.  The first bookshelf has the printed name "math and science bookshelf."

Thanks much.

You’d be surprised at how hard that is to find if you aren’t that familiar with the language, i.e., if you don’t know what to search for (again, because of the ‘and’).

No. No, I would not be surprised. Half my posts here are looking for things like that.

I have a question about the printed name of something. Is there a quick and easy way to make the printed name of something be Understood just as if you’d made it the real name?

For example:

The little blue man is a man.
little-blue-man is a man. He is privately-named. The printed name of little-blue-man is "little blue man".

In the second case, neither “little” nor “blue” nor even “man” works to refer to the man. (“Him” works, though.) Wouldn’t it be nice to say something like “Understand the printed name of a thing as the public name of it”?

Short of that, is there documentation somewhere of exactly how a name is Understood, so one could duplicate it manually?

Just Understand "little" or "blue" or "man" as the little-blue-man.

Well, yeah. Inform works that way by default. Don’t use “privately-named”.

No, I see the point. Sometimes – in fact, often – I want to have a source-code name for an object which is unique. But then I set the printed and understood name to something else, for human consumption.

The little-blue-man is a man. 
The printed name of the little-blue-man is "little blue man".
Understand "little", "blue", "man" as the little-blue-man.

I agree there’s no reason to use “privately-named” here, but that doesn’t help me avoid the mild redundancy.

It would be nice to have a shortcut for this case. But I can’t think of one offhand which isn’t confusing. Besides, what my code actually winds up looking like is

The little-blue-man is a man. 
The printed name of the little-blue-man is "little blue man".
Understand "little", "small", "short", "blue", "blue-skinned", "skinned", "man", "person", "figure" as the little-blue-man.

So the effort of having to re-specify the three “original” words is lost in the shuffle, really.

Exactly like that, by default. Each word in the object’s name is understood as the object. The parser handles articles and determiners (“a”, “the”, “all”) but that’s all.

Well, there are special cases:

The printed name of the ever-changing-man is "[size of the ever-changing-man] [color of the ever-changing-man] man". The printed name of the ever-changing-man is "[if the ever-changing-man is holding the magic wand]big[otherwise]little[end if] blue man". The printed name of the ever-changing-man is "[one of]little[or]big[or]medium-sized[at random] blue man". [and so on]
The first two can be handled easily by understanding properties (Understand the size property as describing the ever-changing-man) and conditional understanding (Understand “big” as the ever-changing-man when the ever-changing man is holding the magic wand). The last one is too random to restrict the grammar to what was printed last (although in that case it might be best to understand all possibilities at all times anyhow).

I tried my example without “privately-named” too. But even the complete phrase “little blue man” doesn’t match.

I didn’t realize you could use a plain comma instead of “and” to join understanding tokens, though. That makes a difference. It was having ‘“little” and “blue” and “man” and…’ that was really bugging me. Way too verbose.

Regarding your example, though - What’s the difference between “and,” “or,” slash, and comma? I thought “or” and slash (within quotes) only allowed one of the tokens listed to match. That does not seem to be the case here, so I’m confused.

Maybe a stupid question, but did you name the object little-blue-man or little blue man? If the former, it will match only “little-blue-man” because that’s what it’s called.

Understand "little" or "blue" or "man" as the little-blue-man.
Understand "little" and "blue" and "man" as the little-blue-man.
Understand "little", "blue", "man" as the little-blue-man.

These all do exactly the same thing.

Understand "little/blue/man" as the little-blue-man.

This only accepts one of the words. You could type “x little” or “x blue” or “x man”, but not “x little blue man”.

I think I misunderstood Ron - I thought he was saying that the default was to understand the printed name of something as the thing.

Yes, I used little-blue-man. I didn’t expect “little blue man” to work, but I had to check.

That used to be the case, but in the latest build the slash is an inclusive or: And if you ask me they’ve fixed something that wasn’t broken.

That’s what I thought, but this works:

[code]The Moon is a room.

The little-blue-man is a man in the moon. The printed name of the little-blue-man is “little blue man”.

Understand “little/blue/man” as the little-blue-man.

test me with “x little blue man”[/code]

It’s also contradicted by this page:

(spoilered for reasons of space)

Was this perhaps changed in the new build, in response to these bugs? In the discussion for the second, there’s some back-and-forthing about whether the slash is supposed to be an exclusive or, and it seems to me from Graham’s last comment that he decided to make it inclusive as part of the bugfix.

Sorry about that. I hadn’t downloaded the new build when I posted my previous response, so I gave wrong information.