可以在 AIML 中实现合取和析取吗?

Can conjunctions and disjunctions be implemented in AIML?

正在学习AIML,看过examples of the <condition> element,如:

<category>
<pattern>DO YOU FIND ME ATTRACTIVE</pattern>
<template>
  <condition name="gender">
    <li value="male">I find you very handsome.</li>
    <li value="female">I find you very pretty.</li>
    <li>I find you very attractive.</li>
  </condition>
</template>
</category>

我想知道是否有形成连词或析取的方法。为了扩展示例,我希望输出不仅取决于 gender,还取决于标志 adult.

条件是否可以嵌套,或者我可以在修改变量时或在条件之前使用<think><set>来获得相同的效果吗?我正在使用 Pandorabots,以防有任何扩展(尽管我在他们的文档中没有看到任何扩展)。

您可以使用嵌套条件,但这很快就会变得非常混乱,尤其是当您有 3 或 4 个级别时。我会通过设置一个包含我要检查的谓词内容的 var 来做到这一点。为什么是 var 而不是 name?因为你不需要保留这个谓词。它只会用于此类别。在激活类别后刷新变量,而保留“名称”谓词以供其他类别使用。

<category>
<pattern>DO YOU FIND ME ATTRACTIVE</pattern>
<template>
    <think>
        <set var="check"><get name="gender"/> <get name="adult"/></set>
    </think>
    <condition var="check">
        <li value="male yes">I find you very handsome.</li>
        <li value="female yes">You are a very beautiful woman.</li>
        <li value="male no">Yes, you are a handsome boy.</li>
        <li value="female no">Yes, you are a very pretty girl.</li>
       <li>I find you very attractive.</li>
    </condition>
</template>
</category>