Der <topic>-Tag kann <category>-Tags in Themenbereiche (Topics) gruppieren.
Als Beispiel haben wir in unserer Escort Alice das Topic mit dem Namen "Aimlkurs" eingegeben. Befinden Sie sich in diesem Topic bevorzugt Alice die Antworten aus dem Topic und bleibt dadurch immer in Ihrem Thema. Mit der Eingabe "Kurs verlassen" deaktivieren Sie das Topic.
Es ist nicht immer notwendig <category>-Tags in <topic>-Tags zu gruppieren. Dies ist eine Möglichkeit um interessantere Anwendungen zu ermöglichen und wird zusammen mit dem <set name="topic"></set>-Tag verwendet.
<set name="topic">neues Thema</set> Setzt das aktuelle Thema (Topic) auf neues Thema. <set name="topic"></set> Löscht das aktuelle Thema (Topic).
Innerhalb des Namens eines <topic>-Tags gibt es zwei Sonderzeichen. Mit diesen kann man Satzmuster auswerten:
Den Unterstrich _ und das Multiplikatonszeichen *. Diese funktioneren als Platzhalter für beliebigen Text innerhalb aktuell aktiven Topics. Den Inhalt dieser Platzhalter kann man im <template>-Tag mit <topicstar /> ausgeben lassen.
Alice sucht folgendermassen nach einem geeigneten Antwortsatz:
wenn ein aktuelles Thema (Topic) NEUES THEMA gesetzt ist (z.B. durch <set name="topic">NEUES THEMA</set>) sucht Alice zuerst innerhalb allen Topics deren Name mit NEUES THEMA aktiviert wird (z.B. <topic name="NEUES THEMA">...</topic> oder <topic name="* THEMA">...</topic>) und dann erst ausserhalb der <topic>-Tags.
wenn kein aktuelles Thema (Topic) gesetzt ist (z.B. durch <set name="topic"></set>) sucht Alice nur ausserhalb der <topic>-Tags. Alle <category>-Tags innerhalb von <topic>-Tags werden nicht verwendet.
Beispiel:
<aiml>
Beispiel steht im Aimlkurs. <category> <pattern>Aimlkurs</pattern> <template><think><set name="topic">Aimlkurs</set></think>Du befindest Dich jetzt im Topic Aimlkurs.</template> </category>
<topic name="Aimlkurs">
<category> <pattern>Kurs verlassen</pattern> <template><think><set name="topic"></set></think>Du verlaesst jetzt den Aimlkurs.</template> </category>
</topic>
</aiml> |