Aula Prática - Prolog Sistemas Inteligentes /~if684

Slides:



Advertisements
Apresentações semelhantes
Lógica de Predicados e Representação de Conhecimento
Advertisements

Introdução à Linguagem Prolog
Concepção da linguagem, ou seja, porque e como ela é como é?
Laboratório de Programação
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
Elsa Carvalho 163 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos.
1 Introdução (Informal) à Programação DI/FCT/UNL 1º Semestre 2004/2005.
Software Básico Silvio Fernandes
Lógicas em Dedução Natural
Introdução à Programação Lógica
Introdução à Linguagem Prolog
Introdução à Linguagem Prolog
Prolog: Predicados Built-in 2
Programação Lógica: PROLOG
Universidade Federal do Espírito Santo Programação II Professora: Norminda Luiza.
5. Processamento de Listas
2. A Linguagem Prolog.
3. Sintaxe e Semântica.
Introdução à Modelagem Conceitual 3. Prolog
Luiz A. M. Palazzo Pelotas, maio de 2010
Revisão da Linguagem C.
A Lógica das Sentenças Abertas Profa. Ana Florencia Aula 9
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
LISTAS Uma lista é uma estrutura de dados muito comum na programação não numérica (com particular destaque na computação simbólica onde representa quase.
Inteligência Artificial: A Linguagem Prolog (parte 2)
Sintaxe e Semântica do PROLOG.
Aula Prática - Prolog Sistemas Inteligentes /~if684
LISTAS Uma lista é uma estrutura de dados muito comum na programação não numérica (com particular destaque na computação simbólica onde representa quase.
Prolog Programação Lógica Ícaro A. Souza.
Ameliara Freire Os programas manipulam dados, armazenando- os e, muitas vezes, modificando seus valores. Basicamente, a linguagem.
UNIVERSIDADE ESTADUAL DE SANTA CRUZ
Linguagens imperativas: Aula prática
Prolog Paradigma Declarativo - Lógico
CADEIA DE CARACTERES (Strings)
Conceitos e Linguagens de Programação
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
Fábio de Oliveira Borges
INF 1771 – Inteligência Artificial
Implementação de Resolução
SWRL Sistemas Inteligentes /~if684
Uma Breve Introdução á programação lógica
BCC101 Matemática Discreta I
INF 1771 – Inteligência Artificial Edirlei Soares de Lima Aula 09 – Introdução ao Prolog.
Vetor Prof. Guilherme Baião S. Silva Adaptações:
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
André Luiz da Costa Carvalho
Faculdade Talentos Humanos - FACTHUS - Algoritmo I - Rogério Rodrigues
Paradigma funcional.
Sistemas Especialistas Podem ser definidos como programas de computador desenvolvidos para representar o conhecimento humano num dado domínio específico.
M ONITORIA DE L ÓGICA Lógica de Predicados: interpretação, estruturas e subestruturas 1.
Algumas notas sobre a linguagem de programação C
Algoritmos e Estrutura de Dados I Jean Carlo Mendes
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
Ceça Moraes – Introdução à Programação SI1
Lógica para Computação
Cálculo Relacional.
Banco de Dados Dedutivos
Programação Lógica com Prolog
Fundamentos de linguagens de programação
Inteligência Artificial: A Linguagem Prolog (Parte 1)
Elsa Carvalho 1 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Conceitos Prolog.
Vinicius Ponte Machado
SISTEMAS DE INFORMAÇÃO Inteligência Artificial 2011/01 UNIPAC - FACAE Faculdade de Ciências Administrativas e Exatas Araguari - MG.
CONJUNTOS NUMÉRICOS Projeto INFO
1 Lógica de Predicados BCC101 Matemática Discreta I.
Transcrição da apresentação:

Aula Prática - Prolog Sistemas Inteligentes /~if684 Drance Oliveira – dmof@cin.ufpe.br www.cin.ufpe.br/~dmof/monitoria/si

Prolog “PROgramming in LOGic”; Linguagem simples, prática e eficiente ! Paradigma Lógico e Declarativo; Processamento de Linguagem Natural; Inferência dedutiva sobre Cláusulas de Horn; Programa = Conjunto de Cláusulas (Axiomas).

Sintaxe Prolog não emprega declarações de tipos; Tipos são tratados como sendo termos; A natureza de um termo depende de como tal termo foi declarado; Ou seja, os elementos léxicos utilizados na declaração do termo determinam se o termo será um número, uma constante, um texto, ..

Sintaxe: Átomos Nomes próprios em Linguagem Natural; Representam relações, funções ou objetos; Constituídos por letras, números e ‘_’; Mas iniciados por uma letra minúscula ! Pode-se usar, também, qualquer sequência entre aspas simples (Ex: ‘Bom Dia’). Exemplos: gosta, jorge, ana_maria, x, a1; gosta(jorge, ana_maria). gosta(jorge, x).

Sintaxe: Inteiros e Reais Amplitude da representação dos inteiros e reais depende da implementação do Prolog; Sinais permitidos: ‘.’ para os números reais; ‘-’ para os números negativos. Exemplos: 999, -12, 1.0, 1.34, 15.

Sintaxe: Variáveis Objetos definidos, mas não especificados ! Variáveis no sentido matemático, porém não no sentido de Linguagens Imperativas; Declaradas da mesma forma que os átomos; Porém iniciadas por letras maiúsculas ou “_”; Variáveis anônimas são aquelas que, por só serem usadas uma vez, não precisam de um nome, sendo simplesmente escritas como “_”. Exemplos: Ana_Maria, _jorge, X.

Sintaxe: Variáveis tem_filho(X) :- pai(X, Y). Se X tem um filho, ele é pai de algum Y ! tem_filho(X) :- pai(X, _). Podemos usar uma variável anônima já que Y só aparecia uma vez ! Nota: O alcance de uma variável está restrito à clausula onde ocorre.

Sintaxe: Termos Compostos São a única forma de expressar estruturas de dados complexas em Prolog; Consistem de um funtor ou cabeça (átomo) e zero ou mais parâmetros listados entre parênteses e separados por vírgulas. Caracterizado pelo seu nome e aridade; Podemos associar um mesmo átomo a termos diferentes contanto que as suas aridades sejam diferentes. Exemplos: data(3, abril, 2009). maior(sucessor(N), N).

Sintaxe: Listas [] representa uma lista vazia; Se T é uma lista e H é um elemento, então o termo '.'(H,T ) é uma lista. H é o primeiro elemento, também chamado de cabeça; T é o conteúdo restante da lista. Exemplo: [1, 2, 3] seria representada internamente como: '.'(1, '.'(2, '.'(3, []))).

Sintaxe: Listas Para conveniência do programador, existem, na biblioteca padrão, várias funções que manipulam listas: member(1, [1, 2, 3]): yes/no. member(X, [1, 2, 3]): X = 1, X = 2, X = 3. Append(L1, L2) : Concatena L1 com L2.

Sintaxe: Resumo termos simples constantes átomos inteiros reais variáveis compostos

Predicados Predicado: Exemplos: Unidade básica do Prolog; Postulado como verdadeiro. Expressam Fatos. Exemplos: gato(tom). pai(filipe, pedro).

Fatos São expressados por predicados; São os significados dos predicados. Exemplos: Fato: Tom é um gato: Predicado: gato(tom). Fato: Filipe é o pai de Pedro: Predicado: pai(filipe, pedro).

Regras ou Cláusulas Também, expressados por predicados; O conseqüente ou cabeça é escrito primeiro e o antecedente ou corpo é escrito depois; Exemplo: a :- b, c, d: a é verdadeiro se b, c, d são verdadeiros. luz(acesa) :- interruptor(ligado): A luz está acesa se o interruptor estiver ligado.

Queries São perguntas ao banco de dados; Podem ser de dois tipos: ?- gosta(jose, maria): YES; NO. ?- gosta(jose, X): X = maria;

Ferramentas SWI-Prolog Java Prolog Environment: www.swi-prolog.org http://www.cin.ufpe.br/~dmof/monitoria/si/jpe.rar

Exercício 1 Programa: Jorge gosta de cinema; Jorge gosta de futebol; Maria gosta de todos que gostam de cinema e futebol; Queries: Existe alguém que goste de cinema e de futebol ? Maria gosta de Jorge ? E Jorge de Maria ?

Exercício 2 Programa: Rui é filho de Carlos; Carlos é filho de Jorge. Queries: Quem é o pai de Rui ? E o avô ?

Projeto

Especificação do Projeto /~if684 -> Projetos http://www.cin.ufpe.br/~dmof/monitoria/si/ especificacao_projeto.doc

Prazos de Entrega 1ª Parte (Domínios em OWL): 02/06/09 2ª parte (Prolog + OWL / Jess + OWL): 16/06/09

Links SWI-Prolog: Thea - An OWL library for [SWI] Prolog: SWRLJessTab http://www.swi-prolog.org Thea - An OWL library for [SWI] Prolog: http://www.semanticweb.gr/TheaOWLLib/ SWRLJessTab http://protege.cim3.net/cgi- bin/wiki.pl?SWRLJessTab#nid6RJ