IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Inform: Pronomenhandling bei Synon. vers. Geschlechts
AntwortenNeues ThemaNeue Umfrage
» Mehrere Seiten: 12

Inform: Pronomenhandling bei Synon. vers. Geschlechts

Geschrieben um 22:50 am 07.10.2002 | Zitat | Editieren | Löschen
Joghurt
Mitglied
Student Gumby
Beiträge: 22

Hallo.

Nachdem mein erster Versuch, Synonyme verschiedenen Geschlechts in die Inform-Library einzubinden, nicht ganz funktioniert hat (es gab eine Menge Fälle, wo es zu Problemen kam), bin ich gerade dabei, die zweite Version fertigzustellen.

Die neue Methode müsste eigentlich sehr gut funktionieren, nur bei den Pronomen bin ich mir unsicher, so dass ich gerne mal eure Meinung hören möchte, welche Lösung die "Beste" ist. (Im folgenden gehe ich immer davon aus, daß man eine "Tür" vor sich hat, die man auch als "Tor" bezeichnen kann)

  1. Pronomen komplett ignorieren halte ich für eine schlechte Idee:

Es ist verschlossen.

öffne es

Ich weiß nicht, was mit "es" gemeint ist.


1.  *Pronomen entsprechend setzen, das Geschlecht allerdings auf Standard setzen* ist auch nicht optimal:
```>x tor

Es ist...

> öffne es

Dir fehlt der Schlüssel, um sie zu öffnen.
  1. Pronomen und Geschlecht setzen könnte Verwirrung stiften

x tor

Es ist...

öffne tür

Dir fehlt der ...

nimm es

Es ist hier fest verankert.


Natürlich würde die Meldung "Es ist hier" wahrscheinlich eher "Die Tür ist hier" lauten, aber unter Umständen könnten die Meldungen doch irreführend sein.

1.  *Nur Pronomen setzen, den Spieler darauf hinweisen* ist die Methode, die ich momentan präferiere, wenngleich sie auch recht nervig werden könnte:
```>x tor

...

>öffne es

(nehme für "es" die Tür, da du sie vorhin mit einem Synonym neutralen Geschlechts bezeichnet hast)

Dir fehlt der Schlüssel, um sie zu öffnen

Hier befürchte ich, dass der Spieler "vollgelabert" wird, was wahrscheinlich der Motivation nicht gerade zuträglich sein wird.

Evtl. könnte man auch zwischen zwei Möglichkeiten während des Spiels hin- und herschalten.

Was meint ihr, welche Möglichkeit würdet ihr als Spieler als Angenehm empfinden, und falls euch noch eine bessere einfällt, schreibt sie mir!

Wir löst TAG eigentlich dieses Problem?

Ich hoffe, ihr könnt mir weiterhelfen.

Dennis

Geschrieben um 23:02 am 07.10.2002 | Zitat | Editieren | Löschen
kairo
Mitglied
Dr Gumby
Beiträge: 284

Gute Frage. Das ist ein echter Schwachpunkt bei Inform.

Ich glaube TAG kann für jedes Synonym ein Geschlecht festlegen. Dadurch ist die Bezeichnung sehr viel flexibler.

Ich bin kein Informatiker, kann also keine Lösung für die Bibliothek vorschlagen. Aber dankbar wäre ich auch für jede Verbesserung dieser Situation.

("d" wäre nur etwas für den verbose-Modus)

Geschrieben um 23:08 am 07.10.2002 | Zitat | Editieren | Löschen
ChrisW
Mitglied
Dr Gumby
Beiträge: 275

Kairo:

Ich glaube TAG kann für jedes Synonym ein Geschlecht festlegen.

Und das deutsche Inform kann das seit V16 jetzt auch, Jippie!! Danke, Dennis.

Könnte man es auch so einrichten, dass immer Pronomen und Geschlecht des zuletzt verwendeten Synonyms gelten?

Würde das klappen?

Ansonsten fände ich die Variante d am Besten, vielleicht würde aber (nehme für "es" die Tür) reichen? Schließlich weiß der Spieler ja, dass er zuletzt "Tor" eingegeben hat.

