Accessing adjective words as strings

In Inform, when verbs and nouns are defined in the source text, their names are parsed, inflected and made available in the source text (obviously), and also put in the run-time dictionary so they can be recognized in commands and in adaptive text.

Adjectives, however, seem to be parsed, inflected and made available only for use in the source text. Recognizing them in commands doesn’t make much sense, but they also can’t be used in adaptive text. For English that’s not a big problem, since adjectives aren’t inflected, but for other languages it’d be interesting to be able to access the adjectives’ inflections - and the Preform layer already does the heavy lifting of actually inflecting the adjectives, they’d just need to be added to the dictionary.

Am I right that adjectives aren’t accessible in the run-time/dictionary? If I am, is it feasible at all to add them somehow? (Of course I realize that would probably require hacking lower layers of the Inform stack.)

1 Like

Adjectives comes from

  • either/or properties [ A thing can be broken or unbroken ]
  • anonymous enumerated kind of value properties [ Size is a kind of value. Sizes are small, medium, large. A thing has a size. ]
  • “conditions” [ A thing can be mild, spicy, or fuego, whether or not one further continues (this is its spiciness property) ]
  • definitions

For the first three, one can automatically add the adjectives to the dictionary with:

  • understand the broken property as describing a thing.
  • understand the size property as describing a thing.
  • understand the spiciness property as describing a thing. or understand the thing condition property as describing a thing if you didn’t name it (and it’s the first such automatically named condition; the second would be thing condition 2, etc.)

With describing they’re first-class names for the corresponding things. But one can use referring to instead of describing and then the parser treats them more like adjectives: the property value alone cannot identify the thing, but they may be used in combination with other names.

So far as I know, with adectives from definitions you’re on your own.

I haven’t a clue how Inform in translation behaves with inflected adjectives.

1 Like

I don’t know if things has changed sincee Inform 10, but you can also create adaptive adjectives without meaning with:

In French ouvert is an adjective.

(And of course you need to have included the necessary Preform for the inflections.)

And then use [ouvert] to print the adjective agreeing with the prior named object.

I think you were supposed to be able to add meaning (property), analogous to verbs meaning relations, but it didn’t work in 6L38/6M62. Which was an issue because creating a property ouvert if the same meaningless adjective existed was a compile error, if I recall correctly.

But I’m not sure I’m understanding the original question.

That’s very useful, thanks, and it covers the first part of my question about the parser understanding the adjectives. But does it also go the other way, ie. can I use the adjective names in say phrases even though they’re in the dictionary? In the examples in §17.15 in the book, the adjective names are hardcoded. For example, in the “Terracotta” example, the printed name is changed to the hardcoded string “broken pot”, whereas I’d want to set it to something like “[broken] pot”. Or in “Hymenaeus”, it uses Before printing the name of a lit torch, say "flaming ".

Reading the “Peers” example, it seems some value properties are available to say as [title of the noun], but either/or properties are values that aren’t sayable, according to Inform. Basically, want I want to achieve is for them (and all kinds of adjectives) to be sayable, so they can be inflected properly.

Edit: It seems general properties can’t be represented in Inter in 10.1, but it is at least recognized in 10.2:

To say a/the/-- (A - a property) of (O - an object):
        say "foo".
You wrote 'say the property broken of N' (source text, line 18): but
    this refers to an either-or property with a negative that I can't unravel',
    which normally never happens. (Are you using 'change' instead of 'now'?

I might be missing some negation tries in my Preform grammar though.

You understood it perfectly! What you’re doing there is exactly what I want to do. However, your example gives this:

  >--> In the line 'say "[lukket]"' (source text, line 1009), I was expecting
    that 'lukket' would be something to 'say', but it didn't look like any form
    of 'say' that I know. So I tried to read 'lukket' as a value of some kind
    (because it's legal to say values), but couldn't make sense of it that way
    either. Sometimes this happens because punctuation has gone wrong - for
    instance, if you've omitted a semicolon or full stop at the end of the
    'say' phrase.

Which is partly why I thought it wasn’t possible. But I might be doing something wrong, or it’s another bug.