370 likes | 469 Views
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
E N D
CS276BText Retrieval and MiningWinter 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 <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
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: • Existe um único schema • Usuário entende o schema • Na prática: raro • 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 • Documentos legíveis • Documentos orientados a dados • Documentos mistos (ex., registro de pacientes) • Depende de • 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 pais-filhos • 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)
droppeth embaixo de Verse embaixo de Play. Contenção posicional Doc:1 27 1122 2033 5790 Play 431 867 Verse Contenção pode ser visto como fusão de postings. 720 Termo:droppeth
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/0501berners-lee.html • ORDPATHs: Insert-Friendly XML Node Labels. • www.cs.umb.edu/~poneil/ordpath.pdf