2016-02-21 15 views

回答

0

在AIML第2版中,您可以使用集合或地圖來執行此操作。基本上你定義了一個或多個成員的列表,然後你可以在模式中引用它。想象一下,你有一組與世界的國家的名字,你可以編寫這樣的:

<category> 
    <pattern>IS <set>countries</set> A COUNTRY</pattern> 
    <template> 
    Yes, <star/> is a country. 
    </template> 
</category> 

<category> 
    <pattern>IS * A COUNTRY</pattern> 
    <template> 
    I never heard of a country called <star/>. 
    </template> 
</category> 

這工作,因爲設定優先級比AIML版本2.於是星級越高,如果你輸入的德國國家會回覆「是的,德國是一個國家」。但是如果你輸入IS EREWHON A COUNTRY,它會回覆「我從來沒有聽說過一個叫Erewhon的國家」。

0

不,目前AIML只支持一個類別中的單個模式。但是,您可以定義多個模式,並使用'srai'標記將它們重定向到原始模式:

<category><pattern># USA # Capital #</pattern><template>Capital of USA is DC.</template></category> 

<category><pattern># Capital # USA #</pattern><template><srai># USA # Capital #</srai></template></category> 
相關問題