Aplicações Computacionais da linguagem N-GraphML

Documentos relacionados
CAPÍTULO 2. Grafos e Redes

Trabalho Computacional

O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

Guia de utilização da notação BPMN

Catálogo Nacional de Compras Públicas. Manual de Fornecedores

3.1 Definições Uma classe é a descrição de um tipo de objeto.

UNIDADE 6 - PROGRAMAÇÃO MODULAR

extensible Markup Language (XML) XML é uma linguagem de anotação. XML utiliza tags para descrever informação.

Portal do Projeto Tempo de Ser

3 Estratégia para o enriquecimento de informações

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

SISTEMAS DE INFORMAÇÃO GERENCIAIS

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento

Especificação do Trabalho

REPRESENTAÇÃO DE REQUISITOS VARIÁVEIS COM UML, SEGUINDO O MÉTODO ICONIX

Chaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir:

Modelo Relacional. 2. Modelo Relacional (Lógico)

3. Fase de Planejamento dos Ciclos de Construção do Software

Algumas Aplicações da Teoria dos Grafos

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

Unidade 5: Sistemas de Representação

UML: Diagrama de Casos de Uso, Diagrama de Classes

Manual do Usuário. Protocolo

PROBABILIDADE Prof. Adriano Mendonça Souza, Dr.

6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes

EDV (Estruturas de Dados com Vetores) um protótipo de aplicativo Educacional

RELACIONAMENTOS ENTRE CLASSES

CRIAÇÃO DE MAPAS TEMÁTICOS COM ALOV MAP

Algoritmos e Estrutura de Dados. Prof. Tiago A. E. Ferreira

Faculdade de Computação

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

MANUAL EDITOR ESTRUTURADO MÓDULO 2

SISTEMA DE SERVIÇOS DE INFRA-ESTRUTURA DA UFRGS

Intercâmbio de informações operativas relativas ao Sistema de Medição para Faturamento SMF

Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML

Base de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade

Linguagem de Programação

Sistemas Operacionais

c. Técnica de Estrutura de Controle Teste do Caminho Básico

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL Aula 06: Introdução Linguagem HTML

Aula de JavaScript 05/03/10

PROJETO DE REDES

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

Guia de publicação de imóveis

Modelagem de uma Vending Machine utilizando um Autômato Finito com Saída

Resolução da lista de exercícios de casos de uso

O Termo SIG é aplicado para sistemas que realizam o tratamento computacional de dados geográficos

Teste de Software: Um Breve Estudo do Importante Processo no Desenvolvimento de Softwares

AULA 16 - Sistema de Arquivos

TRIBUNAL DE CONTAS DO ESTADO DO RIO DE JANEIRO SISTEMA INTEGRADO DE GESTÃO FISCAL MÓDULO DELIBERAÇÃO 260/13 MANUAL DE UTILIZAÇÃO

TÉCNICAS DE PROGRAMAÇÃO

Implementando uma Classe e Criando Objetos a partir dela

Lógica Computacional

COMO VAI A CÂMARA? Uma proposta de uso de dados abertos

6 Conclusões e próximos passos

Análise de Redes de Transportes. Útil também para várias outras áreas além de Transportes!

EAD Fila. - algumas operações realizam-se na frente/cabeça e outras na cauda da Fila

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

GUIA RÁPIDO DE UTILIZAÇÃO DO SIGPROJ VERSÃO USUÁRIO

O E-TEXTO E A CRIAÇÃO DE NOVAS MODALIDADES EXPRESSIVAS. Palavras-chave: texto, , linguagem, oralidade, escrita.

Eng Civil Washington Peres Núñez Dr. em Engenharia Civil pela Universidade Federal do Rio Grande do Sul

Sistema Integrado de Atendimento

Controle II. Estudo e sintonia de controladores industriais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

DESENHO TÉCNICO. Aula 03

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação

DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS

4 Experimentos Computacionais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

DESENHO TÉCNICO. Aula 03

JinSol, uma interface em Java para solvers lineares.

O uso correto do texto alternativo

Figura 5 - Workflow para a Fase de Projeto

Glossários em Moodle (1.6.5+)

Armazenamento e Pesquisa de Topic Maps em Banco de Dados Relacional

Aspectos essenciais do labor do perito e dos assistentes na arbitragem

