This document provides an annotated bibliography of the key papers that define and construct the SCDAWG and related structures.
Full Citation:
Blumer, A., Blumer, J., Haussler, D., McConnell, R., & Ehrenfeucht, A. (1987). "Complete Inverted Files for Efficient Text Retrieval and Analysis." Journal of the ACM, 34(3), 578-595. DOI: 10.1145/28869.28873
Key Contributions:
Used In This Implementation:
Key Definitions from the Paper:
imps(x) = γxβ where γ, β are maximal context strings
P(S) = {imps(x) : x ∈ F(S)} = set of prime subwords
C2S = (V, E_R, E_L) where V = P(S)
Full Citation:
Blumer, A., Blumer, J., Haussler, D., Ehrenfeucht, A., Chen, M.-T., & Seiferas, J. (1985). "The Smallest Automaton Recognizing the Subwords of a Text." Theoretical Computer Science, 40, 31-55. DOI: 10.1016/0304-3975(85)90157-4
Key Contributions:
Used In This Implementation:
Key Theorem:
Two strings x, y belong to the same equivalence class iff end-pos(x) = end-pos(y)
Full Citation:
Crochemore, M. (1986). "Transducers and Repetitions." Theoretical Computer Science, 45, 63-86. DOI: 10.1016/0304-3975(86)90041-1
Key Contributions:
endpos-based equivalence, independently of Blumer et al. (1985)freq / locations featuresendpos-refinement machinery reused throughout
the compact-DAWG and SCDAWG literatureUsed In This Implementation:
find_maximal_repeats
(Chapter 06-operations)Full Citation:
Inenaga, S., Hoshino, H., Shinohara, A., Takeda, M., & Arikawa, S. (2001). "On-Line Construction of Symmetric Compact Directed Acyclic Word Graphs." Proceedings of the 8th International Symposium on String Processing and Information Retrieval (SPIRE), 96-110. DOI: 10.1109/SPIRE.2001.989743
Key Contributions:
Used In This Implementation:
Key Theorem (Theorem 2):
The sext link of node v in CDAWG(w) corresponds to an edge
in CDAWG(w^rev), enabling O(n) SCDAWG construction.
Full Citation:
Inenaga, S., Hoshino, H., Shinohara, A., Takeda, M., Arikawa, S., Mauri, G., & Pavesi, G. (2005). "On-line construction of compact directed acyclic word graphs." Discrete Applied Mathematics, 146(2), 156-179. DOI: 10.1016/j.dam.2004.04.012
Key Contributions:
Used In This Implementation:
Key Algorithm (Figure 17):
update(c):
while not check_end_point(c):
if is_implicit(active_point):
r = split_edge()
else:
r = active_point.node
create_edge(r, sink)
update_suffix_links(r)
active_point = canonize(suffix(active_point))
Full Citation:
Crochemore, M., & Vérin, R. (1997). "Direct Construction of Compact Directed Acyclic Word Graphs." Combinatorial Pattern Matching (CPM 1997), Lecture Notes in Computer Science, vol. 1264, 116-129. Springer. DOI: 10.1007/3-540-63220-4_55
Key Contributions:
n + 1 nodes and 2n − 2 edgesUsed In This Implementation:
Full Citation:
Gerdjikov, S., Mihov, S., & Schulz, K. U. (2013). "A Symmetric Approach to Efficiently Computing Edit-Distance-Based Similarity of Words in a Dictionary." Language Processing and Knowledge in the Web, 70-80.
Key Contributions:
Used In This Implementation:
V \to V \cdot \sigma$V \to \sigma \cdot V$Key Requirements:
(1a) Given V ∈ Σ*, decide if V is a factor of some dictionary word
(1b) Right extension: given V is a factor, navigate to V·σ
(1c) Left extension: given V is a factor, navigate to σ·V
Full Citation:
Weiner, P. (1973). "Linear Pattern Matching Algorithms." 14th Annual Symposium on Switching and Automata Theory, 1-11.
Contribution: First linear-time suffix tree construction algorithm.
Full Citation:
McCreight, E. M. (1976). "A Space-Economical Suffix Tree Construction Algorithm." Journal of the ACM, 23(2), 262-272.
Contribution: Simplified suffix tree construction with explicit suffix links.
Full Citation:
Ukkonen, E. (1995). "On-line Construction of Suffix Trees." Algorithmica, 14(3), 249-260.
Contribution: On-line suffix tree construction, inspiring similar CDAWG approaches.
| Paper | Used For |
|---|---|
| Blumer (1987) | SCDAWG definition, IS features, prime subwords |
| Blumer (1985) | Equivalence class theory, suffix links |
| Crochemore (1986) | Factor-transducer foundations, repetition/maximal-repeat reasoning |
| Inenaga (2001) | Sext link insight, left extension construction |
| Inenaga (2005) | On-line CDAWG algorithm, multi-string support |
| Crochemore & Vérin (1997) | Space bounds, compaction understanding |
| Gerdjikov (2013) | WallBreaker requirements, validation |
We combine:
This yields an SCDAWG that:
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |