RESUMO: A aplicação de critérios para avaliaçà - Inf

Propaganda
LINGUAGEM DE CONSULTA PARA DOCUMENTOS XML
M. SCHUENCK1, D. B. SACCOL2
III Congresso Científico do CEULP/ULBRA
RESUMO: Este artigo realiza uma análise sobre as principais linguagens de consulta para dados
XML, levantando suas principais características. A partir disso, é proposta uma linguagem de consulta
que está em desenvolvimento no projeto PROICT dos referidos autores.
PALAVRAS CHAVE: dados XML, linguagens de consulta para XML
ARVORE DO CONHECIMENTO: Engenharias, Ciência da Computação, Metodologias e Técnicas
da Computação.
ABSTRACT: This paper analysis the main XML query languages, pointing to your main
characteristics. Therefore, it is proposed a query language being developed in PROICT project.
KEYWORDS: XML data, XML query languages
INTRODUÇÃO: A Internet é considerada a maior fonte de informações atualmente. Normalmente,
estas informações estão representadas na linguagem HTML (HyperText Markup Language) (HTML,
2003). Esta linguagem é caracterizada pela existência de tags pré-definidas e pela preocupação com a
formatação dos dados. Com o objetivo de dar maior ênfase ao conteúdo das informações, além da
representação dos dados da Internet, foi proposta a XML (eXtensible Markup Language) (XML,
2003). A característica principal desta linguagem é a possibilidade de se criar novas estruturas de
linguagens de marcação através da definição de tags pelo usuário. Os dados XML são denominados
semi-estruturados, e representam um paradigma diferente do já consagrado modelo relacional, dentre
outros. Segundo (Baru, 1998), atualmente as linguagens de consulta a dados XML se dividem em dois
paradigmas: de banco de dados, em que a sintaxe das consultas é semelhante à sintaxe das consultas a
bancos de dados relacionais; e funcional, cujas linguagens se baseiam em expressões de caminho, e
são eficientes na realização de consultas em profundidade. Diversas abordagens têm sido propostas
para a realização de consultas, dentre elas, destacam-se: XQL, XML-QL, Lorel, UnQl, XML-GL,
XQuery.
MATERIAIS E MÉTODOS: O desenvolvimento deste trabalho constituiu-se de consultas na
Internet, para busca de informações sobre as linguagens de consulta a dados XML já propostas. Em
seguida, partiu-se para um estudo e comparativo das principais linguagens, o que permitiu definir as
vantagens e desvantagens de cada uma e selecionar as melhores características. Foi realizado um
estudo sobre a linguagem SQL, para obtenção de detalhes sobre a linguagem de consulta a dados
relacionais mais utilizada na área comercial. Posteriormente, foi realizado um breve aprofundamento
teórico sobre linguagens formais, para posterior definição da sintaxe da linguagem proposta,
utilizando-se EBNF (Extended Backus-Naur Form). A pesquisa atualmente encontra-se na fase de
construção de um parser para validação das consultas, o qual está sendo desenvolvido utilizando-se a
linguagem JavaCC (Java Compiler Compiler).
RESULTADOS E DISCUSSÃO: Um número tão expressivo de linguagens para atender o mesmo
objetivo indica que certamente algumas possuem características que outras não possuem.
Logicamente, existem características que são mais usuais ou que são mais fáceis de se utilizar. Por
isto, foi realizado um estudo sobre as linguagens mais destacadas antes de se definir a gramática da
linguagem proposta a fim de identificar as características mais desejáveis. Ambos são apresentados a
seguir. XML-QL (XML Query Language) foi proposta por (Deutsch, 1999) e suas consultas permitem
a construção de novos documentos XML sob a mesma estrutura do documento XML original. É uma
1 Aluno de Iniciação científica do PROICT no curso de Engenharia Agrícola no CEULP/ULBRA.
2 Professor orientador no curso de Engenharia Agrícola no CEULP/ULBRA.
linguagem eficaz para lidar com dados de diferentes fontes, executa operações de seleção, redução,
joins, mas não as típicas de bancos de dados relacionais, relacionadas com alteração do documento
principal. Sua sintaxe é parecida com a da SQL, consistindo basicamente das cláusulas WHERE e
CONSTRUCT, em que a primeira seleciona as fontes e os parâmetros da consulta, e a segunda, as
opções de formação do documento resultante. Lorel (Goldman, 1999) é a linguagem de consulta
natural do Lore, um dos primeiros SGBD’s para dados XML, desenvolvido pela Universidade de
Stanford. Por ser projetada para ser utilizada sob um contexto de SGBD’s, a Lorel suporta todas as
operações que uma linguagem de consulta relacional suporta, tais como seleção, extração, criação,
inserção. É uma linguagem baseada em expressões de caminho, onde é apresentada a seqüência de
elementos
necessária
para
se
chegar
ao
nó
objetivo.
Por
exemplo:
congresso.artigo.autor.sobrenome. A sintaxe das consultas é geralmente do tipo
SELECT-FROM-WHERE, semelhante à SQL. XQL (XML Query Language) (XSL Working Group,
1998) consiste de uma extensão da XSL, a linguagem utilizada para apresentação de documentos
XML. Ao contrário das outras já vistas, ela representa uma linguagem do paradigma funcional,
possuindo assim, algumas características diferentes. Ela utiliza a idéia de contexto, que representa um
conjunto-domínio de nós a serem trabalhados nas consultas. Geralmente, o contexto é delimitado por
expressões de caminho com um pouco mais de flexibilidade que as da Lorel. A XQL não suporta o
uso de variáveis, o que impede a realização de consultas com joins. Além disso, não permite consultas
de várias fontes, e os resultados das consultas herdam a estrutura e a ordem do documento original.
Segundo (Kade, 1999), sob a ótica de bancos de dados existem sete características desejáveis a uma
linguagem de consulta a XML, são elas: resultados em XML; independência de DTD; manutenção da
ordem dos elementos nos resultados de consultas; conhecimento de namespaces, XLink e XPointer;
capacidade de consulta aos metadados (DTD, RDF, XML Schema); realização de operações de
seleção, extração, redução, reestruturação, combinação e joins; existência de álgebra equivalente à
sintaxe da linguagem. Além disso, é recomendável que a sintaxe seja simples, e para isto, uma sintaxe
semelhante à SQL é conveniente, já que trata-se da linguagem de consulta mais utilizada. Baseado
nestas características, está sendo desenvolvida uma linguagem de consulta, a OntoQuery, que tem a
gramática básica para consultas apresentada a seguir, sob a forma de EBNF:
consulta ::= select from where <EOF>
select ::= 'SELECT' contexto (‘,’ contexto)*
contexto ::= <VAR> qualificador <VAR>
qualificador ::= '/'|'#'|'@'
from ::= 'FROM' contextoFonte+
contextoFonte ::= <VAR> contexto <VAR>? (‘,’ contexto <VAR>?)*
where ::= 'WHERE' (contexto operador valor)
(‘,’ contexto operador valor)*
operador ::= '='|'>'|'<'|'>='|'<='|'<>'
valor ::= <VAR> | contexto
Figura 1 – EBNF das consultas na linguagem OntoQuery
O qualificador “#” (cerquilha) indica que na formação do contexto, o próximo objeto da expressão
deve ser um elemento, enquanto que o qualificador “@” (arroba) refere-se a um atributo. Já na
utilização do qualificador “/” (barra) o próximo objeto pode ser um elemento ou um atributo. Assim
como a XQL, esta linguagem irá trabalhar com o conceito de contexto. A formação das consultas será
do tipo:
SELECT
L/titulo, L/autor
FROM C:\XML\livraria.xml livraria.livro as L
WHERE L@preco < 70,00
Figura 2 – Consulta utilizando a linguagem OntoQuery
Nota-se que a sintaxe é semelhante à da SQL, com diferença marcante apenas pelo fato de que ao
invés de lidar com tabelas, esta linguagem lida com contextos. A princípio, existirá a necessidade de
ser informada a localização e o nome do(s) arquivo(s) a ser(em) consultado(s), já que apenas em um
outro momento, será feita a integração com as demais partes do SGBD para XML em construção pelo
grupo de Pesquisa de Tecnologia da Informação.
CONCLUSÃO: Existe um bom número de propostas para linguagens de consultas para documentos
XML, porém a maioria delas acessa dados armazenados em arquivo texto e de apenas uma fonte por
vez. Portanto, agregar uma linguagem de consulta à funcionalidade de um SGBD torna-se primordial,
principalmente se for considerada a necessidade crescente de se trabalhar com grandes quantidades de
dados XML. Neste trabalho é apresentada então, a linguagem de consulta denominada OntoQuery, que
tem uma sintaxe semelhante à da SQL. Entre seus objetivos principais, destacam-se: trabalhar sob o
contexto de um SGBD e formular consultas válidas para documentos XML com estruturas diferentes
mas referentes ao mesmo domínio. O primeiro objetivo será alcançado em conjunto com as demais
frentes de estudos do grupo de Pesquisa de Tecnologia da Informação, enquanto que o segundo será
alcançado por meio de estudo e aplicação de ontologias. A partir da definição da sintaxe da linguagem,
sucede-se a criação de um parser para validação das consultas, fase esta que já se encontra em
execução.
REFERÊNCIAS BIBLIOGRÁFICAS
WORLD WIDE WEB CONSORTIUM. W3C HTML Home Page. Disponível na Internet no
endereço: http://www.w3.org/MarkUp/, Acesso em: Março de 2003.
WORLD WIDE WEB CONSORTIUM. Extensible Markup Language (XML). Disponível na
Internet no endereço: http://www.w3.org/XML/, Acesso em: Março de 2003.
BARU, C.; LUDÄSCHER, B.; PAPAKONSTANTINOU, Y.; VELIKHOV, P. VIANU, V. Features
and requirements for na XML view definition language: lessons from XML information
mediation. W3C Workshop on Query Languages (QL’98), 1998, Boston. Disponível na Web em
http://www.w3.org/TandS/QL/QL98/pp/xmas.html.
DEUTSCH, A.; FERNANDEZ, M.; FLORESCU, D; LEVY, A.; SUCIU, D. A query language for
XML. Computer Networks, Amsterdam, Netherlands, 1999.
GOLDMAN, R.; McHUGH, J.; WIDOM J. From Semistructured Data to XML: Migrating the
Lore Data Model and Query Language. Proceedings of the 2nd International Workshop on the
Web and Databases (WebDB '99), Philadelphia, Pennsylvania, June 1999.
XSL WORKING GROUP. XML Query Language (XQL). Disponível na Internet no endereço:
http://www.w3.org/TandS/QL/QL98/pp/xql.html, Acesso em: Março de 2003.
KADE, A.M. – Linguagens de Consulta para Documentos XML. 1999. Trabalho Individual
(Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Computação,
Universidade Federal do Rio Grande do Sul, Porto Alegre.
ABITEBOUL, S.; QUASS, D.; MCHUGH, J.; WIDOM, J.; WIENER, J.L. - The Lorel Query
Language for Semistructured Data. International Journal on Digital Libraries, v.1, n.1, p.6888, Apr. 1997.
Download