Geschrieben um 23:14 am 07.10.2002 | Zitat | Editieren | Löschen
Tanan
Mitglied
Prof Gumby
Beiträge: 404

Ich persönlich mag Antwort d am wenigsten. Solche Klammermeldungen gehen mir meistens auf die Nerven.

Möglichkeit c scheint mir ganz passabel: Zumindest die Situation aus Deinem Beispiel dürfte eher selten eintreten. Aber eine dauerhafte Lösung ist das auch nicht.

Deshalb: Schnorb den Schnorb! g

Geschrieben um 23:32 am 07.10.2002 | Zitat | Editieren | Löschen
Joghurt
Mitglied
Student Gumby
Beiträge: 22

ChrW:

Könnte man es auch so einrichten, dass immer Pronomen und Geschlecht des zuletzt verwendeten Synonyms gelten?

Würde das klappen?

Wie meinst du das? Soll nach Eingabe von "Tor" "sie" nicht mehr für "Tür" stehen?

Im Moment werden sowohl die Pronomen, die für das "richtige" Geschlecht stehen gesetzt, als auch u.U. Pronomen, die für das Geschlecht des Synonyms stehen.

Wenn ich dich mit dem Geschlecht richtig verstehe, meinst du, dass eine Tür, die Tor genannt wurde, solange neutral ist, bis sie wieder Tür genannt wird, oder bin ich da auf dem Holzweg?

BTW: Das würde leider nicht funktionieren:


Das Tür ...

   - oder -

>x tor

Die Tür ist verschlossen. Allerdings entdeckst du einen Schlorb an ihm.

Und das der Name des Objektes abhängig vom Synonym gesetzt wird, könnte dazu führen, dass der Spieler mehr Objekte wahrnimmt, als da sind:


Das Amulett der Prinzessin...

>x schmuck

Der Schmuck der Prinzessin...

ChrW:

Ansonsten fände ich die Variante d am Besten, vielleicht würde aber (nehme für "es" die Tür) reichen? Schließlich weiß der Spieler ja, dass er zuletzt "Tor" eingegeben hat.

Ja, vielleicht sollte man nur einmal ausführlich darauf hinweisen, danach nur noch kurz. Oder man ist immer kurz und knapp, und lässt den Autor in der Hilfe erwähnen, warum der Computer manchmal Pronomen "falsch" setzt und sogar noch damit prahlt. :wink:

Apropros: Der Spieler weiß zwar, was er eben eingegeben hat, das setzen des Pronomens kann aber weiter zurückliegen:


...

>l

...

Du siehst hier eine Tür, ein Meerschweinen und den Schlorb.

Der Schlorb will das Meerschweinchen.

>gib es dem schlorb

Die Tür ist hier fest verankert.

Ich werde erstmal die "verkürzte" Form implementieren. Das wird wieder ekelig, da die Meldung nur einmal pro Zug auftauchen darf, selbst wenn der Parser mehrmals nachfragt :? (außerdem wird die entsprechende Routine auch sonst 3-4mal pro Objekt aufgerufen)

Geschrieben um 00:30 am 08.10.2002 | Zitat | Editieren | Löschen
ChrisW
Mitglied
Dr Gumby
Beiträge: 275

Joghurt:

Wie meinst du das? Soll nach Eingabe von "Tor" "sie" nicht mehr für "Tür" stehen?

Ups. Ich gebs zu, das war ein Schuss in den Ofen.

Jetzt ist es soweit: Ich will jemanden anrufen! Am besten Martin.

Eine Frage: Müsste bei Beispiel C durch "öffne tür" das Pronomen nicht auf "sie" zurückgesetzt werden? Wenn der Spieler gerade (bzw. zuletzt) das Wort Tür benutzt hat, warum sollte der Parser beim nächsten Befehl davon ausgehen, dass "es" die Tür meint und nicht das Schweinchen?

Kirk: "Schätzen, Spock!"

Spock: "Was wollte er damit sagen?"

Pille: "Dass er sich bei Ihren Schätzungen sicherer fühlt als bei den Berechnungen jedes anderen..."

Geschrieben um 01:33 am 08.10.2002 | Zitat | Editieren | Löschen
Joghurt
Mitglied
Student Gumby
Beiträge: 22

