KR101068678B1 - 스트링들을 검색하기 위한 방법 및 배열 - Google Patents

스트링들을 검색하기 위한 방법 및 배열 Download PDF

Info

Publication number
KR101068678B1
KR101068678B1 KR1020057016418A KR20057016418A KR101068678B1 KR 101068678 B1 KR101068678 B1 KR 101068678B1 KR 1020057016418 A KR1020057016418 A KR 1020057016418A KR 20057016418 A KR20057016418 A KR 20057016418A KR 101068678 B1 KR101068678 B1 KR 101068678B1
Authority
KR
South Korea
Prior art keywords
strings
string
database
query
errors
Prior art date
Application number
KR1020057016418A
Other languages
English (en)
Other versions
KR20060002792A (ko
Inventor
세바스티앙 에그너
요하네스 에이치. 엠. 코스트
마셀 반 부렌
Original Assignee
파우스, 스테판, 씨.
코닌클리케 필립스 일렉트로닉스 엔.브이.
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 파우스, 스테판, 씨., 코닌클리케 필립스 일렉트로닉스 엔.브이. filed Critical 파우스, 스테판, 씨.
Publication of KR20060002792A publication Critical patent/KR20060002792A/ko
Application granted granted Critical
Publication of KR101068678B1 publication Critical patent/KR101068678B1/ko

Links

Images

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/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Abstract

본 발명은 다수의 긴 스트링들 또는 긴 스트링으로 구성된 데이터베이스(80)내에서 질의 스트링(34)과 정확한 또는 부분적인 일치를 갖는 최종 수의 결과 스트링들(30-33)을 검색하는 방법에 관한 것으로, 상기 방법은 질의 스트링을 제 1 수의 입력 질의 스트링들(35, 36, 37)로 분할하는 단계; 상기 제 1 수의 입력 질의 스트링들 내의 각 스트링에 대하여, 제 2 수의 이웃 스트링들(각각, 38-41, 42-45, 44-49)을 결정하는 단계로서, 상기 제 2 수의 이웃 스트링들 내의 각 스트링이 미리 결정된 제 1 수의 에러들을 갖는, 상기 이웃 스트링들 결정 단계; 검색 방법에 기초하여 상기 제 2 수의 이웃 스트링들 내의 각 스트링에 대하여 제 3 수의 정확한 일치들(50-61, 70-74)에 대해 데이터베이스를 검색하는 단계; 데이터베이스로부터의 상기 검색된 정확히 일치된 스트링들을 제 4 수의 중간 스트링들(29, 30, 32, 33, 34)로 연쇄시키는 단계로서, 상기 중간 스트링들 각각내에 포함된 상기 검색된 정확히 일치된 스트링들(50-61, 70-74)은 상기 데이터베이스 내에서 서로 연속하는, 상기 중간 스트링들로 연쇄시키는 단계; 및 상기 제 4 수의 중간 스트링들에 기초하여 최종 수의 결과 스트링들(30-33)을 결정하는 단계로서, 최종 수의 결과 스트링들 내의 각 스트링은 상기 질의 스트링(34)에 비해 미리 결정된 제 2 수의 에러들의 최대치를 갖는, 상기 결과 스트링들 결정 단계를 포함한다. 이는 상기 질의 스트링에 관하여 단지 미소한 에러들을 포함하는 부분적 일치 또는 완전한 일치를 가능하게 하며, 비교적 낮은 처리력을 사용하여 보다 큰 데이터베이스 내에서의 신속한 검색을 가능하게 한다.
질의 스트링, 중간 스트링, 일치, 배열, 데이터베이스

Description

스트링들을 검색하기 위한 방법 및 배열{Method and arrangement for searching for strings}
본 발명은 긴 스트링 또는 다수의 긴 스트링들로 구성된 데이터베이스 내의 질의 스트링(query string)과 부분적 또는 정확한 일치를 가지는 최종 수의 결과 스트링들을 검색하는 방법에 관한 것이다.
본 발명은 또한 검색 엔진에 관한 것이다.
본 발명은 또한 툴에 관한 것이다.
본 발명은 또한 이 방법을 수행하기 위한 컴퓨터 시스템에 관한 것이다.
본 발명은 또한 이 방법을 수행하기 위한 컴퓨터 프로그램 제품에 관한 것이다.
부가적으로 본 발명은 또한 배열에 관한 것이다.
US5,963,957호는 음악 데이터베이스를 가지는 정보 처리 시스템을 개시한다. 상기 음악 데이터베이스는 음악 악보들의 동음 기준 시퀀스들을 기억한다. 기준 시퀀스들은 모두 사전적으로 기억되도록 동일한 스케일 정도로 정규화되어 있다. 입력 음악 악보들의 스트링과 특정 기준 시퀀스 사이의 일치를 발견하기 위해 소위 N-아리(N-ary)가 적용된다. 여기서, 상기 정보 처리 시스템은 일치하는 기준 시퀀 스와 연계된 서지 정보를 제공한다.
Du, D. W. 및 Chang, S. C.(1994)의 "매우 신속한 근사 스트링 일치 알고리즘들을 설계하기 위한 접근법(IEEE Transections on Knowledge and Data Engineering, 6, 4, 620-633)"에는 다른 종류의 스트링 일치가 추가로 기술되어 있다.
본 기술에서, 검색 방법들은 정확한 일치를 위한 알고리즘들을 사용한다. 그러나, 알려진 검색 방법들은 통상적으로 정확한 일치를 시도한다. 즉, 검색 또는 일치가 완전한 일치를 발견하기 위해 수행된다.
그러나, 이는 단지 완전한 일치만이 검색되는 것은 다수의 실제 응용처들에서 문제가 된다. 결과적으로, 이/이들이 단지 부수적인 에러들만을 포함하여 이/이들이 유용할 수 있는 경우라도, 어떠한 일치 결과(들)도 제공되지 않는 부가적인 문제점이 있다.
다른 문제점은 대형 데이터베이스의 검색이 긴 시간을 소요하며, 대응적으로, 처리 파워의 집약적인 사용을 필요로 한다는 것이다.
다수의 실제 응용처들에서, 부분적 일치(완전한 일치 대신)를 달성하는 것으로 충분하다. 이는 질의 스트링-검색 시도를 위한 입력으로서- 또는 결과적인 일치 스트링 중 어느 하나, 또는 양자 모두가 보다 적은 중요한 에러들을 가질 수 있지만, 여전히 어떠한 결과도 전혀 없는 것 보다는 부분적 일치 결과를 얻는 것이 보다 양호하기 때문에 그러하다. 상기 에러들은 일반적으로 질의 스트링 내에 또는 검색되는 데이터베이스 내에 중 어느 하나에 포함된 부적합한 데이터에 의해 유발 된다.
상기 및 다른 문제점들은 상기 방법이 하기의 단계들을 포함할 때 해결된다.
- 질의 스트링(query string)을 제 1 수의 입력 질의 스트링들로 분할하는 단계;
달리 말해서, 이 단계에서, 질의 스트링은 상기 제 1 수의 서브스트링들의 작은 단편들로, 즉, 상기 입력 질의 스트링들로 나누어진다.
- 상기 제 1 수의 입력 스트링들 내의 각 스트링에 대하여, 제 2 수의 이웃 스트링들을 결정하는 단계로서, 상기 제 2 수의 이웃 스트링들 내의 각 스트링은 미리 결정된 제 1 수의 에러들을 갖는, 상기 이웃 스트링들 결정 단계;
달리 말해서, 이 단계에서, 제 2 수의 이웃 스트링들은 질의 스트링의 길이, 적용된 스트링 알파벳내의 서로 다른 이산 심볼들의 크기 및 이웃 스트링들 내에 허용된 에러들의 수들에 의존한다.
일반적으로, 상기 제 1 수의 입력 스트링들 내의 각 스트링에 대하여, 상기 제 2 수의 이웃 스트링들이 결정된다. 이들 각각은 독립적으로, 미리 결정된 제 1 수의 에러들을 가지며, 이는 0과 같거나 그보다 크다.
- 검색 방법에 기초하여 상기 제 2 수의 이웃 스트링들 내의 각 스트링에 대하여 제 3 수의 정확한 일치(match)들에 대하여 데이터베이스를 검색하는 단계;
여기서, 주어진 검색 방법에 기초하여 상기 제 2 수의 이웃 스트링들 내의 각 스트링에 대하여 다수(제 3 수)의 정확한 일치들에 대해 데이터베이스가 검색되며, 검색 방법은 q-그램 인덱스 방법, 접미사 트리 방법 또는 해시 방법이 될 수 있다.
- 데이터베이스로부터의 상기 검색된 정확히 일치된 스트링들을 제 4 수의 중간 스트링들로 연쇄시키는 단계로서, 상기 중간 스트링들 각각내에 포함된 상기 검색된 정확히 일치된 스트링들은 상기 데이터베이스 내에서 서로 연속하는, 상기 중간 스트링들로 연쇄시키는 단계; 및
- 상기 제 4 수의 중간 스트링들에 기초하여 최종 수의 결과 스트링들을 결정하는 단계로서, 최종 수의 결과 스트링들 내의 각 스트링은 상기 질의 스트링과 비교된 미리 결정된 제 2 수의 에러들의 최대치를 갖는, 상기 결과 스트링들 결정 단계다.
최종 두 단계들에 대해, 이들은 도 5에서, 즉, 단계 400 및 500에서 설명된다.
이 방법의 결과로서, 상기 최종 수의 결과 스트링들 각각은 (서두에 언급한)상기 질의 스트링에 대해 정확한 또는 부분적 일치이다.
그에 의해, 단지 미소한 에러들을 포함하는 완전한 일치 또는 부분적 일치 획득할 수 있다.
또한, 이 방법은 처리력의 비교적 낮은 사용으로 대형 데이터베이스들(완전 또는 부분적 일치들에 대해)을 신속하게 검색할 수 있다.
상기 배열, 툴, 검색 엔진, 컴퓨터 시스템은 각각 동일한 장점들을 제공하며, 본 방법에 관하여 전술된 바와 동일한 이유들 때문에 동일한 문제점(들)을 해결한다.
본 발명은 바람직한 실시예들과 관련되고 도면을 참조하여 이하에서 더 자세히 설명될 것이다.
도 1은 종래 기술의 일반적 설명을 도시하는 도면.
도 2는 질의 스트링을 분할하는 방식을 도시하는 도면.
도 3은 질의 스트링을 분할 및 후속 검색하는 실용적 세부적 실시예를 도시하는 도면.
도 4는 질의 스트링을 분할 및 검색하는 일반적인 예시적 방식을 도시하는 도면.
도 5는 최종 수의 결과 스트링들을 검색하는 방법을 도시하는 도면.
도 6은 검색을 위한 배열을 도시하는 도면.
도면 전반에 걸쳐, 동일 참조 번호들은 유사 또는 대응 특징들, 기능들, 스트링들 등을 나타낸다.
도 1은 본 기술의 일반적 설명을 보여준다. 도면은 스트링 데이터베이스, 참조번호 80내에서 검색되는 질의 스트링 'abacababc'을 도시한다. 최대 하나의 에러(k=1)를 허용하는 질의 스트링의 4개 근사 일치들의 데이터베이스 위치들이 표시되어 있다. 질의 스트링, 참조번호 34, 'abacababc'는 3-문자 알파벳 {'a', 'b', 'c'}로 구성된다. 단 하나의 에러가 허용되는 경우(k=1), 추가된 심볼을 포함하는 근사 일치(예로서, 참조 번호 30 : 'abacadabbc')가 발견되고, 삭제된 심볼을 포함하는 근사 일치(예로서, 참조 번호 31 : 'abcababc'), 치환된 심볼을 포함하는 근사 일치(예로서, 참조 번호 32 : 'abacadcbc' 및 정확한 일치(즉, 참조 번호 33 : 'abacadabc')이 발견된다. 이는 본 기술에서 스트링을 검색하기 위해 일반적으로 알려져 있으며, 전체 질의 스트링이 한번에 검색된다.
도 2는 질의 스트링을 분할하는 일 방식을 도시한다. 문헌으로부터 알려진 효율적인 검색 방법은 정확한 일치를 위한 급속 알고리즘들, 즉, 어떠한 에러도 허용하지 않는 검색(또는, k=0)의 사용에 집중되어 있다. 이는 단지 (정확한)일치를 위한 위치, 즉, 도 1의 참조 번호 33만을 리턴한다. 접미사 트리들 또는 q-그램들 같은 특수화된 인덱스 구조들은 급속 정확 일치 알고리즘들의 구현을 가능하게 하기 위해 스트링 데이터베이스, 참조 번호 80으로부터 (사전 프로세서 같은)오프라인 구축되는 것을 필요로 한다. 필수적으로, 이들 구조들은 데이터베이스 내에서 발생하는 각 작은 서브스트링의 모든 위치들을 유지한다. 사실상, 이는 검색 프로세스가 무관한 부분들을 버리면서 데이터베이스 내의 관련 스폿들로 즉시 점프할 수 있다는 것을 의미한다. q-그램 인덱스 방법이 사용되며, 그 이유는 이것이 다른 방법들 보다 공간 효율적(즉, 보다 적은 메모리를 사용)이며, 다른 목적에 쉽게 적응될 수 있기 때문이다. q-그램은 데이터베이스 내에서 발생하는 길이 q>0의 모든 서브스트링들의 모든 위치를 유지한다. 예로서, 데이터베이스가 스트링'abababcabcabacab......'로 이루어지는 경우, q=4를 갖는 q-그램은 'abab', 'baba, 'abab', 'babc', 및 'abca' 같은 길이 4의 모든 서브스트링들의 시작 위치들을 수집한다. 이들 서브스트링들은 함수를 사용함으로써 인덱스되고, 쉽게 억세스할 수 있는 데이터구조로 나열 및 정렬된다. 예로서, 'abab' 같은 유사한 서브스트링들은 동일 인덱스(버켓이라 지칭됨)에서 종결한다. q-그램은 인덱스 함수를 연산함으로써 길이 m≤q의 질의의 모든 정확한 일치들의 데이터베이스 위치를 획득하고, 버켓의 구성원들을 검색할 수 있게 한다. q 보다 긴 질의들은 질의 중 길이 q의 접두사들만이 버켓내에 존재할 수 있기 때문에 부가적인 점검이 필요하다. q-그램들을 사용하기 위한 표준 방식은 1994년에 Myers에 의해 개시되었다.
상기 q-그램 방법에 대한 대안으로서, 접미사 트리 방법 또는 해시 방법이 적용될 수 있다.
정확한 일치 방법들이 근사 일치에 사용되는 경우, 허용되는 에러들에 대하여 변경이 이루어져야 한다. 예로서, 본 발명에 따라서, 원본 질의(스트링)내의 제한된 수의 위치들상에서 서로 다른 스트링들의 집합이 발생될 수 있다. 이들 스트링들은 질의의 이웃들이라 지칭된다. 따라서, 이웃들은 질의의 에러들을 나타낸다. 공식적으로, 스트링 S의 k-이웃은 S에 관하여 최대 k 에러들을 갖는 스트링들의 집합으로서 규정된다. 예로서, 질의 'abba'가 2 문자 알파벳 {'a', 'b'}으로 구성되는 경우에, 최대 1 에러(즉, 에러 레벨 k≤1)를 가지는 이웃들의 완전한 집합은 원본 'abba', 삭제를 갖는 스트링들 'abb', 'aba' 및 'bba', 추가를 갖는 스트링들 'aabba', 'babba', 'abbba' 'ababa', 'abbaa', 'abbab' 및 치환을 갖는 모든 스트링들 'bbba', 'aaba', 'abaa' 및 'abbb'로 구성된다.
주어진 스트링의 이웃들은 효과적으로 발생될 수 있다(Myers, 1994). 이웃들 이 q-그램 방법을 사용하여 데이터베이스 내에 위치되는 경우, 이들 정확한 일치들은 원본 질의의 근사 일치들에 대응한다.
그러나, 조사 대상 이웃들의 수는 조사 대상 질의들이 길면 길수록, 알파벳이 보다 많으면 많을수록, 그리고, 에러 레벨이 보다 높으면 높을수록 지수함수적이다. 이 문제점을 해결하고, 검색 속도의 이득을 얻기 위해서, 질의는 먼저 보다 작은 서브스트링들로 분할되며, 각 서브 스트링에 대하여, 그 이웃들의 집합이 발생된다. 그후, 모든 이들 이웃들이 q-그램들 또는 언급한 다른 검색 방법들을 사용하여 정확하게 검색된다. 데이터베이스 내의 그 정확한 일치들은 이제, 원본 질의의 부분적 근사 일치들에 대응한다.
질의를 3-문자 알파벳 {'a', 'b', 'c'}로 구성된 'abacababc'라 하고, 3의 에러 레벨(k=3)을 허용하기로 한다. 질의들내의 에러들은 소정의 위치에서 발생할 수 있다는 것을 주의하여야 한다. 예로서, 에러들은
- 시작에서 모두(예로서, 'ccccababc'는 이때, 실제로 찾고 있는 스트링이 될 수 있다)
- 중간에서 모두(예로서, 'ababbcabc')
- 끝에서 모두(예로서, 'abacabbca')
- 또는 질의내에 균등 분포(예로서, 'abccacabb')될 수 있다.
질의들이 3개 부분들(p=3, 이는 본 예의 질의 'abacababc'에서 서브스트링들 'aba', 'cab', 'abc'를 초래함)로 분할되는 경우, 이웃들의 집합이 각 부분에 대하여 생성되고, 각 이웃이 독립적으로 데이터베이스에서 검색되며, 원본 질의가 어떻 게 보이는지에 대한 전후관계는 소실된다. 이를 이해하기 위해, 이웃들이 데이터베이스 내의 소정의 위치에서 발생할 수 있다는 것을 주의하여야 한다. 이웃들은 함께 근접하게 나타나거나 순서대로 있을 필요가 없으며, 이는 원본 질의의 근사 일치를 형성하기 위해 필요하다. 달리 말해서, 본 예의 질의 'abacababc'에 대하여 이웃을 위해 정확한 일치가 발견될 때, 이것이 질의의 제 1, 제 2 또는 제 3 부분 중 어떠한 것을 반영하는지 및 다른 부분들에 대하여 어떠한 종류의 이웃들이 발견되는지는 알 수 없다. 이 정보를 밝혀내기 위해, 필요한 조치가 취해져야 한다. 문헌에서 설명된 전자의 방법들은 여기에서 정지한다. 즉, 이들은 질의를 풀기 위해 유용한 후보들로서 이웃들의 각 정확한 일치를 고려한다. 대조적으로, 크로스커팅(cross-cutting)의 본 발명은 이웃들을 검색하면서, (에러) 전후관계를 재형성함으로써 부가적인 필터 단계를 수행한다. 버려질 수 있는 이웃들은
- 데이터베이스 내의 다른 이웃들과 순서대로 나타나지 않는 것들, 및
- 원본 질의의 근사 일치가 될 수 없는 데이터베이스 내의 다른 이웃들과 순서를 형성하는 것들이다.
이들 관찰들은 본 발명을 위한 중앙 '크로스-커팅' 보조정리에서 고려되며, 이는 p 부분들로 질의 스트링을 분할하고, 최대 ki 에러들을 갖는 각각을 부분들에 대하여 개별적으로 검색하는 경우, 관련 부분들의 성공적 검색에 대한 보증을 제공한다.
크로스-커팅 보조정리 : 이들 사이의 에러들의 수는 편집 거리 에 관하여 k 와 같거나 그 보다 작거나, 수식적으로 ∂(A,B) ≤k가 되도록 A 및 B가 두 개의 스트링들이 되는 것으로 한다. A=A1 A2 ... Ap라 하고, A를 스트링들 Ai에 대하여, 그리고, 소정의 p>1에 대하여 p 부분들로 분할되게 한다. K=(k1, k2, ..., kp)를 C=Σp i=1 ki+p-k≥1이 되도록하는 비음수들의 소정의 시퀀스라 한다. 이때, 분할 B=B1B2...Bp, 및 Σl i=1 kji+1-∂(Aji, Bji))≥C이 되도록하는 J=(j1, j2, ..., jl)에 의해 인덱싱되는 부분들의 부분집합이 나타난다.
증명 : B가 Σp i=1 ∂(Ai, Bi) = ∂(A, B)가 되도록 p 부분들로 분할될 수 있다는 것은 명백하다 : 에러들이 대응 부분들에 위치되고, 부가적인 에러들을 도입하지 않는 것으로 본다. 이런 B의 분할 및 ki + 1 ≥∂(Ai, Bi)인 부분집합 J 내의 모든 부분들 i를 선택한다. 이제, 본 경우를 증명하는 이하를 유도할 수 있다.
Figure 112005049366917-pct00001
보조정리는 본 발명의 필터레이션 조건으로서 사용되며, A는 질의 스트링이고, B는 데이터베이스 스트링이다. 보조정리는 데이터베이스 내의 이웃들의 시퀀스가 나타내는 에러들의 수(e)가 특정 기준을 충족시켜야 한다는 것을 말한다. 이 기준에 대하여, ki는 질의의 각 서브스트링(i)에 허용되는 사전규정된 에러들의 수로서 적용된다. 이때, 에러 합
Figure 112005049366917-pct00002
는 여전히 질의의 근사 일치의 부분이 되 도록 적어도 상수
Figure 112005049366917-pct00003
가 되어야만 한다. 이들 공식에서, p는 질의 스트링들이 분할되는 서브스트링들의 수이고, ki는 각 서브스트링 i에 허용되는 에러들의 수이며, k는 에러들의 최대 총 수이다(에러 레벨).
에러 합
Figure 112009011635694-pct00004
을 계산하고, 이를 C와 비교하는 것은 크로스-커팅 알고리즘의 근거이다. 요약하여, 이웃의 새로운 일치가 데이터베이스 내의 특정 위치에서 발견될 때마다, 그 데이터베이스 위치에 선행하는 다른 이웃들의 매치들이 존재하는지 여부가 점검된다. 특수화된 데이터 구조는 효율적인 방식으로 데이터베이스 내의 이웃들의 모든 위치들의 추적을 유지한다. 그 후, 이들 연속적 일치들(이들이 데이터베이스 내에서 나타날 때)의 연쇄가 결국 완전한 질의의 근사 일치를 초래할 수 있는지 여부가 확인된다. 에러 합이 임계치(C)와 같거나 그 보다 큰 경우, 이들 이웃들은 여전히 질의의 근사 일치의 부분이 되는 관련 후보들이다. 에러 합이 이 임계치(C) 보다 낮은 경우, 모든 수반된 이웃들이 버려질 수 있다.
도 2에 도시된 바와 같이, 질의 'abacababc', 참조 번호 34는 3개 서브스트링들로 분할된다(p=3). 단 3개의 에러들만이 허용된다는 것(k=3)을 상기하라.
Figure 112005049366917-pct00005
Figure 112005049366917-pct00006
을 규정한다. 각 서브스트링에 대하여, 이웃들의 집합, 참조번호 38-41, 42-45 및 46-49 각각이 발생되며, 이들은 정확히 데이터베이스 내에 있는 것으로 간주된다. 이웃 검색의 프로세스에서, 현재까지 발견된 모든 이웃들의 위치들이 유지되고, 연속 이웃들의 연쇄가 질의의 근사 일치의 부분이 되 는지 아닌지 여부가 판정된다. 이웃들을 위한 두 개의 일치들 'aba' 및 'cab'(도 2의 참조 번호 30 참조)는 질의 스트링의 최초 두 개의 서브스트링들의 에러 없는 일치를 나타낸다(즉, e=0이고,
Figure 112005049366917-pct00007
). 질의의 유효한 근사 일치가 발견되었다는 것을 이미 알고 있으며, 최악의 경우에, 3 에러들을 나타내는 이웃이 우리의 필터레이션 조건이 여전히 유지되는 이들 두 일치들을 승계할 수 있다. 이웃들을 위한 두 개의 일치들 'abc' 및 'caa'(도 2의 31 참조)은 2 에러들(즉, e=2 이며
Figure 112005049366917-pct00008
). 이 시퀀스는 여전히 질의의 유효한 근사 일치가 되기 위해, 단지 최대 1 에러를 나타내는 이웃에 의해서만 승계된다. 이웃들 'abc' 및 'cbc' ( 도 2의 참조 번호 32 참조)를 위한 매치들은 이미 4 에러들(즉, e=4이고,
Figure 112005049366917-pct00009
이다. 이 시퀀스는 질의의 근사 일치의 부분이 될 수 없다는 것은 이미 알고 있다. 이것이 에러가 없는 이웃에 의해 승계되는 경우에도 필터레이션 조건이 유지되지 않는다.
보다 상세한, 그리고, 포괄적인 상기 Q-그램들 및 상기 이웃 생성을 각각 설명하기 위해, 이하의 장들은 본 기술의 숙련자들이 본 발명을 구현할 수 있게 한다.
Q- 그램들 또는 q-그램 인덱스 방법 :
q-그램들에서, q 보다 크지 않는 스트링의 모든 경우수들을 매우 신속히 발견할 수 있다. 이들 q-그램들은 하기의 방식으로 구성된다.
0 내지 σ-1을 위해, Σ내의 심볼들의 바이젝션(φ)을 고려한다. 함수(φ)는 자연적으로 재귀 규정 φ(Pα) = σφ(P) + φ(α)를 갖는 스트링들로 확장되며, 여기서, P는 Σ를 초과하는 스트링이며, α는 Σ내의 심볼이다. b∈[0, σq-1]에 대하여, Bucket(b) = {i:φ(αiαi+1...αi+q-1) = b}라 한다. 즉, Bucket(b)는 그 φ-코드가 b인 고유 q-심볼 스트링의 A내의 각 경우의 최좌측 문자의 인덱스들을 제공한다.
인덱스는 하기의 방식으로 생성된다. 먼저, φi = φ(αiαi+1...αi+m-1)이 모든 인덱스(i)에 대해 계산된다. 이는 φi = αiσm-1+[φi+1/σ]인 관찰을 사용하는 A의 O(n) 스윕에서 이루어진다. O(nlog(n))-급속 정렬에서, 이제, 목록이 생성될 수 있으며, Indices=<i1, i2, ..., in>은
Figure 112005049366917-pct00010
이 되도록 한다. 마지막으로, 어레이 Header[b] = min{j:φIndices[j] = b}가 Indices의 O(n) 스윕에서 발생된다. 어레이들 Indices 및 Header는 Bucket 집합들의 실현을 제공한다. 즉, Bucket[b] = {Indices[j] : j∈[Header[b], Header[b+1]-1]}.
질의 P가 길이 m≤q이고, 이때, P의 경우들의 모든 인덱스들이 b∈[φ(P)σq-m, (φ(P)+1)σq-m-1]에 대하여 정확히 Bucket(b)의 콘텐트이다.
질의 P가 q 보다 큰 경우에, P의 경우들은 Bucket(φ(Pq))의 것들의 부분집합이어야만 한다는 것이 알려져 있으며, 여기서 Pq는 P의 최초 q 심볼들로 구성되는 스트링을 나타낸다.
이웃 발생 :
스트링 P의 (완전한) k-이웃은 P로부터의 k와 같거나 그보다 작은 (편집-)거리를 갖는 모든 스트링들의 집합으로서 규정된다. 즉, Nk(P) = {Q:∂(Q,P)≤k}.
스트링 P의 압축된 k-이웃은 그 이웃내에 접두사를 갖지 않는 P의 완전한 k-이웃내의 모든 스트링들의 집합으로서 규정된다. 즉, Ck(P) = {Q:Q∈Nk(P) 이며, Q의 모든 접두사는 Nk(P)내에 존재하지 않음}.
마이어의 알고리즘은 알파벳으로부터 워드들을 발생시키고, 현재 발생된 워드 및 P의 동적 프로그래밍 매트릭스의 대응 열들을 계산함으로써 효과적으로 스트링의 압축된 k-이웃을 계산한다. 현재 열의 최종 엔트리가 k와 같은 워드의 경우, 이때, 압축된 k-이웃의 워드가 도달되어 있다. 모든 엔트리들이 k 보다 큰 경우에, 알고리즘은 역행될 수 있다. 오류 링크들의 사용은 알고리즘이 k-이웃내에 존재하지만 압축된 것 내에는 존재하지 않는 워드들을 누락하는 것을 방지한다.
본 발명은 데이터베이스 내의 분할들의 모든 정확한 일치들을 발견하기 위해 스트링의 완전한 k-이웃을 필요로하기 때문에, 마이어의 알고리즘이 채택되었다.
도 3은 질의 스트링의 분할 및 후속 검색의 실용적인 구체적 예시적 방식을 도시한다.
질의 스트링, 참조번호 34가 다시 데이터베이스, 참조번호 80에 대하여 검색된다. 본 발명에 따라서, 상기 질의 스트링은 다수의 입력 질의 스트링들로 분할되며, 단순화를 위해 여기서 번호 트리가 선택되고, 이는 1 보다 큰 소정의 다른 번호일 수 있다. 본 예에서, 상기 입력 질의 스트링들은 시작 부분, 중간 부분 및 "끝 부분(end part)"-부분을 위해 각각 참조 번호 35, 36, 37로 표시되어 있다.
상기 수의 입력 질의 스트링들에 의해, 다수의 이웃 스트링들-여기서는 4개-이 각 입력 질의 스트링에 대하여 규정된다. 즉, 참조 번호 35의 입력 질의 스트링에 대하여, 참조 번호 38, 39, 40 및 41의 대응하는 4개 이웃 스트링들이 결정된다.
대응하여, 참조 번호 36의 "중앙 부분(mid part)" 입력 질의 스트링에 대하여, 참조 번호 42, 43, 44, 45의 대응하는 4개 이웃 스트링들이 결정된다.
대응하여, 참조 번호 37의 "끝 부분" 입력 질의 스트링에 대하여, 참조 번호 46, 47, 48 및 49의 대응하는 4개 이웃 스트링들이 결정된다.
참조 번호 80의 점선의 우측에 대하여, 도면의 이 부분에서, 데이터베이스-이전에 역시 동일 참조 번호로 표시된-가 검색, 즉, 상기 이웃 스트링들, 참조 번호 38-49 각각이 정확한(서브스트링) 일치(들)를 발견하기 위해 검색되는 것을 의미한다.
이들은 화살표를 따라 보다 우측으로 감으로써, 참조 번호 38의 예에서, 제 1 부분 이웃 스트링은 참조 번호 50의 정확한 일치를 제공하고, 참조 번호 47의 다른 예에서, 끝 부분 이웃 스트링은 참조 번호 58 및 61의 일치를 제공하고, 참조 번호 45에서, 중간 부분 이웃 스트링은 참조 번호 72의 "비-유용(non-used)" 결과를 제공한다.
그리고, 최종 검색 결과(들)를 달성하기 위해, 다소 일치하는 질의 스트링, 참조 번호 34; 보다 더 우측으로 화살표를 따라 가면, 즉, 참조 번호 30-33은 각각 4개의 최종 결과들 각각을 나타낸다. 볼 수 있는 바와 같이, 상기 최종 결과들 각각은 항상 서브스트링들, 참조 번호 50-33에서 시작하여 검색된 것과, 중간 검색된 서브스트링, 참조 번호 54-57의 것 및 "끝 부분" 검색 서브스트링들, 참조 번호 58-61의 것으로 항상 구성된다. 이들이 연속하는 방식 및 기준들을 도 5에 의거하여 설명한다.
도 4는 질의 스트링을 분할 및 검색하는 일반적인 예시적 방식을 도시한다. 도 4는 도 3에 대응하지만, 그러나, 일반적으로, ".." 's는 소정의 참조 부호의 소정의 스트링이 보다 소수 또는 보다 많은 문자들을 포함할 수 있다는 것, 즉, 본 발명이 매우 짧은 스트링들 및 매우 긴 문자들의 시퀀스에 마찬가지로 적용될 수 있다는 것을 나타낸다.
웨스턴 알파벳의 문자들은-도시된 바와 같이- 대안적으로 피치 알파벳의 요소들의 시퀀스, 음악적 피치 간격 알파벳의 요소들의 시퀀스, 음악적 시간 간격 알파벳의 요소들의 시퀀스, 이진 숫자들의 시퀀스, 워드들 또는 바이트들, 아미노 산의 시퀀스 또는 DNA/RNA의 시퀀스일 수 있다. 대응적으로, 동일한 바가, 검색되는 데이터베이스에도 적용되며, 그 이유는 이 또한 다수의 스트링들 또는 하나의 긴 스트링으로서 이해될 수 있기 때문이다.
상기 음악적 피치 간격 알파벳의 요소들의 시퀀스 및 음악적 시간 간격 알파벳의 요소들의 시퀀스는 악보의 기본 요소(essence)를 나타낸다. 일반적으로, 모든 스트링들에 대해(질의 스트링, 데이터베이스 내의 스트링들 등), 이는 이들이 이산 심볼들의 소정의 알파벳으로 이루어질 수 있다는 것을 의미한다.
도 5는 최종 수의 결과 스트링들을 검색하는 방법을 도시한다. 이 방법은 참조 번호들 30 내지 33(상기 도면들에서)에 의해 표시된 바와 같은 최종 수의 결과 스트링들을 검색한다. 즉, 상기 최종 수의 결과 스트링들 각각은 가능한 경우, 데이터베이스 내의 질의 스트링, 참조 번호 34와 부분적 또는 정확한 일치를 갖는다. 데이터베이스, 참조번호 80은 긴 스트링으로 구성된다. 상기 방법은 하기의 단계들을 포함한다.
단계 100에서, 질의 스트링은 제 1 수의 입력 질의 스트링들로 분할된다. 상기 도면들에 표시된 바와 같이, 상기 질의 스트링은 3개 입력 질의 스트링들, 참조 번호 35, 36, 37로 분할된다. 즉, 제 1 수는 여기서 3이다. 상기 제 1 수는 1과 같거나 그 보다 큰 소정 수일 수 있다. 정확히 3과 같은 제 1 수는 단지 예시의 목적을 위해 예시된 것이다. 즉, 소정의 보다 높거나 보다 낮은 수가 마찬가지로 선택될 수 있다.
달리 말해서, 이 단계에서, 질의 스트링은 서브스트링들의 작은 단편들(상기 제 1 수의)로, 즉, 상기 입력 질의 스트링들로 나누어진다.
본 예에서, 질의 스트링, 참조 번호 34, "aba..cab..abc"는, 본 예에서는 집합내에서 3인, 즉, 입력 질의 스트링 1, 참조 번호 35="aba..", 입력 질의 스트링 2, 참조 번호 36 = "cab.." 및 입력 질의 스트링 3, 참조 번호 37 = "abc.."인 상기 제 1 수의 입력 질의 스트링들의 집합으로 나누어진다.
단계 200에서, 제 2 수의 이웃 스트링들이 결정된다. 역시 상기 도면들에 표 시된 바와 같이, 상기 제 2 수의 이웃 스트링들은 4이다. 즉, 참조 번호 35의 제 1 입력 질의 스트링을 위해서는 참조 번호 38-41, 참조 번호 36의 제 2 또는 중간 입력 질의 스트링을 위해서는 참조 번호 42-45, 및 참조 번호 37의 제 3 또는 최종 입력 질의 스트링을 위해서는 참조 번호 44-49이다.
정확히 4와 같은 제 2 수는 단지 예시의 목적으로 예시된 것이다. 즉, 소정의 4 보다 큰 또는 보다 낮은 수가 마찬가지로 선택될 수 있다. 특히, 이웃 스트링들의 수는 질의 스틀이의 길이, 적용된 스트링 알파벳 내의 서로 다른 이산 심볼들의 크기, 및 이웃 스트링들에 허용된 에러들의 수에 의존한다.
이는 예로서, 총 12개의 이웃 스트링들을 제공한다. 즉, 이는 상기 제 1 수 x 상기 제 2 수와 같다. 즉, 3 x 4 =12이다. 즉, 각 (3개) 입력 질의 스트링들에 대하여 4개이다. 또는 일반적으로, 상기 제 1 수의 입력 질의 스트링들 내의 각 스트링에 대하여, 상기 제 2 수의 이웃 스트링이 결정된다. 상기 도면들에 표시된 바와 같이, 이들은 참조 번호 38 내지 49이다. 이들 각각은 독립적으로, 사전 결정된 제 1 수의 에러들을 가지며, 이는 0 보다 크거나 같다.
(제 1) 수의 에러들이 이웃 스트링 길이를 초과하는 경우(즉, 스트링의 모든 콘텐트가 에러인 것으로 결정), 결과적으로, 다음 단계에서의 후속 검색은 전혀 의미가 없으며, 따라서, 상기 제 1 수의 에러들은 스트링 길이를 초과할 수 없다.
주어진 예에서와 같이, 입력 질의 스트링 "aba..", 즉, 참조 번호 35에 기초하여, 4개 이웃 스트링들이 결정된다. 즉 :
- 그 자체와 같은, 즉, 물론 어떠한 에러들도 없는 참조 번호 38 "aba.."
- 하나의 에러를 가지는 참조 번호 39 "abc.."
- 다른 에러를 갖는 참조 번호 40 "abb.." 및
- 두 개의 에러들을 갖는 참조 번호 41 "acb..".
주어진 예에서, 미리 결정된 제 1 수의 에러들(0 보다 크거나 같은)은 여기서 0, 1 또는 2이다.
본 예에서, 0, 1 또는 2와 같은 제 1 수의 미리 결정된 에러들은 단지 예시의 목적을 위해 도시된 것이다. 즉, 소정의 보다 큰 수가 마찬가지로 선택될 수 있다.
단계 300에서, 데이터베이스는 상기 제 2 수의 이웃 스트링들 내의 각 스트링에 대하여 제 3 수의 정확한 일치들에 대하여 검색된다. 상기 검색은 주어진 검색 방법에 기초한다.
상기 제 3 수의 정확한 일치들은 참조 번호 50-61 및 70 내지 74에 의해 예시되어 있다. 하나 이상의 일치들이 존재할 수 있다는 것을 인지하는 것이 중요하다. 예로서,
- 첫 번째로, 참조 번호 38 "aba.."-이웃 스트링의 예로서-는 참조 번호 50 및 52의 정확한 일치, 즉, "aba.."를 초래한다.
- 두 번째로, 참조 번호 39 "abc.."-이웃 스트링의 다른 예로서-는 참조 번호 51 "abc.."의 그 정확한 일치를 역시 도출한다.
- 세 번째로, 참조 번호 40 "abb".."은 어떠한 일치도 도출하지 않는다. 즉, 참조 번호 70 "abd.."
- 마지막으로, 참조 번호 41 "acb".."도 어떠한 일치도 도출하지 않는다. 즉, 참조 번호 71 "abc.."
후자의 둘은 이때 무용하며, 그 이유는 단지 정확한 일치들만이 고려되기 때문이다.
대응하여, 참조 번호 53-61 및 72-74가 참조 번호 42-49에 의해 표시된 이웃 스트링들로부터의 검색 결과이다.
모든 경우들에서, 데이터베이스 내의 대응 위치들 및 대응 스트링 콘텐트를 갖는 검색 결과들, 참조 번호 50-61 및 70-74은 후속 단계에서의 추후 사용을 위해 유지된다.
또한, 모든 경우들에서, 주어진 검색 방법은 q-그램 인덱스 방법 또는 본 기술에서 유용한 것으로 알려진 소정의 다른 적절한 방법, 예로서, 접미사 트리 방법 또는 해시 방법일 수 있다.
단계 400에서, 데이터베이스로부터의 상기 검색된 정확히 일치된 스트링들은 제 4 수의 중간 스트링들에 연쇄된다. 상기 검색된 정확히 일치된 스트링들(상기 중간 스트링들 각각에 포함되어 있는)은 상기 데이터베이스 내에서 서로 연속한다.
상기 제 4 수의 중간 스트링들은 참조 번호 29-33에 의해 표시되어 있으며, 본 예에서 제 4 수는 5이다. 또한, 상기 중간 스트링들 각각에 포함된 상기 검색된 정확히 일치된 스트링들-참조 번호들 50 내지 61 및 70 내지 74로 표시됨-은 상기 데이터베이스 내에서 서로 연속적이도록 결정된다. 이는 아래에서 설명된다.
예들로부터 알 수 있는 바와 같이, -연쇄 동안- 참조 번호 38-41인 대응 시 작 이웃 스트링들을 갖는 참조 번호 35인 제 1 입력 질의 스트링(질의 스트링의 시작인)으로부터의 검색 결과 = "aba.."는 대응 시작 서브스트링들, 참조 번호 50-53을 도출한다.
대응적으로, -연쇄 동안- 참조 번호 42-45의 대응 "중간" 이웃 스트링들을 갖는 참조 번호 36인 제 2 입력 질의 스트링(질의 스트링의 중간인)으로부터의 검색 결과 = "cab.."는 대응 중간 서브스트링들, 참조 번호 54-57을 도출한다.
대응적으로, -연쇄 동안- 참조 번호 46-49인 대응 "끝 부분" 이웃 스트링들을 갖는, 참조 번호 37의 제 3 입력 질의 스트링(질의 스트링의 끝 부분인)으로부터의 검색 결과 ="abc.."은 대응 "끝 부분" 서브스트링들, 참조 번호 58-61을 도출한다.
달리 말해서, 상기 중간 스트링들 각각의 대응 부분으로서 정확히 일치된 스트링들 참조 번호 50-61 및 70-74는 사실 데이터베이스 내에서 서로 연속적이다. 참조 번호 50-53의 시작 서브스트링들 중 하나, 참조 번호 54-57의 중간 서브스트링들 중 하나 및 참조 번호 58-61의 끝 부분 서브스트링들 중 하나는 상기 제 4 수의 중간 스트링들 중 하나, 즉, 참조 번호 29-33 중 하나로 연쇄된다.
단계 500에서, 최종 수의 결과 스트링들이 결정된다. 이 결정은 상기 단계로부터의 상기 제 4 수의 중간 스트링들에 기초하며, 여기서-이 단계에서- 최종 수의 결과 스트링들의 각 스트링은 참조 번호 34의 상기 질의 스트링에 비해 미리 결정된 제 2 수의 에러들의 최대치를 갖도록 결정된다.
주어진 예들에서, 최종 수의 결과 스트링들, 참조 번호 30-33은 4개이고, 상기 제 4 수의 중간 스트링들은 5개이다. 즉, 본 예에서, 참조 번호 29의 하나는 버려지거나, 빼지고, 그 이유는 이것이 특히 상기 제 2 수의 에러들과 같거나 보다 작은 에러(들)를 가지는 기준을 충족시키지 않기 때문이다. 이는 참조 번호 34의 상기 질의 스트링에 비교할 때 알 수 있다.
달리 말해서, 참조 번호 29는 너무 많은 에러들(참조 번호 34의 최초 질의 스트링에 비해)을 갖기 때문에 버려지며, 참조 번호 30 내지 33은 개별적으로 보다 적은 에러들을 가지며, 따라서, 기준을 충족시킨다. 즉, 본 예에서, 참조 번호 30 내지 33은 최종 수의 결과 스트링들을 포함한다.
이 방법의 결과로서, 상기 최종 수의 결과 스트링들, 참조 번호 30-33 각각은 참조 번호 34의 상기 질의 스트링에 정확히 또는 부분적으로 일치한다.
주어진 예에서 (정확한 또는 부분적인) 4개의 일치들은 상기 질의 스트링이 검색되었을 때의 결과였다.
이 단계-상기 단계와 연계하여-는 또한 "크로스-커팅"이라 명명된다. 즉, 연쇄시, 참조 번호 34의 원본 질의 스트링과 근사 일치를 포함할 수 있는 이웃들의 이들 정확한 일치들 만을 고려하는 개념(검색시)이다.
본 발명의 정신에서, 상기 "제 1 수", "제 2 수의 이웃 스트링들", "제 3 수", "제 4 수의 중간 스트링들" 및 "제 1 및 제 2 수의 에러들" 중 소정의 것은 독립적으로, 또는 서로 관련하여, 또는 질의 스트링 및/또는 데이터베이스의 콘텐트에 관련하여 미세 조율될 수 있다. 여기서, 검색의 속도가 감소될 수 있거나, 및/또는 다른 일치(보다 소수/보다 적은) 에러들이 얻어질 수 있다.
대응적으로, 주어진 예들은 예시적이며, 또한, 질의 스트링, 이웃 스트링들, 중간 스트링들, 스트링들의 다른 순차 콘텐트(이산 심볼들의) 등의 다른 스트링 길이로 확장될 수도 있다.
도 6은 검색을 위한 배열을 도시한다. 참조 번호 660은 상기 배열을 나타낸다. 배열은 -본 발명에 따라서- 상기 도면에 설명된 바와 같이, 참조 번호 34의 질의 스트링을 처리한다. 배열은 상기 스트링을 입력으로서 처리하며, 따라서, 계산 수단(661), 예로서, 충분히 빠른 마이크로프로세서를 포함한다. 마이크로프로세서는 데이터베이스, 참조 번호 80내의 일치들을 검색한다. 결과적으로, 존재시, 최종 수의 결과 스트링들, 참조 번호 30, 31, 32, 33이 발견된다. 일치 방법의 단계들을 수행하기 위한 계산 수단은 또한 예로서, 전용 ASIC의 일부일 수도 있다.
참조 번호 662는 컴퓨터 프로그램 제품을 나타낸다. 상기 컴퓨터 프로그램 제품은 컴퓨터 프로그램이 컴퓨터상에서 구동될 때, 상기 방법을 수행하기 위해 컴퓨터 판독가능한 매체상에 기억된 프로그램코드 수단을 포함한다.
일반적으로, 본 발명은 음악 시스템들을 위한 멜로디 검색('흐밍에 의한 질의'), 검색 엔진 또는 텍스트 파일내의 키워드 발견, 분자 생물학 데이터 베이스내의 DNA/RNA 시퀀스 발견, 비트들, 바이트들 또는 워드 코드들, 에러 제어 등 같은 다양한 분야에 적용될 수 있다. 멜로디 검색 응용에 대하여, 완전한 멜로디 또는 노래를 상기시키지 못하고, 멜로디의 단지 작은 부분만이 기억되는 경우를 상상할 수 있다. 이산 심볼들의 스트링으로서의 적절한 표현으로 제공되고 나면, 이 멜로디 부분은 그후 검색 방법에 입력되어 상기 데이터베이스를 사용하여 노래 또는 멜 로디의 신분을 밝혀낼 수 있다. 그에 의해, 검색 방법은 입력의 에러들을 허용한다. 배열은 독립형 오디오 장치로서 또는 PC상에 구현된 예로서, 주크박스일 수 있다. 또한, 이는 예로서, 보행자가 시작부 또는 후렴을 부르는 것에 의해 그 첨부 음악을 신속히 변경할 수 있게 하는 인터페이스를 포함하는 휴대용 오디오 장치일 수도 있다. 배열은 또한 예로서, 웹으로부터 특정 MP3를 신속히 선택하기 위한 인터넷상의 서비스일 수도 있으며, 배열은 예로서, 전화 벨소리를 검색하기 위하여, 이 방법을 운용하는 휴대 전화일 수 있다.
유사하게, -예로서, 인터넷상의 특정 제품 또는 소프트웨어 사전내의 단어를 검색하기 위한- 검색 엔진 또는 소프트웨어 검색 툴을 위한 질의로서의 키워드들(전술된 질의 스트링과 유사)은 타이포(typo)들을 포함할 수 있다. 검색 또는 탐색 프로세스는 키워드들내의 이들 에러들을 고려할 수 있다. 모든 응용들에서, 허용가능한 에러들의 수는 사전규정되거나 고정될 수 있다. 데이터베이스는 하나의 매우 긴 스트링(예로서, 긴 텍스트, 시퀀스에 입력된 세상의 모든 멜로디들 등)으로서 가장 잘 볼 수 있다. 또한, 스트링들은 유한 집합(예로서, 웨스턴 또는 피치 알파벳, 이진 숫자들, 바이트들, 워드들, 아미노산들, DNA/RNA, 워드들 등)으로 구성될 수 있다. 텍스트 응용에 대하여, 웨스턴 알파벳으로부터의 26 문자들이 사용될 수 있다. 대응적으로, 멜로디들은 9-요소 피치 간격 알파벳으로 구성될 수 있다. 분자 생물학 응용들은 24 아미노산들 또는 4개 뉴클레오티드를 알파벳으로서 사용한다. 코딩 응용들은 이진 심볼들, 워드, 바이트들 또는 비트들을 사용한다.
음악 점수의 정수는 멜로디를 검색하기 위해 충분한 소정의 정보로서 이해되 어야 한다. 예로서, 사람이 매우 음악적이지 않거나, 예로서 그의 발을 두드림으로써 악곡을 검색하기를 원하거나 양자 모두인 경우에, 톤 간격들 또는 단지 시간 간격들이다. 이들은 미리 결정된 맵핑 함수에 의해 스트링 문자들로 변환된다.
컴퓨터 판독가능한 매체는 자기 테이프, 광 디스크, 디지털 다용도 디스크(DVD), 콤팩트 디스크(CD 레코더블 또는 CD 라이터블), 미니-디스크, 하드 디스크, 플로피 디스크, 스마트 카드, PCMCIA 카드 등일 수 있다.
청구범위에서, 괄호 사이에 기재된 소정의 참조 부호들은 청구항을 한정하는 것으로 해석되지 않아야 한다. 단어 "포함하는(comprising)"은 청구항에 나열된 것들 이외의 단계들 또는 요소들의 존재를 배제하지 않는다. 요소에 선행하는 단어 "하나(a 또는 an)"은 복수의 이런 요소들의 존재를 배제하지 않는다.
본 발명은 다수의 개별 요소들을 포함하는 하드웨어에 의해, 그리고, 적절히 프로그램된 컴퓨터에 의해 구현될 수 있다. 다수의 수단을 열거하는 장치 청구항에서, 이들 수단 중 다수는 하나의, 그리고, 동일한 항목의 하드웨어에 의해 구현될 수 있다. 서로 다른 종속 청구항에 특정 조치들이 기재되어 있다는 사실은 이들 조치들의 조합이 유리하게 사용될 수 없다는 것을 나타내는 것은 아니다.
참조문헌 : 마이어, 이.(1994) "근사 키워드 검색을 위한 서브리니어 알고리즘(A sublinear algorithm for approximate keyword searching; Algorithmica, 12 (4/5), 345-374)".

Claims (14)

  1. 다수의 긴 스트링들 또는 긴 스트링으로 구성된 데이터베이스(80) 내에서 질의 스트링(query string; 34)과 정확한 또는 부분적인 일치(match)를 갖는 최종 수의 결과 스트링들(30-33)을 검색하는 방법에 있어서,
    - 상기 질의 스트링을 제 1 수의 입력 질의 스트링들(35, 36, 37)로 분할하는 단계(100);
    - 상기 제 1 수의 입력 질의 스트링들 내의 각 스트링에 대하여, 제 2 수의 이웃 스트링들(각각, 38-41, 42-45, 44-49)을 결정하는 단계(200)로서, 상기 제 2 수의 이웃 스트링들 내의 각 스트링이 미리 결정된 제 1 수의 에러들을 갖는, 상기 이웃 스트링들 결정 단계(200);
    - 검색 방법에 기초하여 상기 제 2 수의 이웃 스트링들 내의 각 스트링에 대하여 제 3 수의 정확한 일치들(50-61, 70-74)에 대해 데이터베이스를 검색하는 단계(300);
    - 상기 데이터베이스로부터의 상기 검색된 정확히 일치된 스트링들을 제 4 수의 중간 스트링들(29, 30, 32, 33, 34)로 연쇄시키는 단계(400)로서, 상기 중간 스트링들 각각내에 포함된 상기 검색된 정확히 일치된 스트링들(50-61, 70-74)은 상기 데이터베이스 내에서 서로 연속하는, 상기 중간 스트링들 연쇄시키는 단계(400); 및
    - 상기 제 4 수의 중간 스트링들에 기초하여 최종 수의 결과 스트링들(30- 33)을 결정하는 단계(500)로서, 최종 수의 결과 스트링들 내의 각 스트링은 상기 질의 스트링(34)과 비교된 미리 결정된 제 2 수의 에러들의 최대치를 갖는, 상기 결과 스트링들 결정 단계(500)를 포함하는, 결과 스트링들 검색 방법.
  2. 제 1 항에 있어서,
    상기 검색 방법은 q-그램 인덱스 방법인 것을 특징으로 하는, 결과 스트링들
    검색 방법.
  3. 제 1 항에 있어서,
    상기 검색 방법은 접미사 트리 방법인 것을 특징으로 하는, 결과 스트링들 검색 방법.
  4. 제 1 항에 있어서,
    상기 검색 방법은 해시 방법인 것을 특징으로 하는, 결과 스트링들 검색 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 스트링들 및 상기 데이터베이스 각각은 웨스턴 알파벳의 문자들의 시퀀스를 포함하는 것을 특징으로 하는, 결과 스트링들 검색 방법.
  6. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 스트링들 및 상기 데이터베이스 각각은 악보의 기본요소(essence)를 나타내는 것을 특징으로 하는, 결과 스트링들 검색 방법.
  7. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 스트링들 및 상기 데이터베이스 각각은 이진 숫자들의 시퀀스를 포함하는 것을 특징으로 하는, 결과 스트링들 검색 방법.
  8. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 스트링들 및 상기 데이터베이스 각각은 아미노산의 시퀀스 또는 DNA/RNA 염기들의 시퀀스를 포함하는 것을 특징으로 하는, 결과 스트링들 검색 방법.
  9. 삭제
  10. 제 1 항 내지 제 4 항 중 어느 한 항에 따른 방법들의 단계들을 수행하기 위한 계산 수단(661)을 포함하는 검색 엔진.
  11. 제 1 항 내지 제 4 항 중 어느 한 항에 따른 방법들의 단계들을 수행하기 위한 수단을 포함하는 툴.
  12. 장치(660)에 있어서,
    - 질의 스트링을 제 1 수의 입력 질의 스트링들(35, 36, 37)로 분할하기 위한 계산 수단(661);
    - 상기 제 1 수의 입력 질의 스트링들 내의 각 스트링에 대하여, 제 2 수의 이웃 스트링들(각각 38-41, 42-45, 44-49)을 결정하기 위한 계산 수단(661)으로서, 상기 제 2 수의 이웃 스트링들 내의 각 스트링이 미리 결정된 제 1 수의 에러들을 갖는, 상기 제 2 수의 이웃 스트링들(각각 38-41, 42-45, 44-49)을 결정하기 위한 계산 수단(661);
    - 검색 방법에 기초하여 상기 제 2 수의 이웃 스트링들 내의 각 스트링에 대한 제 3 수의 정확한 일치들(50-61, 70-74)에 대해 데이터베이스를 검색하기 위한 계산 수단(661);
    - 상기 데이터베이스로부터의 상기 검색된 정확히 일치된 스트링들을 제 4 수의 중간 스트링들(29, 30, 32, 33, 34)로 연쇄시키기 위한 계산 수단(661)으로서, 상기 중간 스트링들 각각내에 포함된 상기 검색된 정확히 일치된 스트링들(50-61, 70-74)은 상기 데이터베이스 내에서 서로 연속하는, 상기 제 4 수의 중간 스트링들(29, 30, 32, 33, 34)로 연쇄시키기 위한 계산 수단(661); 및
    상기 제 4 수의 중간 스트링들에 기초하여 최종 수의 결과 스트링들(30-33)을 결정하기 위한 계산 수단(661)으로서, 상기 최종 수의 결과 스트링들 내의 각 스트링은 상기 질의 스트링(34)과 비교된 미리 결정된 제 2 수의 에러들의 최대치를 갖는, 상기 최종 수의 결과 스트링들(30-33)을 결정하기 위한 계산 수단(661)을 포함하는, 장치.
  13. 제 1 항 내지 제 4 항 중 어느 한 항에 따른 방법을 수행하기 위한 컴퓨터 시스템.
  14. 컴퓨터 프로그램이 컴퓨터상에서 구동될 때, 제 1 항 내지 제 4 항 중 어느 한 항의 방법을 수행하기 위해 컴퓨터 판독가능한 매체상에 기억된 프로그램 코드 수단을 포함하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체(662).
KR1020057016418A 2003-03-03 2004-02-25 스트링들을 검색하기 위한 방법 및 배열 KR101068678B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03100517.6 2003-03-03
EP03100517 2003-03-03

Publications (2)

Publication Number Publication Date
KR20060002792A KR20060002792A (ko) 2006-01-09
KR101068678B1 true KR101068678B1 (ko) 2011-09-30

Family

ID=32946911

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057016418A KR101068678B1 (ko) 2003-03-03 2004-02-25 스트링들을 검색하기 위한 방법 및 배열

Country Status (6)

Country Link
US (1) US7756847B2 (ko)
EP (1) EP1602039A2 (ko)
JP (1) JP4538449B2 (ko)
KR (1) KR101068678B1 (ko)
CN (1) CN100557606C (ko)
WO (1) WO2004079631A2 (ko)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8588729B2 (en) * 1994-11-21 2013-11-19 Bgc Partners, Inc. Method for retrieving data stored in a database
US6876309B1 (en) 1994-11-21 2005-04-05 Espeed, Inc. Bond trading system
KR20040027259A (ko) 2002-09-26 2004-04-01 엘지전자 주식회사 1 회 기록 가능한 광디스크의 디펙트 영역 관리방법
KR20040028469A (ko) 2002-09-30 2004-04-03 엘지전자 주식회사 1 회 기록 가능한 광디스크의 디펙트 영역 관리방법
US7233550B2 (en) 2002-09-30 2007-06-19 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording management information on write-once optical disc
CA2508454C (en) 2002-12-11 2013-01-08 Lg Electronics Inc. Method of managing overwrite and method of recording management information on an optical disc write once
US7672204B2 (en) 2003-01-27 2010-03-02 Lg Electronics Inc. Optical disc, method and apparatus for managing a defective area on an optical disc
TWI314315B (en) 2003-01-27 2009-09-01 Lg Electronics Inc Optical disc of write once type, method, and apparatus for managing defect information on the optical disc
US20040160799A1 (en) 2003-02-17 2004-08-19 Park Yong Cheol Write-once optical disc, and method and apparatus for allocating spare area on write-once optical disc
US7499383B2 (en) 2003-02-21 2009-03-03 Lg Electronics Inc. Write-once optical disc and method for managing spare area thereof
TWI335587B (en) 2003-02-21 2011-01-01 Lg Electronics Inc Write-once optical recording medium and defect management information management method thereof
US7675828B2 (en) 2003-02-25 2010-03-09 Lg Electronics Inc. Recording medium having data structure for managing at least a data area of the recording medium and recording and reproducing methods and apparatuses
KR100991788B1 (ko) 2003-03-04 2010-11-03 엘지전자 주식회사 광기록매체 및 광기록매체의 기록방법 및 장치
US7289404B2 (en) 2003-03-13 2007-10-30 Lg Electronics Inc. Write-once recording medium and defective area management method and apparatus for write-once recording medium
MXPA05012044A (es) 2003-05-09 2006-02-03 Lg Electronics Inc Disco optico de una sola escritura, metodo y aparato par recuperacion de informacion de administracion de disco del disco optico de una sola escritura.
BRPI0410198A (pt) 2003-05-09 2006-05-23 Lg Electronics Inc meio fìsico de gravação, método de gerenciar informação de gerenciamento de disco, método para recuperar informação de gerenciamento a partir do meio fìsico de gravação, aparelho para gerenciar informação de gerenciamento de disco em meio fìsico de gravação e aparelho para recuperar informação de gerenciamento a partir do meio fìsico de gravação
KR20050009031A (ko) 2003-07-15 2005-01-24 엘지전자 주식회사 1회 기록 가능한 광디스크 및 광디스크의 관리정보 기록방법
US7313065B2 (en) 2003-08-05 2007-12-25 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording/reproducing management information on/from optical disc
EP1930899B1 (en) 2003-08-05 2015-09-30 LG Electronics, Inc. Write-once optical disc, and method and apparatus for recording/reproducing management information
BRPI0414213A (pt) 2003-09-08 2006-10-31 Lg Electronics Inc método e aparelho de gerenciar meio fìsico de gravação e meio fìsico de gravação
MXPA06002621A (es) 2003-09-08 2006-06-05 Lg Electronics Inc Disco optico de una sola escritura, metodo y aparato para grabacion de informacion de administracion en el disco optico de una sola escritura.
WO2005024793A2 (en) 2003-09-08 2005-03-17 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording management information thereon
KR100964685B1 (ko) 2003-10-20 2010-06-21 엘지전자 주식회사 1회 기록가능한 광디스크 및 광디스크의 기록재생방법과기록재생장치
US7283999B1 (en) * 2003-12-19 2007-10-16 Ncr Corp. Similarity string filtering
KR101024916B1 (ko) 2004-03-19 2011-03-31 엘지전자 주식회사 1회 기록 가능한 고밀도 광디스크의 데이터 기록 방법 및장치
KR101049117B1 (ko) 2004-06-08 2011-07-14 엘지전자 주식회사 1회 기록 가능한 광디스크 및 광디스크의 관리정보 기록방법, 디스크 클로징 방법 및 기록재생 장치
KR101014727B1 (ko) 2004-06-23 2011-02-16 엘지전자 주식회사 1회 기록 가능한 광디스크의 중첩 기록 방법 및 장치
KR101012378B1 (ko) 2004-08-16 2011-02-09 엘지전자 주식회사 광 저장매체의 기록 재생 방법 및 장치
WO2006031052A2 (en) 2004-09-14 2006-03-23 Lg Electronics Inc. Recording medium, and method and apparatus of recording and reproducing data on the same
US7747635B1 (en) * 2004-12-21 2010-06-29 Oracle America, Inc. Automatically generating efficient string matching code
US7338819B2 (en) * 2005-06-30 2008-03-04 Broadcom Corporation System and method for matching chip and package terminals
KR101227485B1 (ko) 2005-11-25 2013-01-29 엘지전자 주식회사 기록매체 및 기록매체의 결함관리 정보 기록방법과기록장치
US7509339B2 (en) * 2006-01-03 2009-03-24 International Business Machines Corporation System and method of implementing personalized alerts utilizing a user registry in instant messenger
US7406479B2 (en) * 2006-02-10 2008-07-29 Microsoft Corporation Primitive operator for similarity joins in data cleaning
US7395270B2 (en) * 2006-06-26 2008-07-01 International Business Machines Corporation Classification-based method and apparatus for string selectivity estimation
US7945627B1 (en) 2006-09-28 2011-05-17 Bitdefender IPR Management Ltd. Layout-based electronic communication filtering systems and methods
US8283546B2 (en) * 2007-03-28 2012-10-09 Van Os Jan L Melody encoding and searching system
US7962530B1 (en) * 2007-04-27 2011-06-14 Michael Joseph Kolta Method for locating information in a musical database using a fragment of a melody
US8572184B1 (en) 2007-10-04 2013-10-29 Bitdefender IPR Management Ltd. Systems and methods for dynamically integrating heterogeneous anti-spam filters
US8010614B1 (en) 2007-11-01 2011-08-30 Bitdefender IPR Management Ltd. Systems and methods for generating signatures for electronic communication classification
AU2009206227B2 (en) * 2008-01-24 2013-08-01 Sra International, Inc. System and method for variant string matching
US20090234852A1 (en) * 2008-03-17 2009-09-17 Microsoft Corporation Sub-linear approximate string match
US8126913B2 (en) * 2008-05-08 2012-02-28 International Business Machines Corporation Method to identify exact, non-exact and further non-exact matches to part numbers in an enterprise database
US9569528B2 (en) 2008-10-03 2017-02-14 Ab Initio Technology Llc Detection of confidential information
US8447789B2 (en) * 2009-09-15 2013-05-21 Ilya Geller Systems and methods for creating structured data
US8516013B2 (en) 2009-03-03 2013-08-20 Ilya Geller Systems and methods for subtext searching data using synonym-enriched predicative phrases and substituted pronouns
US8504580B2 (en) * 2009-03-03 2013-08-06 Ilya Geller Systems and methods for creating an artificial intelligence
US20100274755A1 (en) * 2009-04-28 2010-10-28 Stewart Richard Alan Binary software binary image analysis
US20100325136A1 (en) * 2009-06-23 2010-12-23 Microsoft Corporation Error tolerant autocompletion
CN104484381B (zh) * 2010-02-26 2018-05-22 电子湾有限公司 用于搜索多个串的方法和系统
WO2011137368A2 (en) 2010-04-30 2011-11-03 Life Technologies Corporation Systems and methods for analyzing nucleic acid sequences
KR101638594B1 (ko) 2010-05-26 2016-07-20 삼성전자주식회사 Dna 서열 검색 방법 및 장치
US9268903B2 (en) 2010-07-06 2016-02-23 Life Technologies Corporation Systems and methods for sequence data alignment quality assessment
CN102479191B (zh) 2010-11-22 2014-03-26 阿里巴巴集团控股有限公司 提供多粒度分词结果的方法及其装置
CN103425691B (zh) 2012-05-22 2016-12-14 阿里巴巴集团控股有限公司 一种搜索方法和系统
KR101452638B1 (ko) 2013-06-21 2014-10-22 서울대학교산학협력단 유사 문자열 검색 방법 및 장치
US9934217B2 (en) 2013-07-26 2018-04-03 Facebook, Inc. Index for electronic string of symbols
US9400845B2 (en) * 2013-09-03 2016-07-26 Ferrandino & Son Inc. Providing intelligent service provider searching and statistics on service providers
CN104008119B (zh) * 2013-12-30 2017-09-26 西南交通大学 一种一对多的混合字符串融合比对方法
CN105653567A (zh) * 2014-12-04 2016-06-08 南京理工大学常熟研究院有限公司 一种文本序列数据中快速查找特征字符串的方法
US9953065B2 (en) 2015-02-13 2018-04-24 International Business Machines Corporation Method for processing a database query
CN104750846B (zh) * 2015-04-10 2017-12-08 浪潮集团有限公司 一种子串查找方法及装置
KR101910491B1 (ko) * 2016-12-07 2018-10-22 전북대학교 산학협력단 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치
KR102594625B1 (ko) 2017-03-19 2023-10-25 오펙-에슈콜롯 리서치 앤드 디벨롭먼트 엘티디 K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법
US10528556B1 (en) * 2017-12-31 2020-01-07 Allscripts Software, Llc Database methodology for searching encrypted data records
US10747819B2 (en) 2018-04-20 2020-08-18 International Business Machines Corporation Rapid partial substring matching
US10169451B1 (en) 2018-04-20 2019-01-01 International Business Machines Corporation Rapid character substring searching
US10732972B2 (en) 2018-08-23 2020-08-04 International Business Machines Corporation Non-overlapping substring detection within a data element string
US10782968B2 (en) 2018-08-23 2020-09-22 International Business Machines Corporation Rapid substring detection within a data element string
US11042371B2 (en) 2019-09-11 2021-06-22 International Business Machines Corporation Plausability-driven fault detection in result logic and condition codes for fast exact substring match
US10996951B2 (en) 2019-09-11 2021-05-04 International Business Machines Corporation Plausibility-driven fault detection in string termination logic for fast exact substring match

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418951A (en) * 1992-08-20 1995-05-23 The United States Of America As Represented By The Director Of National Security Agency Method of retrieving documents that concern the same topic

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2880199B2 (ja) * 1989-10-18 1999-04-05 株式会社日立製作所 記号列検索方法および検索装置
US6370479B1 (en) * 1992-02-06 2002-04-09 Fujitsu Limited Method and apparatus for extracting and evaluating mutually similar portions in one-dimensional sequences in molecules and/or three-dimensional structures of molecules
US5852821A (en) * 1993-04-16 1998-12-22 Sybase, Inc. High-speed data base query method and apparatus
US5553272A (en) * 1994-09-30 1996-09-03 The University Of South Florida VLSI circuit structure for determining the edit distance between strings
DE69422406T2 (de) * 1994-10-28 2000-05-04 Hewlett Packard Co Verfahren zum Durchführen eines Vergleichs von Datenketten
US5778361A (en) * 1995-09-29 1998-07-07 Microsoft Corporation Method and system for fast indexing and searching of text in compound-word languages
US5963957A (en) 1997-04-28 1999-10-05 Philips Electronics North America Corporation Bibliographic music data base with normalized musical themes
US6026398A (en) * 1997-10-16 2000-02-15 Imarket, Incorporated System and methods for searching and matching databases
JP3622503B2 (ja) * 1998-05-29 2005-02-23 株式会社日立製作所 特徴文字列抽出方法および装置とこれを用いた類似文書検索方法および装置並びに特徴文字列抽出プログラムを格納した記憶媒体および類似文書検索プログラムを格納した記憶媒体
US6144958A (en) * 1998-07-15 2000-11-07 Amazon.Com, Inc. System and method for correcting spelling errors in search queries
US6556984B1 (en) * 1999-01-19 2003-04-29 International Business Machines Corporation Hierarchical string matching using multi-path dynamic programming
FR2797067B1 (fr) * 1999-06-09 2005-07-29 Ricoh Kk Procede, dispositif et support lisible par ordinateur pour effectuer une recherche de document
US6757675B2 (en) * 2000-07-24 2004-06-29 The Regents Of The University Of California Method and apparatus for indexing document content and content comparison with World Wide Web search service
US6654734B1 (en) * 2000-08-30 2003-11-25 International Business Machines Corporation System and method for query processing and optimization for XML repositories
JP2002189747A (ja) * 2000-12-19 2002-07-05 Hitachi Ltd 文書情報の検索方法
US6775666B1 (en) * 2001-05-29 2004-08-10 Microsoft Corporation Method and system for searching index databases
US6681222B2 (en) * 2001-07-16 2004-01-20 Quip Incorporated Unified database and text retrieval system
US7152056B2 (en) * 2002-04-19 2006-12-19 Dow Jones Reuters Business Interactive, Llc Apparatus and method for generating data useful in indexing and searching
US7010522B1 (en) * 2002-06-17 2006-03-07 At&T Corp. Method of performing approximate substring indexing
US7734565B2 (en) * 2003-01-18 2010-06-08 Yahoo! Inc. Query string matching method and apparatus
US7313554B2 (en) * 2003-09-29 2007-12-25 International Business Machines Corporation System and method for indexing queries, rules and subscriptions
US7299126B2 (en) * 2003-11-03 2007-11-20 International Business Machines Corporation System and method for evaluating moving queries over moving objects
US7283999B1 (en) * 2003-12-19 2007-10-16 Ncr Corp. Similarity string filtering
US7346625B2 (en) * 2004-11-05 2008-03-18 International Business Machines Corporation Methods and apparatus for performing structural joins for answering containment queries

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418951A (en) * 1992-08-20 1995-05-23 The United States Of America As Represented By The Director Of National Security Agency Method of retrieving documents that concern the same topic

Also Published As

Publication number Publication date
WO2004079631A2 (en) 2004-09-16
WO2004079631A3 (en) 2004-10-28
KR20060002792A (ko) 2006-01-09
CN100557606C (zh) 2009-11-04
EP1602039A2 (en) 2005-12-07
US7756847B2 (en) 2010-07-13
CN1761958A (zh) 2006-04-19
JP2006519445A (ja) 2006-08-24
US20060179052A1 (en) 2006-08-10
JP4538449B2 (ja) 2010-09-08

Similar Documents

Publication Publication Date Title
KR101068678B1 (ko) 스트링들을 검색하기 위한 방법 및 배열
US7756859B2 (en) Multi-segment string search
US20070174261A1 (en) Database retrieval apparatus, retrieval method, storage medium, and progam
JPH09198398A (ja) パターン検索装置
EP1826692A2 (en) Query correction using indexed content on a desktop indexer program.
JP4114600B2 (ja) 可変長文字列検索装置及び可変長文字列検索方法並びにプログラム
Winter et al. F2S2: Fast forensic similarity search through indexing piecewise hash signatures
JP2009512099A (ja) トライでの再始動可能なハッシュの方法及び装置
Louza et al. External memory generalized suffix and LCP arrays construction
Bhukya et al. Exact multiple pattern matching algorithm using DNA sequence and pattern pair
Bachteler et al. Similarity filtering with multibit trees for record linkage
Sadakane et al. Indexing huge genome sequences for solving various problems
Vaddadi et al. Read mapping on genome variation graphs
JP2008541272A (ja) 署名生成および関連性を有するマッチングエンジン
Zhang et al. SMOTIF: efficient structured pattern and profile motif search
JP3370787B2 (ja) 文字配列検索方法
Kang et al. Mining frequent contiguous sequence patterns in biological sequences
Loukides et al. Bidirectional String Anchors for Improved Text Indexing and Top-$ K $ Similarity Search
JP4181723B2 (ja) 索引作成装置、索引作成方法および記録媒体
Kotsifakos et al. DRESS: dimensionality reduction for efficient sequence search
Petri et al. Efficient indexing algorithms for approximate pattern matching in text
Frith et al. A simplified description of child tables for sequence similarity search
Sakai et al. Extensive search for discriminative features of alternative splicing
KR20190139227A (ko) K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법
KR101910491B1 (ko) 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee