Dados Semi-Estruturados e XML Dados da Web A Web constitui hoje um repositório universal de dados Características dos dados da Web: Disponíveis através de documentos textuais Utilizados apenas para consumo humano Constantemente alterados Estrutura implícita e não-declarada: Å dados semi-estruturados Recuperação de informação na Web:. busca por palavras-chave e browsing 1
Gerência de Dados da Web Principais problemas: Como modelar? Como consultar? Como extrair? Um usuário deseja encontrar pacotes de viagem para Florianópolis, partindo do Rio de Janeiro, que incluam três diárias de hotel e custem menos de 500 reais. Necessidade de padrões para representação e intercâmbio de dados Å XML Utilização da tecnologia de bancos de dados Gerência de Dados da Web Principais contribuições da tecnologia de bancos de dados: Modelos de dados Linguagens de consulta Técnicas para processamento de consultas Mecanismos para manipulação de visões e integração de dados Mecanismos para manutenção de integridade Estruturas para armazenamento e indexação de grandes volumes de dados 2
Dados Semi-Estruturados Características: Estrutura irregular e implícita Heterogêneos Diferentes tipos envolvidos Auto-descritivos e sem esquema prévio definido Fontes de dados semi-estruturados BD SGBD/SQL Modelo Relacional Arquivos BibTEX/LaTEX Arquivos HTML (anúncios, catálogos, etc.) e-mails/news BDT SRI Modelo Vetorial Exemplo de Dados Semi-Estruturados Arquivo BibTex @article{cha91, author = {S.K. Cha, title = {{Kaleidoscope: A Cooperative Menu-Guided Query Interface (SQL Version), journal = {IEEE Transactions on Knowledge and Data Engineering, year = 1991, volume = 3, number = 1, pages = {42-47 @book{dlr95, author = {C. Delobel and C. L\ {ecluse and P. Richard, title = {{Databases: From Relational to Object-Oriented Systems, year = 1995, publisher = {International Thompson Computer Press, address = {London, UK 3
Exemplo de Página da Web com Dados Semi-Estruturados Modelo para Dados Semi-Estruturados complex object paper &o1 book paper references &o12 &o24 &o29 references references author author year author title http title author publisher title author author page &o43 &96 &25 firstname lastname 1997 atomic object firstname lastname first last &243 &206 Serge Abiteboul Victor Vianu 122. Object Exchange Model (OEM) 4
Sintaxe para Dados Semi-Estruturados Bib: &o1 { paper: &o12 {, book: &o24 {, paper: &o29 { author: &o52 Abiteboul, author: &o96 { firstname: &243 Victor, lastname: &o206 Vianu, title: &o93 Regular path queries with constraints, references: &o12, references: &o24, pages: &o25 { first: &o64 122, last: &o92 133 Sintaxe para Dados Semi-Estruturados Oids podem ser omitidos: { paper: { author: Abiteboul, author: { firstname: Victor, lastname: Vianu, title: Regular path queries, page: { first: 122, last: 133 5
Sintaxe para Dados Semi-Estruturados Objetos não necessariamente do mesmo tipo { paper: { author: Abiteboul, author: { firstname: Victor, lastname: Vianu, title: Regular path queries with constraints, page: { first: 122, last: 133 { paper: { author: Abiteboul, title: Querying semistructured data, year: 1977, http: Comparação com Dados Relacionais name phone row row row name phone name phone name phone John 3634 Sue 6343 Dick 6363 John 3634 Sue 6343 Dick 6363 { row: { name: John, phone: 3634, row: { name: Sue, phone: 6343, row: { name: Dick, phone: 6363 6
XML (extensible Markup Language) Padrão W3C que complementa HTML para intercâmbio de dados na Web www.w3c.org/tr/rec-xml Origem: SGML Motivação: HTML descreve apresentação XML descreve conteúdo Aplicações atuais necessitam de componentes de software especiais (wrappers) para extração de dados da Web De HTML para XML 7
HTML <h1> Bibliography </h1> <p> <i> Foundations of Databases </i> Abiteboul, Hull, Vianu <br> Addison Wesley, 1995 <p> <i> Data on the Web </i> Abiteoul, Buneman, Suciu <br> Morgan Kaufmann, 1999 Descreve a apresentação XML <bibliography> <book> <title> Foundations </title> <author> Abiteboul </author> <author> Hull </author> <author> Vianu </author> <publisher> Addison Wesley </publisher> <year> 1995 </year> </book> </bibliography> Descreve o conteúdo 8
XML vs. HTML Marcadores ( tags ) são definidos pelo usuário para indicar estrutura Estruturas podem ser aninhadas em um nível de profundidade arbitrário Um documento XML pode conter uma descrição opcional de sua gramática (DTD Document Type Definition) Exemplo de um Documento XML <bibliography> <description> SSD papers </description> <papers> <paper> <author> Abiteboul </author> <author> Vianu </author> <title> Regular path queries with constraints </title> <year> 1977 </year> <page> <first> 122 </first> <last> 133 </last> </page> </paper> <paper> <author> Abiteboul </author> <title> Querying semistructured data </title> <year> 1977 </year> </paper> </papers> </bibliography> 9
Dados XML e Semi-Estruturados Ambos são melhor descritos através de um grafo Ambos são auto-descritivos e não possuem esquema Dados XML e Semi-Estruturados <person id= o123 > <name> Alan </name> <age> 42 </age> <email> ab@com </email> </person> { person: &o123 { name: Alan, age: 42, email: ab@com <person father= o123 > </person> person father name age email Alan 42 ab@com { person: { father: &o123 person father name age email Alan 42 ab@com 10
Document Type Definitions (DTD) Uma DTD serve como uma gramática para o documento XML correspondente Å pode ser vista também como um esquema para os dados representados pelo documento XML <db> <!DOCTYPE db [ <person> <!ELEMENT db (person*)> <name> Alan </name> <!ELEMENT person (name,age, <age> 42 </age> email+)> <email> agb@abc.com </email> <!ELEMENT name (#PCDATA)> </person> <!ELEMENT age (#PCDATA)> <person>... </person> <!ELEMENT email (#PCDATA)>... ]> </db> DTDs como Esquemas Limitações: Ordem implícita Inexistência de tipos atômicos Tipos (associados aos elementos) são globais Não há distinção entre referências Outras facilidades: DCD (Document Content Description) XSL (XML Stylesheet Language) XML Schema 11
Linguagens de Consulta Para dados semi-estruturados: Lorel (Abiteboul et al., 1997) Linguagem do sistema Lore, Stanford University StruQL (Fernandez, et al., 1997) Linguagem do ambiente Strudel, AT&T Research-Labs Para dados XML: XML-QL (Deutsch, et al., 1999) XQL (www.w3.org/tands/ql/ql98/pp/xql.html) XQuery (www.w3.org/tr/xquery) Lorel Essencialmente uma adaptação da linguagem OQL para dados semi-estruturados (modelo OEM). Centrada no conceito de expressão de caminho (path expression): uma seqüência de arcos da forma l 1.l 2..l n. Sintaxe básica: select obj: v from l 1.l 2..l n v where cond 12
Exemplos de Consultas em Lorel C1: select firstname: X from bib.paper.author.firstname X {firstname: Serge, firstname: Victor,... C2: select author: X from bib._*.author X {author: {firstname: Serge, lastname: Abiteboul,... XML-QL Combina a sintaxe XML com facilidades típicas das linguagens para dados semi-estruturados (variáveis, expressões de caminho, padrões para extração de dados, etc.) Utiliza templates para formatar o resultado de acordo com a sintaxe XML Relacionalmente completa 13
Exemplos de Consultas XML-QL C1: where <paper> <author> Abiteboul </author> <title> $T </title> </paper> in www.abc.net/bib.xml construct $T C2: where <paper> <author> Abiteboul</author> <title> $T </title> <year> $Y </year> </paper> in www.abc.net/bib.xml construct <result> <title> $T </> <year> $Y </> </> Referências Abiteboul, S. et al. The Lorel query language for semistructured data. Int. J. on Digital Libraries 1, 1 (1997), 68-88. Abiteboul, S., Buneman, P. & Suciu, D. Data on the Web: From Relations to Semistructured Data and XML. Morgan Kaufmann, San Francisco, CA, 2000. Bonifati, A. & Ceri, S. Comparative Analysis of Five XML Query Languages. SIGMOD Record 29, 1 (2000), 4-15. Deutsch, A. et al. A Query Language for XML. Computer Networks 31, 11-16 (1999), 1155-1169. Fernandez, M. F., Florescu, D., Levy, A. Y., Suciu, D. A Query Language for a Web-Site Management System. SIGMOD Record 26, 3 (1997), 4-11. Florescu, D., Levy, A. & Mendelzon, A. O. Database Techniques for the World Wide Web: a Survey. SIGMOD Record 27, 3 (1998), 59-74. 14