UML (Unified Modelling Language) Diagrama de Classes

Teoria dos Grafos. Edson Prestes

Análise e Projeto Orientados a Objeto

Descrição do Produto. Altus S. A. 1

A ESTRUTURA DA GESTÃO DE

Implementação de um Mini-Sistema Especialista para Natação Especial Baseado em Regras de Produção

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

O MÉTODO HÚNGARO PARA RESOLUÇÃO DE PROBLEMAS DE OTIMIZAÇÃO

GBD PROF. ANDREZA S. AREÃO

Introdução a Web Services

UFSM Prof. Ghendy Cardoso Junior

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

OBTENDO CONHECIMENTO A PARTIR DOS TWITTES PESSOAIS. FRANTZ, Miguel Airton 1 ; FROZZA, Angelo Augusto 2 Instituto Federal Catarinense, Camboriú/SC

Administração. Profa. Patricia Brecht. Compras. Compras. Armazenamento, Movimentação e Administração de Compras

Nível de Enlace. Nível de Enlace. Serviços. Serviços oferecidos os nível de rede

Conectar diferentes pesquisas na internet por um menu

Sistema Integrado CAPES - Programa de Apoio a Eventos no País

Transcrição:

Aplicações Computacionais da linguagem N-GraphML Daniel Vaz dos Santos 1, Gleifer Vaz Alves 1 1 Departamento Acadêmico de Informática Universidade Tecnológica Federal do Paraná (UTFPR) Avenida Monteiro Lobato, s/n - km 04 CEP 84016-210 Ponta Grossa PR Brasil {dnvazs,gleifervaz}@gmail.com Abstract. This work has as main goal the definition of a computational representation for Proof-Graphs, which enable that the N-Graphs can be used in computational applications. To implement this representation was used as the base language GraphML, an XML-based language. The end result of the work is an XML schema that defines the language called N-GraphML. Keywords: Proof-graphs, N-Graphs, GraphML, N-GraphML. Resumo. Este trabalho tem como objetivo a definição de uma representação computacional para Grafos-de-prova, o que poderá viabilizar que os N- Grafos possam ser utilizados em aplicações computacionais. Para a implementação de tal representação foi utilizado como base a linguagem GraphML, uma linguagem baseada em XML. O resultado final do trabalho é um schema XML que define a linguagem denominada N-GraphML. Palavras-chave: Grafos-de-Prova, N-Grafos, GraphML, N-GraphML. 1. Introdução N-Grafos é um sistema formal de provas que utiliza regras lógicas da Dedução Natural com regras estruturais no estilo de cálculo de sequentes. O conceito de N-Grafos foi desenvolvido na tese de doutorado defendida por De Oliveira [de Oliveira 2001]. Com a criação dos N-Grafos, tornou-se possível representar provas da lógica proposicional através de grafos-de-prova, substituindo a tradicional representação de provas como árvores pela representação através de grafos direcionados (dígrafos) e tendo a vantagem de obter um sistema de provas (puramente) simétrico, ou seja, com múltiplas premissas e múltiplas conclusões, o que viabiliza a representação de sistemas que envolvam lógica concorrente. Com o advento dos N-Grafos surge a necessidade de criar ferramentas computacionais, como, por exemplo, uma ferramenta capaz de criar, editar e verificar propriedades de grafos-de-prova. Propriedades como a normalização de provas, a qual foi definida para os N-Grafos em [Alves 2009]. E para viabilizar a construção dessas ferramentas é desejável obter uma representação computacional para os N-Grafos. O principal objetivo deste trabalho é a definição de um schema XML para a representação de Grafos-de-prova, o que poderá viabilizar que os N-Grafos possam ser utilizados em aplicações computacionais. Em um trabalho relacionado [Kaspczak 2011] foi desenvolvida uma ferramenta para a verificação de ciclos em grafos-de-prova. No

momento, o desenvolvimento dessa ferramenta está sendo retomado, com o objetivo de culminar num editor completo para os N-Grafos. Assim, a representação computacional poderá ser utilizada como entrada e saída de tal editor. A escolha de uma linguagem baseada em XML para a elaboração do schema justifica-se pelo fato de ser uma linguagem onde os dados são armazenados em um formato de texto explanado, o que pode facilitar o compartilhamento de dados entre aplicações diferentes, que muitas vezes poderiam trabalhar com tipos incompatíveis de dados. Este artigo subdivide-se da seguinte forma: na Seção 2 apresenta-se o conceitos relacionados ao grafo-de-prova, a Seção 3 contém exemplos da linguagem GraphML, na Seção 4 está a definição do schema da N-GraphML. Por último, na Seção 5 estão as considerações finais 2. N-Grafos N-Grafos é um sistema formal de provas que utiliza regras lógicas da Dedução Natural com regras estruturais no estilo de cálculo de sequentes [Alves 2009]. Derivações são representadas graficamente na forma de grafos direcionados (dígrafos) rotulados, inclusive com estrutura de múltipla conclusão de prova. Com isto, tem-se uma simetria entre as regras de introdução e de eliminação, onde também são permitidas estruturas com ciclos em derivações. O conceito de N-Grafos, desenvolvido na tese de doutorado defendida por De Oliveira [de Oliveira 2001], é baseado no sistema de provas com múltiplas conclusões da Dedução Natural. Nas provas os vértices são rotulados com fórmulas de ocorrência e as arestas representam passos atômicos na derivação. A linguagem proposicional dos N- Grafos tem os seguintes elementos: Constantes proposicionais:, T; Conectivos:,,, ; Fórmulas de ocorrências: A, B, C,... E a gramática da linguagem é dada pela tupla de 4 elementos (,, R, S) onde: V = {S, C, L, F}; Possui os elementos que definem a gramática dos N-Grafos. = {, T, A, B, C, }; Possui o alfabeto da gramática dos N-Grafos. S é a variável inicial; R é o conjunto de regras definidas da seguinte forma: S C C L F, T L A B C... F F F F F F F F L

Seguem-se algumas definições sobre N-Grafos [Alves 2009] : 1. Sub-fórmula: o conceito de sub-fórmula é definido indutivamente por: B e C. 1. A é a sub-fórmula de A. 2. Se B, B C, B C, ou B C é uma sub-fórmula de A, então também são 2. Ponto de ramificação: um ponto de ramificação é um vértice em um dígrafo com três arestas ligadas a ele. 3. Ponto de ramificação convergente: um ponto de ramificação convergente é um vértice em um dígrafo com duas arestas orientadas para ele. 4. Ponto de ramificação divergente: um ponto de ramificação divergente é um vértice em um dígrafo com duas arestas orientadas para fora dele. 5. (i) Um link convergente é um conjunto {(u 1 ), (u 2 )} em que v é chamado de ponto de ramificação (ou ponto de ramificação convergente) deste link. u 1 e u 2 são as premissas e v é a conclusão. (ii) Um link divergente é um conjunto {(u 1 ), (u 2 )} em que u é chamado de ponto de ramificação (ou ponto de ramificação divergente) deste link. v 1 e v 2 são as conclusões e u é a premissa. (iii) Um link simples é uma aresta (u,v) que não pertence nem ao link convergente e nem ao link divergente. u é a premissa e v é a conclusão. A Figura 1 mostra três tipos de diferentes de links, simples, divergente e convergente. Figura 1. Tres tipos diferentes de links 6. Grafo-de-prova: um Grafo-de-prova é um grafo conexo direcionado G definido da seguinte maneira: G é construído por meio dos seguintes tipos de links: simples, convergente e divergente. Especificamente, N-Grafos são divididos em links lógicos e estruturais. Em N-Grafos utiliza-se o termo link onde termo regras também poderia ser utilizado. Existem dois tipos de arestas: meta-arestas e arestas sólidas. Meta-arestas são rotuladas com m para identificar sua respectiva aresta, onde a meta aresta é usada para representar o cancelamento da hipótese. Arestas sólidas não são rotuladas. A Figura 2 apresenta o uso da meta-aresta no link - I. Cada vértice é rotulado com uma fórmula de ocorrência. Todo vértice em um grafo-de-prova é rotulado com uma conclusão de um único link e pode ser premissa de um único link. A Figura 2 demonstra links lógicos e estruturais. A Figura 3 apresenta um exemplo de N-Grafo, note-se que em a temos um link de expansão e em b um link de contração.

Figura 2. Links dos N-Grafos 2.1 Critério de corretude Figura 3. Exemplo de N-Grafo Abaixo tem-se algumas definições que determinam o critério de corretude para N- Grafos. Ou seja, determinam quando um dado grafo-de-prova é considerado válido (N- Grafo). Definição 2.1 (Grafo de chaveamento) Dado um grafo-de-prova G, um grafo de chaveamento S associado com um G subgrafo gerador de G em que as seguintes arestas são removidas: Uma das duas arestas de cada link de contração ou expansão; Todas as meta-arestas. Definição 2.2 (Expansão de chaveamento) Dado um grafo-de-prova G, um grafo de expansão de chaveamento S' associado com G é um subgrafo gerador de G no qual todos as meta-arestas são removidas, assim como uma das duas arestas de cada link de expansão é removida.

Definição 2.3 (Meta-condição) Dado um grafo-de-prova G diz-se que a meta-condição para cada meta-aresta (u, v) m do link divergente {(u, v) m, (u, w)} em G é que existe um caminho ou semi-caminho sem passar através de (u, w), de v para u em cada grafo de expensão de chaveamento S' associado com G e o grau sólido de entrada de v é igual a zero. Definição 2.4 (Derivação de N-Grafos) Um grafo-de-prova G é uma derivação de N- Grafo se existe uma meta-condição para G e cada grafo de chaveamento associado à G é acíclico e conexo. Na Figura 4, G 1 representa um exemplo de um grafo-de-prova válido, enquanto G 2 apresenta um grafo-de-prova não válido conforme os critérios de corretude, pois retirando-se uma das arestas do link divergente, o subgrafo resultante não é conexo. 3. GraphML Figura 4. Critério de corretude A GraphML é uma linguagem de marcação desenvolvida para a representação computacional de grafos [Brandes et al. 2011]. Conta com tags específicas para os elementos de um grafo, como vértices e arestas. O propósito de um documento em GraphML é definir um grafo. O documento GraphML consiste de um elemento graphml e uma variedade de tags que representam os subelementos, como grafo, vértice, aresta. Para exemplificar a utilização da linguagem GraphML considere-se o código do grafo descrito na Figura 5:

Figura 5. Dígrafo descrito em GraphML A Figura 6 representa o grafo que foi descrito no código da Figura 5: Figura 6. Exemplo de um dígrafo 4. N-GraphML Para a representação dos N-Grafos foi utilizado como base o Schema GraphML. Porém algumas modificações para atender questões específicas dos N-Grafos foram necessárias: Definição de elementos a serem retirados do Schema da GraphML; Definição de elementos a serem modificados no Schema da GraphML; Definição dos atributos a serem incluídos no Schema da GraphML;

Definição de uma representação para caracteres matemáticos. 4.1 Elementos Retirados Os seguintes elementos foram retirados do Schema, hyperegde, por se tratar de uma representação avançada da GraphML, que, a princípio, não terá utilidade na N- GraphML, assim como o elemento port. Os códigos dos elementos retirados estão representados nas Figuras 7 e 8. Figura 7. Elemento retirado hyperegde Figura 8. Elemento retirado port O objetivo de remover tais elementos visa deixar o schema o mais simplificado possível. 4.2 Elementos Modificados O elemento graph teve suas regras modificadas, o atributo edgedefault, que aceitava os valores directed e undirected passou a aceitar apenas o valor directed. A justificativa para isso é que todo N-Grafo tem arestas apenas direcionadas. O código da Figura 9 mostra como o elemento ficou após as modificações. 4.3 Atributos Incluídos Figura 9. Elemento modificado Para a representação de meta-arestas foi incluído o atributo meta, que é opcional e está contido no elemento edge. O código da Figura 10 representa a adição do atributo meta.

Figura 10. Elemento modificado 4.4 Representação de caracteres matemáticos com a N-GraphML Um dos problemas a serem resolvidos com a criação da N-GraphML foi encontrar uma maneira de representar as fórmulas de ocorrência dos vértices. Por conter símbolos lógicos matemáticos, houve a necessidade de se definir uma representação. A primeira possível solução foi a utilização de trechos da linguagem MathML [Bos et al. 2011], que por ter como objetivo a representação de fórmulas matemáticas em XML contém suporte à caracteres especiais. Essa alternativa porém foi descartada, pois após uma análise acabou por não se mostrar como a mais adequada ao problema, devido à complexidade da linguagem. Por fim, a solução adotada foi a criação de entidades de referência em XML, que tomariam como base a numeração dos símbolos da Tabela Unicode [Unicode 2011]. Com a utilização de caractere do tipo Hexadecimal, acrescenta-se o seguinte símbolo: &#, seguido do respectivo hexadecimal [Herborth 2011]. A tabela da Figura 11 representa como será a forma final dos caracteres especiais na linguagem N-GraphML. Figura 11. Caracteres Unicode Deve-se lembrar que o próprio símbolo & é um caractere reservado em XML, devendo ser representado com a entidade de referência &. 4.5 Exemplos da representação de N-Grafos pela N-GraphML Esta Subseção contém um exemplo de N-Grafo e sua representação através da N- GraphML. O N-Grafo da Figura 12 é representado pelo código da Figura 13. Nas linhas 7 à 15 tem-se os vértices e seus rótulos (fórmulas). Nas linhas 16 à 23 encontram-se as arestas, e por último, nas linhas 25 à 29 está o código relativo aos links. A partir das

informações das arestas, é possível determinar o tipo de link estrutural ou lógico utilizado, nas linhas 25 e 26 temos links de enfraquecimento simples, com um vértice de origem e outro de destino, e na linha 27 temos o link convergente de eliminação da negação, nas linha 28 e 29 links de enfraquecimento convergente. Figura 12. Exemplo de N-Grafo Figura 13. Código N-GraphML relativo ao N-Grafo da Figura 12 5. Conclusão Como resultado da convergência dos estudos de teoria dos grafos, lógica, dedução natural e das linguagens XML e GraphML tem-se a primeira versão da N-GraphML. Trata-se de um Schema XML, baseado no Schema da linguagem de marcação GraphML, onde foram feitas alterações para oferecer suporte à representação dos N-Grafos.

Com a criação da N-GraphML, provas da lógica proposicional representadas através de grafos-de-prova poderão ser empregadas em aplicações computacionais, de forma à facilitar o ensino de lógica computacional, com ferramentas que venham a se utilizar de tal schema. O schema final, assim como uma uma explicação mais detalhada podem ser acessados em http://ngraphml.wikinet.org. Como trabalhos futuros imediatos pode-se enunciar eventuais correções ou melhor adequação nas soluções propostas pelo Schema da N-GraphML e a possibilidade de utilizar os N-Grafos para o ensino de lógica computacional. Em fase de desenvolvimento tem-se um editor onde, através do auxílio de uma biblioteca gráfica, será possível construir um N-Grafo, assim como exportá-lo em formato de imagem ou código N-GraphML. Essa ferramenta será utilizada para editar, visualizar e verificar propriedades dos N-Grafos. Outro trabalho futuro, diz respeito ao uso da N-GraphML na construção de provadores automáticos de teoremas para grafos-de-prova. Referências Alves, G. V. (2009). Transformations for proof-graphs with cycle treatment augmented via geometric perspective techniques. PhD thesis, Universidade Federal de Pernambuco. Bos, B. et al. (2011). W3c math home, disponível em: http://www.w3.org/math/. Acesso em: 17 de setembro de 2011. Brandes, U., Eiglsperger, M., et al. (2011). The graphml file format, disponível em: http://graphml.graphdrawing.org. Acesso em: 28 de outubro de 2011 de Oliveira, A. G. (2001). Proofs from a Geometric Perspective. PhD thesis, Centro de Informática - Universidade Federal de Pernambuco. de Oliveira e Ruy J. Guerra B. de Queiroz, A. G. (2003). Geometry of deductions via graphs of proofs. Kluwer Academic Publishers. Harary, F. (1969). Graph Theory. Addison-Wesley. Herborth, C. (2011). Ibm - developer works, disponível em: http://www.ibm.com/developerworks/xml/library/x-entities/. Acesso em: 30 de outubro de 2011. Kaspczak, A. e Rodrigues, L. G. (2011). Implementação de um algoritmo para verificação de ciclos em grafos-de-prova. Trabalho de Concluso de Curso - Universidade Tecnológica Federal do Paraná - Campus Ponta Grossa. Unicode (2011). The unicode consortium - unicode 6.0 character code charts, disponível em: http://www.unicode.org/charts/#symbols. Acesso em: 30 de outubro de 2011.