Autor |
Nachricht |
< Optionale Präpositionen? |
|
Verfasst am:
Mi, 20 Apr 2016 - 9:28
|
|
|
Neuling
Anmeldungsdatum: 10.04.2016
Beiträge: 8
|
|
Kann ich in Inform bei einer Understand Anweisung so etwas wie optionale Worte definieren?
Ich würde am Liebsten so etwas definieren:
Code: | Understand "klingel an/bei/-- Haus/Hausnummer/-- [number]" as ringing. |
Geht aber nicht, weil "/--" nicht verstanden wird. Muss ich jede Variante einzeln definieren? Das wären 9 Understand Definitionen. Ganz schön viel.
Optionale Präpositionen sind doch nicht selten (zB: Lies Buch und Lies in dem Buch). Dafür muss es doch eine Lösung geben. |
|
|
|
|
|
Verfasst am:
Mi, 20 Apr 2016 - 10:30
|
|
|
Experte
Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg
|
|
Es gibt bei den Präpositionen keine Möglichkeit, Leerstellen zu definieren. Das hängt mit der Struktur der grammar lines zusammen, die aus der Understand-Definition auf Inform-6-Ebene gebildet werden.
Aus
Understand "klingel an/bei/-- Haus/Hausnummer/-- [number]" as ringing.
wird
Code: | Verb 'klingel'
* 'an' / 'bei' / '--' 'haus' / 'hausnummer' / '--' DECIMAL_TOKEN -> A95_ringing
; |
Es wird eine dritte Präposition '--' definiert, die auch genau so verstanden wird, sodass der Spieler in deinem Fall auch "KLINGEL -- -- 11" als Kommando eingeben könnte.
Wilson hat folgendes geschrieben: | Optionale Präpositionen sind doch nicht selten (zB: Lies Buch und Lies in dem Buch). |
Abgesehen davon, dass Leerstellen in Satzmustern nicht vorgesehen sind, sollten hier zwei Satzmuster angegeben werden, weil die Kasus abweichend sind: LIES BUCH (Akkusativ) vs. LIES IN DEM BUCH (Dativ). Wenn du einen Blick in die Satzmuster-Definitionen in der Erweiterungs-Datei German.i7x (Section -- German commands) wirfst, kannst du sehen, was da so an Aufwand getrieben werden muss, in manchen Fällen.
Neue Satzmuster sind eigentlich immer etwas Schreibkram, wenn man möglichst viele Varianten berücksichtigen möchte.
[Edit: Aber mir fällt gerade ein, dass man sich mit etwas Inform-6-Kenntnissen eigene Präpositions-Token bauen kann, in denen optionale Leerstellen möglich sind. (vgl. das [dir]-Token).]
Hier mal ein Beispiel:
Code: |
Include (-
[ AN_BEI_TOKEN;
if (NextWord() ~= 'an' or 'bei') wn--;
return GPR_PREPOSITION;
];
[ HAUSNUMMER_TOKEN;
if (NextWord() ~= 'haus' or 'hausnummer') wn--;
return GPR_PREPOSITION;
];
-).
The Understand token an-bei translates into I6 as "AN_BEI_TOKEN".
The Understand token hausnummer translates into I6 as "HAUSNUMMER_TOKEN". |
Damit kannst du das Satzmuster so definieren:
Understand "klingel [an-bei] [hausnummer] [number]" as ringing.
Vielleicht geht das auch direkt mit Inform-7-Mitteln, aber die sind mir nicht bekannt. _________________ Worichtung willst du ingehen? |
|
|
|
|
|
Verfasst am:
Mi, 20 Apr 2016 - 16:22
|
|
|
Neuling
Anmeldungsdatum: 10.04.2016
Beiträge: 8
|
|
Danke. Das sieht kompliziert aus; muss ich mir ersteinmal mit einem inform 6 Handbuch ansehen :-). Ich glaube, dann ist mehrfaches Definieren des Verbs doch einfacher. |
|
|
|
|
|
Verfasst am:
Mi, 20 Apr 2016 - 16:57
|
|
|
Experte
Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg
|
|
|
|
|
|
|
Verfasst am:
Do, 21 Apr 2016 - 11:48
|
|
|
Neuling
Anmeldungsdatum: 10.04.2016
Beiträge: 8
|
|
Ja, schade, das die neueste Version nicht kompatibel ist. Es ist irritierend, mit einem älteren System arbeiten zu sollen.
Weißt Du, ob an der GerX Extension noch gearbeitet wird? Es war ja eine sehr verdienstvolle Arbeit. |
|
|
|
|
|
Verfasst am:
Do, 21 Apr 2016 - 12:38
|
|
|
Experte
Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg
|
|
Ja, wir arbeiten offiziell noch dran. Aber das neue System eignet sich nach neuestem Kenntnisstand nicht für das deutsche Verbalsystem.
Ich fürchte, das hat sich noch nicht zu Graham Nelson rumgesprochen. Er hat sich neulich mal mit ein paar Hinweisen bei uns gemeldet, aber wie das ausgegangen ist, dazu weiß proc vielleicht mehr. Mit dem neuen Preform-Kram habe ich mich noch nicht beschäftigt, aber auch die "klassischen" Teile der Erweiterung funktionieren nur im Labor (und das ist seit 2012 nicht mehr groß aufgeräumt worden). _________________ Worichtung willst du ingehen? |
|
|
|
|
|