IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Adjektivendung mit [^] im Objektnamen.
AntwortenNeues ThemaNeue Umfrage

Adjektivendung mit [^] im Objektnamen.

Geschrieben um 23:35 am 21.02.2010 | Zitat | Editieren | Löschen
Strainer
Mitglied
Bachelor Gumby
Beiträge: 48

Im Zuge meines ersten IF-Projektes bin ich auf ein weiteres Problem gestoßen:

Erstmal mein Beispielcode:



The PlayerAuto is a neuter vehicle in the Vor dem Jarden.

The printed name of the PlayerAuto is "[one of]silbern[^][or]blau[^][or]rot[^][or]schwarz[^][sticky random] Auto".

The special indefinite article of the PlayerAuto is YOURS.

Understand "Auto" as the PlayerAuto.

The description of the PlayerAuto is "Was würdest du nur ohne dein [PlayerAuto] tun? Wahrscheinlich wieder Radfahren..."

The initial appearance of the PlayerAuto is "Dein [PlayerAuto] strahlt im dumpfen Licht des [Fenster]s."```

Das Problem hiermit ist folgendes:

Wenn ich dem Objekt keine initial apperance hinzufüge, wird es richtig als "schwarzes Auto" beschrieben, ebenso ist es in der Beschreibung richtig.

In der initial appearance fehlt die Endung allerdings und es wird als "schwarz Auto" ausgegeben.

Auch wenn ich das Objekt in der Einleitung verwende, also z.B.

```When play begins:

say "[paragraph break][bold type]Einleitung:[roman type][line break]Gerade bist du aus deinem [PlayerAuto] ausgestiegen und stehst nun auf dem Parkplatz vor dem Krankenhaus.[paragraph break]".```

Auch hier wird nur "schwarz Auto" geschrieben. Gibt es eine Möglichkeit dieses Problem anders zu lösen?

MfG
Geschrieben um 01:02 am 22.02.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Tja, I7 auf Deutsch ist leider nicht immer so intuitiv zu benutzen. Wenn Du per "[PlayerAuto]" den Objektnamen ohne Artikel ausgibst, wird die [^]-Endung nicht gesetzt (und auch keine andere), weil dem Programm der Kasus nicht bekannt ist, in dem die Endung stehen soll.

Du hast ja durch

blue

dafür gesorgt, dass bei der Ausgabe mit unbestimmtem Artikel "dein" geschrieben wird. Deshalb gibt

blue

auch alles korrekt aus -- denn jetzt ist der Fall, der Nominativ, bekannt und der unbestimmte Artikel "Ein" ist jetzt "Dein":

Mein Testspiel:

Labor

Dein rotes Auto strahlt im dumpfen Licht des Fensters.

Eine andere Möglichkeit ist, die GerX-Textersetzung "[Objekt with <case>]" zu verwenden, die für genau einen solchen Fall, wie Du ihn beschrieben hast, vorgesehen ist.

blue

Bei deinem Beispiel wird 'PlayerAuto' übrigens mit ins Vokabular übernommen. (Es sei denn, du hast es privately-named gemacht.)

Mein Testspiel:

u playerauto

Was würdest du nur ohne dein rotes Auto tun? Wahrscheinlich wieder Radfahren...

Grüße,

Christian

Geschrieben um 04:37 am 22.02.2010 | Zitat | Editieren | Löschen
Strainer
Mitglied
Bachelor Gumby
Beiträge: 48

Danke Christian,

Die Ersetzung mit [Ein PlayerAuto] funktioniert soweit, nur leider geht dadurch die ebenfalls von mir benutzte Keyword-Färbung von Keyword Interface verloren.

Die Ersetzung [PlayerAuto with nominative] funktioniert bei mir seltsamerweise nicht. Ich benutze die letzte Version von Gerx (mit PENDING special indefinite article) und die neueste Version des von dir kompilierten Compilers.

Folgende Fehlermeldung wird ausgegeben:

Ich habe es auch in einem Projekt nur mit der German Extension und allen anderen deaktiviert versucht, selbes Ergebnis.

Ein weiteres Problem:



The printed name of the Eingangstuer is "Eingangstür". The Eingangstuer is privately-named.

The description of the Eingangstuer is "Eine simple, blaue Holztür." Understand "Eingangstuer" or "Eingang" or "Tuer" as the Eingangstuer.```

Seltsamerweise funktioniert in diesem Beispiel nur "x Tür", Eingang oder Eingangstür werden nicht als Namen anerkannt.

MfG
Geschrieben um 10:06 am 22.02.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Strainer:

Die Ersetzung [PlayerAuto with nominative] funktioniert bei mir seltsamerweise nicht.

Sorry, die Phrase müsste lauten "[PlayerAuto with case nominative]"; ein Blick in den Phrasen-Index (Saying - Names with cases) hat mich drauf gebracht. Das steht leider auch falsch in der Doku. Aber mit gefällt die Kurzform ohne "case" eh besser. Vielleicht änder ich das mal. Oder man nimmt eine deutsche Phrase, die besser in die deutschen Ausgabetexte passt, z.B. "Dein [Fahrzeug im Nominativ] steht zur Abfahrt bereit.". Das gefällt mir eigentlich ganz gut.

Zitat:

Seltsamerweise funktioniert in diesem Beispiel nur "x Tür", Eingang oder Eingangstür werden nicht als Namen anerkannt.

Kann ich hier nicht reproduzieren. Alle Vokabeln werden bei mir korrekt verstanden. Dein Code ist korrekt.

Geschrieben um 14:35 am 22.02.2010 | Zitat | Editieren | Löschen
Strainer
Mitglied
Bachelor Gumby
Beiträge: 48

Danke, [with case nominative] funktioniert perfekt.

Ich habe mich im unteren Beispiel schlecht ausgedrückt:

Ich versuche das Spiel mit Keyword Interface von Aaron Reed zu steuern, weshalb ich auch jeweils die Keywords benutze.

In diesem Fall funktionieren auch bei mir alle entsprechungen wie "x eingang", allerdings funktioniert als keyword nur "Tür". Daraus schließe ich das es mit Keyword Interface zu tun hat, werde ich mir noch genauer ansehen müssen.

Wie immer: Besten Dank für die schnelle Hilfe.

MfG

Geschrieben um 01:31 am 25.02.2010 | Zitat | Editieren | Löschen
Strainer
Mitglied
Bachelor Gumby
Beiträge: 48

So, ich habe jetzt weiter getestet und bin auf folgendes gestoßen:

blue

Bei diesem Code bekomme ich folgenden Output:



Du siehst hier eine Eingangstür.

>tür

Eine simple Holztür mit einem undurchsichtigen Buntglasfenster.

>eingang

That's neither a verb I recognise nor a keyword you can use right now.

>eingangstür

That's neither a verb I recognise nor a keyword you can use right now.

>eingangstuer

That's neither a verb I recognise nor a keyword you can use right now.

>tür

Eine simple Holztür mit einem undurchsichtigen Buntglasfenster.

>tuer

Eine simple Holztür mit einem undurchsichtigen Buntglasfenster.

>```

Wenn ich allerdings GerX entferne sieht der Output so aus:

```Garten

You can see an Eingangstür here.

>eingang

Eine simple Holztür mit einem undurchsichtigen Buntglasfenster.

>eingangstür

Eine simple Holztür mit einem undurchsichtigen Buntglasfenster.

>tür

That's neither a verb I recognise nor a keyword you can use right now.

>tuer

Eine simple Holztür mit einem undurchsichtigen Buntglasfenster.

>```

Es dürfte also doch an Problemen zwischen dem Keyword Interface und GerX liegen, seltsamerweise tritt dieses Problem aber (bisher) nur bei den Beiden Worten "Eingang" und "Eingangstuer" auf.

Werde vorerst auch ohne diese Worte auskommen können, es wundert mich einfach nur das es gerade hier auftritt.

Edit:

Könnte es evtl. mit der Vorsilbe "ein" zu tun haben. Es scheinen nämlich alle Worte die damit beginnen nicht im Keyword Interface zu funktionieren.

MfG
Geschrieben um 02:44 am 25.02.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Bei mir funktioniert Keyword Interface überhaupt nicht mit GerX. Was benutzt du denn für eine Version?

Edit: Ich habe die Richtungen mal auskommentiert. Dann compiliert es wenigstens durch.

Wenn ich Deine Understand-Zeile weglasse, wird "eingangstür" als Keyword verstanden. Daran liegt's also nicht. Aber was da los ist, weiß ich nicht, da ich Aarons Extension noch nicht durchschaue. Aber ich fürchte, die muss man an den deutschen Parser anpassen. Wie auch immer.

Geschrieben um 13:42 am 25.02.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Strainer:

Könnte es evtl. mit der Vorsilbe "ein" zu tun haben. Es scheinen nämlich alle Worte die damit beginnen nicht im Keyword Interface zu funktionieren.

Das schint doch das Problem zu sein. Wenn das erste Wort der Eingabe mit "ein" beginnt, nimmt der Parser an, es handle sich um eine Infinitiv-Form wie z.B. "einschlafen", die dann vor dem eigentlichen Parsen in "schlaf ein" umgewandelt wird.

Wenn ich "ein" aus der Tabelle mit den Präpositionen für diesen Vorgang herausnehme (aus der Tabelle LanguageVerbPreps), dann funktioniert es! Vielleicht könnte man CheckInfinitiveClause() dazu überreden, das Verb nicht zu prüfen, wenn es 'no.verb' ist.

Geschrieben um 14:11 am 25.02.2010 | Zitat | Editieren | Löschen
Strainer
Mitglied
Bachelor Gumby
Beiträge: 48

Danke, das Entfernen von ein aus der LanguageVerbPreps Tabelle hat tatsächlich geholfen.

Ich glaube die Vorsilbe "ein" für Infinitivverben zu verlieren ist nicht allzu tragisch, mir fallen da nur wenige passende Situationen ein. (einschalten wäre so eine) Wie du aber schon sagtest, evtl. lässt sich ja mit if-clauses was machen, leider ist GerX so gut wie 100% i6 Code, welchen zu verstehen schon etwas schwieriger ist als i7.

Danke jedenfalls, im Moment komme ich sehr gut auch ohne die Vorsilbe aus und in Zukunft kann ich diese Tabelle nach möglichen Ursachen durchforsten.

MfG

Geschrieben um 14:23 am 25.02.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Strainer:

Danke, das Entfernen von ein aus der LanguageVerbPreps Tabelle hat tatsächlich geholfen.

Aber das kann ja keine dauerhafte Lösung sein. Diese I7-Besonderheit, dass ein einzelnes Nomen eine Aktion auslösen kann (und das verb_word dann 'no.verb' ist) müsste man schon in GerX berücksichtigen, nicht nur in Hinblick auf die Keyword-Extension.

Leider wird verb_word erst nach dem Prüfen auf Konversation -- und damit auch nach dem Prüfen auf einen Infinitv zu 'no.verb'. Hm, das muss bis zum Wochenende warten, wenn nicht jemand anderes vorher noch eine Idee hat ...

Geschrieben um 15:03 am 25.02.2010 | Zitat | Editieren | Löschen
Strainer
Mitglied
Bachelor Gumby
Beiträge: 48

ChristianB:

Leider wird verb_word erst nach dem Prüfen auf Konversation -- und damit auch nach dem Prüfen auf einen Infinitv zu 'no.verb'. Hm, das muss bis zum Wochenende warten, wenn nicht jemand anderes vorher noch eine Idee hat ...

Also bis zum Wochenende ist überhaupt kein Problem Christian, nimm dir bitte alle Zeit die du brauchst, schließlich eilt es keineswegs.

Es ist mir fast schon peinlich, aber bei der Übersetzung einer weiteren Extension, namentlich "Exit Lister von Gavin Lambert" bin ich auf ein weiteres Problem gestoßen, das mit der Eigenheit der deutschen Sprache zusammenhängt.

Das ist der von mir angepasste Code der Extension:

blue

Momentan sieht die Ausgabe so aus(was eigentlich schon fast meinen Vorstellungen entspricht):



Du kannst von hier nach Norden durch die &#40;geschlossene&#41; Kellertür, nach Westen zu dem Parkplatz, nach Osten durch die Eingangstür zu dem Garten und nach oben gehen.```

Höchstens die häufigen "zu dem" Konstruktionen könnte man noch durch "zum" ersetzen, aber darum geht es momentan nicht.

Das Problem wird an folgendem Output ersichtlich:

```Du kannst von hier nach Norden durch die &#40;geschlossene&#41; Kellertür, nach Süden zu dem Speisekammer, nach Osten durch die Eingangstür zu dem Garten und nach oben gehen.```

Wie man an diesem Beispiel sieht wird Speisekammer mit männlichem Artikel ausgegeben, was auch Sinn Macht, weil Räume nunmal keine Artikel haben und die Ersetzung [dem place] deshalb immer den männlichen Artikel annimmt.

Meine Frage deshalb: Ist es möglich Räumen Artikel zu geben oder würde das andere Probleme hervorrufen? Dies wäre eben gerade nützlich wenn man Satzkonstruktionen wie

blue

