KR20120096894A - 데이터베이스 검색방법, 네비게이션 장치 및 인덱스 구조 생성 방법 - Google Patents

데이터베이스 검색방법, 네비게이션 장치 및 인덱스 구조 생성 방법 Download PDF

Info

Publication number
KR20120096894A
KR20120096894A KR1020120017458A KR20120017458A KR20120096894A KR 20120096894 A KR20120096894 A KR 20120096894A KR 1020120017458 A KR1020120017458 A KR 1020120017458A KR 20120017458 A KR20120017458 A KR 20120017458A KR 20120096894 A KR20120096894 A KR 20120096894A
Authority
KR
South Korea
Prior art keywords
distance
index structure
objects
nodes
node
Prior art date
Application number
KR1020120017458A
Other languages
English (en)
Other versions
KR101945749B1 (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 KR20120096894A publication Critical patent/KR20120096894A/ko
Application granted granted Critical
Publication of KR101945749B1 publication Critical patent/KR101945749B1/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/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • 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
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Remote Sensing (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

네비게이션 장치 데이터베이스에서 유사성 검색을 수행하는 방법은 메트릭 인덱스 구조(metric index structure)를 사용한다. 인덱스 구조는 복수의 노드를 포함한다. 질의 객체(51)가 수신될 때, 적어도 하나의 객체(52, 55, 59. 60)와 관련된 인덱스 구조의 노드가 억세스 된다. 질의 객체(51)와 적어도 하나의 객체(52, 55, 59, 60) 간의 거리(65, 66)가 거리 메트릭에 따라 결정된다. 결정된 거리에 근거하여, 인덱스 구조의 다른 노드가 선택적으로 억세스 된다.

Description

데이터베이스 검색방법, 네비게이션 장치 및 인덱스 구조 생성 방법{Method of searching a data base, navigation device and method of generating an index structure}
발명은 네비게이션 장치에 사용하기 위한 데이터베이스 검색방법 및 장치에 관한 것이다. 발명은 특히, 인덱스 구조(index structure)를 이용한 네비게이션 장치 데이터베이스 검색 방법, 네비게이션 장치 및 인덱스 구조 생성 방법에 관한 것이다.
네비게이션 장치는 두 위치 사이의 경로 탐색과 같은 기능을 수행하는 것으로 알려졌다. 현대적인 네비게이션 장치는 요청에 따라 관심 지점(POI; point of interest)의 정보를 출력하는 여행 안내로서의 봉사와 같은 부가적인 기능을 제공할 수도 있다. 그러한 정보는 거리 이름을 포함할 수 있으나, 부가적인 텍스트(text) 또는 멀티미디어 정보를 포함할 수도 있다. 예를 들어, 어떤 네비게이션 장치는 텍스트 및/또는 멀티미디어 형태로 객체에 대한 상세한 설명을 출력하기 위한 여행 안내 기능을 포함할 수 있다.
현대적인 네비게이션 장치에서 사용되는 데이터베이스의 크기에 기인하여, 데이터베이스에서의 검색 수행은 매우 중요한 과제이다. 이것은 특히 검색이 텍스트 문자열, 음소 문자열, 멀티미디어 객체 또는 유클리드 공간에서 정의되지 않은 다른 객체에 대하여 수행될 때 적용된다. 2D 또는 3D 공간에서 정의된 물체의 기하학적 좌표는 물체가 좌표 기반 검색을 위하여 그들의 좌표에 근거하여 인덱싱될 수 있게 한다. 그러한 인덱싱은 텍스트 문자열, 음소 문자열, 멀티미디어 객체 또는 유클리드 공간에서 정의되지 않은 다른 객체와 같은 객체들에 대하여 더욱 시도되고 있다.
또한, 검색이 텍스트 문자열, 음소 문자열 또는 멀티미디어 객체와 같은 객체에 대하여 수행되는 때, 사용자는 정확한 획득에만 관심을 가질 것이다. 사용자는 반드시 동일하지는 않지만 문의에 유사한 검색 결과 정보를 얻는데에 오히려 관심이 있을 수 있다. 경로 검색을 위한 출발 및 목적지, 중간지점 또는 경유지점의 입력이나 POI의 입력과 같은 많은 적용에 대하여, 사용자는 이름의 정확한 텍스트 표현을 알지 못할 수 있다. 첫 번째 글자에 따라 데이터베이스에서 정확히 일치하는 것을 검색하는 종래의 기술은 이들 첫 번째 글자에 틀린 철자가 있을 때 실패할 수 있다.
또한, 네비게이션 장치에서, 저장공간 제한 및 유효 계산시간 한계에 의해 주워지는 제약은 특히 내결함성의 효율적인 검색 시행에 도전케 한다.
따라서, 내결함성 검색이 실행되게 하는 방법 및 네비게이션 장치를 제공할 필요가 있다. 특히, 내결함성 검색이 효율적으로 수행되게 하는 방법 및 네비게이션 장치가 요구된다.
이 요구는 특허청구범위의 독립 청구항에 언급된 바와 같은 장치 및 방법에 의해 다루어진다. 특허청구범위의 종속 청구항은 실시예를 정의한다.
한 관점에 따르면, 네비게이션 장치 데이터베이스에서 유사성 검색을 수행하는 방법이 제공된다. 유사성 검색은 인덱스 구조를 이용하여 수행된다. 데이터베이스는 복수의 객체를 포함하고, 인덱스 구조는 복수의 노드를 포함한다. 질의 객체가 수신된다. 복수 객체의 적어도 하나와 관련된 인덱스 구조의 노드가 억세스된다. 억세스된 노드의 적어도 하나의 객체에 대하여, 질의 객체와 객체 간의 거리가 거리 메트릭(distance metric)에 따라서 결정된다. 결정된 거리에 근거하여, 인덱스 구조의 다른 노드가 선택적으로 억세스 된다.
방법은 유사성 검색을 사용한다. 이것은 시행되는 퍼지 검색이 정확히 일치하는 정보를 제공할 뿐만 아니라 데이터베이스에서 가장 유사한 객체의 정보를 검색하게도 한다. 방법에서, 질의 객체와 인덱스 구조의 노드의 객체 간 거리는 어느 다른 노드(노드들)가 억세스 되는지 확인하기 위하여 결정된다. 이것은 검색을 효율성있게 수행하게 한다. 그것은 임계치보다 큰 질의 객체로부터의 거리를 갖는 객체를 가리키지도 않고 포함하지도 않는 노드를 억세스 하는 것을 요구하지 않는다. 거리 메트릭에 따라 결정되는 거리를 사용함에 의하여, 질의 객체와 인덱스 구조에 포함된 객체 간의 거리가 양적으로 평가된다.
인덱스 구조는 네비게이션 장치의 저장장치에 저장될 수 있다.
인덱스 구조는 메트릭 인덱스 구조(metric index structure)일 수 있다. 기존의 용어에 따르면, 메트릭 인덱스 구조는 인덱스를 분할하기 위한 다 차원 공간에서의 그들의 좌표보다는 객체 간의 상대적인 거리로만 간주하는 인덱스이다. 인덱스 구조는 특히 M-트리, 밴티지 포인트 트리(vantage point tree) 또는 거리 메트릭에 따라 구성되는 다른 트리 구조일 수 있다. 인덱스 구조는 질의 객체와 검색 수행중인 객체 간의 거리 결정에 사용되는 거리와 같은 거리 함수에 따라 구성된다.
기존의 용어 사용에 있어서, "거리 메트릭(distance metric)" 또는 메트릭(metric)"은 반사도의 정의, 대칭 및 삼각 부등식을 충족하는 거리 함수를 일컫는 것으로 이해된다.
기존 용어의 사용에 있어서, 용어 "유사성 검색"은 질의 객체에 관련된 유사성 또는 다른 비유사성에 관한 주어진 기준을 충족하는 객체에 대한 검색을 일컫기 위하여 사용된다. 실시예는 거리 메트릭에 따른 거리로서 측정된 고정 임계치보다 작은 비유사성을 갖는 객체에 대한 검색, 또는 인덱스 객체 중에서 질의 객체로부터 거리 메트릭에 따른 거리로서 측정된 최소 비유사성을 갖는 객체에 대한 검색을 포함한다.
그것은 가능하지만, 질의 객체와 검색시에 방문된 노드로 표현된 모든 객체 간의 정확한 거리를 결정할 필요는 없다. 인덱스 구조를 통한 경로 상 적어도 일부의 노드에 대하여, 그것은 질의 객체와 인덱스 구조의 각 객체 간의 거리에 대한 하계(lower bound)를 결정하기에 충분할 수 있다.
객체는 문자열, 특히 음소 문자열 또는 텍스트 문자열일 수 있다. 대응하여, 질의 객체는 음소 문자열 또는 텍스트 문자열일 수 있다. 이것은 음소 문자열 또는 텍스트 문자열에 대한 내결함성 검색이 수행되게 한다. 그러한 검색은 출발 및 목적 위치를 입력할 때, 데이터베이스에서 POI에 대한 검색을 수행할 때, 데이터베이스에 저장된 텍스트 또는 멀티미디어 데이터를 통한 검색을 할 때, 또는 그와 유사한 검색을 할 때, 유용할 수 있다.
문자열이 복수의 문자열 메트릭(metric) 중 어느 하나로부터 선택될 수 있는 객체에 대한 거리 메트릭은 유용하다. 예를 들어, 거리 메트릭은 레벤쉬타인 거리(Levenshtein distance)에 기반할 수 있다. 거리함수는 다메로-레벤쉬타인 거리(Damerau-Levenshtein distance), 제이로-윈클러 거리(Jaro-Winkler distance), 해밍 거리(Hamming distance), 사운덱스 거리 메트릭(Soundex distance metric)에 따라 결정된 거리, 니들맨-운쉬 거리(Needleman-Wunsch distance), 고토 거리(Gotoh distance), 스미스-워터맨-고토 거리(Smith-Waterman-Gotoh distance), P≥1를 갖는 Lp 거리 또는 반사성의 가설(postulates of reflexivity), 대칭 및 삼각 부등식으로 편집된 어느 다른 문자열 메트릭 중의 어느 하나 일 수 있다.
텍스트 입력이 수신될 수 있고, 텍스트-음소 변환(text-to-phoneme conversion)이 텍스트 입력으로부터 질의 객체를 생성하기 위하여 수행될 수 있다. 택일적 또는 부가적으로, 질의 객체는 음성 입력으로부터 생성된 음소 문자열 일 수 있다.
인덱스 구조는 억세스된 노드에 포함된 적어도 하나의 객체와, 인덱스 구조의 다른 객체 간의, 거리정보를 더 포함할 수 있다. 거리정보는, 부모 객체를 갖는 어느 노드에 대하여, 노드의 객체와 그것의 부모 객체 간의 거리를 포함할 수 있다. 이 거리정보는 인덱스 구조에 저장될 수 있다. 택일적 또는 부가적으로, 다른 노드를 가리키는, 즉, 리프 노드(leaf node)에 있지 않는, 어느 객체에 대하여, 거리정보는 객체와, 이 객체와 관련된 인덱스 구조의 서브 트리에 포함된 어느 객체 간의, 거리에 대한 상계(upper bound)를 포함할 수 있다. 이 거리에 대한 상계는 모든 객체가 그것의 서브 트리에 위치된 객체 주변 거리를 표현하기 위한 커버리지 반경(coverage radius)으로서 언급될 수도 있다. 인덱스 구조에 그러한 거리정보를 포함함에 의하여, 거리정보는 유사성 검색하는 동안에 계산될 필요없이 실행시간에 사용될 수 있다. 검색 성능이 그러므로 향상될 수 있다.
다른 노드 억세스는, 질의 객체와 억세스된 노드에 포함된 객체 간의 거리에 근거하여, 그리고 거리정보에 근거하여, 선택적으로 수행될 수 있다.임계치 비교가 수행될 수 있다. 임계치 비교에 근거하여, 검색 인덱스의 서브 트리가 검색되어야 하는지 또는 않는지가 결정된다. 택일적 또는 부가적으로, 임계치 비교에 근거하여, 질의 객체와 인덱스 구조의 객체 간의 정확한 거리를 계산할 필요가 있는지가 결정될 수 있다.
질의 객체와 노드에 포함된 객체 간의 거리는 커버리지 반경 및 검색 반경의 합과 비교될 수 있다. 만일 임계치 비교가 질의 객체와 노드에 포함된 객체 간의 거리가 그 합보다 크다는 결과를 보이면, 객체가 가리키는 인덱스 구조의 서브 트리를 억세스 할 필요가 없다. 검색 반경은 고정되거나 유사성 검색 진행시에 변동되게 할 수 있다.
노드는 여러 객체를 포함할 수 있다. 인덱스 구조는, 여러 객체의 각각에 대하여, 각 객체와, 각 객체가 가리키는 인덱스 구조의 서브 트리에 포함된 어느 객체 간의, 거리에 관한 상계를 포함할 수 있다.
객체는 결정된 거리에 근거하여 유사성 검색으로부터 선택적으로 삭감될 수 있다. 삭감은, 질의 객체와 노드의 객체 간의 결정된 거리에 근거하여, 그리고 객체의 커버리지 반경에 근거하여, 수행될 수 있다.
거리 결정 및 선택적인 다른 노드 억세스의 단계는 반복적으로 되풀이 된다. 이들 단계가 되풀이되는 때, 질의 객체와 노드에 포함된 객체 간의 거리가 노드의 각 객체에 대하여 계산될 필요가 없다. 질의 객체와 노드에 포함된 객체 간의 거리는, 계산되기 위하여 새로운 거리를 요하지 않는 것과 같은, 기준에 근거하여 선택적으로 계산될 수 있다. 거리 결정 및 선택적인 다른 노드 억세스는 다른 노드가 인덱스 구조의 리프 노드일 때 종료될 수 있다.
억세스된 다른 노드가 리프 노드일 때, 방법은 임계치 비교의 결과에 근거하여 리프 노드의 객체와 질의 객체 간의 거리를 선택적으로 결정하는 것을 더 포함할 수 있다. 리프 노드의 주워진 객체와 질의 객체 간의 거리는 임계치 비교의 결과에 근거하여 선택적으로 결정될 수 있다. 임계치 비교는 임계치에 대한 제1 거리 및 제2 거리 간의 차이 계수를 비교하는 것을 포함할 수 있다. 제1 거리는 질의 객체와 리프 노드의 부모 객체 간의 거리 일 수 있다. 제2 거리는 리프 노드의 부모 객체와 리프 노드의 주워진 각 객체 간의 거리 일 수 있다. 리프 노드의 어느 주워진 객체에 대하여, 각각의 주워진 객체와 질의 객체 간의 거리가 임계치 비교의 결과에 근거하여 선택적으로 계산될 수 있다. 그럼으로써, 검색 시간이 더 감소 될 수 있다.
검색에서, 질의 객체로부터 미리 결정된 거리 이내에 위치되는 모든 객체는 확인될 수 있다. 거리는 거리 메트릭에 따라 정의된다. 이것은 모든 객체가 확인되고 주워진 임계치를 초과하지 않는 질의 객체에 대한 비유사성을 갖는 것을 사용자에게 출력하게 한다.
택일적 또는 부가적으로, 인덱스 구조에서 질의 객체의 거리 메트릭에 따라 결정되는 최근접 k를 표현하는 객체 정수 k>1가 정의될 수 있다. 이것은 k객체가 확인되고 질의 객체에 대하여 거리 메트릭의 측면에서 가장 유사한 것을 사용자에게 출력할 수 있게 한다.
확인된 객체는 질의 객체와 각 확인된 객체 간의 거리에 근거하여 출력될 수 있다. 확인된 객체 출력시에, 객체는 질의 객체와 각 확인된 객체 간의 거리에 따라 저장될 수 있다. 예를 들어, 시각적 출력 유닛을 통한 출력을 위하여, 질의 객체로부터 최소 거리를 갖는 객체는 상부 또는 극 좌측 위치에 출력되고, 다른 객체는 질의 객체로부터의 거리 증가 순으로 출력될 것이다. 유사하게, 음향 출력 유닛을 통한 출력을 위하여, 질의 객체로부터 최소 거리를 갖는 객체가 제일 먼저 출력되고, 다른 객체는 질의 객체 이후로부터의 거리 증가 순으로 순차적으로 출력될 수 있다.
다른 관점에 따르면, 네비게이션 장치가 제공된다. 네비게이션 장치는 저장장치와 처리장치를 포함한다. 저장장치는 복수의 객체를 포함하는 데이터베이스에 대한 복수의 노드를 포함하는 인덱스 구조를 저장한다. 처리장치는 저장장치에 연결된다. 질의 객체에 대한 유사성 검색을 수행하기 위하여, 처리장치는 복수 객체의 적어도 하나와 관련된 인덱스 구조의 노드를 억세스 하도록 구성된다. 처리장치는 거리 메트릭에 따라 질의 객체와 적어도 하나의 객체 간의 거리를 결정하도록 더 구성된다. 처리장치는 결정된 거리에 근거하여 인덱스 구조의 다른 노드를 선택적으로 억세스 하도록 더 구성된다.
그러한 네비게이션 장치는 정확히 일치하는 정보를 제공할 뿐만 아니라 데이터베이스에서 가장 유사한 객체의 정보를 검색하도록 수행되는 퍼지 검색을 허용한다. 네비게이션 장치에서, 질의 객체와 인덱스 구조의 노드의 객체 간의 거리는 어느 다른 노드(노드들)가 억세스 되는지를 확인하기 위하여 결정된다. 이것은 검색이 효율적으로 수행되게 한다. 임계치보다 큰 질의 객체로부터의 거리를 갖는 객체를 포함하지도 않고 가리키지도 않는 노드를 억세스 할 필요가 없다. 거리 메트릭에 따라 결정된 거리를 사용함에 의하여, 질의 객체와 인덱스 구조의 객체 간의 유사성 또는 비유사성이 양적으로 평가된다.
객체는 음소 및/또는 텍스트 문자열 일 수 있다.
인덱스 구조는 메트릭 인텍스 구조 일 수 있다.
네비게이션 장치는 입력 유닛을 포함할 수 있다. 처리장치는 그로부터의 질의 객체를 수신하거나, 입력 유닛에서 수신된 입력에 근거하여 질의 객체를 생성하기 위하여 입력 유닛에 연결될 수 있다. 처리장치는 질의 객체를 생성하기 위하여 텍스트-음소 변환(text-to-phoneme conversion)을 수행하도록 구성될 수 있다.
네비게이션 장치는 출력 유닛을 포함할 수 있다. 처리장치는 유사성 검색에서 검색된 복수의 객체가 출력 유닛을 통해 출력되게 출력 유닛을 제어하도록 구성될 수 있다. 처리장치는 출력 객체가 질의 객체와 각 출력 객체 간의 거리에 따라 분류되는 것과 같이 출력 유닛을 제어하도록 구성될 수 있다.
처리장치는, 거리 메트릭에 따라 결정된, 질의 객체로부터의 고정 검색 반경보다 작은 거리를, 갖는 모든 객체를 확인하도록 구성될 수 있다. 처리장치는 질의 객체의 최근접 이웃 k인 k>1 객체를 확인할 수 있도록 택일적 또는 부가적으로 구성될 수 있다.
처리장치는 어떤 한 관점 또는 실시예에 따른 유사성 검색 방법을 수행하도록 구성될 수 있다.
다른 관점에 따르면, 네비게이션 장치 데이터베이스에 대한 메트릭 인덱스 구조(metric index structure) 생성의 방법이 제공된다. 데이터베이스는 복수의 객체를 포함한다. 방법에서, 인덱스 구조의 다른 노드 및 인덱스 구조의 리프 노드에 대한 지시자(pointer)를 포함하는 인덱스 구조의 디렉토리 노드(directory node)가 생성된다. 생성 노드는 개별적인 결정을 포함하되, 복수의 객체 쌍에 대하여, 객체 쌍의 객체 간 거리가 그럼으로써 복수의 거리를 결정한다. 거리는 거리 메트릭에 따라 각각 결정된다. 복수의 거리에 근거하여, 디렉토리 노드에 포함된 객체와, 리프 노드에 포함된 객체가 확인된다.
이 방법을 이용하여, 유사성 검색 방법 및 어느 한 관점이나 실시예의 네비게이션 장치에서 사용될 수 있는 인덱스 구조가 생성된다. 생성된 메트릭 인덱스 구조는 객체 간의 상대적 거리인 결정된 복수의 거리에 따라 구성된다. 이것은 메트릭 인덱스 구조가 다차원 공간의 좌표에 의해 정의되지 않은 객체에 대해서도 설정되게 한다.
객체는 음소 문자열 또는 영숫자 문자열(alphanumerical string) 일 수 있다.
인덱스 구조를 생성하는 때, 거리 메트릭은 문자열 메트릭(string metric)에 대한 복수의 거리 정의 중 어느 하나로부터 선택될 수 있다. 예를 들어, 거리 메트릭은 레벤쉬타인 거리에 근거할 수 있다. 거리함수는 다메로-레벤쉬타인 거리(Damerau-Levenshtein distance), 제이로-윈클러 거리(Jaro-Winkler distance), 해밍 거리(Hamming distance), 사운덱스 거리 메트릭(Soundex distance metric)에 따라 결정된 거리, 니들맨-운쉬 거리(Needleman-Wunsch distance), 고토 거리(Gotoh distance), 스미스-워터맨-고토 거리(Smith-Waterman-Gotoh distance), P≥1를 갖는 Lp 거리 또는, 반사성의 가설(postulates of reflexivity), 대칭 및 삼각 부등식으로 편집된 어느 다른 문자열 메트릭 중의, 어느 하나 일 수도 있다.
방법은, 디렉토리 노드에 포함된 객체에 대하여, 각각의 객체와 객체가 가리키는 인덱스 구조의 서브 트리에 포함된 어느 객체 간의 거리에 관한 상계(upper bound)를 저장하는 것을 포함할 수 있다. 이 상계 또는 커버리지 반경은 인덱스 구조에 저장된다.
방법은, 부모 객체를 갖는 노드에 포함된 객체에 대하여, 각 객체와 그것의 부모 객체 간의 거리를 저장하는 것을 택일적 또는 부가적으로 포함할 수 있다.
방법에서, 인덱스 구조는 반복적인 방식으로 증대된다. 방법은 노드에 부가 객체를 삽입하는 것을 포함할 수 있다. 그러기 위하여, 객체가 삽입된 노드가 확인될 것이다. 노드 확인은 삽입된 객체와 인덱스 구조의 디렉토리 노드의 객체 간 거리를 결정하는 것을 포함할 수 있다.
방법은 노드 분할을 더 포함할 수 있다. 이를 위하여, 객체의 삽입 이후에, 노드의 객체 수가 객체의 고정 최대 수보다 큰지를 결정하는 것이 필요할 수 있다. 수가 최대 수를 초과하면, 노드는 분할된다. 노드 분할은 새로운 디렉토리 노드에 포함된 노드로부터 객체를 선택하고, 2개의 새로운 리프 노드 중의 하나에 객체를 할당하는 것을 포함할 수 있다. 노드 분할은 새로운 디렉토리 노드에서의 2개 객체의 2개 커버리지 영역 간의 중복 부분(overlap)이 임계치 이하로 감소되거나 최소화되도록 수행될 수 있다.
다른 관점에 따르면, 네비게이션 장치 데이터베이스를 위한 메트릭 인덱스 구조가 제공된다. 메트릭 인텍스 구조는 인덱스 구조의 다른 노드와 리프 노드에 대한 지시자(pointer)를 포함하는 디렉토리 노드를 포함한다. 노드의 적어도 일부는 인덱스 구조의 객체 간에 메트릭에 따라 결정된 거리 관련 정보를 표현하는 거리 정보를 포함한다. 적어도 디렉토리 노드는, 디렉토리 노드의 객체와, 각 객체에 대한 인덱스 구조의 서브 트리에 포함된 어느 객체 간의, 거리에 대한 상계를 포함할 수 있다.
상술 및 후술 된 특징은 표시된 개별 조합뿐만 아니라 다른 조합 또는 분리에서 사용될 수 있음을 이해할 수 있을 것이다.
상술한 설명 및 실시예의 다른 특징은 첨부 도면과 함께 읽을 때 실시예의 상세한 설명으로부터 좀 더 명백해 질 것이다. 도면에서 유사 숫자는 유사 요소를 일컫는다.
발명은 내결함성 검색이 실행되게 하는 방법 및 네비게이션 장치를 제공하되, 내결함성 검색이 효율적으로 수행되게 하는 방법 및 네비게이션 장치를 제공한다.
도 1은 네비게이션 장치의 블록도 이다.
도 2는 인덱스 구조의 개략적인 표현이다.
도 3 및 도 4는 인덱스 구조의 노드에서의 데이터 엔트리의 개략적인 표현이다.
도 5는 유사성 검색을 이용하는 방법의 흐름도이다.
도 6은 유사성 검색 수행 방법의 흐름도이다.
도 7은 도 6의 방법을 설명하기 위한 데이터베이스 객체의 개략적인 표현이다.
도 8은 도 6의 방법을 설명하기 위한 인덱스 구조의 개략적인 표현이다.
도 9는 유사성 검색을 이용하는 방법의 흐름도이다.
도 10은 인덱스 구조 생성 방법의 흐름도이다.
도 11 및 도 12는 도 10의 방법을 설명하기 위한 인덱스 구조의 개략적인 표현이다.
도 1은 실시예에 따른 네비게이션 장치(1)를 개략적으로 예시하였다. 네비게이션 장치(1)는 예를 들어 메모리에 저장된 제어 명령에 따라 네비게이션 장치(1)의 운영을 제어하는 처리장치(2)를 포함한다. 처리장치(2)는 예를 들어, 하나 또는 그 이상의 마이크로 프로세서, 디지털 신호 처리기 또는 주문형 집적회로 형태의 중앙처리 유닛을 포함할 수 있다. 네비게이션 장치(1)는 휘발성 또는 비휘발성 저장 매체 또는 메모리 일 수 있는 저장장치(3)를 더 포함한다. 저장장치(3)는 랜덤 억세스 메모리, 플래시 메모리 또는 하드 드라이브 뿐만 아니라, 콤팩트 디스크(CD), DVD, 메모리 카드 또는 그와 유사한 것과 같은 여러 타입의 저장 또는 메모리 매체의 어느 하나 또는 어느 조합을 포함할 수 있다. 네비게이션 장치(1)는 사용자에게 정보를 출력하기 위한 출력 인터페이스(4)를 포함할 수도 있다. 출력 인터페이스(4)는 시각적 출력장치, 음향적 출력장치 또는 그들의 조합을 포함할 수 있다. 네비게이션 장치(1)는 사용자로 하여금 정보를 입력케 하는 입력 인터페이스(5)를 포함할 수도 있다. 특히, 입력 인터페이스(5)는 사용자로 하여금 텍스트 정보 또는 음성 정보를 입력케 할 수 있다.
네비게이션 장치는 위치 센서 및/또는 무선 수신기 및/또는 차량 인터페이스와 같은 부가적인 요소를 포함할 수 있다. 위치 센서는 네비게이션 장치(1)가 설치된 차량의 현재 위치를 결정하도록 적용될 수 있다. 위치 센서는 GPS(Global Positioning System) 센서, 갈릴레오 센서(Galileo Sensor), 이동통신망 및 그와 유사한 것에 기반한 위치 센서를 포함할 수 있다. 무선 수신기는 저장장치(3)에 저장된 데이터베이스를 갱신하기 위한 정보를 수신하도록 구성될 수 있다. 차량 인터페이스는 처리장치(2)로 하여금 다른 차량 시스템으로부터 정보를 획득하거나 차량 인터페이스를 통해 차량 상태 정보를 획득하게 할 수 있다. 차량 인터페이스는 예를 들어, CAN(Controller Area Network) 또는 MOST(Media Oriented Device Transport) 인터페이스를 포함할 수 있다.
저장장치(3)는 복수의 객체를 포함하는 데이터베이스를 저장한다. 복수의 객체는 텍스트 또는 음소 문자열을 포함할 수 있다. 예를 들어, 데이터베이스는 도로 이름을 표현하는 객체, 관심 지점(POI) 이름을 표현하는 객체, 및/또는 도로 또는 POI의 부가 정보를 표현하는 객체를 포함할 수 있다. 그러한 정보는 형식을 구비하거나, 텍스트 또는 음소 문자열 또는 멀티미디어 객체를 포함할 수 있다.
저장장치(3)는 데이터베이스를 위한 인덱스 구조를 저장한다. 네비게이션 장치(1)의 사용에 있어서, 처리장치(2)는 인덱스 구조를 이용한 유사성 검색을 수행한다. 처리장치(2)는 입력 인터페이스(5)에서 질의 객체로서 수신된 입력을 사용하거나, 질의 객체를 생성하기 위한 입력 관련 부가 작업을 수행할 수 있다. 처리장치(2)는 인덱스 구조를 이용하여 질의 객체에 대한 유사성 검색을 수행한다. 유사성 검색은 질의 객체와 데이터베이스에 저장된 객체 간의 거리를 계산하는 것을 포함한다. 여기서 사용되는 "계산"은 룩업(look-up) 작업을 포함하는 여러 방식으로 수행될 수 있다. 거리는 질의 객체와 인덱스 구조의 객체의 비유사성에 대한 양적 측정을 제공한다. 검색에서 검색된 여러 최유사 객체가 출력 인터페이스(4)를 통해 사용자에게 출력된다. 예를 들어, 처리장치(2)가 질의 객체로부터 최소 거리를 갖는 인덱스 구조의 객체가 질의 객체로부터의 그들 거리에 의해 결정된 순서로 열거되는 시각적 출력 인터페이스(4) 상의 리스트를 생성할 수 있다.
인덱스 구조는 데이터베이스로부터 논리적으로 분리될 수 있다. 택일적으로, 데이터베이스는 인덱스 구조와 결합 될 수 있다.
인덱스 구조는 어느 적합한 기술을 이용하여 구현될 수 있다. 예를 들어, 한정하는 대신, 인덱스 구조는 에스큐엘라이트(SQLite)를 이용하여 구현될 수 있다. 인덱스 구조는 데이터베이스 시스템(특히, 관계 데이터베이스 시스템)의 사용자 정의 인덱스 구조로서 구현될 수 있다. 관계 데이터베이스는 텍스트 문자열 또는 음소 문자열에 대한 테이블과, 텍스트 문자열 쌍 또는 음소 문자열 쌍 간의 거리에 대한 다른 테이블을 포함할 수 있다.
데이터베이스에 대한 인덱스 구조는 인덱스 트리(index tree)로서 구성될 수 있다. 인덱스 구조는, 다른 노드에 대한 지시자(pointer)를 포함하는 디렉토리 노드인 노드의 적어도 일부와, 다른 노드에 대한 지시자를 포함하지 않는 리프 노드인 적어도 일부의 다른 노드를 갖는, 복수의 노드를 포함할 수 있다. 각 노드는 적어도 하나의 객체 및 전형적인 여러 객체와 관련될 수 있다. 한 디렉토리 노드는, 디렉토리 노드에 포함된 객체에 대해, 이들 각 객체와 관련된 각 서브 트리의 뿌리(root)에 대한 지시자를 저장할 수 있다.
저장장치(3)에 저장된 인덱스 구조는 거리 메트릭(distance metric)을 이용하여 검색될 수 있는 메트릭 인덱스 구조이다. 또한, 인덱스 구조는 거리 메트릭에 따라 구성될 수도 있되, 인덱스 구조는 거리에 따라 결정되는 데이터베이스의 객체들 사이의 관계 거리에 근거하여 서브 트리로 분할된다.
일반적인 용어에 따르면, "거리 메트릭(distance metric)" 또는 "메트릭(metric)"은 여기서 다음 조건을 충족하는 비워지지 않은 집합 M의 객체에 대해 정의된 거리 측정을 일컫는다:
반사성(reflexivity; 구별 불가능자의 동일성으로도 일컫는다):
∀ x, y ∈ M: x = y 이면 d(x, y) = 0; (1)
대칭:
∀ x, y ∈ M: d(x, y) = d(y, x) (2)
삼각 부등식:
∀ x, y, z ∈ M: d(x, z) ≤ d(x, y) + d(y, z) (3)
위의 가설(1)-(3)이 충족될 때, 그것은 거리함수가 긍정성 가설(positivity postulate)도 충족하는 것을 추종한다:
∀ x, y ∈ M: d(x, y) ≥ 0 (4)
집합 M의 투플(tuple) (M, d)와 메트릭 d는 메트릭 공간(metric space)으로서 일컬어지기도 한다.
메트릭은 어떤 인덱스 구조가 구성되고 어느 것이 인덱스 구조의 검색을 수행하기 위해 사용되는지에 따라 다양한 정의로부터 선택될 수 있는데, 그중에서도 데이터베이스의 객체에 달려있다. 예를 들어, 텍스트 문자열 또는 음소 문자열인 객체에 대하여, 레벤쉬타인 거리는 메트릭을 정의하고, 인덱스 구조를 생성할 때와 인덱스 구조에서 유사성 검색을 수행할 때 모두에 사용될 수 있다. 레벤쉬타인 거리는 편집거리(edit distance)로 일컬어지기도 한다. 두 문자열 간의 레벤쉬타인 거리는 삽입, 삭제 또는 단일 문자의 대체인 허용된 편집작업으로 한 문자열을 다른 문자열로 변환함에 필요한 편집의 최소 수로서 정의된다. 다른 메트릭들은 인덱스 구조를 구성하고, 인덱스 구조에서 유사성 검색을 수행하는 때 거리를 계산하기 위하여 사용될 수도 있다.
다른 메트릭들이 사용될 수 있다. 예를 들어, 거리함수는 다메로-레벤쉬타인 거리(Damerau-Levenshtein distance), 제이로-윈클러 거리(Jaro-Winkler distance), 해밍 거리(Hamming distance), 사운덱스 거리 메트릭(Soundex distance metric)에 따라 결정된 거리, 니들맨-운쉬 거리(Needleman-Wunsch distance), 고토 거리(Gotoh distance), 스미스-워터맨-고토 거리(Smith-Waterman-Gotoh distance), P≥1를 갖는 Lp 거리 또는, 반사성의 가설(postulates of reflexivity), 대칭 및 삼각 부등식으로 편집된 어느 다른 문자열 메트릭 중의, 어느 하나로 선택될 수 있다.
저장장치(3)에 저장된 인덱스 구조는, 객체와, 검색 트리를 정의하는 다른 노드에 대한 지시자를 포함할 뿐만 아니라, 인덱스 구조에서 객체 간 거리의 표시인 거리정보도 부가적으로 포함할 수 있다. 그러한 거리정보는 검색을 수행할 때 인덱스 구조로부터 검색될 수 있다. 그러한 거리정보는 유사성 검색으로부터 객체 또는 노드를 삭감하는데 특히 이용될 수 있으며, 이하에 좀더 상세히 논의될 것이다.
도 2는 인덱스 구조(10)의 개략적인 표현이다. 도 2에 트리 구조로서 도시하였지만, 인덱스 구조는 적합한 어느 포맷으로, 예를 들어 관계 데이터베이스에 사용자 정의 인덱스 구조로서, 일반적으로 저장될 수 있다.
인덱스 구조는 디렉토리 노드(11-13)와 리프 노드(14-17)를 포함한다. 각 디렉토리 노드(11-13)는 다른 노드에 대한 지시자(pointer)를 포함한다. 각 지시자는 각 노드에 포함된 객체와 관련될 수 있다. 예를 들어, 뿌리 노드(root node)(11)는 제1 객체와 관련된 데이터 엔트리(21)와 제2 객체와 관련된 데이터 엔트리(22)를 포함할 수 있다. 데이터 엔트리(21)는 제1 객체의 서브 트리의 뿌리인 디렉토리 노드(12)에 대한 지시자를 포함할 수 있다. 데이터 엔트리(22)는 제2 객체의 서브 트리의 뿌리인 디렉토리 노드(13)에 대한 지시자를 포함할 수 있다.
디렉토리 노드(12)는 데이터베이스의 다른 객체와 관련된 데이터 엔트리(23, 24)를 포함할 수 있다. 데이터 엔트리(23, 24)는 다른 노드에 대한 지시자를 각각 포함할 수 있다. 도 2에 예시된 구조에서, 데이터 엔트리(23, 24)는 리프 노드(14, 15)에 대한 지시자를 각각 포함한다. 디렉토리 노드의 더 큰 계층이 구현될 수 있다. 유사하게, 디렉토리 노드(13)는 데이터베이스의 다른 객체와 관련된 데이터 엔트리(25, 26)를 포함할 수 있다. 데이터 엔트리(25, 26)는 리프 노드(16, 17)과 같은 다른 노드에 대한 지시자를 각각 포함할 수 있다.
리프 노드(14-17)는 데이터베이스의 하나 또는 복수의 객체와 관련된 데이터 엔트리를 각각 포함할 수 있다. 예를 들어, 리프 노드(14)가 데이터베이스의 3개 객체와 관련된 데이터 엔트리(27-29)를 포함하는 것으로 나타내었다.
인덱스 구조에서, 검색 트리는 거리 메트릭에 따라 분할된다. 이를 위하여, 데이터 엔트리(21)에 의해 표현된 제1 객체와 데이터 엔트리(22)에 의해 표현된 제2 객체는, 뿌리 노드(12)를 갖는 제1 서브 트리에 포함된 모든 객체가 제1 객체에 관한 제1 커버리지 반경을 갖는 커버리지 영역 내에 위치되고, 뿌리 노드(13)를 갖는 제2 서브 트리에 포함된 모든 객체가 제2 객체에 관한 제2 커버리지 반경을 갖는 커버리지 영역 내에 위치하게, 선택될 수 있다. 다시 말해서, 제1 커버리지 반경은 이 서브 트리의 부모인 데이터 엔트리(21)에 의해 표현된 객체로부터 노드(12, 14, 15)의 어느 하나에 의해 표현된 어느 객체 간의 최대 거리일 수 있다. 제2 커버리지 반경은 이 서브 트리의 부모인 데이터 엔트리(22)에 의해 표현된 객체로부터 노드(13, 16, 17)의 어느 하나에 의해 표현된 어느 객체 간의 최대 거리일 수 있다.
뿌리 노드(11)의 제1 객체 및 제2 객체, 그리고 관련 서브 트리의 객체는, 제1 및 제2 커버리지 영역이 되도록 가능하면 작게 중복 부분(overlap)을 갖도록 선택될 수 있다. 또한, 뿌리 노드(11)의 제1 객체 및 제2 객체와 관련 서브 트리의 객체는, 제1 객체와 뿌리 노드(12)를 갖는 서브 트리에 포함된 어느 객체 간의 제1 최대 거리와, 제2 객체와 뿌리 노드(13)를 갖는 서브 트리에 포함된 어느 객체 간의 제2 최대 거리가 가능하면 작게, 선택될 수 있다. 그러므로 인덱스 구조는 거리 메트릭에 따라 결정되는 객체 간의 근접과 관련하여 분할된다.
위의 인덱스 구조 구성을 위한 명시된 기준은 뿌리 노드(11)에 적용될 뿐만 아니라 어느 디렉토리 노드(12, 13)에도 적용될 수 있되, 객체는, 디렉토리 노드에서 상이한 객체의 커버리지 영역의 중첩부분 감소의 목적과, 커버리지 영역의 크기 감소의 추가 목적을 갖는 디렉토리 및 리프 노드로 구성된다. 그러한, 인덱스 구조를 생성하기 위한 체계적인 접근은 도 10 내지 도 12를 참조하여 이하에 설명될 것이다.
일부 실시예에서, 인덱스 구조의 디렉토리 노드는 인덱스 구조에 포함된 객체 간의 거리에 관한 정보를 포함할 수 있다. 디렉토리 노드의 데이터 엔트리(21-26)는, 객체와, 이 객체가 가리키는 서브 트리에 포함된 어느 객체 간, 거리의 상계(upper bound)를 각각 포함할 수 있다. 상계는 이들 거리의 최대 일 수 있다. 예를 들어, 데이터 엔트리(21)는 데이터 엔트리(21)에 의해 표현된 제1 객체와 노드(12, 14, 15)의 어느 객체 간의 거리에 관한 상계를 포함할 수 있다. 데이터 엔트리(22)는 데이터 엔트리(22)에 의해 표현된 제2 객체와 노드(13, 16, 17)의 어느 객체 간의 거리에 관한 상계를 포함할 수 있다. 데이터 엔트리(23)는 데이터 엔트리(23)에 의해 표현된 객체와 리프 노드(14)의 어느 한 객체 간의 거리에 관한 상계 등을 포함할 수 있다. 이 상계에 근거하여, 삭감 처리가 유사성 검색에서 수행될 수 있다.
부모 객체를 구비하는 모든 노드의 데이터는, 각 노드의 어느 객체에 대하여, 객체와 그것의 부모 객체 간의 거리에 관한 정보를 더 포함할 수 있다. 이 정보는 유사성 검색에서 거리 예측을 위해 사용될 수도 있다.
인덱스 구조는 특히, 피.사씨야(P. Ciaccia), 엠.파텔라(M. Patella) 및 피.제줄라(P. Zezula)에 의해 개발된 것과 같은 M-트리로 구성될 수 있다. 거리 메트릭에 따라 구성된 다른 인덱스 구조가 사용될 수도 있다. 예를 들어, 인덱스 구조는 밴티지 포인트 트리(vantage-point tree) 일 수 있다.
도 3은 디렉토리 노드에 포함된 객체와 관련된 데이터 엔트리(31)에 대한 전형적인 데이터 구조를 나타냈다. 예시된 것은 M-트리에서 사용되는 것과 같은 전형적인 데이터 엔트리이다. 데이터 엔트리(31)는 객체 Or를 포함한다. 택일적으로, 객체의 특징값이 데이터 엔트리(31)에 포함될 수 있다. 택일적으로, 객체의 식별자가 데이터 엔트리(31)에 포함될 수 있다.
데이터 엔트리(31)는 객체 Or를 위한 서브 트리의 뿌리 노드에 대한 지시자 ptr(T(Or)를 더 포함한다.
디렉토리 노드가 인덱스 구조의 뿌리 노드가 아니면, 데이터 엔트리(31)는 객체 Or과 그것의 부모 객체 P(Or) 간의 거리 d(Or; P(Or))를 더 포함할 수도 있다. 인덱스 구조에 그러한 거리를 포함함에 의하여, 그 값 d(Or; P(Or))은 거리를 예측하고/또는 검색 삭감을 위하여 사용될 수 있다. 유사성 검색의 효율성은 실행시간에서 향상될 수 있다.
데이터 엔트리(31)는 객체 Or와, 뿌리 노드 T(Or)를 구비한 서브 트리의 어느 객체 간의, 거리에 관한 상계인 반경 r(Or)을 더 포함할 수 있다. 반경 r(Or)은 그런 거리의 최대인 것으로 정의될 수 있다.
r(Or) = maxjd(Oj; Or) (5)
여기서, 최대는 지시자 ptr(T(Or))가 가리키는 서브 트리의 모든 객체 Oj 에 걸쳐 결정된다.
도 4는 인덱스 구조의 리프 노드에 포함된 객체와 관련된 데이터 엔트리(32)에 대한 전형적인 데이터 구조를 나타냈다. 예시된 것은 M-트리에서 사용되는 것과 같은 전형적인 데이터 엔트리이다. 데이터 엔트리(32)는 객체 Oj를 포함한다. 택일적으로, 객체의 특징 값이 데이터 엔트리(32)에 포함될 수 있다. 택일적으로, 객체의 식별자가 데이터 엔트리(32)에 포함될 수 있다.
데이터 엔트리(32)는 각 객체 Oj와 그것의 부모 객체 P(Oj) 간의 거리 d(Oj; P(Oj))를 더 포함할 수 있다. 인덱스 구조에 그러한 거리를 포함함에 의하여, 값 d(Oj; P(Oj))은 거리를 예측하고/또는 검색하는 동안에 계산되는 거리의 요구 없이 검색을 감축하기 위하여 사용될 수 있다.
다른 데이터 구조가 사용될 수 있다. 예를 들어, 데이터 엔트리(31) 또는 데이터 엔트리(32)에서 표시된 다양한 필드 엔트리는 서로 인접하여 저장될 필요가 없다. 관계 데이터베이스에서의 사용자 정의 인덱스 구조는 인덱스 구조의 저장을 위해 사용될 수 있다.
도 5는 인덱스 구조를 이용하여 처리장치(2)에 의해 수행될 수 있는 방법(33)의 흐름도이다.
34에서, 입력이 수신된다. 입력은 입력 인터페이스(4)를 통해 수신되는 사용자 입력일 수 있다. 택일적으로, 입력은 다른 시스템 또는 차량의 장치에 의해 처리장치(2)에 제공되거나, 차량의 외부로부터 수신되는 것일 수 있다. 입력은 텍스트 문자열 일 수 있다.
35에서, 텍스트-음소 변환(text-to-phoneme conversion)이 수행된다. 결과적인 음소 문자열은 질의 객체로서의 역할을 한다.
36에서, 유사성 검색이 인덱스 구조를 이용하여 수행된다. 인덱스 구조는 거리 메트릭에 따라 구성된 메트릭 인덱스 구조이다. 인덱스 구조는 도 2 내지 도 4를 참조하여 상술한 바와 같이 구성될 수 있다. 유사성 검색을 수행하기 위하여, 질의 객체와 인덱스 구조의 객체 간의 거리가 거리 메트릭에 따라 결정된다.
37에서, 검색에서 검색된 대부분의 관계 객체가 출력된다. 대부분의 관계 객체는 질의 객체의 최근접 이웃 k>1 일 수 있되, k 객체는 인덱스 된 객체 중에서 질의 객체로부터 가장 작은 거리를 갖고, 거리는 거리 메트릭에 따라 결정된다. 택일적으로 대부분의 관계 객체는 미리 결정된 임계치보다 작은 질의 객체로부터의 거리를 갖는 인덱스 구조의 모든 객체 일 수 있다.
37에서의 출력은 복수의 객체가 출력되도록 수행될 수 있다. 객체는 질의 객체로부터의 그들 각 거리에 의해 결정된 순서로의 출력 일 수 있다.
도 6은 유사성 검색을 수행하기 위한 방법(40)의 흐름도이다. 방법(40)은 처리장치(2)에 의하여 수행될 수 있다. 유사성 검색은 거리 메트릭 d(ㆍ;ㆍ)에 따라 구성된 인덱스 구조를 이용하여 수행된다. 객체의 타입에 따라, 다양한 거리 메트릭 중의 어느 하나가 상술한 바와 같이 선택될 수 있다. 인덱스 구조는 도 2 내지 도 4를 참조하여 설명한 바와 같이 구성될 수 있다.
41에서, 질의 객체가 수신된다. 질의 객체 수신은 텍스트-음소 변환(text-to-phoneme conversion) 수행 같은, 입력 처리를 포함할 수 있다.
42에서, 인덱스 구조의 노드 N이 억세스 된다. 방법(40)의 단계는 트리를 통한 경로를 따라 반복적으로 되풀이될 수 있다. 첫 번째 반복에서, 노드 N은 인덱스 구조의 뿌리 노드일 수 있다. 후속 반복에서, 노드 N은 인덱스 구조의 디렉토리 노드일 수 있다.
43에서, 노드 N의 객체 Or이 선택된다. 다른 객체 Or은 그들이 노드 N에 포함된 순서로 선택될 수 있다.
44에서, 질의 객체 Q와 노드 N의 선택된 객체 Or 간의 거리 d(Or; Q)가 결정된다. 텍스트 또는 음소 문자열에 대하여, 레벤쉬타인 거리 계산을 포함하는 거리 또는, 어느 다른 문자열 메트릭에 따른 거리를 결정한다. 44에서 거리는 어느 인덱스 구조가 분할되었는지에 따라 거리 메트릭을 이용하여 결정된다.
45에서, 거리 d(Or; Q)가 객체 Or의 커버리지 반경 r(Or)과 검색 반경 R의 합보다 큰 지의 여부가 결정된다. 검색 반경 R은 고정 반경일 수 있다. 택일적으로, 검색 반경 R은 유사성 검색 계속시에 동적으로 조정될 수도 있다. 예를 들어, 검색 반경 R은 R이 질의 객체와 지금까지 검색된 k번째 최근접 이웃 간의 거리에 대응하는 것 같은 k최근접 이웃 검색으로 조정될 수 있다.
거리 d(Or; Q)가 커버리지 반경 r(Or)과 검색 반경 R의 합보다 큰 것이 결정되면, 방법은 45로부터 46으로 진행된다.
46에서, 객체 Or에 대한 서브 트리의 모든 객체가 검색으로부터 감축된다. 서브 트리의 어느 객체와 객체 Or 간의 거리의 상계인 것 같은 커버리지 반경 r(Or)의 정의에 기인하여, 객체 Or에 대한 서브 트리의 객체는, 거리 d(Or; Q)가 r(Or) 및 R의 합계보다 크면, 질의 객체 Q로부터의 검색 반경 R과 동등하거나 작은 거리를 가질 수 없다. 검색을 감축함에 의하여, 불필요한 검색 단계가 회피된다.
거리 d(Or; Q)가 커버리지 반경 r(Or)과 R의 합보다 크지 않은 것이 결정되면, 방법은 45로부터 47로 진행한다.
47에서, 검색은 객체 Or에 대한 서브 트리에서 계속된다. 이를 위하여, 객체 Or에 대한 서브 트리의 뿌리 노드 T(Or)가 억세스 된다. 뿌리 노드는 45에서 검사된 조건에 근거하여 선택적으로 억세스 된다. 이 서브 트리에서 검색을 계속하기 위하여, 단계 42 내지 단계 48은 리프 노드가 도달될 때까지 서브 트리 내에서 반복될 수 있다. 리프 노드가 인덱스 구조의 뿌리로부터 리프 노드까지의 경로를 따라 도달해야만, 45에서 검사된 조건이 이 경로를 따라 횡단된 어느 객체 Or에 대하여 충족되지 않는다.
리프 노드가 47에 도달하면, 리프 노드의 객체 Oj와 질의 객체 Q 간의 거리 d(Oj; Q)가 결정될 수 있다.
만일, d(Oj; Q) < R, (6) 이면,
객체 Oj가 후속 출력을 위한 관계 인덱스 객체의 리스트에 포함될 수 있다. 만일 k 최근접 이웃 검색이 수행되면, 검색 반경 R이 갱신될 수 있고(즉, 감소될 수 있고), 만일 방정식 (6)이 충족되고 객체 Oj가 관계 객체의 리스트에 포함되면 인덱스 구조에서 확인된다. 만일 방정식 (6)을 충족하는 객체가 리프 노드에서 검색되지 않으면, 방법은 48로 진행한다.
48에서, 노드 N의 다른 객체 Or이 있는지가 결정된다. 만일 다른 객체가 있으면, 방법은 43으로 회귀하여, 객체 Or의 다른 하나가 선택된다.
만일 노드 N의 다른 객체가 없는 것이 결정되면, 방법은 49로 진행한다. 49에서, 확인된 객체가 출력된다. 출력은 복수의 객체가 출력되게 수행될 수 있다. 유사성 검색에서 검색된 객체는 질의 객체 Q로부터의 그들의 개별 처리에 의해 결정된 순서로 출력될 수 있다. 이 거리가 단계 44 또는 단계 47에서 미리 결정되므로, 거리는 후속 출력을 위한 순서 리스트의 확인된 객체를 구성하기 위하여 사용될 수 있다. 택일적으로, 검색하는 동안에 결정된 거리는 질의 객체 Q로부터의 거리에 따른 객체의 후속 분류를 위해 등록될 수 있다.
방법(40)에서, 유사성 검색은 질의 객체와 인덱스 객체 간의 거리에 근거하여 수행된다. 이것은 검색이 질의 객체와 인덱스 된 객체가 유클리드 공간에서 정의되지 않을 때도 수행되게 한다. 유사성 검색(40)은 다차원 벡터 공간에서 정의된 객체에 대해 수행될 수도 있다. 내결함성 검색이 메트릭 인덱스 구조의 유사성 검색을 이용하여 구현된다.
방법에서, 검색은 질의 객체와 인덱스 구조의 객체 간의 거리에 근거하여 선택적으로 감축된다. 감축은 방법(40)의 단계 45에서 검증된 조건에 근거하거나 이하에 설명된 택일적 또는 부가적인 조건에 근거하여 이루어질 수 있다.
추가 예시를 위하여, 참조 사항이 도 7 및 도 8에 도시되었다. 도 7은 객체의 개략적인 표현(50)이고, 도 8은 인덱스 구조(70)의 개략적인 표현이다.
도 7에 나타낸 객체는 인덱스 구조의 뿌리 노드에 포함된 객체(52, 55)를 포함한다. 객체(52)에 대한 서브 트리에 위치된 객체는 객체(52)로부터의 커버리지 반경(53)과 동등하거나 작은 거리에 위치된다. 객체(53)에 대한 서브 트리에 위치된 객체는 객체(55)로부터의 커버리지 반경(56)과 동등하거나 작은 거리에 위치된다. 계략적으로 예시한 바와 같이, 객체(52)에 대한 서브 트리의 객체는 제1 커버리지 영역(54)에 위치된다. 객체(55)에 대한 서브 트리의 객체는 제2 커버리지 영역(57)에 위치한다. 인덱스 구조는 커버리지 영역(54, 57)이 작은 중첩부분을 갖게 구성된다. 객체(52)와 관련된 서브 트리의 객체는 객체(52) 주위에 무리를 이루고, 객체(55)와 관련된 서브 트리의 객체는 객체(55) 주위에 무리를 이룬다.
객체(52)에 대한 서브 트리의 뿌리 노드는 객체(59, 60)를 포함한다. 객체(59, 60)를 포함하는 노드는 디렉토리 노드이다. 객체(59)와 관련된 지시자는 객체(59)의 근접에 객체(61)와 같은 객체를 포함하는 리프 노드를 가리킨다. 객체(60)와 관련된 지시자는 객체(60)의 근접에 객체(62)와 같은 객체를 포함하는 리프 노드를 가리킨다.
객체(63, 64)는 객체(55)와 관련된 서브 트리에 포함된다.
도 8은 도 7의 표현에 대응하는 인덱스 구조(70)를 예시한다. 도 8에서, 객체는 A, B, C, D, E, F, G, H, I, J로서 표식된다.
인덱스 구조는 객체(A, B)를 갖는 뿌리 노드(71)를 포함한다. 뿌리 노드(71)의 객체(A)는, 예를 들어 도 7의 52에 표시된 객체에 대응한다. 뿌리 노드(71)의 객체(B)는, 예를 들어 도 7의 55에 표시된 객체에 대응한다.
인덱스 구조는 객체(A)와 관련된 서브 트리에 대한 뿌리 노드인 디렉토리 노드(72)를 포함한다. 디렉토리 노드(72)는 객체(C, D)를 포함한다. 디렉토리 노드(72)의 객체(C)는, 예를 들어 도 7의 59에 표시된 객체와 대응한다. 디렉토리 노드(72)의 객체(D)는, 예를 들어 도 7의 60에 표시된 객체와 대응한다.
인덱스 구조는 부모 노드로서 객체(C)를 갖는 리프 노드(74)를 포함한다. 리프 노드(74)는 객체(G, H)를 포함한다. 리프 노드(74)의 객체(G)는, 예를 들어 도 7의 61에 표시된 객체에 대응한다. 인덱스 구조는 부모 노드로서 객체(D)를 갖는 리프 노드(75)를 포함한다. 리프 노드(75)는 객체(I, J)를 포함한다. 리프 노드(75)의 객체(I)는, 예를 들어 도 7의 62에 표시된 객체에 대응한다.
인덱스 구조는 객체(B)와 관련된 서브 트리의 부가 노드(73)를 포함한다.
근접 검색이 질의 객체(51)에 대해 수행되는 것을 가정하면, 검색은 인덱스 구조에 포함된 거리정보와 결합하여 질의 객체와 인덱스의 각 객체(A-J) 간의 거리를 이용하여 감축될 수 있다. 검색 반경 R은 도 7의 58에 개략적으로 표시되었다.
검색 방법(40)이 시작될 때, 인덱스 구조의 뿌리 노드(71)가 억세스 된다. 66에 나타낸 질의 객체(Q)와 객체(B) 간의 거리 d(Q; B)는 검색 반경(58)과 커버리지 반경(56)의 합보다 크다. 그러므로, 검색은 객체(B)에 대한 서브 트리에서 수행되지 않는다.
65에 나타낸 질의 객체(Q)와 객체(A) 간의 거리 d(Q; A)는 58에 표시된 검색 반경과 53에 표시된 객체(A)에 대한 커버리지 반경의 합보다 작다. 그러므로, 검색은 객체(A)에 대한 서브 트리에서 계속된다. 뿌리 노드(72)를 갖는 서브 트리에 대하여 방법(40)의 단계 42 내지 49를 반복함으로써, 객체(G)(도 7에 부호 61로 표시됨)와 객체(I)(도 7에 부호 62로 표시됨)는 질의 객체(51)로부터의 검색 반경과 동등하거나 작은 거리에 위치되었는지가 확인된다.
이 객체들을 확인함에 의하여, 내결함성 검색은, 질의 객체로부터 거리 메트릭에 따라 측정된 최소 비유사성을 갖는 객체로 귀환하여 시행된다.
유사성 검색은 커버리지 반경에 근거하여 검색을 감축함으로써 효율적으로 수행될 수 있다. 인덱스 구조에 포함된 부가 데이터는 검색 효율을 더 향상시키기 위하여 사용될 수 있다. 예를 들어, 객체와 그들의 각 부모 객체 간의 거리가 인덱스 구조에 저장되면, 이 정보는 실행시간에서의 수행에 필요한 거리 계산의 수를 감소시키기 위하여 사용될 수 있다.
예를 들어, 방법(40)의 단계 42에서 억세스 된 노드 N이 인덱스 구조의 뿌리 노드가 아닌 디렉토리 노드일 때,
│d(Q; P(Or))-d(Or; P(Or))│≤ r(Or) + R, (7)
이어야만(여기서, P(Or)는 노드 객체(Or)의 부모를 표시함), 단계 44 내지 47이 선택적으로 수행될 수 있다. 메트릭인 거리 d( , )를 이용하여, 삼각 부등식은, 방정식(7)이 충족되지 않으면, 객체(Or)에 대한 서브 트리의 객체가 질의 객체(Q)로부터의 거리보다 작지 않거나 R의 거리를 갖지 않음을 보증한다. 방정식(7)이 충족되지 않으면, 객체(Or)에 대한 서브 트리는 감축될 수 있다.
방정식(7)은 어느 부가적인 거리 계산 없이 검증될 수 있다. 분량 d(Q; P(Or))는 부모 노드에 대한 방법(40)의 선행 반복에서 결정되었다. 분량 d(Or; P(Or))는 인덱스 구조로부터 판독될 수 있다. 방정식(7)이 충족되는지에 따라 선택적으로 방법(40)의 단계 44에서 계산을 수행함에 의하여, 실행시간에서의 계산 비용적인 거리 결정의 수가 감소 될 수 있다.
추가 예시를 위하여, 리프 노드가 방법(40)의 단계 47에서 억세스 될 때,
│d(Q; P(Oj))-d(Oj; P(Oj))│≤ R, (8)
일 때만(여기서, P(Oj)는 객체 Oj가 포함된 리프 노드의 부모를 표시함), 리프 노드의 객체(Oj)와 질의 객체(Q) 간의 거리가 선택적으로 결정될 수 있다. d( , )는 메트릭이므로, 삼각 부등식은 객체(Oj)와 질의 객체(Q)가 방정식(8)을 충족하지 않으면, R 또는 그보다 작은 거리를 가질 수 없음을 보증한다. 방정식(8)이 충족되지 않으면, d(Q; Oj)를 결정할 필요가 없다.
방정식(8)은 어떤 부가적인 계산을 요하지 않고서 검증될 수 있다. 분량 d(Q; P(Oj))는 부모 노드에 대한 방법(40)의 선행 단계에서 결정된다. 분량 d(Oj; P(Oj))는 인덱스 구조로부터 판독될 수 있다. 방정식(8)의 조건이 충족되어야만 선택적으로 d(Q; P(Oj))를 계산함에 의하여, 실행시간에서의 계산 비용적인 거리 결정의 수가 감소 될 수 있다.
도 1 내지 도 8을 참조하여 상술한 실시예에 따라 유사성 검색을 수행하기 위한 장치 및 방법은 특히 객체가 텍스트 문자열, 음소 문자열 또는 멀티미디어 객체 일 때 사용될 수 있다. 장치 및 방법은 음소 문자열로부터 최소 비유사성을 갖는 인덱스 구조의 객체를 확인하기 위하여 사용될 수 있다. 인덱스 구조는 음소 문자열에 대한 필터로서 사용될 수 있다.
도 9는 유사성 검색이 사용될 수 있는 방법(80)의 흐름도 표현이다.
81에서, 인식기가 입력에 근거하여 음소 문자열을 결정한다. 입력 최대는 텍스트 문자열이다. 음소 문자열로의 변환은, 거리 메트릭을 이용하여 임계치 이하로 결정된 클러스터의 음소 간 거리에 있어서 각기 유사한 음소에 대응하는 상이한 음소 클러스터에 근거할 수 있다.
82에서, 음소 문자열은 인덱스 구조를 사용하여 필터링 된다. 음소 문자열은 도 1 내지 도 8의 어느 하나를 참조하여 상술한 바와 같은 인덱스 구조의 유사성 검색을 수행함으로써 필터링 될 수 있다. 일부의 시행에서, 임계치와 동등하거나 그보다 작은 질의 객체로부터의 거리라는 의미에서 볼 때 객체가 결정될 수 있다. 택일적인 시행에서, 질의 객체의 최근접 이웃 객체 k가 결정된다.
83에서, 음소 필터링의 결과가 철자 확인기에 제공된다.
유사성 검색을 수행하기 위한 어느 하나의 방법과 상술된 네비게이션 장치에서, 인덱스 구조는 메트릭 인덱스 구조일 수 있다. 유사성 검색을 수행하기 위한 어느 하나의 방법과 상술된 네비게이션 장치에서, 인덱스 구조는 균형 검색 트리에 대응할 수 있다. 유사성 검색을 수행하기 위한 어느 하나의 방법과 상술된 네비게이션 장치에서, 인덱스 구조는 디렉토리 노드 및 리프 노드마다 엔트리 수가 고정되게 구성될 수 있다.
도 10 내지 도 12를 참조하여, 이들 특성을 갖는 인덱스 구조를 생성하는 방법이 설명될 것이다.
도 10은 인덱스 구조를 생성하기 위한 방법(90)의 흐름도이다. 방법(90)은 유사성 검색으로부터 분리되어 수행될 수 있다. 특히, 방법(90)은 네비게이션 장치를 위한 데이터 전처리시에 수행될 수 있다. 인덱스 구조는 서버 컴퓨터에 의하여 중앙위치에 만들어지고, 복수의 네비게이션 장치에 배치될 수 있다.
방법(90)은 인덱스 구조에 후속 부가되는 부가 객체를 갖는 상향 형태의 인덱스 구조를 만들 수 있다. 인덱스 구조는 유사성 검색 수행시에 후속 사용될 수도 있는 거리 메트릭을 이용하여 만들어진다.
삽입된 객체는, 특히 음소 문자열 또는 텍스트 문자열 같은 문자열 일 수 있다.
방법(90)에서, 인덱스 구조는 노드에서 오버 플로우 발생시에 객체 삽입 및 노드 분할에 의하여 만들어진다. 노드가 분할될 때, 새로운 디렉토리 노드가 생성된다.
91에서, 인덱스 구조에 삽입되는 객체 Oi가 검색된다. 객체는 음소 문자열이나 텍스트 문자열 일 수 있다.
92에서, 인덱스 구조의 노드 N이 억세스 된다. 만일 거기에 오직 하나의 노드가 존재하면, 이 노드가 억세스 된다. 인덱스 구조가 이미 디렉토리 노드를 포함하면, 가장 높은 디렉토리 노드(즉, 구조의 뿌리 노드)가 억세스 된다.
93에서, 노드 N이 리프 노드인지가 결정된다. 만일 노드가 리프 노드이면, 방법은 98에서 계속된다. 그렇지 않으면, 방법은 94에서 계속된다.
94에서, 거리 d(Ok; Oi)가 삽입된 객체 Oi와 노드에 포함된 모든 객체 Ok 간에 결정된다. 그 거리는 거리 메트릭에 따라 각각 결정된다
95에서, 노드 N에 포함된 객체 Ok는 d(Ok; Oi)가 최소로 결정된다.
96에서, 객체 Ok에 대한 서브 트리의 뿌리 노드인 새로운 노드 N이 선택된다. 노드 N이 억세스 된다.
97에서, 노드 N이 리프 노드인지가 결정된다. 만일 노드 N이 리프 노드가 아니면, 방법은 94로 귀환한다. 그렇지 않으면, 방법은 98에서 계속된다.
98에서, 객체의 삽입 이후 노드 N의 크기가 노드의 최대 허용 엔트리 수에 대응하는 임계치를 초과하는지가 결정된다. 만일 최대 허용 엔트리 수가 초과되지 않으면, 객체 Oi는 99에서 노드에 삽입된다. 방법은 그때 91로 귀환한다.
만일 98에서 노드 N이 이미 최대 허용 엔트리 수를 갖는 것이 결정되면, 방법은 99에서 계속된다. 99에서, 노드 N은 노드 쌍으로 분할된다. 노드 N을 분할함에 의하여, 2개의 새로운 리프 노드가 생성된다. 동시에, 2개의 새로운 리프 노드에 대한 지시자를 갖는 2개의 객체를 포함하는 디렉토리 노드가 생성된다. 객체 Oi는 2개의 새로운 리프 노드의 하나 또는 새로운 디렉토리 노드에 삽입될 수 있다. 방법은 그때에 91로 귀환한다.
도 11 및 도 12는 노드의 최대 허용 엔트리 수가 도달되는 때의 리프 노드 분할을 예시한다.
도 11은 객체(A, B)를 갖는 디텍토리 노드(111), 객체(C, D, G)를 갖는 리프 노드(112) 및 객체(E, F)를 갖는 다른 리프 노드(113)를 구비하는 인덱스 구조(110)를 나타낸다.
새로운 객체(I)가 d(A; I)<d(B; I)에 대해 삽입되는 것으로 가정하면, 방법(90)은 객체가 노드(A)로부터 시작하여 도달될 수 있는 리프 노드에 삽입되는 것으로 결정한다. 만일 노드를 위해 허용되는 최대 엔트리 수가 3개 객체에 대응하면, 객체는 노드(112)에 단순히 삽입될 수 없다. 이런 경우에, 노드(112)는 분할된다.
도 12는 노드(112)가 분할된 후의 인덱스 구조(110)를 나타낸다. 2개의 새로운 리프 노드(115, 116)가 생성된다. 또한, 새로운 디렉토리 노드(114)가 생성된다. 리프 노드(112)에 포함된 객체(C, D)는 디렉토리 노드의 객체로 진전된다. M-트리 용어에서, 객체(C, D)는 라우팅 객체로 진전된다. 객체(G)는 부모로서 객체(C)를 갖는 리프 노드(115)에 부가된다. 객체(I)는 부모로서 객체(D)를 갖는 리프 노드(116)에 부가된다.
노드가 방법(90)의 단계 100에서 분할될 때, 다양한 기술이 디렉토리 노드로 진전되는 객체를 선택하도록 사용될 수 있다. 예를 들어, M-트리에 대하여, 다음의 구현이 이용될 수 있다.
하나의 구현에서, 디렉토리 노드로 진전되는 객체가 무작위로 선택될 수 있다.
다른 구현에서, 샘플링(sampling)이 디렉토리 노드로 진전되는 복수의 객체 쌍에 수행된다. 복수 쌍의 어느 하나에 대하여, 노드에 포함된 다른 객체는 2개의 새로운 리프 노드로 분할된다. 객체는 객체와 리프 노드의 부모 간의 거리가 작게 새로운 리프 노드의 하나에 할당될 수 있다. 분할이 완료될 때, 결과 커버링 반경들이 결정된다. 커버링 반경은 방정식(5)에 따라 결정된다. 디렉토리 노드로 진전되는 상이한 객체 쌍에 대하여, 상이한 커버링 반경들이 생긴다. 그때 노드는 샘플링된 객체 쌍의 하나가 2개 커버링 반경의 최대치가 샘플링된 진전된 객체 쌍 중의 최소값을 갖는 디렉토리 노드에 부가되도록 분할된다.
다른 구현에서, 샘플링이 노드에 포함되고 원칙적으로 디렉토리 노드에 부가될 수 있는 모든 가능한 객체(O1,O2) 쌍에 대해 수행된다. 분할 이전에 노드에 포함된 다른 객체는 상술된 바와 같이 분할되는데, 객체는 객체와 리프 노드의 부모 간의 거리가 작게 새로운 리프 노드의 하나에 할당될 수 있다. 가능한 객체 쌍의 어느 하나에 대하여, 커버링 반경의 합 r(O1)+r(O2)이 결정된다. 커버링 반경의 최소 합으로 이끄는 객체 쌍은 그때 디렉토리 노드에 부가될 수 있다. 다른 객체는 객체와 리프 노드의 부모 간 거리가 작게 새로운 리프 노드의 하나에 각각 할당될 수 있다.
다른 구현에서, 샘플링이 노드에 포함되고 원칙적으로 디렉토리 노드에 부가될 수 있는 모든 가능한 객체 쌍(O1, O2)에 대해 수행된다. 분할 이전에 포함된 다른 객체는 상술된 바와 같이 분할되는데, 객체는 객체와 리프 노드의 부모 간 거리가 작게 새로운 리프 노드의 하나에 할당될 수 있다. 가능한 진전되는 객체 쌍의 어느 하나에 대하여, 2개 커버링 반경의 최대치 max(r(O1); r(O2))가 결정된다. 커버링 반경의 최대치에 대해 최소치로 이끄는 객체 쌍은 그때 디렉토리 노드에 부가된다. 다른 객체는 객체와 리프 노드의 부모 간 거리가 각각 작게 새로운 리프 노드의 하나에 각각 할당될 수 있다.
다른 구현에서, 삽입되는 객체로부터의 큰 거리 d(Ok; Oi)를 갖는 리프 노드의 객체(Ok)가 결정된다. 이 객체(Ok)와 새로운 객체(Oi)는 그때 디렉토리 노드로 진전될 수 있다. 다른 객체는 객체와 리프 노드의 부모 간 거리가 작게 새로운 리프 노드의 하나에 각각 할당될 수 있다.
M-트리와 같이 구성된 인덱스 구조 생성 방법이 도 10 내지 도 12를 참조하여 상술되었지만, 다른 메트릭 인덱스 구조와 동일하게 이루어진 방법은 다른 실시예에서 사용될 수 있다. 예를 들어, 밴티지 포인트 트리(vantage-point tree)가 사용될 수 있다.
실시예에 따른 장치 및 방법이 상세히 설명되었지만, 수정(modification)이 다른 실시예에서 사용될 수 있다. 예를 들어, 커버링 반경 또는 부모와 자식 객체 간 거리와 같은 거리정보가 인덱스 데이터에 저장될 수 있음에 반하여, 그러한 데이터는 실행시간에서 계산될 수도 있다.
또한 예를 들어, 인덱스 트리의 전형적인 구조와 그들의 노드가 설명되었지만, 어느 적합한 데이터 구조가 인덱스 트리를 구현하기 위해 사용될 수 있다. 예를 들어, 인덱스 트리는 관계 데이터베이스에 사용자 정의 인덱스 구조로서 저장될 수 있다. 이 경우에, 텍스트 문자열과 음소 문자열을 포함하는 테이블(table)이 제공될 수 있다. 텍스트 문자열 또는 음소 문자열 쌍 간 거리를 포함하는 다른 테이블이 제공될 수 있다.
또한 예를 들어, 인덱스 구조가 "인덱스 구조의 객체" 같은 용어를 사용하여 설명되었지만, 그러한 객체는 인덱스 구조에 통합될 필요가 없다. 차라리, 인덱스 구조는 객체 그 자체보다 객체에 대한 식별자 또는 지시자를 포함할 수 있다.
또한 예를 들어, 유사성 검색이 질의 객체로부터의 고정된 검색 반경 내에 위치된 객체에 대한 검색의 문맥 또는 최근접 이웃 k에 대한 검색의 문맥에서 설명되었지만, 다른 유사성 검색이 메트릭 인덱스 구조를 이용하여 구현될 수도 있다. 일부 검색이 특정한 거리 메트릭 또는, 음소 또는 텍스트 문자열에 대한 검색과 같은 특정한 응용의 문맥에서 설명되었지만, 실시예는 거기에 한정되지 않는다.
발명의 실시예는 차량 네비게이션 장치를 위해 사용될 수 있다.
1; 네비게이션 장치
2; 처리장치
3; 저장장치
4; 출력 인터페이스
5; 입력 인터페이스

Claims (16)

  1. 인덱스 구조(10; 70)를 이용한 네비게이션 데이터베이스에서 유사성 검색을 수행하는 방법으로서,
    상기 데이터베이스는 복수의 객체를 포함하고, 상기 인덱스 구조(10; 70)는 복수의 노드(11-17; 71-75)를 포함하되,
    질의 객체(51)를 수신하는 단계,
    상기 복수 객체의 적어도 하나의 객체(52, 55, 59, 60)와 관련된 상기 인덱스 구조(10; 70)의 노드(11-13; 71-73)를 억세스 하는 단계,
    상기 노드(11-13; 71-73)와 관련된 상기 적어도 하나의 객체(52, 55, 59, 60)에 대하여, 상기 질의 객체(51)와 상기 객체 간의 거리(65, 66)를 각각 결정하되 상기 거리(65, 66)를 거리 메트릭(distance metric)에 따라 각각 결정하는 단계,
    상기 결정된 거리(65, 66)에 근거하여 상기 인덱스 구조(10; 70)의 다른 노드(12-17; 72-75)를 선택적으로 억세스 하는 단계를 포함하는 것을 특징으로 하는 인덱스 구조를 이용한 네비게이션 장치 데이터베이스에서 유사성 검색을 수행하는 방법.
  2. 제1항에 있어서,
    상기 질의 객체(51)는 음소 문자열 또는 텍스트 문자열인 것을 특징으로 하는 인덱스 구조를 이용한 네비게이션 장치 데이터베이스에서 유사성 검색을 수행하는 방법.
  3. 제2항에 있어서,
    상기 수신한 질의 객체(51)는 수신한 텍스트 입력을 포함하고 텍스트-음소 변환(text-to-phoneme conversion)을 수행하는 것을 특징으로 하는 인덱스 구조를 이용한 네비게이션 장치 데이터베이스에서 유사성 검색을 수행하는 방법.
  4. 제1항에 있어서,
    상기 인덱스 구조(10; 70)는 상기 적어도 하나의 객체(52, 55, 59, 60)와 상기 인덱스 구조(10; 70)의 다른 객체 간의 거리에 관한 거리정보를 더 포함하고,
    상기 다른 노드(12-17; 72-75)는 상기 거리정보와 상기 결정된 거리(65, 66)에 근거하여 선택적으로 억세스 되는 것을 특징으로 하는 인덱스 구조를 이용한 네비게이션 장치 데이터베이스에서 유사성 검색을 수행하는 방법.
  5. 제4항에 있어서,
    상기 노드(11-13; 71-73)는 여러 객체(52, 55)와 관련되고,
    상기 거리정보는, 상기 여러 객체(52, 55)의 하나에 대하여, 각 객체(52, 55)와, 각 객체(52, 55)와 관련된 인덱스 구조(10; 70)의 서브 트리에 포함된 어느 객체(59-64) 간의, 거리에 관한 상계(upper bound)(53; 56)를 포함하는 것을 특징으로 하는 인덱스 구조를 이용한 네비게이션 장치 데이터베이스에서 유사성 검색을 수행하는 방법.
  6. 제4항에 있어서,
    상기 질의 객체(51)는 음소 문자열 또는 텍스트 문자열이고, 상기 수신한 질의 객체(51)는 수신한 텍스트 입력을 포함하고 텍스트-음소 변환(text-to-phoneme conversion)을 수행하는 것을 특징으로 하는 인덱스 구조를 이용한 네비게이션 장치 데이터베이스에서 유사성 검색을 수행하는 방법.
  7. 제1항 내지 제6항 중의 어느 한 항에 있어서,
    객체는 상기 결정된 거리(65, 66)에 근거하여 상기 유사성 검색으로부터 선택적으로 감축되는 것을 특징으로 하는 인덱스 구조를 이용한 네비게이션 장치 데이터베이스에서 유사성 검색을 수행하는 방법.
  8. 제1항 내지 제6항 중의 어느 한 항에 있어서,
    상기 거리(65, 66) 결정과 선택적인 다른 노드(12-17; 72-75) 억세스는 다른 노드(12-17; 72-75)가 인덱스 구조(10; 70)의 리프 노드(14-17; 74, 75) 일 때 종료되는 것을 특징으로 하는 인덱스 구조를 이용한 네비게이션 장치 데이터베이스에서 유사성 검색을 수행하는 방법.
  9. 제1항 내지 제6항 중의 어느 한 항에 있어서,
    모든 객체는 상기 질의 객체(51)로부터 미리 결정된 거리(58) 이내에 위치되고, 상기 거리 메트릭에 따라 결정되고, 확인되는 것을 특징으로 하는 인덱스 구조를 이용한 네비게이션 장치 데이터베이스에서 유사성 검색을 수행하는 방법.
  10. 제1항 내지 제6항 중의 어느 한 항에 있어서,
    상기 질의 객체(51)의 거리 메트릭에 따라 결정된 최근접 이웃 k을 표현하는 객체의 정수 k>1가 확인되는 것을 특징으로 하는 인덱스 구조를 이용한 네비게이션 장치 데이터베이스에서 유사성 검색을 수행하는 방법.
  11. 제10항에 있어서,
    상기 확인된 객체는 질의 객체(51)와 각 확인된 객체 간의 거리에 근거하여 결정된 순서로 출력되는 것을 특징으로 하는 인덱스 구조를 이용한 네비게이션 장치 데이터베이스에서 유사성 검색을 수행하는 방법.
  12. 복수의 객체를 포함하는 데이터베이스를 위한 복수의 노드(11-17; 71-75)를 포함하는 인덱스 구조(10; 70)를 저장하는 저장장치(3)와,
    상기 저장장치(3)에 연결된 처리장치(2)를 포함하되;
    상기 처리장치(2)는,
    상기 복수 객체의 적어도 하나의 객체(52, 55, 59, 60)와 관련된 상기 인덱스 구조(10; 70)의 노드(11-13; 71-73)를 억세스 하고,
    거리 메트릭(distance metric)에 따라 상기 질의 객체(51)와 상기 적어도 하나의 객체(52, 55, 59, 60) 간의 거리(65, 66)를 결정하고,
    상기 결정된 거리(65, 66)에 근거하여 상기 인덱스 구조(10; 70)의 다른 노드(12-17; 72-75)를 선택적으로 억세스하여,
    상기 질의 객체(51)에 대한 유사성 검색을 수행하기 위하여 구성된 것을 특징으로 하는 네비게이션 장치.
  13. 제12항에 있어서,
    상기 처리장치(2)는 청구항 제1항 내지 제6항 중 어느 한 항의 방법을 수행하도록 구성된 것을 특징으로 하는 네비게이션 장치.
  14. 복수의 객체를 포함하는 네비게이션 장치 데이터베이스를 위한 메트릭 인덱스 구조(10; 70; 110)(metric index structure)를 생성하는 방법으로서,
    상기 인덱스 구조(10; 70; 110)의 다른 노드에 대한 지시자(pointer)를 포함하는 상기 인덱스 구조의 디렉토리 노드(11-13; 71-73; 111, 114)를 생성하고, 상기 인덱스 구조의 리프 노드(14-17; 74, 75; 113, 115, 116)를 생성하는 단계와,
    복수의 거리에 근거하여, 디렉토리 노드(11-13; 71-73; 111, 114)에 포함되는 객체와, 리프 노드(14-17; 74, 75; 113, 115, 116)에 포함되는 객체를 확인하는 단계를 포함하되;
    상기 디렉토리 노드(11-13; 71-73; 111, 114)와 리프 노드(14-17; 74, 75; 113, 115, 116)를 생성하는 단계는,
    복수의 객체 쌍에 대하여, 복수의 거리를 결정하기 위해 상기 객체 쌍의 객체 간 거리를 거리 메트릭에 따라 각각 결정하는 단계를 포함하는 것을 특징으로 하는 복수의 객체를 포함하는 네비게이션 장치 데이터베이스를 위한 메트릭 인덱스 구조를 생성하는 방법.
  15. 제14항에 있어서,
    상기 객체는 음소 문자열 또는 텍스트 문자열인 것을 특징으로 하는 복수의 객체를 포함하는 네비게이션 장치 데이터베이스를 위한 메트릭 인덱스 구조를 생성하는 방법.
  16. 제14항 또는 제15항에 있어서,
    상기 복수의 거리로부터 도출되는 거리정보를 상기 디렉토리 노드 및/또는 리프 노드에 저장하는 단계를 포함하는 것을 특징으로 하는 복수의 객체를 포함하는 네비게이션 장치 데이터베이스를 위한 메트릭 인덱스 구조를 생성하는 방법.
KR1020120017458A 2011-02-23 2012-02-21 데이터베이스 검색방법, 네비게이션 장치 및 인덱스 구조 생성 방법 KR101945749B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP11155710.4 2011-02-23
EP11155710.4A EP2492824B1 (en) 2011-02-23 2011-02-23 Method of searching a data base, navigation device and method of generating an index structure

Publications (2)

Publication Number Publication Date
KR20120096894A true KR20120096894A (ko) 2012-08-31
KR101945749B1 KR101945749B1 (ko) 2019-06-11

Family

ID=44851717

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120017458A KR101945749B1 (ko) 2011-02-23 2012-02-21 데이터베이스 검색방법, 네비게이션 장치 및 인덱스 구조 생성 방법

Country Status (6)

Country Link
US (1) US9436702B2 (ko)
EP (1) EP2492824B1 (ko)
JP (1) JP2012174272A (ko)
KR (1) KR101945749B1 (ko)
CN (1) CN102693266B (ko)
CA (1) CA2767277C (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101712847B1 (ko) * 2015-11-20 2017-03-07 경북대학교 산학협력단 방향성을 가지는 도로 네트워크에서 움직이는 k최근접 질의의 안전출구 위치를 계산하는 방법
KR102006283B1 (ko) 2019-02-26 2019-10-01 가천대학교 산학협력단 패스트맵을 이용한 데이터셋의 m-트리 적재방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6183376B2 (ja) * 2013-01-11 2017-08-23 日本電気株式会社 インデックス生成装置及び方法並びに検索装置及び検索方法
US9442929B2 (en) 2013-02-12 2016-09-13 Microsoft Technology Licensing, Llc Determining documents that match a query
CN103744886B (zh) * 2013-12-23 2015-03-18 西南科技大学 一种直接提取的k个最近邻点搜索方法
US10915543B2 (en) 2014-11-03 2021-02-09 SavantX, Inc. Systems and methods for enterprise data search and analysis
US9953065B2 (en) 2015-02-13 2018-04-24 International Business Machines Corporation Method for processing a database query
EP3311554B1 (en) * 2016-03-16 2022-03-09 Beijing Didi Infinity Technology and Development Co., Ltd. System and method for determining location
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
WO2018160605A1 (en) * 2017-02-28 2018-09-07 SavantX, Inc. System and method for analysis and navigation of data
US11328128B2 (en) * 2017-02-28 2022-05-10 SavantX, Inc. System and method for analysis and navigation of data
US10916014B2 (en) 2018-06-01 2021-02-09 Ford Global Technologies, Llc Distinguishing virtual objects from one another
CN109389119B (zh) * 2018-10-23 2021-10-26 百度在线网络技术(北京)有限公司 兴趣点区域确定方法、装置、设备和介质
GB201902772D0 (en) 2019-03-01 2019-04-17 Palantir Technologies Inc Fuzzy searching 7 applications thereof
US11710480B2 (en) * 2019-08-07 2023-07-25 International Business Machines Corporation Phonetic comparison for virtual assistants
EP3779733A1 (en) * 2019-08-12 2021-02-17 Universität Bern Information retrieval method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020002550A1 (en) * 2000-02-10 2002-01-03 Berman Andrew P. Process for enabling flexible and fast content-based retrieval
US20040111214A1 (en) * 2001-02-09 2004-06-10 Andreas Buecher Method of exchanging navigation information
US20060265422A1 (en) * 2005-03-15 2006-11-23 Sony Corporation Point searching apparatus and method of searching
US20080270142A1 (en) * 2007-04-25 2008-10-30 Find 1-4-U Inc. Remote Interactive Information Delivery System

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3152871B2 (ja) * 1995-11-10 2001-04-03 富士通株式会社 ラティスをキーとした検索を行う辞書検索装置および方法
CN100410933C (zh) * 2004-12-29 2008-08-13 复旦大学 一种基于xml数据的高效路径索引方法
US8244689B2 (en) * 2006-02-17 2012-08-14 Google Inc. Attribute entropy as a signal in object normalization
EP1994478A2 (en) * 2006-02-10 2008-11-26 Metacarta, Inc. Systems and methods for spatial thumbnails and companion maps for media objects
US20090037399A1 (en) * 2007-07-31 2009-02-05 Yahoo! Inc. System and Method for Determining Semantically Related Terms
CN101241511A (zh) * 2008-03-05 2008-08-13 北京邮电大学 一种基于时空数据的快速索引方法
US8326826B1 (en) * 2009-01-12 2012-12-04 Google Inc. Navigational resources for queries
US20120059786A1 (en) * 2010-09-02 2012-03-08 Walter Christian Kammergruber Method and an apparatus for matching data network resources

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020002550A1 (en) * 2000-02-10 2002-01-03 Berman Andrew P. Process for enabling flexible and fast content-based retrieval
US20040111214A1 (en) * 2001-02-09 2004-06-10 Andreas Buecher Method of exchanging navigation information
US20060265422A1 (en) * 2005-03-15 2006-11-23 Sony Corporation Point searching apparatus and method of searching
US20080270142A1 (en) * 2007-04-25 2008-10-30 Find 1-4-U Inc. Remote Interactive Information Delivery System

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
P. Ciaccia et al., M-tree: An Efficient Access Method for Similarity Search in Metric Spaces, Proc. of the 23rd VLDB Conference, pp.426-435 (1997.)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101712847B1 (ko) * 2015-11-20 2017-03-07 경북대학교 산학협력단 방향성을 가지는 도로 네트워크에서 움직이는 k최근접 질의의 안전출구 위치를 계산하는 방법
KR102006283B1 (ko) 2019-02-26 2019-10-01 가천대학교 산학협력단 패스트맵을 이용한 데이터셋의 m-트리 적재방법

Also Published As

Publication number Publication date
US20120215806A1 (en) 2012-08-23
EP2492824B1 (en) 2020-04-01
CA2767277C (en) 2014-11-18
CN102693266B (zh) 2017-06-30
JP2012174272A (ja) 2012-09-10
KR101945749B1 (ko) 2019-06-11
EP2492824A1 (en) 2012-08-29
CN102693266A (zh) 2012-09-26
US9436702B2 (en) 2016-09-06
CA2767277A1 (en) 2012-08-23

Similar Documents

Publication Publication Date Title
KR101945749B1 (ko) 데이터베이스 검색방법, 네비게이션 장치 및 인덱스 구조 생성 방법
CN108363698B (zh) 兴趣点关系识别方法及装置
JP5462361B2 (ja) マップサーチのためのクエリパーシング
JP4878178B2 (ja) データ処理方法および装置並びにその処理プログラム
US8898095B2 (en) Systems and methods to facilitate local searches via location disambiguation
Zheng et al. Efficient clue-based route search on road networks
CN107203526B (zh) 一种查询串语义需求分析方法及装置
KR100903961B1 (ko) 시그니처 파일을 이용한 고차원 데이터 색인 및 검색방법과 그 시스템
CN101019121A (zh) 对存储在数据库中的文档编制索引和进行检索的方法和系统
US9262486B2 (en) Fuzzy full text search
JP2009134463A (ja) 地理的情報を含む文書群の検索装置、検索方法、検索プログラムおよびそのプログラムを記録した記録媒体
CN103827867A (zh) 生成搜索树的方法和导航装置
KR20120115005A (ko) 효율적으로 질의를 처리하는 방법 및 장치
KR101615164B1 (ko) 엔-그램 기반의 질의 처리 장치 및 그 방법
CN115292962B (zh) 基于轨迹抽稀的路径相似度匹配方法、设备及存储介质
CN113139032A (zh) 地理位置的搜索方法、装置、电子设备及存储介质
Luberg et al. Information extraction for a tourist recommender system
Li et al. Trajectory representation learning based on road network partition for similarity computation
CN117744784B (zh) 一种医学科研知识图谱构建与智能检索方法及系统
KR102185703B1 (ko) 공간 지식 베이스 기반의 집단 키워드 질의 처리 방법 및 장치
Isaj et al. A Supervised Skyline-Based Algorithm for Spatial Entity Linkage
Maistruk Geographical Named Entity Recognition from Travel Articles
CN107704461B (zh) 一种基于数据分析的智能路况信息检索方法
CN114911787A (zh) 一种融合位置和语义约束的多源poi数据清洗方法
KR101576733B1 (ko) 주소 통합 검색 제공 방법 및 주소 통합 검색 제공 시스템

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant