pextract: Uma abordagem probabilística para a extração de esquemas de documentos XML



Documentos relacionados
Um Estudo das Abordagens para Extração de Esquemas XML

Orientação a Objetos

4 Implementação e Resultados Experimentais

Processo de Controle das Reposições da loja

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

NetEye Guia de Instalação

Extração de Árvores de Decisão com a Ferramenta de Data Mining Weka

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

MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Modelagemde Software Orientadaa Objetos com UML

Banco de Dados BrOffice Base

Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos

WXDC: Uma Ferramenta para Imposição e Validação de Restrições de Integridade baseadas na Linguagem XDCL

Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado.

Manual de Instalação ProJuris8

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

Introdução a Java. Hélder Nunes

Manual Geral do OASIS

CONFIGURAÇÃO Cobian Backup Programa gratuito e de qualidade para realizar seus backups automáticos

Guia de instalação UEG Linux LTS

Manual do Plone (novo portal do IFCE)

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

ADM041 / EPR806 Sistemas de Informação

1. NÍVEL CONVENCIONAL DE MÁQUINA

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Microsoft Office Outlook Web Access ABYARAIMOVEIS.COM.BR

PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO

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

Manual do Visualizador NF e KEY BEST

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

SAFT para siscom. Manual do Utilizador. Data última versão: Versão: Data criação:

02 - Usando o SiteMaster - Informações importantes


ANÁLISE DA CONSERVAÇÃO PÓS-COLHEITA DA ALFACE (Lactuca Sativa, L) UTILIZANDO O SISTEMA DE APOIO À TOMADA DE DECISÃO BKD

Procedimentos para Reinstalação do Sisloc

Algoritmos e Estrutura de Dados III. Árvores

TRANSMISSOR ECF. Sistema de transmissão de arquivos Nota Fiscal Paulista. Manual de Utilização

AULA 4 Sistemas Operacionais

Estudo comparativo entre dois tradicionais algoritmos de roteamento: vetor distância e estado de enlace.

TRIBUNAL DE JUSTIÇA DO PARANÁ PROJUDI REFORMULAÇÃO DE CUMPRIMENTOS - MANDADOS

Sistema de Instalação e Criação da Estrutura do Banco de Dados MANUAL DO INSTALADOR. Julho/2007. Ministério da saúde

Manual de digitação de contas Portal AFPERGS

Especificação do 3º Trabalho

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

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

GEADA. Gerador de Expressões Algébricas em Digrafos Acíclicos. para versão 1.0, de agosto/2008. Autor: Márcio Katsumi Oikawa

UFG - Instituto de Informática

MicrovixPOS Requisitos, Instalação e Execução

TUTORIAL DE USO DO BUSINESS INTELLIGENCE (BI) PARA O HÓRUS-ESPECIALIZADO

XVersioning - Uma Ferramenta para Versionamento de Esquemas XML

Sumário. 1

Como funciona? SUMÁRIO

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

O Gerenciamento de Documentos Analógico/Digital

Oficina. Praça das Três Caixas d Água Porto Velho - RO

Curva ABC. Tecinco Informática Ltda. Av. Brasil, º Andar Centro Cascavel PR

Aplicativo da Manifestação do Destinatário. Manual

Feature-Driven Development

PRINCÍPIOS DE INFORMÁTICA PRÁTICA OBJETIVO 2. BASE TEÓRICA. 2.1 Criando Mapas no Excel. 2.2 Utilizando o Mapa

HCT Compatibilidade Manual do Usuário

SISTEMA INTEGRADO DE ADMINISTRAÇÃO DA RECEITA PED MANUAL INTERNET

Gestão de Ativos. Manual do Usuário. Treinamento Fase 1 (TRN 01)

atube Catcher versão 3.8 Manual de instalação do software atube Catcher

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

ÍNDICE... 2 INTRODUÇÃO... 4

Sistema Banco de Preços Manual do Usuário OBSERVATÓRIO

Especificação do Trabalho

Google Drive. Passos. Configurando o Google Drive

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

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

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

MANUAL DO USUÁRIO. TOOLBOX SIA.

1. Sistemas de numeração

Sistema de Controle de Solicitação de Desenvolvimento

3 SCS: Sistema de Componentes de Software

Funcionalidades do Sistema de Negociação de Créditos de Carbono. Anexo VIII

DIFERENÇAS ENTRE FUNÇÃO E BLOCO FUNCIONAL; CRIAÇÃO DE FUNÇÃO / BLOCO FUNCIONAL; UTILIZAÇÃO NO LADDER; EXEMPLO DE BLOCO FUNCIONAL;

Procedimentos para Instalação do Sisloc

Manual de Instalação

Orientação a Objetos

Edital 012/PROAD/SGP/2012

Tutorial Mapa-Temático

CATÁLOGO DE CUSTOMIZAÇÕES Apontamento Web

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.

Profª Danielle Casillo

CAPÍTULO 2. Grafos e Redes

Bem vindo! Esta é a tela inicial do Webmail da Universidade federal de Juiz de Fora. O link de acesso é:

Universidade Federal do Estado do Rio de Janeiro UNIRIO. Guia para criação do banco de dados de redes sociais

Versão PIMACO AUTOADESIVOS LTDA. Assistente Pimaco Ajuda ao Usuário

Recuperação de Imagens na Web Baseada em Informações Textuais

Controle de Almoxarifado

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

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos.

Microsoft Office PowerPoint 2007

Transcrição:

paper:3 pextract: Uma abordagem probabilística para a extração de esquemas de documentos XML Geomar A. Schreiner 1, Denio Duarte 2 1 Departamento de Informática e Estatística Universidade Federal de Santa Catarina (UFSC) 2 Universidade da Fronteira Sul (UFFS) Campus Chapecó geomarschreiner@gmail.com.br, duarte@uffs.edu.br Abstract. Data exchange still relies on XML document, mainly in Web applications. However, mostly of these documents are not valid, i.e., there not exists a schema associated to them. Schemas are usefull to optimize XML processing operations. In this context, a tool that extracts a schema from a XML document collection helps applications to process documents efficiently. This paper presents pextract : a tool to extract XML schema from XML document collection based on bayesian network and extended context-free grammar. We conduct experiments to show pextract correcteness and efficiency. Resumo. XML é o padrão preferido para troca de dados entre aplicações. Muitos dos documentos XML não possuem esquemas associados tornando assim otimizações de consultas e de armazenamento mais complexas. Ferramentas de extração de esquemas XML são úteis quando se necessita realizar tais otimizações. Este trabalho apresenta o pextract : uma ferramenta para extração de esquemas XML baseada em rede Bayesiana e em gramática livre de contexto estendida. 1. Introdução Documentos XML (Extensible Markup Language) ainda são utilizados tanto na área de desenvolvimento quanto na interoperabilidade entre aplicações [Moro et al. 2009]. Porém, a maioria dos documentos são gerados sem um esquema associado [Barbosa et al. 2005]. Um esquema permite que o processamento dos documentos seja menos custoso computacionalmente. Assim, esquemas são úteis pois: (i) auxiliam na consulta dos dados, (ii) otimizam o processamento das consultas, (iii) são base para formas eficientes de armazenamento dos dados, (iv) permitem a criação de classes de documentos e (v) facilitam o processo de mapeamento do documento em outros formatos (e.g., dados relacionais). Neste contexto, ferramentas que extraem esquemas a partir de uma coleção de documentos XML têm um papel importante no processamento eficiente de tais documentos pelas aplicações. Este artigo apresenta uma ferramenta para extração de esquemas, nomeada pextract 1. O pextract realiza a extração do esquema baseada em uma abordagem probabilística. A abordagem utilizada transforma a coleção de documentos (possivelmente unitária) de um mesmo domínio (estruturalmente semelhantes) como entrada em 1 Demo disponível em http://pextract.blogspot.com.br 221