benutzen möchte (in diesem Fall könnten sich die Namen der Räume ändern und es würde weiterhin richtig, mit Artikel, ausgegeben.

Ich hoffe ich werde nicht lästig, es gefällt mir nur sehr in i7 herumzuexperimentieren und speziell die Funktionsweise von Extensions zu verstehen. Mach dir auf jeden Fall wegen mir keinen Stress, das ganze eilt nicht und ist sowieso nur ein (spaßiges) Hobby.

Mit freundlichen Grüßen aus Wien

Strainer
Geschrieben um 15:14 am 25.02.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Strainer:

Ist es möglich Räumen Artikel zu geben oder würde das andere Probleme hervorrufen?

Man könnte Räumen ein Geschlecht geben.

Also vielleicht so etwas (ungetestet)

blue

Vielleicht klappt das ja schon. Die Spanier machend das, glaube ich, auch so oder ähnlich in ihrer Spanish.i7x.

Grüße,

Christian

Geschrieben um 15:19 am 25.02.2010 | Zitat | Editieren | Löschen
Strainer
Mitglied
Bachelor Gumby
Beiträge: 48

Super, werde das heute Abend gleich testen.

MfG

Edit:

So, nach einigem herumprobieren hat alles wunderbar funktioniert. Ich habe die Definitionen folgendermaßen gemacht (als Vorbild diente hier die Definition der Artikel in GerX):

blue

Dies habe ich gleich in die Extension eingebaut, damit nicht jeder der den Exit Lister von Gavin Lambert nutzen möchte diese Definitionen erneut im Source einfügen muss. Außerdem macht es Sinn, alle Räume vorerst sächlich oder männlich zu definieren, da nur selten weibliche und noch seltener Raumnamen im plural vorkommen.

Das nächste Problem, dem ich mich angenommen habe, ist die unschöne Ausgabe als "Du kannst von hier nach Südwesten durch das Gartentor zu dem Garten und nach Westen durch die &#40;geschlossene&#41; Eingangstür gehen." Hier wirkt eine Konstruktion mit "zum" anstatt von "zu dem" viel natürlicher.

Damit man aber die Wahl hat habe ich das ganze mit einem truth state gelöst. Mithilfe des Wertes "SummarizedPrepArticle"(von zusammengefasste Präposition+Artikel, könnte noch einen besseren Namen vertragen) lässt sich nun bestimmen ob man lieber die zusammengefasste oder die ausgeschriebene Schreibweise benutzen möchte. (Standardmäßig wird zusammengefasst zu "zum" und "zur")

Für interessierte habe ich hier noch den neuen Source:



   let place be the room way from the location;

   if mentioning doors is true&#58;

      let gateway be the room-or-door way from location;

      if gateway is a door, say " &#91;passing text of gateway&#93; &#91;the gateway&#93;";

   if place is visited and room memory is true&#58;

      if SummarizedPrepArticle is true&#58;

         if place is plural-named,

            say " zu &#91;dem room way from the location&#93;";

         if place is female,

            say " zur &#91;room way from the location&#93;";

         if place is male,

            say " zum &#91;room way from the location&#93;";

         if place is neuter,

            say " zum &#91;room way from the location&#93;";

      else&#58;

         say " zu &#91;dem room way from the location&#93;".```

Und hier abschließend noch der Downloadlink zu "German Exit Lister", der deutschen Übersetzung zu Gavin Lambert's Erweiterung Exit Lister:

[Download German Exit Lister by Gavin Lambert](http://www.mediafire.com/?n5mgzvqoxdz)

Ich hoffe es findet Anklang.

MfG
Geschrieben um 19:36 am 25.02.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Nochmal zu den Aktionen ohne Verben:

Ein etwas besserer Workaround als das ruppige Entfernen einzelner Präositionen aus der Tabelle LanguageVerbPreps (wodurch manche Infinitve nicht mehr funktionieren) ist vielleicht das hier:

blue

Die Vokabeln, die die kritischen Präpositionen tragen, werden durch 'tuer' ersetzt, womit alles normal funktioniert.

Edit: Ab GerX-Version 2/100226 werden im Zusammenhang mit Aktionen ohne Verb auch Substantive, die mit einer Präposition beginnen, korrekt verstanden.

Allerdings schaffen es Objekt-Synonyme, die von Verben mit Präposition abstammen (z.B. "Aufseher"), immer noch nicht durch die Verben-Prüfung des Parsers.

Geschrieben um 20:58 am 25.02.2010 | Zitat | Editieren | Löschen
Strainer
Mitglied
Bachelor Gumby
Beiträge: 48

ChristianB:

Die Vokabeln, die die kritischen Präpositionen tragen, werden durch 'tuer' ersetzt, womit alles normal funktioniert.

Daran hatte ich gar nicht gedacht, genial wie immer. ^^

AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz