| Geschrieben um 23:38 am 26.01.2005 | Zitat | Editieren | Löschen | |
Mitglied Pupil Gumby Beiträge: 15 | <td valign="top"><div class="post"><p>Folgendes kleines Beispiel verursacht mir erhebliches Kopfzerbrechen. Ich verwende die ginform-lib in der Version 20.</p> <p>Folgendes funktioniert nicht so, wie ich es erwarte:</p> <blockquote> <p>x frau</p> <p>gib ihr das geschenk</p> </blockquote> <p>Mit dem Mann hingegen klappt das:</p> <blockquote> <p>x mann</p> <p>gib ihm das geschenk</p> </blockquote> <p>Auch: Wenn ich den Mann ganz rausnehme, klappt auch die “gib ihr …” Variante.</p> <p>“`</p> <p>Constant Story “DEBUG”;</p> <p>Constant Headline “^DEBUGGING is fun^”;</p> <p>Include “Parser”;</p> <p>Class Raum ! Ein betretbarer Raum mit Licht.</p> <p> has light,</p> <p> ;</p> <p>Raum Ort “Irgendwo und Nirgends”</p> <p> with</p> <p> description “Leer und Öde.”,</p> <p> ;</p> <p>Object Mann “Mann” Ort</p> <p> has male animate,</p> <p> with</p> <p> dekl 3,</p> <p> name “mann”,</p> <p> ;</p> <p> </p> <p>Object Frau “Frau” Ort</p> <p> has female animate,</p> <p> with</p> <p> dekl 9,</p> <p> name “frau”,</p> <p> ;</p> <p> </p> <p>Object Geschenk “Geschenk”</p> <p> has neuter,</p> <p> with</p> <p> dekl 3,</p> <p> name “geschenk”,</p> <p> ; </p> <p> </p> <p>Include “VerbLib”;</p> <p>[ Initialise;</p> <p> location = Ort;</p> <p> move Geschenk to Player;</p> <p>];</p> <p>Include “GermanG”;</p> <p>End;</p> <p>“`</p> <p>CU und Danke für Eure Hilfe,</p> <p>Olav</p> </div></td> |
| Geschrieben um 10:11 am 27.01.2005 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 707 | <td valign="top"><div class="post"><p><strong>olav.mueller:</strong></p> <blockquote> <blockquote> <p>gib ihr das geschenk</p> </blockquote> </blockquote> <p>Der Spieler muss eingeben “gib sie das Geschenk”, dann klappt’s… :-)</p> <p>Okay, hab mir die Lib mal angeschaut: Das Wort ‘ihr’ ist nur als Possessivpronomen definiert, so dass man sagen kann “untersuche ihr Halskettchen”. Wenn also “ihr” gegen ein [creature]-Token geparst wird, wird der <em>descriptor</em> ‘ihr’ gefunden, sonst nichts. Das reicht offensichtlich schon, um als Objekt durchzugehen. Da es zwei Objekte gibt, die <em>animate</em> sind, fragt der Parser nach. Das erklärt auch, warum es funktioniert, wenn der Mann nicht da ist - die Frau ist als einzig animiertes Wesen eindeutig gefunden.</p> <p>Mit zwei Änderungen in <strong>german.h</strong> habe ich es zum Laufen gebracht: Im Array <strong>LanguagePronouns</strong>, das ab Zeile 176 zu finden ist, habe ich die Zeile für ‘ihr’ eingefügt:</p> <p>“`</p> <p> ‘er’ $$100000100000 NULL</p> <p> ‘sie’ $$010111010111 NULL</p> <p> ‘ihr’ $$010000010000 NULL</p> <p> ‘es’ $$001000001000 NULL</p> <p> ‘ihn’ $$100000100000 NULL</p> <p> ‘ihm’ $$101000101000 NULL</p> <p> ‘ihnen’ $$000111000111 NULL</p> <p>“`</p> <p>Dann wird ‘ihr’ allerdings immer noch als Possessivpronomen verstanden, daher habe ich das Wort aus dem Feld <strong>LanguageDescriptors</strong> (Zeile 204) herausgenommen:</p> <p>“`</p> <p>! ‘ihr’ $$001000001000 POSSESS_PK ‘her’</p> <p> ‘ihre’ $$010111010111 POSSESS_PK ‘her’</p> <p> ‘ihrer’ $$110111110111 POSSESS_PK ‘her’</p> <p> ‘ihrem’ $$101000101000 POSSESS_PK ‘her’</p> <p> ‘ihren’ $$100111100111 POSSESS_PK ‘her’</p> <p> ‘ihres’ $$101000101000 POSSESS_PK ‘her’</p> <p>“`</p> <p>Das ist nicht ganz schön, da man jetzt zwar sagen kann “nimm ihre Hand”, aber nicht “nimm ihr Handtäschchen”, aber gut, Possessivpronomina werden wohl eh nicht so oft verwendet. (Und meist nicht so, wie man es will. Wenn “ihr” Handtäschchen und “mein” Handtäschchen auf einem Tisch stehen, nützt das Fürwort beim Disambiguisieren nichts, da es in meinem Besitz, also “in player” sein muss, um “meins” und in ihrem Besitz, um “ihres” zu sein.)</p> <p>Was mich stutzig macht, ist, dass die Descriptors Vorrang vor Pronomina haben. Es müsste beim Parsen doch so sein: Wenn ein Pronomen gefunden wird, ist der Käs gegessen und ein Objekt gefunden (oder nicht, wenn sich das Pronomen auf nichts bezieht). Wenn kein Pronomen gefunden wird, kann man sich daran begeben, das komplette Objekt zu parsen. Das sollte auch kein Problem der deutschen Lib sein, denn Englisch hat hier mit ‘her’/’her’ genau dasselbe Problem.</p> </div></td> |