if-de :: Forum Foren-Übersicht
Autor Nachricht
<  Mr. Bond?
Oliver Berse
BeitragVerfasst am: So, 11 Jan 2004 - 23:09  Antworten mit Zitat
Wasserträger
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...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Martin
BeitragVerfasst am: So, 11 Jan 2004 - 23:57  Antworten mit Zitat
Experte
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.
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  >  T.A.G.

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