CS276B Text Retrieval and Mining Winter 2005 Lecture 12 O que é XML? eXtensible Markup Language Um framework para definir linguagens de marcação Sem coleção fixa de marcadores Cada linguagem XML orientada para a aplicação Todas as linguagens XML compartilham característica Permite a construção de ferramentas genéricas Estrutura básica Um documento XML é uma árvore ordenada e rotulada Nós folha de dado textual contém os dados reais (strings de texto) Nós elemento, são rotulados com Um nome (frequentemente chamados de elemento type), e Um conjunto de atributos, cada um composto por um nome e um valor, Pode ter nós filhos Exemplo XML Exemplo XML <chapter id="cmds"> <chaptitle>FileCab</chaptitle> <para>This chapter describes the commands that manage the <tm>FileCab</tm> inet application.</para> </chapter> Elementos Elementos são denotados por tags de marcação <foo attr1=“value” … > o_texto </foo> Tag inicial do elemento: foo Atributo: attr1 O dado textual: o_texto Tag final do elemento correspondente: </foo> XML vs HTML HTML é uma linguagem de marcação para um propósito específico (exibição em browsers) XML é um framework para definir linguagens de marcação HTML pode ser formalizado como uma linguagem XML (XHTML) XML define estrutura lógica apenas HTML: mesma intenção, mas evoluiu para um linguagem de apresentação XML: Objetivos de projeto Separar sintaxe da semântica para prover um framework comum para estruturação da informação Permite marcação feita sob medida para qualquer domínio de aplicação imaginável Suporta internacionalização (Unicode) e independência de plataforma Ser o futuro da informação (semi)estruturada (fazer algum do trabalho feito atualmente por bancos de dado) Por que usar XML? Representa dados semi-estruturados (dados são estruturados, mas não encaixam no modelo relacional) XML é mais flexível que BDs XML é mais estruturado do que RI simples Você recebe uma gigantesca infra-estrutura de graça XML Schemas Schema = definição de sintaxe da linguagem XML Linguagem Schema = linguagem formal para expressar schemas XML Exemplos Document Type Definition - DTD XML Schema (W3C) Relevância para RI com XML Nosso trabalho é mais fácil se nós temos (um) schema Tutorial XML http://www.brics.dk/~amoeller/XML/index.html (Anders Møller and Michael Schwartzbach) Os slides anteriores (e alguns dos seguintes) são baseados neste tutorial Indexação e Busca XML Banco de Dados XML Nativo Usa documentos XML como uma unidade lógica Deve suportar Elementos Atributos PCDATA (parsed character data) Ordem do documento Contraste com BD modificado para XML Sistemas RI genéricos modificados para XML Indexação e Busca XML A maioria das bases de dados XML nativas tem uma abordagem BD Correspondência exata Avaliar expressões de caminho Nenhum tipo de rankeamento de relevância da RI Apenas alguns que focam rakeamento de relevância Data vs. Text-centric XML Data-centric XML: usado para o envio de mensagens entre aplicativos empresariais Principalmente a reformulação de dados relacionais Content-centric XML: usado para anotar o conteúdo Rico em texto Demanda boa integração da funcionalidade de recuperação de texto Ex., encontre os números ISBN de Livros com pelo menos Capítulos discutindo a produção de cacau, rankeado por Preço Desafios de RI XML 1: Estatísticas do Termo Não há unicidade no documento em XML Como computamos tf e idf? tf/idf global sobre todo o texto do contexto é inútil Granularidade de indexação Desafios de RI XML 2: Fragmentos Sistemas RI não pontua conteúdo (apenas índice) Precisa ir ao documento para recuperar/apresentar fragmentos Ex., me dê os Resumos dos Papers em existencialismo De onde você recupera o Resumo? Mais fácil no framework BD Desafios de RI XML 3: Schemas O ideal seria: Na prática: raro Existe um único schema Usuário entende o schema Muitos schemas Schemas não são conhecidos com antecedência Schemas mudam Usuários não entendem os schemas Necessário identificar elementos similares em diferentes schemas Exemplo: autor e criador Desafios de RI XML 4: UI Ajudar usuários a encontrar nós no schema Autor, editor, contribuídor, “de:”/remetente Qual é a linguagem de consulta que você expõe ao usuário? Linguagem de consulta específica do XML? Não. Formulários? Busca parametrizada? Um textbox? Desafios de RI XML 5: usando um BD Por que você não quer usar um BD BD não possui nenhuma noção de ordenação Rankeamento de relevância Consultando XML Hoje apresentamos: XQuery XIRQL Próximo Abordagens do espaço vetorial XQuery SQL para XML Senários de uso Depende de Documentos legíveis Documentos orientados a dados Documentos mistos (ex., registro de pacientes) XPath XML Schema datatypes Turing completa XQuery ainda é um projeto XQuery As formas principais das expressões Xquery são: Expressões de caminho Construtores de elementos Expressões de lista Expressões condicionais Expressões quantificadas Expressões de tipos de dado (datatype) Avaliados com relação a um contexto Consultas suportadas por XQuery Localização/posição (“capítulo 3”) Atributo/valor simples /book/author contém “Gates” Consultas Path author que contém “Gates” /book//author que contém “hamlet” XIRQL University of Dortmund Objetivo: mecanismo de busca XML open source Motivação Fragmentos “retornáveis” são especiais Ex., não retorna um fragmento <bold> algum texto </bold> Princípio da Recuperação de Documentos Estruturados Capacitar os usuários que não conhecem o schema Ativar pesquisa para qualquer pessoa, não importando como esquema codifica os dados Não se preocupa com atributo / elemento Indexação XIRQL Unidades de indexação Não são unidades coerentes Princípio da Recuperação de Documentos Estruturados Um sistema deve sempre retornar a parte mais específica de um documento, respondendo a uma consulta. Consulta de exemplo: xql Documento: <capítulo> 0.3 XQL <seçãp> 0.5 example </seção> <seção> 0.8 XQL 0.7 syntax </seção> </capítulo> Retorna seção, não capítulo Aumento de ponto Certifique-se que o Princípio de Recuperação de Documentos Estruturados é respeitado. Suponha que as condições de consultas diferentes são eventos disjuntos -> independência. P(chapter,XQL) = P(XQL|chapter) + P(section|chapter) * P(XQL|section) – P(XQL|chapter) * P(section|chapter) * P(XQL|section) = 0.3 + 0.6 * 0.8 - 0.3 * 0.6 * 0.8 = 0.636 Seção é classificada à frente de capítulo Datatypes Exemplo: nome_pessoa Atribuir todos os elementos e atributos com semântica de pessoa para este tipo de dado Permite que o usuário procure por “pessoa” sem especificar o caminho XIRQL: Resumo Rankeamento de relevância Seleção de fragmento/contexto Datatypes (nome_pessoa) Relativismo semântico Atributo/elemento Estruturas de dados para recuperação XML Uma introdução básica. Estruturas de dados para recuperação XML Quais são as primitivas necessárias? Índice invertido: me dê todos os elementos que corresponde a consulta de texto Q Nós sabemos fazer isto – tratar cada elemento como um documento Me dê todos os elementos (imediatamente) abaixo de qualquer instância do elemento Book Combinação das opções acima Links Pais/filhos Numera cada elemento Mantém uma lista de relacionamentos paisfilhos Ex., Capítulo:21 Livro:8 Permite pai imediato Mas e sobre “a palavra Hamlet embaixo de um elemento Scene embaixo de um elemento Play”? Índices posicionais gerais Visualiza o documento XML como um documento texto Constrói um índice posicional para cada elemento Marca o início e o fim de cada elemento, ex., Play Doc:1(27) Doc:1(2033) /Play Doc:1(1122) Doc:1(5790) Verse Doc:1(431) Doc:4(33) /Verse Doc:1(867) Doc:4(92) Term:droppeth Doc:1(720) Contenção posicional Doc:1 Play 27 1122 431 Verse Termo:droppeth 720 2033 5790 867 Contenção pode ser visto como fusão de postings. droppeth embaixo de Verse embaixo de Play. Resumo de estruturas de dados Contenção de caminho etc. pode essencialmente ser resolvido por índices invertidos posicionais Recuperação consiste de “fusão” de postings Todos os truques de compressão etc. de 276A continuam a ser aplicáveis Complicações surgem a partir da inserção/exclusão de elementos, texto dentro de elementos Álem do escopo deste curso Resources Jan-Marco Bremer’s publications on xml and ir: http://www.db.cs.ucdavis.edu/~bremer www.w3.org/XML - XML resources at W3C Ronald Bourret on native XML databases: http://www.rpbourret.com/xml/ProdsNative.htm Norbert Fuhr and Kai Grossjohann. XIRQL: A query language for information retrieval in XML documents. In Proceedings of the 24th International ACM SIGIR Conference, New Orleans, Louisiana, September 2001. http://www.sciam.com/2001/0501issue/0501berner s-lee.html ORDPATHs: Insert-Friendly XML Node Labels. www.cs.umb.edu/~poneil/ordpath.pdf