IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Mr. Bond?
AntwortenNeues ThemaNeue Umfrage

Mr. Bond?

Geschrieben um 00:09 am 12.01.2004 | Zitat | Editieren | Löschen
Oliver Berse
Mitglied
Bachelor Gumby
Beiträge: 47

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

Geschrieben um 00:57 am 12.01.2004 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

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:


    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.

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