3 research outputs found

    Indexing Highly Repetitive String Collections

    Full text link
    Two decades ago, a breakthrough in indexing string collections made it possible to represent them within their compressed space while at the same time offering indexed search functionalities. As this new technology permeated through applications like bioinformatics, the string collections experienced a growth that outperforms Moore's Law and challenges our ability of handling them even in compressed form. It turns out, fortunately, that many of these rapidly growing string collections are highly repetitive, so that their information content is orders of magnitude lower than their plain size. The statistical compression methods used for classical collections, however, are blind to this repetitiveness, and therefore a new set of techniques has been developed in order to properly exploit it. The resulting indexes form a new generation of data structures able to handle the huge repetitive string collections that we are facing. In this survey we cover the algorithmic developments that have led to these data structures. We describe the distinct compression paradigms that have been used to exploit repetitiveness, the fundamental algorithmic ideas that form the base of all the existing indexes, and the various structures that have been proposed, comparing them both in theoretical and practical aspects. We conclude with the current challenges in this fascinating field

    Efficient tree-structured categorical retrieval

    No full text
    Full version of a paper accepted for presentation at the 31st Annual Symposium on Combinatorial Pattern Matching (CPM 2020)We study a document retrieval problem in the new framework where DD text documents are organized in a {\em category tree} with a pre-defined number hh of categories. This situation occurs e.g. with taxomonic trees in biology or subject classification systems for scientific literature. Given a string pattern pp and a category (level in the category tree), we wish to efficiently retrieve the tt \emph{categorical units} containing this pattern and belonging to the category. We propose several efficient solutions for this problem. One of them uses n(logσ(1+o(1))+logD+O(h))+O(Δ)n(\log\sigma(1+o(1))+\log D+O(h)) + O(\Delta) bits of space and O(p+t)O(|p|+t) query time, where nn is the total length of the documents, σ\sigma the size of the alphabet used in the documents and Δ\Delta is the total number of nodes in the category tree. Another solution uses n(logσ(1+o(1))+O(logD))+O(Δ)+O(Dlogn)n(\log\sigma(1+o(1))+O(\log D))+O(\Delta)+O(D\log n) bits of space and O(p+tlogD)O(|p|+t\log D) query time. We finally propose other solutions which are more space-efficient at the expense of a slight increase in query time

    Efficient tree-structured categorical retrieval

    Get PDF
    Full version of a paper accepted for presentation at the 31st Annual Symposium on Combinatorial Pattern Matching (CPM 2020)We study a document retrieval problem in the new framework where DD text documents are organized in a {\em category tree} with a pre-defined number hh of categories. This situation occurs e.g. with taxomonic trees in biology or subject classification systems for scientific literature. Given a string pattern pp and a category (level in the category tree), we wish to efficiently retrieve the tt \emph{categorical units} containing this pattern and belonging to the category. We propose several efficient solutions for this problem. One of them uses n(logσ(1+o(1))+logD+O(h))+O(Δ)n(\log\sigma(1+o(1))+\log D+O(h)) + O(\Delta) bits of space and O(p+t)O(|p|+t) query time, where nn is the total length of the documents, σ\sigma the size of the alphabet used in the documents and Δ\Delta is the total number of nodes in the category tree. Another solution uses n(logσ(1+o(1))+O(logD))+O(Δ)+O(Dlogn)n(\log\sigma(1+o(1))+O(\log D))+O(\Delta)+O(D\log n) bits of space and O(p+tlogD)O(|p|+t\log D) query time. We finally propose other solutions which are more space-efficient at the expense of a slight increase in query time
    corecore