Cuestiones de la práctica 3.
1.- ¿Que entiende que hace un programa en
CLIPS?
-Clips representa un entorno completo para el
desarrollo de los sistemas expertos; incluye un editor de programas y
herramientas de depuración.
2.- ¿Qué entiende por un programa dirigido
por datos? ¿que diferencia existe con respecto a la programación
convencional?
- Un programa (sistema
experto) basado en reglas, en el cual son los datos o también llamado hechos los
que estimulan la ejecución del programa a través del motor de inferencia. -La
principal diferencia es que en los lenguajes pro cedulares la ejecución puede
darse sin datos, mientras que en CLIPS estos son necesarios.
3.- ¿Cuales son los elementos básicos del
sistema CLIPS?
- Los tres elementos básicos son: Tipos
primitivos de datos, funciones y constructores.
4.- ¿Que diferencia substancial existe entre
las primeras y las ultimas versiones de CLIPS?
- En las primeras versiones, CLIPS sólo tenia
capacidad para representar reglas y hechos. Sin embargo, en las versiones mas
modernas es posible incluir en las cláusulas de las reglas objetos, es posible
utilizar los objetos sin necesidad de usar las reglas.
5.- Indique algunos sistemas operativos
desde los que es posible ejecutar el entorno CLIPS.
- CLIPS funciona en Windows, DOS,
Unix...
6.- Indique las ordenes de entrada y salida
a CLIPS desde el sistema operativo MS-DOS.
- Para entrar en el programa se tiene que estar
en el PATH donde se encuentre el programa una vez allí se escribe la palabra
CLIPS seguido de Intro.
Para salir se utiliza la orden (exit).
7.- Indique cuales son los elementos básicos
de programación dentro del entorno de CLIPS.
-Clips proporciona tres elementos básicos,
estos son: tipos primitivos de datos, funciones y constructores.
8.- Enumere y describa los tipos primitivos
de datos con que trabaja CLIPS.
- Los tipos primitivos de datos son números
enteros, números en punto flotante, símbolos, cadenas, direcciones externas,
direcciones de hechos, nombres de instancias y direcciones de instancias.
Numero entero: Es un número formado por
dígitos entre 0 y 9.
Número en punto flotante: Un número en
punto flotante se compone de dígitos entre 0 y 9, un punto decimal (.), un signo
(+ o -) y, opcionalmente, un carácter (e) para la notación exponencial con su
correspondiente signo.
Símbolo: Es una secuencia de caracteres
ASCII imprimibles. El símbolo acaba con un delimitador.
Cadena de caracteres: Conjunto de
caracteres que comienzan con una doble comilla ", y va seguida por cero o
mas caracteres imprimibles y finaliza con doble comilla.
Dirección externa: Es la dirección de
memoria de una estructura de datos externa que devuelve una función escrita en
un lenguaje como C ó ADA y que ha sido integrada en CLIPS.
Direcciones de hechos: Son aquellas que
hacen referencia por la posición al hecho (que es una lista de valores
atómicos).
Direcciones de instancias: Son aquellas
que hacen referencia a una instancia por su posición.
Nombres de instancias: Son objetos
consistentes en ejemplos específicos de clases.
9.- Señale la diferencia entre un símbolo y
una cadena de caracteres.
Los símbolos esta encerrados entre
delimitadores (), mientras que las cadenas van encerradas entre dobles
comillas "".
10.- Indique cuales son los delimitadores
que pueden usarse para terminar la representación de un símbolo.
- Cualquier carácter no imprimible ASCII,
incluyendo espacios, tabuladores, retornos de carro, saltos de línea, una doble
comilla, los paréntesis de apertura ( y cierre ), un símbolo
&, una barra vertical |, un símbolo menor <, y una tilde
~, punto y coma ; que aunque se usa para comenzar un comentario
también actúa como delimitador.
11.- Indique la importancia de los
caracteres "?" y "$". Indique la posibilidad de utilizarlos dentro de un
símbolo.
- El carácter ? y la secuencia de
caracteres $ están reservadas para representar las variables en CLIPS y
no pueden situarse al comienzo de un símbolo, aunque un símbolo puede contener
estos caracteres.
12.- Indique la importancia del uso de
paréntesis para la definición de un hecho.
- Los paréntesis son aquellos que se usan como
delimitadores.
13.- Establezca la diferencia entre tipo de
dato, campo, valor y variable. Describa un ejemplo indicando cada uno de estos
términos.
- La diferencia que hay entre ellos es que los
campos son zonas de memoria donde se almacena un valor, los valores son los
datos introducidos y las variables son un lugar simbólico donde se almacena un
valor.
por ejemplo en el lenguaje c seria:
struct nodo // esto es el tipo de dato.
{
int inf; // esto es un ejemplo de campo
inf
}
main()
{
struct nodo pepe; // pepe seria la
variable.
pepe.inf=3;
}
14.- ¿Que diferencia existe entre un valor
de campo simple y un valor multicampo? Describa un ejemplo.
-Los valores de campo simple, son aquellos que
tienen un solo campo para almacenar un valor. Los valores multicampo son
aquellos que poseen mas de un campo para almacenar valores.
Valor de campo simple: (hola)
Valor de campo múltiple: (hola mundo 23)
15.- Establezca la diferencia entre función
y orden en CLIPS. Describa algunos ejemplos.
-Usaremos la definición de función para
referirnos a funciones que devuelven un valor mientras que usaremos la
denominación de ordenes para referirnos a funciones que realizan una o mas
acciones y no devuelven ningún valor.
Ejemplos:
De orden: (retract)
De función: (5 (-2 4))
16.- ¿Que diferencia existe entre las
funciones definidas por el usuario mediante el constructor deffunction y las
funciones escritas en otros lenguajes, como ejemplo C, y enlazadas con
CLIPS?
- La diferencia es que al declarar una función
con deffunction es que esta (la declarada) trabaja en modo interprete.
17.- ¿Que son funciones
genéricas?
Las funciones genéricas son aquellas que
permiten que se ejecute diferentes partes de código dependiendo de los
argumentos que se pasen a las mismas. Estas se definen mediante los
constructores defgeneric y defmethod.
18.- ¿Explique la rotación de las funciones
en CLIPS y describa un ejemplo?
Se escribe de la siguiente forma, entre
paréntesis y separadas pos espacios: (nombre función argumento)
Ejemplos:
(* 8 3 2)
(+ 3 4 5 9)
(- 2 (* 6 3) 6 9 2 1)
19.- ¿Que diferencia existe entre funciones
y expresiones en CLIPS? Escriba un ejemplo.
- Mientras que una función se refiere a una
parte de código ejecutable identificado por el nombre de una función, una
expresión se refiere a una funcione en la que se especifican los
argumentos.
Ejemplo de función: (*)
Ejemplo de expresión: (* 8 3 1)
20.- Enumere los diferentes constructores
con que cuenta CLIPS.
En Clips se utilizan los siguientes
constructores: defmodule, defrule, deffacts, deftemplate, defglobal,
deffunction, defclass, definstances, defmessagehanders, defgeneric y
defmethod. Un constructor va encerrado entre parentesis.
21.- Indique que formas hay de incluir
comentarios dentro del código escrito en clips. Describa varios
ejemplos.
Para comentarios en CLIPS se pueden realizar de
dos formas usando (;) y el comentario sería todo lo que hay detrás de este hasta
el salto de línea, y la otra forma es usando una cadena de comentario dentro del
constructor.
Ejemplo:
(defrule silla "Ejemplo de la
silla"
(tiene persona encima)
=>
(assert (tiene pata_silla
rota)))
Ejemplo:
(defrule mesa ; Ejemplo de la silla
(tiene persona
encima)
=>
(assert (tiene pata_silla rota)))
Volver a la pagina
anterior
Cerrar
Ventana