Keli Cristina Manini Susane Schmidt. Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML



Documentos relacionados
Keli Cristina Manini Susane Schmidt. Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML

GERÊNCIA DE DADOS SEMIESTRUTURADOS -DTD. Prof. Angelo Augusto Frozza, M.Sc.

Um documento XML possui Unidade lógica - os elementos Usuário "inventa" as marcas através de DTDs

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

Este relatório tem por objetivo, abordar a sintaxe XML.

GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

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

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi

XML. 1. XML: Conceitos Básicos. 2. Aplicação XML: XHTML 3. Folhas de Estilo em Cascata XML

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Engenharia de Software III

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

XML (extensible Markup Language)

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

XML: uma introdução prática X100. Helder da Rocha

UFG - Instituto de Informática

Bases de dados semi-estruturadas, XML

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Sintaxe XML. César Vittori Outubro de Resumo Introdução à sintaxe XML. Marcação tradicional x marcação de documentos

XML XML. XML extensible Markup Language HTML. Motivação. W3C: World Wide Web Consortium XML 1.0. Mário Meireles Teixeira DEINF-UFMA

Leiaute-IMPORTAÇÃO-Plano de Contas - XML

Dadas a base e a altura de um triangulo, determinar sua área.

XHTML 1.0 DTDs e Validação

XML Schema. Vanessa de Paula Braganholo ftp://metropole/pub/curso/xml/index.html. Janeiro de XML Schema

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

Orientação a Objetos

ISO/IEC 12207: Gerência de Configuração

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) XML Origens. HTML Problemas

Universidade da Beira Interior

Análise da Nova Linguagem HTML5 para o Desenvolvimento Web

Manual do Visualizador NF e KEY BEST

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

3 Parsing Expression Grammars

Núcleo de Pós Graduação Pitágoras

Agenda Semântica. Grupo: Francisco Rodrigues Júnior Guilherme Daher Ferreira Luana Vieira Morellato Renan Rigo

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

UFG - Instituto de Informática

Desenvolvimento Web Introdução a XHTML. Prof. Bruno Gomes

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

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

TOTVS BA Guia de Customização Linha Logix

LINGUAGEM DE BANCO DE DADOS

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon

Um estudo sobre esquemas para documentos XML

Modelo Entidade-Relacionamento

DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE

Armazenamento e Pesquisa de Topic Maps em Banco de Dados Relacional

Módulo 4. Construindo uma solução OLAP

XML extensible Markup Language. Prof. Fellipe Aleixo

Persistência e Banco de Dados em Jogos Digitais

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

L A C Laboratory for Advanced Collaboration

Prof. Marcelo Machado Cunha

Construção Páginas de Internet

Semântica para Sharepoint. Busca semântica utilizando ontologias

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)

Controle do Arquivo Técnico

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

SISTEMA GERENCIADOR DE BANCO DE DADOS

Programação Web Prof. Wladimir

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Entendendo como funciona o NAT

Roteiro para Transmissão Ambiente de Testes da Guias Online

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS

CONVENÇÃO DE CÓDIGO JAVA

Microsoft Access XP Módulo Um

Pag: 1/20. SGI Manual. Controle de Padrões

Upload e Download de Arquivos. Ao programador Morfik, cabe implementar em sua aplicação os mecanismos gerenciem todo o processo acima.

Sistemas para internet e software livre

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

ADM041 / EPR806 Sistemas de Informação

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Wilson Moraes Góes. Novatec

Scriptlets e Formulários

ESTOQUE. Manual Estoque Atualizado em 29/06/2007 Pág. 1

INTRODUÇÃO. Enfoque abstrato. Enfoque Intermediário

2. Representação Numérica

Sumário. Uma visão mais clara da UML

Noções de. Microsoft SQL Server. Microsoft SQL Server

Modelagemde Software Orientadaa Objetos com UML

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

RSS no desenvolvimento de uma Central de Notícias

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Técnicas e processos de produção. Profº Ritielle Souza

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Roteiro 2 Conceitos Gerais

5 Mecanismo de seleção de componentes

A Linguagem de Modelagem Unificada (UML)

PROJETO DE REDES

