KR20060043741A - 자연 언어 커맨드에 따른 표 렌더링 - Google Patents

자연 언어 커맨드에 따른 표 렌더링 Download PDF

Info

Publication number
KR20060043741A
KR20060043741A KR1020050022166A KR20050022166A KR20060043741A KR 20060043741 A KR20060043741 A KR 20060043741A KR 1020050022166 A KR1020050022166 A KR 1020050022166A KR 20050022166 A KR20050022166 A KR 20050022166A KR 20060043741 A KR20060043741 A KR 20060043741A
Authority
KR
South Korea
Prior art keywords
natural language
language input
data
schema
command
Prior art date
Application number
KR1020050022166A
Other languages
English (en)
Other versions
KR100969447B1 (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 KR20060043741A publication Critical patent/KR20060043741A/ko
Application granted granted Critical
Publication of KR100969447B1 publication Critical patent/KR100969447B1/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/243Natural language query formulation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Document Processing Apparatus (AREA)

Abstract

본 발명은 소프트웨어 애플리케이션을 조작하고 데이터 소스에 저장된 데이터를 처리하기 위한 방법에 관한 것이다. 본 방법은 자연 언어 입력을 수신하고 자연 언어 입력을 분석해서 그 안에 포함된 구문 정보를 식별하는 단계를 포함한다. 자연 언어 입력의 일부분들은 구문 정보 및 자연 언어 입력을 근거로 스키마의 커맨드 객체 및 엔티티 객체와 관련된다. 본 방법은 또한 스키마 및 자연 언어 입력의 관련 부분들을 근거로 행렬표로 데이터 소스로부터의 데이터를 렌더링하는 단계를 포함한다.
데이터 소스, 자연 언어, 구문 정보, 스키마, 표

Description

자연 언어 커맨드에 따른 표 렌더링{RENDERING TABLES WITH NATURAL LANGUAGE COMMANDS}
도 1은 컴퓨팅 시스템 환경의 블록도.
도 2는 사용자 입력을 근거로 표를 렌더링하기 위한 시스템의 블록도.
도 3은 일례의 스키마의 블록도.
도 4는 표를 렌더링하기 위한 일례의 방법의 플로우챠트.
도 5는 사용자로부터의 입력을 수신하고 표 정보를 렌더링하기 위한 사용자 인터페이스의 스크린샷.
<도면의 주요 부분에 대한 부호의 설명>
202 : 사용자 인터페이스 모듈
204 : 표 생성 모듈
206 : 해석 모듈
208 : 데이터베이스
220 : 스키마
222 : 커맨드 객체
224 : 프레임 객체
226, 228, 230 : 엔티티 객체
본 발명은 사용자 입력을 애플리케이션 커맨드로 분석함으로써 소프트웨어 애플리케이션을 조작하는 방법에 관한 것이다. 특히, 본 발명은 데이터베이스와 같은 데이터 소스로부터의 정보를 렌더링하는 커맨드로 사용자 입력을 분석하는 것에 관한 것이다.
전형적인 컴퓨터 시스템에서, 사용자 입력은 고정 포맷을 갖는 사용자 응답들의 엄밀한 집합으로 제한되어 왔다. 예를 들어, 커맨드 라인 인터페이스에 있어서, 사용자 입력은 가능한 인수의 제한된 특정 도메인으로부터 선택된 인수 및 싱글 커맨드를 유일하게 식별하는 특정 형태여야만 한다. 유사하게, 그래픽 사용자 인터페이스에 있어서, 오직 제한된 집합의 옵션만이 사용자에게 제공되며, 개발자가 제한된 집합의 사용자 입력의 각각의 특정 사용자 입력에 대한 제한된 집합의 커맨드 또는 엔티티로 구성된 사용자 입력 도메인을 정의하는 것은 비교적 수월하다.
사용자를 허용된 입력 또는 응답의 엄밀한 집합으로 제한함으로써, 컴퓨터 시스템들은 사용자 또는 오퍼레이터로부터 상당한 레벨의 스킬을 요구했다. 컴퓨터 시스템에서 실행되는 애플리케이션에 의해 인식되는 특정 입력으로 실행될 희망 태스크를 지적으로 번역하는 것은 전형적으로 사용자의 책임이었다. 컴퓨터 시스템의 유용성을 확장하기 위해, 애플리케이션에 자연 언어(NL) 인터페이스를 제공하 려는 노력이 진행되어 왔다. 자연 언어 인터페이스는 제한된 입력 집합을 넘어서 애플리케이션의 기능을 확장하며 자연 언어 포맷의 입력에 컴퓨터 시스템을 개방한다. 자연 언어 인터페이스는 비교적 모호하고 고도한 문맥을 근거로 하는 자연 언어를 컴퓨터 애플리케이션이 요구하는 정확하고 엄밀한 집합의 입력들로 번역할 책임이 있다.
데이터베이스와 같은 데이터 소스로부터의 정보를 렌더링하기 위해 자연 언어 입력을 분석하는 것은 데이터 소스의 커스터마이즈드 속성으로 인해 또한 데이터 소스로부터의 정보를 렌더링하는 다수의 방법들로 인해 어려울 수 있다. 특히, 데이터 소스에 저장된 정보를 분석하기 위한 표 렌더링은 어떤 정보가 렌더링되어야 하며 어떻게 렌더링할 것인지를 정의하는 사용자로부터의 특정 명령에 따라 실행된다. 이러한 성가신 인터페이스로 인해, 다수의 사용자는 유용한 데이터 분석을 위한 표 렌더링에 어려움을 갖는다. 데이터 소스 정보로부터 표를 생성 및 렌더링하기 위해 사용자에게 친숙한 인터페이스를 제공함으로써, 정보가 분석될 수 있는 보다 효율적인 도구가 제공된다.
본 발명은 구조화된 데이터 소스에 저장된 데이터를 처리하는 것을 포함하는, 소프트웨어 애플리케이션 조작 방법에 관한 것이다. 본 방법은 자연 언어 입력을 수신하고 자연 언어 입력을 분석해서 그 안에 포함된 구문 정보를 식별하는 단계를 포함한다. 자연 언어 입력의 일부분들은 구문 정보 및 자연 언어 입력을 근거로 스키마의 커맨드 객체 및 엔티티 객체와 관련된다. 본 방법은 또한 스키마 및 자연 언어 입력의 관련 부분을 근거로 행렬표로 데이터 소스로부터의 데이터를 렌더링하는 단계를 포함한다.
본 발명의 다른 양상은 차원 및 차원과 관련된 값을 포함하는 구조화된 데이터 소스의 데이터를 처리하기 위한 명령을 갖는 컴퓨터 판독 가능 매체에 관한 것이다. 명령은 자연 언어 입력을 수신하고 표를 렌더링하도록 적응된 사용자 인터페이스 모듈을 포함한다. 표 생성 모듈은 차원 및 값에 액세스하고 차원 및 값을 렌더링하기 위한 스키마를 정의하도록 적응된다. 또한, 해석 모듈은 자연 언어 입력의 용어를 데이터 소스의 차원에 대응하는 스키마의 엔티티 객체와 관련시키고 자연 언어 입력, 차원 및 스키마를 근거로 데이터 소스의 데이터를 어떻게 렌더링할 것인지에 대한 후보 해석을 생성하도록 적응된다.
본 발명의 또 다른 양상은 자연 언어 입력 수신을 포함해서 애플리케이션을 구동하기 위해 정보를 처리하는 방법에 관한 것이다. 자연 언어 입력은 그 안에 포함된 구문 정보를 식별하기 위해 분석된다. 본 방법은 또한 구문 정보 및 자연 언어 입력을 근거로 커맨드 객체 및 엔티티 객체를 식별하기 위해 스키마에 액세스하는 단계 및 커맨드 객체 및 엔티티 객체를 근거로 애플리케이션과 관련된 액션을 실행하는 단계를 포함한다.
도 1은 본 발명이 구현될 수도 있는 적합한 컴퓨팅 시스템 환경의 일례를 도시한다. 컴퓨팅 시스템 환경(100)은 단지 적합한 컴퓨팅 환경의 하나의 일례이며 본 발명의 사용 범위 또는 기능에 임의의 한계를 제시하는 의도가 아니다. 컴퓨팅 환경(100)은 일례의 오퍼레이팅 환경(100)에 도시된 컴포넌트 중 임의의 한 컴포넌트 또는 그 결합물과 관련해서 임의의 종속성 또는 요구 사항을 갖는 것으로 해석돼서는 안된다.
본 발명은 다수의 다른 범용 또는 특별 용도의 컴퓨팅 시스템 환경 또는 구성에 의해 동작될 수 있다. 본 발명에 의해 사용되기에 적합할 수도 있는 공지된 컴퓨팅 시스템, 환경 및/또는 구성의 일례들은 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 디바이스, 멀티프로세서 시스템, 마이크로프로세서-베이스 시스템, 셋탑 박스, 프로그래머블 컨수머 일렉트로닉스, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 전화 시스템, 상술된 시스템 또는 디바이스 중 임의의 시스템 또는 디바이스를 포함하는 분산 컴퓨팅 환경 등을 포함하는데, 이들로만 제한되지 않는다.
본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈들과 같은 컴퓨터 실행 가능 명령들의 일반적인 문맥으로 기술될 수도 있다. 일반적으로, 프로그램 모듈들은 특정 태스크들을 실행하거나 특정 추상 데이터 타입들을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크를 통해 연결된 원격 처리 장치들에 의해 태스크들이 실행되는 분산 컴퓨팅 환경에서 구현될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 메모리 기억 장치들을 포함해서 로컬 및 원격 컴퓨터 기억 매체들 모두에 위치할 수도 있다. 프로그램 및 모듈에 의해 실행되는 태스크는 도면들을 참조해서 후술된다. 본 기술 분야에 숙련된 자들은 임의의 형태의 컴퓨터 판독 가능 매체에 기록될 수 있는 프 로세서 실행 가능 명령들로서 기술 및 도면들을 구현할 수 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 일례의 시스템이 컴퓨터(110) 형태의 범용 컴퓨팅 디바이스를 포함한다. 컴퓨터(110)의 컴포넌트들은 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트들을 프로세싱 유닛(120)에 결합시키는 시스템 버스(121)를 포함할 수도 있는데, 이들로만 제한되지 않는다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 및 다양한 버스 아키텍처들 중 임의의 아키텍처를 사용하는 로컬 버스를 포함하는 수개의 타입의 버스 구조 중 임의의 버스 구조일 수 있다. 예를 들어, 버스 아키텍처들은 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 메저닌 버스로 공지된 PCI(Peripheral Component Interconnect) 버스를 포함하는데, 이들로만 제한되지 않는다.
컴퓨터(110)는 통상 다양한 컴퓨터 판독 가능 매체들을 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 유용한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 제거 가능 및 제거 불가능 매체를 모두 포함한다. 예를 들어, 컴퓨터 판독 가능 매체는 컴퓨터 기억 매체 및 통신 매체를 포함할 수도 있는데, 이들로만 제한되지는 않는다. 컴퓨터 기억 매체는 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보를 기억하기 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 제거 가능 및 제거 불가능 매체들을 모두 포함한다. 컴퓨터 기억 매체들은 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 다른 광 디스크 스토리지, 자기 카셋트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 기억 장치들, 또는 희망 정보를 기억하는데 사용될 수 있고 컴퓨터(110)에 의해 액세스될 수 있는 임의의 다른 매체들을 포함하는데, 이들로만 제한되지 않는다. 통신 매체는 통상 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 다른 전송 메카니즘과 같이 변조된 데이터 신호로 된 다른 데이터를 포함하며, 임의의 정보 전달 매체들을 포함한다. 용어 "변조된 데이터 신호"는 정보를 신호로 인코드하는 방식으로 설정되거나 변경된 특징들 중 하나 이상의 특징을 갖는 신호를 의미한다. 예를 들어, 통신 매체는, 유선 네트워크 또는 다이렉트-와이어드 커넥션과 같은 유선 매체, 및 음향, RF, 적외선 및 다른 무선 매체들과 같은 무선 매체를 포함하는데, 이들로만 제한되지 않는다. 상술된 바들의 임의의 결합도 컴퓨터 판독 가능 매체 범위 내에 포함된다.
시스템 메모리(130)는 ROM(131) 및 RAM(132)과 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 기억 매체들을 포함한다. 예를 들어, 시동 중과 같이, 컴퓨터(110) 내의 소자들 간의 정보 전송을 돕는 기본 루틴들을 포함하는 기본 입출력 시스템(BIOS; 133)은 통상 ROM(131)에 기억된다. RAM(132)은 통상 즉시 액세스될 수 있으며 프로세싱 유닛(120)에 의해 현재 동작 중인 데이터 및/또는 프로그램 모듈들을 포함한다. 도 1은 예를 들어, 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 다른 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만, 이들로만 제한되지 않는다.
컴퓨터(110)는 또한 다른 제거 가능/제거 불가능, 휘발성/비휘발성 컴퓨터 기억 매체들을 포함할 수도 있다. 도 1은 단지, 예를 들어, 제거 불가능 비휘발성 자기 매체 판독 또는 기록용 하드 디스크 드라이브(141), 제거 가능 비휘발성 자기 디스크(152) 판독 또는 기록용 자기 디스크 드라이브(151), 및 CD-ROM 또는 다른 광 매체들과 같은 제거 가능 비휘발성 광 디스크(156) 판독 또는 기록용 광 디스크 드라이브(155)를 도시한 것으로, 단지 일례이다. 일례의 오퍼레이팅 환경에서 사용될 수 있는 다른 제거 가능/제거 불가능, 휘발성/비휘발성 컴퓨터 기억 매체는 자기 테이프 카셋트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고체 상태 RAM, 고체 상태 ROM 등을 포함하는데, 이들로만 제한되지 않는다. 하드 디스크 드라이브(141)는 통상 인터페이스(140)와 같은 제거 불가능 메모리 인터페이스를 통해 시스템 버스(121)에 연결되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상 인터페이스(150)와 같은 제거 가능 메모리 인터페이스에 의해 시스템 버스(121)에 연결된다.
상술되고 도 1에 도시된 드라이브 및 관련 컴퓨터 기억 매체들은 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈, 및 컴퓨터(110)용 다른 데이터를 위한 스토리지를 제공한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)를 기억하는 것으로 도시되어 있다. 상기 컴포넌트들은 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 다른 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일할 수도 상이할 수도 있음을 주지하라. 오퍼레이팅 시 스템(144), 애플리케이션 프로그램(145), 다른 프로그램 모듈(146) 및 프로그램 데이터(147)는 최소한 상이한 복사본들임을 설명하기 위해 상이한 번호들이 주어진다.
사용자는 키보드(162), 마이크로폰(163), 및 포인팅 디바이스(161)와 같은 입력 장치들을 통해 컴퓨터(110)에 커맨드 및 정보를 입력할 수도 있다. 상기 포인팅 디바이스(161)는 예를 들면, 마우스, 트랙볼 또는 터치 패드이다. 다른 입력 장치들(도시되지 않음)은 조이스틱, 게임 패드, 위성 접시, 스캐너 등을 포함할 수도 있다. 고유 사용자 인터페이스 애플리케이션에 있어서, 사용자는 음성, 육필, 게이즈(눈 이동) 및 다른 제스처들을 사용해서 컴퓨터와 통신할 수도 있다. 고유 사용자 인터페이스를 용이하게 하기 위해, 컴퓨터는 마이크로폰, 라이팅 패드, 카메라, 모션 센서, 및 사용자 제스처를 포착하기 위한 다른 장치들을 포함한다. 여타 입력 장치들은 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 프로세싱 유닛(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 다른 인터페이스 및 버스 구조들에 의해 연결될 수도 있다. 모니터(191) 또는 다른 타입의 디스플레이 디바이스가 비디오 인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터 외에, 컴퓨터들은 종종 출력 주변 인터페이스(195)를 통해 연결될 수도 있는 스피커(197) 및 프린터(196)와 같은 다른 주변 출력 장치들을 포함할 수도 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터들로의 로지컬 커넥션들을 사용해서 네트워크 환경에서 동작할 수도 있다. 원격 컴퓨터 (180)는 퍼스널 컴퓨터, 핸드헬드 디바이스, 서버, 루터, 네트워크 PC, 피어 디바이스, 또는 다른 공통 네트워크 노드일 수 있으며, 컴퓨터(110)와 관련해서 상술된 소자들 중 다수 또는 전부를 통상 포함한다. 도 1에 도시된 로지컬 커넥션들은 근거리 통신망(LAN; 171) 및 광역 통신망(WAN; 173)을 포함하는데, 다른 네트워크들을 포함할 수도 있다. 네트워크 환경은 사무실에서 흔한 것으로, 기업간 컴퓨터 네트워크, 인트라넷 및 인터넷이다.
LAN 네트워크 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워크 환경에서 사용될 때, 컴퓨터(110)는 인터넷과 같은 WAN(173)을 통한 통신 설정을 위해 모뎀(172) 또는 다른 수단을 통상 포함한다. 내부 또는 외부에 있을 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 다른 적합한 메카니즘을 통해 시스템 버스(121)에 접속될 수도 있다. 네트워크 환경에서, 컴퓨터(110)와 관련해서 도시된 프로그램 모듈, 또는 그 일부는 원격 메모리 기억 장치에 기억될 수도 있다. 예를 들어, 도 1은 원격 컴퓨터(180)에 상주하는 것으로 원격 애플리케이션 프로그램(185)을 도시하고 있지만, 이들로만 제한되지 않는다. 도시된 네트워크 커넥션들은 단지 설명을 목적으로 한 것으로, 컴퓨터들 간에 통신 링크를 설정하는 다른 수단이 사용될 수도 있음을 알 것이다.
통상, 애플리케이션 프로그램(135)은 커맨드 라인을 통해 사용자와 상호 작용하거나 사용자 입력 인터페이스(160)를 통해 그래픽 사용자 인터페이스(GUI)와 상호 작용한다. 그러나, 컴퓨터 시스템 용도를 간소화하고 확장하려고 노력할 때, 사용자로부터 자연 언어 입력을 수신할 수 있는 입력들이 개발되어 왔다. 자연 언어 또는 음성과 대조적으로, 그래픽 사용자 인터페이스는 정확하다. 잘 설계된 그래픽 사용자 인터페이스는 통상 모호한 참조들을 생성하지 않거나 또는 인터페이스(160)를 통해 수신된 입력의 특정 해석을 확인하기 위해 기본 애플리케이션을 요구한다. 예를 들어, 인터페이스가 정확하기 때문에, 사용자가 입력에 대한 질의(즉, "'ok' 버튼을 클릭했는가")를 받는 요구 사항은 통상 없다. 통상, 그래픽 사용자 인터페이스를 위해 설계된 객체 모델은 매우 기계적이며 구현상 엄밀하다.
그래픽 사용자 인터페이스로부터의 입력과 대조적으로, 자연 언어 질의 또는 커맨드는 입력 객체 모델에 대한 단지 하나의 함수 콜이 아닌 함수 콜 시리즈로 종종 번역된다. 전형적인 라인 입력 또는 그래픽 사용자 인터페이스의 엄밀한 기계적 한계들과 대조적으로, 자연 언어는 모호성을 해결하기 위해 종종 무의식적으로 인간 대화자들이 서로의 지능에 의존하는 통신 수단이다. 사실, 자연 언어는 기계적이지 않기 때문에 정확하게 "자연적"이라고 간주된다. 인간 대화자들은 발언(utterance) 주위의 임의의 수의 도메인들에 관한 문맥 정보 및 큐를 근거로 모호성을 해결한다. 인간 대화자들의 경우, "금요일 리뷰 미팅에서 의사록(minutes)을 발송하라"는 문장은 임의의 설명이 필요 없이 완전하게 이해할만한 문장이다. 그러나, 기계의 기계적 관점에서 볼 때, 정확하게 어떤 다큐먼트 및 어떤 미팅과 관련되는 것인지, 및 다큐먼트가 정확하게 누구에게 송신돼야하는지와 같은 특정 세부 사항들이 지정돼야만 한다.
본 발명은 애플리케이션 및 관련 액션을 구동하기 위해 자연 언어 입력을 해 석하는 것과 관련된다. 스키마는 애플리케이션과 관련된 액션을 개시할 뿐만 아니라 자연 언어 입력의 해석을 구동하기 위해 정의될 수 있다. 따라서, 스키마는 사용자에 의해 애플리케이션 자체 및 자연 언어 입력의 구문 해석과 상호 작용한다. 본 기술 분야에 숙련된 자들이 아는 바와 같이, 스키마는 개별 코드일 수도 있으며 애플리케이션 코드와 함께 포함될 수 있다. 본 발명의 양상들은 향상된 자연 언어 인터페이스를 사용자에게 제공하기 위해 다수의 상이한 환경들에서 사용될 수 있다. 본 발명의 양상들을 사용할 수 있는 하나의 특정 환경은 데이터베이스와 같은 구조화된 데이터 소스로부터 정보를 렌더링하는 것을 포함한다. 스키마는 예를 들어, 행렬표 또는 싱글 셀을 렌더링하는데 사용될 수 있다. 정보의 싱글 셀이 렌더링되는 경우에, 정보는 표 포맷에 데이터를 제공하는 대신 자연 언어로 제공된 질문에 대한 응답일 수 있다. 예를 들어, 사용자는 "1999년에 캘리포니아는 얼마나 많은 청구액을 지불했는가"를 입력할 수 있다. 사용자가 답을 찾기 위해 대량의 데이터를 정독할 필요가 없도록 응답 "3482"가 제공될 수 있다.
도 2는 사용자로부터 자연 언어 입력을 분석하고 자연 언어 입력을 근거로 표 정보를 렌더링하기 위한 시스템의 블록도를 도시한다. 시스템(200)은 사용자 인터페이스 모듈(202), 표 생성 모듈(204), 해석 모듈(206) 및 데이터베이스(208)를 포함한다. 데이터베이스(208)가 일례의 데이터 소스임을 주지할 필요가 있다. 데이터 소스는 SQL 데이터베이스, OLAP 큐브 또는 마이크로소프트 엑셀 워크시트와 같은 다수의 형태들을 취할 수 있다. 사용자는 표 생성과 관련된 커맨드, 질문 또는 다른 입력 형태로 사용자 인터페이스 모듈(202)에 자연 언어 입력을 제공한다. 예를 들어, 사용자는 "항공기 및 행선지에 대한 년도별 총수익을 보여주시오" 또는 "1999년도 737편의 총수익이 얼마였는가" 또는 간단히 "이익"을 제공할 수도 있다. 사용자 인터페이스 모듈(202)은 자연 언어 입력을 수신해서 표 생성 모듈(204)에 제공한다.
표 생성 모듈(204)은 표를 렌더링할 때 사용될 수 있는 다양한 커맨드에 대한 관련 속성 및 커맨드 스키마를 정의한다. 예를 들어, 커맨드는 생성, 보여주기, 추가, 숨기기, 하이라이트, 필터, 클리어 등을 포함할 수 있으며, 커맨드를 더 정의하는 속성들을 포함한다. 커맨드는 또한 표를 인쇄하고 데이터베이스(208)의 데이터로부터 차트를 생성하는 것을 포함할 수 있다. 스키마는 입력의 해석을 구동하기 위해 해석 모듈(206)에 제공될 수 있다. 대안으로, 스키마는 정보의 싱글 셀을 렌더링하는데 사용될 수 있다. 표 생성 모듈(204)은 해석 모듈(206)을 사용해서, 표 생성을 위해 실행되는 액션을 구동하는 정의된 스키마 및 인터페이스 모듈(202)로부터 수신된 자연 언어 입력을 근거로 어떤 정보가 렌더링돼야만 하는지를 결정하는데 도움이 된다. 표 생성 모듈(204)은 데이터베이스(208)에 저장된 항목에 대응하는 단어 및/또는 구를 식별하기 위해 데이터베이스(208)에 액세스하고 해석 모듈(206)에 제공한다.
해석 모듈(206)은 사용자에게 렌더링하기 위한 어떤 정보의 후보 구문 해석들을 생성하기 위해 사용자 입력, 스키마 및 데이터베이스 단어 및 구를 분석한다. 사용자 입력의 구문 분석이 먼저 실행되어 사용자가 렌더링되기를 원하는 것을 해석하기 위해 구문 정보를 제공한다. 예를 들어, 입력의 명명 엔티티는 사용자가 렌더링되기를 희망하는 용어를 페이지로서, 행렬로서, 또는 표의 데이터 영역 내에서 신호해줄 수 있다. 음성 파트를 식별하고, 용어의 부분 매치를 수용하고 및/또는 매치를 위해 음성의 특정 파트를 의존하고, 형태학 대안(예를 들어, "region" 및 "regional")을 식별하고, 명칭의 연관성(예를 들어, "home owner" 및 "homeowner")을 분석하고, 날짜 표준화(예를 들어, "1/1/04" 및 "January 1, 2004"), 유의어를 통한 동의어 식별, 바뀐 단어 순서 허용(예를 들어, "total revenue" 및 "revenue total") 및 랭킹 방법과 같은 다른 구문 기술들이 사용될 수 있다. 값들의 부정(예를 들어, 숨기기), 비교급(예를 들어, 임계값 보다 큰 값) 등과 같은 다른 구문 정보가 해석 모듈(206)에 의해 식별될 수 있다.
구문 정보 및 스키마를 사용해서, 해석 모듈(206)은 자연 언어 입력의 하나 이상의 태스크들을 스키마의 커맨드 객체와 관련시키고 자연 언어 입력의 다른 정보를 하나 이상의 프레임 객체들 및/또는 스키마의 하나 이상의 엔티티 객체들과 관련시킨다. 스키마는 또한 다른 엔티티들을 표시하고 객체들의 속성들을 기술할 수 있는 디노터(denoter) 및 제한 객체들과 같은 다른 객체들을 포함할 수 있다. 자연 언어 입력이 일단 스키마의 객체들과 관련되면, 후보 해석들이 분석되고 표 생성 모듈(204)에 송신된다.
하나의 일례의 실시예에서, 사용자 인터페이스 모듈(202)은 워싱톤주 레드몬드의 마이크로소프트 코포레이션에 의해 제공된 마이크로소프트 엑셀과 같은 스프레드시트 애플리케이션일 수 있다. 스프레드시트 애플리케이션은 모든 타입들의 데이터베이스 정보를 처리 및 렌더링하도록 구성될 수 있다. 예를 들어, 스프레드 시트 애플리케이션은 온라인 분석 프로세싱(OLAP) 렌더링 툴일 수 있다. OLAP는 사용자가 쉽게 또한 선택적으로 다양한 방법들로 데이터베이스로부터 데이터를 추출 및 볼 수 있게 해주는 프로세싱 방법에 관한 것이다. OLAP 데이터 모델에서, 정보는 개념적으로 큐브들로 보여지는데, 이는 기술 카테고리차원들) 및 양적인 값(측정값)으로 구성된다. 다차원 데이터 모델은 사용자들이 복합 질의들을 공식화하고, 리포트에서 데이터를 배열하고, 요약에서 상세 데이터로 전환하고, 데이터를 의미있는 부집합들로 필터링 또는 분할하는 것을 간단하게 한다. 예를 들어, 판매 정보를 포함하는 큐브의 차원들은 시간, 지리, 제품, 채널, 조직화 및 시나리오(예산 또는 실졔)를 포함할 수 있다. 측정값들은 달러 세일, 유닛 세일, 재고품, 인원 수, 수입 및 지출을 포함할 수 있다.
OLAP 데이터 모델의 각각의 차원 내에서, 데이터는 데이터에 대한 상세 레벨들을 표현하는 계층으로 조직화될 수 있다. 예를 들어, 시간 차원 내에는, 년도, 월, 일과 같은 레벨들이 있을 수 있으며; 유사하게, 지리 차원내에는, 국가, 지역, 주 및 시와 같은 레벨들이 있을 수 있다. OLAP 데이터 모델의 특정 인스턴스는 계층의 각각의 레벨에 대해 특정 값들을 갖는다. OLAP 데이터를 보는 사용자는 보다 상세한 정보를 보기 위해 또는 보다 덜 상세한 정보를 보기 위해 레벨들을 올리거나 내린다.
본 발명의 한 실시예에서, 사용자에 의해 제공된 자연 언어 입력은 OLAP 큐브 차원들을 근거로 마이크로소프트 엑셀과 같은 스프레드시트 애플리케이션에서 PivotTable을 생성하는 것으로 분석될 수 있다. PivotTable은 대량의 데이터를 요 약할 수 있는 인터액티브 표이다. 표를 렌더링하는 인터액티브 인터페이스는 사용자가 데이터베이스(208)의 데이터의 상이한 요약들을 보고, 상이한 페이지들을 디스플레이함으로써 데이터를 필터링하고 및/또는 데이터베이스 정보와 관련된 세부 사항들을 디스플레이하도록 정보의 행렬을 사용자가 회전할 수 있게 해준다. PivotTable은 소스 데이터로부터 정보의 다수의 행들을 각각 요약하는 필드들을 포함한다. PivotTable은 또한 표의 특정 셀들의 합산, 카운팅 및/또는 평균화와 같은 요약 기능을 사용해서 데이터를 요약할 수 있다. PivotTable을 생성하기 위해, 사용자는 표 생성 모듈(204)을 호출할 수 있다. 한 실시예에서, 표 생성 모듈(204)은 표 정보 렌더링에 관한 정보를 입력하도록 사용자에게 안내하는 위저드이다.
상기 실시예에서, 표 생성 모듈(204)은 PivotTable을 생성 및 수정하는데 유용한 액션을 근거로 스키마를 정의할 수 있다. 스키마는 커맨드, 프레임 및 엔티티 객체들의 계층으로서 표현될 수 있다. 다른 객체들은 디노터를 포함할 수 있으며, 엔티티 및 제한 객체들로 명명된다. 커맨드 객체는 태스크 및 액션을 식별하고, 프레임 객체는 데이터가 디스플레이되는 방법과 관련된 액션을 식별하고, 엔티티 객체는 데이터를 식별한다. 상기 객체들의 특정 인스턴스들이 정보 렌더링을 구현하는데 사용될 수 있다. 인스턴스들은 희망하는 경우 베이스 클래스로부터 속성들을 계승할 수 있다. 스키마는 표 생성 모듈(204)이 표 생성을 위해 데이터에 대한 액션들을 실행하는데 사용되며 또한 해석 모듈(206)이 사용자 입력 해석을 구동하는데 사용된다.
도 3은 표의 축들 간의 데이터 필드 이동에 사용되는 일례의 스키마의 블록도이다. 스키마(220)는 실례로서 "이동축" 커맨드인 커맨드 객체(222)를 포함한다. 커맨드 객체(222)는 "이동축" 프레임인 관련된 프레임 객체(224)를 포함한다. 프레임 객체(224)는 3개의 관련 엔티티 객체들(226, 228, 230)을 포함한다. 프레임 객체(224)는 엔티티 객체들(226, 228, 230) 각각을 커맨드 객체(222)와 관련시킨다. 엔티티 객체들은 데이터베이스(208)의 데이터와 관련된다. 한 실시예에서, 엔티티 객체들은 렌더링되는 열 또는 행과 관련될 수 있다. 본 실시예에서, 엔티티 객체(226)는 본 명세서에서 필드 엔티티이며 이동될 데이터의 필드를 지정하는 디폴트 엔티티이다. 따라서, 사용자 입력의 해석이 커맨드 객체(222)의 커맨드를 실행하는데 필요한 특정 엔티티를 분석하지 않으면, 필드 엔티티(226)가 다양한 규칙들을 근거로 할 수 있는 디폴트 값으로 분석된다. 엔티티 객체(228)는 데이터를 렌더링하는 축을 정의하는 목표 엔티티이다. 엔티티 객체(230)는 상이한 축으로 이동될 현 필드를 정의하는 소스 엔티티이다.
도 4는 사용자에게 표를 렌더링해주는 일례의 방법의 플로우챠트이다. 방법(250)은 표 생성 모듈이 호출되는 단계(252)에서 시작한다. 표 생성 모듈은 단계(254)에서 사용자 입력으로부터의 용어들을 매치하는데 사용될 데이터베이스(208)의 차원, 레벨, 측정값 및/또는 멤버에 대응하는 데이터베이스 용어 및/또는 구에 액세스할 수 있다. 식별된 데이터베이스 용어들은 표 생성 모듈(204)의 성능을 향상시키기 위해 차후에 사용되도록 히스토리에 유지될 수 있다. 단계(256)에서, 자연 언어 입력이 사용자로부터 수신된다. 자연 언어 입력은 키보드 입력으로부터의 텍스트, 음성 데이터 및/또는 육필 데이터를 포함하는 임의의 형태일 수 있으며, 영어, 독일어, 프랑스어, 스페인어, 일본어 등을 포함하는 임의의 언어로 되어 있을 수 있다.
자연 언어 입력이 주어지면, 입력의 구문 분석이 단계(258)에서 실행되어 입력과 관련된 구문 정보를 식별할 수 있다. 사용자 입력의 후보 해석들이 구문 정보를 근거로 유도될 수 있으며, 사용자 입력의 부분들을 상술된 스키마의 부분들과 관련시킨다. 커맨드가 명백하게 자연 언어 입력으로 표현될 필요가 없으며, 입력에 암시될 수 있음을 주지할만하다. 예를 들어, "apples and bananas"라는 입력은 "show" 커맨드와 함께 사용됨을 암시할 수 있다. 후보 해석들을 사용해서, 표 후보 기술들이 단계(262)에서 렌더링될 수 있다. 표 후보 기술들은 사용자에게 친숙한 인터액티브 인터페이스를 생성하도록 다수의 형태를 취할 수 있다. 예를 들어, 해석 및/또는 표 프리뷰는 사용자가 타이핑하는 동안 제공되어, 입력에서 인식된 용어들이 하이라이트될 수 있으며, 다수의 표 구성들(예를 들어, 행 또는 열로서의 엔티티)이 제공될 수 있으며, 표 후보 기술들의 자연 언어 기술이 리스트로 제공될 수 있고, 모호한 용어 대안들이 팝업 메뉴로 제공될 수 있다.
또한, 사용자는 후보 기술들의 국부적 모호성을 선택할 수 있다. 예를 들어, 사용자가 입력에서 "sales"를 입력하면, 후보 기술들 중 하나는 데이터베이스(208)의 파트인 "number of sales" 용어를 포함할 수 있으며 용어 "sales"와 동등시할 수 있다. 국부적 모호성을 해결하기 위해 인터액티브 방법을 제공함으로써, 사용자는 "number of sales"를 "sales"와 동등한 것으로 선택할 수 있다. 상기 정 보(예를 들어, "sales"와 "number of sales"를 동등시함)는 유지되어 차후 해석들을 구동하는데 사용될 수 있다.
사용자가 표 후보 기술들 중 하나를 선택하면, 특정 표는 단계(266)에서 렌더링된다. 대안으로, 희망하는 경우, 용어가 인식되거나 변경이 사용자 입력에서 발생할 때 표는 "on-the-fly"로 렌더링될 수 있다. 또한, 자연 언어 입력의 일부분은 용어를 인식하고 용어를 사용자 타입으로서 가시적으로 나타내는데 사용될 수 있다. 예를 들어, 인식된 용어는 사용자 타입으로서 하이라이트될 수 있다. 표가 렌더링되었으면, 사용자는 표를 변경하거나 새로운 표를 렌더링하라는 하나의 다른 커맨드 또는 다수의 커맨드를 제공함으로써 표를 변경할 수도 있다. 단계(268)에서 다른 커맨드는 예를 들어, 표의 일부분을 하이라이트하고, 행렬을 숨기고 및/또는 추가하며, 다른 커맨드 뿐만 아니라 정보를 정렬 및 필터링하는데 사용될 수 있다. 단계(266)에서 새로운 표가 렌더링될 수 있다.
도 5는 본 발명의 실시예에 따라 사용되는 일례의 인터페이스(300)를 도시한다. 인터페이스(300)는 데이터베이스(208)로부터의 정보를 행렬표로 디스플레이하기 위한 표 디스플레이(302)를 포함한다. 본 실시예에서, 다양한 타입의 항공기에 대한 총수익이 지역별로 도시되어 있다. 윈도(304)는 사용자가 표 기술들을 보도록 제공되며, 표 생성 모듈(204)에 의해 사용된 자연 언어 입력을 제공한다. 윈도(304)는 디스플레이(302)에 현재 디스플레이된 표의 콘텐츠를 기술하는 표 기술(306)을 포함한다. 또한, 표를 생성하기 위한 입력의 일례(308)가 제공된다. 사용자는 표를 렌더링하기 위해 텍스트를 필드(310)로 입력할 수도 있다. 후보 기술 들(312)이 또한 상술된 바와 같이 사용자가 리스트에서 후보들 중 하나를 쉽게 선택할 수 있도록 리스트로 사용자에게 제공될 수 있다. 또한, 버튼(314)이 사용자가 특정 표 레이아웃을 선택하도록 제공될 수 있다. 예를 들어, 버튼(314)은 차원을 열에서 행으로 전환할 수 있다. 한 실시예에서, 가변 레이아웃의 수(또는 구성)는 자연 언어 입력의 용어들의 순서를 근거로 제한될 수 있다.
도 4에 도시된 일례에서, 사용자는 입력 필드(310)에서 "항공기 및 지역별로 수익을 보여달라"는 자연 언어 입력을 제공했다. 표 생성 모듈(204)은 데이터베이스(208)로부터의 용어들에 액세스해서, 차원들 "총수익", "항공기 타입" 및 "지역 명칭"을 식별했다. 해석 모듈(206)은 필드(310)의 입력 및 데이터베이스(208)의 차원들을 사용해서 입력을 분석하고 "항공기 타입 및 지역 명칭별로 총수익을 보여달라"(312)는 후보 기술을 제공한다.
이러한 해석을 사용자가 선택할 때, 현 기술(306) 및 표 디스플레이(302)는 선택된 표 및 관련 기술을 보여주도록 갱신된다. 그 후 사용자는 디스플레이(302)의 표와 관련되거나 새로운 표와 관련된 다른 자연 언어 커맨드를 필드(310)에서 입력할 수 있다. 예를 들어, 사용자는 "호주 숨기기", "747편만을 보여달라", "$10,000을 초과한 수익들을 하이라이트하라" 등을 제공할 수 있다. 본 일례에서, 애플리케이션은 각각 호주 열을 숨기고, 항공기 타입 747과 관련된 데이터만을 갖도록 표를 렌더링하며, $10,000 보다 큰 총수익 값들을 하이라이트한다.
상술된 실시예들의 결과로서, 행렬표로 데이터베이스와 같은 데이터 소스로부터 정보를 렌더링하기 위한 자연 언어 인터페이스가 제공된다. 인터페이스는 사 용자가 보다 쉽게 데이터 분석에 사용되는 표들을 생성 및 렌더링할 수 있게 해준다. 따라서, 표를 렌더링해서 데이터를 분석하는 것은 보다 시간 효율적이고 사용자에게 친숙한 방법으로 실행될 수 있다.
본 발명이 특정 실시예들을 참조해서 기술되었지만, 본 기술 분야에 숙련된 자들은 본 발명의 원리 및 범위 내에서 세부 사항이 변경될 수도 있음을 알 것이다.
본 발명에 의해, 데이터 소스 정보로부터 표들을 생성 및 렌더링하는 사용자에게 친숙한 인터페이스가 제공됨으로써, 정보가 분석될 수 있는 보다 효율적인 도구가 제공된다.

