Está en la página 1de 32

RESTRICCIONES DE

LOS ATRIBUTOS EN
CLIPS

ALUMNO: EDUARDO AGUIRRE HERNNDEZ


DOCENTE: MTRO. VICTOR T. TOMAS MARIANO
MATERIA: SISTEMAS BASADOS EN CONOCIMIENTO
RESTRICCIONES
Se pueden establecer restricciones en los
atributos en la definicin de plantillas
(deftemplate) y clases (defclasses).
Existen dos tipos de restricciones estticas y
dinmicas.
Esttica: En este caso la posible violacin de la
restriccin se chequea cuando se carga un programa
CLIPS.
Dinmica: En este caso la posible violacin de la
restriccin se checa cuando un programa CLIPS est
ejecutndose.
Sintaxis de una restriccin

Las restricciones de un atributo se representa de


la siguiente forma:
TIPO DE ATRIBUTO

El tipo de atributo especifica el tipo de valor que puede


almacenarse en la casilla que se restringe.
ELEGIR UN TIPO DE ATRIBUTO
Usar NUMBER para un atributo es equivalente a usar
tanto INTEGER como FLOAT.
Usar LEXEME para un atributo es equivalente a usar
SYMBOL como STRING.
Usar INSTANCE para un atributo es equivalente a usar
tanto INSTANCE-NAME como INSTANCE-ADDRESS.
Usar ?VARIABLE es decir que se permite cualquier tipo.
ATRIBUTOS CONSTANTES
PERMITIDOS
Los atributos constates permitidos establece los valores
constantes de un tipo especifico que pueden
almacenarse en una casilla restringida.
LISTADO DE VALORES
La lista de valores puede ser o una lista de constantes
del tipo especificado o la palabra clave ?VARIABLE (se
admite cualquier constante del tipo permitido).
Usar allowed-lexemes es equivalente a usar
simultneamente allowed-symbols y allowed-strings.
Usar allowed-numbers es equivalente a usar
simultneamente allowed-integers y allowed-floats.
Conviene hace la matizacin allowed-values hace que
una casilla se restringa a los valores especificados que
peden ser de todos los tipos.
EJEMPLO:
Allowed-values esta restriccin para permitir slo valores simblicos.
Qu diferencia hay entre allowed-values y allowed-symbols.
Si por ejemplo establecemos las restricciones

1. (allowed-symbols hola adios)


Y
2. (allowed-values hola adios).
El primero establece que si los valores son de tipo smbolo, entonces
su valor debe ser uno de la lista de smbolos.
El segundo establece que solo son hola y adis esos valores
permitidos.
RANGO DE LOS ATRIBUTOS
Cuando los atributos son numricos conviene, en ocasiones,
establecer sus valores mximos y mnimos, para lo que se
usa la sintaxis.

Si se utiliza la palabra ?VARIABLE como valor minimo,


entonces el limite inferior tomara el valor - , y se utiliza
como valor mximo, dicho limite toma el valor + .
Si se utiliza la restriccin de rango, range, no pueden
utilizarse las restricciones allowed-integers, allowed-floats,
allowed-numbers y allowed-values.
CARDINALIDAD DE LOS
ATRIBUTOS
En otras ocasiones puede que no deseemos introducir un numero
ilimitado de campos en una casilla multicampo.

El primer <limite> es el numero mnimo de campos que pueden


almacenarse en una casilla y el segundo <limite> es el numero mximo
de campos que pueden almacenarse en una casilla. Si se utiliza la
palabra clave ?VARIABLE como primer lmite, entonces la cardinalidad
mnima es cero. Si se utiliza la palabra clave ?VARIABLE como segundo
lmite, entonces la cardinalidad mxima es +1. Si no se especifica la
cardinalidad de un atributo se supone que se optado por introducir ?
VARIABLE en ambos lmites.
La restriccin de cardinalidad no puede utilizarse en casillas formadas por
un solo campo. Solo se utilizan para casillas multicampo.
VALORES POR DEFECTO DE UN
ATRIBUTO
Las casillas en los constructores deftemplate y instance
pueden tomas valores por defecto si no se especifica
ningn valor por defecto. CLIPS utiliza las siguientes
reglas, y en el orden que se exponen, para derivar el
valor por defecto que no se ha especificado.
Comando: Default NONE
Sintaxis: <atrib-por-defecto> :: = (default ?NONE)

Establece que siempre es necesario que el usuario


establezca un valor para la casilla a la que se le aplica
esta restriccin. Si no se introducen valores por parte del
usuario, en las casillas con esta restriccin, CLIPS no
aceptara el hecho.
Comando: Default DERIVE
Sintaxis: <atrib-por-defecto> :: = (default ?DERIVE)
En este caso se obtiene un valor por defecto que viene
dado por la restriccin de la casilla.
Comando: Default <expresin>
Sintaxis: <atrib-por-defecto> :: = (default
<expresion>)

Tomar como valor por defecto la propia expresin.


Comando: (facts)
Sintaxis: (facts)
Comando (facts) para mostrar los hechos almacenados al
momento.
Comando: (reset)
Sintaxis: (reset)
Comando (reset) limpia nuestra ventana de hechos
almacenados.
Comando: (ppdeffacts)
Sintaxis: (ppdeffacts [<nombre-de-la-definicion>])
Nos muestra los hechos iniciales que tenemos segn el
nombre que le asignamos.
Comando: (list-deffacts)
Sintaxis: (list-deffacts )
Nos muestra una lista de los hechos iniciales creadas.
Comando: (list-deffacts *)
Sintaxis: (list-deffacts [<nombre-del-modulo>])
Este comando muestra todos los hechos iniciales creados
y solo deja los hechos iniciales creados y/o si queremos
visualizar un listado de hechos iniciales solo cambiamos
el asterisco por el nombre.
Comando: (undeffacts)
Sintaxis: (undeffacts <nombre-de-la-definicion>)
Borra los hechos de ese constructor, en el caso de que
tengamos otro constructor sus hechos se quedan.
Comando: (undeffacts *)
Sintaxis: (undeffacts *)
Borra todos los hechos iniciales de todos los constructores
(* significa todos).
Comando: (deftemplate)
Sintaxis: (deftemplate <nombre-deftemplate>
[<comentario>]
<definicion-casillas>*)
Este comando nos sirve para crear plantillas cons sus
respectivos atributos.
Comando: (allowed)
Sintaxis: <atributo-cte-permitido> ::= (allowed-symbols <lista-
simbolos>) |
(allowed-strings <lista-cadenas>) |
(allowed-lexemes <lista-lexemes>) |
(allowed-integers <lista-enteros>) |
(allowed-floats <lista-reales>) |
(allowed-numbers <lista-numeros>) |
(allowed-instance-names <lista-nombre-instancias>) |
(allowed-values <lista-valores>)
Comando: (allowed)
Este comando se utiliza al crear una plantilla lo que nos
permite poner una lista de los posibles valores para la
casilla.
Comando: (list-deftemplates)
Sintaxis: (list-deftemplates)
Utilizado para listar las plantillas que se encuentran en
uso.
Comando: (list-deftemplates *)
Sintaxis: (list-deftemplates *)
Lista todas las plantillas incluyendon las creadas
recientemente y las de hechos iniciales.
Comando: (assert <deftemplate>)
Sintaxis: (assert <deftemplate>)
Se ingresan valores por defecto hacia la plantilla.
Comando: (undeftemplate
<plantilla>)
Sintaxis: (undeftemplate <plantilla>)
Nos sirve para eliminar la plantilla, siempre y cuando esta
plantilla no tenga hechos almacenados y si los tiene,
habra que borrarlos para poder eliminar la plantilla.
Comando: (undeffacts)
Sintaxis: (undeffacts <nombre-de-la-definicion>
Nos sirve para eliminar platillas definidas de hechos
iniciales.
Comando: (watch facts)
Sintaxis: (watch facts)
Nos permite listar mensajes que indican las
modificaciones de los hechos.
Comando: (unwatch facts)
Sintaxis: (unwatch facts)
Para desactivar los mensajes de las modificaciones hacia
la lista de hechos.

También podría gustarte