Articulo de referencia

Jess (lenguaje de programación)

Jess es un motor de reglas para la plataforma de computación Java , escrito en el lenguaje de programación Java . Fue desarrollado por Ernest Friedman-Hill de los Laboratorios N...

Jess es un motor de reglas para la plataforma de computación Java , escrito en el lenguaje de programación Java . Fue desarrollado por Ernest Friedman-Hill de los Laboratorios Nacionales Sandia . [ 1 ] Es un superconjunto del lenguaje CLIPS . [ 1 ] Fue escrito por primera vez a finales de 1995. [ 1 ] El lenguaje proporciona programación basada en reglas para la automatización de un sistema experto , y a menudo se le denomina shell de sistema experto . [ 1 ] En los últimos años, también se han desarrollado sistemas de agentes inteligentes , que dependen de una capacidad similar.

En lugar de un paradigma procedimental , donde un programa tiene un bucle que se activa solo una vez, el paradigma declarativo utilizado por Jess aplica un conjunto de reglas a un conjunto de hechos de forma continua mediante un proceso denominado coincidencia de patrones . Las reglas pueden modificar el conjunto de hechos o ejecutar cualquier código Java. Para la ejecución de las reglas, utiliza el algoritmo Rete [ 1 ] .

Licencia

La licencia de Jess es gratuita para uso educativo y gubernamental, y es un software propietario que requiere licencia para uso comercial. En cambio, CLIPS, que es la base y el código inicial de Jess, es software libre y de código abierto .

Ejemplos de código

Ejemplos de código:

; es un comentario( enlazar ?x 100 ); x = 100( deffunction max ( ?a ​​?b ) ( if ( > ?a ?b ) then ?a else ?b ))( deffacts mi habitación ( mueble silla ) ( mueble mesa ) ( mueble cama ) )( deftemplate coche ( slot color ) ( slot kilometraje ) ( slot valor ) )( afirmar ( coche ( color rojo ) ( kilometraje 10000 ) ( valor 400 )))

Código de ejemplo:

( clear ) ( deftemplate donante de sangre ( slot nombre ) ( slot tipo )) ( deffacts banco de sangre ; poner nombres y sus tipos en [[memoria de trabajo]] ( donante de sangre ( nombre "Alice" )( tipo "A" )) ( donante de sangre ( nombre "Agatha" )( tipo "A" )) ( donante de sangre ( nombre "Bob" )( tipo "B" )) ( donante de sangre ( nombre "Barbara" )( tipo "B" )) ( donante de sangre ( nombre "Jess" )( tipo "AB" )) ( donante de sangre ( nombre "Karen" )( tipo "AB" )) ( donante de sangre ( nombre "Onan" )( tipo "O" )) ( donante de sangre ( nombre "Osbert" )( tipo "O" )) ) ( defrule puede -donar-al-mismo-tipo-pero-no-sí-mismo ; maneja A > A, B > B, O > O, AB > AB, pero no N1 > N1 ( donante de sangre ( nombre ?nombre )( tipo ?tipo )) ( donante de sangre ( nombre ?nombre2 )( tipo ?tipo2 &: ( eq ?tipo ?tipo2 ) &: ( neq ?nombre ?nombre2 ) )) => ( printout t ?nombre " puede dar sangre a " ?nombre2 crlf ) ) ( defrule O-da-a-otros-pero-no-a-sí-mismo ; O a O cubrir en la regla anterior ( donante de sangre ( nombre ?nombre )( tipo ?tipo &:( eq ?tipo "O" ))) ( donante de sangre ( nombre ?nombre2 )( tipo ?tipo2 &: ( neq ?tipo ?tipo2 )&: ( neq ?name ?name2 ) )) => ( printout t ?name " puede dar sangre a " ?name2 crlf ) ) ( defrule A-or-B-gives-to-AB ; case O da a AB y AB da a AB ya tratado ( donante de sangre ( nombre ?name )( tipo ?type &: ( o ( eq ?type "A" ) ( eq ?type "B" )))) ( donante de sangre ( nombre ?name2 )( tipo ?type2 &: ( eq ?type2 "AB" ) &: ( neq ?name ?name2 ) )) => ( printout t ?name " puede dar sangre a " ?name2 crlf ) ) ;(watch all) ( reset ) ( run )

Véase también

Referencias

  1. 1 2 3 4 5 Hemmer, Markus C. (2008). Expert Systems in Chemistry Research . CRC Press. pp. 47–48 . ISBN  9781420053241Consultado el 30 de marzo de 2012 .ISBN 978-1-4200-5323-4

Fuentes adicionales

  • Friedman-Hill, Ernest (2003). Jess en acción: Sistemas basados ​​en reglas en Java . Manning Publications. ISBN 9781930110892Consultado el 30 de marzo de 2012 .ISBN 1-930110-89-8
  • "Jess, el motor de reglas para la plataforma Java" . Archivado del original el 29 de diciembre de 2011.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Jess_(programming_language)&oldid=1351473280 "