UNIVERSIDADE. Sistemas Distribuídos

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Transcrição:

Keli Cristina Manini Susane Schmidt Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML Florianópolis - SC 2006

Keli Cristina Manini Susane Schmidt Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML Trabalho apresentado como requisito para graduação em Bacharelado em Ciências da Computação Orientador: Ronaldo S. Mello Universidade Federal de Santa Catarina - UFSC Departamento de Informática e Estatística - INE Florianópolis - SC 2006

Sumário Lista de Figuras 1 Introdução p. 4 2 XML - extensible Markup Language p. 6 3 Esquemas p. 9 3.1 DTD - Document Type Description.................... p. 9 3.2 XML Schema................................ p. 11 4 Trabalhos Relacionados p. 13 4.1 XTRACT: Um sistema para extração de DTDs a partir de documentos XML..................................... p. 13 4.2 DataGuides: Enabling Query Formulation and Optimization in Semistructed Databases.............................. p. 14 4.3 Extração de esquemas de dados XML: Uma Abordagem de Gramática de Inferência................................. p. 15 5 Conclusão p. 19 Anexo A -- Codigos p. 20 Referências p. 21

Lista de Figuras 1 Estrutura XML............................... p. 8 2 Exemplo do documento XML com DTD................. p. 8 3 Estrutura XML............................... p. 8 4 Sintaxe e exemplo de uma declaração de atributo............ p. 10 5 Sintaxe e exemplo de uma declaração de entidade............ p. 11 6 Elemento Simples de XML Schema.................... p. 11 7 Exemplo Elemento Complexo de XML Schema.............. p. 12 8 Exemplo Elemento Complexo de XML Schema.............. p. 12 9 Exemplo documento XML Campeonato Europel de Futebol...... p. 16 10 Exemplo XML Schema Campeonato Europel de Futebol........ p. 17

4 1 Introdução XML (Extensible Markup Language) emergiu como um novo padrão para troca e manipulação de documentos estruturados. (1) Este fato ocorreu devido a grande quantidade de vantagens que este padrão de linguagem representa. O formato XML é alto-descritivo; documentos XML formam coleções de elementos aninhados hierarquicamente; a estrutura interna destes documentos pode ser padronizada em esquemas que auxiliam na organização, clareza e utilização destes. Por estes e demais motivos a sociedade de bancos de dados tem investido cada vez mais no estudo de XML e novas técnicas e ferramentas vem sendo desenvolvidas. A especificação de um esquema torna-se importante pois permite a integração e validação de dados XML baseados no seu esquema. A partir desta especificação é possível verificar a equivalência dos dados, e então unir documentos com o mesmo conteúdo gerando arquivos mais completos e corretos. Outra vantagem é que a existência de um esquema facilitará o mapeamento de dados XML para um esquema relacional e também tornará eficiente a formulação, otimização e o planejamento de queries. Apesar de ser muito importante, a maioria dos documentos XML ainda não possui um esquema acompanhando, e mesmo que o possuírem, é provável que os esquemas não sejam idênticos.este fator levou-nos a pensar numa ferramenta que pudesse solucionar, mesmo que parcialmente, este problema, já que a integração de dados tornou-se fundamental devido a grande quantidade de dados que circulam na Web atualmente. Algumas ferramentas já foram desenvolvidas no sentido de tentar sanar o problema anteriormente mencionado. Porém, elas geram o esquema a partir de um único documento XML. O nosso objetivo é implementar um software que possibilite ao usuário entrar com vários documentos de mesma autoria e a partir disto gerar um esquema único e completo. No entanto, um dos maiores problemas na formação de um esquema está relacionado a alcançar um esquema que consiga ser completo e compacto, já que estas são características indiretamente proporcionais: tendem a ser ou muito volumosas ou não são intuitivas. (2)

5 Encontrar um esquema que consiga balancear estas duas características é mais um dos problemas que tentaremos solucionar.

