<set>
で作成したPredicateや、システムPredicateの値を出力します。取得対象のPredicateが存在しない場合は、
undefined
を返します。
<pattern>
や<that>
内で記述でき、マッチングにも利用できます。
ポイント
マッチングに使用する場合、事前に登録したPredicateを使用してパターンマッチが出来ます。ただし1形態素の単語に限ります。(例えば、”ラーメン”はマッチングできますが、”味噌ラーメン” はマッチングできません)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<category> <pattern>init</pattern> <template> <think><set name="food">ラーメン</set></think> <get name="food"/>が食べたいです。 </template> </category> <category> <!-- 「ラーメン」にマッチします。 --> <pattern><get name="food"/></pattern> <template> <!-- 「ラーメンおいしいですよね!」が出力されます。 --> <get name="food"/>おいしいですよね! </template> </category> |
属性
名称 | 型 | 必須 | デフォルト | 説明 |
---|---|---|---|---|
name |
string |
※ | – | 値を取得したいPredicate名を記述します。 ※子要素 <name> を指定しない場合、この属性が必須となります。 |
default |
string |
– | – | Predicateの値が取得できない場合のデフォルト値を記述します。 |
name
値を取得したいPredicate名を記述します。
この属性の代わりに、子要素の <name>
が利用できます。また、<name>
を指定しない場合、この属性は必須となります。
Example
xAIML
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<category> <pattern>ラーメンを覚えて</pattern> <template> <set name="food">ラーメン</set>を覚えました! </template> </category> <category> <pattern><get name="food"/>の事</pattern> <template> <get name="food"/>の事ですね!覚えていますよ! </template> </category> |
実行結果
1 2 3 4 |
user > ラーメンを覚えて bot > ラーメンを覚えました! user > ラーメンの事 bot > ラーメンの事ですね!覚えていますよ! |
default
Predicateに値が格納されていない場合、または空文字やundefined
が格納されている場合のデフォルト値を記述します。
Example
xAIML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<category> <pattern>null</pattern> <template> <!-- 変数に値が格納されていない場合 --> predicate(値なし) : <get name="_var_null_char"/><br/> default(値なし) : <get name="_var_null_char" default="デフォルト値"/><br/> <!-- 変数に空文字が格納されている場合 --> <think><set name="_var_null_char"></set></think> predicate(空文字) : <get name="_var_null_char"/><br/> default(空文字) : <get name="_var_null_char" default="デフォルト値"/><br/> <!-- 変数にundefinedが格納されている場合 --> <think><set name="_var_null_char">undefined</set></think> predicate(undefined) : <get name="_var_null_char"/><br/> default(undefined) : <get name="_var_null_char" default="デフォルト値"/> </template> </category> |
実行結果
1 2 3 4 5 6 7 |
user > null bot > predicate(値なし) : undefined default(値なし) : デフォルト値 predicate(空文字) : undefined default(空文字) : デフォルト値 predicate(undefined) : undefined default(undefined) : デフォルト値 |
子要素
名称 | 必須 | 説明 |
---|---|---|
name |
– | 値を取得したいPredicate名を記述します。 |
name
値を取得したいPredicate名を記述します。
Predicate名が動的に変わる場合など、name
属性では対処できない場合に使用します。
このタグで使用できる子要素は、<template>
タグと同様です。
Example
1 2 3 4 5 6 7 |
<category> <pattern>GET</pattern> <template> <think><set name="food">ラーメン</set></think> <get><name>food</name></get> <!-- 「ラーメン」が出力されます。 --> </template> </category> |