FLORID: Predicados built-in Departamento de Informática UFPE Jeferson Valadares Recife, fevereiro de 1999.

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Paradigmas de Programação
Transformação ODMG  Relacional
Pseudo-código: sintaxe
Java e OO – Isso é só um roteiro de aula
Data: 10 a 12 de fevereiro de 2009 e
Paulo Marques Hernâni Pedroso
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
JavaScript O JavaScript é uma linguagem de scripting, orientada a objectos e independente de plataformas Criada pela NetScape Código embebido em paginas.
Lógica Fuzzy Aplicada a Sistemas de Diagnóstico
Projeto 1.
Engenharia de Software
Conteúdo: - Operadores.
Desenvolvimento Baseado em CGI Material cedido pelo Prof
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
FLORID:caminhos, negação e estratificação Idevan Gonçalves Freire Junior
Prolog: Predicados Built-in 2
Consultas ad-hoc de estatísticas disponíveis na Web Idevan Gonçalves Freire Junior
Programação Lógica: PROLOG
Introdução a diagrama de classes e UML
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Construção de Compiladores
INTRODUÇÃO À PROGRAMAÇÃO
Capítulo 10 Strings & File I/O. Strings Strings são um conjunto de Caracteres ASCII. No Controle de Instrumentação pode-se converter valores numéricos.
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
C# Documentando código em XML Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 10/10/2002 Autor: Marden Menezes Costa.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Prolog Programação Lógica Ícaro A. Souza.
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
Vetores em c / c++: Formato geral para declaração de variáveis:
Informática Teórica Engenharia da Computação
Aula PHPdoc Prof. Naércio Filho Técnico em Informática
Prof. Natalia Castro Fernandes Engenharia de Telecomunicações – UFF 2º semestre/2012.
Tópicos de Sistemas de Informação A
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Rodrigo Cristiano Silva
Introdução a Programação
Tipos de Dados Paradigmas de Programação
Estudo dos Conceitos e Paradigmas de Programação
Ruby Viviane Souza (vess).
Linguagem de Programação JAVA
Sistemas Especialistas
Professor: Márcio Amador
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
Pilhas Profa. Nádia Félix.
Sistemas Baseados em Conhecimento
Aplicativos Web Com Orientação a Objetos
Baseado no material do Professor Raul Paradeda
Estruturas de Dados Aula 15: Árvores
Padrões de Interação com o Usuário
Dados abertos interligados
Introdução à Linguagem JavaScript
Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Fundamentos da Linguagem C#
Linguagens Formais - aula 02
Banco de Dados Universidade do Estado de Santa Catarina
1 Sistemas Multimídia Fundamentos Básicos - HTML Prof. Hemir Santiago Prof. Hemir Santiago.
TLBD II – Técnicas e Linguagem para Bando de Dados II
Estrutura de dados Pilhas e filas
Universidade Federal de Sergipe Departamento de Sistemas de Informação Bruno Cruz Jessica Rodrigo Aragão – ASP.NET MVC 3.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Introdução ao Projeto.
VARIÁVEIS Desenvolvido pelo Mestrando Rodrigo Moreira Barreto – VHLab (Virtual Humans Simulation Laboratory – PUCRS) 1 Desenvolvido por: Rodrigo Moreira.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Casamento de Esquemas IAGO RAPHAEL VASCONCELOS MARINHO.
Aplicativos para internet Prof. Wolley
WebSites Dinâmicos Professor: Márcio Ferreira da Silva.
Rhizome. Roteiro Definição Metas Características Arquitetura Tecnologias envolvidas Referências.
Aula Prática 7 STRINGS Monitoria  Um dos tipos de arranjos que mais ocorre em C é o arranjo de caracteres, ou string. C não suporta um tipo básico.
Transcrição da apresentação:

FLORID: Predicados built-in Departamento de Informática UFPE Jeferson Valadares Recife, fevereiro de 1999

Roteiro * Igualdade semântica  Aritmética * Cadeias de caracteres e expressões regulares * Agregação * Interface para web * FLORID x LIFE * FLORID x linguagens de programação orientada a objetos

Igualdade e Aritmética * Igualdade entre objetos: abram = abraham. * Objetos inteiros: operadores de comparação usuais t ?- jacob Y)->Z], Y<=3 ¤retorna os três primeiros filhos de jacob operações aritméticas t 3 +3 * 2 ¤espaços não são opcionais t ?- jacob B = A + 1, C = A + 2 ¤verdadeiro se jacob tiver tido três filhos consecutivos com a mesma mulher