6 2 XML - extensible Markup Language XML, padrão popular do consórcio W3C, surgiu como o novo padrão para troca, representação e manipulação de documentos estruturados (1). Como o próprio nome diz, é uma linguagem de marcação, com formato aberto, isto é, o próprio desenvolvedor cria os elementos que serão utilizados para construir o documento (3). Pela sua versatilidade e capacidade de extensão, XML é, na verdade, uma meta-linguagem que serve de definição de novas linguagens de marcação. (4) Um documento XML é onde são definidos os dados XML (5). Estes documentos XML formam uma coleção de elementos aninhados hierarquicamente (1) com instruções especiais, chamadas tags que servem de delimitadores de informação. (5). O conceito de tags é também utilizado na linguagem HTML.Apesar das semelhanças apresentadas nessas duas linguagens, existem diferenças fundamentais. Uma delas é em relação ao uso das tags, que apresentam-se pré-definidas em um documento HTML, enquanto possui valor semântico na linguagem XML. Outra diferença importante está relacionada com a função específica de cada linguagem. Enquanto a função da linguagem HTML está dividida entre estruturar o documento e disponibilizá-lo no navegador, XML preocupa-se com a estruturação da informação.(3) Cada documento XML possui uma estrutura lógica e física. A estrutura física permite componentes de documentos chamados entidades, que podem ser nomeadas ou armazenadas separadamente. (4) A estrutura lógica é composta de declarações, elementos, comentários, enfim, tudo o que estiver indicado no documento através de marcação.(6) A figura 1 mostra um pouco da estrutura de um documento XML. A característica que determina o esqueleto de documento XML está ligada à noção de esquema, que pode opcionalmente acompanhar um documento XML. (2) Um esquema tem como função descrever a estrutura interna de um documento XML.Existem dois tipos de esquemas: DTD (representado na figura 2) e XML Schema(figura 3.

7 <note> <date>2006-08-01</date> <to>professor</to> <from>keli e Susane</from> <heading>note</heading> <body>n~ao esqueça de dar uma boa nota!</body> </note> Figura 1: Estrutura XML <?xml version- 1.0?> <!DOCTYPE note [ <!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>professor</to> <from>keli e Susane</from> <heading>lembrete</heading> <body>n~ao esqueça de dar uma boa nota!</body> </note> Figura 2: Exemplo do documento XML com DTD COLOCAR EXEMPLO DE XML SCHEMA <to>professor</to> <from>keli e Susane</from> <heading>lembrete</heading> <body>n~ao esqueça de dar uma boa nota!</body> </note> Figura 3: Estrutura XML

8 3 Esquemas Esquemas são a forma como um documento XML pode ser estruturado. Através do uso destas estruturas diferentes desenvolvedores podem interagir integrando duas ou mais coleções heterogenias de dados no formato XML, isso devido ao fato de diferentes documentos poderem possuir o mesmo esquema. Ferramentas que unam dois ou mais arquivos XML vem sendo estudadas por pesquisadores e desenvolvedores a declaração de esquemas torna-se uma maneira organizada e eficiente para que possa haver a fusão de tais documentos. Atualmente existem alguns tipos diferentes de esquemas para XML: DSD, Schematron, DTD e XML Schema. Os dois últimos são os esquemas mais utilizados pela comunidade, por isso esses possuíram prioridade em nossos estudos. 3.1 DTD - Document Type Description A ferramenta DTD é um conjunto de regras que define as instruções que serão enviadas ao analisador sintático para o documento que está para ser analisado.(3)essas regras definem o tipo dos elementos que podem ser usados e definem a hierarquia e granularidade do texto. (4) Um DTD possui a capacidade de definir o conteúdo de um elemento no formato de expressões regulares (1). Projetado inicialmente para gerenciamento de aplicações (2), DTD permite a validação de documentos XML, torna eficiente o armazenamento de dados XML, já que facilita a integração de dados através do esquema, a formulação, otimização e processamento de consultas sobre documentos XML. (2) Um DTD é composto por declarações. Cada declaração está de acordo com o formato de marcação <!... > e é classificado pelos tipos: ELEMENT (definição de elementos), ATTLIST (definição de atributos), ENTITY (definição de entidades) e NOTATION (definição de tipos de dados). Essas declarações são agrupadas juntas dentro de um

9 DTD.(4) Os elementos constroem os blocos principais. Eles podem conter texto, outros elementos, ou estarem vazios.(7) Na declaração do elemento é possível também declarar a quantidade de ocorrências do mesmo elemento: Uma única ocorrência: <!ELEMENT element-name (child-name)> Mínimo de uma ocorrência: : <!ELEMENT element-name (child-name+)> Zero ou mais ocorrências: <!ELEMENT element-name (child-name*)> Zero ou nenhuma ocorrência: <!ELEMENT element-name (child-name?)> Um ou outro contexto: <! ELEMENT element-name(child name1 child name2) > Já os atributos contêm informações extras sobre os elementos. Estão sempre localizados dentro de uma tag de um elemento e vem sempre aos pares (nome/valor), como pode ser observado na figura 4. (7) O primeiro parâmetro na declaração será o nome seguido do tipo do atributo que pode variar dentro das seguintes possibilidades: CDATA, NMTOKEN, NMTOKENS, ENTITY, ENTITIES, ID, IDREF, IDREFS, notatione name group. (4) O parâmetro final é o valor que especifica o valor que será atribuído ao texto quando o autor do documento não entra com o valor. (4) Os valores que podem ser usados são: #REQUIRED(o valor do atributo deve estar incluso no elemento), #IMPLIED (O atributo não precisa estar incluso) e #FIXED (O valor do atributo é fixo).(7) <!ATTLIST element-name attribute-name attribute-type defaul-value> Exemplo: DTD: <!ATTLIST pagamento type (cheque dinheiro) dinheiro > XML: <pagamento type= cheque > ou <pagamento type= dinheiro > Figura 4: Sintaxe e exemplo de uma declaração de atributo As entidades, 5 são variáveis usadas para definir textos comuns. Uma entidade é utilizada para evitar a repetição de textos similares. Isto reduzirá a carga de trabalho, fará com que apareçam menos erros e facilitará o entendimento da estrutura DTD. (4) A notação identifica tipos binários externos específicos e passa a informação para a aplicação.

10 <!ENTITY entity-name entity-value > Exemplo: DTD: <!ENTITY livro-name Código da Vinci > <!ENTITY autor Dan Brown > XML: <livro>&livro-name;&autor;</livro> Figura 5: Sintaxe e exemplo de uma declaração de entidade 3.2 XML Schema O esquema XML SCHEMA foi aprovado pela W3C em 16 de março de 2001. Surgiu para ser o sucessor de esquemas DTDs por isso possuí todas as funcionalidades deste e ainda características específicas que o fazem superior. A intenção (proposta) de um XML SCHEMA é definir a construção de blocos de um documento XML(6). Diferente de DTDs, este tipo de esquema é estruturado seguindo o mesmo formato sintático de XML esse fato possibilita a utilização de processadores XML para fazer a validação dos esquemas escritos em XML SCHEMA (3), bem como a manipulação de um SCHEMA com XML DOM (6). Duas outras importantes características ausentes nos DTDs e presentes neste esquema são a possibilidade de estender documentos para futuras adições e a capacidade de suportar namespaces. Para que tais características fossem possíveis os componentes sintáticos de SCHEMA apresentam algumas peculiaridades que o fazem mais complexo e ao mesmo tempo mais poderoso do que os demais esquemas existentes. Os elementos declarados em XML SCHEMA podem ser do tipo simples ou complexo. Os primeiros são os elementos formados somente por texto como podemos observar na figura 6. O segundo tipo são aqueles que possuem outros elementos aninhados dentro de sua estrutura e/ou atributos que determinam o comportamento dos dados inseridos no documento, exemplo na figura 7. <xs:element name= firstname type= xs:string > Figura 6: Elemento Simples de XML Schema Algumas das principais vantagens de XML SCHEMA ocorrem por causa da declaração de atributos. Devido à existência destes é possível definição de diferentes classes de dados (String, Decimal, Integer, Boolean, Date e Time). Outra contribuição importante é a possibilidade de criar restrições semelhantes as utilizadas em modelos relacionais tais como: conteúdo, tamanho, valor, etc.

11 <xs: element name = employee > <xs:complextype> <xs:sequence> <xs:element name= firstname type= xs:string /> < xs:element name= lastname type= xs:string > </xs:sequence > </xs:complextype> </xs:element> Figura 7: Exemplo Elemento Complexo de XML Schema A figura 8 é um exemplo de um XML Schema com todas as características presentes nestes esquemas: elementos complexos, restrições, atributos, namespace, dentre outras. <?xml version= 1.0 encoding= ISO-8859-1 > <xs:schema xmlns:xs= http://www.w3.org/2001/xmlschema elementformdefault= qualified <xs: element name = persons > <xs:complextype> <xs:sequence> <xs:element name= person maxoccurs= unbounded > <xs:complextype> <xs:sequence> < xs:element name= full_name type= xs:string /> < xs:element name= child_name type= xs:string minoccurs= 0 maxoccurs= 5 /> </xs:sequence> </xs:complextype> </xs:element> </xs:sequence > </xs:complextype> </xs:element> </xs:schema> Figura 8: Exemplo Elemento Complexo de XML Schema

12 4 Trabalhos Relacionados A partir dos estudos realizados com base nos trabalhos relacionados a seguir, será escolhido as melhores e mais eficientes técnicas, e estas poderão ser adaptadas para o desenvolvimento da ferramenta desejada. 4.1 XTRACT: Um sistema para extração de DTDs a partir de documentos XML Este trabalho busca encontrar o DTD perfeito, combinando precisão e intuição, através de uma seqüência de passos que envolvem a procura de padrões nas seqüências de entrada (2), seguindo de uma fatoração dos possíveis candidatos gerados no passo anterior e concluindo com a aplicação do princípio da Descrição do Tamanho Mínimo. No primeiro passo, chamado de generalização, será empregado algoritmos heurísticos para encontrar padrões em cada seqüência de entrada e então substituí-las por expressões regulares apropriadas para produzir candidatos mais gerais. O principal objetivo deste passo é introduzir metacaracteres (, +,?,...) para produzir sub-expressões que gerem os padrões observados nas seqüências de entrada.(2) Isto é realizado através da descoberta de freqüências e de ocorrências próximas de subseqüências e símbolos em cada seqüência de entrada.(2) Por exemplo, se tivermos como entrada a seqüência abababcababc, este passo vai verificar que o a seqüência ab utilizado dois campos e substituirá por expressão A1. Como resultado teremos A1cA1c, e finalmente será substituído pelo termo ((ab) c) O segundo passo, conhecido como Fatoração, herda os candidatos a DTD obtidos no passo anterior e tenta torná-los mais concisos através da aplicação de técnicas adaptadas apropriadamente da literatura de otimização lógica.(2) A fatoração é usada para tentar obter DTD de menor tamanho e conseqüentemente, melhor qualidade. Supondo que temos como entrada a seqüência I = ab, abab, ac, ad, bc, bd.bbd, bbbbe e o módulo da generalização gerou o seguinte resultado: G = I (ab), (a b), b d, b e. Através da

13 fatoração teremos F = G (a b)(c d), b (d e) e então, isto será passado para o próximo passo que é responsável por definir qual, entre todas as opções geradas, será o DTD ótimo. No terceiro e mais importante passo será aplicado o princípio da Descrição do tamanho Mínimo. Este mecanismo irá classificar cada candidato a DTD com base no custo atribuído a cada DTD. Este custo dependerá do tamanho da teoria, em bits, que será o responsável para encontrar um DTD conciso, e do tamanho dos dados, em bits, que definirá a precisão do candidato.(2) Por exemplo, considerando a entrada I = ab, abab, ababab e considerando que entre os resultados encontrados estejam (1) ab abab ababab e (2) (ab). No cálculo do custo do resultado (1) teremos 17, sendo 14 para codificar o DTD (quantidade de caracteres) +3 para codificar a seqüência de entrada (1 caracter para cada posição de entrada). Já no cálculo do resultado (2) foi obtido 8, sendo 5 para a codificação do DTD e 3 para codificação da seqüência de entrada (necessário para especificar o número de repetições do termo ab para cada seqüência). (2) Neste caso, o DTD escolhido seria o número 2, pois ele conseguiu captar um DTD que consegue abranger toda a seqüência de entrada e, ao mesmo tempo, é compacto. Segundo o artigo, os resultados obtidos na utilização deste sistema são satisfatórios, já que sempre consegue encontrar um DTD ótimo ou muito próximo disto. Porém, ainda não foram feitos estudos para ampliar o sistema para captação de um XML Schema, que é, atualmente, o esquema recomendado pela W3C. 4.2 DataGuides: Enabling Query Formulation and Optimization in Semistructed Databases O DataGuide foi introduzido para aproveitar os benefícios de um esquema. Os Data- Guides são um sumário estrutural de banco de dados semi-estruturados concisos e exatos, que agem como esquemas dinâmicos. Gerados a partir de um banco de dados, são utilizados para formulação de queries, armazenamento de informação e também possilitam a otimização das queries.(8) Este artigo baseia-se no Object Exchange Model (OEM). Em OEM, cada objeto contém um objeto identificador e um valor, que pode ser atômico ou complexo. Também baseia-se na Linguagem de Lore, criada na Universidade de Stanford, e na conversão de autômatos finitos não-determinísticos (AFND) para autômatos finitos determinísticos(afd). DataGuides descrevem um caminho único rotulado com exatamente uma fonte, sem levar em conta o número de vezes que o DataGuides aparecesse na fonte. Para garantir

14 exatidão, foi especificado que o DataGuide não codificaria o caminho que não aparece na fonte e para garantir conveniência, o DataGuides deve ser um OEM para que possa armazenar e acessar o DataGuides usando as mesmas tecnologias disponíveis para processar o OEM. (8) 4.3 Extração de esquemas de dados XML: Uma Abordagem de Gramática de Inferência O artigo de Boris Chidlovskii enfatiza a importância de se possuir uma definição de esquema para documentos XML e propõe uma alternativa para a extração deste esquema através do relacionamento sintático de documentos XML com linguagens Livre de Contexto, ou melhor, uma extensão dessas linguagens. Através de métodos desenvolvidos para este tipo de gramática e também para as regulares foi possível criar um algoritmo baseado em Gramáticas Livre de Contexto de Inferência para realizar a extração do XML SCHEMA de documentos XML. O autor defende seu ponto de vista alegando que dados XML são equivalentes a um exemplo estruturado na teoria da Inferência Gramatical. No algoritmo sugerido por este trabalho primeiramente o documento XML é mapeado para um formato de uma linguagem livre de contexto. Posteriormente métodos de comparação seguidos de métodos de fatoração e consecutivos merges de elementos mapeados possibilitam a obtenção de uma estrutura ainda no formato de gramática que finalmente será uma aproximação do esquema do documento XML. O algoritmo pode ser descrito através dos seguintes passos: 1) Representar documentos XML como um conjunto estruturado de dados; 2) Induzir uma gramática livre de contexto estendida (G) para o documento XML em questão (I); 2.1) Criar o conjunto inicial de não terminais N; 2.2) Fundir os elementos não-terminais de N que possuem conteúdo e contexto similares; 2.3) Determinar tipos de dados para os terminais em G; 3) Transformar o resultado da Gramática Livre de Contexto Estendida G em uma definição XML SCHEMA S.

15 Para melhor entendimento do algoritmo será demonstrado, através de um exemplo, os resultados obtidos a cada passo, possibilitando assim uma melhor visualização da idéia do autor do artigo. A figura 9 possuí um documento XML que contem informações sobre clubes do futebol europeu e sua situação dentro dos campeonatos que já disputaram. <teams> <team><name>juventus</name> <ChLeague> <year>1999</year><result>semi-final</result> <year>1997</year><result>final</result>...//5 success in total </ChLeague> <UEFA> <year>1995</year><result>final</result>... // 7 success in total </UEFA> </team> <team><name>manchester United</name> <ChLeague> <year>1999</year><result>winner</result>... // 4 success in total </ChLeague> </team>... // 46 teams in total </teams> Figura 9: Exemplo documento XML Campeonato Europel de Futebol A figura 10 mostra como seria o correto XML Schema correspondente ao arquivo dos clubes de futebol europeus. A figura 9 representa o primeiro passo do algoritmo. A seguir é necessário que se faça o mapeamento dos elementos presentes no documento XML para a GLCE G. A correspondente GLCE é dada por G = (T,N,D,&,Start) onde T={teams, team, name,...}, N = {Start, TeamType, ListType}, D = {String, PositiveInteger}, and & contem a seguinte regra de produção: Start -> teams:teamstype TeamsType -> (team:teamtype) [0:500] TeamType -> name:string (ChLeague:ListType) [0:1] (UEPA: ListType) [0:1] ListType -> (year:positiveinteger result:string) [1:100] O próximo passo do algoritmo é a geração do conjunto inicial de não terminais. Para melhor visualização o autor associou o tipo genérico Any para os elementos simples e um rótulo para cada elemento complexo do documento XML. Logo o resultado do passo 2.1 do algoritmo é:

<element name = teams > <complextype> <element name = team type = TeamType maxoccurs = 500 /> </complextype> <complextype name = TeamType > <element name = name type = String /> <element name = ChLeague type = ListType minoccurs = 0 maxoccurs = 1 / <element name = UEFA type = ListType minoccurs = 0 maxoccurs = 1 /> </complextype> <complextype name= ListType > <group minoccurs = 1 maxoccurs= 100 > <element name = year type = PositiveInteger /> <element name = result type = String /></group> </complextype> </element> 16 Figura 10: Exemplo XML Schema Campeonato Europel de Futebol Start -> team:a1 team: A2 team: A3... (46 teams in total) A1 -> name: Any ChLeague: A47 UEFA: A48 A2 -> name: Any ChLeague: A49 A3 -> name: Any... A47 -> year: Any result: Any... // (7 year-result pairs in total) A48 -> year: Any result: Any... // (5 pairs) A49 -> year: Any result: Any... // (4 pairs)... Após obtidos os não terminais é necessário fazer a fusão entre os elementos similares. O primeiro não terminal a receber a sofrer a fusão é o Start, pois suas produções possuem ambigüidade com o terminal team. O resultado da fusão continha termos ambíguos com terminais ChLeague, portanto foram fundidos os não-terminais A47 e A49. Estas fusões geraram o seguinte conjunto de produções: Start -> team:a1 team:a1 team:a1... (46 teams in total) A1 -> name: Any ChLeague: A47 UEFA: A48 A1 -> name: Any ChLeague: A47 A1 -> name: Any A47 -> year: Any result: Any... // (7 pairs) A48 -> year: Any result: Any... // (5 pairs)

17 A47... -> year: Any result: Any... // (4 pairs) Observa-se neste resultado que os não-terminais A47 e A48 estão repetindo os pares de elementos year e result, por isso serão fundidos. O resultado obtido após as fusões é uma Gramática Livre de Contexto com os não-terminais que geram diferentes produções. Start -> (team:a1) [46] A1 -> name: Any ChLeague: A47 UEFA: A47 name: Any ChLeague: A47... A47 -> (year: Any result: Any) [7] year: Any result: Any)[5]... Como último passo do algoritmo referente a produção da gramática que servirá de base para a obtenção do XML Schema são analisadas as produções e através de métodos ( ainda não estudados a fundo) é obtido a seguinte gramática: Start -> (team: A1) [46] A1 -> name: String (ChLeague: A4) [0:1] (UEFA:A4) [0:1] A4 -> (year: UnsignedShort result: String) [0:8]

5 Conclusão 18

ANEXO A -- Codigos 19

20 Referências 1 CHILDLOVSKII, B. Schema extraction from xml data: A grammatical inference approach. 2 GAROFALAKIS, M. et al. Xtract: A system for extracting document type descriptors from xml documents. 3 JR., J. R. T. XML Schema. [S.l.]: Visual Books Ltda, 2002. 4 BRADLEY, N. The xml schema companion. 2003. 5 FRANTZ, A. P. Um processo de conversão de xml schemas para um conceito conceitual. 6 W3C. World Wide Web Consortium. Acesso em 10/2006. Disponível em: <www.w3c.org>. 7 W3SCHOOL. w3cschool.com. Acesso em 10/2006. Disponível em: <www.w3cschool-.com>. 8 GOLDMAN, R.; WIDOM, J. Dataguides: Enabling query formulation and optimization in semistructed databases.