Claims (40)

  1. 구조화된 데이터 소스에 저장된 데이터를 처리하는 방법으로서,
    자연 언어 입력을 수신하는 단계;
    자연 언어 입력을 분석해서 그 안에 포함된 구문 정보를 식별하는 단계;
    자연 언어 입력의 일부분을 구문 정보 및 자연 언어 입력을 근거로 한 스키마의 커맨드 객체 및 엔티티 객체와 관련시키는 단계; 및
    스키마 및 자연 언어 입력의 관련 부분을 근거로 행렬표로 데이터 소스로부터의 데이터를 렌더링하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    데이터 소스의 차원과 관련된 단어 및 구를 식별하기 위해 데이터베이스에 액세스하는 단계를 더 포함하는 방법.
  3. 제2항에 있어서,
    액세스 단계가 데이터 소스의 레벨 및 값과 관련된 단어 및 구를 식별하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서,
    관련 단계가 자연 언어 입력의 일부분을 스키마의 프레임 객체와 관련시키고, 프레임 객체가 데이터 렌더링 방법에 대응하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    커맨드 객체가 데이터를 렌더링하기 위해 실행되는 태스크와 관련되는 방법.
  6. 제1항에 있어서,
    엔티티 객체가 데이터 소스의 데이터 또는 애플리케이션의 객체와 관련되는 방법.
  7. 제1항에 있어서,
    수신된 다른 커맨드를 근거로 표를 변경하는 단계를 더 포함하는 방법.
  8. 제7항에 있어서,
    다른 커맨드가 표의 일부분을 하이라이트하는 방법.
  9. 제7항에 있어서,
    다른 커맨드가 표의 일부분을 정렬하는 방법.
  10. 제7항에 있어서,
    다른 커맨드가 표의 정보를 필터링하는 방법.
  11. 제7항에 있어서,
    다른 커맨드가 표에 정보를 추가하는 방법.
  12. 제7항에 있어서,
    다른 커맨드가 표의 정보를 클리어하는 방법.
  13. 제7항에 있어서,
    다른 커맨드가 행렬 정보를 전환하는 것을 포함하는 방법.
  14. 제1항에 있어서,
    자연 언어 입력을 근거로 후보 해석을 제공하는 단계를 더 포함하는 방법.
  15. 제1항에 있어서,
    자연 언어 입력을 입력하도록 사용자에게 인터액티브 인터페이스를 제공하는 단계를 더 포함하는 방법.
  16. 제15항에 있어서,
    사용자가 자연 언어 입력을 입력하는 동안 자연 언어 입력의 인식된 용어를 나타내거나 후보 해석을 제공하는 것 중 적어도 하나를 실행하는 단계를 더 포함하는 방법.
  17. 제1항에 있어서,
    표의 정보의 자연 언어 기술을 렌더링하는 단계를 더 포함하는 방법.
  18. 제1항에 있어서,
    차후 사용을 위해 렌더링된 이전 표들의 히스토리를 유지하는 단계를 더 포함하는 방법.
  19. 제1항에 있어서,
    자연 언어 입력의 일부분을 데이터 소스와 관련된 단어 및 구와 관련시키는 단계를 더 포함하는 방법.
  20. 제1항에 있어서,
    분석 단계가 자연 언어 입력의 모호한 용어를 식별하고 모호한 용어에 대한 후보 대안을 제공하는 단계를 더 포함하는 방법.
  21. 차원 및 차원과 관련된 값을 포함하는 구조화된 데이터 소스의 데이터를 처리하기 위한 명령을 갖는 컴퓨터 판독 가능 매체로서,
    상기 명령은,
    자연 언어 입력을 수신하고 표를 렌더링하도록 적응된 사용자 인터페이스 모듈;
    차원 및 값에 액세스하고 차원 및 값을 렌더링하기 위한 스키마를 정의하도록 적응된 표 생성 모듈; 및
    자연 언어 입력의 용어를 데이터 소스의 차원에 대응하는 스키마의 엔티티 객체와 관련시키고 자연 언어 입력, 차원 및 스키마를 근거로 데이터 소스의 데이터를 렌더링하는 방법의 후보 해석을 생성하도록 적응된 해석 모듈
    을 포함하는 컴퓨터 판독 가능 매체.
  22. 제21항에 있어서,
    사용자 인터페이스 모듈이 후보 표 해석을 제공하는 컴퓨터 판독 가능 매체.
  23. 제21항에 있어서,
    데이터 소스가 차원과 관련된 레벨들을 포함하는 컴퓨터 판독 가능 매체.
  24. 제21항에 있어서,
    사용자 인터페이스 모듈이 적어도 하나의 후보 표 해석을 근거로 데이터 소스로부터 차원 및 값의 표를 렌더링하는 컴퓨터 판독 가능 매체.
  25. 제21항에 있어서,
    해석 모듈이 자연 언어 입력의 단어 및 구를 데이터 소스의 차원 및 값과 비교하는 컴퓨터 판독 가능 매체.
  26. 제21항에 있어서,
    해석 모듈이 자연 언어 입력의 구문 분석을 실행하는 컴퓨터 판독 가능 매체.
  27. 제21항에 있어서,
    스키마가 실행될 태스크와 관련된 커맨드 객체 및 데이터 렌더링 방법과 관련된 프레임 객체를 더 포함하는 것을 특징으로 하는 컴퓨터 판독 가능 매체.
  28. 제27항에 있어서,
    해석 모듈이 자연 언어 입력의 용어를 커맨드 객체 및 프레임 객체와 관련시키는 컴퓨터 판독 가능 매체.
  29. 제21항에 있어서,
    사용자 인터페이스 모듈이 사용자에게 후보 해석을 제공하는 컴퓨터 판독 가능 매체.
  30. 제29항에 있어서,
    후보 해석이 다수의 표 구성을 포함하고, 적어도 하나의 구성이 동일한 데이터와 관련되는 컴퓨터 판독 가능 매체.
  31. 제21항에 있어서,
    사용자 인터페이스 모듈이 선택된 후보 해석과 관련된 표를 렌더링하기 위해 후보 해석 중 하나를 사용자가 선택할 수 있게 해주는 컴퓨터 판독 가능 매체.
  32. 애플리케이션을 구동하기 위해 정보를 처리하는 방법으로서,
    자연 언어 입력 수신하는 단계;
    자연 언어 입력 안에 포함된 구문 정보를 식별하기 위해 자연 언어 입력을 분석하는 단계;
    구문 정보 및 자연 언어 입력을 근거로 커맨드 객체 및 엔티티 객체를 식별하기 위해 스키마에 액세스하는 단계; 및
    커맨드 객체 및 엔티티 객체를 근거로 애플리케이션과 관련된 액션을 실행하는 단계
    를 포함하는 방법.
  33. 제32항에 있어서,
    애플리케이션이 스프레드시트 애플리케이션인 방법.
  34. 제32항에 있어서,
    액션이 스키마를 근거로 행렬표로 데이터 소스로부터의 데이터를 렌더링하는 단계를 포함하는 방법.
  35. 제34에 있어서,
    액션이 자연 언어 입력을 근거로 데이터 소스로부터 정보의 싱글 셀을 렌더링하는 단계를 포함하는 방법.
  36. 제32항에 있어서,
    커맨드 객체가 애플리케이션에서 실행되는 커맨드와 관련되고 엔티티 객체가 커맨드를 실행할 때 애플리케이션에 의해 사용되는 데이터와 관련되는 방법.
  37. 제36항에 있어서,
    스키마 액세스 단계가 프레임 객체를 식별하는 단계를 더 포함하고, 프레임 객체가 엔티티 객체를 커맨드 객체와 관련시키는 방법.
  38. 제32항에 있어서,
    스키마 및 구문 정보를 근거로 자연 언어 입력의 후보 해석들을 제공하는 단계를 더 포함하는 방법.
  39. 제32항에 있어서,
    스키마 액세스 단계가 다수의 엔티티 객체를 식별하는 단계를 포함하는 방법.
  40. 제32항에 있어서,
    스키마 액세스 단계가 다수의 커맨드 객체를 식별하는 단계를 포함하는 방법.
KR1020050022166A 2004-03-18 2005-03-17 자연 언어 커맨드에 따른 표 렌더링 KR100969447B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/804,815 2004-03-18
US10/804,815 US7613719B2 (en) 2004-03-18 2004-03-18 Rendering tables with natural language commands

Publications (2)

Publication Number Publication Date
KR20060043741A true KR20060043741A (ko) 2006-05-15
KR100969447B1 KR100969447B1 (ko) 2010-07-14

Family

ID=34838946

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050022166A KR100969447B1 (ko) 2004-03-18 2005-03-17 자연 언어 커맨드에 따른 표 렌더링

Country Status (10)

Country Link
US (1) US7613719B2 (ko)
EP (1) EP1577797A3 (ko)
JP (1) JP2005267647A (ko)
KR (1) KR100969447B1 (ko)
CN (1) CN1670733B (ko)
AU (1) AU2005200962B2 (ko)
BR (1) BRPI0500943A (ko)
CA (1) CA2501254A1 (ko)
MX (1) MXPA05002951A (ko)
RU (1) RU2380747C2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100865481B1 (ko) * 2007-05-14 2008-10-27 엔에이치엔(주) 삼차원으로 구조화된 데이터 모델을 이용하여 데이터를분산 관리하는 방법
KR20160030943A (ko) * 2013-07-15 2016-03-21 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 음성 입력에 기초한 표 데이터에 관한 연산의 수행 기법

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255791B2 (en) 2000-11-29 2012-08-28 Dov Koren Collaborative, flexible, interactive real-time displays
US20060250369A1 (en) * 2005-05-09 2006-11-09 Keim Oliver G Keyboard controls for customizing table layouts
US20070055556A1 (en) * 2005-07-06 2007-03-08 Frank-Backman Elizabeth G Spreadsheet Generator
US7669138B2 (en) 2005-10-31 2010-02-23 Liaise, Inc. Interacting with a computer-based management system
US8694319B2 (en) 2005-11-03 2014-04-08 International Business Machines Corporation Dynamic prosody adjustment for voice-rendering synthesized data
US9361622B2 (en) * 2006-12-28 2016-06-07 Oracle International Corporation Multi-dimensioned data hierarchies
US8090746B2 (en) * 2007-11-29 2012-01-03 Sap Aktiengeselleschaft System and method for maintaining consistent behavior when in different table modes
US8312366B2 (en) 2009-02-11 2012-11-13 Microsoft Corporation Displaying multiple row and column header areas in a summary table
US20100228752A1 (en) * 2009-02-25 2010-09-09 Microsoft Corporation Multi-condition filtering of an interactive summary table
US8375056B2 (en) * 2010-02-26 2013-02-12 International Business Machines Corporation Optimizing data cache when applying user-based security
US8392442B2 (en) * 2010-04-15 2013-03-05 Dee Gee Holdings, Llc Method and computer program product for creating content management systems
EP2455844A1 (en) * 2010-11-10 2012-05-23 Michael Rabben Computerized method to associatively and efficiently select elements in textual electronic lists and to operate computer-implemented programs using natural language commands
US8589336B1 (en) * 2011-04-25 2013-11-19 Netapp, Inc. Framework for automated storage processes and flexible workflow
RU2580022C2 (ru) * 2011-08-31 2016-04-10 Общество С Ограниченной Ответственностью "Базелевс Инновации" Визуализация текста на естественном языке
WO2013188540A1 (en) * 2012-06-12 2013-12-19 Grant Street Group, Inc. Practical natural-language human-machine interfaces
US11176523B2 (en) 2012-06-24 2021-11-16 Harms Software, Inc. System and method for intelligent conversation-based appointment tool
US10706047B2 (en) * 2012-10-22 2020-07-07 Sap Se Boolean content search
US9171066B2 (en) * 2012-11-12 2015-10-27 Nuance Communications, Inc. Distributed natural language understanding and processing using local data sources
US9330090B2 (en) * 2013-01-29 2016-05-03 Microsoft Technology Licensing, Llc. Translating natural language descriptions to programs in a domain-specific language for spreadsheets
US10282407B1 (en) 2013-08-21 2019-05-07 The United States Of America, As Represented By The Secretary Of The Navy Method for filtering data to generate a balance sheet
US9594737B2 (en) * 2013-12-09 2017-03-14 Wolfram Alpha Llc Natural language-aided hypertext document authoring
CN104881414A (zh) * 2014-02-28 2015-09-02 国际商业机器公司 数据展示方法和系统
US20160124937A1 (en) * 2014-11-03 2016-05-05 Service Paradigm Pty Ltd Natural language execution system, method and computer readable medium
US20170177716A1 (en) * 2015-12-22 2017-06-22 Intel Corporation Technologies for semantic interpretation of user input by a dialogue manager
US10318528B2 (en) 2016-02-25 2019-06-11 Microsoft Technology Licensing, Llc Query response using mapping to parameterized report
US10817527B1 (en) * 2016-04-12 2020-10-27 Tableau Software, Inc. Systems and methods of using natural language processing for visual analysis of a data set
GB201616990D0 (en) * 2016-10-06 2016-11-23 Microsoft Technology Licensing Llc User interface
EP4220630A1 (en) 2016-11-03 2023-08-02 Samsung Electronics Co., Ltd. Electronic device and controlling method thereof
WO2019087194A1 (en) * 2017-11-05 2019-05-09 Walkme Ltd. Chat-based application interface for automation
KR20200013162A (ko) 2018-07-19 2020-02-06 삼성전자주식회사 전자 장치 및 그의 제어 방법
CN111191431A (zh) * 2018-10-29 2020-05-22 百度在线网络技术(北京)有限公司 一种根据自然语言指令生成报表的方法及系统
CN110413767A (zh) * 2019-08-05 2019-11-05 浙江核新同花顺网络信息股份有限公司 基于自然语言生成呈递内容的系统及方法
US11379577B2 (en) 2019-09-26 2022-07-05 Microsoft Technology Licensing, Llc Uniform resource locator security analysis using malice patterns
US11509667B2 (en) 2019-10-19 2022-11-22 Microsoft Technology Licensing, Llc Predictive internet resource reputation assessment
US11163760B2 (en) 2019-12-17 2021-11-02 Mastercard International Incorporated Providing a data query service to a user based on natural language request data
US11431751B2 (en) 2020-03-31 2022-08-30 Microsoft Technology Licensing, Llc Live forensic browsing of URLs
CN114912427A (zh) * 2021-02-10 2022-08-16 微软技术许可有限责任公司 响应于用户输入的数据表分析
US12001782B2 (en) 2021-09-24 2024-06-04 Google Llc Personalized autonomous spreadsheets
US12001783B2 (en) 2021-09-24 2024-06-04 Google Llc Autonomous spreadsheet creation

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324713A (ja) * 1992-05-20 1993-12-07 Hitachi Ltd 自然語処理方法および自然語処理システム
JPH0744638A (ja) * 1993-07-29 1995-02-14 Nec Corp 表データ検索装置
US5960384A (en) * 1997-09-03 1999-09-28 Brash; Douglas E. Method and device for parsing natural language sentences and other sequential symbolic expressions
US6490620B1 (en) * 1997-09-26 2002-12-03 Worldcom, Inc. Integrated proxy interface for web based broadband telecommunications management
KR100289065B1 (ko) * 1997-10-14 2001-05-02 정선종 전자상거래상품정보검색용자연언어질의어처리방법
JPH11259524A (ja) * 1998-03-06 1999-09-24 Omron Corp 情報検索システム、情報検索システムにおける情報処理方法および記録媒体
JP2002523828A (ja) * 1998-08-24 2002-07-30 ビーシーエル コンピューターズ, インコーポレイテッド 適応型自然言語インターフェース
KR100681989B1 (ko) * 1998-08-31 2007-02-15 소니 가부시끼 가이샤 자연 언어 처리 장치 및 방법
FR2806183B1 (fr) * 1999-12-01 2006-09-01 Cartesis S A Dispositif et procede pour la consolidation instantanee, l'enrichissement et le "reporting" ou remontee d'information dans une base de donnees multidimensionnelle
US6701294B1 (en) 2000-01-19 2004-03-02 Lucent Technologies, Inc. User interface for translating natural language inquiries into database queries and data presentations
FI109952B (fi) 2000-06-06 2002-10-31 Sonera Oyj Palvelutarjonta tietoliikenneverkossa
KR20020045343A (ko) * 2000-12-08 2002-06-19 오길록 표준화된 문장 구문구조 및 의미구조에 기반한 정보생성/검색 장치 및 그 방법
JP2002259443A (ja) * 2001-02-28 2002-09-13 Ricoh Co Ltd 文書管理システム、文書検索方法および文書検索プログラム
US7269788B2 (en) * 2001-06-29 2007-09-11 Versata Development Group, Inc. Extensibility and usability of document and data representation languages
US7283951B2 (en) * 2001-08-14 2007-10-16 Insightful Corporation Method and system for enhanced data searching
US20050043940A1 (en) * 2003-08-20 2005-02-24 Marvin Elder Preparing a data source for a natural language query

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100865481B1 (ko) * 2007-05-14 2008-10-27 엔에이치엔(주) 삼차원으로 구조화된 데이터 모델을 이용하여 데이터를분산 관리하는 방법
KR20160030943A (ko) * 2013-07-15 2016-03-21 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 음성 입력에 기초한 표 데이터에 관한 연산의 수행 기법