ChrW:

Eine Frage: Müsste bei Beispiel C durch "öffne tür" das Pronomen nicht auf "sie" zurückgesetzt werden?

Nein, bei Beispiel C nicht, aber bei dem Beispiel, was ich in meinem letzen Posting gegeben habe schon :oops:: Die Deutsche Library setzt ja die Pronomen neu, wenn die Raumbeschreibung gegeben wird; nach "look" ist "es" also wieder das Meerschweinchen.

Chrw:

Wenn der Spieler gerade (bzw. zuletzt) das Wort Tür benutzt hat, warum sollte der Parser beim nächsten Befehl davon ausgehen, dass "es" die Tür meint und nicht das Schweinchen?

Weil er sich sonst alle vorherigen Objekte, die für das Pronomen standen, merken müsste. Es reicht nicht, nur das letzte zu nehmen, denn das könnte ja ebenfalls ein "Synonymobjekt" gewesen sein, und wenn man das wieder "richtig" bezeichnen würde, wäre das Pronomen undefiniert, aber in dem Fall könnte ich einfach ein "passendes" Objekt auswählen. Hmmm...

Die Idee scheint nicht schlecht zu sein, was meint ihr anderen denn dazu?

Geschrieben um 10:23 am 08.10.2002 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Das Pronomen-Problem hat zwei Seiten. Ich erkläre am Besten einmal, wie es in T.A.G. gemacht ist:

(a) Ausgabe

T.A.G. verwendet (zumindest in seinen Standard-Texten) nie ausschließlich Pronomen, es wird immer der Name genannt:


> öffne Tür

Das grosse Tor ist abgeschlossen, es lässt sich nicht ohne Weiteres öffnen.

Das mag etwas unelegant sein, löst aber das Problem. Außerdem weiß so der Spieler, wie ein Promonem in seiner Eingabe interpretiert wurde, und der lästige Klammertext fällt weg:


> tritt sie

Du trittst gegen das große Tor uns verstauchst dir den dicken Zeh.

Das finde ich schöner als


> tritt sie

(Ich nehme an, mit "sie" meinst du das große Tor.)

Du trittst dagegen, verstauchst dir aber nur den Zeh.

Die Original-Lib von Inform verwendet of "those" und "that" in seinen Meldungen: "That cannot be opened." Die deutsche Lib verwendet mittlerweile dazu oft Pronomen (anstelle der früher üblichen "das" und "dies"), was bei Synonymen mit verschiedenen Genera komisch klingt.

Pronomina, die mit Textbefehlen wie [er] ausgegeben werden, benutzen immer das Geschlecht, das im Namen angegeben ist.

(b) Eingabe

T.A.G. kennt zu jedem Synonym ein eigenes Geschlecht, z.B.:


Obj     Tor

Name    'groß^ Tor' n

Besch   'Ein eisenbeschlagenes Tor mit zwei großen Flügeln.'

Adj     'eisern' 'gross' 'eisenbeschlagen'

Subst    'tor' n, 'tür' f, 'flügel' p

Intern wird eine Art Stack angelegt, auf dem die zuletzt benutzen Substantive abgelegt werden. Ein Substantiv mit dem selben Genus-Code ersetzt eines, das bereits auf dem Stack war. der Genus Code berücksichtigt den Genus (m, f, n und p) und ob es sich um eine Person handelt.

Bei einem anfangs leeren Stack würden folgende Eingaben


> nimm Schwert

> mache Lampe an

> schliesse Truhe mit dem Schlüssel auf

> frage die Prinzessin nach dem Schatz

folgende Pronomen auf den Stack legen:


Prinzessin (f, Person)

Schatz (m)

Truhe (f)

Schwert (n)

Die Lampe wurde von der Truhe verdrängt, der Schlüssel vom Schatz. Die Prinzessin verdrängt die Truhe aber nicht, weil sie eine Person ist und daher einen anderen Genus-Code hat.

