1.- Indique la función que desempeña el constructor deftemplate.
- El constructor deftemplate, permite establecer una estructura en la que un grupo de campos
están relacionados entre si. Estos campos son los espacios de memoria reservados para representar los valores que toman los atributos. deftemplate
lo que hace es establecer esta estructura que denominamos plantilla.
2.- Defina el concepto de plantilla.
- Una plantilla la podemos considerar de manera análoga a una estructura en la programación
en C. Por lo tanto una plantilla será un grupo de campos que están relacionados entre si.
3.- ¿Que efecto tiene la orden (reset) sobre las plantillas?
- Con la orden (reset) el índice de hechos se pone a 0 y también insertara un hecho especial denominado hecho inicial
f-0
4.- ¿Que atributos se pueden asignar a los campos de las plantillas?
- Si no se especifica el atributo (slot) el valor será de tipo default, especifica un valor por defecto
estático o default-dinamic, especifica un valor por defecto dinámico.
Si especificamos el atributo (slot), su valor podrá ser de typo: SYMBOL, STRING, INTEGER, FLOAT, ETC...
5.- ¿Como se puede especificar en una plantilla los valores permitidos?
- Se especifican poniendo allowed y seguido a esto el tipo de valor que queramos introducir.
Por ejemplo:
allowed-symbols persona cosa
allowed-integers 1 23 34
allowed-values "Hola" persona 15046
6.- ¿Que se entiende por especificar un rango para los valores permitidos?
- Con ellos, lo que se pretende conseguir es establecer los limites de valores.
Por ejemplo:
(deftemplate ordenador "datos de un ordenador"
(slot mhz
(type INTEGER)
(range 100 1800)))
7.- Indique en que medida los atributos slots y las restricciones que pueden imponerse sobre sus posibles valores implican un incremento de la capacidad de CLIPS para recoger la
máxima semántica del conocimiento estático del dominio. ¿Que ventajas e inconvenientes
tiene el uso de restricciones?
- Los atributos y las restricciones proporcionan una información mas detallada de aquello que queremos describir, de esta forma obtendremos un mayor conocimiento sobre lo que estamos trabajando.
- Con las restricciones si surgen errores sobre valores inapropiados se detectan de forma rapida.
Una de las posibles desventajas es que al poner las restricciones limitamos nuestro campo de
acción y de esta forma puede que perdamos en algunas ocasiones información que aparentemente no parece necesaria, pero que mas adelante pudiera ser necesaria. Si el chequeo de las restricciones fuera
dinámico, aumentaría el tiempo de ejecución y por lo tanto se ralentizaría el proceso al ejecutar.