Autor |
Nachricht |
< Mr. Bond? |
|
Verfasst am:
So, 11 Jan 2004 - 23:09
|
|
|
Wasserträger
Anmeldungsdatum: 29.08.2002
Beiträge: 50
|
|
Ich schaue gerade, wie Inform und TAG folgendes (zugegeben, recht seltenes) Problem lösen: Der Name eines NPC beinhaltet einen Titel oder eine Anrede, die mit einem Punkt abgekürzt wird: Dr. Mr. etc. Da ein Punkt normalerweise nur Befehle trennt, sollte es hier eine Möglichkeit geben, den Punkt als Bestandteil des Namens zu behandeln. (Bei der Angabe von IP-Nummern und Daten taucht das Problem leider auch auf).
Für das englische Inform liefert Google in raif eine BeforeParsing Routine, die prüft, ob vor einem Punkt "Dr", "Mr" etc. steht.
Komplizierter wird es noch, wenn statt des vollständigen Namens nur die Anrede eingegeben wird und dann ein Punkt und ein neuer Befehl folgen: "x Dr. Zeige Dr. Maier den Brief"
TAG scheint weder Punkte noch Leerzeichen in Objektnamen oder Adjektiven zu mögen. Teile ich die Anrede ohne Punkt in Name und Adj auf (Name 'Bond' Adj 'Mr'), erhalte ich für die Eingabe "u Mr Bond" eine "grammatikalische Ungereimtheit".
Läßt sich dieses Problem irgendwie mit vorParser lösen?
PS: das Problem tauch natürlich auch in Floyd auf... |
|
|
|
|
|
Verfasst am:
So, 11 Jan 2004 - 23:57
|
|
|
Experte
Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München
|
|
Mit Adjektiven bekommst du Probleme, weil sie in der gebeugten Form erwartet werden. (Außer, wenn ein weiteres Adjektiv folgt, dann wird das ungebeugte als Adverb betrachtet - "frisch gestrichene Bank". "Gestrichen frische Bank" geht aber auch.)
Im Vorparser hat man auch nicht so viele Eingriffsmöglichkeiten. Man könnte einen Objektparser schreiben, in dem die exakte Wortfolge, zum Beispiel 'dr' --> '.' --> 'jekyll', abgefragt wird. Das wäre das eleganteste, damit würde auch das Aneinanderketten von Befehlen gut funktionieren.
(Das wäre wohl auch für Infom das Beste, oder? Ein parse_name, der das erledigt.)
Die einfachste und pragmatischste Lösung ist wohl, den Punkt mit einer Synonym-Definition zu eliminieren:
Code: |
Synonym 'mr.' 'mr'
Synonym 'dr.' 'dr'
Obj Dr-Jekyll
name 'Dr. Jekyll' m %eigenname
Subst 'dr' m 'jekyll' m
...
|
(Dann kann man aber nicht nach 'dr' eine neue Anweisung starten wollen...)
Man könnte wohl auch den Punkt als Substantiv definieren, aber das habe ich nicht ausprobiert. Dann würde aber auch nur der Punkt als Dr. Jakyll (und Mr. Hyde und Prof. Moriarty) verstanden, genau wie 'mr. hyde . . . .', und das ist ja irgendwie, hm, Mist. _________________ 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.
|
|