IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Problem mit Pronomen?
AntwortenNeues ThemaNeue Umfrage

Problem mit Pronomen?

Geschrieben um 23:38 am 26.01.2005 | Zitat | Editieren | Löschen
olav.mueller
Mitglied
Pupil Gumby
Beiträge: 15

Folgendes kleines Beispiel verursacht mir erhebliches Kopfzerbrechen. Ich verwende die ginform-lib in der Version 20.

Folgendes funktioniert nicht so, wie ich es erwarte:

x frau

gib ihr das geschenk

Mit dem Mann hingegen klappt das:

x mann

gib ihm das geschenk

Auch: Wenn ich den Mann ganz rausnehme, klappt auch die "gib ihr ..." Variante.


Constant Story "DEBUG";

Constant Headline "^DEBUGGING is fun^";

Include "Parser";

Class Raum               ! Ein betretbarer Raum mit Licht.

   has light,

   ;

Raum Ort "Irgendwo und Nirgends"

   with

      description "Leer und Öde.",

   ;

Object  Mann "Mann" Ort

   has male animate,

   with

      dekl 3,

      name "mann",

   ;

   

Object Frau "Frau" Ort

   has female animate,

   with

      dekl 9,

      name "frau",

   ;

   

Object Geschenk "Geschenk"

   has neuter,

   with

      dekl 3,

      name "geschenk",

   ;   

   

Include "VerbLib";

[ Initialise;

   location = Ort;

   move Geschenk to Player;

];

Include "GermanG";

End;

CU und Danke für Eure Hilfe,

Olav

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

olav.mueller:

gib ihr das geschenk

Der Spieler muss eingeben "gib sie das Geschenk", dann klappt's... :-)

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 descriptor 'ihr' gefunden, sonst nichts. Das reicht offensichtlich schon, um als Objekt durchzugehen. Da es zwei Objekte gibt, die animate 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.

Mit zwei Änderungen in german.h habe ich es zum Laufen gebracht: Im Array LanguagePronouns, das ab Zeile 176 zu finden ist, habe ich die Zeile für 'ihr' eingefügt:


      'er'     $$100000100000                    NULL

      'sie'    $$010111010111                    NULL

      'ihr'    $$010000010000                    NULL

      'es'     $$001000001000                    NULL

      'ihn'    $$100000100000                    NULL

      'ihm'    $$101000101000                    NULL

      'ihnen'  $$000111000111                    NULL

Dann wird 'ihr' allerdings immer noch als Possessivpronomen verstanden, daher habe ich das Wort aus dem Feld LanguageDescriptors (Zeile 204) herausgenommen:


!    'ihr'     $$001000001000    POSSESS_PK      'her'

     'ihre'    $$010111010111    POSSESS_PK      'her'

     'ihrer'   $$110111110111    POSSESS_PK      'her'

     'ihrem'   $$101000101000    POSSESS_PK      'her'

     'ihren'   $$100111100111    POSSESS_PK      'her'

     'ihres'   $$101000101000    POSSESS_PK      'her'

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.)

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.

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