Cadeias de caracteres * strlen(arg1, arg2) verdadeiro se arg2 for o tamanho da cadeia arg1 t ?- strlen (“logic”, X). Também pode ser usado para recuperar cadeias de determinados tamanhos, mas as possíveis cadeias têm que estar ligadas à outras moléculas no corpo da regra t ?- strlen (X, 40). t ?- strlen (X, 4), substr (X, “avião”).

Cadeias de caracteres * strcat (arg1, arg2, arg3) verdadeiro se arg3 for o resultado da concatenação de arg1 e arg2 t ?- strcat (“a”, “b”, X). X/ “ab” t ?- strcat (“a”, Y, “ab”). Y/”b” t Nunca mais de uma variável livre!

Cadeias de caracteres * substr (arg1, arg) verdadeiro se arg1 for uma sub-cadeia de arg2 não-sensível ao caso t ?- substr (“DaTA”, “database”). true um objeto representando um documento web também pode ser usado em arg2. Neste caso o predicado retorna true se arg1 estiver presente no documento

Cadeias de caracteres e expressões regulares * match (arg1, arg2, arg3, arg4) procuram todas as sub-cadeias de arg1 que casam com a expressão regular em arg2; arg3 é uma cadeia de formato descrevendo como as cadeias casadas devem ser retornadas em arg4 t ?- match (“linux98”, ”\([0-9]\)\([0-9]\)”, “\2swap\1”, X). X\”8swap9” t retorna sem formatação se arg3 for a cadeia vazia (“”) t sintaxe de expressões regulares igual à do emacs

Agregação * Operadores usuais estão implementados: max, min, count, sum * Operadores de agregação na forma: agg{X [G 1,...,G n ]; b} t ?- Z = max {X; Year <1990}.

Interface para web * Visão abstrata da web como um grafo direcionado rotulado onde os nós representam documentos e os vértices rotulados são providos pelos hyperlinks * Ao contrário de SQL, linguagens para BDDs são capazes de examinar caminhos de tamanho arbitrário em um grafo -como a estrutura da web é desconhecida a princípio, esta é uma característica importante para acesso à web

Modelando a web * Classe url modela um documento como um objeto “ seria o id-term de um objeto da classe url * Método get para recuperar o documento: “ ] get transforma uma página HTML em um objeto webdoc * Documentos recuperados têm a seguinte estrutura: url::string [get =>webdoc] webdoc[self =>url; author =>string; modif => string; type =>string; url; error =>>string].

Consultando a web * Exemplo: “ = ourUrl. ourUrl:url. ourServer = “ X.get:ourPage :- X: ourUrl. Y.get:ourPage :- _ ) ->> Y], substr(ourServer, Y). t Recupera os links que estão no mesmo servidor _ ) ->> Y], substr(“mailto:”,Y). t Recupera todos os endereços de achados nas páginas visitadas

Consultando a web * ?- X:ourPage[error ->> Y]. Detecta links perdidos ou documentos não-processados * ?- ]. Seleciona um tipo especial de saída que direciona todos os resultados de consultas para um arquivo HTML e chama o netscape para visualização

Limitando a busca * Para se limitar a busca no grafo, pode-se limitar a profundidade da busca * Por exemplo, todas as páginas a partir do início em quatro movimentos: X.get:ourPage[depth->>0] :- X:ourUrl Y.get:ourPage[depth->>N] :-X:ourPage[depth ->> M; _ ) ->>Y; N = M +1, N <4.

FLORID x LIFE * Pontos em comum: integração de orientação a objetos com regras  -term é bem semelhante a uma mólecula-F (a não ser pelos métodos não-herdáveis) * Diferenças: FLORID: encadeamento progressivo (dirigido pelos dados) LIFE: encadeamento regressivo (dirigdo pelos objetos)

FLORID x LIFE * Vantagens de FLORID sobre LIFE distinção classe/objeto herança (método herdável/não- herdável atributo de classe interface web built-in regra mólecula-F :- mólecula-F; em life não há regra do tipo  -term :-  -term, só pred(  -term) :- pred(  -term) igualdade semântica agregação * Vantagens de LIFE sobre FLORID interface socket built-in interface x-windows built-in paradigma funcional (conhecimento inerentemente procedimental) sem limitação sobre regras recursivas e ocorrência de variáveis livres (fatos universais) acesso a dados persistentes

FLORID x Linguagens orientadas a objeto * Vantagens de FLORID: Capacidade de inferência Modelo de dados bem definido Fundamentos bem formalizados