Wenn ein Pronomen eingegeben wird, dann wird das oberste passende genommen: Bei Prüfung auf Akkusativ meint "sie" das erste, das weiblich oder Plural ist, bei Dativ-Prüfung meint "ihm" das erste, das männlich oder sächlich ist. Die anderen ("ihn", "es", "ihr", "ihnen") sind vom Genus her eindeutig.


"ihn" -> den Schatz

"sie" -> die Prinzessin

"es" -> das Schwert

"ihm" -> dem Schatz

"ihr" -> der Prinzessin

"ihnen" -> nicht definiert

Wenn ein Pronomialadverb ("damit", "darüber") angegeben wird, wird das oberste Nicht-Personen-Objekt genommen, im Beispiel oben der Schatz.

Das erste Objekt wird nach dem zweiten auf den Stack geschoben. Daher bedeutet bei:


> öffne Truhe mit Haarspange

> u sie

"sie" die Truhe. Wenn Synonyme verwendet werden, die einen vom Objekt abweichenden Genus haben, werden beide Genera auf den Stack geschoben:


> u tür

Das Tor ist riesig.

Jetzt bedeuten sowohl "sie" (Eigabe) als auch "es" (Ausgabe) das Tor. Das funktioniert nur, wenn die Ausgabe explizit das Tor erwähnt, was in den Standard-Texten der Fall ist.

(Der Stack ist übrigens kein richtiger Stack, da kein Objekt "heruntergenommen" wird, der Stack kann nur wachsen, nie schrumpfen.)

So, hiermit ist ein weiteres großes Geheimnis des T.A.G.-Parsers gelüftet. Ich hoffe, die Vorgehensweise ist klar und hilft beim Erweitern der Inform.de-Lib.

Geschrieben um 20:55 am 09.10.2002 | Zitat | Editieren | Löschen
Joghurt
Mitglied
Student Gumby
Beiträge: 22

Ich habe heute mal wieder ein bisschen Zeit gefunden, an den Pronomenroutinen zu basteln.

Im Moment macht sie folgendes:

  • Wenn Pronomen aufgrund eines Synonyms ersetzt werden, wird das alte Objekt gespeichert, sofern es nicht selbst ein Objekt ist, dessen normales Geschlecht nicht zum Pronomen passt.
  • Wird das Objekt wieder mit richtigem Namen angesprochen, werden die nun "falschen" Pronomen auf die vorherigen Werte zurückgesetzt.

Also:


>x es

Das Meerschweinchen ...

>x tor

Es ist... (oder Die Tür ist...)

>x es

Es ist...

>x tür

Sie ist...

>x es

Das Meerschweinchen

Soweit, sogut. Etwas inkonsistent wird es wie gesagt nur, wenn mehrere Objekt mit Synonymen v.G. angesprochen werden:


Meerschweinchen

>x das bauer

Der Käfig (ja, ein Vogelkäfig kann auch "ein Bauer" sein. Es lebe die deutsche Sprache)

>x tor

...

>x es

Tor

>x tür

>x es

Meerschweinchen```

Ich glaube, damit kann man leben. Ich muß den Code nur noch so umschreiben, daß auch Objekte gespeichert werden, die zwar Synonyme v.G. besitzen, aber mit ihrem normalen Geschlecht angesprochen werden.

**Martin:**
> ```> u tür

Das Tor ist riesig.

Jetzt bedeuten sowohl "sie" (Eigabe) als auch "es" (Ausgabe) das Tor. Das funktioniert nur, wenn die Ausgabe explizit das Tor erwähnt, was in den Standard-Texten der Fall ist.

Bei InformDE wird "es" ebenfalls gesetzt, unabhängig davon, ob das Tor erwähnt wurde oder nicht. Das sollte meiner Meinung nach aber kein Problem sein, da "> pronomen" sowieso "es: das Tor, sie: das Tor" anzeigen würde.

Nun meine zwei Fragen:

  1. Was haltet ihr von diesem Pronomenhandling? Ist es für den Spieler verwirrend, wenn "es" auf einmal nicht mehr das Tor, sondern das Meerschweinchen bezeichnet?1. Soll ich es bei einem gespeicherten Objekt pro Pronomen belassen, oder sollen es mehr sein? PS:

Wenn alles gut geht, kann ich Max dieses Wochenende die neue Version schicken. :)

