Ideal Language for Playing Interactive Fiction

Upplås rödnyckelkistan? :wink:

To any non-Swedes who might be wondering: Although that sentence would probably be understood by most people, neither of those words are real words. A serious translation would read “Lås upp kistan med den röda nyckeln.”

Yes, I jest. However, “them Gällivare-bor be crazy, yo”. I wouldn’t claim that they would not phrase it like that.

Yes. I got carried away and oversimplified English grammar. Shame on me. :slight_smile:

I agree that English is an ideal language for IF (an ideal, not the ideal) - there are other languages allowing similar simple, straightforward syntax in commands. But in English, you have the n,s,e,w convention, familiar from maps, and also other directional commands can be abbreviated with one (or two) letters without ambiguity, as was pointed out before.

Playing a game written in an agglutinative language is simple enough, but programming it is a nightmare. Take e.g. Finnish, where different verbs require different cases for the object:

ota kirja ( take the book )
but
tutki kirjaa (examine the book)
or
kerro kirjasta bobille (tell bob about the book)

Of course, the different cases could be defined as synonyms and the player would use the right form intuitively. But how about:

kerro bobille jimistä (tell bob about jim)
kerro bobista jimille (tell jim about bob)

Allowing the various forms as synonyms wouldn’t be enough, because the interpreter wouldn’t be able to tell which meaning is intended.

And there are cases when the different case changes the meaning:

lue kirja (read the (whole) book (through))
lue kirjaa (read (some of) the book)

and various others, where this difference would have to be taken into account by the programmer.

The above of course applies to other agglutinative languages, as well…

How many declensions does Finnish have?

15… not all of them would be needed in standard IF commands, but a good many anyway.

I think there’s two separate questions here; what language would be ideal if you’re using Inform or something like it, and what language would be ideal if you were programming a system from scratch.

Inform was designed for English and with English word order in mind, as well as English’s lack of declension. But if we were designing a system from scratch then maybe a language with flexible word order that marks syntactic roles by cases or articles would be easier to accommodate. So instead of defining “bobille” and “bobista” as synonyms, the way Inform would have you do it, an IF system built for Finnish might force the programmer to specify “bobille” and “bobista” as different cases for Bob, and then use the cases to determine which noun had which role in “kerro bobille jimistä.” Or in German maybe the system would require the article in the input and use “dem” and “das” to figure out which is in which case.

This is leaving aside several issues, such as that players like to drop articles, and the aspectual difference between lue kirja and lue kirjaa which I wouldn’t want to touch with a ten-foot pole.

-> Matt, yes, I agree that a system developed from scratch might sometimes be better, to accommodate for languages having a very different structure from that of English. Or maybe an extension of some kind could do the trick; that would probably have to be language-specific though.

I will prefer Lojban

Lojban is nice, but you would need a really good parser to pick up on the nuances of the player’s command and react appropriately.

Wouldn’t it be easier to parse Lojban than English?

Hello everyone!

I’m a new member here and was very interested to be a part of this discussion.
I agree that Esperanto should be widely used in IF and here are my considerations:

  • It’s much simpler to learn than any national language, including English, or other created languages, like lojban. You can learn enough for communicating with others in two weeks, become and advanced user in one month after that, and completely absolutely fluent in one year. Some take a little bit more time, some take much less. It all depends on your focus, study time and native language (some are closer, some are not, but it is still easier than English to anyone).
  • It is incredibly precise and allows you to avoid all kind of ambiguity, unless you want to be ambiguous (which is a nice tool to have for writing)
  • It is very easy to be translated into or from, allowing people to translate your text or IF into their own language if they want to, and allowing you to easily translate your own fiction into it without needing someone from abroad for it to be reliable. Esperanto is actually a perfect language for translation, more than any other.
  • It allows for a true worldwide community to enjoy on what you’ve done. The IF community is a tight niche already, so no one here could say that there aren’t enough Esperanto speakers (calculated between 500,000 and 2 million). Some like to argue that it is “Eurocentric” due to the fact that its creator used the languages he knew most (Romance, Germanic and Slavic languages), but it is an irrelevant fact. Those who must judge that are the ones who speak other languages, and Esperanto has been very successful and popular in countries such as Korean, Japan, China (where the first Esperanto radio station was created decades ago), Taiwan, Vietnam, Iran an many African countries). If you made a language with roots from all of them (like lojban tried) it becomes harder for everyone, even those who speak the languages “left aside” by Esperanto. The idea of an international language is being actually useful and working for it’s purpose. Esperanto is the only constructed language which achieved “living language” status and has over 130 years of culture, original literature, cinema, music, etc, in a truly international culture environment.
  • The fact that Esperanto speakers love new things, love supporting Esperanto and meeting new people, it’s likely that many many speakers would join in playing IF and writing it.
  • Nothing would forbid anyone, obviously, of writing in other languages, including English. The idea is that you should write in your native language, were you are truly comfortable (so many good games have been ruined by poor writing skills), or in a truly international language, where you CAN (and will) become fluent to the point of writing like a “true native”, even without having been born speaking it. There are native speakers of Esperanto (even second and third generation ones), but any one who learns it is able to reach absolutely the same level of mastery and comfort as them.
  • Learning Esperanto also boosts you language learning skills more than any other could, improving your knowledge in your own language, as well as future languages to be learned. This has been scientifically proven twice and it’s called “the propaedeutic effect of Esperanto”. If you learn it to fluency before learning the “language you want”, you will become fluent in the second language faster than if you had studied it directly, counting the time “lost” studying Esperanto. It is that powerful.

I myself as a speaker and teacher of Esperanto can assure by my own experience that all points above are absolutely true and that there are many other qualities to it.

Now the issues for IF:
We would need a good engine (parser?, still have to catch up with the terminology) to accept Esperanto as it SHOULD be. You see, Esperanto uses some special characters (ĉ, ĵ, ĝ, ĥ, ŝ, ŭ), so it would need to accept unicode I think. There IS one Esperanto engine for IF (I can post the link if you want), however it uses the “X-method”. The X-method is when you write an X after the letter to imply it is the special version (SX = Ŝ). This is OK if you use an Esperanto keyboard system which changes the letters for you, or if you somehow include this in the engine so that the player doesn’t need the keyboard installed to write properly. The text should be written in “proper” Esperanto, with all proper characters (texts with X’s all over make your eyes bleed), but it should accept both proper, X-system and H-system (same thing, but with an H) for player input. Is that a problem? I would be glad to help with translations of verbs and whatnot, but programming is not my strong suit.

Also, there is the fact that Esperanto uses the accusative case. That is, the word gets an extra “N” in the end when it is the direct object of a verb, but you can also add it to adverbs to use it as direction and use pure adverbs as location. Some examples

  • English: Apple / Esperanto: Pomo (nouns end in O)
  • English: Get apple / Esperanto: Preni pomon
  • English: Home / Esperanto: Hejmo (the ‘j’ has the sound of a ‘y’)
  • English: I am at home / Esperanto: Mi estas hejme (adverbs end in E) or “Mi estas en mia hejmo” (I am in my home)
  • English: I am going home / Esperanto: Mi iras hejmen (accusative with adverb to show motion towards something) or “mi iras al mia hejmo” (I go/am going to my home)

So it would be nice if the engine/parser could accept all those forms, so that the player can write as he sees fit. Also because, as you can see, using accusatives and adverbs can make the sentence much shorter and practical. You could use that for “Go North”, etc.
The accusative can be a bit trickier, though. Since the accusative signals the direct object, one could place the direct object in any part of the sentence and it would carry the same meaning, like:

  • La kato ĉasas la muson (the cat chases the mouse)
  • La muson ĉasas la kato (the cat chases the mouse, same sentence)
  • La katon ĉasas la muso (the MOUSE chases the cat)
  • La muso ĉasas la katon (the mouse chases the cat, same as above)

How complicated is to make the parser/engine recognize those patterns?

I look forward to your opinion in all this. Sorry for the wall of text!

:laughing:

There are translations of Inform 7 into French, German, Italian, Spanish, and Swedish, all available as extensions here: inform7.com/extensions/translations/

I haven’t spent much time studying the translation systems (my second-strongest language is American Sign Language, which doesn’t lend itself particularly well to interactive fiction!) but perhaps one of them can serve as the basis for an Esperanto extension.

So I could use them as templates for adding an Esperanto version? Do you have some idea of the difficulty of that? I mean, considering that I still have to write some IF of my own and have no programming experience, would you suggest me to try even then?

The latest release of Inform 7 (6L02, from May 2014) says that one of the update’s goals was “to have much greater linguistic flexibility, enabling stories to be written in any person and tense, and paving the way for translation to non-English languages”.

It looks like all of the extensions were released before 6L02, so maybe they won’t be as helpful as I hoped. Hmm.

From the 6L02 changelog:


5 (e). Non-English Inform

Intensive work has gone into making both the adaptive text system and
Inform’s syntax analyser flexible enough to work in languages other than
English. For example, an experimental stab at French Inform has adaptive
pronouns such as “[celui]”, “[il]”, “[le]”, “[lui]”, “[son]” and “[le
sien]”; it supports tenses not existing in English, such as the past
historic; and it can conjugate the whole gamut of French verbs, which are
very much harder than English ones. For example, once the experimental
French Inform extension is included, the sentence:

In French craindre is a verb.

will automatically create a text substitution “[craignis]” which can
come out in about 100 different forms: “a crainte” (a female person has
been feared), “craignirent” (third-person plural past historic active),
and so on.

Inform’s adaptive linguistics are specified by programming the new Inform
syntax analysis layer using a grammar called Preform. French, for example,
takes about 2200 lines of Preform grammar just to handle verbs properly.
Preform is not documented in the main Inform manual, and it remains
experimental, but see the newly published syntax specification.

Internationalising Inform 7 remains a long-term goal, but these are major
steps towards it. The scheme is that a translator creates an extension called,
say, French Language, and that this contains some material similar to that
in I6’s “language definition files” together with Preform grammar, translations
of responses in the Standard Rules, creations of unusual tenses, and so on.
The draft “French Language” extension, which is still incomplete in that it
doesn’t translate the Responses, is published alongside this build for the
benefit of anybody interested.


So… not to be depressing, but I’m going to guess “hard”.

Still might be worthwhile, though - you’ve made a good case for it. It might be worth asking around in either “Looking for Collaborators” or “Inform 6/7” to see if you can find an experienced I7 coder who wants to help you tackle this project.

Yes I’d surely need some help.
It would be much better if someone who is really experienced could do the programming part while I could help with the language parte itself. The ideia is to create a truly complete and funcional engine for Esperanto, so that everyone else can use without seeing that a lot is missing or something was done completely wrong, so it should be done properly right from the start.

Thanks for looking into it! :slight_smile:

I’ll leave this here for a while to see other people opinions and so one, then if needed, or when I actually decide to tackle this (if no one offers help before) I’ll ask over there.

I think it deserves at least one good attempt before arriving at such a conclusion!

I’ll leave that to the Kinect programmers.

Or these folks.

Hmmmmm:

(Text ripped from Table I)

Microcomp idea: A parser game that can be played with input drawn exclusively from that list. (And individual letters to give you “x,” “l,” and “i,” I guess.) Bonus points if you can convince the research team to implement an interface with your IF program of choice. Triple bonus points if you implement the output in videos of ASL too.

(I would suggest implementing “want” and “dontwant” as synonyms for “get” and “drop.”)