SlideShare una empresa de Scribd logo
1 de 8
Explicación del Programa
Buscapersona.clips
Programa:
 (deftemplate persona
 (slot nombre)
 (slot ojos))
 (deffacts personas
 (persona(nombre Miguel) (ojos verdes))
 (persona(nombre Ana)(ojos negros))
 (persona(nombre Jairo)(ojos cafes))
 (persona(nombre Elizabeth)(ojos azules))
 (defrule busca-personas
 (persona (nombre ?nombre1)
 (ojos ?ojos1&azules|verdes))
 (persona(nombre ?nombre2&-?nombre1)
 (ojos negros))
 =>
 (printout t ?nombre1
 "tiene los ojos" ?ojos1 crlf)
 (printout t ?nombre2 "tiene los ojos negros" crlf)
 (printout t "--------------" crlf))
Explicación
  Constructor deftemplate:

  este constructor crea una plantilla parecido a lo que
  se conoce como 'clase' en la programación
  orientada a objetos., que se usa para acceder
  haciendo referencia al nombre con el que se definió
  a los campos (SLOTS) de un hecho no ordenado.

  Sintaxis:
  (deftemplate   <nombre> [sentencias] <definicion-
  slots*)
Atributo Slots:

Es posible restringir el tipo, valor, rango numérico y la
cordialidad (el numero mínimo y máximo que puede
tomar un slots) todas estas características ayudan en el
desarrollo y el mantenimiento de un sistema.
Constructor Deffacts:

 Éste constructor permite especificar un
 conjunto de hechos como conocimientos
 inicial. Los hechos de las sentencias deffacts son
 añadidas a la MT utilizando el comando reset.

 El comando reset elimina todos los datos que
 hubiera en la lista hechos actual,
 y   a   continuación      añade    los  hechos
 correspondientes a sentencias deffects.
Constructor defrule:
  el consecuente de una regla es un conjunto de acciones a
  ser ejecutadas cuado
  la regla es aplicable. estas acciones se ejecutan cuando el
  motor de inferencia
  de Clips es instruido para que comience la ejecucion de la
  reglas aplicables.
  una regla Clips es una identidad independiente, no es
  posible el paso de datos
  entre dos reglas.
Comando printout:

Sirve para imprimir en pantalla los resultados, cuando
se cumple la función lógica se puede poner una 't'
para que sea siempre cierta, se imprime en pantalla el
texto o la variable que se indique.
Programa en ejecución:

Más contenido relacionado

La actualidad más candente

Scjp Jug Section 2 Flow Control
Scjp Jug Section 2 Flow ControlScjp Jug Section 2 Flow Control
Scjp Jug Section 2 Flow ControlJose Selman
 
Presentación 13 Paso por referencia
Presentación 13 Paso por referenciaPresentación 13 Paso por referencia
Presentación 13 Paso por referenciaAndres Bedoya Tobon
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbujaOscar Mora
 
11 Recursion
11 Recursion11 Recursion
11 RecursionUVM
 
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓNTEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓNAnyeni Garay
 
Eficiencia de los lenguajes basados en reglas 2a parte
Eficiencia de los lenguajes basados en reglas 2a parteEficiencia de los lenguajes basados en reglas 2a parte
Eficiencia de los lenguajes basados en reglas 2a parteUVM
 
Robin riberoprograma2
Robin riberoprograma2Robin riberoprograma2
Robin riberoprograma2Jose Tannous
 
Jyoc java-cap02 bifurcaciones
Jyoc java-cap02 bifurcacionesJyoc java-cap02 bifurcaciones
Jyoc java-cap02 bifurcacionesJyoc X
 
Tema 2 arreglos
Tema 2 arreglosTema 2 arreglos
Tema 2 arreglosAFHS
 
Hack (Lenguaje de Programacion)
Hack (Lenguaje de Programacion)Hack (Lenguaje de Programacion)
Hack (Lenguaje de Programacion)Elwin Huaman
 

La actualidad más candente (19)

Scjp Jug Section 2 Flow Control
Scjp Jug Section 2 Flow ControlScjp Jug Section 2 Flow Control
Scjp Jug Section 2 Flow Control
 
Presentación 13 Paso por referencia
Presentación 13 Paso por referenciaPresentación 13 Paso por referencia
Presentación 13 Paso por referencia
 
Presentación 09 Cajas blanca
Presentación 09 Cajas blancaPresentación 09 Cajas blanca
Presentación 09 Cajas blanca
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbuja
 
11 Recursion
11 Recursion11 Recursion
11 Recursion
 
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓNTEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
 
Eficiencia de los lenguajes basados en reglas 2a parte
Eficiencia de los lenguajes basados en reglas 2a parteEficiencia de los lenguajes basados en reglas 2a parte
Eficiencia de los lenguajes basados en reglas 2a parte
 
Rubenmajano
RubenmajanoRubenmajano
Rubenmajano
 
Robin riberoprograma2
Robin riberoprograma2Robin riberoprograma2
Robin riberoprograma2
 
Semana 1 Estructuras de Datos en Java
Semana 1   Estructuras de Datos en JavaSemana 1   Estructuras de Datos en Java
Semana 1 Estructuras de Datos en Java
 
In 15
In 15In 15
In 15
 
In 21
In 21In 21
In 21
 
Jyoc java-cap02 bifurcaciones
Jyoc java-cap02 bifurcacionesJyoc java-cap02 bifurcaciones
Jyoc java-cap02 bifurcaciones
 
Tema 2 arreglos
Tema 2 arreglosTema 2 arreglos
Tema 2 arreglos
 
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVANOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
 
5.instrucciones de control en java parte2
5.instrucciones de control en java parte25.instrucciones de control en java parte2
5.instrucciones de control en java parte2
 
Hack (Lenguaje de Programacion)
Hack (Lenguaje de Programacion)Hack (Lenguaje de Programacion)
Hack (Lenguaje de Programacion)
 
Pila simple
Pila simplePila simple
Pila simple
 
If
IfIf
If
 

Similar a Explicación del programa buscapersona

Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...jaircazarin
 
Programación en OTcl
Programación en OTclProgramación en OTcl
Programación en OTclJesus Vilchez
 
Sistemas de producción: Introducción a CLIPS
Sistemas de producción: Introducción a CLIPSSistemas de producción: Introducción a CLIPS
Sistemas de producción: Introducción a CLIPSfmartin6
 
ActionScript 3 - Iniciación
ActionScript 3 - IniciaciónActionScript 3 - Iniciación
ActionScript 3 - IniciaciónFrancisco Ortiz
 
Prueba programacion
Prueba programacionPrueba programacion
Prueba programacionMarti Matura
 
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfSesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfMarxx4
 
Introduccion a C++
Introduccion a C++Introduccion a C++
Introduccion a C++LenHugo
 
Porqué Cervantes programaba mejor que tú
Porqué Cervantes programaba mejor que túPorqué Cervantes programaba mejor que tú
Porqué Cervantes programaba mejor que túAgile Spain
 
Por qué Cervantes programaba mejor que tú
Por qué Cervantes programaba mejor que túPor qué Cervantes programaba mejor que tú
Por qué Cervantes programaba mejor que túJavier Acero
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyJose Juan R. Zuñiga
 
Introducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje CIntroducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje CDiego Santimateo
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAVíctor Bolinches
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANSWilliam Diaz S
 

Similar a Explicación del programa buscapersona (20)

Viernes Tecnicos DTrace
Viernes Tecnicos DTraceViernes Tecnicos DTrace
Viernes Tecnicos DTrace
 
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
 
Taller Python
Taller PythonTaller Python
Taller Python
 
Programación en OTcl
Programación en OTclProgramación en OTcl
Programación en OTcl
 
5 c iterative
5 c iterative5 c iterative
5 c iterative
 
Sistemas de producción: Introducción a CLIPS
Sistemas de producción: Introducción a CLIPSSistemas de producción: Introducción a CLIPS
Sistemas de producción: Introducción a CLIPS
 
ActionScript 3 - Iniciación
ActionScript 3 - IniciaciónActionScript 3 - Iniciación
ActionScript 3 - Iniciación
 
Prueba programacion
Prueba programacionPrueba programacion
Prueba programacion
 
Lenguaje c ++ guía para programadores
Lenguaje c ++  guía para programadoresLenguaje c ++  guía para programadores
Lenguaje c ++ guía para programadores
 
Revista digital
Revista digitalRevista digital
Revista digital
 
Anexo1
Anexo1Anexo1
Anexo1
 
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfSesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
 
Introduccion a C++
Introduccion a C++Introduccion a C++
Introduccion a C++
 
Porqué Cervantes programaba mejor que tú
Porqué Cervantes programaba mejor que túPorqué Cervantes programaba mejor que tú
Porqué Cervantes programaba mejor que tú
 
Por qué Cervantes programaba mejor que tú
Por qué Cervantes programaba mejor que túPor qué Cervantes programaba mejor que tú
Por qué Cervantes programaba mejor que tú
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
Programación Java
Programación JavaProgramación Java
Programación Java
 
Introducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje CIntroducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje C
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
 

Explicación del programa buscapersona

  • 2. Programa: (deftemplate persona (slot nombre) (slot ojos)) (deffacts personas (persona(nombre Miguel) (ojos verdes)) (persona(nombre Ana)(ojos negros)) (persona(nombre Jairo)(ojos cafes)) (persona(nombre Elizabeth)(ojos azules)) (defrule busca-personas (persona (nombre ?nombre1) (ojos ?ojos1&azules|verdes)) (persona(nombre ?nombre2&-?nombre1) (ojos negros)) => (printout t ?nombre1 "tiene los ojos" ?ojos1 crlf) (printout t ?nombre2 "tiene los ojos negros" crlf) (printout t "--------------" crlf))
  • 3. Explicación Constructor deftemplate: este constructor crea una plantilla parecido a lo que se conoce como 'clase' en la programación orientada a objetos., que se usa para acceder haciendo referencia al nombre con el que se definió a los campos (SLOTS) de un hecho no ordenado. Sintaxis: (deftemplate <nombre> [sentencias] <definicion- slots*)
  • 4. Atributo Slots: Es posible restringir el tipo, valor, rango numérico y la cordialidad (el numero mínimo y máximo que puede tomar un slots) todas estas características ayudan en el desarrollo y el mantenimiento de un sistema.
  • 5. Constructor Deffacts: Éste constructor permite especificar un conjunto de hechos como conocimientos inicial. Los hechos de las sentencias deffacts son añadidas a la MT utilizando el comando reset. El comando reset elimina todos los datos que hubiera en la lista hechos actual, y a continuación añade los hechos correspondientes a sentencias deffects.
  • 6. Constructor defrule: el consecuente de una regla es un conjunto de acciones a ser ejecutadas cuado la regla es aplicable. estas acciones se ejecutan cuando el motor de inferencia de Clips es instruido para que comience la ejecucion de la reglas aplicables. una regla Clips es una identidad independiente, no es posible el paso de datos entre dos reglas.
  • 7. Comando printout: Sirve para imprimir en pantalla los resultados, cuando se cumple la función lógica se puede poner una 't' para que sea siempre cierta, se imprime en pantalla el texto o la variable que se indique.