PPS:

Ich habe auch das Pronominaladverb 'darauf' hinzugefügt, ich hoffe, damit eine neue Ära in der Kommunikation mit dem Parser eingeleitet zu haben (denn jetzt kann der wichtigste Befehl überhaupt verstanden werden):```Du siehst hier den Schlorb.

hau drauf``` Ah! Herrlich! :twisted:

Geschrieben um 21:56 am 09.10.2002 | Zitat | Editieren | Löschen
ChrisW
Mitglied
Dr Gumby
Beiträge: 275

Die Lösung ist klasse!

Geschrieben um 22:26 am 09.10.2002 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Joghurt:

Martin:

Jetzt bedeuten sowohl "sie" (Eingabe) als auch "es" (Ausgabe) das Tor. Das funktioniert nur, wenn die Ausgabe explizit das Tor erwähnt, was in den Standard-Texten der Fall ist.

Bei InformDE wird "es" ebenfalls gesetzt, unabhängig davon, ob das Tor erwähnt wurde oder nicht. Das sollte meiner Meinung nach aber kein Problem sein, da "> pronomen" sowieso "es: das Tor, sie: das Tor" anzeigen würde.

Ja, das wird in T.A.G. auch so gemacht, ich habe mich wohl nur schlecht ausgedrückt. Das "(Ausgabe)" bedeutete nur, dass dieser Genus in der Ausgabe benutzt wurde und deshalb "es" und "sie" gesetzt wurden.

Was T.A.G. nicht macht, ist, aufgelistete Gegenstände zu berücksichtigen:


> n

Du bist in einer Abstellkammer.

Hier liegt ein rosafarbenes Sandförmchen.

> nimm es

Ich weiß nicht, worauf sich "es" bezieht.

:-(

Geschrieben um 23:02 am 10.10.2002 | Zitat | Editieren | Löschen
mkalus
Mitglied
Master Gumby
Beiträge: 93

Wow! Da kann man kaum mehr etwas hinzufügen...

Ich finde den Vorschlag gut, mehrere Möglichkeiten anzubieten. Man könnte hier wieder über eine definierte Konstante das ganze steuern, wie wir es auch bei anderen Dingen in der deutschen Lib gelöst haben. Damit kann jeder sich seine Veriante selbst suchen...

Im übrigen bin ich für Antwort c, da so häufig solche Verwechslungen (hoffentlich) nicht vorkommen. Ich gehe da von mit selbst aus - wenn ich etwas in einem Adventure probiere, dann sage ich beim ersten Mal "öffne das tor", bei allen weiteren Eingaben werde ich z.B. "drehe es", "nimm es", "schiebe es" schreiben. Dass ich "es" dann zehn Eingaben weiter wieder verwende kommt eher selten vor, weil ich mir ja schließlich so lange auch nicht merke, was "es" war...

Im Übrigen könnte man die Lösung mit der Klammer [(nehme die Tür als "es")] ja per Metaverb steuern. Pronomen an/aus oder ähnliches. Dann könnte der Spieler selbst entscheiden.

Ciao,

Max.

Geschrieben um 10:03 am 11.10.2002 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Woher weiß denn die Lib, dass das Synonym "Tor" ein Neutrum ist, wenn das Objekt Tür nur das Attribut female hat, das für das gesamte Objekt gilt?

Mit anderen Worten, wie wird festgestellt, dass man nach Gebrauch von "Tor" das Pronomen "es" setzen muss und nicht ein anderes? Die Inform-Lib unterscheidet in der Eigenschaft name noch nicht einmal zwischen Substantiven und Adjektiven, soweit ich weiß.

Geschrieben um 12:00 am 11.10.2002 | Zitat | Editieren | Löschen
mkalus
Mitglied
Master Gumby
Beiträge: 93

Martin:

Woher weiß denn die Lib, dass das Synonym "Tor" ein Neutrum ist, wenn das Objekt Tür nur das Attribut female hat, das für das gesamte Objekt gilt?

Mit anderen Worten, wie wird festgestellt, dass man nach Gebrauch von "Tor" das Pronomen "es" setzen muss und nicht ein anderes? Die Inform-Lib unterscheidet in der Eigenschaft name noch nicht einmal zwischen Substantiven und Adjektiven, soweit ich weiß.

Dennis hat dieses Problem gelöst. Die Lösung ist jetzt sehr ähnlich wie die von TAG, übrigens :-)

