<атрибут-диапазона>::= (range <граница-диапазона> <граница-диапазона>)
<граница-диапазона>::= <число> |? VARIABLE
Для задания границ диапазона могут использоваться числа как целого, так и вещественного типа. Первая граница диапазона определяет минимальное допустимое значение, которое может содержать соответствующий слот, вторая граница диапазона — максимальное. Для выполнения сравнения там, где это необходимо, целые числа временно переводятся в вещественные. В случае использования?variable в качестве первой границы диапазона, минимальным значением, которое может принимать соответствующий слот, считается отрицательная бесконечность (- ∞). В случае если ключевое слово?VARIABLE использовалось в качестве второй границы диапазона, максимальным допустимым значением слота считается положительная бесконечность (+ ∞). Атрибут диапазона range не может быть использован вместе с константными атрибутами allowed-values, allowed-numbers, allowed-integers, или allowed-floats.
Атрибут мощности
Атрибут мощности служит для ограничения числа полей, сохраняемых в составном поле. Этот атрибут нельзя использовать с простыми полями.
|
|
Определение 13.5. Синтаксис атрибута мощности
<атрибут-мощности>::= (cardinality <граница-мощности> <граница-мощности>)
<граница-мощности>::= <целое-значение> |?VARIABLE
В качестве границ мощности можно использовать только целые числа. Первое значение границы мощности определяет минимальное допустимое число полей, которые могут быть сохранены в слот, а второе значение границы мощности — максимальное число полей. В случае использования ключевого слова?variable в качестве первой границы мощности, минимальное допустимое количество полей, сохраненных в заданный слот, будет равняться нулю. Если в качестве второй границы атрибута мощности использовалось?variable, то максимальным допустимым числом полей слота считается положительная бесконечность (+ ∞). В случае если для составного слота не задан атрибут мощности, то по умолчанию считается, что допустимая мощность данного слота находится в диапазоне от нуля до бесконечности.
В CLIPS версии 5.1 поддерживались атрибуты min-number-of-elements и max-number-of-elements. В версии 6.0 эти атрибуты уже не поддерживаются. Вместо них необходимо применять атрибут мощности.