uma rede Bayesiana baseada em crença (grafo direcionado etiquetado com as probabilidades) e a partir deste grafo gera um gramática livre de contexto estendida (ecf G - extended Context-Free-Grammar) que descreve a estrutura da coleção. Posteriormente, o pextract transforma esta ecf G em uma XSD (XML-Schema). O restante deste trabalho está organizado da seguinte forma: na próxima seção são apresentadas brevemente algumas abordagens de extração de esquema encontradas na literatura. A Seção 3 apresenta a estrutura do pextract e seu funcionamento. Na Seção 4 são apresentados alguns experimentos. Finalmente, a Seção 5 apresenta as conclusões deste trabalho. 2. Trabalhos Relacionados Na literatura são propostas várias abordagens para a extração de esquemas de documentos XML. Em [Garofalakis et al. 2000] é proposta a ferramenta XTRACT que extrai um esquema de um documento XML D criando para cada elemento e de D, um conjunto de sequências de subelementos de e. O conjunto de sequências é submetido a um processo de inferência de expressões regulares. As expressões regulares R são simplificadas para compor o esquema final descrito por uma DTD. [Xing and Parthepan 2011] propõe uma melhoria no processo de simplificação do XTRACT utilizando autômatos finitos para selecionar as melhores R dentre as candidatas. A abordagem proposta em [Min et al. 2003] assemelha-se, também, em parte à abordagem do XTRACT, porém cada um dos elementos de D tem seu conteúdo extraído e, então, é inferida uma regra com notação própria que represente o conteúdo do elemento avaliado. Em seguida, as regras são validadas em relação aos elementos no documento. Embora a gramática possa ser transformada em XSD ou DTD nenhuma transformação é proposta. O XStruct ([Hegewald et al. 2006]) combina as duas abordagens anteriores. Essa abordagem utiliza uma variação do algoritmo proposto em [Min et al. 2003] para realizar a extração de uma gramática G que gere a estrutura do documento. G é simplificada pelo processo de fatoração proposto por [Garofalakis et al. 2000]. A ferramenta extrai atributos e tipos básicos para compor o esquema gerado em XSD. Uma abordagem diferente é proposta em [Chidlovskii 2001] baseada em inferência gramatical, isto é, para um dado documento XML é inferida uma gramática que descreve sua estrutura. As regras são geradas a partir da árvore XML e depois fusionadas com base no contexto e no conteúdo a fim de simplificar a gramática gerada. Um esquema XSD é gerado a partir das regras extraídas. A abordagem proposta neste trabalho estende a abordagem proposta em [Pasquali and Duarte 2008] que propõe um algoritmo que constrói um grafo G a partir de uma árvore XML t. Os nós de G representam os elementos e os arcos a probabilidade de ocorrer um relacionamento (pai, filho ou irmão) entre os elementos. Em seguida, G é transformado em uma ecf G. O algoritmo proposto não foi implementado e assim não é possível verificar a eficácia e corretude do mesmo. pextract implementa esse método transformando a coleção XML em uma rede Bayesiana baseada em crença R sem a necessidade de construir uma árvore e em seguida transforma R em uma ecf G. Assim, pextract difere dos métodos apresentados por criar uma rede Bayesiana baseada em crença para gerar uma gramática e propor um esquema XSD que descreve a coleção de documentos XML de entrada. 222

3. pextract A abordagem proposta é baseada em três passos que serão brevemente explicados a seguir (supondo que a coleção de documentos XML é unitária). 1. Inicialmente, o pextract cria a rede Bayesiana baseada em crença a partir da leitura de utilizando a API SAX 2. O parser SAX faz a leitura do documento baseado em eventos, ou seja, a cada elemento encontrado pelo parser são invocados métodos pré-definidos. O início do documento invoca o método startdocument e quando o parser alcança o final do documento é invocado o método enddocument. Cada abertura de uma tag produz uma chamada para um método startelement e seu fechamento uma chamada para endelement. Esses métodos são utilizados para criar a rede Bayesiana. Por exemplo, a cada chamada do método startelement é criado um nodo na rede e são criados os relacionamentos que este nodo possui com os demais. Ao final deste passo, a rede Bayesiana B terá sido criada contendo todos elementos da coleção e conhecimentos probabilísticos das relações entre os elementos (i.e., pai, filho, filho mais à direita e irmão). B é um grafo G = (V, E), onde os nós V representam os elementos de D e as arestas E representam o conhecimento probabilísticos entre os nós de V. Se existir uma aresta entre os nós (elementos) n 1 e n 2 então existe uma relação de parentesco entre n 1 e n 2. Assim, E armazena o conhecimento probabilístico de n 1 ser pai, filho, filho mais à direita ou irmão de n 2. A Figura 2 apresenta um exemplo de B. 2. A rede Bayesiana de crença gerada é utilizada para propor uma ecf G que contém a estrutura do documento. O nó inicial na rede Bayesiana (sem arcos entrantes) representa o nó raiz da árvore do documento XML e tem o rótulo transformado na cabeça de uma regra da ecf G a ser gerada. Este rótulo é o símbolo inicial da gramática (nó de cor vermelha na Figura 2). A produção desta regra é formada pelos nós que possuem uma aresta do tipo c (child) partindo do nó raiz. Após a criação da regra de produção do nó raiz, todos os outros nós são visitados executando o mesmo processo. Para o nó etiquetado P LANT da Figura 2, por exemplo, é criada a seguinte regra de produção plant common botanical zone light price availability pois P LANT tem arestas para os nós etiquetados com os elementos do corpo da regra e os nós que compõem o corpo da regra tem a relação de irmão ( s - sibling) entre si. 3. O último passo transforma a ecf G em um esquema na linguagem XSD. As regras utilizadas para a conversão dos elementos da gramática são: 3.1. As cabeças das regras da ecf G gerada são transformadas em elementos; 3.2. Regras cuja produção é vazia (i.e., ɛ) geram elementos simples do tipo string; 3.3. Regras cujas produções são compostas (i.e., A (BC D)) geram elementos de tipo complexo; 3.4. Produções concatenadas (unidas pelo operando e) são declaradas dentro de delimitadores de grupo do tipo sequence; 3.5. Produções unidas pelo separador (operador ou) são declaradas em delimitadores de grupo do tipo choice; 3.6. Produções que possuem o fecho positivo (respectivamente negativo) de Kleene ( + ) (respectivamente ( )) devem possuir minoccurs = 1 (respectivamente minoccurs = 0) e maxoccurs = unbounded, não limitando o número de repetições aceitas; 3.7. Produções que são seguidas do símbolo? devem possuir minoccurs = 0; 2 http://www.saxproject.org/ 223

O pextract foi implementado na linguagem Java. A utilização do sistema pode ser feita utilizando um modo gráfico (GUI) ou em modo texto. As formas de utilização do sistema (com interface ou sem) não interferem no resultado gerado, já que ambas utilizam as mesmas classes para realizar a extração. A Figura 1 apresenta a interface criada para o pextract. Na interface, o usuário seleciona a coleção (documento ou pasta) XML para extração do esquema (Figura 1a). O campo output apresenta o nome e o local onde o esquema será gravado (Figura 1b). A Figura 1c apresenta a área de visualização que dependendo do contexto pode ser a coleção ou a XSD gerada. Ao clicar no botão Run, o processo de extração de esquema é iniciado. O painel localizado à esquerda da interface do pextract (Figura 1d) apresenta as etapas que o pextract realiza. A aba Main é a janela principal. A aba XML mostra a coleção de entrada para a extração. A aba Graph apresenta a rede Bayesiana de Crença criada a partir da coleção XML (Figura 2). Na aba ecfg é apresentada a ecf G criada a partir do grafo. E a aba XSD apresenta a XSD gerada. Figura 1. Interface pextract - Visualização XSD A Figura 2 apresenta a visualização da aba Graph onde é exibido o grafo gerado a partir de um documento XML (Figura 1a). O grafo apresenta um nó na cor vermelha (CATALOG) que representa a raiz do documento. Os demais nós do grafo (elementos internos) são azuis. Verifica-se também pela figura, que as arestas do grafo apresentam duas cores. As arestas verdes representam relacionamentos do tipo filho entre a origem da aresta e seu destino. Já as arestas alaranjadas representam relacionamentos do tipo irmão à direita. Para a melhor visualização do grafo optou-se por não exibir auto-relacionamentos (esse tipo de relacionamento indica que o elemento representado pelo nó será representado pelo fechamento positivo ou negativo de Kleene na gramática). Em termos de complexidade de tempo, a transformação da coleção de documentos C no grafo da rede Bayesiana B é O(n), onde n é o número de elementos de C. A construção da ecf G a partir de B é também O(k), onde k é o número de nós de B (elementos distintos de C). Finalmente, a transformação da ecf G no esquema é O(r), onde r é o número de símbolos em ecf G. 224

Figura 2. Interface pextract - Visualização grafo 4. Experimentos O gráfico (Figura 3) apresenta resultados de experimentos realizados utilizando o pextract. A série Documentos P. 4 representa quatro documentos XML contendo 8 elementos distintos, combinados com profundidade 4 e com o total de 146, 508.488, 20.156.021 e 4.528.060.093 elementos, respectivamente. Já Documentos P.10 segue a mesma lógica mas com 19 elementos distintos, combinados com profundidade 10. O gráfico apresenta em seu eixo Y a quantidade de segundos que o teste levou para ser executado. No eixo X é apresentado o número de elementos (com repetições) de cada experimento. Percebe-se que os documentos com maior número de elementos tiveram tempos de extração superior a 200 segundos. Esses documentos têm tamanhos 7Gb e 22Gb, respectivamente. Através do gráfico percebe-se que o pextract realiza a extração do documento em um tempo relativamente pequeno, somente ultrapassando a marca de 1 minuto para documentos com um número elevado de elementos. Figura 3. Grafico experimento O experimento foi realizado em uma estação com sistema operacional Ubuntu Linux 13.04 (32 bits) com um processador Intel Core i5-480m (2,66GHz, Cache 3MB) com 4GB de memória RAM. Para computar os tempos foi utilizado o comando time do Linux. Os documentos utilizados como entrada foram gerados a partir de um esquema 225

conhecido utilizando o software OxygenXML 3. Os resultados foram comparados de maneira manual (visualmente) com o esquema original pois não foram encontradas métricas de verificação. Para todos os teste realizados o pextract gerou um esquema compatível com o original. Como não foram encontradas implementações dos outros métodos, não foi possível fazer a comparação dos mesmos com o pextract. 5. Conclusões Documentos XML ainda são muito utilizados para transferência de dados entre aplicações na web. A maior parte dos documentos XML não possuem um esquema associado ou não respeitam as restrições impostas por ele. Esquemas permitem que sejam realizadas otimizações no processamento de documentos XML. Neste contexto, este trabalho apresentou o pextract, uma ferramenta que realiza a extração de esquemas de uma coleção (possivelmente unitária) de documentos XML. O pextract realiza a extração do esquema baseado em 3 passos: (i) realiza o parse da coleção criando uma rede Bayesiana baseada em crença, (ii) com base na rede é criada uma ecf G e (iii) a ecf G é convertida em um esquema XML na linguagem XSD. O pextract cumpre seu propósito, gerando um esquema XML compatível com o esquema original do documento XML com um baixo custo computacional pois sua complexidade de tempo é linear. Em [Schreiner 2014], pextract é descrito com mais detalhes. Referências Barbosa, D., Mignet, L., and Veltri, P. (2005). Studying the XML Web: gathering statistics from an XML sample. World Wide Web, pages 1 32. Chidlovskii, B. (2001). Schema Extration from XML Data: A Grammatical Inference Approach. KRDB01 Workshop (Knowledge Representation and Databases). Garofalakis, M., Gionis, A., and Rastogi, R. (2000). XTRACT: a system for extracting document type descriptors from XML documents. ACM SIGMOD, pages 165 176. Hegewald, J., Naumann, F., and Weis, M. (2006). XStruct: Efficient schema extraction from multiple and large XML documents. In Proceedings of ICDEW 06. IEEE. Min, J.-K., Ahn, J.-Y., and Chung, C.-W. (2003). Efficient extraction of schemas for XML documents. Information Processing Letters, 85(1):7 12. Moro, M. M., Braganholo, V., Dorneles, C. F., Duarte, D., Galante, R., and Mello, R. S. (2009). Xml: Some papers in a haystack. SIGMOD Rec., 38(2):29 34. Pasquali, F. and Duarte, D. (2008). O Uso da Probabilidade para DescreverArvores (XML). XXIII Simposio Brasileiro de Banco de Dado, (Xml). Schreiner, G. A. (2014). Extração de esquemas de documentos XML: Uma abordagem probabilística. TCC, Universidade Federal da Fronteira Sul. Xing, G. and Parthepan, V. (2011). Efficient schema extraction from a large collection of XML documents. Proceedings of the 49th ACM-SE, page 92. 3 www.oxygenxml.com 226