Ciao,

Max.

Geschrieben um 12:03 am 11.10.2002 | Zitat | Editieren | Löschen
Walafrid
Mitglied
Dr Gumby
Beiträge: 238

http://www.textadventures.de/

Geschrieben um 12:07 am 11.10.2002 | Zitat | Editieren | Löschen
mkalus
Mitglied
Master Gumby
Beiträge: 93

Walafrid:

mkalus:

Dennis hat dieses Problem gelöst.

Und wie gelöst? Oder muss ich mir das in der Library anschauen?

Schau dir die neueste Doku der Testing-Version an. Da ist es erklärt :-)

Ciao,

Max.

Geschrieben um 15:08 am 11.10.2002 | Zitat | Editieren | Löschen
Joghurt
Mitglied
Student Gumby
Beiträge: 22
<td valign="top"><div class="post"><p><strong>Walafrid:</strong></p> <blockquote> <p><strong>mkalus:</strong></p> <blockquote> <p>Dennis hat dieses Problem gelöst.</p> </blockquote> <p>Und wie gelöst? Oder muss ich mir das in der Library anschauen?</p> </blockquote> <p>Hier mal ganz kurz das Verfahren:</p> <p>Beispiel Tür:```object Tuer &quot;Tür&quot;</p> <p>  has female door locked ...</p> <p>  with changing_gender</p> <p>       name 'tuer' 'tor' neuter;```</p> <p>Wenn die Library nun bsp. 'tor' in der Name property gefunden hat, schaut sie nach, ob der darauffolgende Arrayeintrag ein Dictionaryword ist (diese müssten eigentlich alle einen Wert &gt;255 haben, sonst würde es probleme geben. Das scheint aber der Fall zu sein (inform selbst nimmt das manchmal an), wenn es kein Dict-Eintrag ist, nimmt es an, es sei ein Geschlecht und setzt die Property changing_gender entsprechend.</p> <p>Das ist im wesentlichen das Verfahren, verkompliziert wird es noch durch einige Kleinigkeiten, die ich aber hoffentlich in den Griff bekommen habe.</p> <p>Diesen Sonntag wird wohl der Update an Max geschickt.</p> <p>Das mit der fehlenden Unterscheidung zwischen Substantiven und Adjektiven ist wirklich nervig und bereitet manchmal Probleme. Wenn ich es aber endlich geschafft habe, die &quot;Platypus&quot;-Library zu übersetzen, habe zumindest ich nicht mehr damit zu kämpfen, da ich dann Platypus benutzen werde. 8)</p></div></td>
Geschrieben um 15:39 am 11.10.2002 | Zitat | Editieren | Löschen
Walafrid
Mitglied
Dr Gumby
Beiträge: 238

http://www.textadventures.de/

Geschrieben um 16:18 am 11.10.2002 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Joghurt:

Hier mal ganz kurz das Verfahren: ... Das ist nicht schlecht gelöst. Super!

Wird die Zusatz-Information auch für die Artikel in der Eingabe benutzt? Bisher hat Inform-de sie immer ignoriert, oder? Das wäre eine weitere tolle Sache. (Nützlich zum Unterscheiden von Substantiven wie "die/der See" oder "der/das Schild".)

Geschrieben um 18:55 am 11.10.2002 | Zitat | Editieren | Löschen
Joghurt
Mitglied
Student Gumby
Beiträge: 22

Martin:

Wird die Zusatz-Information auch für die Artikel in der Eingabe benutzt? Bisher hat Inform-de sie immer ignoriert, oder? Das wäre eine weitere tolle Sache. (Nützlich zum Unterscheiden von Substantiven wie "die/der See" oder "der/das Schild".)

Bis jetzt noch nicht. Wenn ich dazu komme, pack ich es noch rein (allerdings wohl nicht in die nächste Version)

» Mehrere Seiten: 12
AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz