KR101732342B1 - 신뢰 질의 시스템 및 방법 - Google Patents

신뢰 질의 시스템 및 방법 Download PDF

Info

Publication number
KR101732342B1
KR101732342B1 KR1020127006661A KR20127006661A KR101732342B1 KR 101732342 B1 KR101732342 B1 KR 101732342B1 KR 1020127006661 A KR1020127006661 A KR 1020127006661A KR 20127006661 A KR20127006661 A KR 20127006661A KR 101732342 B1 KR101732342 B1 KR 101732342B1
Authority
KR
South Korea
Prior art keywords
user
input
query
database
search engine
Prior art date
Application number
KR1020127006661A
Other languages
English (en)
Other versions
KR20120073229A (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 KR20120073229A publication Critical patent/KR20120073229A/ko
Application granted granted Critical
Publication of KR101732342B1 publication Critical patent/KR101732342B1/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/24Querying
    • G06F16/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2423Interactive query statement specification based on a database schema
    • 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/24Querying
    • G06F16/245Query processing
    • 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
    • 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/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

방법 및 시스템은 사용자가 구조화된 데이터베이스를 질의하게 하는 탐색 인터페이스를 제공하고, 하나 이상의 데이터베이스들로부터 데이터베이스 엔트리들을 검색하는 것, 복수의 데이터베이스 엔트리들을 플래트닝하는 것, 복수의 플래트닝된 데이터베이스 엔트리들을 색인하여 탐색 엔진 색인을 형성하는 것, 그리고 입력을 입력하도록 사용자를 프롬프트하는 것을 포함한다. 시스템은 사용자 입력을 계속적으로 모티너링하고, 사용자게 의해 입력이 입력될 때 마다, 시스템은 사용자에 의해 입력된 입력에 응답하여 논-널 (non-null) 부분 질의들의 세트를 컴퓨팅하고, 구조화된 항목을 각각의 논-널 부분 질의로 연관시키고, 그리고 사용자로 하여금 구조화된 항목들 중 하나를 선택하게 한다. 사용자가 구조화된 항목들 중 하나를 선택할 경우, 시스템은 사용자 입력을, 선택된 구조화된 항목과 연관된 논-널 부분 질의로 대체한다. 사용자가 입력을 승인하는 경우, 이 시스템은 입력을 질의로서 실행한다. 최종적으로, 시스템은 실행된 질의에 대응하는 다큐먼트들을 사용자에게 제공한다.

Description

신뢰 질의 시스템 및 방법{TRUSTED QUERY SYSTEM AND METHOD}
관련된 출원들의 상호 참조
본 출원은 명칭이 신뢰 질의 시스템 및 방법이고, 2009년 8월 31일 출원된 가 특허 출원 제 61/238,283 호로부터 우선권의 이익을 주장한다. 출원 제 61/238,283 호는 그 전체가 참조로서 본원에 포함된다.
저작권 공고
본 특허 문헌의 개시의 일부는 저작권 보호의 대상이 되는 내용을 포함한다. 저작권 소유자는 특허 및 상표청의 특허 파일이나 기록에 나타난 바와 같이, 특허 문서 또는 특허 개시물의 팩시밀리 재생산에 이의가 없지만, 그외에는 무엇이든 간에 모든 저작권 권리를 보유한다. 다음의 공고는 아래에 설명된 바와 같이 모든 소프트웨어 및 데이터에 그리고 도면에 적용된다: 저작권 ⓒ 2010, Exalead, 판권 소유자임.
본 개시는 일반적으로, 데이터 저장 및 검색에 관한 것이다. 보다 상세하게는, 본 개시는 사용자로 하여금 구조화된 질의 언어로 데이터 접근성을 탐색할 수 있게 하는 시스템 및 방법에 관한 것이다.
데이터베이스는 하나 이상의 다수의 사용들을 위한 구조화된 데이터의 집합으로 이루어진다. 데이터베이스를 분류하는 일 방식은, 콘텐츠의 타입, 예를 들어, 서지, 전문, 수치, 이미지 등을 수반한다. 아래에 설명된 바와 같이, 다른 분류 방법은 데이터베이스 모델 또는 데이터베이스 아키텍쳐를 조사한다.
데이터베이스의 데이터는 데이터베이스 모델에 따라서 소프트웨어에 의해 구조화된다. 관계형 데이터베이스 모델이 가장 흔히 사용된다. 계층형 모델 및 네트워크 모델과 같은 기타 모델들은 관계의 보다 명시적인 구조화된 표현을 사용한다. 관계형 데이터베이스는 데이터의 세트 내에서 발견된 공통적인 특징을 이용함으로써 데이터를 일치시킨다. 결과적인 데이터의 그룹은 많은 사람들이 더 이해하기 쉬운 방식으로 구조화된다. 예를 들어, 한 마을의 모든 부동산 거래들을 포함하는 데이터 세트는 거래가 발생한 년도로, 거래의 매매가로, 또는 매수인의 성씨 등으로 그룹화될 수 있다. 이러한 그룹화는 관계형 모델 ("개요 (schema)"로도 지칭함) 을 사용한다. 따라서, 이러한 데이터베이스는 "관계형 데이터베이스"로 지칭된다.
이러한 구조화 및 그룹화를 실시하는데 사용되는 소프트웨어는 관계형 데이터베이스 관리 시스템 (RDBMS; relational database management system) 으로 지칭된다. 용어 "관계형 데이터베이스"는 종종 이러한 소프트웨어의 타입을 지칭한다. 관계형 데이터베이스는 현재 금융 기록, 제조 및 물류 정보 및 개인 데이터 및 기타 다수를 저장하는데 사용되는 지배적인 선택이다. 구체적으로, 관계형 데이터는 흔히 테이블로 지칭되는 관계성의 집합이다. 테이블은 라벨링되고 타입화된 칼럼들 내 데이터 값 또는 키의 로우들로 이루어진다. 어떤 데이터베이스 관리 시스템은, 사용자가 질의를 하기 전에 그들 자신들을 식별하도록 요구하고, 일 테이블, 또는 풀 테이블들 내의 일부 로우 또는 칼럼은, 그 사용자에 대하여 정의된 접근 권한에 따라서, 소정의 식별된 사용자에 대하여 가시적일 수도 또는 가시적이지 않을 수도 있다.
데이터베이스 상의 질의는, 질의에 대한 대답을 만족해야하는 조건들을 지정하는 데이터베이스로부터 데이터를 요청하기 위한 포뮬러의 예시화이다. 구조화된 질의는 구조화된 문법에 따라서 만들어진 질의이다. 이러한 일 문법은 SQL (Structred Query Language) 에 지정되어 있으며, 이 SQL은 관계형 데이터 베이스 관리 시스템 (RDBMS) 에서 데이터에 액세스하기 위해 폭넓게 사용된 언어이다. 데이터베이스 검색 시스템은 하나 이상의 데이터베이스에 걸쳐서 사용자 질의들을 처리하는 소프트웨어 프로그램 또는 프로그램들의 세트이다.
질의 프로세스는 인스턴스화된 사용자 질의를 입력으로서 채택하는 것, 어떤 조건이 질의에서 지정되었는지를 이해하기 위해 질의를 파싱하는 것, 데이터베이스로부터 데이터에 액세스하는 것, 그리고 질의에서 지정된 조건들을 만족하는 데이터베이스로부터 대답을 리턴시키는 것을 의미한다. 잘 구조화된 질의는 데이터베이스 검색 시스템에서 구현된 문법을 준수하는 질의이다.
인스턴스화된 질의는 적어도 하나의 조건을 갖는 질의이다. 네이티브 데이터베이스 기능은, 데이터베이스의 생성, 데이터베이스의 변경, 및 데이터베이스 상의 질의의 처리를 비롯하여, 데이터베이스 상에서 데이터베이스 관리 시스템이 실시할 수 있는 그러한 연산들이다. 데이터베이스 질의로부터 비롯된 탐색은 일반적으로, 질의에서 지정된 조건들을 만족시키는 데이터베이스 엘리먼트들 모두의 리스트이다.
탐색 엔진은, 종종 다큐먼트로 지칭되고, 정보 부분을 여러 가지 정보원들로부터 페치하고, 그 정보를 색인하고, 질의에 응답하여 그러한 색인들을 이용하여 원래의 정보의 일부 표현에 액세스하기 위한 수단을 제공하는 소프트웨어 프로그램 또는 프로그램들의 세트이다. 원래의 정보, 또는 다큐먼트는, 웹 페이지, 이메일, PDF 파일, 이미지 파일, 비디오 파일, 오디오 파일, 데이터베이스로부터의 로우, 또는 분석의 대상이 되는 어떤 다른 정보 부분과 같은 텍스트 다큐먼트일 수도 있다.
데이터베이스 질의를 데이터베이스에 걸쳐서 실행하고 결과 리스트 내 모든 항목을 다큐먼트로서 다룸으로써 데이터베이스의 콘텐츠를 색인하는 것이 가능하다.
데이터베이스의 콘텐츠의 색인 이외에도, 데이터베이스의 콘텐츠를 사전에 플래트닝하는 것이 가능하다. "플래트닝" 방법은 데이터베이스로부터의 다수의 로우와 다수의 테이블들을 결합하여 다큐먼트를 생성하는 것으로 이루어진다.
탐색 엔진, 예를 들어, GOOGLETM, 또는 YAHOO!TM는 통상적으로, 데이터베이스 인터페이스와 비교해 볼 때, 다수의 탐색 박스, 가능하게는 테이블 내 모든 필드에 대하여 하나씩 가질 수도 있는, 사용자 질의를 입력하기 위한 고유 질의 박스를 갖는다. 탐색 엔진은 종종, 하나의 단어를 입력으로서 수신하고 그 단어를 포함하는 색인된 웹 페이지들 모두를 리턴하는 매우 단순한 입력 문법을 갖는다. 이 단어는 결과적인 다큐먼트 어디에라도 나타날 수도 있기 때문에 이것은 프리 텍스트 탐색의 예이다. 탐색 엔진에 의해 페치된 전체 다큐먼트가 탐색될 수 있다면, 이 탐색 엔진은 풀 텍스트 탐색을 구현한다.
다큐먼트들은 또한, 탐색 엔진에 의해 인식되는 섹션들로 분할될 수도 있다. 이러한 섹션들은 단락 섹션, 명칭 섹션 또는 본문 섹션을 포함한다. 일부 탐색 엔진들은 사용자로 하여금 질의를 지정된 섹션 또는 필드로 제한하게 한다. 탐색 엔진 질의의 탐색 결과는 질의와 일치하는 다큐먼트들의 리스트이다. 이 리스트는 통상적으로, (짧은 다큐먼트들을 먼저 나타냄으로써) 다큐먼트 길이에 의한 랭킹 또는 질의 내 단어의 밀도를 각각의 다큐먼트의 단어와 비교한 랭킹과 같은 랭킹 전략에 따라서 순서화된다.
프리 텍스트 탐색이 탐색 엔진에 대한 유효 질의를 포뮬레이트하는 동안, 이들은 통상적으로 보다 정교한 질의들에 대한 지원을 제공한다. 예를 들어, GOOGLE과 같은 대중적인 탐색 엔진은 종종, 부울 (Boolean) 연산자 (예를 들어, 디즈니 AND 월드) 또는 다큐먼트의 명칭 내에서 용어 "디즈니"만을 탐색하는 "제목:디즈니"와 같은 다큐먼트의 특정 부분을 목표로 하도록 구성된 연산자를 지원한다. 다큐먼트들을 부분으로 나누기 위한 많은 다른 변형들 또한 가능하다.
탐색 엔진들은 종종, 페치된 다큐먼트들로부터 추출되었던 용어들 모두의 역색인을 사용한다. 역색인은, 어떤 다큐먼트의 어디에서 용어가 발견되는지를 나타낸다. 이 색인로부터 추출된 용어들의 리스트는, 사용자가 질의 박스에 질의를 타이핑하고 있는 동안, 탐색 엔진으로 하여금 자동 완성을 제안하게 한다. 자동 완성은, 색인된 용어가 사용자가 현재 타이핑하고 있는 스트링의 가능한 완성임을 나타내는 메커니즘이다. 자동 완성은, 사용자가 타이핑하고 있는 것을 모니터링하는 프로세스에 의해 실시되고, 모든 키입력 이후에 가능한 완성문을 제안할 수도 있다. 자동 완성에 있어서의 각각의 제안된 완성은 탐색 엔진 내 질의로서 사용될 수 있는 색인된 용어일 수 있고, 색인된 용어에 대하여 탐색 엔진이 그 용어에 대응하는 다큐먼트가 존재한다는 것을 안다는 것이다.
탐색 엔진은 종종 사용자 질의들을 통해 철자를 체크하는 것을 구현한다. 철자 체크에 있어서, 결과가 거의 없거나 아예 없는 질의들에 있어서, 탐색 엔진은 사용자가 타이핑하려고 한 것일 수도 있는 그 역색인로부터 다른 용어를 제안할 수도 있다.
철자를 체크하는 것 이외에도, 탐색 엔진은 또한 다른 탐색 메커니즘을 제공할 수도 있는데, 예를 들어, dogs와 같은 탐색 용어는 스테밍 (stemmed) 되거나 분류 정리되어, 용어 dog과도 일치한다. 탐색 엔진 질의 구문의 다른 예는 임의의 수의 문자들과 일치시키기 위해 스타 (*) 연산자를 사용하는 것일 수 있으므로, 탐색 질의 dog*는 또한 역색인 용어 dog, dogs, dogged, dog-eared 등과 일치할 수도 있다. 이러한 방식의 스타 연산자의 사용은 접두사 일치로 지칭된다.
또한, 디폴트 스테밍을 턴 오프하여 완벽한 일치를 도입시키기 위해 탐색 질의의 주위에 따옴표의 사용을 정의할 수 있다. 예를 들어, "dogs"는 역색인의 용어 dogs와 일치할 뿐 용어 dog과 일치하지 않는다. 탐색 엔진은 또한 유의어 사전과 같은 어휘 시맨틱 구조를 이용하여 탐색을 구현하므로, 단어 dog에 관한 탐색은, 유의어 사전이 dog와 pet간의 관계성을 나타내고 이 관계성이 질의 처리 동안 활성화된다고 가정하면, 단어 pet을 포함하는 다큐먼트들을 검색할 수도 있다.
구문 가능도를 이용하는 탐색 엔진 검색과 데이터베이스 검색 둘 모두에 대한 질의들을 확립하는 것은 통상적인 정보 검색자에 대하여 어려울 수도 있다. 진보적 질의 구문법은 마스터하기 어렵고 작은 퍼센티지의 정보 검색자만이 상당한 트레이닝없이 이 구문법을 마스터할 수 있다.
데이터베이스 질의의 구성에서 사용자를 안내하는 상업적으로 입수가능한 제품이 존재한다. 예를 들어, 캘리포니아주 레드우드 쇼어즈의 ORACLETM로부터의 DISCOVERTM는 스크린 상에 디스플레이된 항목들의 드롭 다운 리스트로부터 항목들을 선택함으로써 질의를 구성하게 하는 질의 생성기를 포함한다. 이 항목들은 데이터베이스로부터 획득되는 데이터를 나타낼 수도 있고, 또는 대안으로 이들은 이 데이터 상에서 실시되는 연산들을 나타낼 수도 있다. 일단 이 항목들이 선택되었다면, 질의 생성기는, 실행을 위해 데이터베이스 검색 시스템으로 전송될 수 있는 질의를, 통상적으로 SQL에서 생성한다.
M. Hassan, R.Alhajj, 및 M.J. Rodley에 의한 명칭이 "Combining Free-word Search and Relational Databeses"인 글에서, 저자는: "구조화된 질의 언어는 다채로워서 널리 공지된 구조 및 특징을 이용하여 관계형 데이터베이스의 구조 및 콘텐츠를 질의하게 한다. 그러나, 소정의 동적 데이터베이스, 즉, 변화하는 또는 공지되지 않은 구조를 가진 데이터베이스는 질문 포뮬레이션 처리가 매우 어려운 작업이 되게 한다"고 기록한다. 상기 언급된 저자는 JDBC (Java Database Connectivity) 를 이용하여 단순 탐색-엔진형 질의를 일련의 데이터베이스 요청들로 변환함으로써 데이터베이스들의 콘텐츠 및 구조를 활용하는 시스템을 제안한다. JDBC는, 자바 프로그램으로 하여금 데이터베이스에 저장된 데이터를 조정할 수 있게 하는 기술이다. "모든 레벨들" 모드에서, 일단, 지정된 부울 커넥터에 의해 연결된 하나 또는 2개의 단어들로 이루어진 질의가 제출되면, JDBC 데이터베이스 요청이 모든 가시적인 데이터베이스로 전송되고, 임의의 데이터베이스명, 테이블명, 칼럼명, 또는 질의와 일치하는 값이 디스플레이된다.
비지니스 인텔리전스는, 더 양호한 비지니스 결정을 지원하기 위해서 그리고 회사의 활동의 개관을 경영 관리에 제공하기 위해서, 회사의 물리적인 및 무형의 데이터를 수집, 통합, 모델링 및 전달하는 컴퓨터 기반 기술을 지칭한다. 널리 공지된 비지니스 인텔리전스 시스템들의 일 주요 결점은, 이러한 시스템들이 종종, 복잡하게 구조화된 질의를 취급할 수 있도록 하나 이상의 전문가의 간섭을 요구한다는 점이다. 예를 들어, 경영 관리자가 특정 요청을 할 때마다, 그는 그 요청을 데이터베이스 전문가에게 표현하도록 강요받을 것이고, 데이터베이스 전문가의 역할은 요청을 만족하는 적절한 응답을 제공하기 위해서 복잡하게 구조화된 질의를 설계하는 것이다. 복잡하게 구조화된 질의의 설계 및 대화는 시간 소모가 크다. 따라서, 이 요구는 비지니스 인텔리전스 시스템의 성장에 심각한 제약을 나타낸다. 따라서, 특정 수준의 신뢰로 프리-텍스트 탐색을 구현하는 탐색 엔진과 같이, 이해 및 직관형 툴을 이용하여 요청을 포뮬레이팅하기 위한 방법 및 시스템이 요구된다.
본 문헌에 설명된 실시형태들은 여러 가지 방식에서 상기 방법과 상이하다. 본 발명의 일 실시형태에서, 모든 키누름에서의 사용자 입력이 모니터링되고 사용자 입력의 모든 가능한 완성이 제안된다. 다른 실시형태들은, 모든 가능한 질의들을 실행하기 보다는 탐색 엔진을 이용하여 소정의 데이터베이스를 통해 실행될 수 있는 구조화된 질의들을 설명한다. 일부 실시형태들은 또한, 탐색 엔진 기술의 속도 및 스케일러빌러티에 기초하여 이점을 제공하는 데이터베이스 검색 시스템 그 자체보다는 데이터베이스의 정보의 사본을 이용한다. 탐색 엔진은 일반적으로, 매우 고속이어서, 데이터베이스 검색 시스템이 질의에 대한 응답을 요구하는 데에 수 분 또는 수 초의 범위보다는 1초 미만 (sub-second) 의 범위에서 결과를 생성한다. 일부 실시형태들은 또한, 논-널 (non-null) 응답을 갖는 신뢰 질의만을 생성함으로써 사용자를 보조한다. 다른 실시형태는 또한 제안된 신뢰 질의의 결과 총계를 사용자에게 제공한다.
일 실시형태에서, 신뢰 질의 시스템은, 신뢰 질의들, 즉, 데이터베이스 상에서 유효하고 데이터베이스 내 인스턴스화된 레코드들이 일치하는 것으로 알려진 구조화된 질의들을 반복적으로 생성함으로써 데이터베이스의 콘텐츠에 액세스하는 수단을, 데이터베이스 구조 및 조종의 기술에 숙련되지 않은 사용자에게 제공한다. 구조화된 질의는 사용자 질의를, 질의되고 있는 데이터베이스를 통해 특정 값 또는 특정 필드로 제한한다. 본원에 언급된 바와 같이, 단어 질의는 탐색 엔진에 의해 실시된 구조화된 질의를 의미한다.
일 실시형태에서, 데이터베이스 상에서 신뢰 질의를 실시하는 방법은 하나 이상의 데이터베이스들로부터 데이터베이스 엔트리들을 검색하는 단계, 복수의 데이터베이스 엔트리들을 플래트닝하는 단계, 복수의 플래트닝된 데이터베이스 엔트리들을 색인하여 탐색 엔진 색인을 형성하는 단계, 및 입력을 입력시키도록 사용자를 프롬프트하는 단계를 포함한다. 시스템은 사용자 입력을 계속적으로 모니터링하고, 사용자에 의해 입력이 입력될 때마다, 시스템은 사용자에 의해 입력된 입력에 응답하여 논-널 (non-null) 부분 질의들의 세트를 컴퓨팅하고, 구조화된 항목을 각각의 논-널 부분 질의에 연관시키고, 그리고 사용자로 하여금 구조화된 항목들 중 하나를 선택하게 한다. 사용자가 구조화된 항목들 중 하나를 선택할 경우, 시스템은 사용자 입력을, 선택된 구조화된 항목과 연관된 논-널 부분 질의로 대체한다. 사용자가 입력을 승인하는 경우, 시스템은 이 입력을 질의로서 실행한다. 최종적으로, 이 시스템은 실행된 질의에 대응하는 다큐먼트들을 사용자에게 제공한다.
다른 실시형태에서, 컴퓨터 프로그램 제품은 컴퓨터 이용가능 매체와, 사용자로부터의 입력에 기초하여 탐색 엔진 상에서 신뢰 질의를 실시하는 컴퓨터 사용가능 매체 상에 수록된 컴퓨터 판독가능 코드를 포함한다. 실행되는 경우 프로세서에 의한 실행을 위한 컴퓨터 판독가능 코드는, 프로세서로 하여금 하나 이상의 데이터베이스들로부터 엔트리들을 검색하게 하고, 복수의 데이터베이스 엔트리들을 플래트닝하게 하고, 플래트닝된 데이터베이스 엔트리들을 색인하여 탐색 엔진 색인을 형성하게 하고, 그리고 입력을 입력시키도록 사용자를 프롬프트하게 한다. 컴퓨터 프로그램 제품은 사용자 입력을 계속적으로 모니터링하고, 사용자에 의해 입력이 입력될 때마다, 프로세서는 사용자에 의해 입력된 입력에 응답하여 논-널 부분 질의들의 세트를 컴퓨팅하고, 구조화된 항목을 각각의 논-널 부분 질의로 연관시키고, 그리고 사용자로 하여금 구조화된 항목들 중 하나를 선택하게 한다. 사용자가 구조화된 항목들 중 하나를 선택한다면, 프로세서는 사용자 입력을, 선택된 구조화된 항목과 연관된 논-널 부분 질의로 대체한다. 사용자가 입력을 승인할 경우, 프로세서는 입력을 질의로서 실행하고, 실행된 질의에 대응하는 다큐먼트를 사용자에게 제공한다.
추가적인 실시형태에서, 사용자로부터의 입력에 기초하여, 신뢰 질의들을 탐색 엔진에서 실시하는 시스템은, 하나 이상의 데이터베이스들로부터 데이터베이스 엔트리들을 검색하도록 구성된 프로세서, 데이터베이스 엔트리들을 플래트닝하도록 구성된 데이터베이스 플래트닝 컴포넌트, 플래트닝된 복수의 데이터베이스 엔트리들을 색인하여 탐색 엔진 색인을 형성하도록 구성된 데이터베이스 색인 컴포넌트, 및 입력을 입력시키도록 사용자를 프롬프트하도록 구성된 디스플레이 스크린을 포함한다. 이 프로세서는 사용자 입력을 계속적으로 모니터링하고, 사용자에 의해 입력된 입력에 응답하여 논-널 부분 질의들의 세트를 컴퓨팅하고, 구조화된 항목을 각각의 논-널 부분 질의에 연관시키고, 사용자로 하여금 구조화된 항목들 중 하나를 선택하고, 그리고 사용자가 구조화된 항목들 중 하나를 선택할 경우, 사용자 입력을 선택된 구조화된 항목과 연관된 논-널 부분 질의로 대체함으로써 사용자에 의해 입력된 사용자 입력을 처리한다. 사용자가 입력을 승인하는 경우, 프로세서는 입력을 질의로서 실행하고 그리고 실행된 질의에 대응하는 다큐먼트들을 사용자에게 제공한다.
질의를 포뮬레이트하기 위해 프리-텍스트를 이용하는 것이 원래 모호하고, 이러한 모호성은, 의사결정의 맥락에서, 예를 들어, 결과 세트 내의 항목/범주를 카운팅하는 파이 도표를 도시하는 경우 비지니스 인텔리전스 응용의 맥락에서 결과 세트들이 사용되는 경우의 문제점일 수도 있기 때문에, 본원에 설명된 몇몇 실시형태들에 따른 신뢰 질의를 제공하고 생성하는 것이 중요하다. 따라서, 해석을 제안하는 신뢰 질의 시스템 및 방법, 즉, 프리 텍스트 질의를 포뮬레이팅하는 경우 사용자가 생각할 수도 있는 것을 예상하는 구조화된 질의 프로세스가 요구된다. 이것은, 질의들을 포뮬레이트하기 위해 프리 텍스트를 이용하는 경우 일정 레벨의 "신뢰"를 생성하기 위해서 중요하다. 이것은, 비지니스 인텔리전스의 맥락에서 특히 중요하다.
시스템 및 방법은 다음의 설명과 함께 다음의 도면을 참고로하여 더욱 잘 이해될 수도 있다. 도면의 컴포넌트들은 본 발명의 원리를 나타내는 대신에 축척, 강조가 필수적인 것은 아니다. 또한, 도면들에서, 동일한 도면부호는 상이한 관점들을 통해 대응하는 부분들을 지정한다.
도 1은 신뢰 질의 방법 및 시스템에 의해 채택될 수도 있는 단계들을 도시하는 본 발명의 일 실시형태에 따른 흐름도이다.
도 2는 특정 실시형태에 따른, 데이터베이스를 플래트닝하도록 채택될 수도 있는 단계들을 도시하는 흐름도이다.
도 3은 특정 실시형태에 따른, 플래트닝된 데이터베이스 테이블을 색인하도록 채택될 수도 있는 단계들을 도시하는 흐름도이다.
도 4는 사용자 입력 및 모니터링을 위해 채택될 수도 있는 단계들을 도시하는 특정 실시형태에 다른 흐름도이다.
도 5는 모든 사용자 키누름 이후에 신뢰 질의들이 생성되는 방법을 도시하는 특정 실시형태에 따른 흐름도이다.
도 6은 본 발명의 여러 가지 실시형태들에 따라서 방법을 구현하도록 사용될 수 있는 컴퓨터 시스템의 블록도이다.
도 7은 본 발명의 일 실시형태에 따른, 통상적인 데이터베이스 테이블을 도시하는 도면이다.
도 8은 도 7의 데이터베이스가 탐색 엔진에 어떻게 표시될 수 있는지를 도시한다.
도 9 및 도 10은, 특정 실시형태에 따른, 데이터베이스 및 그 플래트닝된 포맷의 예시된 실시예를 도시하는 도면이다.
도 11 내지 도 21은 본 발명의 특정 실시형태에 따른, 신뢰 질의 인터페이스의 여러 가지 스크린 디스플레이를 도시한다.
도 1은 신뢰 질의 시스템 (110) 의 일 실시형태에 따라서 채택될 수도 있는 단계들 (100) 을 포함하는, 신뢰 질의 시스템의 동작을 도시하는 흐름도이다. 사용자 프로세스의 개관으로서, 그리고 특정 실시형태에 따르면, 사용자는 GUI 또는 그래피컬 사용자 인터페이스와 같은 인터페이스로 나타내어져 탐색 엔진을 이용하여 데이터베이스를 질의한다. 이후, 사용자는 그의 질의를 탐색 엔진의 질의 박스로 타이핑하기 시작한다. 바람직한 실시형태에서, 각각의 키누름이 타이핑된 후, 이 시스템은 데이터베이스로부터의 레코드의 논-널 세트를 리턴시키는 인스턴스화된 그리고 부분적으로 인스턴스화된 질의들의 버전을 디스플레이한다.
언제라도, 사용자는 (ⅰ) 시스템 (110) 에 의해 제안된 질의 제안 (query suggestion) 을 클릭할 수 있고, (ⅱ) 디스플레이된 질의 박스에 더 많은 텍스트를 입력할 수 있고, 또는 (ⅲ) 현재 질의를 기초 탐색 엔진 또는 데이터베이스 검색 시스템에 제출할 수 있다. 대안으로, 사용자는 타이핑을 하기보다는 시스템 (110) 에 대한 데이터 입력으로서 음성-텍스트 인터페이스를 사용할 수도 있다. 다음 설명에서, 사용자는 텍스트 엔트리 인터페이스를 이용하고 있다는 것을 가정한다.
신뢰 질의 방법 및 시스템 (110) 의 일 이점은, 사용자가 제로 결과를 생성하는 질의를 포뮬레이트하지 않는다는 것이다. 본원에 기재된 프로세스 동안, 사용자는 제로 결과로 이어질 수 있는 텍스트를 입력할 수 있지만, 신뢰 질의 방법 및 시스템 (110) 은 먼저, 사용자가 질의를 승인하기 전에 이러한 질의가 제로 결과를 리턴시킬 것이라는 것을 사용자에게 경고한다. 시스템 (110) 은 또한, 예를 들어, 그 포인트에서 철자 체크를 통해 대안을 제안할 수도 있다.
사용자가 타이핑을 시작하기 전에 논-제로 결과들을 보여주는 이러한 질의들 모두를 생성하는 것이 이론적으로 가능할 수도 있지만, 다수의 조합형 가능성들이 탐색 엔진에 의해 질의되는 원래의 데이터베이스의 사이즈보다 더 큰 크기순으로 저장 공간을 요구할 수도 있고, 따라서 이것은 실현가능하지 않거나 경제적으로 실행가능하지 않다. 본원에 개지된 바와 같은 실시형태를 이용하여, 아래에 설명되는 바와 같이, 신속한 탐색 엔진 검색에 의해 가능한 논-널 질의들이 실시간으로 또는 즉시 생성되기 때문에, 데이터베이스를 통해 실행되는 가능한 질의들 모두를 명시적으로 생성할 필요는 없다.
일 실시형태에 따른 신뢰 질의 방법 및 시스템 (110) 이 네이티브 데이터베이스 기능보다는 기초 탐색 엔진 기술을 이용하기 때문에, 시스템 (110) 은 풀 텍스트 탐색과, 기초 데이터베이스 시스템에 나타나지 않을 수도 있는 다른 탐색 엔진 능력을 제공한다. 예를 들어, 신뢰 질의 방법 및 시스템 (110) 은 다음을 제공한다:
● 언어 검출
● 문장 경계 인식을 이용한, 토큰화 및 정규화 (텍스트를 개별 워드 및 문장으로 파싱하는 것, 분리자와 유사한 여백 및 구두법에 관한 언어-특정 규칙을 적용하는 것)
● 스테밍 (동일한 스템을 공유하는 단어들, 예를 들어 "엔진"과 "엔진들"의 식별)
● 분류정리화, 형태학 및 구문 처리 (기반 스템뿐만아니라 "good" 및 "better"와 같은 더 복잡한 변형의 식별, 그리고 단어 및 문장 구조 패턴의 언어-특정 정보를 적용)
신뢰 질의 방법 및 시스템의 특정 실시형태들에서, 일단 플래트닝되면, 탐색 엔진과 같은 상업적으로 입수가능한 소프트웨어는 기초 데이터베이스를 색인하는데 사용될 수도 있다. 이러한 상업적으로 입수가능한 탐색 엔진은 바람직하게는, "SPLIT" 연산자 능력을 포함한다. 기초 데이터베이스 (또는 가능하게는 2 이상의 데이터 베이스) 는 먼저 탐색 엔진에 의해 전적으로 색인되어 탐색 엔진 색인을 생성하므로, 이후, 탐색 엔진은 원래의 데이터베이스보다는 탐색 엔진 색인에 관하여 작동한다. 이후, 사용자 질의에 기초하여, 탐색 엔진은 탐색 엔진 색인으로부터 획득된 다큐먼트를 리턴시키고, 이러한 결과는, 아래에 설명되는 바와 같이, 원래의 데이터베이스의 로우를 나타낸다. 물론, 탐색 엔진 색인은, 메모리 효율 및 처리 속도에 대하여 요구되는 바와 같이, 많은 구조들 또는 하위구조들을 포함할 수도 있다. 대안으로, 메모리 사용을 최소화하고 효율적인 처리를 향상시키기 위해 다수의 "배치들 (batches)"에서 색인화가 실시될 수도 있다. 이와같이, 전체 탐색 엔진 색인은 동시에 메모리에 상주할 필요는 없다.
이제, 도 1을 참조하면, 일 실시형태에 따른 신뢰 질의 방법을 실시하는 단계 (110) 는 고레벨 포맷으로 그 개요가 서술된다. 이 단락에서 설명된 선택된 고레벨 단계들은 아래에서 더욱 상세하게 설명될 것이다. 제 1 단계 (120) 에서, 데이터베이스 ("A")(122) 로부터 데이터베이스 테이블이 검색되고, 이 테이블들이, 플래트닝되고 플래트닝된 데이터베이스 저장부에 저장된다 (124). 이 처리는 도 3에서 보다 상세하게 도시된다. 다음으로, 플래트닝된 데이터베이스 (124) 는 탐색 엔진 또는 다른 적절한 툴을 이용하여 색인된다 (130). 이후, 제안 리스트가 추출되고 (140) 제안 리스트 ("B)에 저장된다 (126). 이후, 입력 디스플레이 스크린이 사용자에게 표시되어 (150) 사용자가 여러 가지 탐색 용어 또는 질의를 입력하게 한다. 이후, 처리는 사용자 입력을 계속적으로 모니터링하고, 질의에 대하여 논-널 응답을 유발시키는 질의들을 사용자에게 제안한다 (160). 이 단계는 반복적으로 루핑하여 신뢰 질의 처리를 사용자에게 제공한다.
도 1의 플래트닝 단계 (120) 에 대하여, 통상적인 데이터베이스 테이블의 단순화된 표현인 도 7에 도시된 데이터베이스 테이블 (700) 이 액세스된다. 데이터베이스로부터의 데이터베이스 테이블 (700) 이 네임D (720) 를 가진 타입 T (710) 이고, C1, C2,..., CN으로 라벨링된 복수의 데이터베이스 테이블 칼럼 (730) 과 T11, T12,...T1N, T21, T22,...T2N, 및 TM1,...,TMN까지의 값들로 인스턴스화된 복수 (M개의) 의 데이터베이스 테이블 로우 (740) 로 구성된다. 이 설명에서, 용어 "칼럼" 및 "필드"는 상호교환가능하게 사용된다는 것을 주목한다.
도 1의 단계 120에서, 데이터베이스 A는 공지된 데이터베이스 플래트닝 기술을 이용하여 플래트닝될 수도 있고, 특정 포맷으로 플래트닝될 수도 있으며, 이 포맷에서 각각의 로우는 데이터베이스 테이블 타입, 데이터베이스 테이블명, 데이터베이스 칼럼명 (필드명) 및 데이터베이스 테이블 로우 내의 인스턴스화된 값들을 식별하는 정보를 포함한다. 임의의 적절한 탐색 엔진은 프랑스의 Exalead S.A.로부터 입수가능한 CLOUDVIEWTM 탐색 엔진과 같이, 데이터베이스를 플래트닝하는데 사용될 수도 있다. 단계 120 동안, 단지 예시의 목적으로 도 7에는 이러한 일 테이블이 도시되었지만, 복수의 데이터베이스들과 각각의 데이터베이스 내 복수의 테이블들이 플래트닝되고 색인될 수도 있다.
도 2는 데이터베이스를 플래트닝하기 위해 채택된 단계들을 보다 상세하게 도시하고, 도 1의 단계 120에 대응한다. 예를 들어, 도 7의 데이터베이스 테이블은, 도 8에 도시되는 플래트닝된 포맷으로 전환되는 것을 도시한다. 도 8에 도시된 플래트닝된 포맷은 콜론 (810), 콤마 (820) 및 세미콜론으로 분리된 텍스트 한 줄에 각각의 데이터베이스 테이블 로우를 복제하고, 로우 번호, 칼럼명, 및 칼럼 값을 나타내는 위치를 보여준다. 예를 들어, 도 7의 제 2 로우의 제 2 칼럼, T22의 값은 도 8에서 다음 라인과 같이 나타난다:
- 로우-2 : T/D/C1, T21; T/D/C2, T22;...; T/D/CN, T2N
도 8에 도시된 바와 같은 이 실시예에서, (세미콜론으로 분리된) 제 1 필드, ROW-2 (840) 는, 이 라인이 이 테이블의 제 2 로우에 해당한다는 것을 나타낸다. 이 세미콜론 다음 N개의 필드들이 이어진다. 이러한 필드들 중 제 2 필드는 콤마로 분리된 2개 항목들, 즉, T/D/C2 및 T22를 포함한다. 이 필드가 콜론 이후 제 2 필드이기 때문에, 이것은 테이블에서 제 2 칼럼에 해당한다. 이 필드 내 제 1 항목은 데이터베이스 타입 T (선택 값), 데이터베이스 테이블명 D, 및 필드 또는 칼럼명, C2의 계층적 표현을 제공한다. 이러한 분리 관습은 임의의 적절한 또는 등가의 분리 방식으로 대체될 수 있고, 이러한 적절한 분리 방식의 설명은 다음 URL:http://en.wikipedia.org/wiki/Flat_file_database에서 찾을 수도 있다.
도 2에 도시된 바와 같이, 탐색 엔진을 이용하여 데이터베이스에 관하여 질의가 실시되고 (202), 데이터베이스 질의 결과의 다음 로우가 판독되거나 시스템으로 입력된다 (204). 처리가 데이터베이스 질의 결과의 끝과 조우하지 않는다면 (210), 각각의 칼럼 (216) 에 있어서, 이 로우의 끝이 조우되었는지 여부를 결정하는 체크가 이루어진다 (226). 로우의 끝이 조우되었다면 (226), "로우의 끝" 분리자 심볼이 그 로우의 끝에 기록되고 (230), 처리가 단계 204로 다시 이동하여 다음 로우를 판독한다.
로우의 끝이 조우되지 않았다면 (226), 칼럼명 다음에 칼럼명 분리자 심볼이 파일에 기록된다 (250). 다음으로, 칼럼 값 다음에 칼럼 분리자 심볼이 파일에 기록된다 (260). 이후, 파일에 더 많은 칼럼이 존재하는지 여부를 결정하는 체크가 이루어진다 (270). 더 많은 칼럼이 존재한다면, 처리는 일 로우를 완전하게 처리하기 위해 단계 226으로 다시 이동한다. 추가 칼럼이 존재하지 않는다면, 처리는 종료점으로 이동한다 (280). 단계 (210) 에서, 파일의 끝이 조우된다면, 그 루틴은 완료된 것으로 여겨지고 (290), 처리는 종료점 (280) 으로 이동한다. 플래트닝 프로세스는, 탐색 엔진으로 하여금 즉시 칼럼명과 필드 값 모두에 있어서 탐색을 하게 하므로, 일 유효 질의에서 이 데이터 모두에 걸쳐서 제안 리스트를 구축하게 한다.
도 1로 다시 돌아가면, 단계 130에서, 단계 120에서 플래트닝되었던 다른 데이터베이스들 모두와 함께 데이터베이스 A의 플래트닝된 버전이 색인된다. 다큐먼트의 섹션들 내에서 탐색을 하게 하는 표준 탐색 엔진 또는 상업적으로 이용가능한 엔진을 이용하여 데이터베이스의 플래트닝이 실시될 수도 있다. 이러한 표준 탐색 엔진은 입력으로서 다큐먼트를 수신하고, 사용자 질의 용어를 포함하는 다큐먼트들에 사용자 질의들을 일치시키도록 후속해서 처리될 수 있는 역화일 데이터 구조의 다큐먼트들에 단어들 모두를 배치시킨다. 도 8에 주어진 플래트닝된 데이터베이스 예에서, 다큐먼트의 섹션들은 세미콜론으로 분리된다.
도 3은 도 1의 단계 130에 도시된 색인화 단계에 관한 추가적인 세부사항을 도시한다. 먼저, 상업적으로 입수가능한 탐색 엔진이 SPLIT 연산자 능력 (310) 을 제공할지 여부의 결정이 이루어진다. SPLIT 연산자는, 사용자가 다큐먼트의 섹션 내에서 탐색할 수 있게 한다. 어떤 SPLIT 연산자도 이용가능하지 않다면 (310), 처리가 종료된다 (314). SPLIT 연산자가 이용가능하다면, 플래트닝된 데이터베이스 테이블이 색인화된 후 (320), 처리가 종료된다 (314).
예를 들어, 다음 탐색 (T/D/C2 AND T22) SPLIT ";"는, 이 예에서 다큐먼트 ROW-2를 리턴시킬 것이다. 도 9는 고객 관련 데이터베이스로부터 추출된 "All leads" (900) 로 지칭된 테이블의 예를 도시하는 반면, 도 10은 그 플래트닝된 버전 (1000) 을 도시한다. 아래에 더욱 자세하게 설명되는 신뢰 질의 시스템 및 방법의 기능을 설명하기 위해서 도 9 및 도 10의 "All_Leads"로 지칭된 이 데이터베이스 테이블 및 본원에 나타내지 않은 유사하게 처리된 데이터베이스 테이블이 사용될 것이다.
다음으로, 도 1을 다시 참조하면, 색인화 단계 (130) 동안 색인된 용어들 모두의 리스트는, 단계 140에서 도시된 바와 같이, 단어 리스트 "B"에 기록된다. 이 단계는 선택적일 수도 있다. 단어 리스트 B는 색인화 단계 (130) 와 동시에 생성될 수도 있고, 또는 단계 130 이후에 생성될 수도 있고, 또는 그렇지 않을 수도 있다. 단어 리스트 B는, 철자 체크 목적으로 그리고 표음식 탐색과 같은 다른 성격의 언어 처리를 위해 사용될 수도 있다.
이후, 사용자에게 디스플레이가 제시되거나 (150), 또는 예를 들어, 키보드, 포인팅 디바이스, 터치 감지 스크린, 음성 입력 등과 같은 입력 디바이스를 이용하여 사용자가 텍스트를 질의 박스 및/또는 클릭 다양성 선택들로 입력할 수 있게 하는 다른 인터페이스가 제시된다. 음성 인식을 구현하고 사용자에 의해 이슈된 음성 명령들을 처리하기 위해서 적합한 상업적으로 이용가능한 음성 인식 소프트웨어 및/또는 하드웨어가 사용될 수도 있다. 바람직하게는, 사용자에게 표시된 최초 디스플레이에서, 모든 색인된 데이터베이스 테이블들이, 테이블당 색인된 로우들의 수로, 라인당 하나씩 디스플레이된다. 이 표시 (1100) 의 예가 도 11에 도시되며, 도 11에서 3개의 테이블 <<All-Leads>>(1110), <<All-Contacts>>(1120) 및 <<All-Accounts>>(1130)이 각각 97, 73 및 21 색인된 로우들로 색인된다.
도 1에 도시된 단계 160에서, 질의 박스에 입력된 임의의 사용자 입력은 신뢰 질의 제안 생성의 반복적인 프로세스를 활성화시킨다. 신뢰 질의는 다음 조건들을 만족하는 질의이다:
(a) 질의는 탐색 엔진용의 잘 구조화된 질의이다; 그리고
(b) 탐색 엔진 상에서 실시되는 경우, 질의는 논-널 복수 대답을 리턴시킨다. 선택적으로, 데이터베이스 콘텐츠에 액세스하기 위해 사용자 허가가 필요하다면, 이후 신뢰 질의가 식별된 최종 사용자에 의해 실행되는 경우, 이 질의는 그 식별된 최종 사용자에 대한 논-널 복수 대답을 리턴시킬 것이다.
단계 160에서, 각 글자 또는 음소가 입력 디바이스를 이용하여 사용자에 의해 입력된 후, 사용자에 의해 입력된 텍스트에 대응하여, 질의가 생성되고 탐색 엔진 색인을 통해 실행된다. 신뢰 데이터베이스 질의 프로세스 (100) 를 실시하기 위해 단계 150과 160에 나타낸 상기 프로세스가 되풀이하여 반복된다.
도 4는 도 1의 단계 150 및 160의 추가적인 세부사항을 도시한다. 먼저, 질의 박스를 나타내는 사용자 인터페이스가 사용자에게 제시되어 (150), 사용자가 질의를 입력할 수도 있다. 연속성을 위해 단계 150이 이 도면에 도시된다. 상기 언급된 바와 같이, 임의의 적절한 데이터 엔트리 또는 요청 방법이 사용될 수도 있다. 처리는 사용자 입력을 대기하여 연속적으로 루핑한다 (404). 사용자가 그의 데이터 또는 질의를 입력한 후, 처리는, "엔터" 키가 눌러졌는지 여부를 결정한다 (408). 엔터 키가 눌러졌다면 (408), 사용자에 의해 입력된 (승인된) 질의가 탐색 엔진에 제출되고 (410), 사용자에 대한 표시를 위해 결과 페이지가 처리되고 (416), 그리고 처리는 사용자 인터페이스의 디스플레이로 (150) 다시 분기한다. 다른 실시형태에서, 사용자에 의해 입력된 질의는 하나 이상의 원래의 데이터베이스 (122) 의 구문으로 맵핑되고, 맵핑된 질의들이 데이터베이스(들)에 걸쳐 실시되고, 그리고 데이터베이스 탐색 결과가 사용자에게 표시된다 (416).
사용자가 엔터 키를 누르지 않은 경우 (408), 처리는, 사용자가 제안된 부분 질의들 중 하나를 클릭했는지 여부를 결정한다 (420). 사용자가 제안된 부분 질의들 중 하나를 클릭하지 않았다면 (420), 처리는, 사용자가 키누름을 입력했는지 여부를 결정한다 (430). 사용자가 키누름을 입력하지 않은 경우 (430), 처리는, 사용자가 제안 이외의 것을 클릭했는지 여부를 결정한다 (440). 사용자가 제안 외부의 것을 클릭했다면 (440), 제안은 사용자에게 숨겨질 수도 있고 (446), 처리는 사용자 인터페이스의 디스플레이 (150) 로 다시 분기한다. 일 실시형태에서, 사용자가, 제공된 제안들의 외부 영역을 클릭했기 때문에 제안이 숨겨질 수도 있고, 따라서, 사용자가 그 탐색 분야를 주목하거나 관심있지 않다는 것이 가정된다.
사용자가 제안된 부분 질의들 중 하나를 클릭한 경우 (420), 질의 입력 박스의 입력 필드에 선택된 질의가 디스플레이된다 (460). 다음으로, 도 5를 참고로하여 아래에 더욱 상세하게 설명되는 바와 같이 신뢰 질의 처리 (470) 로부터 자동-완성 제안이 획득된다. 자동 완성 제안이 신뢰 질의 처리로부터 획득된 후 (470), 이 자동-완성 제안은 사용자에 대한 디스플레이를 위해 처리되고 (480), 처리는 사용자 인터페이스의 디스플레이 (150) 로 다시 분기한다.
단계 430에서, 사용자가 키누름을 입력한 경우, 신뢰 질의 처리로부터 자동 완성 제안이 획득된다 (470). 사용자가 제안 이외의 것을 클릭하지 않은 것으로 처리가 결정하는 경우 (440), 처리는 사용자 인터페이스의 디스플레이 (150) 로 다시 분기한다.
단계 470에 도시된 자동-완성 제안을 획득하는 과정이 도 5에 더욱 상세하게 도시되고, 이러한 디스플레이된 자동-완성 제안은, 색인된 플래트닝된 데이터베이스에서 발견된 용어들의 가능한 타당한 완성에 대응한다. 자동-완성의 프로세스는, 사용자가 단어나 문구를 완전하게 실제로 타이핑할 것을 요구하지 않고, 사용자가 입력하기 원할 수도 있는 단어나 문구를 예측하는 것을 포함한다.
단계 470에 대하여 예시된 일 실시형태에 따른 자동-완성 특징은, 사용자에 의해 이미 타이핑된 단어나 문구에 기초하여, 타이핑될 단어나 문구를 예측하는 것이 용이할 경우, 예를 들어, 이메일 프로그램, 웹 브라우저 또는 명령어 라인 인터프리터를 이용하는 케이스일 수도 있는 것과 같이 가능한 또는 통상적으로 사용된 제한된 수의 단어들이 존재하는 경우, 또는 매우 구조화된 용이-예측 언어로, 예를 들어, 소스 코드 편집기로 텍스트를 편집하는 경우 특히 유효하다. 자동-완성은 인간-컴퓨터 상호작용 속도를 증가시키고 사용자 만족도를 개선한다.
신뢰 질의 시스템 (110) 의 일 실시형태의 자동-완성은, 사용자로 하여금 SQL 스테이트먼트의 테이블명과 SQL 스테이트먼트에서 언급된 테이블들의 칼럼명을 자동-완성하게 한다. 텍스트가 에디터로 타이핑되기 때문에, SQL 스테이트먼트 내의 커서의 콘텍스트는, 사용자가 테이블 완성 또는 테이블 칼럼 완성을 요구할지 여부의 표시를 제공한다. 테이블 완성은, 사용자가 접속되는 데이터베이스 서버에서 이용가능한 테이블들의 리스트를 제공한다. 칼럼 완성은 SQL 스테이트먼트에서 언급된 테이블들만을 위한 칼럼들의 리스트를 제공한다.
신뢰 질의 시스템 (110) 의 일 실시형태의 자동-완성 처리는, SQL 편집기 이외에도, 데이터베이스에서 여러 가지 질의를 위한 자동-완성 툴을 제공하는 AquaFold, Inc.로부터의 Aqua Data Studio, 출시물 7.5와 같은 상업적으로 입수가능한 소프트웨어 프로그램들과 비슷할 수도 있다. 많은 워드 프로세싱 프로그램들에서, 자동-완성은 반복적인 단어 및 문구를 타이핑하는데 걸리는 시간의 양을 감소시킨다. 자동-완성을 위한 원자료는, 사용자에 의해 정의된 통상적인 단어들의 리스트에 관하여 또는 이 리스트로부터 사용자가 작업하고 있는 현재 다큐먼트로부터 수집될 수도 있다.
현재, 예를 들어, 캘리포니아주 레드우드시의 오라클사로부터의 OpenOffice.org, 썬 마이크로시스템즈사로부터의 StarOffice, 마이크로소프트사로부터의 Microsoft Office, 및 KDE사로부터의 KOffice는, Emacs 및 Vim과 같은 향상된 텍스트 편집기들을 실행하기 때문에, 자동-완성을 위한 상술된 지원을 포함한다. Unix의 sh 또는 bash, 또는 Microsoft Window의 cmd.exe 또는 PowerShell와 같은 명령어 라인 인터프리터들, 또는 비슷한 명령어 라인 인터페이스들에서, 사용자가 액세스할 수도 있는 것들의 가능한 이름들 모두를 추적함으로써 명령어 이름과 파일 이름의 자동-완성이 완성될 수도 있다.
일부 프로그램들에서, 단어의 첫 번째 여러 가지 글자들을 타이핑한 후 탭
Figure 112012020591419-pct00001
키를 누름으로써 자동-완성이 실시될 수도 있다. 예를 들어, x로 시작하는 현재 디렉토리 내 유일한 파일이 xLongFileName인 경우, 사용자는 x를 타이핑하고 완벽한 이름을 자동-완성할 것을 선호할 수도 있다. 동일한 범위에 존재하는 x로 시작하는 다른 파일 이름이나 명령어가 존재한다면, 사용자는 추가 글자를 타이핑하거나 탭 키를 반복적으로 눌러 적절한 텍스트를 선택할 수도 있다. 신뢰 데이터베이스 질의의 일부 실시형태들에서, 유효한 완성은 원래의 데이터이스에서 발견된 임의의 칼럼명일 수도 있고, 또는 원래의 데이터베이스 내 로우 값들의 임의의 부분적인 일치일 수도 있다. 본 발명의 몇몇 실시형태들에서 칼럼명과 로우 값들 둘 모두가 색인되었다.
도 5는 도 4의 단계 470의 자동-완성 제안 프로세스를 더욱 상세하게 도시한다. 먼저, 질의 박스의 콘텐츠가 분석된다 (506). 질의 박스가 비어있다면 (510), 각 테이블 내 로우들의 총수 및 테이블명들 모두가 탐색 엔진 색인으로부터의 제안들로서 페치되고 (520), 포맷팅된다 (530).
질의 박스가 텍스트를 포함한다면 (510), 질의가 파싱된다 (534). 파싱은 질의 박스 (구조화된 청크) 내 테이블명과 칼럼명을 인식하여 식별하고, 사용자에 의해 입력된 풀, 프리 텍스트를 인식하여 구조화된 제안들을 생성한다.
파싱 (534) 이후, 처리는, 파싱의 결과로서 풀, 프리 텍스트가 인식되었는지 여부를 결정한다 (538). 풀, 프리 텍스트가 파싱되었다면 (538), 처리는, 테이블명이 질의 박스에 나타났는지 여부를 결정하도록 분기한다 (544). 이 포인트에서, 처리는, 새로운 텍스트가 테이블명을 따르고 있는지 여부를 결정한다. 테이블명이 질의 박스에 나타난 경우 (544), 지정된 테이블의 칼럼명이 페치되어 테이블 및 칼럼명들 모두에 대하여 일치시킨 후 (546), 구조화된 질의가 구축된다 (564).
질의 박스에 이미 입력된 단어들 및/또는 필드명들 모두를 포함하여, 플래트닝된 데이터베이스를 통해 질의들이 생성된다. 단계 544는, 사전에 구조화된 청크에 테이블명이 지정되었는지 여부를 결정한다. 지정되었다면, 테이블 칼럼명에 대하여 풀 텍스트의 일치가 실시된다 (546). 사전에 구조화된 청크에 테이블명이 지정 (544) 되지 않았던 경우, 모든 테이블명과 모든 테이블 칼럼명에 대한 일치가 실시된다 (548).
테이블명이 지정되지 않은 경우 (544), 테이블명과 그 칼럼명 모두에 대하여 풀, 프리 텍스트가 일치되어 (548) 제안을 생성한다. 테이블명이 발견되었든지 (546) 또는 발견되지 않았든지 (548), 이후, 구조화된 질의가 구축된다 (564). AND 연산자를 이용하여 질의 박스 (테이블명과 칼럼명) 내 구조 청크들 모두를 연결하고, 그리고 검출된 프리 텍스트 상에 풀 텍스트 탐색을 추가함으로써 이 구조화된 질의가 구성될 수도 있다.
질의가, 플래트닝된 데이터베이스 테이블의 칼럼명의 프리픽스와 부분적으로 또는 전체적으로 일치되는 경우 (단계 548 참조), 일치된 칼럼의 테이블명이 사용자 인터페이스 상의 윈도우에 디스플레이되고, 부분적으로 또는 전체적으로 일치된 칼럼 또한 일치 부분과 함께 볼드체나 하이라이트 표시로 디스플레이된다 (576). 질의가 데이터베이스 테이블 칼럼의 값과 부분적으로 또는 전체적으로 일치하는 경우, 값이 발견된 데이터베이스 테이블명이 사용자 인터페이스 상의 윈도우에 디스플레이된다. 볼드체나 하이라이트 표시로 일치 부분과 함께 디스플레이되는 (576) 값과 함께, 그 값이 발견된 칼럼명 또한 디스플레이된다. 일치된 칼럼명에 대응하는 인스턴스화된 로우의 수, 또는 그 칼럼명을 가진 일치된 칼럼 값 또한, 예를 들어, 괄호 안의 숫자로 디스플레이된다.
이후, 상술된 바와 같이 구성된 구조화된 질의가 탐색 엔진으로 전송된다 (570). 이 구조화된 질의가 탐색 엔진에서 일치 결과들 (히트들) 을 갖는다면 (572), 이러한 결과들로부터 제안들이 추출된다 (574). 추출된 결과들 각각은 테이블명, 칼럼명 및 값을 포함할 수도 있다. 추출된 제안들이 소정의 테이블 및 소정의 칼럼에 대한 값에 대응하며, 그 값은, 지정된 테이블의 지정된 칼럼의 값에 나타나는 단어의 완벽한 일치 또는 프리픽스의 일치 중 어느 하나에 의해 프리 텍스트에 대응한다.
다음으로, 단계 546, 548, 및 574에서 생성된 제안들 모두가 수집되고, 일치 부분이 하이라이트 표시된다 (576). 이후, 하이라이트 표시된 제안들이 포맷된다 (530). 도면에서, 예시를 위해서, 하이라이트 표시된 부분들은 또한 폰트 사이즈를 증가시켜 나타내었다. 그러나, 제안된 질의를 사용자에게 쉽게 가리켜 보여주기 위해서 임의의 형태의 텍스트 강조가 사용될 수도 있다. 구조화된 질의가, 탐색 엔진에서 일치 결과들 (히트들) 을 가지지 않는다면 (572), 추출할 제안이 존재하지 않고, 하이라이트 표시가 실시된다 (576). 하이라이트 표시가 각각의 질의 히트에 대하여 반복적인 프로세스이기 때문에, 히트들이 없다면, 하이라이트 표시가 실시되지 않는다.
포맷팅 프로세스 (530) 는, 이것이 수신하는 제안을 반복하고, 각 제안의 제안 타입에 따라서, 디스플레이들을 포맷한다. 제안 타입이 테이블명인 경우 (578), 테이블명들 모두가 디스플레이를 위해 처리된다 (580). 제안 타입이 칼럼명인 경우 (578), 모든 칼럼명이 디스플레이를 위해 처리된다 (582). 비슷하게, 제안 타입이 값인 경우 (578), 칼럼명과 값 모두가 디스플레이를 위해 처리된다 (584). 제안 타입이 디스플레이를 위해 처리된 후 (580, 582, 584), 프로세스 제안이 리턴되고 (586), 디스플레이를 위해 이용가능하게 된다. 이후, 도 4의 단계 470에 도시된 바와 같이, 처리는 서브루틴 호 포인트로 다시 리턴한다. 각각의 포맷팅된 디스플레이들의 예가 적어도 도 11, 12, 16 및 17에 도시된다.
단계 538로 다시 리턴해서, 풀, 프리 텍스트가 파싱되지 않았던 경우, 처리는, 테이블명이 지정되었는지 여부를 결정한다 (590). 테이블명이 지정되지 않은 경우 (590), 제안을 포맷하기 위해서 처리가 분기한다 (530). 테이블명이 지정되었다면 (590), 지정된 테이블의 칼럼명이 리턴되고 (592), 제안을 포맷하기 위해서 처리가 분기한다 (530). 풀, 프리 텍스트가 이용가능하지 않다면, 테이블명을 서술하는 "구조화된 청크"는, 지정된 테이블의 칼럼명에 대응하여 이용가능할 것이다.
바람직한 실시형태에서, 플래트닝된 데이터베이스 테이블들의 각각의 로우는 별개의 다큐먼트로서 색인되고, 이 별개의 다큐먼트에는, 데이터베이스 테이블명, 칼럼명 및 칼럼 값을 구별하고 칼럼 값을 그 칼럼명과 연관시키는 것이 가능한 방식으로 (예를 들어, 도 10에 도시된 바와 같이) 플래트닝된 각 칼럼의 값들과 함께, 테이블명뿐만 아니라 각 칼럼의 칼럼명이 나타난다. 데이터베이스 테이블명과 칼럼명과 칼럼 값 간의 구별을 보유하는 다큐먼트들을 색인하는 임의의 다른 적절한 방법이 사용될 수 있다. 예를 들어, 일 탐색 엔진 색인의 데이터베이스 테이블명과 테이블 칼럼명 모두를 별도로 색인할 수도 있고, 다른 탐색 엔진 색인의 데이터베이스 값 모두를 별도로 색인할 수도 있다.
일 실시형태에서, 온톨로지와 같은, 단순화 또는 구조화된 유의어 사전 또는 어휘 시맨틱 구조가 사용되어 색인 시 또는 질의 시에 플래트닝된 데이터베이스의 실제 값들을 대안적인 값들의 세트에 맵핑할 수도 있다. 온톨로지라 함은 도메인 내의 개념들의 세트 및 이러한 개념들 간의 관련성의 공식적인 표현이다. 그 도메인의 특성에 대하여 추론하기 위해서, 그리고 그 도메인을 정의하기 위해서 온톨로지가 사용될 수도 있다. 이론상으로, 온톨로지는 '공유 개념화의 공식적인, 명시적인 설명서'이다.
온톨로지는, 도메인을 모델링하는데 사용될 수 있는 공유 어휘, 즉, 존재하는 오브젝트 및/또는 개념의 타입, 및 그 특성 및 관계를 제공한다. 온톨로지는, 세계에 대한 또는 이것의 일부에 대한 지식 표현의 형태로서, 인공 지능, 시맨틱 웹, 소프트웨어 엔지니어링, 생물의학 정보, 라이브러리 과학, 및 정보 아키텍쳐에 사용된다. 대부분의 온톨로지는 개별 (인스턴스), 클래스 (개념), 속성 및 관계를 서술한다. (추가적인 세부사항에 대해서는 http://en.wikipedia.org/wiki/Ontology_(computer_science) 참조).
예를 들어, 온톨로지는 <<dog>>가 대안적인 값 <<poodle>>을 갖는다는 것을 지정할 수도 있다. 이 경우, 사용자가 그의 질의를 입력하는 동안, 사용자 질의는 온톨로지 대안을 칼럼 값에 매치시킬 수도 있고, 온톨로지 대안 또는 원래의 질의 값 중 어느 하나, 또는 둘 모두가 디스플레이될 수 있다.
다른 대안적인 실시형태에서, 질의가 칼럼명과 일치하고, 그 칼럼명이 원래의 데이터베이스 내 수치 값들만을 포함하는 경우, 시스템이 개별적인 값들 자체보다는 질의와 일치하는 칼럼 값들 모두의, 합계, 또는 평균, 또는 총계 등을 디스플레이할 것이라는 것을 나타내는 심볼들을 디스플레이하는 추가 메뉴와 함께 칼럼명이 사용자 인터페이스에 디스플레이될 수 있다.
도 12는, 일단 사용자가 도 11에 도시된 질의 박스에 3개의 글자 <<nam>>을 입력한 경우 이러한 프로세스들의 결과의 예시를 도시한다. 이러한 글자는 <<All-Leads>> 테이블 내 칼럼명 (<<name>>) 중 일치 부분 (볼드체로 도시) 이다. 또한, 이들 글자는 <<All-Leads>> 테이블 내 다수의 로우의 콘텐츠 상에 부분 일치가 있는데, 8 로우의 <<name>> 칼럼 내 <<Robert Namais>> 와 부분 일치, 그리고 <<All-Leads>> 테이블 내 18 로우에 나타나는 <<Namibia>> 와 부분 일치가 있다. 비슷하게, 입력한 글자 <<nam>> 은 또한 플래트닝된 <<All-Contacts>> 테이블 내 칼럼명 (<<name>>) 및 로우 값과 일치한다. 구조화된 항목이 시각적으로 계층화 방식으로 디스플레이될 수 있는데, 도 12에 도시된 바와 같이, 사용자는, "Namibia"가 "All-leads" 테이블의 "country" 필드의 값이고, "name"은 "All-leads" 테이블 내 다른 필드라는 것을 이해한다. 나타내어진 구조화된 항목들은 사용자가, 연관된 논-널 부분 질의를 해석하도록 돕는다. 각 구조화된 항목이 사용자의 탐색 의도의 명백한 명확화를 제공하므로, 사용자에게, 그 탐색이 정확하게 해석되고 있고 유익하다는 일정 정도의 신뢰를 제공한다. 이러한 구조화된 항목이 임의의 적절한 순서화 기준에 따라서 순서화된 계층적인 형태로 표현될 수도 있는데, 예를 들어, 인기에 기초하여, 또는 발견된 발생 횟수에 기초하여 알파벳 순서로 표현될 수도 있다.
도 12에 도시된 바와 같이, 사용자가 일단 어떤 텍스트를 입력하면, 사용자는 다음을 결정할 수 있다.
1. 더 많은 텍스트를 입력하는 것 (입력된 새로운 단서들에 대응하는 값을 이용하여, 도 12에 도시된 것과 같은 출력물을 생성);
2. 리턴 키를 누르는 것, 따라서 질의를 승인하는 것, 즉, 현재 텍스트 박스의 콘텐츠를 질의로서 전송하는 것 (도 13 참조); 또는
3. 디스플레이 상의 인스턴스화된 필드들 중 하나를 클릭하는 것.
(A) 인스턴스화된 필드가 콘텐츠 부분의 부분 일치를 포함한다면, 그 일치는 질의 박스에서 현재 텍스트를 교체한다. 예를 들어, 사용자가 도 12의 <<Robert Namias>> 를 포함하는 박스를 클릭한다면, 도 14가 사용자에게 디스플레이될 것이다. 이 도면에서, <<Robert Namias>> 를 클릭한 필드가 <<All-leads>> 테이블 중 <<name>> 필드에 나타나기 때문에, 사용자에 의해 입력된 텍스트를 대신하여, 테이블 및 필드명이 지금 질의 박스에 나타난다는 것을 이해한다. 이것은 도 4에 도시된 프로세스 460 ("입력 필드에서 선택된 질의를 디스플레이") 에 대응한다.
(B) 사용자가, 도 12의 <<All-contacts>> 섹션의 필드명 <<name>> 과 같이, 필드명에 대응하는 일치 부분을 클릭한다면, 이 칼럼명이, 도 15에 도시된 바와 같이, 질의 박스에 나타난다.
(C) 일반적으로, (테이블명 및 컬럼명과 값을 포함하는 구조화된 부분 다음에 언급되는) 질의 박스의 프리 부분의 단어들 모두, 선택된 클릭-온 제안의 테이블명, 컬럼명, 또는 값 중 어느 하나가 일치하는 이러한 나머지 단어들 모두가 프리 텍스트 부분으로부터 제거되고 구조화된 부분으로 대체된다.
도 11에 도시된 바와 같이, 질의 박스가 비어있다면, 사용자가 도 11의 테이블명 <<All-contacts>> 를 클릭한 경우를 나타내는 도 16에 도시된 바와 같이, 사용자가 테이블명을 클릭한 후, 테이블의 칼럼명이 인터페이스에 디스플레이된다.
이 포인트에서, 도 17에 도시된 바와 같이, 사용자가 프리 텍스트를 입력할 수 있고, 이후, 이 프리 텍스트에 대응하는 자동 완성 제안이 이 데이터베이스 테이블로 제한된다. 대안으로, 사용자가 필드명을 클릭하여, 도 18에 도시된 바와 같이, 필드명이 질의 박스에 나타나게 할 수 있고, 이후, 도 19에 도시된 바와 같이, 추가적인 텍스트 엔트리가 이 필드로 제한된 신뢰 질의들을 생성한다.
도 20에서, 사용자가 상술된 제안들 중 하나를 선택한 경우의 결과가 도시된다. 도 21에서, 도 18의 신뢰 질의로 텍스트를 타이핑한 결과의 예로서, 도 18의 신뢰 질의의 결과들의 몇몇 다른 칼럼 내 로우 콘텐츠와 텍스트가 부분적으로 일치하는 예가 도시된다. 도 22에 도시된 바와 같이, 사용자는 또한, 리턴 키를 눌러 현재 신뢰된 질의를 기초 탐색 엔진으로 전송할 수 있다.
이제, 도 6을 참고하면, 신뢰된 질의 탐색을 실시하는 데에 사용된 시스템의 일 실시형태의 고레벨 하드웨어 블록도가 도시된다. 신뢰된 질의 시스템은, 컴퓨터 하드웨어 컴포넌트와 협력하는 시스템으로서 그리고/또는 컴퓨터 구현 방법으로서 구현될 수도 있다. 신뢰된 질의 시스템 (110) 은 복수의 소프트웨어 모듈 또는 서브시스템을 포함할 수도 있다. 모듈 또는 서브시스템은 하드웨어, 소프트웨어, 펌웨어 또는 하드웨어, 소프트웨어 및 펌웨어의 어떤 조합으로 구현될 수도 있고, 하나의 물리적인 또는 논리적인 공간 내에 상주할 수도 또는 상주하지 않을 수도 있다. 예를 들어, 이 문헌에서 언급하고 도면에 도시되거나 도시되지 않은 모듈 또는 서브시스템은 서로로부터 떨어져서 위치될 수도 있고 통신 네트워크에 의해 연결될 수도 있다.
또한, 도 6은, 신뢰된 질의 처리를 구현하는 소프트웨어 또는 로직을 실행시키는데 사용될 수도 있는 컴퓨터 시스템 (600) 의 고레벨 하드웨어 블록도이다. 컴퓨터 (600) 는 개인 컴퓨터일 수도 있고, RAM (614), ROM (616), 하드 디스크 저장부 (618), 캐시 메모리 (620), 데이터베이스 저장부 (622) 등 ("메모리 서브시스템 (627)"으로도 지칭함) 과 같은 여러 가지 하드웨어 컴포넌트를 포함할 수도 있다. 컴퓨터 (600) 는, 컴퓨터, 마이크로프로세서, RISC 프로세서 (감소된 명령어 세트 컴퓨터), CISC 프로세서 (컴플렉스 명령어 세트 컴퓨터), 메인프레임 컴퓨터, 워크 스테이션, 싱글-칩 컴퓨터, 분산 프로세서, 서버, 컨트롤러, 마이크로-컨트롤러, 별개의 로직 컴퓨터 및 본 기술에 공지된 바와 같은 것과 같은 임의의 적절한 처리 디바이스 (628) 를 포함할 수도 있다. 예를 들어, 처리 디바이스 (628) 는 인텔 펜티엄
Figure 112012020591419-pct00002
마이크로프로세서, x86 호환성 마이크로프로세서, 또는 등가의 디바이스일 수도 있고, 서버, 퍼스널 컴퓨터, 또는 임의의 적절한 컴퓨팅 플랫폼에 포함될 수도 있다.
메모리 서브시스템 (626) 은, RAM, EPROM (전기적 프로그램가능 ROM), 플래시 메모리, 동적 메모리, 정적 메모리, FIFO (선입, 선출) 메모리, LIFO (후입, 선출) 메모리, 순환식 메모리, 반도체 메모리, 버블 메모리, 버퍼 메모리, 디스크 메모리, 광학 메모리, 캐시 메모리 등과 같은 임의의 적절한 저장 컴포넌트를 포함할 수도 있다. 자성 매체 상의 고정 저장부, 반도체 디바이스 내 저장부, 또는 통신 링크를 통해 액세스가능한 원격 저장부인지 여부에 따라 임의의 적절한 형태의 메모리가 사용될 수도 있다. 사용자 또는 시스템 인터페이스 (630) 는, 컴퓨터 (600) 에 연결될 수도 있고, 시스템 관리자 및/또는 키보드에 의해 선택가능한 스위치와 같은 여러 가지 입력 디바이스 (636) 를 포함할 수도 있다. 사용자 인터페이스는 또한, 본 기술에 공지된 바와 같이, LCD 디스플레이, CRT, 여러 가지 LED 표시자, 프린터, 및/또는 음성 출력 디바이스와 같은 적절한 출력 디바이스 (640) 를 포함할 수도 있다.
컴퓨터 (600) 와 외부 소스 간의 통신을 용이하게 하기 위해서, 통신 인터페이스 (642) 는 컴퓨터 시스템에 동작가능하게 연결될 수도 있다. 통신 인터페이스 (642) 는, 예를 들어, 이더넷 네트워크, 인트라넷, 인터넷, 또는 다른 적절한 네트워크 (544) 와 같은 근거리 통신망일 수도 있다. 통신 인터페이스 (642) 는 또한, 인터넷 (644) 을 통한 통신을 용이하게 할 수도 있는, 공중 교환 전화망 (PSTN)(646) 또는 POTS (plain old telephone system) 에 연결될 수도 있다. 임의의 적절한 상업적으로 이용가능한 통신 디바이스 또는 네트워크가 사용될 수도 있다.
상술된 로직, 회로 및 처리는, 예를 들어, 프로세서, 컨트롤러, 또는 다른 처리 디바이스에 의한 실행을 위한 명령들로서, 인코딩되거나, 컴팩트 디스크 판독 전용 메모리 (CDROM), 자기 또는 광학 디스크, 플래시 메모리, 랜덤 액세스 메모리 (RAM) 또는 판독 전용 메모리 (ROM), 소거가능 프로그램가능 판독 전용 메모리 (EPROM) 또는 다른 머신-판독가능 매체와 같은 머신 판독가능 또는 컴퓨터 판독가능 매체에 저장될 수도 있다.
이러한 매체는, 명령 실행가능 시스템, 장치 또는 디바이스에 의해 또는 이와 연결하여 사용하기 위한 실행가능한 명령들을 포함, 저장, 통신, 전파 또는 이동시키는 임의의 디바이스로서 구현될 수도 있다. 대안으로 또는 추가적으로, 하나 이상의 집적 회로, 또는 하나 이상의 프로세서 실행 명령들과 같은 하드웨어를 이용하여 아날로그 또는 디지털 로직으로서; 또는 API (application programming interface) 또는 DLL (Dynamic Link Library), 로컬 또는 원격 절차 호출로서 정의된 또는 공유 메모리에서 이용가능한 기능들의 소프트웨어로; 또는 하드웨어 및 소프트웨어의 조합으로서 구현될 수도 있다.
다른 구현에서, 로직은 신호 또는 전파-신호 매체로 나타내어질 수도 있다. 예를 들어, 임의의 소정의 프로그램의 로직을 구현하는 명령들은 전기, 자기, 광학, 전자기, 적외선 또는 다른 타입의 신호의 형태를 취할 수도 있다. 상술된 시스템은 광섬유 인터페이스, 안테나, 또는 다른 아날로그 또는 디지털 신호 인터페이스와 같은 통신 인터페이스에서 이러한 신호를 수신하고, 그 신호로부터 명령들을 복원하고, 이들을 머신 판독가능 메모리에 저장하고, 그리고/또는 프로세서를 이용하여 이들을 실행시킬 수도 있다.
시스템은 추가의 로직 또는 상이한 로직을 포함할 수도 있고 많은 상이한 방법들로 구현될 수도 있다. 프로세서는, 컨트롤러, 마이크로프로세서, 마이크로컨트롤러, 주문형 집적 회로 (ASIC), 별개의 로직, 또는 다른 타입의 회로 또는 로직의 조합으로서 구현될 수도 있다. 비슷하게, 메모리는 DRAM, SRAM, 플래시, 또는 다른 타입의 메모리일 수도 있다. 파라미터 (예를 들어, 조건 및 임계치) 및 다른 데이터 구조는 별개로 저장되고 관리될 수도 있고, 하나의 메모리 또는 데이터베이스에 포함될 수도 있고, 또는 많은 상이한 방법으로 논리적으로 그리고 물리적으로 조직화될 수도 있다. 프로그램 및 명령들은 하나의 프로그램, 별개의 프로그램, 또는 몇개의 메모리 및 프로세서에 걸쳐 분산될 수도 있다.
본 발명의 여러 가지 실시형태를 설명하였지만, 본 발명의 범위 내에서 더 많은 실시형태들 및 구현들이 가능하다는 것은 당업자에게 자명하다. 따라서, 본 발명은 첨부된 청구범위와 그 등가물로 제한되지 않는다.

Claims (27)

  1. 사용자로부터의 입력에 기초하여, 탐색 엔진 상에서 질의를 실시하는 방법으로서,
    하나 이상의 데이터베이스들로부터 데이터베이스 엔트리들을 검색하는 단계;
    상기 데이터베이스 엔트리들 중 복수의 데이터베이스 엔트리들을 플래트닝 (flattening) 하는 단계;
    상기 플래트닝된 복수의 데이터베이스 엔트리들을 색인하여 탐색 엔진 색인을 형성하는 단계;
    입력을 입력시키도록 상기 사용자를 프롬프트하는 단계;
    사용자 입력을 계속적으로 모니터링하는 단계;
    상기 사용자에 의해 입력이 입력될 때마다,
    상기 사용자에 의해 입력된 입력에 응답하여 논-널 (non-null) 부분 질의들의 세트를 컴퓨팅하는 것;
    구조화된 항목을 각각의 논-널 부분 질의에 연관시키는 것;
    상기 사용자로 하여금 상기 구조화된 항목들 중 하나를 선택하게 하는 것; 그리고
    상기 사용자가 상기 구조화된 항목들 중 하나를 선택할 경우, 상기 사용자 입력을 상기 선택된 구조화된 항목과 연관된 상기 논-널 부분 질의로 대체하는 것
    에 의해 상기 사용자 입력을 처리하는 단계;
    상기 사용자가 상기 입력을 승인하는 경우, 상기 입력을 질의로서 실행하는 단계; 및
    상기 실행된 질의에 대응하는 다큐먼트들을 상기 사용자에게 제공하는 단계를 포함하는, 탐색 엔진에서 질의를 실시하는 방법.
  2. 제 1 항에 있어서,
    상기 입력은 키보드 및/또는 포인팅 디바이스로 실시되는, 탐색 엔진에서 질의를 실시하는 방법.
  3. 제 1 항에 있어서,
    상기 입력은 음성 명령으로 실시되는, 탐색 엔진에서 질의를 실시하는 방법.
  4. 제 2 항에 있어서,
    상기 사용자에 의해 입력된 입력은, 각각의 키누름 이후에 처리되는, 탐색 엔진에서 질의를 실시하는 방법.
  5. 제 1 항에 있어서,
    승인된 질의가 상기 탐색 엔진 색인에 대하여 실행되는, 탐색 엔진에서 질의를 실시하는 방법.
  6. 제 1 항에 있어서,
    승인된 질의가 상기 하나 이상의 데이터베이스들 각각의 구문 (syntax) 으로 맵핑되고, 상기 맵핑된 질의들은 상기 데이터베이스에 대하여 실행되고, 그리고 그 결과들이 병합되는, 탐색 엔진에서 질의를 실시하는 방법.
  7. 제 1 항에 있어서,
    상기 데이터베이스 엔트리들을 플래트닝하는 단계는 대응하는 플래트닝된 엔트리들을 생성하고, 각각의 플래트닝된 엔트리는 데이터베이스 테이블 타입, 데이터베이스 테이블명, 데이터베이스 칼럼명, 및 데이터베이스 테이블 로우들 내 인스턴스화된 값들에 대응하는 정보를 포함하는 한 줄의 텍스트로서 상기 데이터베이스 엔트리의 각각의 로우를 복제하는, 탐색 엔진에서 질의를 실시하는 방법.
  8. 제 1 항에 있어서,
    탐색 엔진은 상기 데이터베이스 엔트리들을 플래트닝하고, SPLIT 연산을 지원하고, 그리고 상기 데이터베이스 내에 포함된 다큐먼트의 섹션들 내에서 탐색하도록 구성되는, 탐색 엔진에서 질의를 실시하는 방법.
  9. 제 7 항에 있어서,
    상기 탐색 엔진은 역 (inverted) 파일 데이터 구조를 사용하는, 탐색 엔진에서 질의를 실시하는 방법.
  10. 제 8 항에 있어서,
    상기 탐색 엔진은 철자 체크 기능, 유의어 사전 (thesaurus) 기능, 스테밍 (stemming) 기능, 분류 정리 기능, 토큰화 기능, 및 정규화 기능으로 이루어진 그룹으로부터 선택된 기능들을 실시하는, 탐색 엔진에서 질의를 실시하는 방법.
  11. 제 1 항에 있어서,
    상기 사용자에 의해 입력된 입력에 응답하여 논-널 부분 질의들의 세트를 컴퓨팅하는 것은 자동 완성 제안들을 포함하는, 탐색 엔진에서 질의를 실시하는 방법.
  12. 제 1 항에 있어서,
    각각의 구조화된 항목은 상기 사용자 입력에 대응하는 하이라이트 표시로 나타내어지는, 탐색 엔진에서 질의를 실시하는 방법.
  13. 제 1 항에 있어서,
    각각의 구조화된 항목은 계층적 방식으로 나타내어지는, 탐색 엔진에서 질의를 실시하는 방법.
  14. 사용자로부터의 입력에 기초하여, 탐색 엔진 상에서 질의들을 실시하기 위한 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 판독가능 저장 매체 상에 수록된 컴퓨터 판독가능 코드를 포함하고,
    프로세서에 의해 실행되는 상기 컴퓨터 판독가능 코드는,
    실행되었을 때, 상기 프로세서로 하여금,
    하나 이상의 데이터베이스들로부터 데이터베이스 엔트리들을 검색하게 하고;
    상기 데이터베이스 엔트리들 중 복수의 데이터베이스 엔트리들을 플래트닝하게 하고;
    상기 플래트닝된 복수의 데이터베이스 엔트리들을 색인하여 탐색 엔진 색인을 형성하게 하고;
    입력을 입력시키도록 상기 사용자를 프롬프트하게 하고;
    사용자 입력을 계속적으로 모니터링하게 하고;
    상기 사용자가 입력을 입력시킬 때마다,
    상기 사용자에 의해 입력된 입력에 응답하여 논-널 (non-null) 부분 질의들의 세트를 컴퓨팅하는 것;
    구조화된 항목을 각각의 논-널 부분 질의에 연관시키는 것;
    상기 사용자로 하여금 구조화된 항목들 중 하나를 선택하게 하는 것; 그리고
    상기 사용자가 상기 구조화된 항목들 중 하나를 선택할 경우, 상기 사용자 입력을 상기 선택된 구조화된 항목과 연관된 상기 논-널 부분 질의로 대체하는 것
    에 의해 상기 사용자 입력을 처리하게 하고;
    상기 사용자가 상기 입력을 승인하는 경우, 상기 입력을 질의로서 실행하게 하고; 그리고
    상기 실행된 질의에 대응하는 다큐먼트들을 상기 사용자에게 제공하게 하는, 컴퓨터 판독가능 저장 매체.
  15. 제 14 항에 있어서,
    상기 입력은 키보드 및/또는 포인팅 디바이스로 실시되는, 컴퓨터 판독가능 저장 매체.
  16. 제 14 항에 있어서,
    상기 입력은 음성 명령으로 실시되는, 컴퓨터 판독가능 저장 매체.
  17. 제 14 항에 있어서,
    상기 사용자에 의해 입력된 입력은 키누름 이후에 처리되는, 컴퓨터 판독가능 저장 매체.
  18. 제 14 항에 있어서,
    승인된 질의는 상기 탐색 엔진 색인에 대하여 실행되는, 컴퓨터 판독가능 저장 매체.
  19. 제 14 항에 있어서,
    승인된 질의는 상기 하나 이상의 데이터베이스들 각각의 구문으로 맵핑되고, 상기 맵핑된 질의들은 상기 데이터베이스에 대하여 실행되고, 그 결과들이 병합되는, 컴퓨터 판독가능 저장 매체.
  20. 제 14 항에 있어서,
    상기 데이터베이스 엔트리들을 플래트닝하게 하는 것은 대응하는 플래트닝된 엔트리들을 생성하고, 각각의 플래트닝된 엔트리는 상기 데이터베이스 엔트리에 대응하여, 로우 번호들, 칼럼명들, 및 칼럼 값들을 분리하는 구획문자를 갖는 한 줄의 텍스트로서 상기 데이터베이스 엔트리의 각각의 로우를 복제하는, 컴퓨터 판독가능 저장 매체.
  21. 제 14 항에 있어서,
    상기 탐색 엔진은 역 (inverted) 파일 데이터 구조를 사용하는, 컴퓨터 판독가능 저장 매체.
  22. 제 14 항에 있어서,
    상기 탐색 엔진은 상기 데이터베이스 엔트리들을 플래트닝하고, SPLIT 연산을 지원하고, 그리고 상기 데이터베이스 내에 포함된 다큐먼트의 섹션들 내에서 탐색하도록 구성되는, 컴퓨터 판독가능 저장 매체.
  23. 제 22 항에 있어서,
    상기 탐색 엔진은 철자 체크 기능, 유의어 사전 기능, 스테밍 (stemming) 기능, 분류 정리 기능, 토큰화 기능, 및 정규화 기능으로 이루어진 그룹으로부터 선택된 기능들을 실시하는, 컴퓨터 판독가능 저장 매체.
  24. 제 14 항에 있어서,
    상기 사용자에 의해 입력된 입력에 응답하여 논-널 부분 질의들의 세트를 컴퓨팅하는 것은 자동 완성 제안들을 포함하는, 컴퓨터 판독가능 저장 매체.
  25. 제 14 항에 있어서,
    각각의 구조화된 항목은 상기 사용자 입력에 대응하는 하이라이트 표시로 나타내어지는, 컴퓨터 판독가능 저장 매체.
  26. 제 14 항에 있어서,
    각각의 구조화된 항목은 계층적 방식으로 나타내어지는, 컴퓨터 판독가능 저장 매체.
  27. 사용자로부터의 입력에 기초하여, 탐색 엔진 상에서 질의를 실시하는 시스템으로서,
    하나 이상의 데이터베이스들로부터 데이터베이스 엔트리들을 검색하도록 구성된 프로세서;
    상기 데이터베이스 엔트리들을 플래트닝하도록 구성된 데이터베이스 플래트닝 컴포넌트;
    상기 플래트닝된 데이터베이스 엔트리들을 색인하여 탐색 엔진 색인을 형성하도록 구성된 데이터베이스 색인 컴포넌트; 및
    입력을 입력시키도록 상기 사용자를 프롬프트하도록 구성된 디스플레이 스크린
    을 포함하고,
    상기 프로세서는 사용자 입력을 계속적으로 모니터링하고, 그리고
    상기 사용자에 의해 입력된 입력에 응답하여 논-널 (non-null) 부분 질의들의 세트를 컴퓨팅하는 것;
    구조화된 항목을 각각의 논-널 부분 질의에 연관시키는 것;
    상기 사용자로 하여금 구조화된 항목들 중 하나를 선택하게 하는 것; 및
    상기 사용자가 상기 구조화된 항목들 중 하나를 선택할 경우, 상기 사용자 입력을 상기 선택된 구조화된 항목과 연관된 상기 논-널 부분 질의로 대체하는 것
    에 의해 상기 사용자에 의해 입력된 상기 사용자 입력을 처리하고, 그리고
    상기 사용자가 상기 입력을 승인하는 경우, 상기 프로세서는 상기 입력을 질의로서 실행하고 그리고 상기 실행된 질의에 대응하는 다큐먼트들을 상기 사용자에게 제공하는, 탐색 엔진에서 질의를 실시하는 시스템.
KR1020127006661A 2009-08-31 2010-08-26 신뢰 질의 시스템 및 방법 KR101732342B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US23828309P 2009-08-31 2009-08-31
US61/238,283 2009-08-31
PCT/IB2010/002102 WO2011024064A2 (en) 2009-08-31 2010-08-26 Trusted query system and method

Publications (2)

Publication Number Publication Date
KR20120073229A KR20120073229A (ko) 2012-07-04
KR101732342B1 true KR101732342B1 (ko) 2017-05-04

Family

ID=43558438

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127006661A KR101732342B1 (ko) 2009-08-31 2010-08-26 신뢰 질의 시스템 및 방법

Country Status (7)

Country Link
US (1) US10140333B2 (ko)
EP (1) EP2473933A2 (ko)
JP (1) JP5744873B2 (ko)
KR (1) KR101732342B1 (ko)
CN (1) CN102640145B (ko)
CA (1) CA2772746C (ko)
WO (1) WO2011024064A2 (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7945683B1 (en) * 2008-09-04 2011-05-17 Sap Ag Method and system for multi-tiered search over a high latency network
US8346534B2 (en) * 2008-11-06 2013-01-01 University of North Texas System Method, system and apparatus for automatic keyword extraction
US8954850B2 (en) * 2009-12-10 2015-02-10 International Business Machines Corporation Computer-implemented method and systems for assisting a user in applying a business process pattern
US9323828B2 (en) * 2010-05-11 2016-04-26 International Business Machines Corporation Complex query handling
US8990146B2 (en) 2010-12-22 2015-03-24 Sap Se Systems and methods to provide server-side client based caching
US8463807B2 (en) * 2011-08-10 2013-06-11 Sap Ag Augmented search suggest
US8577862B2 (en) 2011-10-19 2013-11-05 Business Objects Software Limited Answer-augmented query suggestion
CN103514217B (zh) * 2012-06-30 2017-02-08 重庆新媒农信科技有限公司 检索应用中检索条件的关联提示处理方法及系统
US9178886B2 (en) 2012-08-29 2015-11-03 Red Hat Israel, Ltd. Flattening permission trees in a virtualization environment
USD845978S1 (en) * 2013-01-23 2019-04-16 Yandex Europe Ag Display screen with graphical user interface
US9424359B1 (en) * 2013-03-15 2016-08-23 Twitter, Inc. Typeahead using messages of a messaging platform
WO2014173965A1 (en) * 2013-04-23 2014-10-30 Face Recording And Measurements Ltd. Database management system
US10776375B2 (en) * 2013-07-15 2020-09-15 Microsoft Technology Licensing, Llc Retrieval of attribute values based upon identified entities
US11086854B2 (en) * 2014-05-30 2021-08-10 Hexagon Technology Center Gmbh Database interface method and system
US10318016B2 (en) * 2014-06-03 2019-06-11 Harman International Industries, Incorporated Hands free device with directional interface
US9870394B2 (en) 2014-12-09 2018-01-16 Lg Cns Co., Ltd. Query routing method, query routing server performing the same and storage medium storing the same
US10586068B2 (en) 2015-11-02 2020-03-10 LeapYear Technologies, Inc. Differentially private processing and database storage
US10489605B2 (en) 2015-11-02 2019-11-26 LeapYear Technologies, Inc. Differentially private density plots
US20170124152A1 (en) 2015-11-02 2017-05-04 LeapYear Technologies, Inc. Differentially private processing and database storage
US10467234B2 (en) 2015-11-02 2019-11-05 LeapYear Technologies, Inc. Differentially private database queries involving rank statistics
US10726153B2 (en) 2015-11-02 2020-07-28 LeapYear Technologies, Inc. Differentially private machine learning using a random forest classifier
FR3043812B1 (fr) * 2015-11-16 2019-07-26 Bull Sas Procede de generation d'un formulaire de messages
CN107203528B (zh) * 2016-03-16 2020-10-30 创新先进技术有限公司 一种表格检索方法和装置
CN106407247B (zh) * 2016-07-24 2020-08-04 平安科技(深圳)有限公司 数据查询的方法及装置
US11055432B2 (en) 2018-04-14 2021-07-06 LeapYear Technologies, Inc. Budget tracking in a differentially private database system
CN112585595A (zh) * 2018-04-23 2021-03-30 马克·S·诺沃塔斯基 具有图形用户接口的系统性能监视器
US10831752B2 (en) * 2018-04-25 2020-11-10 International Business Machines Corporation Semantic relational database operations
US10430605B1 (en) * 2018-11-29 2019-10-01 LeapYear Technologies, Inc. Differentially private database permissions system
US11755769B2 (en) 2019-02-01 2023-09-12 Snowflake Inc. Differentially private query budget refunding
US10642847B1 (en) 2019-05-09 2020-05-05 LeapYear Technologies, Inc. Differentially private budget tracking using Renyi divergence
CN111079036B (zh) * 2019-11-25 2023-11-07 罗靖涛 一种字段式搜索方法
CN111143349A (zh) * 2019-11-26 2020-05-12 广东三扬网络科技有限公司 一种快速从集合中查找信息的方法及电子设备和存储介质
CN113051898A (zh) * 2019-12-27 2021-06-29 北京阿博茨科技有限公司 一种面向自然语言搜索结构化数据的词义积累及分词方法、工具和系统
CA3108956C (en) 2020-02-11 2023-09-05 LeapYear Technologies, Inc. Adaptive differentially private count
CN111666327A (zh) * 2020-06-10 2020-09-15 山东汇贸电子口岸有限公司 一种基于文本的结构化数据描述方法及其系统
CN112463946A (zh) * 2020-10-20 2021-03-09 北京思特奇信息技术股份有限公司 一种基于人工智能技术的智能权益查询比对方法及系统
KR102608736B1 (ko) 2020-12-15 2023-12-01 주식회사 포티투마루 질의에 대한 문서 검색 방법 및 장치

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792428B2 (en) * 2000-10-13 2004-09-14 Xpriori, Llc Method of storing and flattening a structured data document
JP2002269127A (ja) * 2001-03-13 2002-09-20 Mitsubishi Electric Corp 商品情報提供システム及び商品情報提供方法
JP4490012B2 (ja) * 2001-11-26 2010-06-23 富士通株式会社 ファイル検索装置、ファイル検索プログラム
US7836044B2 (en) * 2004-06-22 2010-11-16 Google Inc. Anticipated query generation and processing in a search engine
US7725450B1 (en) * 2004-07-23 2010-05-25 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that maintain search coherence during multi-cycle update operations
CN101088082A (zh) * 2004-10-25 2007-12-12 英孚威尔公司 全文查询和搜索系统及其使用方法
EP1825395A4 (en) 2004-10-25 2010-07-07 Yuanhua Tang FULL TEXT INTERROGATION AND RESEARCH SYSTEMS AND METHODS OF USE
US7672931B2 (en) * 2005-06-30 2010-03-02 Microsoft Corporation Searching for content using voice search queries
KR20070024771A (ko) 2005-08-30 2007-03-08 엔에이치엔(주) 질의어 자동변환을 이용한 자동완성 질의어 제공 시스템 및방법
CN101191730A (zh) * 2006-11-22 2008-06-04 乐金电子(昆山)电脑有限公司 汽车导航系统的信息检索系统
US8027970B1 (en) * 2006-12-22 2011-09-27 Emc Corporation Query translation for searching complex structures of objects
KR100898465B1 (ko) * 2007-04-26 2009-05-21 엔에이치엔(주) 웹로그의 시계열 분석을 위한 데이터 저장 및 조회 방법그리고 상기 방법을 수행하는 시스템
JP2009054133A (ja) 2007-07-27 2009-03-12 Aisin Aw Co Ltd ナビゲーション装置及びナビゲーション用プログラム
US8073840B2 (en) * 2008-06-17 2011-12-06 Attivio, Inc. Querying joined data within a search engine index
US8214370B1 (en) * 2009-03-26 2012-07-03 Crossbow Technology, Inc. Data pre-processing and indexing for efficient retrieval and enhanced presentation

Also Published As

Publication number Publication date
EP2473933A2 (en) 2012-07-11
WO2011024064A2 (en) 2011-03-03
CN102640145B (zh) 2015-09-23
CA2772746C (en) 2019-06-11
WO2011024064A3 (en) 2011-05-19
CA2772746A1 (en) 2011-03-03
JP2013503381A (ja) 2013-01-31
US20120197864A1 (en) 2012-08-02
JP5744873B2 (ja) 2015-07-08
US10140333B2 (en) 2018-11-27
CN102640145A (zh) 2012-08-15
KR20120073229A (ko) 2012-07-04

Similar Documents

Publication Publication Date Title
KR101732342B1 (ko) 신뢰 질의 시스템 및 방법
US11790006B2 (en) Natural language question answering systems
US11442932B2 (en) Mapping natural language to queries using a query grammar
US8060357B2 (en) Linguistic user interface
US9448995B2 (en) Method and device for performing natural language searches
US8346795B2 (en) System and method for guiding entity-based searching
US8468156B2 (en) Determining a geographic location relevant to a web page
US10552467B2 (en) System and method for language sensitive contextual searching
KR101040119B1 (ko) 콘텐츠 검색 장치 및 방법
US9164962B2 (en) Document assembly systems and methods
US20090070322A1 (en) Browsing knowledge on the basis of semantic relations
US20080195601A1 (en) Method For Information Retrieval
EP1839201A2 (en) Method and system for extending keyword searching to syntactically and semantically annotated data
JP2001184358A (ja) カテゴリ因子による情報検索装置,情報検索方法およびそのプログラム記録媒体
WO2009035871A1 (en) Browsing knowledge on the basis of semantic relations
Vickers Ontology-based free-form query processing for the semantic web
Habib et al. Information extraction, data integration, and uncertain data management: The state of the art
Chandurkar et al. A composite natural language processing and information retrieval approach to question answering using a structured knowledge base
Gupta et al. A survey of existing question answering techniques for Indian languages
Abur et al. Improving Web Search with the EWEBSEARCH Model

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant