KR20090028705A - 가변 압축을 가지는 적응형 인덱스 - Google Patents

가변 압축을 가지는 적응형 인덱스 Download PDF

Info

Publication number
KR20090028705A
KR20090028705A KR1020087030264A KR20087030264A KR20090028705A KR 20090028705 A KR20090028705 A KR 20090028705A KR 1020087030264 A KR1020087030264 A KR 1020087030264A KR 20087030264 A KR20087030264 A KR 20087030264A KR 20090028705 A KR20090028705 A KR 20090028705A
Authority
KR
South Korea
Prior art keywords
search
computer
key
objects
tree
Prior art date
Application number
KR1020087030264A
Other languages
English (en)
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 KR20090028705A publication Critical patent/KR20090028705A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Navigation (AREA)
  • Instructional Devices (AREA)

Abstract

본 발명은 압축된 객체 저장과 탐색 트리의 빠른 프로토타이핑을 이용하기 위하여, 일련의 탐색 키와 다른 탐색 환경의 유연한 조합을 이용하여 컴팩트한 인덱싱과 효율적인 다차원 탐색을 위한 시스템을 구축하기 위하여 트리 개념상에서 이루어지며, 다양한 탐색 방법을 구현한다.

Description

가변 압축을 가지는 적응형 인덱스{Adaptive index with variable compression}
본 출원은 계속중인 다음의 특허 출원들에 대하여 우선권을 주장하며, 이 출원들은 본 명세서에 전부 포함된다; 제목이 "ADPATIVE INDEX WITH VARIABLE COMPRESSION"이고, 출원인이 Tsia Kuznetsov, et al이며, 출원일이 2006년 6월 30일인 미국 가출원(provisional application) 제60/806,336호(Attorney Docket No. TELA-07780US0); 제목이 "NEAREST SEARCH ON ADAPTIVE INDEX WITH VAIABLE COMPRESSION'이고, 출원인이 Tsia Kuznetsov이며, 출원일이 2006년 6월 30일인 미국 가출원 제60/806,367호(Attorney Docket No. TELA-07781US0); 제목이 "ADPATIVE INDEX WITH VARIABLE COMPRESSION"이고, 출원인이 Tsia Kuznetsov, et al이며, 출원일이 2007년 6월 28일인 미국 출원(U.S. Utility Application) 제11/770,058호(Attorney Docket No. TELA-07780US1); 그리고 제목이 "NEAREST SEARCH ON ADAPTIVE INDEX WITH VAIABLE COMPRESSION'이고, 출원인이 Tsia Kuznetsov이며, 출원일이 2007년 6월 28일인 미국 출원 제11/770,426호(Attorney Docket No. TELA-07781US1).
많은 응용들이 매핑 서비스를 사용자에게 제공하기 위하여 저장된 그래픽 데 이터를 사용할 수 있다. 이동 시스템 또는 고정 시스템용으로 구현될 수 있는 응용들은 맵 렌더링(map rendering), 공간 객체 탐색, 지오코딩(geoocding) 또는 지오 룩업(geo-lookup), 경로 탐색, 방향, 그리고 위치잡기(positioning)를 포함할 수 있다. 객체 탐색, 특히 스트링 키에 의한 객체 탐색은 이러한 응용들을 위하여 사용될 수 있다.
본 발명의 일 실시예는 스트링 키로 객체를 탐색하는 탐색 시스템을 적응적으로 구축하기 위한 컴퓨터에서 구현되는 방법이다. 상기 탐색 시스템은 객체 저장소에 있는 객체들과, 스트링 키 구조를 가지는 객체들을 사용하여 구성될 수 있는 트리를 포함할 수 있다.
일 실시예에서, 상기 객체 저장소는 스트링 키를 사용하여 탐색될 수 있는 실제 세상에서의 공간 객체들을 모델링한다. 상기 실제 세상의 공간 객체들은 도시들, 도시의 거리들, 교차로, 관심 지점(POI;Points Of Interests), 또는 스트링 키와 관련될 수 있는 다른 종류의 객체를 포함할 수 있다.
일 실시예에서, 객체들은 trie의 리프들에 저장될 수 있다. 다른 실시예에서, 동일한 객체들의 집합에 대한 여러 탐색 방법들을 수용하기 위하여, 분리된 객체 저장소가 고정 길이 또는 가변 길이 저장중의 하나로 주어진 종류의 객체들에 대하여 구성될 수 있다. 가변 길이 객체들에 대한 저장은 고정 길이 객체 오프셋 디렉토리로 구성될 수 있다. 그러한 객체 저장은 탐색과 객체들의 스크롤링(scrolling)을 수용할 수 있다.
일 실시예에서, 일단 상기 객체 저장소가 설정되면, 상기 탐색 트리는 상기 저장소내의 각 객체에 대한 기준(reference)이 객체의 탐색 키를 사용하여 트리 리프에서 발견될 수 있도록 구성될 수 있다.
도 1은 본 발명의 맵 기반 시스템의 일 실시예를 보여준다.
도 2a 내지 도 2b는 인덱싱이 있는 경우와 없는 경우의 시스템을 보여준다.
도 3a 내지 도 3b는 짧은 리프 노드와 긴 리프 노드를 보여준다.
도 4a 내지 도 4b는 일 실시예인 트리 시스템을 보여준다.
도 5는 일 실시예의 방법의 흐름도이다.
도 6a 내지 도 6c는 도 5의 방법의 실시예들의 동작을 설명하고 있다.
도 7은 노드들이 배제 또는 포함 정보와 같은 다른 탐색 기준의 지시를 포함하는 예를 설명하고 있다.
도 8은 다중 트리들을 가지는 하나의 객체 저장소의 사용을 설명하고 있다.
도 9a 내지 도 9b는 트리를 위한 키 구조를 선택하기 위하여 API를 사용하는 것을 설명하고 있다.
본 발명의 일 실시예는 스트링 키로 객체를 탐색하는 탐색 시스템을 적응적으로 구축하기 위한 컴퓨터에서 구현되는 방법이다. 상기 탐색 시스템은 객체 저장소(108)에 있는 객체들과, 스트링 키 구조를 가지는 객체들을 사용하여 구성될 수 있는 트리(102)를 포함할 수 있다.
상기 트리(102)는 객체들을 인덱싱(index)하기 위하여 사용되는 순서가 정해진(ordered) 트리 데이터 구조인 trie, 즉 프리픽스 트리(prefix tree)에 기초할 수 있으며, 여기서 키들은 특정한 탐색 방법을 수용하는 스트링이다. 상기 trie는 부분적인 스트링 키 입력이 주어지면, 다음 캐릭터(character)의 선택 검색을 촉진한다. trie의 설명은 Donald Knuth, The Art of Computer Programming, Volume 3: Sorting and Searching, Third Edition. Addison-Wesly, 1997. ISBN 0-201-89685-0, Section 6.3:Digital Searching, pp.492-512에 있다.
상기 trie는 키 프리픽스들을 조작하고 노드와 리프들(leaves)의 수를 최소화하는 중요한 단계들을 통하여 제한적인 저장 요구에 적응적으로 재구성될 수 있다. 일 실시예에서, 상기 트리(102)의 대부분의 리프 노드들은 상기 객체 저장소내의 여러개의 객체들과 관련될 수 있으며, 이것은 완전한 키의 일부분만이 상기 객체 저장소로부터 일군의 객체들을 획득하기 이전에 상기 트리에서 검색된다는 것을 의미할 수 있다. 예를 들면, 상기 트리(102)는 완전한 trie의 가변 크기 압축이 될 수 있다.
트리 저장은 주어진 압축 기준에 기초하여 최소화될 수 있다. 적응적인 탐색 방법이 상기 탐색 트리와 상기 객체 저장소를 통하여 객체들을 검색하기 위하여 사용될 수 있다. 상기 탐색은 압축과 주어진 사용자 인터페이스의 결과인 상기 트리 구조에 적응적일 수 있다.
일 실시예에서, 상기 객체 저장소(108)는 스트링 키를 사용하여 탐색될 수 있는 실제 세상에서의 공간 객체들을 모델링한다. 상기 실제 세상의 공간 객체들은 도시들, 도시의 거리들, 교차로, 관심 지점(POI;Points Of Interests), 또는 스트링 키와 관련될 수 있는 다른 종류의 객체를 포함할 수 있다.
일 실시예에서, 객체들은 trie의 리프들에 저장될 수 있다. 다른 실시예에서, 동일한 객체들의 집합에 대한 여러 탐색 방법들을 수용하기 위하여, 분리된 객체 저장소가 고정 길이 또는 가변 길이 저장중의 하나로 주어진 종류의 객체들에 대하여 구성될 수 있다. 가변 길이 객체들에 대한 저장은 고정 길이 객체 오프셋 디렉토리로 구성될 수 있다. 그러한 객체 저장은 탐색과 객체들의 스크롤링(scrolling)을 수용할 수 있다.
상기 객체 저장 엔트리들은 각 객체의 유일한 키에 의하여 결정될 수 있으며, 여기서 상기 저장소내의 객체들의 순서는 상기 객체의 소팅 키(sorting key)에 의하여 결정될 수 있다. 상기 객체 저장소는 상기 탐색키의 컴포넌트들을 구별할 수 있다.
일 실시예에서, 일단 상기 객체 저장소가 설정되면, 상기 탐색 트리(102)는 상기 저장소내의 각 객체에 대한 기준(reference)이 객체의 탐색 키를 사용하여 트리 리프에서 발견될 수 있도록 구성될 수 있다.
상기 트리의 탐색 키 구조는 거리, 거리 교차로, 관심지점(POI),또는 다른 엘레멘트들 또는 객체들의 속성과 같은 공간 객체들을 지시(indicate)할 수 있다. 일 실시예에서 주어진 객체들의 객체에 대한 키의 컴포넌트들이 연쇄되는(concatenated) 순서는 이 객체들의 클래스에 대한 특정한 탐색 방법을 나타낸다. 키 컴포넌트들의 연쇄 순서는 시스템 설계자가 주어진 객체들의 클래스에 대한 다수의 스트링 키 정의들에 구현된 다양한 사용자 인터페이스를 가지고 빨리 원형을 만들고 실험할 수 있는 단순한 메커니즘일 수 있다.
API는 응용에서 탐색키의 구성 그리고 따라서 탐색 방법에 도움을 주기 위하여 구현되고 사용될 수 있으며, 설계자들이 상기 객체의 탐색을 위하여 다양한 사용자 인터페이스로 생산하고 실험하는 것을 허용한다. 일 실시예에서, GUI는 주어진 객체들의 클래스에 대한 탐색 방법(들)을 위한 키 구조(들)을 정의하고 선택하기 위하여 그러한 API를 이용하여 구축될 수 있으며, 이에 의하여 객체 저장소와 트리(들)에 대하여 적절한 순서를 부과한다. 상기 API는 시스템 설계자들에게 어떤 환경에 대하여 비실제적인 저장 요구조건을 가질 수 있는 관계형 데이터베이스 관리 시스템에 의존하지 않으면서, RDBMS 기술과 전형적으로 관련이 있는 탐색 시스템의 인터페이스를 용이하게 변경할 수 있는 유연성을 제공할 수 있다.
그러므로 스트링 키 컴포넌트들과 상기 키 구조의 조합을 위한 컴포넌트 순서를 선택함으로써, 설계자는 다양한 사용자 인터페이스들 그리고 기저의 탐색 방법들을 평가할 수 있다.
도 9a 내지 도 9b는 API(902)를 이용하여 트리들과 객체 저장소들을 구성하는 것을 보여준다. 설계자는 키 컴포넌트들과 순서를 데이터(904)로부터 선택할 수 있다. 예를 들면, 데이터(904)의 데이터 필드들은 키 컴포넌트들로서 사용될 수 있다. 상기 키 구조와 데이터는 사용자 인터페이스를 통하여 액세스될 수 있는 트리와 객체 저장소를 구성하기 위하여 사용될 수 있으며, 이 것은 상기 키 구조에서 표현된 탐색 방법을 구현한다.
도 9a는 상기 키 구조가 CITY/STREET에 의하여 주어지는 예를 보여준다. 이것은 상기 사용자 인터페이스(906)가 이 순서로 데이터를 수신하도록 적응되었다는 것을 의미한다. 도 9b는 상기 키 구조가 STREET/CITY의 의하여 주어지는 경우이며, 이 때 사용자 인터페이스(908)는 이 순서로 데이터를 수신하도록 적응된다.
주어진 사용자 인터페이스 프로파일과 선택된 압축 기준에 대하여, 탐색 트리 크기, 객체 저장소 크기, 메모리 요구조건, 그리고 최선 및 최악의 경우의 성능에 대한 점수가 생성될 수 있다. 이 점수는 시스템 설계자에게 상이한 구현들의 점수를 비교함으로써 다양한 요구조건의 균형을 맞출 수 있는 도구를 제공할 수 있다.
예를 들면, 압축 크기는 시스템의 성능에 영향을 줄 수 있다. 높은 레벨의 압축은 많은 객체들이 상기 객체 저장소에서 획득되고 분석될 필요가 있다는 것을 의미한다. 낮은 레벨의 압축은 상기 트리를 위하여 큰 저장 요구조건이 필요한 결과가 될 수 있다. 트리 구성을 규제하고 리프 노드에 의하여 참조되는 객체들의 수를 최대화할 수 있는 가변 압축 기준은 궁극적인 응용을 위하여 성능, 메모리, 그리고 저장 사용을 합리적으로 균형을 맞출 수 있도록 조절될 수 있다. 일 실시예에서, 압축 기준은 상기 트리의 어떠한 가지아래에서도 객체들의 최소 수를 규제한다.
도 1을 다시 참조하면, 상기 트리는 가변 압축의 결과로서 객체 저장소(108)내의 여러개의 객체들을 참조하는 리프 노드들을 포함할 수 있다. 상기 객체들 또는 리프 노드에서의 객체 참조는 리프의 부모 노드의 프리픽스(prefix)에 일치하는 공통된 프리픽스를 가지는 상이한 키 값들을 가질 수 있다. 이것은 탐색을 완성하기 위하여 상기 객체 저장소에 대한 객체 참조를 따라서 상기 트리에 대한 부분적인 탐색을 증가시키는 좀 더 복잡한 탐색 알고리즘을 의미할 수 있으며, 이는 원래의 압축되지 않은 trie 구조에 대한 직접적 순방향 탐색(straight forrward search)에 반대되는 것이다.
리프 노드들은 짧은 리프 노드와 긴 리프 노드로 구분될 수 있다. 짧은 리프는 연속되는 목록에서 첫번째 객체를 참조하고, 참조된 다수의 객체들을 참조한다. 긴 리프는 참조들의 수를 저장함으로써 객체들의 임의의 목록을 참조할 수 잇으며, 그리고 그 목록내의 각 객체들에 대한 직접 참조를 할 수 있다. 상기 탐색은 탐색 키에 기초하여 리프 노드(110)를 찾는 것과 상기 리프 노드에 의하여 참조된 객체들중에서 일치되는 것들의 집합의 위치를 알아내는 것을 포함할 수 있다.
일 실시예에서, 사용자는 탐색 스트링 캐릭터(search string character)를 입력하고 상기 응용은 상기 탐색 스트링이 완성되거나 상기 사용자가 부분적인 키와 일치하는 객체들의 집합을 요구할 때까지 유효한 다음 입력 캐릭터들의 집합을 지시하기 위하여 상기 트리(102)를 탐색한다. 상기 응용은 상기 유효한 다음 캐릭터들을 지시하는 디스플레이를 제공할 수 있으며, 또는 그러하지 않다면 상기 유효한 다음 캐릭터들을 출력할 수 있다. 다른 실시예에서, 사용자는 탐색 스트링 전부 또는 일부를 입력한다.
그러한 탐색을 지원하는 상기 트리는 각 트리 노드에서 키 프리픽스 스트링을 저장할 수 있으며, 이 때 루트(root)에는 가장 짧은 스트링을 그리고 리프에서 는 완전한 탐색 키를 저장한다. 본 발명의 일 실시예에서, 상기 탐색 트리는 부모의 프리픽스의 확장만을 저장하기 위하여 노드의 키 프리픽스를 감소시킴으로써 압축되며, 그 결과 노드의 실제 키 프리픽스는 저장된 키 프리픽스로 루트로부터 이 노드까지의 경로상에서 모든 키 프리픽스 스트링들을 연쇄적으로 연결함으로써 얻어진다. 적응적 인덱스(adaptive index)의 일 실시예에서, 상기 탐색 트리는 하나의 자식(child)으로 노드들을 붕괴시킴으로써 더 압축된다.
본 발명의 일 실시예는 지도 디스플레이(106)를 가지는 응용(104)과 트리(102) 및 객체 저장소(108)를 포함하는 탐색 시스템을 포함하는 시스템이다. 상기 트리(102)는 키 구조와 관련된 노드들로 구성된다. 상기 트리(102)는 각 노드의 프리픽스를 감소시킴으로써 압축될 수 있다. 상기 트리(102)는 객체들을 저장하는 리프 노드들을 포함할 수 있고, 이때 객체들의 클래스는 단일 탐색 방법을 통하여 액세스되도록 의도된다. 상기 트리(102)는 객체 저장소내의 객체들에 대한 참조들을 포함하는 리프 노드들을 포함할 수 있으며, 이때 객체들의 클래스는 하나 이상의 탐색 방법을 통하여 액세스되도록 의도된다. 상기 트리(102)는 가변 압축의 결과로서, 객체 저장소(108)내의 여러개의 객체들을 참조하는 리프 노드들을 포함할 수 있다. 상기 탐색은 탐색 키에 기초하여 리프 노드(110)을 발견하기 위한 탐색과 상기 리프 노드에 의하여 지시되는 객체들을 확인하는 것을 포함할 수 있다.
상기 시스템(100)은 사용자로부터 입력을 수신하고 출력을 생성할 수 있는 사용자 인터페이스(110)를 가질 수 있다. 하나의 예시적 출력은 유효한 다음 캐릭터들을 보여주는 다음 캐릭터 지시가 될 수 있다. 이용가능한 다음 캐릭터들의 집 합은 상기 트리(102)의 탐색 그리고/또는 아래에서 논의할 객체 저장소(108)로부터 결정될 수 있다.
도 2a와 도 2b는 첫번째 객체에 대한 포인터(ID)와 최소의 읽기 동작 횟수로 객체 저장소로부터 검색될 수 있는 객체들의 수를 담고 있는 짧은 리프 노드들의 예를 보여준다. 도 2a는 (만약 충분한 메모리가 있다면) 한번의 읽기를 요구하는 고정된 크기의 엔트리들과 함께 객체 저장소(202)에 저장되는 객체들의 예를 보여준다. 도 2b는 가변적인 크기의 엔트리들과 함께 객체 저장소(204)에 저장되는 예를 보여준다. 그 경우에, 고정된 크기의 오프셋을 가지는 오프셋 어레이(offset array, 206)는 읽기 동작의 수를 2로 (만약 충분한 메모리가 있다면) 제한하기 위하여 사용될 수 있다.
두 경우에, 객체 데이터는 계수(counts) 숫자에 대응하여 얻어질 수 있다. 예를 들어, 만약 상기 계수가 50이면, 다음 50개의 객체가 상기 객체 저장소로부터 얻어져서 적절하게 분석될 수 있다. 짧은 리프 노드들은 상기 트리에 대한 저장 요구조건을 줄여준다. 이것은 자원이 제한된 시스템들에서 구현되는 이동 지리 응용(mobile geographic applications)에 대하여 중요할 수 있다.
일 실시예에서, 연속적인 객체들이 도 3a에 도시된 것처럼 짧은 리프에 저장될 수 있다. 상기 짧은 리프 노드는 ID와 계수를 담을 수 있다. 상기 객체 저장소내의 객체들의 순서는 키 구조에 의하여 지시된 순서로 정렬된다.
도 3b는 긴 리프를 보여준다. 상기 긴 리프는 각 객체에 대하여 개개의 포인터를 가지는 비연속적인 객체들을 포인트(point)하기 위하여 사용될 수 있다.
도 8은 동일한 객체 저장소(806)내의 객체들을 포인팅하는 두 개의 트리들(802,804)를 가지는 예를 도시한다. 상기 두 트리는 사용자 인터페이스에서 두 개의 상이한 입력 엘레먼트들과 관련될 수 있다. 전형적으로, 탐색 키 구조가 저장소(806)내의 객체들의 순서를 따르는 트리는 연속적인 객체들을 포인트하기 위하여 짧은 리프 노드들을 사용할 수 있다. 다른 트리들은 긴 리프 노드들을 사용할 수 있다. 긴 리프들은 저장 요구조건(storage requirements)을 증가시킨다. 긴 리프 객체들에 대한 읽기 동작의 횟수는 긴 리프내의 객체들의 숫자에 비례한다.
도 4a는 일 실시예에서 "이용가능한 다음 캐릭터"의 집합을 얻는 방법을 의 예를 설명한다. 만약 사용자가 입력 "PIN"을 가진다면, 이용한 가능한 다음 캐릭터들은 노드(402)에 대한 자식 노드들의 프리픽스를 확인함으로써 얻어질 수 있다.
도 4b는 리프 노드(404)가 상기 객체 저장소내의 여러개의 연속적인 객체들을 참조하는 시스템을 보여준다. 이 예에서, 노드 (404)에 대응하는 객체들의 이름은 상기 객체 저장소로부터 얻어지며 "다음 캐릭터" 정보를 얻기 위하여 분석된다. 도 4b의 예에서 리프 노드(404)와 관련된 객체들의 이름들인 PINE RIDGE, PINE VALLEY, PINBROOK, PINECONE, PINNACLE, PINTAIL, 그리고 PINTO는 모두 사용자 입력 "PIN"과 함께 시작한다. 이 이름들은 유효한 다음 캐릭터들{",','N','T'}를 얻기 위하여 분석되며, 사용자에게 출력될 수 있다. 스크롤링(scrolling)과 다른 기능들은 얻어지고 그리고 나서 디스플레이를 위하여 처리되는 리프 노드들과 관련이 있는 객체 데이터의 그룹들과 비슷한 방식으로 구현될 수 있다.
일 실시예에서, 상기 리프 노드들은 관련된 키 정보를 가질 필요가 없다. 이 것은 상기 리프 노드들이 부모 노드와 동일한 키 프리픽스를 가질 것이라는 것을 의미할 수 있다. 이 것은 객체들 또는 객체 참조들이 가장 효율적인 패킹(packing)을 위하여 용이하게 리프 노드들로 결합되는 것을 허용한다는 것을 의미할 수 있다.
일 실시예에서, 상기 리프 노드에 의하여 참조되는 객체들은 그리고 나서 다음 캐릭터를 결정하고 스크롤링을 구현하기 위하여 액세스될 수 있다. 상기 트리는 트리의 상이한 레벨들에서 상기 리프 노드들을 가질 수 있다.
본 발명의 일 실시예는 대부분의 리프 노드들이 여러개의 객체들과 관련되도록 노드들을 결합함으로써, 키 구조를 따르는 키들의 목록을 포함하는 트리를 구성하고, 완전한 트리 구조를 구성한 후 가지를 제거(prune)하는 컴퓨터에서 구현되는 방법이다.
압축 기법들은 리프 노드 참조들을 주어진 기준에 기초하여, 각 노드에 대하여 요구되는 저장 오버헤드를 최소화하도록 객체들에 대한 리프 노드 참조들을 최대화하는 것을 포함할 수 있다.
도 5는 일 실시예의 예시적인 흐름도를 보여준다. 502단계에서, 키구조가 결정된다. 거리 이름에 대한 키 구조의 일 예는 "거리 이름? 도시 이름?" 이며 여기서 '''?'''는 범위를 정하는 캐릭터일 수 있다. 예를 들면, "Kensington?San Francisco". 교차로(Intersection)에 대한 키 구조의 일 예는 "거리1이름?거리2이름?도시이름"이 될 수 있다. 상기 객체 저장소에서 객체들은 복제될 수 있어서 거리 교차로를 탐색하기 위하여 각 순서가 사용될 수 있다. 예를 들면, "Oak?Elm?Sacramento"와 "Elm?Oak?Sacramento"는 단일 엔트리, 또는 각각 동일한 실제 교차로를 그 속성들의 집합과 함께 참조하는 트리 객체 제장소의 두 개의 엔트리로 인도되는 두 개의 상이한 트리 탐색 경로를 나타낼 수 있다.
504단계에서, 상기 키 구조에 기초하는 객체들에 대한 키들의 목록이 결정될 수 있다. 상기 키 구조는 또한 상기 객체 저장소내의 객체들의 순서를 결정할 수 있다.
506단계에서, 상기 키들의 목록에 기초하여 완전한 노드 구조가 생성될 수 있다. 이 완전한 노드 구조는 508,510,512단계에서 보여지는 것처럼 노드와 리프의 수를 감소시킴으로써 트리의 크기를 줄이기 위하여 압축될 수 있다. 또한 도 6a 내지 도 6c에서 예시적 단계들이 나타나 있다.
도 6a에서, 하나의 자식 노드(602)를 가지는 노드(604)가 노드(606)를 형성하기 위하여 자식 노드(602)와 결합된다. 노드(606)는 탐색 스트링내의 여러 캐릭터들과 관련된다.
도 6b는 압축 단계의 일 예를 보여준다. 도 6b의 예에서, 각 손자 노드(grandchild node)는 다른 손자 노드와 결합될 수 있는지의 여부를 알아보기 위하여 체크된다. 일 예에서, 만약 양 손자 노드가 주어진 객체들의 숫자(일 실시예에서의 16과 같은)보다 작다면, 상기 트리는 이 기준을 수용하기 위하여 가지가 제거된다. 도 6b의 예에서, 노드들(610,612,614)은 노드(616)를 형성하기 위하여 함께 결합된다.
도 6c는 노드(620)가 아래의 각 리프 노드에서 관련된 객체들의 수를 최대 크기(일 실시예에서 63과 같은)로 유지하기 위하여 두 개의 노드(622,624)로 분할되는 경우를 보여준다.
위의 예는 단계들이 별개인 것으로 보여준다. 다른 실시예에서, 상기 압축 단계들은 동일한 결과를 내는 하나의 단계로 결합될수 있다.
일 실시예에서, 트리 노드들은 다른 탐색 기준의 지시들(indications)을 저장할 수 있다. 트리상에서의 탐색 또는 다른 동작은 상기 노드와 그 오프스트링 노드들 또는 관련된 객체들이 더 분석될 필요가 있는지의 여부를 결정하기 위하여 상기 지시들을 사용할 수 있다. 일 실시예에서, 상기 지시들은 n 차원(n-dimensional) 탐색을 구현하기 위하여 사용될 수 있다.
일 실시예에서, 탐색이 카테고리 또는 도시와 같은 객체 속성들에 의하여 필터링될 수 있다. 상기 지시들은 상기 노드의 자식(offspring)중에서 발견되지 않는 대상 카테고리들의 지시들 그리고/또는 그 자식중 적어도 하나에 포함되는 객체 카테고리들의 지시들을 포함할 수 있다. 유사하게, 만약 지시들이 도시 아이디(id)를 포함한다면, 탐색은 도시에 의하여 필터링될 수 있다. 일 실시예에서, 사용자는 이름에 의하여 관심 지점을 탐색할 수 있으며, 특정된 객체 카테고리에 의하여 정밀하게 그리고 그 관심 지점이 위치한 도시의 이름에 의하여 더 정밀하게 탐색할 수 있다.
예를 들면, 만약 관심 지점 카테고리들의 존재 혹은 부존재가 트리 노드상에서 지시된다면, 관심 지점에 대한 캐릭터 탐색은 빠른 걸음과 같은 카테고리는 배제하는 노드들을 상기 탐색 경로에서부터 제거할 수 있다.
일 실시예에서, 노드들은 특정 카테고리에 대한 탐색을 단순화하고 속도를 향상시키기 위한 배제 정보 또는 포함 정보를 저장할 수 있다. 상기 배제 정보는 노드와 관련된 객체가 카테고리내에 없다는 것을 지시할 수 있다. 포함 정보는 노드와 관련된 객체이 카테고리내에 있다는 것을 지시할 수 있다.
도 7은 일 예를 보여준다. 이 예에서, 트리 세그먼트(tree segment)상에서의 탐색은 만약 그 탐색이 레스토랑에 대한 것이라면 노드(702)에서, 만약 그 탐색이 주유소에 대한 것이라면 노드(704)에서 멈출 수 있다. 배제 정보와 같은 다른 탐색 기준의 지시들은 노드 트리의 생성시에 구현될 수 있다.
도 7의 트리는 다차원(multi-dimensional) 탐색에 대하여 사용될 수 있다. 예를 들면, 키 정보는 탐색의 첫번째 차원에 대하여 체크될 수 있고 상기 탐색 기준 정보는 상기 탐색의 추가적인 차원들에 대하여 체크될 수 있다.
일 예에서, 사용자 인터페이스는 예를 들면 카테고리와 같이 트리상에서 지시된 추가적인 탐색 기준을 위한 사용자 입력을 수신하기 위하여 체크박스(checkboxes)와 같은 것들을 포함할 수 있다. 상기 탐색은 탐색에서 어떤 노드를 검사할 것인지를 결정하기 위하여 상기 카테고리 정보를 사용할 수 있다. 도 7의 예에서, 만약 사용자가 주유소를 찾고 있고 "P"를 입력했다면, 노드 (704)는 주유소를 배제하기 때문에 "I"는 이용가능한 다음 캐릭터로 나타나지 않을 것이다.
상기 탐색 기준은 카테고리들이 노드의 자식 또는 유사한 것들 중에서 발견되지 않는 다는 것을 지시하기 위하여 어떤 노드들과 관련된 코드일 수 있다. 상기 객체 저장소내의 객체들은 또한 관련된 카테고리 정보를 가질 수 있어서 2 차원 탐 색은 트리의 노드들과 객체 저장소내의 객체들을 포함할 수 있다.
상기 키 구조를 선택하기 위하여 사용된 API는 다차원 탐색을 가능하게 하기 위하여 트리에 대한 추가적인 탐색 기준을 부가하는데 사용될 수 있다.
동시 계류중인 제목이 "NEAREST SEARCH ON ADAPTIVE INDEX WITH VAIABLE COMPRESSION'이고, 출원일이 2006년 6월 30일인 미국 출원 제60/806,367호(Attorney Docket No. TELA-07781US0)에서 서술하고 있는 것처럼, 상기 탐색 시스템은 특정 위치에 대한 가장 근접한 탐색을 수행하기 위하여 사용될 수 있다.
컴퓨터 기술 분야에서 통상의 지식을 가진자에게는 분명하듯이, 일 실시예는 본 개시의 가르침에 따라 프로그래밍된 특수화된 디지털 컴퓨터 또는 마이크로프로세서(들)의 종래의 일반적인 목적을 이용하여 구현될 수 있다. 컴퓨터 기술 분야에서 통상의 지식을 가진 프로그래머라면 본 개시의 가르침에 기초하여 적절한 소프트웨어 코딩을 할 수 있으며, 이는 소프트웨어 기술 분야에서 통상의 지식을 가진자에게는 명백할 것이다. 본 발명은 또한 집적회로에 의하여 또는 종래의 부품 회로의 적절한 네트워크를 상호 연결함으로써 구현될 수 있으며, 이는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게는 명백할 것이다.
일 실시예는 저장된 명령들을 가지는 저장 미디엄(미디어)인 컴퓨터 프로그램 제품을 포함하며, 이 저장 미디엄(미디어)는 여기에서 제시된 특징들중 어떠한 것들이라도 수행하기 위하여 컴퓨터를 프로그램하기 위하여 사동될 수 있다. 상기 저장 미디엄은 플로피 디스크, 광 디스크, DVD, CD-ROM, 마이크로 드라이브(micro drive), 그리고 자기-광학 디스크, ROM, RAM, EPROM, EEPROM, DRAM, 미디어의 플래 쉬 메모리 또는 명령들을 저장하기에 적합한 소자(device) 그리고/또는 컴퓨터가 읽을 수 있는 미디엄(미디어)중의 임의의 것을 포함하지만 이에 한정되지는 아니하고, 본 발명은 범용/특수목적의 컴퓨터 또는 마이크로프로세서의 하드웨어 그리고 컴퓨터 또는 마이크로프로세서가 사용자 또는 본 발명의 결과를 이용하는 다른 메커니즘이 상호 동작할 수 있도록 하는 소프트웨어를 포함한다.
본 발명의 바람직한 실시예들에 대한 앞서의 설명은 설명과 서술의 목적으로 제공되었다. 본 발명을 개시된 정확한 형태로 제한하거나 모두 규명할 의도는 아니다. 많은 수정과 변형이 관련된 기술분야에서 통상의 지식을 가진자에게 명백할 것이다. 예를 들면, 본 발명의 실시예들에서 수행되는 단계들은 다른 순서로, 즉 어떤 단계들은 생략되고, 그리고 다른 단계들이 추가될 수 있는 그러한 순서로 수행될 수 있다. 본 발명의 원리와 실제적인 응용을 가장 잘 설명하여, 그럼으로써 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 다양한 실시예와 특정한 용도에 적합한 다양한 수정과 함께 본 발명을 이해할 수 있도록 하고자 하는 목적으로 실시예들은 선택되고 서술되었다. 본 발명의 범위는 청구범위 그리고 그 등가(equivalents)에 의하여 정의되어야 한다.

Claims (67)

  1. 키와 관련된 노드들로 구비되는 트리를 탐색하되, 상기 트리는 주어진 압축 기준에 따라 가지가 제거되고(pruned), 상기 트리는 여러개의 객체를 저장하거나 객체 저장소(object store)내의 여러개의 객체를 참조하는 리프 노드들(leaf nodes)을 포함하며, 상기 여러개의 객체는 상이한 키 값들을 가지고, 상기 탐색은 탐색 키(search key)에 기초하여 리프 노드를 발견하기 위한 탐색을 포함하며; 여기서 상기 탐색은 상기 리프 노드에 의하여 지시되는 상기 객체들을 확인(check)하는 것을 더 포함하는, 컴퓨터에서 구현되는 방법.
  2. 제1항에 있어서, 상기 리프 노드들은 그 부모 노드들과 동일한 키 프리픽스(key prefix)와 관련되는, 컴퓨터에서 구현되는 방법.
  3. 제1항에 있어서, 노드들은 다른 탐색 기준의 지시(indications)를 저장하는, 컴퓨터에서 구현되는 방법.
  4. 제3항에 있어서, 상기 다른 탐색 기준의 지시는 상기 노드의 자식(offspring)중에서 발견되지 않는 객체 속성들의 지시를 포함하는, 컴퓨터에서 구현되는 방법.
  5. 제3항에 있어서, 상기 다른 탐색 기준의 지시는 상기 노드의 적어도 하나의 자식(offspring)에 포함되는 객체 속성들의 지시를 포함하는, 컴퓨터에서 구현되는 방법.
  6. 제1항에 있어서, 상기 탐색 시스템용 키 구조를 선택하기 위하여 API가 사용되고 상기 키 구조의 선택에 대응하여 객체들의 키들이 상기 객체 저장소와 트리를 구성하기 위하여 사용되는, 컴퓨터에서 구현되는 방법.
  7. 제1항에 있어서, 사용자가 캐릭터(character)로 응용 캐릭터에 대한 키를 입력하고, 상기 응용은 유효한 다음 입력 캐릭터들을 지시하기 위하여 상기 트리를 탐색하는, 컴퓨터에서 구현되는 방법.
  8. 제7항에 있어서, 상기 응용은 상기 유효한 다음 캐릭터들을 지시하는 출력을 제공하는, 컴퓨터에서 구현되는 방법.
  9. 제1항에 있어서, 상기 키 구조는 지리적 위치 또는 객체의 이름을 지시하는, 컴퓨터에서 구현되는 방법.
  10. 제1항에 있어서, 상기 키 구조는 주(states)와 도시(cities)를 지시하는, 컴퓨터에서 구현되는 방법.
  11. 제1항에 있어서, 상기 키 구조는 거리(streets)를 지시하는, 컴퓨터에서 구현되는 방법.
  12. 제1항에 있어서, 상기 키 구조는 교차로(street intersections)를 지시하는, 컴퓨터에서 구현되는 방법.
  13. 제1항에 있어서, 상기 키 구조는 관심지점(POI;Points of Interest)을 지시하는, 컴퓨터에서 구현되는 방법.
  14. 제1항에 있어서, 상기 키 구조는 좌표를 지시하는, 컴퓨터에서 구현되는 방법.
  15. 제1항에 있어서, 상기 키 구조는 위치에 링크된 객체를 지시하는, 컴퓨터에서 구현되는 방법.
  16. 제1항에 있어서, 상기 리프 노드는 상기 리프의 부모로부터 물려받은 동일한 프리픽스를 가지는 여러 개의 객체를 지시하는, 컴퓨터에서 구현되는 방법.
  17. 제1항에 있어서, 상기 탐색은 객체 이름에 대하여 수행되는, 컴퓨터에서 구 현되는 방법.
  18. 제1항에 있어서, 상기 탐색은 지오코딩(geocoding), 지오룩업(geo-lookup), 역 지오코딩(reverse geocoding), 그리고 관심지점에 대하여 수행되는, 컴퓨터에서 구현되는 방법.
  19. 응용; 및
    상기 응용을 위한 트리를 검색하기 위한 탐색 시스템을 포함하되, 상기 트리는 키와 관련된 노드들로 구성되고, 상기 트리는 객체 저장소내의 여러개의 객체와 관련된 리프 노드들을 포함하며, 상기 여러개의 객체는 상이한 키 값들을 가지며, 상기 탐색은 탐색 키에 기초하여 리프 노드를 발견하기 위한 탐색을 포함하며; 여기서 상기 탐색은 상기 리프 노드에 의하여 지시되는 객체들을 확인하는 것을 더 포함하는, 시스템.
  20. 제19항에 있어서, 노드들은 다른 탐색 기준의 지시들을 저장하는, 시스템.
  21. 제20항에 있어서, 상기 다른 탐색 기준의 지시들은 상기 노드의 자식(offspring)중에서 발견되지 않는 객체 속성들의 지시를 포함하는, 시스템.
  22. 제19항에 있어서, 상기 탐색되는 객체들은 비공간적(non-spatial) 객체인, 시스템.
  23. 제20항에 있어서, 상기 다른 탐색 기준의 지시들은 상기 노드의 적어도 하나의 자식에 포함되는 객체 속성들의 지시를 포함하는, 시스템.
  24. 제19항에 있어서, 상기 탐색되는 객체들은 공간적 객체들인, 시스템.
  25. 제19항에 있어서, 상기 탐색 시스템용 키 구조를 선택하기 위하여 API가 사용되고 상기 키 구조의 선택에 대응하여 객체들의 키들이 상기 객체 저장소와 트리를 구성하기 위하여 사용되는, 시스템.
  26. 제19항에 있어서, 사용자가 응용에 데이터를 입력하고, 상기 응용은 유효한 다음 입력 문자들을 지시하기 위하여 상기 트리를 탐색하는, 시스템.
  27. 제25항에 있어서, 상기 응용은 상기 유효한 다음 캐릭터들을 지시하는 디스플레이를 제공하는, 시스템.
  28. 제19항에 있어서, 상기 키의 일부는 주(state)를 나타내는, 시스템.
  29. 제19항에 있어서, 상기 키의 일부는 시(city)를 나타내는, 시스템.
  30. 제19항에 있어서, 상기 키의 일부는 거리(street)를 나타내는, 시스템.
  31. 제19항에 있어서, 상기 키의 일부는 교차로(street intersection)를 나타내는, 시스템.
  32. 제19항에 있어서, 상기 키 구조는 관심 지점(POI)을 나타내는, 시스템.
  33. 제19항에 있어서, 상기 키 구조는 좌표를 나타내는, 시스템.
  34. 제19항에 있어서, 상기 키 구조는 공간상의 객체들에 연결된 객체들을 나타내는, 시스템.
  35. 제19항에 있어서, 상기 리프 노드들은 동일한 프리픽스(prefix)를 가지는 여러개의 객체를 나타내는, 시스템.
  36. 제19항에 있어서, 상기 탐색은 지오코딩을 위하여 수행되는, 시스템.
  37. 제19항에 있어서, 상기 탐색은 지오룩업을 위하여 수행되는, 시스템.
  38. 제19항에 있어서, 상기 탐색은 역 지오코딩을 위하여 수행되는, 시스템.
  39. 제19항에 있어서, 상기 탐색은 관심지점의 위치를 찾기 위하여 수행되는, 시스템.
  40. 이용할 수 있는 다음 캐릭터들을 결정하기 위하여 트리를 탐색하되, 상기 트리는 키와 관련된 노드들로 구성되고, 상기 트리는 객체 저장소내의 여러개의 객체와 관련된 리프 노드들을 포함하며, 상기 여러개의 객체는 상이한 키 값을 가지고, 여기서 이용할 수 있는 다음 캐릭터들을 결정하기 위한 상기 탐색은 상기 트리로부터 그리고/또는 상기 객체 저장소내의 객체들로부터 이용할 수 있는 다음 캐릭터를 획득하는 것을 포함하는, 컴퓨터에서 구현되는 방법.
  41. 트리 구조를 구성하는 컴퓨터에서 구현되는 방법으로서,
    키 구조를 따르는 키들을 가지는 객체들의 목록을 수신하고;
    완전한 트리 구조를 구성하고; 그리고
    대부분의 리프 노드들이 여러개의 객체와 관련되도록 노드들을 결합하는; 것을 포함하는, 컴퓨터에서 구현되는 방법.
  42. 제41항에 있어서, 노드들은 다른 탐색 기준의 지시들을 저장하는, 컴퓨터에서 구현되는 방법.
  43. 제42항에 있어서, 상기 다른 탐색 기준의 지시는 상기 노드의 자식(offspring)중에서 발견되지 않는 객체 속성들의 지시를 포함하는, 컴퓨터에서 구현되는 방법.
  44. 제42항에 있어서, 상기 다른 탐색 기준의 지시들은 상기 노드의 적어도 하나의 자식에 포함되는 객체 속성들의 지시를 포함하는, 컴퓨터에서 구현되는 방법.
  45. 제42항에 있어서, 상기 탐색 시스템용 키 구조를 선택하기 위하여 API가 사용되고 상기 키 구조의 선택에 대응하여 객체들의 키들이 상기 객체 저장소와 트리를 구성하기 위하여 사용되는, 컴퓨터에서 구현되는 방법.
  46. 제41항에 있어서, 상기 트리 높이는 상기 압축 기준에 따라서 가지가 제거되는, 컴퓨터에서 구현되는 방법.
  47. 제41항에 있어서, 상기 노드들을 결합하는 것은 리프 노드들을 결합하는 것을 포함하는, 컴퓨터에서 구현되는 방법.
  48. 제41항에 있어서, 짧은 리프 노드들에 의하여 참조되는 객체들은 인접하여 저장되는, 컴퓨터에서 구현되는 방법.
  49. 제41항에 있어서, 긴 리프 노드들에 의하여 참조되는 객체들은 비 순차적 객체들(non-sequential objects)을 가리키는, 컴퓨터에서 구현되는 방법.
  50. 트리의 노드들에 대한 탐색을 포함하되, 상기 트리의 노드들은 키 정보를 지시하며, 적어도 일부 노드들은 추가적인 탐색 기준 정보를 지시하고, 상기 탐색은 상기 키 정보가 상기 탐색의 첫번째 차원(first dimension)에 대하여 확인되고 상기 탐색 기준 정보가 상기 탐색의 추가적인 차원들에 대하여 확인되도록 다차원(multi-dimensional)인, 컴퓨터에서 구현되는 방법.
  51. 제50항에 있어서, 상기 키값들은 상기 탐색의 첫번째 차원에서 사용자 입력과 비교되는, 컴퓨터에서 구현되는 방법.
  52. 제50항에 있어서, 상기 가지가 제거된 트리는 여러개의 객체들을 저장하거나 객체 저장소내의 여러개의 객체를 참조하는 리프 노드들을 포함하는, 컴퓨터에서 구현되는 방법.
  53. 제50항에 있어서, 상기 탐색 기준은 상기 노드의 자식중에서 발견되지 않는 객체 속성들을 지시하는, 컴퓨터에서 구현되는 방법.
  54. 제50항에 있어서, 상기 탐색 기능은 상기 노드의 자식에 포함되는 객체 속성들을 지시하는, 컴퓨터에서 구현되는 방법.
  55. a) 객체들의 클래스(class)에 대하여, 다수의 사용자 인터페이스들을 수용하도록 조작될 수 있는 스트링 탐색 키 컴포넌트들의 정의;
    b) 탐색 키의 컴포넌트들을 구분하는 객체 저장소;
    c) 주어진 사용자 인터페이스를 만들어내기 위한 상기 컴포넌트들로부터의 탐색 키 구조 구성;
    d) 노드들이 탐색 키 구조와 관련되는 주어진 탐색 키 정의에 대하여 구성된 적응적 탐색 트리로서, 상기 리프 노드들은 객체를 저장하거나 객체 저장소내의 객체들을 참조하고, 상기 트리 저장소는 주어진 압축 기준에 기초하여 최소화되며, 여기서 적응적 탐색 방법이 상기 탐색 트리와 상기 객체 저장소를 통하여 일치하는 객체들의 위치를 찾는데 사용되며, 상기 탐색은 압축과 주어진 사용자 인터페이스로부터 상기 트리 구조에 적응적인, 컴퓨터에서 구현되는 시스템.
  56. 제55항에 있어서, 상기 트리로부터 일치하는 객체를 검색하는 것은 부분적 또는 전체 탐색 키의 입력에 기초하는, 컴퓨터에서 구현되는 시스템.
  57. 제55항에 있어서, 탐색 키는 주된(primary) 탐색 키 컴포넌트들의 완전한 셋트 또는 서브셋(subset)을 선택함으로써 정의되는, 컴퓨터에서 구현되는 시스템.
  58. 제55항에 있어서, 탐색 키는 선택된 주된 탐색 키 컴포넌트들에 대하여 순서를 부과함으로써 정의되는, 컴퓨터에서 구현되는 시스템.
  59. 제55항에 있어서, 상기 객체 저장 순서는 상기 주된 탐색키에 의하여 부과되는, 컴퓨터에서 구현되는 시스템.
  60. 제55항에 있어서, 하나 이상의 탐색 트리들은 동일한 객체 저장소를 참조할 수 있으며, 각 트리는 자신만의 탐색 키 구조를 가지는, 컴퓨터에서 구현되는 시스템.
  61. 제55항에 있어서, 유일한 키 구조가 객체들의 클래스에 대하여 정의되는, 컴퓨터에서 구현되는 시스템.
  62. 제55항에 있어서, 다음에 이용할 수 있는 입력 캐릭터들이 압축된 트리로부터 그리고/또는 객체 저장소로부터 검색될 수 있는, 컴퓨터에서 구현되는 시스템.
  63. 제55에 있어서, 주어진 사용자 인터페이스 프로파일(profile)과 선택된 압축 기준에 대하여, 탐색 트리 크기에 대한 점수가 생성되고, 최선, 평균, 그리고 최악의 경우의 탐색성능에 대한 점수가 생성되어, 시스템 설계자들에게 상이한 구현들 의 점수를 비교함으로써 다양한 요구조건의 균형을 맞출수 있는 도구를 부여하는, 컴퓨터에서 구현되는 시스템.
  64. 제55항에 있어서, 노드의 자식중에서 주어진 기준에 일치하는 적어도 하나의 객체의 존재를 지시하는 추가적인 탐색 기준을 각 트리 노드에 선택적으로 저장함으로써 다차원(multi-dimensional) 탐색을 수용하는, 컴퓨터에서 구현되는 시스템.
  65. 제55항에 있어서, 상기 압축은 노드들과 가지들을 결합하고 분리하는 것을 포함하는, 컴퓨터에서 구현되는 시스템.
  66. 제65항에 있어서, 상기 결합과 분리는 한 단계로 수행되는, 컴퓨터에서 구현되는 시스템.
  67. 다양한 사용자 인터페이스 외양(look)과 감정(feel) 프로파일을 수용하기 위하여 컴퓨터에서 구현되는 시스템으로서,
    a) 객체들의 클래스에 대하여, 다수의 사용자 인터페이스들을 수용하도록 조작될 수 있는 스트링 탐색 키 컴포넌트들의 정의;
    b) 탐색 키의 컴포넌트들을 구분하는 객체 저장소;
    c) 키의 컴포넌트들의 조작으로 상이한 사용자 인터페이스를 구현하기 위한 상기 컴포넌트들로부터의 탐색 키 구조 구성;
    d) 설계자가 키의 컴포넌트와 키의 컴포넌트들의 순서를 선택하여 결과적으로 탐색의 상이한 사용자 인터페이스를 구현할 수 있는 스트링 키 구조를 정의하는 API;
    e) 객체 저장소내의 탐색 키 컴포넌트들로부터 구현될 수 있는 여러 사용자 인터페이스중의 하나에 대하여 객체 탐색을 수용할 수 있는 적응적으로 압축된 탐색 트리로서, 여기서 노드들은 탐색 키 구조와 연관되며 리프들은 객체를 저장하거나 객체 저장소내의 객체들을 참조하는, 컴퓨터에서 구현되는 방법.
KR1020087030264A 2006-06-30 2007-06-28 가변 압축을 가지는 적응형 인덱스 KR20090028705A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US80636606P 2006-06-30 2006-06-30
US80636706P 2006-06-30 2006-06-30
US60/806,367 2006-06-30
US60/806,366 2006-06-30

Publications (1)

Publication Number Publication Date
KR20090028705A true KR20090028705A (ko) 2009-03-19

Family

ID=38895345

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020087030264A KR20090028705A (ko) 2006-06-30 2007-06-28 가변 압축을 가지는 적응형 인덱스
KR1020087030270A KR20090028706A (ko) 2006-06-30 2007-06-28 가변 압축을 구비한 적응적인 인덱스 상의 최접근 탐색

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020087030270A KR20090028706A (ko) 2006-06-30 2007-06-28 가변 압축을 구비한 적응적인 인덱스 상의 최접근 탐색

Country Status (9)

Country Link
US (2) US20080040384A1 (ko)
EP (2) EP2035973A4 (ko)
JP (2) JP2009543225A (ko)
KR (2) KR20090028705A (ko)
AU (2) AU2007269283A1 (ko)
BR (2) BRPI0712822A2 (ko)
CA (2) CA2655011A1 (ko)
RU (2) RU2008149114A (ko)
WO (1) WO2008005809A2 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8369866B2 (en) * 2004-11-05 2013-02-05 Wirelesswerx International, Inc. Method and system for providing area specific messaging
JP4491480B2 (ja) * 2007-10-11 2010-06-30 株式会社日立製作所 インデクス構築方法、文書検索装置及びインデクス構築プログラム
US7734714B2 (en) * 2008-01-11 2010-06-08 Spacecurve, Inc. Spatial Sieve Tree
US8126929B2 (en) 2008-03-27 2012-02-28 International Business Machines Corporation Method and apparatus for encoding list of variable length structures to support bi-directional scans
EP2241983B1 (en) 2009-04-17 2012-12-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method for searching objects in a database
NL2002799C2 (en) * 2009-04-24 2010-10-26 Univ Delft Tech Data structure, method and system for address lookup.
US9453741B2 (en) * 2010-03-31 2016-09-27 Telenav, Inc. Navigation system with indexed term searching and method of operation thereof
JP5766588B2 (ja) * 2011-11-16 2015-08-19 クラリオン株式会社 検索端末装置、検索サーバ装置、及びセンタ連携型検索システム
US8745022B2 (en) 2011-11-22 2014-06-03 Navteq B.V. Full text search based on interwoven string tokens
US8738595B2 (en) 2011-11-22 2014-05-27 Navteq B.V. Location based full text search
US8694239B2 (en) 2011-12-13 2014-04-08 Telenav, Inc. Navigation system with intelligent trie and segmentation mechanism and method of operation thereof
EP2798538B1 (en) * 2011-12-29 2019-08-28 P2S Media Group OY Method and apparatus for providing metadata search codes to multimedia
US8868106B2 (en) * 2012-02-29 2014-10-21 Aeris Communications, Inc. System and method for large-scale and near-real-time search of mobile device locations in arbitrary geographical boundaries
US8700661B2 (en) 2012-04-12 2014-04-15 Navteq B.V. Full text search using R-trees
US8930374B2 (en) 2012-06-29 2015-01-06 Nokia Corporation Method and apparatus for multidimensional data storage and file system with a dynamic ordered tree structure
JP6167531B2 (ja) * 2013-01-24 2017-07-26 富士通株式会社 領域検索方法、領域インデックス構築方法および領域検索装置
EP2770444A1 (en) * 2013-02-25 2014-08-27 Harman Becker Automotive Systems GmbH Navigation device having next valid character search tree
BR112015023617B1 (pt) * 2013-03-15 2022-05-31 Twitter, Inc Método e sistema para gerar um trie de geocódigo e facilitar buscas de geocódigo reverso
CN104077311B (zh) 2013-03-28 2017-11-14 国际商业机器公司 车辆位置索引方法及装置
US9710485B2 (en) * 2014-03-14 2017-07-18 Twitter, Inc. Density-based dynamic geohash
US10235338B2 (en) 2014-09-04 2019-03-19 Nvidia Corporation Short stack traversal of tree data structures
US9552664B2 (en) 2014-09-04 2017-01-24 Nvidia Corporation Relative encoding for a block-based bounding volume hierarchy
DE102015210384A1 (de) 2015-06-05 2016-12-08 Soitec Verfahren zur mechanischen Trennung für eine Doppelschichtübertragung
CN105791283B (zh) * 2016-02-29 2018-09-21 电子科技大学 一种针对加密的空间数据的圆形范围搜索方法
US10725988B2 (en) 2017-02-09 2020-07-28 Micron Technology, Inc. KVS tree
US10706105B2 (en) 2017-02-09 2020-07-07 Micron Technology, Inc. Merge tree garbage metrics
US10719495B2 (en) 2017-02-09 2020-07-21 Micron Technology, Inc. Stream selection for multi-stream storage devices
US10706106B2 (en) 2017-02-09 2020-07-07 Micron Technology, Inc. Merge tree modifications for maintenance operations
US10915546B2 (en) 2018-10-10 2021-02-09 Micron Technology, Inc. Counter-based compaction of key-value store tree data block
US11100071B2 (en) 2018-10-10 2021-08-24 Micron Technology, Inc. Key-value store tree data block spill with compaction
US11048755B2 (en) 2018-12-14 2021-06-29 Micron Technology, Inc. Key-value store tree with selective use of key portion
US10852978B2 (en) 2018-12-14 2020-12-01 Micron Technology, Inc. Key-value store using journaling with selective data storage format
US10936661B2 (en) 2018-12-26 2021-03-02 Micron Technology, Inc. Data tree with order-based node traversal

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197500B1 (en) * 1996-10-25 2007-03-27 Navteq North America, Llc System and method for use and storage of geographic data on physical media
US5968109A (en) * 1996-10-25 1999-10-19 Navigation Technologies Corporation System and method for use and storage of geographic data on physical media
US8452776B2 (en) * 1999-12-22 2013-05-28 Celeritasworks, Llc Spatial data portal
US7292585B1 (en) * 2002-12-20 2007-11-06 Symantec Operating Corporation System and method for storing and utilizing routing information in a computer network
GB2402237A (en) * 2003-05-29 2004-12-01 Oracle Int Corp Database hierarchical data extraction using a generated SQL statement
US20070253642A1 (en) * 2006-04-27 2007-11-01 Mapinfo Corporation Method and apparatus for indexing, storing and retrieving raster (GRID) data in a combined raster vector system

Also Published As

Publication number Publication date
EP2035974A2 (en) 2009-03-18
CA2655011A1 (en) 2008-01-10
WO2008005809A2 (en) 2008-01-10
AU2007269284A1 (en) 2008-01-10
CA2654858A1 (en) 2008-01-10
AU2007269283A1 (en) 2008-01-10
US20080040384A1 (en) 2008-02-14
JP2009543224A (ja) 2009-12-03
RU2008149110A (ru) 2010-06-20
EP2035973A4 (en) 2009-12-16
WO2008005809A3 (en) 2008-10-23
JP2009543225A (ja) 2009-12-03
EP2035973A2 (en) 2009-03-18
KR20090028706A (ko) 2009-03-19
BRPI0712824A2 (pt) 2012-07-24
US20080016066A1 (en) 2008-01-17
RU2008149114A (ru) 2010-06-20
EP2035974A4 (en) 2009-12-09
BRPI0712822A2 (pt) 2012-07-24

Similar Documents

Publication Publication Date Title
KR20090028705A (ko) 가변 압축을 가지는 적응형 인덱스
EP2783307B1 (en) Location based full text search
US8700661B2 (en) Full text search using R-trees
US8775432B2 (en) Indexing long word lists in databases
EP2363816A1 (en) Destination search in a navigation system using a spatial index structure
US20120215806A1 (en) Navigation system data base system
KR20090015908A (ko) 지역성 인덱스 및 지역성을 인덱싱하기 위한 방법
WO2003098477A1 (en) Search and presentation engine
WO2012082859A1 (en) High efficiency prefix search algorithm supporting interactive, fuzzy search on geographical structured data
EP1893947A1 (en) Data presentation for navigation system
EP2795256A1 (en) Methods for facilitating searching of points of interest along a route
EP2783308B1 (en) Full text search based on interwoven string tokens
US10984025B2 (en) Device and method for displaying and searching for location by using grid and words
CN101467149A (zh) 具有可变压缩的自适应索引
WO2008005808A2 (en) Adaptive index with variable compression
KR102436373B1 (ko) 전자 디바이스에서 수신된 입력 스트링에 기반한 하나 이상의 다수 단어 후보들을 제안하는 방법
JP5505207B2 (ja) 情報検索装置、情報検索方法及び情報検索プログラム

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid