Indexação de termos - Term indexing

Na ciência da computação , um índice de termos é uma estrutura de dados para facilitar a pesquisa rápida de termos e cláusulas em um programa lógico , banco de dados dedutivo ou provador automatizado de teoremas .

Visão geral

Muitas operações em provadores automáticos de teoremas requerem pesquisa em enormes coleções de termos e cláusulas. Essas operações normalmente se enquadram no seguinte esquema. Dada uma coleção de termos (cláusulas) e um termo de consulta (cláusula) , encontre em alguns / todos os termos relacionados de acordo com uma determinada condição de recuperação. As condições de recuperação mais interessantes são formuladas como a existência de uma substituição que relaciona de maneira especial a consulta e os objetos recuperados . Aqui está uma lista de condições de recuperação frequentemente usadas em provadores:

  • termo é unificável com termo , ou seja, existe uma substituição , tal que =
  • termo é uma instância de , ou seja, existe uma substituição , tal que =
  • termo é uma generalização de , ou seja, existe uma substituição , tal que =
  • cláusula cláusula subsume cláusula , ou seja, existe uma substituição , tal que é um subconjunto / submultiset de
  • cláusula é subsumida por , ou seja, existe uma substituição , tal que é um subconjunto / submultiset de

Na maioria das vezes, estamos realmente interessados ​​em encontrar as substituições apropriadas explicitamente, junto com os termos recuperados , ao invés de apenas estabelecer a existência de tais substituições.

Muitas vezes, os tamanhos dos conjuntos de termos a serem pesquisados ​​são grandes, as chamadas de recuperação são frequentes e o teste de condição de recuperação é bastante complexo. Em tais situações, a pesquisa linear em , quando a condição de recuperação é testada em todos os termos de , torna-se proibitivamente cara. Para superar esse problema, estruturas de dados especiais, chamadas de índices , são projetadas para oferecer suporte à recuperação rápida. Essas estruturas de dados, junto com os algoritmos de acompanhamento para manutenção e recuperação de índices, são chamadas de técnicas de indexação de termos .

Técnicas clássicas de indexação

As árvores de substituição superam a indexação de caminho, a indexação da árvore de discriminação e as árvores de abstração.

Um índice de termos de árvore de discriminação armazena suas informações em uma estrutura de dados trie .

Técnicas de indexação modernas

Referências

Leitura adicional

  • P. Graf, indexação de termos, notas de aula em ciência da computação 1053, 1996 (visão geral ligeiramente desatualizada)
  • R. Sekar e IV Ramakrishnan e A. Voronkov, Indexação de termos, em A. Robinson e A. Voronkov, editores, Handbook of Automated Reasoning , volume 2, 2001 (visão geral recente)
  • WW McCune, Experiments with Discrimination-Tree Indexing and Path Indexing for Term Retrieval, Journal of Automated Reasoning, 9 (2), 1992
  • P. Graf, Substitution Tree Indexing, Proc. of RTA, Lecture Notes in Computer Science 914, 1995
  • M. Stickel, The Path Indexing Method for Indexing Terms, Tech. Rep. 473, Artificial Intelligence Center , SRI International , 1989
  • S. Schulz, Simple and Efficient Clause Subsumption with Feature Vector Indexing, Proc. do workshop IJCAR-2004 ESFOR, 2004
  • A. Riazanov e A. Voronkov, Partially Adaptive Code Trees, Proc. JELIA, Notas de aula em Inteligência Artificial 1919, 2000
  • H. Ganzinger e R. Nieuwenhuis e P. Nivela, Fast Term Indexing with Coded Context Trees, Journal of Automated Reasoning, 32 (2), 2004
  • A. Riazanov e A. Voronkov, Efficient Instance Retrieval with Standard and Relational Path Indexing, Information and Computation, 199 (1-2), 2005