Autor |
Nachricht |
< Problem mit Pronomen? |
|
Verfasst am:
Mi, 26 Jan 2005 - 22:38
|
|
|
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 |
|
|
|
 |
|
Verfasst am:
Do, 27 Jan 2005 - 9:11
|
|
|
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. |
|
|
|
 |
|
|
Alle Zeiten sind GMT + 1 Stunde (MEZ) |
|
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.
|
|