Also Published As

Publication number Publication date
KR100969447B1 (ko) 2010-07-14
CN1670733A (zh) 2005-09-21
CA2501254A1 (en) 2005-09-18
JP2005267647A (ja) 2005-09-29
EP1577797A3 (en) 2006-11-08
US7613719B2 (en) 2009-11-03
CN1670733B (zh) 2011-07-13
BRPI0500943A (pt) 2005-11-08
AU2005200962B2 (en) 2010-06-03
EP1577797A2 (en) 2005-09-21
US20050210061A1 (en) 2005-09-22
RU2380747C2 (ru) 2010-01-27
MXPA05002951A (es) 2006-05-25
AU2005200962A1 (en) 2005-10-06
RU2005107522A (ru) 2006-08-27

Similar Documents

Publication Publication Date Title
KR100969447B1 (ko) 자연 언어 커맨드에 따른 표 렌더링
US11694036B2 (en) Using natural language constructs for data visualizations
US10698977B1 (en) System and methods for processing fuzzy expressions in search engines and for information extraction
US20190384762A1 (en) Computer-implemented method of querying a dataset
Llopis et al. How to make a natural language interface to query databases accessible to everyone: An example
US20060235690A1 (en) Intent-based information processing and updates
CN112035506A (zh) 一种语义识别方法及其设备
US11842154B2 (en) Visually correlating individual terms in natural language input to respective structured phrases representing the natural language input
Barbieri et al. A natural language querying interface for process mining
US11868343B2 (en) Utilizing autocompletion as a data discovery scaffold for supporting visual analysis
US20230376185A1 (en) Visual Autocompletion for Geospatial Queries
US8965750B2 (en) Acquiring accurate machine translation
US20230044287A1 (en) Semantics based data and metadata mapping
US11698933B1 (en) Using dynamic entity search during entry of natural language commands for visual data analysis
US12032905B2 (en) Methods and systems for summarization of multiple documents using a machine learning approach
US20210117617A1 (en) Methods and systems for summarization of multiple documents using a machine learning approach
Yu Visflow: A Web-based Dataflow Framework for Visual Data Exploration
CN117874056A (zh) 一种基于sql语法的征信衍生变量加工系统以及方法
Cras et al. Question Answering System in a Business Intelligence Context
JP2004046394A (ja) 自然言語を利用した多次元データベースシステムおよび操作命令翻訳方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130628

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190617

Year of fee payment: 10