BRPI0610286A2 - sistema e método para eficientemente rastrear e datar conteúdo em espaços de documento dinámicos muito grandes - Google Patents

sistema e método para eficientemente rastrear e datar conteúdo em espaços de documento dinámicos muito grandes Download PDF

Info

Publication number
BRPI0610286A2
BRPI0610286A2 BRPI0610286-7A BRPI0610286A BRPI0610286A2 BR PI0610286 A2 BRPI0610286 A2 BR PI0610286A2 BR PI0610286 A BRPI0610286 A BR PI0610286A BR PI0610286 A2 BRPI0610286 A2 BR PI0610286A2
Authority
BR
Brazil
Prior art keywords
content
document
collage
documents
computer system
Prior art date
Application number
BRPI0610286-7A
Other languages
English (en)
Inventor
Raz Gordon
Original Assignee
Collage Analytics Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Collage Analytics Llc filed Critical Collage Analytics Llc
Publication of BRPI0610286A2 publication Critical patent/BRPI0610286A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results

Abstract

Sistemas e métodos são providos para rastrear as origens e datas de um documento ou parte de conteúdo por achar similares ou exatos documentos que casam ou partes de conteúdo armazenadas em um índice, O índice pode incluir documentos correntes e não-correntes junto com informação associada para cada documento. Pela análise de cada documento usando vários esquemas, é possível correlacionar documentos similares ou que casam. Usando tais correlações de documentos, é possível determinar as origens e datas anteriores de um documento em particular.

Description

"SISTEMA E MÉTODO PARA EFICIENTEMENTE RASTREAR EDATAR CONTEÚDO EM ESPAÇOS DE DOCUMENTO DINÂMICOS MUITO GRANDES"
REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
É reivindicado o beneficio da data de depósito dopedido provisório de patente US 60/672.256, intitulado "Sys-tem and method for efficiently tracking and dating contentin very large dynamic document spaces", depositado em 18 deabril de 2005. O pedido de patente supramencionado está aquiincorporado na sua integra pela referência.
CAMPO TÉCNICO
A presente invenção diz respeito ao campo da recu-peração de informação e motores de busca.
ANTECEDENTES DA INVENÇÃO
A última década viu a World Wide Web ("rede") sedesenvolver em um vasto recurso de informação, compreendendobilhões de páginas da rede e documentos que são armazenadosem milhões de servidores e computadores ao redor do mundo. Arede é acessível aos usuários de computadores pessoais quesão conectados à Internet utilizando navegadores web ("nave-gadores"), tal como o Internet Explorer® da Microsoft. Paraacessar uma página da rede particular, um usuário aponta seunavegador para o endereço da rede da página da rede, tambémconhecido como um Localizador Uniforme de Recurso ("URL"),que inicia a transferência e visualização da página da rede.O usuário também pode clicar (isto é, selecionar) uma hiper-ligação na página da rede que faz com que o navegador trans-fira e exiba a página da rede endereçada pela hiperligação.Os tipos de documentos que são acessiveis por meio da redeincluem páginas da rede convencionais escritas em Linguagemde Marcação de Hipertexto ("HTML"), bem como outros tipos dedocumentos, tais como arquivos Adobe PDF e arquivos Micro-soft Word® (os vários tipos de documentos são aqui coletiva-mente referidos como "documentos").
Os motores de busca ajudam os usuários na locali-zação de informação desejada na rede. Um usuário submete umainquirição de busca ao motor de busca, compreendendo um oumais termos ou palavras-chave de busca, e é retornada umalista de documentos em resposta à inquirição de busca. Moto-res de busca estão localizados no topo de tecnologias de in-dexação inteligente, permitindo rápida e eficiente busca erecuperação. No geral, um motor de busca emprega um ou maisrobôs ou programas de busca que atravessam a rede e transfe-rem cada página da rede que eles encontram. Os robôs pesqui-sam profundamente na vastidão da rede abrindo as muitas hi-perligações que estão incluídas em cada página da rede queeles encontram. 0 número de documentos que são retornados emuma lista de resultado de busca freqüentemente está na casade milhares ou milhões. Portanto o motor de busca empregatécnicas de classificação inteligentes para classificar eordenar documentos na lista de resultados de busca com baseem importância. A popularidade comparativa de um documento ea relevância para a inquirição de busca influenciam suaclassificação relativa na lista de resultados de busca.
Um motor de busca atualiza constantemente seu Ín-dice recarregando os documentos incluídos no índice. Em de-corrência disto, o Índice irá refletir mudanças nos documen-tos ou a remoção de documentos inteiros e, substancialmente,irá retornar ao usuário somente dados atualmente disponí-veis. Além do mais, documentos recém-publicados e documentospreviamente não encontrados pelo motor de busca também sãoconstantemente adicionados ao índice.
No geral, motores de busca armazenam informação dedata para cada documento incluído no índice. Tal informaçãode data pode incluir: a primeira data em que o documento foiencontrado pelo motor de busca; informação de data recupera-da pelo servidor no qual o documento está armazenado; a úl-tima data indexada pelo motor de busca; e/ou a data em que odocumento foi modificado pela última vez. A maioria dos mo-tores de busca permite que os usuários busquem usando opçõesavançadas de busca que, entre outros recursos, permite queos usuários limitem a inquirição de busca a documentos atua-lizados em um dado período de tempo, tais como o último mês,três meses ou ano.
Páginas da rede e outros documentos são freqüente-mente movidos para diferentes locais em um site da Internetou de um site da Internet para um outro. Sites da Internetcompletos também podem mudar seu URL, por exemplo, depois demudanças do nome da companhia a que pertencem. Algumas ve-zes, partes de páginas da rede são copiadas ou de outra for-ma realocadas para outras páginas da rede, nas quais elaspodem ser envolvidas por conteúdo totalmente diferente (porexemplo, durante a cópia de um código de programa de exemplode um manual da rede para uma postagem em fórum). A Interneté uma midia não controlada e distribuída e as páginas da rerde e sitio da rede estão sendo constantemente atualizados,realocados ou copiados para outros sitio da rede. Como tal,uma inquirição de busca restrita a documentos atualizadosnos últimos 3 meses pode produzir algo como 50% do total depáginas da rede em resposta àquela inquirição de busca.
Usando tecnologia de motor de busca atualmentedisponível, rastrear as origens e data aproximadas de umapágina da rede ou documento ou uma parte dele (parte de con-teúdo) é impossível ou produz fraco resultado. Assim, perma-nece uma necessidade de um motor de busca com funcionalidadeque inclui um dispositivo para determinar as origens e umadata mais recente para um documento ou uma parte de conteúdoindependente de quando o documento foi encontrado primeiroou postado em um sitio da rede.
DIVULGAÇÃO DA INVENÇÃO
Sistemas e métodos consistentes com os princípiosda presente invenção podem rastrear as origens e datas de umdocumento ou parte de conteúdo encontrando documentos simi-lares ou que casam com exatidão ou partes de conteúdo arma-zenadas em um Índice. Esta capacidade de rastrear as origense datas mais recentes para os documentos no Índice facilitaadicionalmente a busca por documentos com base em uma faixada datas especifica provida por um pesquisador.
De acordo com um aspecto consistente com os prin-cípios da presente invenção, são providos um sistema e méto-do para o pré-processamento de um documento para remover in-formação considerada redundante com o propósito de encontrardocumentos ou partes de conteúdo que casam.
De acordo com um outro aspecto consistente com osprincípios da presente invenção, são providos sistema e mé-todo para a manutenção do índice do motor de busca. Preferi-velmente, o índice inclui informação de ambos documentos quesão acessíveis na rede no momento da busca com base nos URLsassociados com aqueles documentos, bem como. documentos maisantigos que foram removidos da rede e, portanto, não estãoacessíveis pelos URLs associados com aqueles documentos. A-dicionalmente, o índice inclui várias versões de um dado do-cumento, já que tal documento muda durante o tempo.
De acordo com um ainda outro aspecto consistentecom os princípios da presente invenção, são providos sistemae método para dividir um documento para determinar exclusi-vãmente elementos de conteúdo identificáveis no documento.
De acordo com um ainda outro aspecto consistentecom os princípios da presente invenção, são providos sistemae método para a busca de um índice para um ou mais documen-tos ou partes de conteúdo que casam com um dado documento ouparte de conteúdo com base em um limite de similaridade.
De acordo com um ainda outro aspecto consistentecom os princípios da presente invenção, são providos sistemae método para a filtragem de documentos, especialmente docu-mentos retornados em resposta a uma inquirição de motor debusca com base nas datas atribuídas àqueles documentos deacordo com os princípios aqui especificados.
Recursos e aspectos inéditos adicionais são apre-sentados em parte na descrição que segue e são, em parte,inerente e/ou óbvios a partir da descrição. As técnicas iné-ditas aqui descritas podem ser implementadas usando váriastecnologias de suporte lógico e hardware bem conhecidas.
DESCRIÇÃO DETALHADA DAS MODALIDADES PREFERIDAS EMELHOR MODO PARA REALIZAR A INVENÇÃO
Sistemas e métodos consistentes com os princípiosaqui descritos provêem os usuários com maior flexibilidadede busca e meio efetivo para determinar datas originais a-proximadas associadas com conteúdo especifico da rede. A se-guinte descrição das modalidades preferidas da presente in-venção especifica estruturas de dados e algoritmos que podemser usados para implementar um motor de busca independentepara a datação e rastreamento ou a fim de adicionar estascapacidades aos motores de busca existentes na Internet.
A presente invenção não é limitada à Internet (em-bora o problema de datação e rastreamento seja bem pior naInternet em função do grande volume de informação armazenadonos seus servidores). As soluções aqui descritas podem abor-dar em qualquer espaço de documento, independente se este éa rede ou um outro tipo de sistema de armazenamento de docu-mento distribuído ou não distribuído.
Seção 1: Introdução
Motores de busca recuperam informação de espaçosde documentos dinâmicos como a rede usando robôs / programasde busca - agentes de suporte lógico que continuamente ex-ploram os espaços de documento, recuperam documentos, pro-cessam conteúdo encontrado nos documentos e atualizam os Ín-dices do motor de busca a fim de permitir rápida recuperaçãode documentos que casam com critérios de busca especificadospelo usuário.
0 índice do motor de busca é construído para ser-vir tipos específicos de inquirições de busca. 0 tipo maispredominante de inquirição é um conjunto de palavras-chavepara o qual o motor de busca tenta encontrar e classificaros documentos que casam.
São aqui descritos estruturas de dados e algorit-mos específicos para a construção de índices, para a rápidarecuperação de informação de data e para o rastreamento deinformação de documentos e partes de conteúdo em um espaçode documento dinâmico. Preferivelmente, o processamento doconteúdo é rápido (de complexidade 0(n), o que teoricamenterepresenta complexidade mínima) e gera índices eficientes emrelação ao espaço. Preferivelmente, as estruturas de dados eos algoritmos são configurados pelo motor de busca para oti-mizar a compensação entre o espaço exigido para o índice e onível de funcionalidade suportado pelo motor de busca (qua-lidade dos resultados de busca).
Uma diferença inédita entre as técnicas ordináriasde indexação de documento e as técnicas de indexação das mo-dalidades preferidas é como segue. As técnicas ordinárias deindexação de documento visualizam o documento como o blocode construção básico do espaço do documento. Em decorrênciadisto, elas deixam de detectar grande parte do documento di-nâmico, o que resulta da evolução intra-documento. Conformeaqui descrito, é sugerida uma abordagem diferente. Em vez devisualizar o documento como uma entidade única, o documentoé visualizado como um trabalho de remendos de partes de con-teúdo. As partes de conteúdo de cada documento, que são ex-clusivamente identificadas pelo motor de busca, são aqui re-feridas como "Elementos de Colagem". 0 próprio documentocontendo os Elementos de Colagem é aqui referido como uma"Colagem". Um motor de busca empregando as técnicas das mo-dalidades preferidas pode rastrear a evolução dos Elementosde Colagem de cada Colagem e a associação de seus documentospai. 0 documento é meramente o recipiente da Colagem e o ob-jeto que liga o Elemento de Colagem no espaço de endereço dodocumento.
Muitas funções de recuperação podem ser implemen-tadas pelos motores de busca no topo dos Índices aqui des-critos. A seguinte funcionalidade de recuperação genérica éaqui mais completamente descrita:
1. A capacidade de definir um limite de similari-dade, o que ajuda o motor de busca a decidir se dois docu-mentos ou partes.de conteúdo não idênticos são essencialmen-te o mesmo (isto é, similares) ou não.
2. Dado um documento ou uma parte de conteúdo, en-contrar a data mais antiga de um documento parte de conteúdosimilar (independente do endereço do documento / parte deconteúdo similar).
3. Dado um documento ou uma parte de conteúdo, ob-ter todos os endereços nos quais o documento ou a parte deconteúdo existe ou já existiu, incluindo a data mais antigae a data mais recente do documento em cada endereço, e datasnas quais foram feitas mudanças nestes documentos / parte deconteúdo.
Seção 2: Pré-processamento do conteúdo
0 pré-processamento é opcional, mas preferível, eé usado para melhorar os resultados de busca reduzindo "rui-do de documento". 0 motor de busca pode realizar o pré-processamento no momento da indexação dos documentos ou opré-processamento pode ser realizado em um momento posteri-or. Opcionalmente, o pré-processamento também pode ocorrerem tempo real ao mesmo tempo em que uma inquirição de buscaestá sendo processada pelo motor de busca.
Todo pré-processamento que reduz "ruído de docu-mento" pode ser usado com a presente implementação. Preferi-velmente, pelo menos um pré-processador de cada uma dasclasses mencionadas a seguir deve ser usado. Uma vez que épreferível manter Índices eficientes em relação ao espaço,é, portanto, recomendado realizar o seguinte pré-processamento do conteúdo, a fim de remover informação "re-dundante" e/ou converter o conteúdo para uma representaçãocongruente compacta.
Seção 2.1: Pré-processamento estático
Virtualmente, todos os documentos formatados (e amaioria dos não formatados) contêm informação que é redun-dante com os propósitos de decidir se duas partes de conteú-do são essencialmente a mesma ou não. Exemplos de tal infor-mação são: partes invisíveis de identificadores HTML, ima-gens, campos de entrada, metainformação, conjunto de instru-ções executadas sem intervenção do usuário, conteúdo dinâmi-co, comentários, hiperligações, ajustes de maiúsculas / mi-núsculas, tipo, estilo e tamanho de fonte, espaços em brancoredundantes, etc.
A melhor maneira de observar o problema é carregaruma página HTML que foi criada usando alguma ferramenta es-pecializada para a criação de publicações eletrônicas em umaoutra ferramenta especializada para a criação de publicaçõeseletrônicas e salvá-la em um novo arquivo sem fazer nenhumamodificação. Usualmente, o novo arquivo será diferente doarquivo original, embora os documentos sejam idênticos quan-do visualizados usando um navegador da rede.
Um exemplo simples para o pré-processamento está-tico é a conversão de todo o texto em maiúsculas para minús-culas, a fim de permitir buscas que não diferenciam maiúscu-las de minúsculas.
0 motor de busca pode implementar o pré-processamento de acordo com os métodos que ele usa para de-terminar os Elementos de Colagem, tal como um dos métodosintitulados "Esquemas de Colagem" que são descritos adicio-nalmente a seguir. Por exemplo, com o Esquema de Colagem Es-trutural / Hierárquico, alguma informação que pode de outraforma ser considerada "redundante" deve ser preservada. Porexemplo, o Esquema Estrutural / Hierárquico usa a informaçãode estrutura do documento para identificar as diferentes se-ções do conteúdo. 0 pré-processador deve estar ciente detais casos e deixar a informação relevante intacta. Em de-corrência disto, o pré-processamento do mesmo conteúdo podeproduzir resultados diferentes para diferentes Esquemas deColagem.A classificação especifica de informação "redun-dante" é subjetiva e pode conter dilemas. Por exemplo, dei-xar a propriedade de formatação negrito / itálico pode levara erros na identificação do mesmo texto em diferentes esti-los (no caso da propriedade negrito / itálico ser diferen-tes) . Por outro lado, o motor de busca pode decidir que umagrande seção de texto formatada em negrito deve realmenteser considerada diferente se comparada com o mesmo texto semformatação em negrito. 0 motor de busca também pode empregartécnicas para o uso de uma implementação ideal que irá supe-rar o dilema exposto.
Seção 2.2: Pré-processamento dinâmico
Freqüentemente, linguagens de formatação permitemque conteúdo idêntico seja especificado de diversas manei-ras. A fim de melhorar a capacidade do motor de busca casarapropriadamente a essência do conteúdo, o pré-processamentodinâmico pode ser usado. Este tipo de pré-processamento re-solve ambigüidades traduzindo as várias representações pos-síveis de uma parte de conteúdo em alguma representação"normal" pré-determinada.
Por exemplo, HTML prove os seguintes identificado-res: <thead>, <tfoot> e <tbody> para a declaração do cabeça-lho, rodapé é corpo da tabela, respectivamente. A ordem naqual estes elementos aparecem no elemento <table> não fazdiferença - o cabeçalho sempre aparecerá no topo, então ocorpo e, finalmente, o rodapé. Portanto, há múltiplas repre-sentações possíveis para a mesma tabela em HTML. Um pré-processador dinâmico deve escolher uma única representação"normal" de tabela, por exemplo, primeiro o cabeçalho, entãoo corpo e, finalmente, o rodapé e converter toda a definiçãode tabela HTML contendo dois ou mais destes identificadorespara a representação "normal".
Seção 2.3: Pré-processamento trans-formato
0 mesmo conteúdo pode ser especificado usando di-ferentes linguagens de formatação. Por exemplo, o conteúdode um documento em Formato de Texto Rico pode ser idênticoao conteúdo de um documento HTML. Apesar disto, os arquivosbrutos serão diferentes em função das diferenças entre aslinguagens de formatação. Sem o pré-processamento trans-formato, a busca pode ser menos eficiente em buscas em for-mato cruzado.
0 pré-processamento trans-formato conecta as dife-renças entre os deferentes padrões de formatação traduzindoqualquer formato suportado para um formato "normal". Por e-xemplo, é possivel para um pré-processador trans-formato su-portar documentos Microsoft Word, WordPerfect, Formato deTexto Rico e HTML traduzindo os documentos dos três primei-ros formatos para HTML. Neste caso, HTML é o formato "nor-mal" escolhido.
Seção 3: Geração de uma Colagem
Um importante conceito é visualizar o documentocomo um conjunto de partes de conteúdo ou, mais precisamen-te, como um conjunto de partes de conteúdo pré-processadas("Elementos de Colagem"). Pode haver diferentes visualiza-ções e, portanto, diferentes esquemas de Colagens para omesmo documento. A informação derivada dos diferentes Esque-mas de Colagem satisfaz (sozinha ou junta) diferentes exi-gências de funcionalidade de motor de busca.
Colagens são geradas para prover eficiente indexa-ção e/ou busca de documentos e partes de conteúdo. Uma cola-gem contém, além de atributos opcionais de documento e Cola-gem, um ou mais objetos de "Informação de Esquema de Cola-gem". As modalidades preferidas podem implementar pelo menosum dos três tipos sugeridos dos Esquemas de Colagem para oprocessamento de documentos. Cada Esquema de Colagem geraInformação de Esquema de Colagem exclusiva que é atribuívelao documento e está contida na Colagem. A Informação de Es-quema de Colagem, além dos atributos de esquema, contêm Ele-mentos de Colagem e/ou Sub-Colagens.
As seguintes seções provêem uma descrição "ascen-dente" das estruturas de dados de Colagens, Informação deEsquema de Colagem, Elementos de Colagem e os algoritmos bá-sicos fundamentais.
Seção 3.1: Elementos de Colagem
Um Elemento de Colagem é uma estrutura de dadosusada para representar uma parte de conteúdo. Elementos deColagem são usados a fim de encontrar correspondências idên-ticas para tais partes de conteúdo.
Elementos de Colagem são gerados pelos vários Es-quemas de Colagem durante o processamento de partes de con-teúdo ou documentos completos. Elementos de Colagem são pro-jetados para consumir muito pouco espaço, permitindo que Ín-dices eficientes em relação ao espaço sejam criados.
O Elemento de Colagem serve como a "âncora" para orápido processamento de pesquisas e inquirições dos algorit-mos de busca descritos a seguir.
Um Elemento de Colagem inclui:
I. Sumário de Conteúdo: este valor é o Elemento deColagem chave para indexação e recuperação. Ele pode ser in-dexado usando, virtualmente, qualquer método de indexação(tabelas de dispersão, árvores-B, etc.).
Qualquer função deterministica CS que mapeia o es-paço de conteúdo C para algum espaço de sumário S pode serusada para o cálculo do Sumário de Conteúdo para um dado do-cumento ou parte de conteúdo. A exigência de determinismosignifica que CS produz o mesmo resultado para o mesmo con-teúdo em todas as execuções.
Preferivelmente, os resultados CS são uniformemen-te distribuídos em S - isto diminui a probabilidade de errosde falso positivo ao minimo.
Pref erivelmente, a escolha de S leva em conta asseguintes considerações:
a) o tamanho esperado do espaço de conteúdo;
b) Pref erivelmente, S deve ser pequeno para queelementos de S possam ser representados por um pequeno núme-ro de bits.
c) S não deve ser tão pequeno uma vez que a proba-bilidade de erros de falso-positivo aumenta à medida em queo tamanho do espaço de sumário diminui.
As funções de dispersão podem ser usadas para ocálculo do valor do Sumário de Conteúdo. Ver a seção de aná-lise a seguir para a seleção do tamanho do valor e do métododa função do Sumário de Conteúdo.
Uma outra função de Sumário de Conteúdo possível ébaseada em dicionário: a parte de conteúdo é arquivada e ob-tém uma ID exclusiva. A função de Sumário de Conteúdo mapeiatodas as duplicatas de uma parte de conteúdo para sua ID exclusiva .
Preferivelmente, para melhorar o desempenho dosmétodos de busca que usam o método da janela deslizante (vera seguir), o valor do Sumário de Conteúdo deve ser calculadousando uma função de Sumário de Conteúdo que pode ser recal-culada em momento constante à medida em que a janela desli-zante se move (isto é, a complexidade do recalculo pode serem função do tamanho da etapa, mas deve ser independente dotamanho da janela deslizante).
II. Ligação de Esquema de Colagem Pai: esta liga-ção, que pode ser tecnicamente representada e implementadade várias maneiras, prove acesso ao objeto de Informação deEsquema de Colagem pai do Elemento de Colagem. Opcionalmen-te, ela também pode prover (direta ou indiretamente):
a. a posição relativa do Elemento de Colagem naInformação do Esquema de Colagem, por exemplo, identifican-do-a como a célula na linha 3, coluna 5 da tabela no fim dosegundo parágrafo da página;
b. acesso aos outros Elementos de Colagem no esquema .
Exemplo
Este exemplo mostra uma representação possivel deLigação de Informação de Esquema de Colagem pai para Elemen—tos de Colagem do Esquema de Colagem Estrutural / Hierárqui-co (ver a seguir) : uma seqüência de valores da forma '<pa-rent Collage Scheme Information Unique ID>.<Level 0 Elementordinal number>...<Level K element ordinal number>' para umElemento de Colagem que está no k-ésimo nivel da hierarquia.
0 número ordinal é um número serial exclusivo do elementoque o distingue dos outros elementos no mesmo nivel:
a. A ID Exclusiva de Informação de Esquema de Co-lagem prove acesso à Informação de Esquema de Colagem pai de
Elemento de Colagem;
b. A seqüência define a posição relativa do Ele-mento de Colagem no Esquema de Colagem;
c. A indexação destas seqüências de Ligação de In-formação de Esquema de Colagem Pai permite a simples recupe-ração de outros Elementos de Colagem no esquema: todos oselementos, elementos vizinhos, elementos em outros niveis dahierarquia na mesma ramificação ou em outras ramificações,etc.
Para documentos HTML típicos, esta representaçãodeve ser compacta, uma vez que (exceto para a ID de Esquemade Colagem) o consumo de bits dos outros campos é baixo e hápoucos niveis de hierarquia de documento em um HTML tipico.
Opcionalmente, para reduzir o risco de falsas cor-respondências positivas com os valores de Sumário de Conteú-do, o Elemento de Colagem pode conter:
III. Atributos de conteúdo: a comparação de atri-butos simples, como o tamanho do conteúdo em bytes, pode re-duzir dramaticamente o risco de falsas correspondências po-sitivas. O tamanho do conteúdo pode ser exigido para o cál-culo da Cobertura de Correspondência (ver a seguir), que éexigido para a implementação do recurso do Limite de Simila-ridade (ver a seguir).
IV. Dispersão aleatória de máscara: para evitarfalsos positivos resultantes do mesmo problema sistemáticoda função de Sumário de Conteúdo selecionada, é possivel a-dicionar um código de dispersão com verificação dupla no E-lemento de Colagem. A fim de. ajudar a alcançar a distribui-ção uniforme da dispersão, é possivel aplicar máscara aoconteúdo com dados pseudo-aleatórios (por exemplo, usandouma função XOR) e calcular a dispersão dos dados resultan-tes. Somente é necessário salvar a semente da série pseudo-aleatória e o valor de dispersão resultante.
Tamanho do exemplo de Elemento de Colagem
1. Sumário de Conteúdo: 128 bits.
2. Ligação de Informação de Esquema de ColagemPai: ID de Esquema de Colagem de 64 bits.
3. Tamanho do conteúdo: 32 bits.
O tamanho total é 224 bits = 28 bytes. Este tama-nho exclui os tamanhos das estruturas de dados do Índice,que dependem do método de indexação escolhido.
Seção 3.1.1: Análise do Sumário de ConteúdoA seleção cuidadosa da função do Sumário de Conte-údo é importante para a boa implementação da Colagem, umavez que ela afeta a eficiência da busca, a complexidade docálculo e o nivel de erros de falso positivo.
Seção 3.1.2: Determinação do tamanho do valor dosumário
0 tamanho do valor do sumário (em bits) deve serdeterminado pelo tamanho do espaço do Elemento de Colagem.
Considerando uma função de Sumário de Conteúdo em distribui-ção uniforme, a probabilidade de um erro de falso positivoé: (o número total de Elementos de Colagem gerados para oespaço do documento) / (o tamanho do espaço do Sumário deConteúdo).
A combinação deste com os Atributos de Conteúdoe/ou Dispersão Aleatória de Máscara opcionais pode reduziresta probabilidade ainda adicionalmente.
Por exemplo, os correntes motores de busca da In-ternet indexam um espaço de documento de menos de 10 bilhõesde documentos. Considerando uma média menor ou igual a 1.000Elementos de Colagem por documento (incluindo versões histó-ricas) , haverá um total de menos que 244 Elementos de Cola-gem. Uma função de dispersão ' de 128 bits com complexidade0(n> tem uma probabilidade de praticamente zero (menor que 2~84 ou 10~25) de produzir um erro de falso positivo.
Seção 3.2: Esquemas de Colagem
Um Esquema de Colagem é um método de processamentode conteúdo que compila um documento ou uma parte de conteú-do em Informação de Esquema de Colagem. A informação de Es-quema de Colagem pode conter Elementos de Colagem, Sub-Colagens, bem como outras informações relacionadas ao esque-ma e relacionadas à colagem.
Mais de uns únicos Esquemas de Colagem podem serusados para processar um documento ou uma parte de conteúdo.O escopo do conteúdo processado pelos diferentesEsquemas de Colagem no documento pode estar sobreposto e/ouaninhado. É possível:
1. Processar a mesma parte de conteúdo ou a ínte-gra do documento usando diferentes Esquemas de Colagem;
2. Processar diferentes partes de conteúdo ou di-ferentes seções do documento usando diferentes Esquemas deColagem;
3. Usar um Esquema de Colagem em uma Sub-Colagemde um outro Esquema de Colagem: Esquema de Colagem A podeusar Esquema de Colagem B para processar uma parte da partede conteúdo / documento que ele está processando. A informa-ção do Esquema de Colagem produzida pelo Esquema de ColagemB será ligada a uma Sub-Colagem da informação de Esquema deColagem produzida pelo Esquema de Colagem A.
Todo Esquema de Colagem define um método de pro-cessamento. A menos que de outra forma especificado, o es-quema pode ser usado para qualquer nível / escopo do docu-mento. Por exemplo, ele pode ser usado para o processamentoda íntegra do documento, mas também para o processamento deum elemento de tabela específico ou um parágrafo específico.
Da forma aqui usada, o termo geral "conteúdo" dizrespeito a qualquer parte de conteúdo ou íntegra de documen-to que é processado pelos vários Esquemas de Colagem.
A Informação de Esquema de Colagem é o principaldado gerado por qualquer Esquema de Colagem. A informação deEsquema de Colagem pode ser tecnicamente representada de vá-rias maneiras e pode ser armazenada como uma estrutura dedados separada ou incorporada em outras estruturas de dados,por exemplo, estruturas de dados de informação de Colagem.Com propósitos de simplificação, esta descrição a visualizacomo uma estrutura de dados separada.
A seguinte informação pode ser gerada por um Es-quema de Colagem:
1. Atributos de Esquema de Colagem: estes incluemtoda informação relevante sobre o Esquema de Colagem, porexemplo, o tipo de Esquema de Colagem;
2. Elementos de Colagem e Sub-Colagens: estes sãoos Elementos de Colagem e informação de Sub-Colagem (ou li-gações a tais informações de elementos / sub-colagem) gera-dos pelo Esquema de Colagem;
3. Ligação de Informação de Colagem Pai: este per-mite o acesso à Informação de Colagem pai.
Seção 3.2.1: Esquema de Colagem Estrutural / Hie-rárquico
O Esquema de Colagem Estrutural / Hierárquico (SH)é usado para criar informação de Colagem para o conteúdo combase em sua estrutura de documento. A motivação por trásdeste esquema é decompor o conteúdo em partes significantescom base na sua estrutura formatada.
Os Elementos de Colagem criados pelo Esquema deColagem SH permitem que os vários elementos do documento se-jam rapidamente pesquisados, mesmo quando movidos no docu-mento ou quando eles reaparecem em um documento diferente eindependente de eles conterem endereço de documento.
Virtualmente, todas as linguagens de formatação dedocumento têm vários conceitos para definir a estrutura dodocumento. Por exemplo, os seguintes identificadores / ele-mentos HTML que têm significado estrutural:
* <body> - o corpo do documento HTML está incluidoneste elemento;
* <hl>..<h6> - identificadores de cabeçalho;
*
- elemento de parágrafo;
* <br> - quebra de linha;
* <hr> - barra horizontal;
* Identificadores de estrutura;
* Identificadores de lista;
* Identificadores de tabela;
* <div> e <span> - definem seções no documento;
0 Esquema de Colagem SH é um esquema recorrenteque usa tais conceitos de estrutura de documento para iden-tificar as partes e subpartes de conteúdos. O processo re-corrente é simples. Dado um elemento de documento, um novoElemento de Colagem é gerado para representar o elemento dedocumento e seus vários parâmetros são preenchidos (ver oEsquema de Colagem Simples na seção 3.2.3 a seguir). Além domais, ou em vez de gerar um Elemento de Colagem Simples, épossível processar o elemento do documento usando um ou maisdiferentes Esquemas de Colagem (por exemplo, o Esquema deColagem Chato) para criar informação de Subcolagem para oelemento do documento. É mesmo possível decidir dinamicamen-te como processar o elemento do documento, com base no docu-mento e nas propriedades do elemento do documento (por exem-plo, usar o Esquema de Colagem Chato somente para elementoscujo tamanho excede algum limite). 0 elemento do documentotambém pode ser dividido para detectar subelementos estrutu-rais usando o Esquema SH. Esta divisão pode ser feita comantecedência (por exemplo, uma vez para a integra do docu-mento) a fim de acelerar o processo. Sub-elementos são pro-cessados de forma recorrente.
Os Elementos de Colagem resultantes podem ser vi-sualizados formando uma estrutura de árvore (isomórfica àárvore de recorrência). Conforme exposto, informação podeser armazenada no Elemento de Colagem para facilitar o aces-so à sua Informação de Esquema de Colagem pai e aos outrosElementos de Colagem do esquema, bem como para a determinarção do caminho da árvore da raiz até o Elemento de Colagem.
Preferivelmente, o motor de busca deve limitar aprofundidade da recorrência e/ou evitar recorrência em ele-mentos com base em vários critérios, por exemplo, elementospequenos. Preferivelmente, o motor de busca pode processardiferentes elementos de documento usando diferentes métodoscom base em vários critérios, por exemplo, elementos curtospodem ser processados gerando Elementos de Colagem únicos aomesmo tempo em que elementos longos podem ser processadosusando o Esquema de Colagem Chato.
Seção 3.2.2: O Esquema de Colagem Chato
É provável que conteúdo grande passe por ligeirasmudanças durante o tempo. Tais mudanças incluem inserções,deleções e substituições relativamente pequenas de partes doconteúdo.
O Esquema de Colagem Chato habilita a criação deÍndices que permitem, dado algum conteúdo, pesquisar rapida-mente partes similares de conteúdo.
0 Esquema de Colagem Chato usa procedimentos fun-damentalmente diferentes para a indexação e para os métodosde busca e correspondência da seção 5 (isto é, o mecanismode janela deslizante) . Isto é o contrário do Esquema de Co-lagem SH, no qual os processos de indexação e busca são deprocedimentos similares para a divisão das estruturas do do-cumento.
A seguir está o procedimento para a geração de umainformação de base de dados do Esquema de Colagem Chato (vera seguir para o procedimento de busca):
1. Informação de Esquema de Colagem é gerada paraa Colagem Chata;
2. A parte de conteúdo é dividida em blocos usandoum processo determinístico (por exemplo, blocos de tamanhofixo);
3. Um Elemento de Colagem é criado para cada umdos blocos, usando uma das funções do Sumário de Conteúdosupramencionadas.
Seção 3.2.3: 0 Esquema de Colagem Simples
Este esquema gera um único Elemento de Colagem pa-ra a íntegra da parte de conteúdo ou documento.
Ele é usado para pequenas partes de conteúdo e po-de ser usado como um esquema padrão quando outros Esquemasde Colagem não são calculados para o conteúdo.
Seção 3.3: A Colagem
A informação de • Colagem contém dados gerados porColagem sobre um documento ou uma parte de conteúdo. Prefe-rivelmente, a informação de Colagem é uma estrutura de dadosseparada para conveniência, embora ela possa ser representa-da e implementada de várias maneiras, por exemplo, a infor-mação pode ser armazenada com a Informação de Esquema de Co-lagem e/ou Elementos de Colagem. Além do mais, pode havervantagens para o armazenamento desta informação em outro lu-gar, por exemplo, para acelerar os processos de recuperação.
Os elementos da estrutura de dados da informaçãode Colagem caem nas seguintes categorias:
1. Atributos de documento processado;
2. Resultados do processamento de Colagem para o documento.
Para suportar as funcionalidades de datação e ras-treamento exigidas, a Informação de Colagem deve conter osseguintes atributos de documento processados:
I. Atributo de Data (somente para colagem em nivelde documento): a data do documento processado conhecida nomomento do processamento. Este valor é uma chave para inde-xação e recuperação. Um ou mais métodos podem ser usados pa-ra a determinação da data de um documento. Além do mais, es-te atributo pode ser composto de múltiplos valores de data,por exemplo, data de criação do documento, data de modifica-ção do documento, data do último acesso, data da última vi-sita pelo motor de busca, etc.
II. Endereço do documento (somente colagem em ni-vel de documento): o endereço do documento quando processado(isto é, seu URL no contexto da rede). Este valor é uma cha-ve para indexação e recuperação.
III. Esquemas de Colagem: todos os objetos de In-formação de Esquema de Colagem (ou ligações a tais objetos)usados para processar o documento, opcionalmente com seusrespectivos escopos de processamento (nos casos de Esquemade Colagem que foram usados para processar partes do docu-mento) .
A criação de um novo objeto de informação de Cola-gem é direta:
1. Dado um documento ou uma parte de conteúdo,criar um novo objeto de informação de Colagem. Para documen-tos, preencher os atributos de documento de informação deColagem com informação do documento;
2. Usar um ou mais Esquemas de Colagem para pro-cessar o documento e adicionar / ligar os objetos de Infor-mação de Esquema de Colagem resultantes na informação de Co-lagem. A decisão de quais Esquemas de Colagem usar pode sertomada tanto arbitrariamente quanto dinamicamente, com basenas propriedades de conteúdo.
Seção 4.1: Indexação de um documento - armazena-mento em uma nova Colagem
O resultado do processamento de um documento é ainformação de Colagem. A informação de Colagem pode ser li-gada a um ou mais objetos de Informação de Esquema de Cola-gem ou conter mais de um deles, cada um dos quais é ligado aElementos de Colagem e/ou Subcolagens ou contê-los.
A informação de Colagem deve ser indexada para orápido acesso aos itens de informação relevantes. Técnica-mente, isto pode ser feito de muitas maneiras e o método deescolha é especifico de implementação e depende das estrutu-ras de dados reais mantidas pela implementação.
Usando as abstrações preferidas da forma aqui des-crita, a indexação pode ser realizada usando o seguinte pro-cedimento :
A. Buscar e recuperar Colagens existentes pelo URLda nova Colagem. Isto determina se o indice já inclui uma oumais Colagens que foram endereçadas pelo mesmo URL da Cola-gem que está sendo atualmente indexada. Se mais de uma forencontrada, comparar a nova Colagem com a Colagem mais re-centemente indexada (com base na informação de data das Co-lagens recuperadas). Se a nova Colagem e a Colagem anteriorforem idênticas (exceto pela data), realizar ambos seguintes(decisão de qual escolher depende da implementação):
1. Não armazenar nem indexar a nova colagem e fi-nalizar (no caso das datas de visita não importar e somentedatas de modificação dever ser lembradas); OU
2. Atualizar a data da Colagem existente e finali-zar (por exemplo, para salvar a última data de visita); OU
3. Adicionar a nova data na Colagem existente (co-mo uma nova data de visita do motor de busca) e finalizar;OU
4. Deletar a Colagem existente dos Índices.e con-tinuar até a etapa B.
B. Se a nova Colagem e a Colagem anterior endere-çadas ao mesmo URL não forem idênticas (ou se a opção 4 su-pra for selecionada), então adicionar referências para a no-va estrutura de Colagem para os Índices. Todos os objetos deColagem armazenados devem ser indexados para permitir rápidarecuperação usando referências de objeto. Além do mais, érecomendado indexar os seguintes itens de data para a rápidarecuperação dos seus objetos contidos:
1. Atributos de documento:
1. Endereço de documento;
ii. Informação da data de documento.
2. Elementos de Colagem:
iii. Sumário de Conteúdo.
Essencialmente, o motor de busca estará armazenan-do e indexando informação de Colagem de várias versões de umúnico documento já que tal documento se desenvolve durante otempo (embora as diferentes versões do documento possam es-tar associadas com um único endereço URL, somente a versãomais atual do documento estará acessível a um usuário nave-gando na rede). Adicionalmente, o motor de busca continuaráa armazenar e indexar informação de Colagem para um dado do-cumento, independente se o URL para o documento ainda estáativo. Isto é vantajoso no sentido de que ele prove capaci-dades para determinar se uma parte de conteúdo particularexistiu previamente na rede (por meio do qual uma data ante-rior é associada), independente se a parte de conteúdo pre-viamente indexada está atualmente acessível na rede usandoseu URL histórico.
Seção 4.2: Limpeza de Colagens do índice
Colagem e Informação de Esquema de Colagem, bemcomo Elementos de Colagem, são preferivelmente projetadospara ser de tamanho minúsculo a fim de permitir o armazena-mento de um número muito grande deles e, portanto, provercapacidades virtualmente ilimitadas de datação e rastreamen-to.
Apesar destes pequenos tamanhos, preferivelmente,os itens de Colagem não devem ser acumulados para sempre.Portanto, em algum estágio pode ser exigido limpar itens doindice.
Obviamente, cada uma destas tais limpezas resultaem perda de informação. Portanto, preferivelmente, o proces-so de limpeza prioriza Elementos de Colagem, objetos de In-formação de Esquema de Colagem e objetos de Informação deColagem pela sua importância em vez de datas de criação. Adecisão do método de avaliação de importância é específicada implementação.
0 processo de limpeza em si é simples - apenas de-letar o objeto de informação de Colagem menos importante etodos os seus objetos de Informação de Esquema de Colagem,Elementos de Colagem e Subcolagens da base de dados.
Por exemplo, se encontrar a data original for ouso principal da implementação, preferivelmente, não se lim-pa a Colagem com data mais antiga de um endereço de documen-to .
Seção 5: Busca de Colagem e Métodos de Correspon-dência
Esta seção especifica os procedimentos de corres-pondência de conteúdo básico. Tipicamente, os procedimentosdescritos nesta seção são usados para a determinação de si-milaridades entre documentos e partes de conteúdo que estãoincluídos no Índice. Por exemplo, o motor de busca pode de-terminar que um documento que foi encontrado primeiro hojeem um novo URL, de fato, inclui alguns elementos que foramencontrados primeiro em um documento histórico (que atual-mente pode não estar mais acessível na rede). 0 documentohistórico também pode ter sido endereçado por um URL dife-rente. Se os elementos de correspondência forem uma partesubstancial do novo documento, então o motor de busca podeatribuir a data do documento histórico ao novo documento.Preferivelmente, os cálculos de busca e correspondência sãorealizados para cada documento no Índice e, em decorrênciadisto, o motor de busca gera informação de data original pa-ra cada documento no Índice. Esta data gerada pode ser arma-zenada na base de dados de indice junto com outra informaçãode documento. Alternativamente, o motor de busca pode reali-zar o cálculo de busca e correspondência em tempo real paradocumentos que são retornados em resposta a uma inquiriçãode busca.
Seção 5.1: Busca Simples
Esta técnica de busca somente encontra correspon-dências únicas de Elementos de Colagem:
1. Pré-processar opcionalmente o dado documento ouparte de conteúdo (no caso de tal documento ou conteúdo nãoter sido previamente pré-processado e indexado pelo motor debusca);
2. Calcular um único Elemento de Colagem para a'integra do conteúdo;3. Recuperar todos os Elementos de Colagem que ca-sam (com Sumário de Conteúdo igual e, opcionalmente, compri-mento de conteúdo igual e outros atributos de correspondência).
Seção 5.2: Busca Baseada em Estrutura
A busca baseada em estrutura realiza uma operaçãode exploração de documento idêntica àquela realizada peloEsquema de Colagem SH (ver supra). Em cada nivel da hierar-quia da estrutura do documento ele busca todas as possibili-dades de Elementos de Colagem que podem ter sido gerados pe-
Esquema de Colagem SH:
1. Pré-processar opcionalmente o dado documento ouparte de conteúdo (no caso de tal documento ou conteúdo nãoter sido previamente pré-processado e indexado pelo motor debusca);
2. Dividir o conteúdo em seus elementos estrutu-rais no nivel do topo (conforme supradescrito na seção 3.2.1);
3. Se houver menos que 2 de tais elementos estru-turais: retornar com um conjunto de resultado vazio (nenhumparticionamento estrutural do documento neste nivel) ;
4. Para cada elemento estrutural ("Parte de Conte-údo") :
a. Recuperar Elementos de Colagem que casam daParte de Conteúdo usando a Busca Simples (ver seção 5.1 su-pra) e adicionar ao conjunto de resultado;
b. Recuperar Elementos de Colagem que casam daParte de Conteúdo usando Busca de Janela Deslizante (ver se-ção 5.3 a seguir) e adicionar ao conjunto de resultado;
c. Realizar recorrentemente Busca Baseada em Es-trutura na Parte de Conteúdo e adicionar os resultados re-tornados no conjunto de resultado.
5. Retornar o conjunto de resultado.
Seção 5.3: Busca por janela deslizante
A busca por janela deslizante é usada para explo-rar um grande documento ou parte de conteúdo ("o conteúdo")para subseções que casam.
Uma janela de tamanho fixo move-se ao longo doconteúdo. O tamanho da janela é determinado pelo mesmo méto-do que determina o tamanho do bloco para o Esquema de Cola-gem Chato.
Para cada uma das possíveis posições de janela, oSumário de Conteúdo é calculado para a seção de conteúdo noslimites da janela e Elementos de Colagem que casam que foramgerados pelo Esquema de Colagem Chato são recuperados.
Seção 5.4: Cálculo de Cobertura de CorrespondênciaAlguns métodos de busca suportam buscas de simila-ridade. A Cobertura de Correspondência prove dispositivo pa-ra a quantificação do grau de similaridade entre um documen-to ou parte de conteúdo em particular e outro conteúdo noindice.
A Cobertura de Correspondência expressa a simila-ridade entre um conteúdo em particular (isto é, o conteúdopara o qual uma busca é realizada no índice a fim de encon-trar correspondências; aqui referido com o "conteúdo busca-do") e outro conteúdo no índice. Cada parte de conteúdo érepresentada pro um "Objeto Raiz", tal como um objeto de Co-lagem indexado (objeto de informação de Colagem, objeto deInformação de Esquema de Colagem ou Elemento de Colagem) . 0conteúdo para o qual a Cobertura de Correspondência é calcu-lado é o conteúdo amarrado pela sub-árvore de objetos de Co-lagem do Objeto Raiz.
Para o cálculo da Cobertura de Correspondência, umconjunto de Elementos de Colagem que casam (tais elementoscujo conteúdo existe tanto no conteúdo buscado quanto noconteúdo indexado) deve ser encontrado pela função de busca.A Cobertura de Correspondência é realizada para o conteúdobuscado em função de um conjunto de Elementos de Colagem quecasam incluídos no Índice que está associado com uma únicaColagem. Em outras palavras, a Cobertura de Correspondênciaavalia a similaridade ou dissimilaridade de uma parte deconteúdo / documento em função de uma outra parte de conteú-do / documento.
A Cobertura de Correspondência pode ser calculadade qualquer maneira razoável que proveja altos escores paraconteúdo similar.
Por exemplo, a Cobertura de Correspondência podeser calculada da seguinte maneira:
1. Deixar o Tamanho da Correspondência ser a somados tamanhos dos elementos que casam contidos no conteúdoindexado;
2. Deixar o Conjunto União ser a união do conteúdobuscado e do conteúdo indexado. 0 tamanho do Conjunto Uniãoé o tamanho do conteúdo buscado + o tamanho do conteúdo in-dexado - o Tamanho da Correspondência (que é o conjunto dasobreposição de ambos conjuntos).
3. A Cobertura de Correspondência é o Tamanho daCorrespondência dividido pelo tamanho do Conjunto União.
Seção 5.5: Melhor Cobertura de Correspondência Pai
Cada um dos diferentes métodos de busca (ver se-ções 5.1 - 5.3 supra) resulta em uma coleção de Elementos deColagem que casam - as partes de conteúdo que existem tantono conteúdo buscado quanto em um ou mais documentos indexados.
A Melhor Cobertura de Correspondência Pai de umdocumento é definida como a maior Cobertura de Correspondên-cia de todas as suas seções contíguas.
O algoritmo da Melhor Cobertura de CorrespondênciaPai encontra a melhor seção contígua que casa que contém umElemento de Colagem que casa especifico (o "Elemento Ânco-ra") . Portanto, ele pode ser executado em múltiplos momen-tos, para todos os Elementos de Colagem que casam, a fim deencontrar a Cobertura de Correspondência de todos os docu-mentos que contêm Elementos de Colagem que casam.
0 algoritmo da Melhor Cobertura de CorrespondênciaPai usa a árvore de Colagem gerada pelos métodos descritosna seção 3 supra a fim de "afastar-se" de um dado ElementoÂncora e calcular a Cobertura de Correspondência para cadaum dos seus elementos árvore pai, até a raiz da árvore deColagem. Subindo a árvore de Colagem, o tamanho do conteúdoque está sendo avaliado em função do "conteúdo buscado" au-menta. Este aumento em tamanho pode afetar tanto um aumentoquanto uma diminuição no valor da Cobertura de Correspondên-cia. Portanto, é objetivo recalcular a Cobertura de Corres-pondência para cada pai (isto é, nivel ou nó de árvore) e éescolhido o melhor ajuste (isto é, o objeto da árvore paipara o qual o valor da Cobertura de Correspondência é o maisalto).
0 algoritmo da Melhor Cobertura de Correspondência Pai:
Dada uma coleção de Elementos de Colagem que casame um Elemento Âncora, fazer laço através do caminho da árvo-re de Colagem entre o Elemento Âncora e sua Colagem Pai emnivel de documento. Para cada objeto de Colagem no caminho,calcular a Cobertura de Correspondência usando o objeto docaminho como o Objeto Raiz. Retornar a maior Cobertura deCorrespondência calculada.
Seção 6: Funcionalidade baseada em Busca de Cola-gem e Métodos de Correspondência
A seguinte seção demonstra como usar os métodos debusca básica e de correspondência supradescritos para a pro-visão da funcionalidade usada.
Seção 6.1: Recuperação da data original de um do-cumento ou de uma parte de conteúdo
A seguinte seção descreve como recuperar a datamais antiga para uma dada parte de conteúdo..
1. Por meio deste, refere-se ao documento ou partede conteúdo como "o Conteúdo";
2. Recuperar Elementos de Colagem que Casam: Ele-mentos de Colagem que casam com Elementos de Colagem do Con-teúdo ou partes dele usando todos os métodos de buscas deColagem e de correspondência (ver seção 5 supra);
3. Para cada Elemento de Colagem que Casa:
a. Se a Melhor Cobertura de Correspondência Pai doElemento de Colagem (ver seção 5.5 supra) exceder um dadolimite de similaridade:
1. Recuperar a Colagem pai em nivel de documentodo Elemento de Colagem;
ii. Recuperar os atributos do documento da Colagemem nivel de documento (data e endereço de documento).
4. Retornar os atributos de documento com a datade documento mais antiga.
Da forma previamente notada, o procedimento para adeterminação de uma data original para um documento pode serrealizado para cada documento no indice e tal informação dedata pode ser armazenada na base de dados do indice juntocom outra informação de documento.
Seção 6.2: Rastreamento de um documento ou umaparte de conteúdo
Este rastreia o histórico de um documento ou deuma parte de conteúdo. O conjunto de resultado inclui datase endereços nos quais o documento ou parte de conteúdo (oudocumentos similares ou partes de conteúdo) estavam presen-tes .
1. Por meio deste, refere-se ao documento ou partede conteúdo como "o Conteúdo";
2. Recuperar Elementos de Colagem que Casam: Ele-mentos de Colagem que casam Elementos de Colagem do Conteúdousando todos os métodos de busca de Colagem e de correspon-dência (ver seção 5 supra);
3. Para cada Elemento de Colagem que Casa:
a. Se a Melhor Cobertura de Correspondência Pai doElemento de Colagem (ver supra) exceder um dado limite desimilaridade:
i. Recuperar a Colagem pai em nivel de documentodo Elemento de Colagem;
ii. Recuperar os atributos de documento da Colagemem nivel de documento (data e endereço de documento) e adi-.cioná-lo ao conjunto de resultado;
4. Remover atributos de documento duplicados doconjunto de resultado;
5. Retornar o conjunto de resultado.
Seção 6.3: Filtragem de um conjunto de documentosusando suas datas originais
Quando um usuário submete uma inquirição de buscaao motor de busca, o motor de busca retorna ao usuário umalista de documentos em resposta à inquirição de busca (listade resultados de busca). O número de documentos em respostaà inquirição de busca pode ser grande e as várias datas a-tribuidas aos documentos podem atravessar muitos anos. Com ométodo supradescrito (ver seção 6.1 supra), para a atribui-ção de uma data mais antiga a um dado documento, um motor debusca pode adicionar uma nova funcionalidade para a filtra-gem de documentos com datas que estão em uma faixa especifi-cada de datas. Diferente dos motores de busca existentes queatribuem datas aos documentos com base na data em que o do-cumento foi primeiro recuperado ou atualizado por último, omotor de busca de acordo com a presente divulgação é maisefetivo para a atribuição de datas a documentos e, como tal,é mais confiável para a filtragem de documentos de acordocom as datas aproximadas em que os documentos foram primeiropublicados eletronicamente.
Quando um usuário submete uma inquirição de buscaa um motor de busca, a inquirição de busca também pode in-cluir um parâmetro de filtragem de data. Primeiro, o motorde busca localiza todos os documentos que são responsivosà(s) palavra-chave(s) e/ou termos de busca da inquirição debusca. Depois disto, o motor de busca identifica as datas"mais antigas" atribuídas a cada documento que ele localizausando a técnica supradescrita na seção 6.1. A data "maisantiga" de cada documento pode ter sido previamente pré-processada, determinada e indexada em associação com a in-formação de Colagem do documento ou, alternativamente, a da-tação de cada um dos documentos localizados pelo motor debusca pode ser realizada em tempo real, em resposta à inqui-rição de busca.
Depois disto, o motor de busca filtra a lista deresultados de busca a somente àqueles documentos aos quaisforam atribuídas datas na faixa especificada de datas na in-quirição de busca. Então, a lista de resultados de busca re-sultante pode ser transmitida ao usuário e exibida no nave-gador do usuário de acordo com as datas atribuídas a cadadocumento, tanto na ordem ascendente quanto na ordem descen-dente. Alternativamente, o motor de busca pode usar outrosalgoritmos de classificação para ordenar a lista de resulta-dos de busca filtrada.
Seção 6.4: Encontro de similaridades com base naspartes de conteúdo que contêm termos de busca
Pretende-se que este método sirva como um pós-processador para todas as listas de resultados de motores debusca. Primeiro, o motor de busca recupera os documentos quecasam com a inquirição de busca. Dado um documento que casa:
1. Deixar o Sub-documento Buscado ser o conjuntode partes de conteúdo que contém termos de busca que casam(por exemplo, partes de conteúdo que contêm palavras encon-tradas na inquirição de busca);
2. Usar o método de rastreamento de conteúdo (Se-ção 6.2 supra) para recuperar documentos ou partes de conte-údo que são similares ao Subdocumento Buscado.
Seção 6.5: Encontro dos documentos ou partes deconteúdo mais similares
Este funciona similarmente ao rastreamento de con-teúdo, mas em vez de retornar referências a todo o conteúdocom Cobertura de Correspondência que excede um limite de si-milaridade, somente é retornada uma única referência do con-teúdo com a maior Cobertura de Correspondência (o conteúdomais similar).
Alternativamente, é possível classificar todos ositens de conteúdo que casam com base em seus valores de Co-bertura de Correspondência e retornar os itens em tal ordem.
Seção 6.6: Melhorando navegadores de documento
A funcionalidade supradescrita pode ser integradaem navegadores de documento (tanto pelo revendedor do supor-te lógico quanto por meio de um suporte lógico de funciona-lidades adicionais) da seguinte maneira:
Quando o navegador de documento carrega um docu-mento, ele realiza uma ou mais das análises especificadasnesta divulgação para identificar suas diferentes partes esubpartes de conteúdo. Todas ou algumas destas partes podemser (estática ou dinamicamente) marcadas (por exemplo, comum retângulo pulante visivel que aparece ao redor da partede conteúdo quando o mouse se move sobre ele). 0 navegadorpode ser melhorado para exibir informação de data para aparte de conteúdo selecionada / destacada. 0 navegador podeser melhorado para executar outras funções para uma parte deconteúdo selecionada (por exemplo, por meio de um menu ins-tantâneo que aparece quando se dá um duplo clique sobre aparte de conteúdo) , tal como a exibição de uma lista de do-cumentos similares com partes de conteúdo que casam, etc.
Seção 7: Disposições Gerais
Ficará aparente para os versados na técnica queaspectos supradescritos da invenção podem ser implementadosem muitas formas diferentes de suporte lógico, suporte lógi-co embarcado e hardware para a implementação descrita. 0 có-digo de suporte lógico ou hardware de controle especializadoreais usados para implementar aspectos consistentes com osprincipios da invenção não são limitantes da presente inven-ção. Assim, a operação e comportamento dos aspectos foramdescritos sem referência ao código de suporte lógico especi-fico - entende-se que versados na técnica serão capazes deprojetar suporte lógico e hardware de controle para imple-mentar os aspectos com base nesta descrição.
Estão anexas a esta especificação uma ou mais rei-vindicações que podem incluir tanto reivindicações indepen-dentes quanto reivindicações dependentes. Cada reivindicaçãodependente faz referência a uma reivindicação independente edeve ser interpretada incorporando pela referência todas aslimitações da reivindicação à qual ela diz respeito. Adicio-nalmente, cada reivindicação dependente da presente aplica-ção deve ser interpretada e atribuída ao significado de terpelo menos uma limitação adicional ou elemento não presentena reivindicação â qual ela diz respeito. Em outras pala-vras, a reivindicação à qual cada reivindicação dependentediz respeito deve ser interpretada e atribuída ao significa-do como sendo mais ampla que tal reivindicação dependente.
A presente invenção foi descrita em suas modalida-des preferidas e os vários aspectos inovadores da presenteinvenção podem ser prontamente apreciados. São visualizadasvárias modificações às modalidades preferidas que podem in-cluir um ou mais dos aspectos inovadores aqui descritos semfugir do espirito e do escopo da invenção.
Seção 8: Pseudocódigo
O seguinte pseudocódigo ilustra algoritmos e es-truturas de dados que são substancialmente similares àquelassupradescritas.PSEUDOCÓDIGO
// -------- constants -----------------
const int FlatScheraeBlocksize;
const int MaxSHLevel; // (optional) max document hlerarchy
// levei to recurse into with the SH schemE
// -------- input structures -----------
class DocuraentAttributes í
Date DocumentDate;Address DocuraentAddress;
>
class Document {
DocumentAttributes Attributes;
Content DocumentContent;
}
class Content {
Symbol [] Data;
property int Length; // return length of contentData,
// in sytnbols (e.g. chars)
content , ,
GetsubcontentByindexAndLengthCint ZeroBasedlndex, int maxLengthH
content subcontent; . , . , »
subcontent.oata = copy MinCmaxLength, Length - ZeroBasedlndex)
symbols from Data starting at ZeroBasedlndex;return subcontent;
> 5
// -------- data structures ------------
class CollageObject {
CollageObject Parent = null;
class contentcollage : CollageObject { .
collageSchenieC] contentschemes; // the different "views"
// of the document
>
class DocumentCollage { ....._
[indexed] Date DocumentDate; // indexed for quick sorting[indexed] Address DocumentAddress; // e.g. the document URL wnen
// iraplemented for the// internet space
contentcollage collagej
}'
class collageElement : CollageObject {
Tindexed] contentsummaryVal üe contentsummary;
int contentLength; ■// for calculating the Match Coverage
}
class CollageScheme : Collageobiect {
//base class for alT coilage schemesclass CollageSimpleScheme : Collagescheme {^ CollageElement El ement;
class collageFlatscheme : Collagescheme {CollageElement[] Bl ockEl ements;
>
class collageSHScheme : collagescheme {
contentCol1age[] SectlonCol1ages;
}
// --------- content suramary Functlons -------------
ContentsummaryValue si mplescheraesumraary(content c){
return ContentsummaryValue of c.contentData siritable for simple^ schemes (e.g. hash code)
ContentsummaryValue 5HSchemeSummary(content c){
returns ContentsummaryValue of c.contentData süitable for SH^ schemes (e.g. hash code)
ContentsummaryValue Flatschemesummary(content c){
returns ContentsummaryValue of c.contentData sultable for flatschemes and sliding window search
// --------- Preprocessors -------------
content StaticPreprocessor(Content c, bool DontDeleteDocumentstructure) {"Normalize text case of c, e.g. turn ali text into lower-caseRemove ali "redundant" sections of content, based on the document'sformatting language and the DontDeleteDocumentstructure flag, such
* invisíble portions of tags
* images
* input fields and controls
* Meta Information
* scripts
* dynamic content
* comments
* hyperlinks
* upper/lower case settings
* font type, style and size
* redundant whitespacesreturn modified c
>
content DynamicPreprocessor(content c){
"Normalize" sections of content that may appear in the document inmultiple ways, e.g. order of HTML-related table tagsreturn modified c
}
content TransFormatPreprocessor(content c){
if(Docuraentrype(c) is StandardDocumentType)return c;
Content r o convert document type of c into StandardDocumentTypereturn r
>
Content Preprocesscontent(content c, bool DontDeleteDocumentstructure){return staticpreprocessor(DynamicPreprocessor(
TransFormatPreprocessor(c)), DontDeleteDocumentstructure)
//------------coll age scheme Generators----------
CollageSimpleScheme GenerateSimplescheme(Content c){if(c is not preprocessed)
c = Preprocesscontent(c, false);CollageSimpleScheme r;r. El ement <= new coll ageEl ement (
contentsumraary = SimpleSchemeSummary(c),ContentLength = c.Length, Parent => r);return r;
^// This iraplementation of the flat scheme uses fixed-size blocks.// However, any splitting method based on deterministic-sized blocks// will do, e.g. blocks end at the end of the first word on// which the block exceeds some predeternrined size, or at the end// of the content.
collageFlatscheme GenerateFlatscheme(content c){ifCc is not preprocessed)
c-o PreprocessContentCc, false);CollageFlatscheme r;
for(int i = 0; 1 < c.Length; i +«» FlatSchemeBlocksize){
Content contentBlock = c.GetSubcontentBylndexAndLengthC
index » 1, maxlength » FlatSchemeBlocksize);r. Bl ockElements.AddCnew col1ageElement(
Contentsununary = FlatschemeSummaryCcontentBlock),ContentLength = c.Length, Parent = r));
return r;
}
content[] GetTopLevelstructureContentsectionsCcontent c){
Based on the formatting language, spl-ft c into content sections basedon the document strueture. This metnod only splits the content basedon the top-level strueture of the document Ci.e. it does not recurseinto the top-level sections) The content sections:
* Should not overlap
* Should provi de complete coverage of creturn array of content sections
}
// Structural/Hierarchical scheme
CollageSHScheme GenerateSHscheme(content c, int levei){if(c is not preprocessed)
c = PreprocessContentCc, true);CollageSHScheme r;
Content[] structurecontentsections =
GetTopLevelstructurecontentsecti ons (c);foreachCcontent s in structurecontentSections){
Contentcollage sectionCollage <=>
GenerateContentcollageCs, levei + 1);
sectionCollage.Parent = r;
r. secti oncolTages. Add(sectioncol1age);
return r;
// ------------- col1age Generators ------------
Contentcollage GeneratecontentcollageCContent c, int level){Contentcollage collage;
bool shouldGenerateFlatscheme = *** Determine whether to generate a
flat scheme or not. e.g. only if c.Length >
3*FlatSchemeBlocksize ***if (shoul dGenerateFl atscheme) {
collageFlatScheme scheme = GenerateFl atscheme CO;
scheme.Parent = collage;
collage. contentschemes.AddCscheme);
dooI shouldGenerateSHScheme = *** Determine whether to generate anSH scheme or not, e.g. only if levei < MaxSHLeveT andc.Length > some threshold ***
ifCshouldGenerateSHScheme &&
GetTopLevelStructureContentSections(c).Length > 1)
CollageSHScheme scheme = GenerateSHSchemeCc, levei);scheme.Parent = collage;collage.ContentSchemes .AddCscheme);
doo! shouldGeneratesimplescheme = *** Determine whether to generate asimple scheme or not, e.g. generate only when levei > 0. NOTICETHAT SIMPLE SCHEME MUST BE GENERATED IF NO OTHER SCHEME WASGENERATED11! ***
i f (shoul dGeneratesi mpl escheme){
CollageSimplescheme scheme = GenerateSimplescheme(c);
scheme.Parent = collage;
collage.contentSchemes.Add(scheme);
return collage;
Documentcollage GenerateDocumentCollage(Document d){Documentcollage doccollage;
doccollage.DocumentDate ■= d.Attributes.Documentoate;doccoIlage.DocunentAddress = d.Attributes.DocumentAddress;
// e.g. the document's URLdoccollage.collage ■= GenerateDocumentCollageCd.Documentcontent, 0);^ doccollage.collage.Parent = doccollage;
//-------------Document indexlng-----------------
Documentcollage GetLatestlndexedCollageByAddress(Address DocAddressH
Documentcollage[] matchingcollages « retrieve ali Documentcollageswith doccollage.DocumentAddress = DocAddress,sorted by DocumentDate in descending order;
// this is an index-based operation// as both properfies are indexedreturn matchingcol!ages.Length = 0 ? null : matchingcol!ages[0];
public void indexDocument(Document d){
Documentcollage doccollage = GenerateDocumentCollageCd);Documentcollage latestlndexedcollage -
GetLatestindexedCollageByAddress (d.Attri butes .DocumentAddress);
// this pseudo-code cares only for modification dates, so a new
// Documentcollage is stored only when changes are detected or vthen no
// document previously existed at the address.
// other date considerar!ons Ce.g. care about search engine visit// dates) may result in different implementations.
if(latestlndexedcollage = null OR notEqualCol1ages(doccol1age. col1age,1atestlndexedcol1age.Col1age))
Store doccollage in the database and (recursively) index usingali [indexed] properties of the doccollage and its descendant^ objects;
// ------------- utility methods --------------------
CollageScheme GetParentcollagescheme(collageObject o){collageobject p;p = o.Parent;
while(p 1= null AND (p is not collagescheme))p = p.Parent;
return p; // return either null or a collagescheme
Documentcollage GetParentDocumentCollage(collageobject o){collageobject p;p = o.Parent;
while(p != null AND (p is not Documentcollage))p = p.Parent;
return p; // return either null or a collagescheme
// ------------ search utility methods ---------------------
col 1 ageElement[] GetlndexedCollageElementsByContentSummaryAndLength(ContentsummaryValue cs, int Length)
return ali CollageElements in the database whose contentsummary = csand contentLengtn == Length, or an empty set if none (indexoperatiorú;
CollageElenient[] GetsimpleSchemeMatchíngCollageElementsCContent c){if(c is not preprocessed)
c - PreprocessContentCc, false);collageElement[] matchingElements =>
GetindexedcollageElementsBycontentSunimaryAndLengthCSimpleSchemeSummary(c), c.Length);foreach(CollageElement e in raatchingEleraents){
if(GetParentConage5cheine(e) is not coliagesimplesdieme)remove e from matchingElements;
return matchingElements;
CollageElementn GetslidingWindoMatchingcollageElements (Content c){ConageEiement[] rjif(c is not preprocessed)
c = PreprocessContentCc, false):contentSumraaryValue flatschemecs = null;
forCint i' = 0; 1 < c.Length; i++){
// the following Tine may be implemented in 0(1) for i > O i// taking advantage of the sliding window raovement
Content contentBlock c.GetsubContentBylndexAndLength(
index i, maxLength = FlatschemeBlocksize):ifCflatSchemecs = null OR flatschemecs not updatable)flatschemecs = FlatschemeSummary(contentBlock);
else{
// the updated flatschemecs tnust be equal to// FlatSchemeSunmary(contentBlock)
update flatschemecs to reflect the slidingwindaw raovement;
CoIlageElementC] matchingElements a
GetXndexedcol1ageÉlementsByContentsummaryAndLength(flatschemecs, contentBlock.Length);
foreach(collageElement e in matchingElements){
if(GetParentcollagescheme(e) is not CoTtageFlatscheraeremove e from matchingElements;
^ r.Add(matchingElements);
return r;
>
collageElementn GetSHMatchingCollageElements(Content c){collageElementE] r;if(c is not preprocessed)
c = PreprocessContent(c, true);Content[] structureContentSections =
GetTopLevelstructu recontentsecti ons(c);if(structureContentSections.Length <=> 1)
return r; // empty setforeach(content s in structureContentSections){
r.AddCGetSimpleschemeMatchingCollageElements (s));
r. Add (Getsl i di ngWi ndowMat chi ngcol 1 ageEl ements (s) ):
r.Add(GetSHMatcningCollageElements(s)); // recursive step
return r;
// -------------- Match Coverage funetions --------------------
"struct Matchcoverageinfo {
int MatchLength;^ int spannedcontentLength;
MatchcoverageXnfo GetMatchcoverageInfo(Collageobject Root,
CollageElement[] MatchingElements, MatchCoverageCache cache)
i f(Cache.contai ns(Root))return Cache[Root];MatchCoveragelnfo r;ifCRoot is Documentcollage)
r » GetMatchCoveragelnfoCRoot.collage, MatchingElements, cache};
// niatch coverage is that of the document's
~Jf content collage's"Ia! *'
else ifCRoot is Contentcol"íage){
MatchCoveragelnfo maxMatchcoverage *
new MatchcoveragexnfoCMatchLength = 0,SpannedcontentLength = 0);foreach(CollageScheme scneme 1n Root.ContentSchemes){MatchCoveragelnfo schemeMatchCoverage =
GetMatchCoveragelnfoCscheme, Matchi ngElements,cache);
ifCscheáeMatchCoverage.MatchLength >maxMatchcoverage.MatchLength)
// notice that SpannedcontentLength is// the same for ali schemes
^ maxMatchcoverage = schemeMatchCoverage;
r = maxMatchcoverage;
else ifCRoot is collageSifflpleschene){
r = GetMatchcoveragelnfoCRoot.Element, MatchingElements, cache);
else ifCRoot is CollageFlatschetne){int totalMatchLength » 0;int totalSpannedcontentLength = 0;foreachCCollageElement e in Root.BlockElements){MatchCoveragelnfo elementCoverage =
GetMatchcoveragelnfoCe, MatchingElements, cache);totalMatchLength += elementCoverage.MatchLength;totalspannedcontentLength +=^ elementCoverage.SpannedcontentLength;
r = new MatchCoveragelnfo(MatchLength = totalMatchLength,SpannedcontentLength » totalspannedcontentLength);
else ifCRoot is CollageSHScheme){int totalMatchLength <=> 0;int totalspannedcontentLength = 0;
foreachCContentCollage section in Root.Sectioncollages){MatchCoveragelnfo sectioncoverage =
GetMatchcoverageXnfoCsection, MatchingElements,cache);
totalMatchLength += sectioncoverage.MatchLength;totalspannedcontentLength +«
s ecti oncoverage.SpannedcontentLength;
r = new MatchCoveragelnfo(MatchLength = totalMatchLength,SpannedcontentLength = totalspannedcontentLength);
else ifCRoot is collageElementHr =s new MatchCoveragelnfoC
MatchLength = CRoot in MatchingElements) ?Root.ContentLength ; 0,SpannedcontentLength = Root.ContentLength);
cache[Root] - r;return r;
}
float GetMatchcoverageCint searchedcontentLength, collageobject Root,CollageElement[] MatchingElements, MatchcoverageCache Cache)
MatchCoveragelnfo mci = GetMatchcoveragelnfo(Root, MatchingElements,' cachê);
// The Match coverage is the degree of similarity between the
// searched content and the spanned content. So we have two groups:
// the searched content and the spanned content. GetMatchCoveragelnfo
// returns the size of the spanned content and the size of subgroup of
// the spanned content which matches the searched content. The
// similarity is the size of the tnatching group. The dissinrilarity is
// the sum of the subgroups which don't match, both in the searched// content and in the spanned content. Their sizes are
// ÇsearchedContentLength - mci .MatchLength) and
// Cmci.SpannedContentLength - mci. MatchLength), respectively. So the
// union of the similaríty group and the dissinnlarity groups is of
// the s1ze: mci. MatchLength + ÇsearchedContentLength -
// raci .MatchLength") + Onci-SpannedContentLength - mci.MatchLength),
// which is ÇsearchedContentLength + raci.SpannedContentLength -
// raci.MatchLength).
// The Match coverage is therefore the size of the similarity group// divided by the size of the union.
return mci .MatchLength / ÇsearchedContentLength +mci .SpannedContentLength - md .MatchLength);
float GetMaxparentMatchcoverageCint searchedcontentLength,
Collageobject startobject, Coll ageEl ement [] MatcningElenients,MatchcoverageCache Cache)
float maxMatchcoverage = 0:Collageobject obj = startobject;whileCobi 1= null){
float matchcoverage - GetMatchcoverageÇsearchedContentLength,
obj, Matchi ngEl ements, cache);ifCmatchcoverage > maxMatchcoverage)
maxMatchcoverage = matchcoverage;obj = obj.Parent;
return maxMatchcoverage;
// -------------- search functions ---------------------------
PUBLIC Date Getoriginal DocumentDate CDocument d){return GetorlginalDateCd.Documentcontent);
PUBLIC DocumentAttributes GetOriginalDateCContent c,float SinrilarityThreshold)
DocumentAttributes earliestDocumentAttributes = null;Col 1 ageEl ement [] matchi ngEl ements;
matchi ngEl ements. Add ÇGetsi mpl eSchemeMatchi ngCol 1 ageEl ements Cc) );matchi ngEl ements .Add ÇGetsl i d1 npwi ndowMatchi ngcoll ageEl ements Cc) );matchi ngEl ements .Add (GetSHMatcfii ngCol 1 ageEl ements Cc));MatchcoverageCache cache;foreachCcoli ageEl ement e in matchi ngEl ements) {float maxParentMatchCoverage =
GetMaxParentMatchcoverageCc. Length, e,matchingElements, cache);ifCmaxParentMatchCoverage >= similarityThreshold){oocumentcollage parentDocumentCollage =
GetParentDocumentCol1ageCe);ifCearliestDocumentAttributes » null ||
parentDocumentCollage.DocumentDate <earliestDocumentAttributes .DocumentDate)
earliestDocumentAttributes ==
new DocumentAttributes (DocumentDate ■=parentDocumentCol1age.DocumentDate,DocumentAddress =
parentDocumentCol1age.DocumentAddress);
} }
return earliestDocumentAttributes;
}
PUBLIC DocumentAttributes[] TrackContentCContent c,float similarityThreshold)
DocumentAttributes [] r;
Coll ageEl ement [] matchi ngEl ements;
raatchi ngEl ements. AddÇGetSimpl eSchemeMatchi ngCol 1 ageEl ements Cc));raatchi ngEl ements. AddCGetsl i di ngwi ndowMatchi ngCol 1 ageEl ements Cc));matchi ngEl ements. Add (GetSHMatchl ngcoll ageEl ements (O );MatchCoveragecache cache;foreach(ColTageEletnent e in matchingElementsHrloat maxParentMatchCoverage =
GetHaxParentMatchcoverage(c.Length, e, matchingElements,
cache);
if(maxParentMatchCoverage >= Similarityrhreshold){Documentcollage parentoocutnentcollage •>
GetParentDocumentcoIlageCe);r.AddCnew DocumentAttributes(DocumentDate =parentDocumentcol1age.DocumentDate,DocumentAddress =^ parentDocumentCollage.DocumentAddress))
Sort r by (DocumentAddress, DocumentDate)
Remove duplicate (DocumentAddress, DocumentDate) pai rs from r
return r;
>
PUBLIC ContentM Fi1tercontentByoriginalDate(content[3 ContentToFilter, floatSimilarityThreshold,
Date MinDate, Date MaxDate)
ContentH r;
foreachCContent c in contentToFilter){DocumentAttributes attr =
GetoriginalDãteCc, siroilarityThreshold);if(attr !=■ null AND MinDate «=> attr.DocumentDate ANDattr.DocumentDate <== MaxDate)
r.Add(c);
return r;

Claims (13)

1. Método implementado em um sistema de computa-dor, CARACTERIZADO por compreender:manter no sistema de computador informação associ-ada com uma pluralidade de documentos, cada documento sendoassociado no sistema de computador com um único endereço derede para acessar o documento, onde a pluralidade de docu-mentos inclui documentos para os quais seus únicos endereçosde rede respectivos não são mais utilizáveis para acessar osdocumentos;buscar no sistema de computador por um ou mais do-cumentos que casam com um primeiro documento com base em umlimite de similaridade; ese a busca resulta em um ou mais documentos quecasam, então:.atribuir no sistema de computador uma data para oprimeiro documento consistente com uma data anterior associ-ada com pelo menos um dos documentos que casam,em que o pelo menos um dos documentos que casamnão está associado com o único endereço de rede associadocom o primeiro documento.
2. Método implementado em um sistema de computa-dor, CARACTERIZADO por compreender:manter no sistema de computador informação associ-ada com uma pluralidade de partes de conteúdo, cada parte deconteúdo associada no sistema de computador com um endereçode rede para acessar a parte de conteúdo;determinar no sistema de computador uma primeiraparte do conteúdo que casa com uma segunda parte de conteúdocom base em um limite de similaridade, em que a primeiraparte de conteúdo não está associada no sistema de computa-dor com o endereço de rede associado com a segunda parte deconteúdo; eassociar no sistema de computador a segunda partede conteúdo com um atributo associado com a primeira partede conteúdo.
3. Método, de acordo com a reivindicação 2,CARACTERIZADO pelo fato de que o atributo associado é umadata.
4. Método, de acordo com a reivindicação 3,CARACTERIZADO pelo fato de que a primeira parte de conteúdonão é mais acessível pelo seu endereço de rede associado.
5. Método, de acordo com a reivindicação 2,CARACTERIZADO pelo fato de que a primeira parte de conteúdoé um documento.
6. Método, de acordo com a reivindicação 3,CARACTERIZADO pelo fato de que a primeira parte de conteúdoé um documento.
7. Método, de acordo com a reivindicação 4,CARACTERIZADO pelo fato de que a primeira parte de conteúdoé um documento.
8. Sistema, CARACTERIZADO por compreender:um sistema de computador incorporado com instru-ções que:mantém informação associada com uma pluralidade departes de conteúdo, cada parte de conteúdo associada no sis-tema de computador com um endereço de rede para acessar aparte de conteúdo;determinam uma primeira parte do conteúdo que casacom uma segunda parte de conteúdo com base em um limite desimilaridade, em que a primeira parte de conteúdo não estáassociada no sistema de computador com o endereço de redeassociado com a segunda parte de conteúdo; eassociam a segunda parte de conteúdo com um atri-buto associado com a primeira parte de conteúdo.
9. Sistema, de acordo com a reivindicação 8,CARACTERIZADO pelo fato de que o atributo associado é umadata.
10. Sistema, de acordo com a reivindicação 9,CARACTERIZADO pelo fato de que a primeira parte de conteúdonão é mais acessível pelo seu endereço de rede associado.
11. Sistema, de acordo com a reivindicação 8,CARACTERIZADO pelo fato de que a primeira parte de conteúdoé um documento.
12. Sistema, de acordo com a reivindicação 9,CARACTERIZADO pelo fato de que a primeira parte de conteúdoé um documento.
13. Sistema, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que a primeira parte de conteúdoé um documento.
BRPI0610286-7A 2005-04-18 2006-04-18 sistema e método para eficientemente rastrear e datar conteúdo em espaços de documento dinámicos muito grandes BRPI0610286A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US67225605P 2005-04-18 2005-04-18
US60/672.256 2005-04-18
PCT/US2006/014441 WO2006113644A2 (en) 2005-04-18 2006-04-18 System and method for efficiently tracking and dating content in very large dynamic document spaces

Publications (1)

Publication Number Publication Date
BRPI0610286A2 true BRPI0610286A2 (pt) 2010-06-08

Family

ID=37115828

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0610286-7A BRPI0610286A2 (pt) 2005-04-18 2006-04-18 sistema e método para eficientemente rastrear e datar conteúdo em espaços de documento dinámicos muito grandes

Country Status (8)

Country Link
US (1) US20060248063A1 (pt)
EP (1) EP1899861A4 (pt)
JP (1) JP2008537264A (pt)
AU (1) AU2006236418A1 (pt)
BR (1) BRPI0610286A2 (pt)
CA (1) CA2605252A1 (pt)
MX (1) MX2007013020A (pt)
WO (1) WO2006113644A2 (pt)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190625B1 (en) * 2006-03-29 2012-05-29 A9.Com, Inc. Method and system for robust hyperlinking
US7711786B2 (en) * 2007-08-06 2010-05-04 Zhu Yunzhou Systems and methods for preventing spam
US8775953B2 (en) * 2007-12-05 2014-07-08 Apple Inc. Collage display of image projects
US7890480B2 (en) * 2008-02-11 2011-02-15 International Business Machines Corporation Processing of deterministic user-defined functions using multiple corresponding hash tables
KR101086530B1 (ko) * 2008-10-02 2011-11-23 엔에이치엔(주) 웹 문서 원본 판별 방법 및 시스템, 이를 위한 웹 문서 이력 정보 제공 방법 및 시스템
US8326829B2 (en) * 2008-10-17 2012-12-04 Centurylink Intellectual Property Llc System and method for displaying publication dates for search results
US8156130B2 (en) 2008-10-17 2012-04-10 Embarq Holdings Company Llc System and method for collapsing search results
US8874564B2 (en) * 2008-10-17 2014-10-28 Centurylink Intellectual Property Llc System and method for communicating search results to one or more other parties
US20110320452A1 (en) * 2008-12-26 2011-12-29 Nec Corpration Information estimation apparatus, information estimation method, and computer-readable recording medium
US8001462B1 (en) 2009-01-30 2011-08-16 Google Inc. Updating search engine document index based on calculated age of changed portions in a document
US8332408B1 (en) 2010-08-23 2012-12-11 Google Inc. Date-based web page annotation
US8499073B1 (en) 2010-10-07 2013-07-30 Google Inc. Tracking content across the internet
US9298778B2 (en) 2013-05-14 2016-03-29 Google Inc. Presenting related content in a stream of content
US9805113B2 (en) * 2013-05-15 2017-10-31 International Business Machines Corporation Intelligent indexing
US9367568B2 (en) * 2013-05-15 2016-06-14 Facebook, Inc. Aggregating tags in images
US9996629B2 (en) 2015-02-10 2018-06-12 Researchgate Gmbh Online publication system and method
US10282424B2 (en) 2015-05-19 2019-05-07 Researchgate Gmbh Linking documents using citations
US10331752B2 (en) * 2015-07-21 2019-06-25 Oath Inc. Methods and systems for determining query date ranges
CN107092689A (zh) * 2017-04-24 2017-08-25 深圳市茁壮网络股份有限公司 元数据生成方法及系统

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4899299A (en) * 1987-12-23 1990-02-06 International Business Machines Corporation Method for managing the retention of electronic documents in an interactive information handling system
US5909677A (en) * 1996-06-18 1999-06-01 Digital Equipment Corporation Method for determining the resemblance of documents
JPH10228469A (ja) * 1997-02-17 1998-08-25 Canon Inc 情報処理装置及びその制御方法
US6182066B1 (en) * 1997-11-26 2001-01-30 International Business Machines Corp. Category processing of query topics and electronic document content topics
JPH11250037A (ja) * 1998-02-26 1999-09-17 Sumitomo Metal Ind Ltd コンテンツ編集装置および記録媒体
US6421675B1 (en) * 1998-03-16 2002-07-16 S. L. I. Systems, Inc. Search engine
US6119124A (en) * 1998-03-26 2000-09-12 Digital Equipment Corporation Method for clustering closely resembling data objects
EP1006462A3 (en) * 1998-12-01 2005-03-30 Lucent Technologies Inc. A method and apparatus for persistent storage of web resources
JP3943801B2 (ja) * 2000-04-27 2007-07-11 株式会社東芝 原本性保証文書管理方法及び記憶媒体
JP4199916B2 (ja) * 2000-12-19 2008-12-24 株式会社日立製作所 文書管理方法および装置
US8001118B2 (en) * 2001-03-02 2011-08-16 Google Inc. Methods and apparatus for employing usage statistics in document retrieval
JP2004259296A (ja) * 2001-11-08 2004-09-16 Tatsuhiko Miyagawa 文書管理システム及び方法
US7158961B1 (en) * 2001-12-31 2007-01-02 Google, Inc. Methods and apparatus for estimating similarity
JP4084961B2 (ja) * 2002-05-31 2008-04-30 株式会社日立製作所 電子証跡保存方法および電子証跡保存システム
JP2004086841A (ja) * 2002-06-27 2004-03-18 Oki Electric Ind Co Ltd 情報処理装置および方法
US20050149507A1 (en) * 2003-02-05 2005-07-07 Nye Timothy G. Systems and methods for identifying an internet resource address
WO2005004386A1 (ja) * 2003-07-07 2005-01-13 Fujitsu Limited 認証装置
GB2405227A (en) * 2003-08-16 2005-02-23 Ibm Authenticating publication date of a document
US7797316B2 (en) * 2003-09-30 2010-09-14 Google Inc. Systems and methods for determining document freshness
US7346839B2 (en) * 2003-09-30 2008-03-18 Google Inc. Information retrieval based on historical data
US7689601B2 (en) * 2004-05-06 2010-03-30 Oracle International Corporation Achieving web documents using unique document locators
US8386453B2 (en) * 2004-09-30 2013-02-26 Google Inc. Providing search information relating to a document

Also Published As

Publication number Publication date
US20060248063A1 (en) 2006-11-02
MX2007013020A (es) 2008-03-18
CA2605252A1 (en) 2006-10-26
JP2008537264A (ja) 2008-09-11
WO2006113644A2 (en) 2006-10-26
EP1899861A2 (en) 2008-03-19
WO2006113644A3 (en) 2007-11-15
AU2006236418A1 (en) 2006-10-26
EP1899861A4 (en) 2010-09-22

Similar Documents

Publication Publication Date Title
BRPI0610286A2 (pt) sistema e método para eficientemente rastrear e datar conteúdo em espaços de documento dinámicos muito grandes
US20080097972A1 (en) System and method for efficiently tracking and dating content in very large dynamic document spaces
Wang et al. Efficient processing of XML path queries using the disk-based F&B index
US9898545B2 (en) Path-caching mechanism to improve performance of path-related operations in a repository
Mandhani et al. Query caching and view selection for XML databases
Chien et al. Efficient structural joins on indexed XML documents
US9015150B2 (en) Displaying results of keyword search over enterprise data
Grust Accelerating XPath location steps
US9171065B2 (en) Mechanisms for searching enterprise data graphs
US8892599B2 (en) Apparatus and method for securing preliminary information about database fragments for utilization in mapreduce processing
Chen et al. Mapping XML to a wide sparse table
Augsten et al. On-the-fly token similarity joins in relational databases
Wu et al. TwigTable: using semantics in XML twig pattern query processing
Chien et al. Supporting complex queries on multiversion XML documents
Aksoy et al. Reasoning with patterns to effectively answer XML keyword queries
Frey Indexing ajax web applications
Kim et al. DOM tree browsing of a very large XML document: Design and implementation
Wellenzohn et al. Robust and scalable content-and-structure indexing
Hu et al. Indexing XML data for path expression queries
Chen et al. Indexing XML documents for XPath query processing in external memory
Kaufmann et al. NoSQL Databases
Yeh et al. Indexing XML Objects with Ordered Schema Trees.
Hsu et al. An efficient XML indexing method based on path clustering
Carniel et al. Querying data warehouses efficiently using the Bitmap Join Index OLAP Tool
Mohammad et al. XML structural indexes

Legal Events

Date Code Title Description
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE 7A. ANUIDADE.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: REFERENTE AO DESPACHO 8.6 PUBLICADO NA RPI 2210 DE 14/05/2013.