Forum moved to if-forum.org
Autor Nachricht
<  Problem mit Pronomen?
olav.mueller
BeitragVerfasst am: Mi, 26 Jan 2005 - 22:38  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 14.10.2004
Beiträge: 15
Wohnort: Düsseldorf

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.

Code:

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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Martin
BeitragVerfasst am: Do, 27 Jan 2005 - 9:11  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München

olav.mueller hat folgendes geschrieben:
> 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:

Code:

      '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:
Code:

!    '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.
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde (MEZ)

Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Seite 1 von 1
if-de :: Forum Foren-Übersicht  >  Inform & Glulx

Neues Thema eröffnen   Neue Antwort erstellen


 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Kontakt: Administrator

Powered by phpBB and NoseBleed v1.05