Usuario:


Estructura de la Información

Storyboard

>Modelo

ID:(624, 0)



Árbol Genealógico

Imagen

>Top


Prolog: Relaciones generales

ID:(1786, 0)



Prolog: Creación de Archivo de Conocimiento

Descripción

>Top


Para ingresar conocimiento en Prolog se abre una ventana especial para su definición. Esto se puede hacer escribiendo en la ventana de dialogo el comando emacs:

```

emacs("archivo.pl").

```

Se acostumbra a asignar al archivo la extensión pl aun que se puede también trabajar con extensiones tales como txt y dat.

El archivo se puede también redactar con cualquier editor de texto ya que solo contiene los comandos de ingreso de conocimiento.

El archivo es almacenado en el directorio Prolog que se cera al instalar el programa.

ID:(1785, 0)



Prolog: Ventana de Conocimiento

Imagen

>Top


Prolog: Ventana de ingreso


ID:(2143, 0)



Prolog: Definición de Características de Elementos

Code

>Top


Lara ingresar se recomienda primero definir como se asignan las caracteristicas para lo que se escribe el signo de porcentaje seguido por la caracteristica y el numbre del elemento al que se le asigna:

```

% caracteristica(elemento)

```

Como ejemplo si se quiere asignar la caracteristica 'hombre' a los elementos o atomos "Juan", "Pedro", "Diego" y "Tomas". Esto se hace con los comandos:

```

% hombre(nombre)

hombre("Juan").

hombre("Pedro").

hombre("Diego").

hombre("Tomas").

```

Otro ejemplo seria introducir la caracteristica 'mujer' a los elementos "Maria", "Ines", "Clara" y "Teresa":

```

% mujer(nombre)

mujer("Maria").

mujer("Ines").

mujer("Clara").

mujer("Teresa").

```

Las características no se imitan solo a elementos propios de un árbol genealógico como 'hombre' y 'mujer'. Se pueden introducir también características como color de pelo ('moreno', 'rubio', etc.), color de ojos, etc.. También se pueden asociar factores numérico e incluso fechas.

Nota: el comentario, que se define mediante el simbolo %, puede contener cualquier tipo de texto y no requiere terminar con un punto. Eso si es clave que el texto y el signo % esten eparados por un espacio.

ID:(2144, 0)



Prolog: Definición de Relaciones

Code

>Top


Las relaciones son afirmaciones en que se relacionan elementos. De igual forma como en la caracteristica se recomienda definir la relación en un comentario, escribiendo

```

% relacion(elemento_1,elemento_2)

```

Un ejemplo es la definición de 'padre' que podria ser:

```

% padre(nombre del padre,nombre del hijo o hija)

```

Un ejemplo de asignaciones de paternidad seria por ello:

```

% padre(nombre del padre,nombre del hijo o hija)

padre("Juan","Diego").

padre("Juan","Clara").

padre("Juan","Ines").

padre("Diego","Tomas").

padre("Diego","Pedro").

```

Otra rlación podria ser la de madre que se definiria como:

```

% madre(nombre de la madre,nombre del hijo o hija)

```

Un ejemplo de asignaciones de maternidad seria por ello:

```

% madre(nombre de la madre,nombre del hijo o hija)

madre("Teresa","Diego").

madre("Teresa","Clara").

madre("Maria","Ines").

```

ID:(2145, 0)



Prolog: Cargar Archivo de Conocimiento

Descripción

>Top


Para cargar el archivo de experiencia se emplea el comando consult:

```

consult("archivo.pl")

```

El archivo, para el cual se emplea mucha veces la extensión pl (aun que también es la extensión empleada por el lenguaje PERL). Se puede sin embargo emplear también otras extensiones como txt o dat.

El archivo mismo esta escrito en formato texto plano por lo que se puede editar con cualquier editor de texto. Su contenido son simplemente los comandos de ingreso de información.

ID:(2146, 0)



Prolog: Relaciones lógicas AND y OR

Descripción

>Top


Al ser Prolog un lenguaje lógico debemos poder asociar diferentes afirmaciones en función de que se cumplen simultáneamente o en forma alternativa. Las relaciones lógicas básicas son la asociación AND (y) y la asociación OR (o):

En el caso del AND que solo es verdadero (1) si ambas propuestas o afirmaciones lo son, o sea:

Propuesta 1 | Propuesta 2 | Propuesta 1 AND Propuesta 2

:----------------:|:------------------:|:----------------:

falso | falso | falso

falso | verdadero | falso

verdadero | falso | falso

verdadero | verdadero | verdadero

En el caso OR se tiene la situación de la tabla derecha en que basta que uno sea verdadero (1) para que la afirmación lo sea

Propuesta 1 | Propuesta 2 | Propuesta 1 OR Propuesta 2

:----------------:|:------------------:|:----------------:

falso | falso | falso

falso | verdadero | verdadero

verdadero | falso | verdadero

verdadero | verdadero | verdadero

ID:(2147, 0)



Prolog: Relaciones Compuestas

Code

>Top


Una vez definidas las características y las relaciones se pueden definir consultas mas complejas. Para ello se pueden introducir variables que el sistema puede variar para encontrar situaciones en que la afirmación se cumple.

Es así como se puede por ejemplo introducir una variable Z que liga un elemento tipo abuelo X de otro tipo nieto Y. Z debe ser hijo de X y a su vez padre o madre de Y

Que X sea padre de Z se establece con la relación

```

padre(X,Z)

```

Que Z sea padre de Y se establece con la relación

```

padre(Z,Y)

```

y de que Z sea madre se establece con la relación

```

made(Z,Y)

```

Dado que Z puede tanto ser padre como madre de Y, tenemos que formar una nueva relación introduciendo la relación OR (o) lo que se hace con el punto coma:

```

padre(Z,Y);madre(Z,Y)

```

Para que X sea abuelo de Y debe cumplirse ademas la relación que X sea padre de Z. Como esta relación se debe dar adicionalmente a la anterior se tiene que cumplir la relación AND entre ambas que se escribe mediante una coma ','. Para asegurar que primero se evalué si Z es padre o madre de Y se rodea esta proposición con paréntesis y con ello, empleando el símbolo de definición :- se define la relación abuelo como

```

abuelo(X,Y) :-padre(X,Z),(padre(Z,Y);madre(Z,Y))

```

ID:(4312, 0)