Jess – the Rule Engine for the Java™ Platform

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Plug-ins Orientado a Testes
Advertisements

Viviane Torres da Silva
Sistema Especialista Java/ Jess
O Essencial sobre Linguagens de Programação Luís Caires Maio 2005.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Introdução à Computação - Jorge Macêdo
PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena
Introdução à Linguagem Prolog
Raciocínio Viviane Torres da Silva
Sistemas Baseados em Conhecimento
Agentes Móveis Marcelo Bezerra dAmorim Sumário n Motivação n Introdução ao Paradigma de Agentes Móveis n Vantagens n Conceitos de Agentes Móveis n Tecnologias.
FACENS – Engenharia da Computação Inteligência Artificial
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Curso Sistemas de Informação I Disciplina: Arquitetura de Software
Francesca Volcan Pio Maiara Heil Cancian Ricardo Bedin França
UFSC–UNIVERSIDADE FEDERAL DE SANTA CATARINA
Protégé 3.0 Apresentação para a disciplina DAS 6607
Linguagens de Programação
Análise e Projeto de Sistemas
Introdução aos Sistemas Especialistas
INF 1771 – Inteligência Artificial
CONCEITOS Modelo de Dados
Introdução a Programação
Otavio Bergmann e Raphael Miollo Parte 2 – Investigação e apresentação.
Recuperação de Informação usando o Apache Lucene
Revisão da Plataforma wxWindows 2003/1 1 wxWindows é um framework de código aberto* em linguagem C++, que fornece uma API simples e abrangente para desenvolvimento.
Programação Avançada Prof. Natalia Castro Fernandes
INTELIGÊNCIA ARTIFICIAL (IA OU AI)
JAVA Linguagem Ambiente de Desenvolvimento
Introdução a Computação e Cálculo Numérico
Desenvolvimento de Sistemas Orientados a Aspectos
INTELIGÊNCIA ARTIFICIAL
Linguagens de programação
Caracterização e Objetivos das LP
Laboratório I Mateus Raeder Material baseado nos originais da
INF 1771 – Inteligência Artificial
Regras de Produção: o Motor de Inferência JESS
JEOPS Java Embedded Object Production System
Sistemas Especialistas
Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento
Inteligência Artificial
Protégé-OWL e JessTab Adriano Melo Monitoria Sistemas Inteligentes Prof. Fred Freitas.
Adriano Melo sistemas inteligentes
Disciplina: Inteligência Artificial
Sistemas Baseados em Conhecimento
DISCIPLINA INFORMÁTICA MÉDICA Prof. Eliane
Paradigma funcional.
Sistemas Operacionais
Paradigmas de Linguagens de Programação
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Regras de Produção: o Motor de Inferência JESS
Estendendo o Eclipse Bruno Costa Bourbon Jarbas Jácome de Oliveira Júnior {bcb,
Retaguarda - Bloquear Programa
PCS - Departamento de Engenharia de Computação e Sistemas Digitais Projeto de Formatura – Turmas 2010 Integrantes: Professor Orientador: Co-orientador:
Programação Lógica com Prolog
Desenvolvimento de Software Dirigido a Modelos
GARBAGE COLLECTOR 1 UNIVERSIDADE FEDERAL DO PARÁ - UFPA.
Algoritmos e Programação MC102
SISTEMAS ESPECIALISTAS Expert Sinta Prof. Mário Dantas
CloudSim Um framework para modelagem e simulação de infraestrutura e serviços de Computação em Nuvem.
Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.
Revisão 1º Bimestre Inteligência Artificial
Rodrigo Cristiano Silva Introdução A HTML 5 foi idealizada por um grupo de “freethinkers” que estavam cansados do padrão oficial da.
Universidade Estadual de Santa Cruz Conceitos de Linguagens de Programação Aluno: Pedro Arthur M. Nascimento Ilhéus-Ba, 05 de Novembro de 2012.
Influencias sobre o Projeto da Linguagem
Módulo I – Softwares: Linguagens de Programação Prof.: Rogério Morais.
Tipo Abstrato de Dados (TAD) Estrutura de Dados Professor: Rodrigo Alves Sarmento Professor: André Cypriano.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
Transcrição da apresentação:

Jess – the Rule Engine for the Java™ Platform Inteligência Artificial Aplicada a Controle de Processos e Automação Industrial Jess Grupo: Francisco de Assis Neto Rodrigo Tacla Saad Marcelo Valverde

Jess – Apresentação Sistemas Especialistas: Ferramentas - Comparativo O que são? Para que servem? Arquitetura Ferramentas - Comparativo Jess O que é? História Problema Motivador – Assistente de Vendas Implementação do Problema

Jess – Sistemas Especialistas O que são? Sistemas Especialistas são programas de computador que contêm conhecimentos específicos de um tema de um ou mais especialistas humanos. Estes programas foram inicialmente desenvolvidos por pesquisadores da área de Inteligência Artificial entre os anos de 1960 e 1970 e usados comercialmente depois dos anos 80. A forma mais comum dos sistemas especialistas são os programas feitos sobre regras que analisam informações (geralmente inseridas pelo usuário do sistema) sobre um problema relacionado a um tema específico, como também fornecendo a análise do problema, e, dependendo da implementação do sistema, pode recomendar ao usuário a melhor ação a tomar.

Jess – Sistemas Especialistas Para que Servem? Sistemas Especialistas são muito valiosos para organizações que possuem alto nível de know-how e expertise, os quais são muito difíceis de serem transferidos entre os membros. Eles são projetados para possuírem a inteligência e a informação encontradas no intelecto dos experts e repassá-las para os outros membros da organização.

Jess – Arquitetura Arquitetura com trés módulos: uma base de regras, uma memória de trabalho e um motor de inferência.

Jess – Comparativo I

Jess – Comparativo II

Jess – O que é? Desenvolvido por Ernest Friedman-Hill (Sandia National Labs), 1995. Plataforma Java para Sistemas Especialistas Ferramenta proprietária. Plug-in do Eclipse. Compila arquivo baseados em CLIPS. API Java documentada e com código fonte disponível. Algoritmo de RETE.

Jess – História (LISP) LISt Processing Linguagem de programação funcional concebida por John McCarthy em 1958. Baseado no Lambda Cálculo (Alonzo Church, década de 30). Amplamente difundida na comunidade de IA. (defun factorial (n) (if (<= n 1) 1 (* n (factorial (- n 1)))))

Jess – História (CLIPS) C Language Integrated Production System Deselvonvida em 1984 (NASA - Johnson Space Center). Implementar Sistemas Especialistas. Problemas do LISP: Não era disponível em vários computadores. Alto custo de hardware e software. Pouca integração com outras linguagens Atualmente é uma ferramenta de código livre.

Jess – Assistente de Vendas Objetivo: Implementação de um assistente de vendas de automóveis. Esperteza: O assistente deduz o estilo da pessoa e sugere os automóveis mais indicados. Dados para análise: O assistente é alimentado com alguns dados, são eles: idade, sexo, estado civil, número de filhos, renda mensal e o período de financiamento. Obs: O assistente deve oferecer somente carros que o cliente tem capacidade de pagar.

Jess – Representação do Conhecimento Quadros: Consiste em um conjunto de atributos (slots) que descrevem características do objeto representado. Permite representar a herança de propriedades. deftemplate: Quadros (estrutura dos fatos) são definidos através do comando “deftemplate”. ex: (deftemplate automovel (slot garantia) (slot modelo) (slot fabricante) (slot preco))

Jess – Representação do Conhecimento

Jess – Memória de Trabalho Fatos: Para o Jess, todo fato na memória de trabalho é visto como uma tupla de uma tabela relacional. Ele sempre possui um nome e um conjunto de propriedades. assert: Insere fatos, com estruturas previamente definidas ou não, na memória de trabalho. deffacts: Insere uma lista de fatos de uma vez. ex: (deffacts start (phase start) (popular (modelo uno) (garantia 1ano) (fabricante fiat) (preco 18000)))

Jess – Funções deffunctions: Jess permite que você defina suas próprias funções. Ex: (deffunction printCar (?modelo ?garantia ?fabricante ?preco ?portas ?consumo ?potencia) (printout t "Carro:"?modelo crlf "Especificacoes:" crlf "fabricante = "?fabricante crlf "garantia = "?garantia crlf "preco = "?preco crlf "portas = "?portas crlf "consumo = "?consumo crlf "potencia = "?potencia crlf crlf))

Jess – Regras Uma regra em Jess é algo como declarações if....then usadas nas linguagens procedurais, mas estas não são usadas de forma procedural. Enquanto if...then são executadas em momentos definidos e em uma ordem definida, de acordo como o programador as escreveu, regras em jess são executadas sempre que seus “ifs” (parte esquerda ou LHS) são satisfeitas. Isto torna as regras em Jess menos determinísticas que em um programa procedural típico. defrules: O comando defrules é formado por duas partes separadas pelo símbolo “=>”, o qual pode ser lido como a palavra “then”. A primeira parte do comando (LHS) consiste nas condições aplicadas sobre os fatos armazenados na memória de trabalho. A segunda parte (RHS) consiste nas ações (chamadas de funções).

Jess – Regras Ex:(defrule start ?phase <- (phase start) => (retract ?phase) (printout t "Seja Bem Vindo ao assitente Virtual. " crlf) (assert (phase askAge))) (defrule whichStyle_popular (declare (salience 1)) ?phase <- (phase testStyle) (userMonthlyIncome ?mi&:(> ?mi 1000)) => (retract ?phase) (printout t "Estilo Popular. " crlf) (assert (userStyle Popular)) (assert (phase getCar)))

Jess Fim Obrigado