KR20130143697A - 상황 키보드를 이용한 컴퓨팅 장치 상에서의 액션 수행 - Google Patents

상황 키보드를 이용한 컴퓨팅 장치 상에서의 액션 수행 Download PDF

Info

Publication number
KR20130143697A
KR20130143697A KR1020137016053A KR20137016053A KR20130143697A KR 20130143697 A KR20130143697 A KR 20130143697A KR 1020137016053 A KR1020137016053 A KR 1020137016053A KR 20137016053 A KR20137016053 A KR 20137016053A KR 20130143697 A KR20130143697 A KR 20130143697A
Authority
KR
South Korea
Prior art keywords
keyboard
action
actions
text
input
Prior art date
Application number
KR1020137016053A
Other languages
English (en)
Inventor
클리포드 에이. 커쉴러
제인 매닝
마이크 맥쉐리
아론 쉬디
Original Assignee
뉘앙스 커뮤니케이션즈, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 뉘앙스 커뮤니케이션즈, 인코포레이티드 filed Critical 뉘앙스 커뮤니케이션즈, 인코포레이티드
Publication of KR20130143697A publication Critical patent/KR20130143697A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

컴퓨팅 장치의 키보드 애플리케이션을 통해 액션들을 수행하기 위한 시스템 및 방법이 설명된다. 일부 예들에서, 상황 키보드는 텍스트의 입력 및 장치에 의해 지원되는 애플리케이션들에 걸친 액션들의 수행을 용이하게 한다. 예를 들어, 상황 키보드는 단어 매크로 및/또는 제스처를 수신할 수 있고, 수신된 단어 매크로 및/또는 제스처가 하나 이상의 액션을 수행하기 위한 명령인 것으로 결정한다. 수행될 예시적인 액션들은 정보 검색, 정보 저장, 정보 포스팅, 정보 전송, 정보 향상 등을 포함한다.

Description

상황 키보드를 이용한 컴퓨팅 장치 상에서의 액션 수행{PERFORMING ACTIONS ON A COMPUTING DEVICE USING A CONTEXTUAL KEYBOARD}
사람으로부터 기계로 텍스트를 입력하기 위한 주요 방법인 현대식 키보드의 기원은 19세기의 초기 타자기로 거슬러 올라간다. 컴퓨터가 개발됨에 따라, 타자기 키보드를 텍스트 입력을 위한 주요 방법으로서의 이용을 위해 적응시키는 것은 자연스러운 진화의 산물이었다. 숙련된 타자수에게 타자기는 컴퓨터 또는 다른 데이터 처리 장치에 텍스트를 입력하기 위한 가능한 가장 빠른 방법으로 남았다.
컴퓨터를 더 작고 더 휴대 가능하게 하기 위한 계속되는 노력과 더불어, 물리적 키보드는 컴퓨팅 장치를 얼마나 작게 할 수 있는지에 대한 가장 중요한 제한 요소들 중 하나가 되었으며, 사람 손가락의 물리적 크기는 컴퓨터 설계자가 바꿀 수 있는 것이 아니다. 결과적으로, 이동 장치 및 태블릿 컴퓨터와 같은 소정의 휴대 응용들을 위한 컴퓨팅 장치들은 물리적 키보드를 갖지 않도록 설계되었으며, 그 대신에 터치스크린 또는 가상 키보드를 장치와 사람 사용자 간의 주요 인터페이스로서 사용한다.
터치스크린을 통한 구현에도 불구하고, 가상 키보드는 종종 사용자로부터 텍스트 입력을 수신하기 위한 메커니즘으로만 이용된다. 즉, 많은 혁신은 현대식 장치들에 유용한 키보드들을 제공하였지만, 통상적인 가상 키보드는 단지 사용자로부터 텍스트 입력을 수신하도록 기능함으로써 여전히 그전의 키보드들처럼 기능한다. 이것은 물리적 키보드 또는 초기 타자기들이 사용자로 하여금 장치 상에서 할 수 있게 해주는 것, 즉 사용자로부터 텍스트 입력을 수신하는 것과 유사하다.
따라서, 전술한 문제들을 극복하는 시스템은 물론, 추가적인 이익들을 제공하는 시스템이 필요하다. 일부 종래 또는 관련 시스템들 및 이들과 관련된 한계들에 대한 본 명세서에서의 예들은 배타적이 아니라 예시적인 것을 의도한다. 기존 또는 종래 시스템들의 다른 한계들은 이어지는 상세한 설명을 읽을 때 이 분야의 기술자들에게 명백해질 것이다.
도 1은 이동 장치 또는 다른 적절한 컴퓨팅 장치의 컴포넌트들을 나타내는 블록도이다.
도 2는 컴퓨팅 장치의 키보드 애플리케이션의 컴포넌트들을 나타내는 블록도이다.
도 3은 키보드 애플리케이션의 액션 모듈의 컴포넌트들을 나타내는 블록도이다.
도 4는 키보드 애플리케이션을 통해 액션을 수행하기 위한 루틴을 나타내는 흐름도이다.
도 5는 시드(seed)와 관련된 액션을 수행하기 위한 루틴을 나타내는 흐름도이다.
도 6은 입력된 텍스트가 명령인지 또는 텍스트 스트링의 일부인지를 결정하기 위한 루틴을 나타내는 흐름도이다.
도 7은 키보드 애플리케이션을 통해 입력된 텍스트에 기초하여 액션을 수행하기 위한 루틴을 나타내는 흐름도이다.
도 8은 키보드 애플리케이션을 통해 수신된 제스처와 관련된 액션을 수행하기 위한 루틴을 나타내는 흐름도이다.
도 9는 키보드 애플리케이션에 의해 수신된 제스처에 응답하여 정보를 표적 애플리케이션으로 전송하기 위한 루틴을 나타내는 흐름도이다.
도 10a-10d는 정보 검색을 개시할 때 수행되는 단계들을 나타내는 스크린 샷들이다.
도 11a-11c는 정보 검색을 개시할 때 수행되는 단계들을 나타내는 스크린 샷들이다.
도 12a-12b는 링크 또는 다른 정보를 애플리케이션에 삽입할 때 수행되는 단계들을 나타내는 스크린 샷들이다.
도 13a-13b는 링크 또는 다른 정보를 애플리케이션에 삽입할 때 수행되는 단계들을 나타내는 스크린 샷들이다.
도 14a-14d는 맵 또는 다른 정보를 애플리케이션에 삽입할 때 수행되는 단계들을 나타내는 스크린 샷들이다.
도 15a-15b는 정보를 데이터베이스에 저장할 때 수행되는 단계들을 나타내는 스크린 샷들이다.
도 16a-16b는 정보를 데이터베이스에 저장할 때 수행되는 단계들을 나타내는 스크린 샷들이다.
도 17a-17b는 정보를 웹사이트 또는 다른 위치로 포스팅(posting)할 때 수행되는 단계들을 나타내는 스크린 샷들이다.
도 18a-18b는 정보를 웹사이트 또는 다른 위치로 포스팅할 때 수행되는 단계들을 나타내는 스크린 샷들이다.
개요
이동 장치 또는 태블릿 장치와 같은 컴퓨팅 장치의 키보드 애플리케이션을 통해 액션들을 수행하기 위한 시스템 및 방법이 설명된다. 일부 예들에서, 시스템은 터치스크린 상에 표시된 키보드 또는 장치에 의해 제공되는 다른 표시된 가상 키보드를 통해 입력을 수신하고, 수신된 입력이 수행할 액션과 관련된 것으로 결정하고, 액션을 수행하고 그리고/또는 액션의 수행을 개시한다.
이제, 시스템은 다양한 실시예들과 관련하여 설명된다. 아래의 설명은 이러한 시스템 실시예들의 충분한 이해와 이들에 대한 설명을 가능하게 하기 위한 특정 상세들을 제공한다. 그러나, 이 분야의 기술자는 시스템이 이러한 상세 없이도 실시될 수 있다는 것을 이해할 것이다. 다른 예들에서는, 불필요하게 시스템의 실시예들의 설명을 불명확하게 하지 않기 위해 공지 구조들 및 기능들은 상세히 도시되거나 설명되지 않았다.
아래에 제공되는 설명에서 사용되는 용어는 시스템의 소정의 구체적인 실시예들의 상세한 설명과 관련하여 사용되는 경우에도 가장 넓은 정당한 방식으로 해석되는 것을 의도한다. 소정의 용어들은 아래에서 강조될 수도 있지만, 임의의 제한된 방식으로 해석될 것을 의도하는 임의의 용어는 이 상세한 설명 부분에서 그 자체로 명확하고 구체적으로 정의될 것이다.
적절한 시스템
도 1은 "상황 키보드"와 같이 액션들을 수행할 수 있는 키보드 애플리케이션을 지원할 수 있는 컴퓨팅 장치(100)의 블록도를 나타낸다. 컴퓨팅 장치(100)는 이동 장치, 스마트폰, 태블릿 컴퓨터, 넷북, 이동 GPS 내비게이션 장치, 리모컨, 고정 전화 또는 통신 콘솔 또는 기기, 표면 또는 테이블탑 컴퓨터, 오버헤드 이미지 프로젝터, 데스크탑 컴퓨터, 전자 판독기, ATM 기계, 자동 판매기, 또는 장치의 사용자 인터페이스에 의해 제공되는, 가상 또는 터치스크린 기반 키보드와 같은 키보드를 갖는 임의의 다른 장치일 수 있다. 컴퓨팅 장치(100)는 컴퓨팅 장치(100)의 키보드에 의해 수신되는 입력에 기초하여 액션들을 수행하도록 구성되는 다양한 하드웨어 및/또는 소프트웨어 컴포넌트들을 포함한다. 예를 들어, 컴퓨팅 장치(100)는 다양한 사람 인터페이스 컴포넌트들(110), 장치 컴포넌트들(120) 및 메모리(130)를 포함한다.
컴퓨팅 장치(100)는 터치스크린이 터치될 때 접촉 이벤트들을 프로세서(122)에 통지하는 입력과 같은 입력을 프로세서(122)에 제공하는 터치스크린(112) 또는 다른 입력 컴포넌트를 포함한다. 터치스크린은 터치스크린 드라이버와 같은 하드웨어 제어기를 포함하거나 그와 통신할 수 있으며, 하드웨어 제어기는 터치스크린으로부터 수신되는 원시 신호들을 해석하고, 접촉 이벤트와 관련된 정보(예를 들어, 버튼 또는 키 누름의 지시, (터치스크린, 터치패드 또는 그래픽 태블릿 상의 손가락 또는 스타일러스 터치 등으로부터의) 접촉의 포인트의 X-Y 좌표들, 제스처, 스와이프 경로, 물리 또는 가상 키를 누르기 위한 사용자에 의한 요청, 포인팅 입력 장치의 현재 위치, 접촉의 면적, 압력, 지속 기간 등)를 프로세서(122)로 전송한다. 예를 들어, 하드웨어 제어기는 마우스, 트랙볼, 조이스틱 또는 아날로그 스틱, 포인팅 스틱 또는 니플 마우스(nipple mouse), 롤러 마우스, 풋 마우스(foot mouse), 팜 마우스(palm mouse), 라이트 펜, 라이트 건(light gun), 위치 건(positional gun), 레이저 포인터, 자이로스코프 또는 자이로스코프 마우스, 가속도계, 눈 추적 장치, 비디오 추적 장치, 스타일러스 등을 포함하는 다양한 포인팅 장치들과 관련된 정보를 전송할 수 있다. 프로세서(122)는 검출된 접촉 이벤트들과 관련된 정보(예를 들어, 표시된 키보드 상의 접촉된 키들의 문자들)를 표시하기 위해 디스플레이(114)와 관련된 하드웨어 제어기 또는 드라이버와 통신한다. 디스플레이(114)는 컴퓨팅 장치(100) 내에 통합될 수 있거나, 터치스크린(112)의 일부일 수 있거나, 독립 장치일 수 있다. 예시적인 디스플레이들(114)은 터치스크린 디스플레이, 평판 디스플레이, 음극선관, 전자 잉크 디스플레이, 헤드-마운티드(head-mounted) 디스플레이, 액정 디스플레이, 발광 다이오드 디스플레이, 플라즈마 패널 디스플레이, 전기 발광 디스플레이, 진공 형광 디스플레이, 디지털 프로젝터, 레이저 프로젝터, 헤드-업(heads-up) 디스플레이 등을 포함한다. 장치(114)는 사용자가 표시된 키보드 또는 다른 표시된 컴포넌트를 내비게이션하는 것을 돕기 위해 적절한 가청 신호들을 제공하는 스피커와 같은 다른 인터페이스 컴포넌트들(116)을 포함할 수 있다.
컴퓨팅 장치(100)는 센서(예로서, GPS 또는 다른 위치 결정 센서, 모션 센서, 자이로스코프, 광 센서 등), 이동식 저장 장치(예를 들어, SIM 카드), 카메라 및 다른 비디오 캡처 장치, 마이크 및 다른 오디오 캡처 장치, 통신 장치(예를 들어, 블루투스 장치, 라디오, 안테나) 등과 같은 다양한 장치 컴포넌트들(124)을 포함할 수 있다.
프로세서(122)는 임시 및/또는 영구 저장 장치의 조합, 및 판독 전용 및 기록 가능 메모리(랜덤 액세스 메모리, 즉 RAM), 판독 전용 메모리(ROM), 플래시 메모리와 같은 기록 가능 비휘발성 메모리, 하드 드라이브, 플로피 디스크, SIM 기반 컴포넌트 등을 포함할 수 있는, 장치(100)의 메모리(130)에 저장된 데이터 또는 애플리케이션들과 통신할 수 있다. 메모리 컴포넌트는 운영 체제(132), 및 장치(100)로 다운로드된 애플리케이션들과 같은 다양한 애플리케이션들(134) 등의 다양한 프로그램 컴포넌트들 또는 모듈들을 포함한다. 예를 들어, 메모리(130)는 장치 상에서 영속적으로 동작하는, 장치에 고유한 애플리케이션들(예를 들어, 가상 키보드를 제공하는 키보드 애플리케이션, 텍스트 메시징 애플리케이션 등)은 물론, 사용자에 의해 다운로드되고 장치에 의해 런칭되는 애플리케이션들(예를 들어, 소셜 네트워킹 사이트와 관련된 애플리케이션, 게임 등)을 저장할 수 있다.
예를 들어, 메모리(130)는 상황 키보드(150)와 같은 키보드 애플리케이션을 저장할 수 있다. 제스처 데이터베이스(152)를 포함할 수 있는 상황 키보드(150)는 일부 예들에서 키보드로 하여금 액션들을 수행하고 다른 애플리케이션들에 정보를 제공하는 것 등을 할 수 있게 해주는 기능과 같이 표준 키보드 애플리케이션들보다 많은 기능을 제공한다. 상황 키보드(150) 및 그의 기능에 관한 추가적인 상세들이 본 명세서에서 설명될 것이다.
메모리 컴포넌트(150)는 또한 사용자 데이터 데이터베이스(136), 또는 장치(100)에 의해 실행되는 애플리케이션들에 대한 정보를 제공 및/또는 저장하는 다른 데이터베이스들(139)과 같은 다양한 데이터 저장 컴포넌트들을 포함한다. 예를 들어, 사용자 데이터베이스(136)는 콘택 정보, 가입자 정보, 인적 정보, 사용 정보, 경향 정보, 선호 정보 등과 같은, 장치(100)의 사용자와 관련된 정보를 저장할 수 있다.
일반적으로, 장치(100)는 특히, 액션들을 수행할 때 장치(100) 및/또는 상황 키보드(150)에 의해 요구되거나 사용되는 임의의 그리고 모든 컴포넌트들, 모듈들 또는 데이터 파일들을 저장하거나 포함할 수 있다.
도 1 및 본 설명은 상황 키보드가 구현될 수 있는 적절한 컴퓨팅 환경의 간단하고 일반적인 설명을 제공한다. 필요한 것은 아니지만, 시스템의 양태들은 범용 컴퓨터, 예를 들어 이동 장치, 서버 컴퓨터 또는 개인용 컴퓨터에 의해 실행되는 루틴들과 같은 컴퓨터 실행 가능 명령어들의 일반적 상황에서 설명된다. 관련 분야의 기술자들은 시스템이 인터넷 설비, (태블릿 컴퓨터 및/또는 개인용 휴대 단말기(PDA)를 포함하는) 핸드헬드 장치, 모든 방식의 셀룰러 또는 이동 전화, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그래밍 가능 소비자 전자 장치, 셋톱 박스, 네트워크 PC, 미니 컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다른 통신, 데이터 처리 또는 컴퓨터 시스템 구성들을 이용하여 실시될 수 있다는 것을 알 것이다. 사실상, 용어 "컴퓨터", "호스트", "호스트 컴퓨터", "이동 장치" 및 "핸드셋"은 일반적으로 본 명세서에서 서로 교체 가능하게 사용되며, 임의의 상기 장치 및 시스템은 물론, 임의의 데이터 프로세서를 지칭한다.
시스템의 양태들은 특히 본 명세서에서 상세히 설명되는 컴퓨터 실행 가능 명령어들 중 하나 이상을 실행하도록 프로그래밍되거나, 구성되거나, 구축된 특수 목적 컴퓨팅 장치 또는 데이터 프로세서에서 구현될 수 있다. 시스템의 양태들은 또한 근거리 네트워크(LAN), 광역 네트워크(WAN) 또는 인터넷과 같은 통신 네트워크를 통해 링크되는 원격 처리 장치들에 의해 작업들 또는 모듈들이 실행되는 분산형 컴퓨팅 환경들에서 실시될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈들은 근거리 및 원격 메모리 저장 장치들 양쪽에 배치될 수 있다.
시스템의 양태들은 자기적으로 또는 광학적으로 판독 가능한 컴퓨터 디스크, 하드-와이어드(hard-wired) 또는 사전 프로그래밍된 칩(예로서, EEPROM 반도체 칩), 나노 기술 메모리, 생체 메모리 또는 다른 데이터 저장 매체를 포함하는 컴퓨터 판독 가능 매체들(예를 들어, 물리 및/또는 유형 컴퓨터 판독 가능 저장 매체들) 상에 저장 또는 배포될 수 있다. 사실상, 컴퓨터 구현 명령어들, 데이터 구조들, 스크린 디스플레이들, 및 시스템의 양태들 하의 다른 데이터는 인터넷을 통해 또는 (무선 네트워크를 포함하는) 다른 네트워크들을 통해, 소정 기간에 걸쳐 전파 매체의 전파 신호(예로서, 전자기파(들), 음파 등) 상에서 배포될 수 있거나, 임의의 아날로그 또는 디지털 네트워크(패킷 교환, 회선 교환 또는 다른 방식) 상에서 제공될 수 있다. 관련 분야의 기술자들은, 시스템의 부분들이 서버 컴퓨터 상에 상주하는 반면에 대응하는 부분들이 이동 또는 휴대용 장치와 같은 클라이언트 컴퓨터 상에 상주하고, 따라서 본 명세서에서는 소정의 하드웨어 플랫폼들이 설명되지만, 시스템의 양태들은 네트워크 상의 노드들에 동일하게 적용될 수 있다는 것을 인식할 것이다. 대안 실시예에서, 이동 장치 또는 휴대용 장치는 서버 부분을 나타낼 수 있는 반면에 서버는 클라이언트 부분을 나타낼 수 있다.
상황 키보드
본 명세서에서 설명되는 바와 같이, 일부 예들에서, 상황 키보드 또는 상황 키보드 애플리케이션은 이동 장치의 사용자가 컴퓨팅 장치의 터치스크린 또는 다른 사용자 인터페이스를 통해 사용자에게 제공되는 키보드를 통해 액션들을 수행하는 것을 가능하게 한다. 즉, 일부 예들에서, 상황 키보드는, 수신된 텍스트 또는 다른 입력(예를 들어, 제스처)을 처리 명령들로서 인식하고, 이러한 명령들이 수행되는 컴퓨팅 장치의 애플리케이션 환경에서 객체들을 검출하는 컴퓨팅 장치의 키보드 애플리케이션이다. 따라서, 상황 키보드는 이중 기능, 즉 사용자로부터의 텍스트의 입력을 용이하게 하는 제1 기능 및 키보드를 통해 입력된 명령들(예를 들어, 단어 매크로 또는 제스처)에 기초하여 액션들을 수행하는 제2 기능을 수행할 수 있다.
키보드는 기능을 추가하기 위한 유용한 장소이다. 통상적으로, 키보드는 컴퓨팅 장치 및 그의 다양한 애플리케이션들을 사용할 때 종종 또는 항상 액세스 가능한 소프트웨어의 계층이다. 따라서, 키보드 내에 또는 그와 연관된 다른 기능을 추가하는 것은 장치 상의 애플리케이션들 사이의 쉽거나 간단한 내비게이션, 향상된 사용자 인터페이스 능력 및 다른 이익들과 같은 많은 이익을 제공할 것이다. 예를 들어, 키보드는 정보 교환 매체로서 기능하여, 사용자들로 하여금 그들의 장치 상에 또는 그들의 장치가 통신하는 위치들에 상주하는 데이터에 액세스하고, 그러한 정보를 장치 상에서 실행되는 애플리케이션들 또는 다른 프로그램들과 교환하는 것을 가능하게 할 수 있다. 이제, 그러한 기술들을 수행할 수 있는 상황 키보드의 다양한 컴포넌트들이 설명된다.
도 2는 컴퓨팅 장치의 키보드 애플리케이션(150)의 컴포넌트들을 나타내는 블록도를 도시한다. 때로는 "상황 키보드"로서 지칭되는 키보드 애플리케이션(150)은 입력을 수신하고 텍스트 스트링을 생성하도록 구성되는 입력 모듈(210), 계층 또는 컴포넌트, 및 입력을 수신하고, 수신된 입력과 관련된 하나 이상의 액션을 수행하거나 수행하게 하도록 구성되는 액션 모듈(220), 계층 또는 컴포넌트를 포함한다. 일부 예들에서, 키보드 애플리케이션(150)은 제스처, 액션 가능 단어(예를 들어, 단어 매크로), 수행할 액션과 관련된 정보 및/또는 다른 정보를 저장하는 데이터베이스(152)와 같은 데이터베이스(152)를 포함한다.
일부 예들에서, 입력 모듈(210)은 텍스트 입력 기능, 키 탭 기능, 스와이프, 제스처 및/또는 접촉 이동 기능, 또는 사용자로부터의 텍스트 기반 입력의 수신을 용이하게 하는 임의의 다른 기능을 제공할 수 있는 컴포넌트들과 같은 전통적인 키보드 애플리케이션들의 컴포넌트들을 포함한다. 입력 모듈(210)은 컴퓨팅 장치(100)로 하여금 터치스크린(120)을 통해 키보드를 표시하고, 터치스크린(120)을 통해 제공된 표시된 키보드를 통해 입력을 수신하게 할 수 있다. 키보드는 물리 키보드, 또는 터치 감지 표면 상에 구현되는 임의의 키보드, 터치 감지 디스플레이 상에 제공되는 키보드, 터치 감지 표면 상에 인쇄되는 키보드 등과 같은 가상 키보드일 수 있다. 예시적인 키보드는 모니터 상에 표시된 키보드, 터치스크린 상에 표시된 키보드, 평면 또는 곡면 상에 광학적으로 투영된 키보드, 또는 키들 내에 통합된 전자적으로 변경 가능한 키 심벌들을 갖는 물리 키보드 등을 포함한다. 일부 예들에서, 키보드는 소정 종류의 포인팅 장치 또는 제스처 인식기로 제어되는 스크린 또는 프로젝션과 같이 "가상적으로" 터치될 수 있다. 입력 모듈(210)에 의해 제공되는 적절한 텍스트 입력 애플리케이션들에 관한 추가적인 상세들은 SYSTEM AND METHOD FOR A USER INTERFACE FOR TEXT EDITING AND MENU SELECTION이라는 제목으로 2009년 6월 2일자로 허여된, 일반 양도된 미국 특허 제7,542,029호에서 발견될 수 있으며, 이 특허는 그 전체가 참고로 포함된다.
일부 예들에서, 입력 모듈(210)에 의해 제공되는 텍스트 입력 애플리케이션은 사용자가 텍스트를 입력하고 있을 때 입력 텍스트에 대해 인식 및/또는 명확화 기술들을 수행할 수 있다. 예를 들어, 입력 모듈(210)은 사용자가 가상 키보드 상에서 연속 경로를 그릴 때 텍스트 입력을 수신하는 텍스트 입력 애플리케이션을 제공할 수 있다. 그러한 텍스트 입력 애플리케이션은 SYSTEM AND METHOD FOR CONTINUOUS STROKE WORD-BASED TEXT INPUT이라는 제목으로 2006년 8월 29일자로 허여된 미국 특허 제7,098,896호에 더 상세히 설명되어 있으며, 이 특허는 그 전체가 참고로 포함된다.
일부 예들에서, 액션 모듈(220)은 수신된 입력을 액션을 수행하기 위한 명령으로서 인식하도록 구성되는 컴포넌트들 및 텍스트 스트링에 통상적으로 추가되는 텍스트 입력으로서가 아니라 액션을 수행하거나 수행하게 하도록 구성되는 컴포넌트들을 포함한다. 도 3은 키보드 애플리케이션의 액션 모듈(220)의 컴포넌트들을 나타내는 블록도를 도시한다.
액션 모듈(220)은 특히, 키보드 애플리케이션에 의해 수신된 입력을 수신, 모니터링 및/또는 검토하도록 구성되는 입력 컴포넌트(310), 하나 이상의 액션이 수신된 입력과 관련된 것을 결정하도록 구성되는 액션 결정 컴포넌트(320), 수신된 입력과 관련된 상황을 식별 및/또는 결정하도록 구성되는 상황 컴포넌트(330), 결정된 하나 이상의 액션을 수행하거나 수행하게 하도록 구성되는 액션 수행 컴포넌트(340), 수신된 입력 및/또는 수행할 액션들과 관련된 정보를 저장하는 데이터베이스(350), 및/또는 키보드 애플리케이션(150)의 입력 모듈(210)의 다른 컴포넌트들과 통신하는 컴포넌트들과 같이 액션 모듈(220)의 동작을 용이하게 하는 다른 컴포넌트들을 포함한다. 입력 모듈(210), 액션 모듈(220) 및/또는 모듈들 내의 다양한 컴포넌트들의 동작에 관한 추가적인 상세들은 본 명세서에서 설명되는 다양한 루틴들과 관련하여 설명된다.
일부 예들에서, 입력 모듈(210)은 액션을 수행하기 위한 명령과 관련된 것으로서의 입력의 인식을 용이하게 하는 정보와 같은 정보를 액션 모듈(220)에 제공할 수 있다. 예를 들어, 입력 모듈(210)은 사용자가 텍스트를 입력할 때 인식 및/또는 명확화 기술들을 이용하여 사용자의 의도를 식별할 수 있다. 그러한 기술들은 부분적으로 입력된 텍스트가 통상의 텍스트로서 활성 애플리케이션으로 출력되기 전에 텍스트를 가능한 명령으로서 식별하고, 그러한 정보를 액션 모듈(220)에 제공할 수 있다. 따라서, 액션 모듈(220)은 여러 이익 중에서 소정의 다른 액션을 수행하기 위해 텍스트를 활성 애플리케이션으로 전송하기 전에 텍스트를 인터셉트할 수 있다.
본 명세서에서 설명되는 바와 같이, 일부 예들에서, 상황 키보드(150)는 다양한 형태의 입력을 수행 가능 액션들과 연관시킨다. 예를 들어, 상황 키보드(150)는 액션 모듈(220)의 액션 결정 컴포넌트(320)를 통해 사용자에 의한 텍스트 입력의 스트링 내의 하나 이상의 "단어 매크로"를 식별할 수 있다. 단어 매크로는 수행될 액션과 같은, 명령과 관련된 텍스트 스트링이다. 일부 예들에서, 단어 매크로는 키보드에 의해 수신될 가능성이 없는 텍스트 스트링(예를 들어, "emz")이다. 일부 예들에서, 단어 매크로는 사용자의 언어의 통상의 단어 또는 단어들(예로서, "email")과 유사한 텍스트 스트링이다. 종종, 단어 매크로는 소정량의 텍스트 입력이 키보드를 통해 수신 또는 선택된 후에 또는 그 동안에 수신될 것이다. 액션 모듈(220)은 입력이 단어 매크로인지 또는 통상의 텍스트인지를 결정할 때 선택된 텍스트 입력을 "시드"로서 사용할 수 있다. 텍스트 입력의 시드로서의 사용은 본 명세서에 더 상세히 설명된다.
다른 예로서, 상황 키보드(150)는 액션 모듈(220)의 액션 결정 컴포넌트(320)를 통해 하나 이상의 "제스처"가 사용자로부터 키보드 애플리케이션(150)을 통해 수신된 것을 식별할 수 있다. 제스처는 키보드 상에서 데이터를 입력하기 위해, 애플리케이션들과 상호작용하기 위해 그리고/또는 다양한 다른 사용자 의도들을 지시하기 위해 스크린을 가로지르는 손가락(또는 스타일러스)의 이동이다. 예를 들어, 제스처는 가상 키보드 상에서 또는 그를 통해 그려지는 경로, 가상 키보드 상에서 또는 그를 통해 그려지는 형상, 및/또는 가상 키보드 상의 또는 그를 통한 다른 움직임들일 수 있다. 일부 예들에서, 키보드 애플리케이션(150)은 사용자와 키보드 사이의 어떠한 접촉 없이도 제스처를 수신할 수 있다. 예를 들어, 수신 제스처는 장치(100) 내의 자이로스코프에 의해 검출되는 장치(100)의 소정의 움직임, 또는 장치(100)의 카메라에 의해 검출되는 가상 디스플레이 위의 포인터의 움직임일 수 있다.
액션 모듈(220)은 다양한 단어 매크로들 및/또는 제스처들과 관련된 정보를 매크로/제스처 데이터베이스(350) 또는 제스처 데이터베이스(152)와 같은 데이터베이스에 저장할 수 있다. 저장된 정보는 단어 매크로를 수행 가능 액션과 연관시키는 정보, 제스처를 수행 가능 액션과 연관시키는 정보, 사용자 설정과 연관된 정보(예를 들어, 사용자의 계정 정보 또는 사용자의 선호 정보) 등을 포함할 수 있다. 그러한 정보는 여러 이익 중에서 액션 모듈(220)이 키보드 애플리케이션(150)을 통한 장치(100) 내로의 통상의 텍스트 입력 동안에 수신된 명령들에 기초하여 액션들을 결정하고 수행하는 것을 가능하게 할 수 있다.
도 4는 키보드 애플리케이션을 통해 액션을 수행하기 위한 루틴(400)을 나타내는 흐름도이다. 단계 410에서, 컴퓨팅 장치의 상황 키보드는 장치의 키보드를 통해 입력을 수신한다. 예를 들어, 액션 모듈(220)의 입력 컴포넌트(310)는 상황 키보드에서의 접촉 이벤트들을 모니터링하고, 접촉 이벤트와 관련된 입력을 수신한다. 수신된 입력은 단어 매크로, 제스처 또는 다른 입력의 형태일 수 있다.
예를 들어, 상황 키보드는 사용자로 하여금 어떤 액션을 수행할지를 상황 키보드에 알리는 제스처를 수행하고, 수행할 사용자 선택 가능 액션들의 메뉴를 내보내는 제스처를 수행하고, 어떤 액션을 수행할지를 선택하기 위해 제스처를 수행하고 키보드를 사용하며, 그리고/또는 키보드를 사용하여 "단어 매크로"를 타이핑하는 것 등을 가능하게 한다.
단계 420에서, 상황 키보드는 하나 이상의 수행될 액션을 수신된 입력과 관련된 것으로서 식별한다. 예를 들어, 액션 모듈(220)의 액션 결정 컴포넌트(320)는 수신된 입력이 데이터베이스(350)에 저장되고 수행될 액션과 관련된 것을 식별 및/또는 결정한다. 식별된 액션들은 정보 검색, 정보에 대한 링킹, 정보 저장, 정보 포스팅, 애플리케이션 런칭 등과 관련될 수 있다.
일부 예들에서, 상황 키보드는 수행할 액션들을 사용자가 작업하고 있거나 장치 상에서 현재 사용중인 애플리케이션 또는 다른 컴퓨팅 환경에 고유한 수신 입력에 연관시킬 수 있다. 즉, 소정의 단어 매크로들 및/또는 제스처들은 애플리케이션에 고유하고, 단지 그 애플리케이션 내의 단어 매크로들 또는 제스처들인 것으로 간주될 수 있다. 예를 들어, 텍스트 편집기 애플리케이션은 문서를 인쇄하거나 pdf 버전으로 렌더링하기 위한 액션을 수행하는 것과 관련된 제스처들을 지원할 수 있는 반면, 다른 애플리케이션들은 그러한 제스처를 지원하지 않을 수 있다.
일부 예들에서, 상황 키보드는 둘 이상의 액션이 수신된 입력과 관련된 것을 식별할 수 있다. 예를 들어, 수신된 단어 매크로 "email"에 응답하여, 액션 결정 컴포넌트(320)는 사용자의 개인 이메일 계정을 이용하여 이메일을 전송하는 것과 관련된 제1 액션은 물론, 사용자의 회사 이메일 계정을 이용하여 이메일을 전송하는 것과 관련된 제2 액션을 식별할 수 있다. 불명료를 해결하기 위하여, 상황 키보드는 특히, 수행될 이용 가능 액션들과 관련된 옵션들의 메뉴를 사용자에게 제공할 수 있거나, 다양한 상황 정보에 기초하여 수행될 가장 유망한 액션을 선택할 수 있다. 예를 들어, 상황 키보드는 사용자의 과거 선택 이력에 기초하여 추정을 행할 수 있으며, 추정을 행할지 또는 옵션을 선택하도록 사용자에 프롬프트(prompt)할지를 결정하고, 상황을 이용하여 추정을 돕고(예를 들어, 왼쪽에 번호를 갖는 "call"의 입력은 "액션을 취하시오 - 이 번호로 전화하세요"를 의미하는 것으로 추정될 수 있는 반면, 왼쪽에 "내가 할"을 갖는 "call"을 표시하는 것은 컨텐츠로서 의도될 수 있음), 기타 등등을 행할 수 있다.
단계 430에서, 상황 키보드는 수신된 입력과 관련된 식별된(또는 선택된) 액션을 수행하거나 개시한다. 예를 들어, 액션 모듈(220)의 액션 수행 컴포넌트(340)는 액션 결정 컴포넌트(320)에 의해 식별된 액션을 수행하거나 수행하게 한다. 액션의 수행은 애플리케이션이 런칭되게 하는 것, 예를 들어 텍스트 메시징 애플리케이션을 런칭하는 것, 입력된 텍스트를 웹사이트, 예를 들어 소셜 네트워킹 사이트로 전송하는 것, 정보를 로컬 데이터베이스에 저장하는 것, 예를 들어 입력된 텍스트를 사용자의 콘택 데이터베이스에 저장하는 것, 입력된 텍스트를 증대시키는 것, 예를 들어 링크, 맵, 이미지 및/또는 다른 상황을 메시지에 추가하는 것 등을 포함할 수 있다.
즉, 일부 예들에서, 상황 키보드는 컴퓨팅 장치의 런타임 시스템 또는 환경에서 애플리케이션들이 실행되게 하는 액션들을 수행한다. 예를 들어, 수행되는 액션은 키보드 애플리케이션에서 시작될 수 있으며, 런타임 시스템 내의 애플리케이션이 런칭되어, 인터넷을 통해 웹사이트에 액세스하고, 셀룰러 통신 채널을 통해 메시지를 전송하는 것 등과 같은 하나 이상의 작업을 수행하게 할 수 있다. 수행될 수 있는 예시적인 액션들은 다음을 포함한다.
컴퓨팅 장치 상에서 실행되는 관련 애플리케이션을 통해 질의를 검색 엔진으로 전송하는 액션;
컴퓨팅 장치 상에서 실행되는 관련 애플리케이션을 통해 정보를 웹사이트(예를 들어, 소셜 네트워크, 온라인 공동체, 마이크로블로그 등)로 포스팅하는 액션;
로컬 또는 원격 데이터베이스 내에 정보를 저장하는 액션;
메시지 또는 다른 정보를 수신자에게 전송하는 액션;
콘텐츠를 검색하고, 검색 콘텐츠로 이메일 메시지 내의 텍스트와 같은 텍스트를 갱신하는 액션; 또는
주문을 하거나 갱신하고, 아이템을 구매하는 것 등을 위해 웹사이트 또는 다른 네트워킹된 위치와 상호작용하는 액션.
따라서, 일부 예들에서, 상황 키보드는 컴퓨팅 장치의 표시된 키보드를 통해 사용자로부터 소정의 단어 매크로 또는 제스처가 수신될 때 컴퓨팅 장치에 의해 제공되는 다양한 애플리케이션들에서 또는 그들을 통해 수행되는 액션들과 같은 액션들의 수행을 용이하게 한다.
본 명세서에서 설명되는 바와 같이, 일부 예들에서, 사용자는 상황 키보드로 하여금 상황 키보드를 통해 입력된 텍스트 또는 애플리케이션을 통해 사용자에게 제공된 텍스트와 같은 통상의 텍스트와 관련된 액션을 수행하게 하기 위해 단어 매크로 또는 제스처를 입력한다. 예를 들어, 사용자는 상황 키보드를 통해 장치 내에 이전에 입력된 텍스트의 일부에 대해 또는 장치의 애플리케이션에 의해 제공된 페이지 또는 문서의 일부인 텍스트의 일부에 대해 액션을 수행하기를 원할 수 있다. 이 텍스트 부분은 상황 키보드에 대한 "시드"로서 기능할 수 있으며, 상황 키보드는 시드를 이용하여, 수신된 단어 매크로 또는 수신된 제스처에 응답하여 어떤 액션들을 수행할지를 결정할 수 있다.
상황 키보드에 의해 수행되는 기능들 중 다수는 시드들을 이용하거나 시드들에 의존한다. 시드들은 암시적이거나 명시적일 수 있다. 명시적 시드는 스크린 상의 가시적인 텍스트의 모두 또는 대부분, 또는 스크린 상의 가시적인 텍스트의 강조된 또는 선택된 부분일 수 있다. 암시적 시드는 이메일 메시지의 저자, 통화 로그 내의 전화 번호, 지리적 위치 등과 같은 현재 텍스트에서 이용 가능한 임의의 다른 타입의 정보일 수 있다.
일부 예들에서, 사용자는 텍스트의 일부가 시드로서 간주되어야 한다는 것을 명시적으로 지시한다. 예를 들어, 사용자는 텍스트의 일부를 강조하여, 텍스트가 상황 키보드에 의해 시드로서 사용되어야 한다는 것을 지시할 수 있다. 다른 명시적인 지시들은 단어 매크로 내의 텍스트의 부분 등을 포함하는 텍스트의 일부의 위치에서 또는 그 근처에서 제스처를 수행하는 것을 포함할 수 있다.
일부 예들에서, 상황 키보드는 텍스트의 일부 또는 다른 정보가 시드로서 사용되어야 하는지를 결정한다. 그러한 결정은 암시적 결정일 수 있는데, 그 이유는 상황 키보드가 시드로서 기능하는 가능한 상황에 기초하여 소정의 정보 또는 상황을 암시하기 때문이다. 예를 들어, 텍스트의 일부는 어드레스를 포함할 수 있으며, 상황 키보드는 어드레스가 수신된 제스처에 응답하여 어떤 액션들을 수행할지를 결정할 때 고려할 암시적 시드인 것으로 결정할 수 있다. 암시적 시드들은 사람, 장소 또는 물건을 지시하는 텍스트, 외국어 내의 텍스트, 사용자의 데이터베이스 내의 텍스트, 사용자에게 알려지지 않은 텍스트 등을 포함할 수 있다.
다른 예로서, 상황 키보드는 다른 정보를 수신된 명령에 응답하여 수행할 결정된 액션들에서 지원할 시드로서 간주할 수 있다. 예를 들어, 상황 키보드는 컴퓨팅 장치의 위치를 식별하는 정보, 현재 사용중인 애플리케이션과 관련된 정보, 현재 사용중인 애플리케이션의 콘텐츠와 관련된 정보, 이전에 수행된 액션들과 관련된 정보, 사용자 선호들과 관련된 정보 등과 같은 상황 정보를 고려할 수 있다.
도 5는 시드와 관련된 액션을 수행하기 위한 루틴(500)을 나타내는 흐름도이다. 단계 510에서, 상황 키보드는 장치의 키보드를 통해 입력을 수신한다. 수신된 입력은 단어 매크로, 제스처 또는 다른 입력의 형태일 수 있다.
단계 520에서, 상황 키보드는 수신된 입력이 시드 정보와 연관되는지를 결정한다. 예를 들어, 액션 모듈(220)의 상황 컴포넌트(330)는 시드의 명시적인 지시(예를 들어, 텍스트의 일부가 강조됨), 시드의 암시적인 지시(예를 들어, 전화 번호가 컴퓨팅 장치에서 사용중인 애플리케이션에 포함됨) 또는 이들의 조합들이 존재하는지를 결정할 수 있다.
단계 530에서, 상황 키보드는 수신된 입력 및 관련 시드 정보에 기초하여 수행될 하나 이상의 액션을 식별 및/또는 결정한다. 예를 들어, 액션 모듈(220)의 액션 결정 컴포넌트(320)는 둘 이상의 수행 가능한 액션(예를 들어, 정보 검색 및 콘택 데이터베이스 내의 정보 저장)이 수신된 제스처(예로서, 콘텐츠 검색을 위한 제스처)와 연관된 것을 식별하고, 시드 정보(예로서, 이메일 내에서 전화 번호가 강조됨)에 기초하여 액션들 중 하나(예로서, 콘택 데이터베이스 내의 정보 저장)를 선택할 수 있다.
단계 540에서, 상황 키보드는 수신된 입력 및 시드 정보와 관련된 식별된 액션을 수행하거나 개시한다. 예를 들어, 액션 모듈(220)의 액션 수행 컴포넌트(340)는 액션 결정 컴포넌트(320)에 의해 식별된 액션을 수행하거나 수행하게 한다(예를 들어, 강조된 전화 번호를 콘택 데이터베이스 내에 저장한다).
따라서, 일부 예들에서, 상황 키보드는 수신된 입력에 기초하여 그리고 시드 정보인 것으로 명시적으로 지시된 정보, 시드 정보인 것으로 암시적으로 결정된 정보 등과 같은 시드 정보에 기초하여 수행할 액션들을 결정한다. 따라서, 상황 키보드는 특히, 사용자가 그의 컴퓨팅 장치를 어떻게 사용하고 있는지와 관련된 명시적 또는 암시적 상황들에 기초하여 수행할 액션들을 적응시킬 수 있다.
일부 예들에서, 상황 키보드는 수신된 입력이 명령으로서 간주될지 또는 텍스트의 입력으로서 간주될지를 결정할 때 명시적 또는 암시적 시드 정보를 이용할 수 있다. 도 6은 입력된 텍스트가 명령인지 또는 텍스트 스트링의 일부인지를 결정하기 위한 루틴을 나타내는 흐름도이다.
단계 610에서, 상황 키보드는 컴퓨팅 장치의 키보드를 통해 입력을 수신한다. 예를 들어, 상황 키보드는 액션 모듈(220)의 입력 컴포넌트(310)를 통해 "전송"과 같은 가능한 단어 매크로를 포함하는 입력을 수신한다.
단계 620에서, 상황 키보드는 수신된 입력과 관련된 시드 정보를 수신한다. 예를 들어, 상황 키보드는 액션 모듈(220)의 상황 컴포넌트(330)를 통해 다양한 가능한 시드들, 예를 들어 사용자에 의해 입력된 다른 단어들, 컴퓨팅 장치의 위치, 사용자가 현재 보고 있는 웹페이지의 콘텐츠 등을 식별한다.
단계 630에서, 상황 키보드는 수신된 입력이 수행될 액션과 연관되는지를 결정한다. 즉, 상황 키보드는 시드 정보를 이용하여, 입력된 텍스트가 단어 매크로인지 또는 통상의 텍스트인지를 결정한다. 상황 키보드는 액션 모듈(220)의 액션 결정 컴포넌트(320)를 통해 시드 정보에 기초하여 입력된 텍스트가 수행할 액션과 연관된 것으로 결정할 수 있고, 루틴(600)은 단계 650으로 진행하며, 그렇지 않은 경우에는 루틴(600)은 단계 640으로 진행한다.
단계 640에서, 상황 키보드는 수신된 입력이 단어 매크로와 연관되지 않은 것으로 결정한 때 수신된 입력을 통상의 텍스트로서 입력한다. 예를 들어, 상황 키보드는 수신된 입력 "전송"이 사용자가 달력 엔트리에 기입하고 있었던 "엄마에게 카드를 보내는 것을 잊지 마라"와 같은 텍스트 스트링의 일부이었으므로 이를 단어 매크로가 아닌 것으로 결정하고, 스트링을 달력 엔트리에 입력한다.
650에서, 상황 키보드는 수신된 입력이 사실상 단어 매크로와 연관된 것으로 결정한 때 입력과 관련된 액션을 수행한다. 예를 들어, 상황 키보드는 수신된 입력 "전송"이 "오늘밤 게임에서 만나자!"의 텍스트 스트링이 입력된 후에 수신된 것으로 결정하고, 텍스트 스트링을 사용자의 친구에게 메시지로서 전송한다.
따라서, 상황 키보드는 사용자가 시드 또는 의도된 액션을 명시적으로 지시하는 것을 가능하게 하거나, 상황 키보드는 입력된 단어와, 입력된 단어를 특히 명령으로서 사용하기 위한 적절한 표적인 명시적 또는 암시적 시드의 존재 사이의 상관 관계를 결정함으로써 사용자의 의도를 자동으로 결정할 수 있다.
예를 들어, 명령의 성질에 따라, 상황 키보드는 처리 환경에서 가장 명시적인 현재 시드를 결정할 수 있다. 일부 예들에서, 상황 키보드는 둘 이상의 시드를 수신된 입력에 대한 가능한 표적으로서 식별하고, 원하는 시드의 사용자에 의한 선택을 용이하게 하기 위해 식별된 시드들을 제공 및/또는 표시할 수 있다. 상황 키보드는 가장 명시적인 것으로부터 최소로 명시적인 것으로 배열된 가능한 시드들의 메뉴, 가능한 시드들에 기초하는 가능한 액션들의 메뉴 등과 같은 다양한 방식으로 리스트를 제공할 수 있다.
따라서, 시스템은 제스처 또는 단어 매크로와 같은 수신된 입력에 의해 표적화된 시드에 기초하여 액션들의 수행을 용이하게 하는 상황 키보드를 제공할 수 있다. 다음은 상황 키보드에 의해 수신된 입력에 의해 표적화된 시드들에 기초하여 수행될 수 있는 예시적인 액션들의 리스트이다.
검색 엔진, 소셜 네트워킹 사이트 등에서의 콘텐츠의 검색과 같은 시드 내의 콘텐츠의 온라인 검색을 수행하는 액션;
시드의 콘텐츠와 관련된 웹사이트에 대한 링크를 생성하고, 링크를 메시지 내에 삽입하는 액션;
이메일 메시지 또는 텍스트 메시지와 같은 메시지를 시드의 콘텐츠로 채우고 메시지를 전송하는 액션;
시드의 콘텐츠와 관련된 전화 번호로 전화 통화를 행하는 액션;
지불 애플리케이션을 이용하여 시드와 관련된 개인 또는 사업체에 지불을 행하는 액션;
시드의 콘텐츠와 관련된 위치의 맵을 획득하는 액션;
이름 및 전화 번호와 같은 시드의 콘텐츠를 컴퓨팅 장치의 데이터베이스에 저장하는 액션; 또는
컴퓨팅 장치의 데이터베이스로부터 시드의 콘텐츠와 관련된 정보를 검색하는 액션 등.
물론, 이 분야의 통상의 기술자는 본 명세서에서 설명되는 시스템이 다른 액션들을 수행하고 다른 지시들을 시드로서 사용할 수 있다는 것을 인식할 것이다.
단어 매크로
본 명세서에서 설명되는 바와 같이, 일부 예들에서, 상황 키보드는 단어 매크로를 액션을 수행하기 위한 명령으로 사용한다. 도 7은 상황 키보드를 통해 입력된 텍스트에 기초하여 액션을 수행하기 위한 루틴(700)을 나타내는 흐름도이다. 단계 710에서, 상황 키보드는 컴퓨팅 장치의 키보드를 통해 텍스트 스트링을 수신한다. 텍스트 스트링은 상황 키보드에 의해 수행 및/또는 개시할 액션들과 관련된 단어 매크로, 하나 이상의 단어 또는 구일 수 있다.
단계 715에서, 상황 키보드는 옵션으로서 수신된 텍스트 스트링이 시드 정보와 연관된 것으로 결정한다. 예를 들어, 본 명세서에서 설명되는 바와 같이, 상황 키보드는 텍스트의 일부가 선택된 것으로 또는 텍스트의 일부가 시드를 지시하는 콘텐츠를 포함하는 것으로 결정할 수 있다.
단계 720에서, 상황 키보드는 수신된 텍스트 스트링(및 옵션으로서 수신된 시드 정보)과 관련된 하나 이상의 수행될 액션을 식별 및/또는 결정한다. 상황 키보드는 수신된 텍스트 스트링에 응답하여 수행할 액션들을 결정할 때 단어 매크로들, 시드들 및/또는 수행 가능 액션들을 연관시키는 테이블, 리스트 또는 다른 데이터 구조를 주시할 수 있다. 아래의 테이블(테이블 1)은 어떤 액션들을 수행할지를 결정하기 위해 상황 키보드에 의해 사용되는 예시적인 데이터 구조를 나타낸다.
단어 매크로 수행할 액션 시드?
전송 메시징 옵션들의 메뉴를 제공한다 아니오
검색 검색 엔진에서 콘텐츠를 검색한다
저장 정보를 데이터베이스에 저장한다
맵핑 애플리케이션에서 탐색한다
핑(사용자) 텍스트 메시지를 피고용자에게 보낸다
루시(사용자) 이메일을 딸에게 보낸다
테이블 1은 다양한 엔트리를 포함하며, 각각의 엔트리는 단어 매크로, 수행할 액션, 및 입력 텍스트가 단어 매크로인지를 결정하기 위해 시드가 필요한지와 관련된 정보를 저장한다. 예를 들어, "전송"의 텍스트 엔트리는 시드가 존재하는지에 관계없이 상황 키보드에 의해 "메시징 옵션들의 메뉴를 제공하는" 액션과 관련된 단어 매크로인 것으로 간주된다. 다른 예로서, "핑"의 텍스트 엔트리는 시드가 존재할 때 상황 키보드에 의해 "텍스트 메시지를 피고용자에게 보내는" 액션과 관련된 사용자 생성 단어 매크로인 것으로 간주된다. 물론, 테이블은 테이블 1에 명확히 표시되지 않은 다른 단어 매크로들 또는 액션들을 포함할 수 있다.
단계 740에서, 상황 키보드는 식별된 액션을 수행한다. 예를 들어, 이름 "Sepp Blatter"가 강조될 때 "검색"의 텍스트 스트링을 수신하는 것에 응답하여, 상황 키보드는 테이블 1을 이용하여 텍스트 스트링 "검색"이 검색을 수행하기 위한 액션과 관련된 단어 매크로인 것으로 결정하고, 검색 엔진에서 "Sepp Blatter"에 대한 정보의 검색을 수행한다.
따라서, 일부 예들에서, 상황 키보드는 키보드에 의해 수신된 통상의 텍스트가 컴퓨팅 장치에 의해 표시된 텍스트와 관련된 액션과 같은 액션을 수행하기 위한 명령일 수 있는 것으로 결정한다. 상황 키보드는 그러한 텍스트를 단어 매크로로서 간주하고 그에 따라 동작할 수 있다.
제스처
본 명세서에서 설명되는 바와 같이, 일부 예들에서, 상황 키보드는 제스처를 액션을 수행하기 위한 명령으로서 이용한다. 도 8은 키보드 애플리케이션을 통해 수신된 제스처와 관련된 액션을 수행하기 위한 루틴(800)을 나타내는 흐름도이다.
단계 810에서, 상황 키보드는 컴퓨팅 장치의 키보드를 통해 제스처를 수신한다. 제스처는 키보드를 가로지르는 소정의 이동, 예를 들어 키보드 상의 시작 키로부터 제2 키로의 이동, 키보드 상의 소정 키들을 가로지르는 경로, 형상, 피겨, 수기 문자 등일 수 있다.
단계 815에서, 상황 키보드는 옵션으로서 수신된 제스처가 시드 정보와 관련된 것으로 결정한다. 예를 들어, 본 명세서에서 설명되는 바와 같이, 상황 키보드는 텍스트의 일부가 선택되거나 텍스트의 일부가 시드를 지시하는 콘텐츠를 포함하는 것으로 결정할 수 있다.
단계 820에서, 상황 키보드는 수신된 제스처(및 옵션으로서 수신된 시드 정보)와 관련된 하나 이상의 수행될 액션을 식별 및/또는 결정한다. 상황 키보드는 수신된 제스처에 응답하여 수행할 액션들을 결정할 때 단어 제스처들, 시드들 및/또는 수행 가능 액션들을 연관시키는 테이블, 리스트 또는 다른 데이터 구조를 주시할 수 있다. 아래의 테이블(테이블 2)은 어떤 액션들을 수행할지를 결정하기 위하여 상황 키보드에 의해 사용되는 예시적인 데이터 구조를 나타낸다.
제스처 수행할 액션 시드?
박스 메시징 옵션들의 메뉴를 제공한다 아니오
밑줄 링크를 콘텐츠에 삽입한다
물음표 콘텐츠를 검색한다
시작 키로부터 T-W 키로 트윗을 전송한다
시작 키로부터 I 키로 이미지를 삽입한다 아니오
수기 "C" 콘택 리스트에 추가한다
테이블 2는 다양한 엔트리를 포함하며, 각각의 엔트리는 제스처, 수행할 액션, 및 제스처가 명령인지를 결정하기 위해 시드가 필요한지와 관련된 정보를 저장한다. 예를 들어, 밑줄의 제스처는 상황 키보드에 의해 강조 콘텐츠와 같은 시드 내의 콘텐츠에 대한 "링크를 콘텐츠에 삽입하는" 액션과 관련된 제스처인 것으로 간주된다. 다른 예로서, 키보드 상의 시작 키로부터 "I" 키로 그리는 제스처는 시드가 존재하는지에 관계없이 상황 키보드에 의해 "이미지를 삽입하는" 액션과 관련된 것으로 간주된다. 물론, 테이블은 테이블 2에 명확히 표시되지 않은 다른 단어 매크로들 또는 액션들을 포함할 수 있다.
단계 840에서, 상황 키보드는 식별된 액션을 수행한다. 예를 들어, 이메일 내의 이름 위에서 수기 "C"의 제스처를 수신하는 것에 응답하여, 상황 키보드는 테이블 2를 이용하여 제스처가 콘텐츠를 콘택 리스트에 추가하기 위한 액션과 관련된 것으로 결정하고, 이메일로부터의 이름 및 다른 관련 정보를 사용자에 대한 콘택 리스트에 추가한다.
따라서, 일부 예들에서, 상황 키보드는 키보드에서 수신된 제스처에 응답하여 액션을 수행할 수 있으며, 따라서 많은 이익 중에서 특히 사용자로 하여금 키보드 및 텍스트 입력으로부터 메시징 애플리케이션과 같은 다른 애플리케이션으로 결함 없이 이동하는 것을 가능하게 한다.
일부 예들에서, 상황 키보드는 특히 사용자 및/또는 사용자의 하나의 애플리케이션으로부터 다른 애플리케이션으로의 내비게이션에 대한 상황을 제공하는 메타데이터 또는 다른 정보와 같은 정보를 표적 애플리케이션에 제공하기 위해 제스처 기능을 사용 및/또는 채용할 수 있다. 도 9는 키보드 애플리케이션에 의해 수신된 제스처에 응답하여 정보를 표적 애플리케이션으로 전송하기 위한 루틴(900)을 나타내는 흐름도이다.
단계 910에서, 상황 키보드는 컴퓨팅 장치의 키보드를 통해 제스처를 수신한다. 본 명세서에서 설명되는 바와 같이, 제스처는 키보드를 가로지르는 소정의 이동, 예를 들어 키보드 상의 시작 키로부터 제2 키로의 이동, 키보드 상의 소정 키들을 가로지르는 경로, 형상, 피겨, 수기 문자 등일 수 있다.
단계 920에서, 상황 키보드는 수신된 제스처와 관련된 애플리케이션을 식별할 수 있다. 예를 들어, 상황 키보드는 액션 모듈(220)의 액션 결정 컴포넌트(320)를 통해 수신된 제스처가 사용자가 내비게이션하고 싶어하는 애플리케이션과 관련된 것으로 결정할 수 있다.
단계 930에서, 상황 키보드는 식별된 애플리케이션으로 전송될 정보를 결정한다. 예를 들어, 액션 모듈(220)의 상황 컴포넌트(330)는 애플리케이션의 현재 사용과 관련된 정보가 제스처와 관련된 식별된 애플리케이션으로 전송되어야 하는 것으로 결정할 수 있다.
단계 940에서, 상황 키보드는 결정된 정보의 식별된 애플리케이션으로의 전송을 개시한다. 예를 들어, 액션 모듈(220)의 액션 수행 컴포넌트(340)는 사용자에 대한 메타데이터와 같은 정보를 식별된 애플리케이션으로 전송하는 동안에 사용자를 식별된 애플리케이션으로 내비게이션한다. 그러한 정보의 전송은 특히 새로운 애플리케이션과 관련된 사용자 경험을 향상시킬 수 있는데, 그 이유는 새로운 애플리케이션이 제스처를 통해 사용자가 애플리케이션에 도달한 상황을 식별하는 정보를 수신하기 때문이다.
일례로서, 사용자가 로스앤젤레스 기반의 축구 클럽인 갤럭시에 대해 친구에게 이메일을 작성하고 있다. 사용자는 이메일 내에서 링크를 전송하기를 원한다. 사용자는 단어 "갤럭시"를 강조하고, 정보의 검색과 관련된 물음표의 제스처를 행한다. 상황 키보드는 제스처를 통해 검색 용어 "갤럭시"를, "축구" 및 "티켓"을 식별하는 이메일의 본문 내의 정보 및 사용자가 축구 선수임을 지시하는 정보와 같은 다른 정보와 함께 검색 엔진으로 전송한다. 검색 용어 및 추가 정보를 가진 검색 엔진은 더 표적화된 검색을 수행할 수 있으며, 축구 클럽 갤럭시와 관련된 결과들을 전송하고, 천문학과 관련된 결과들 또는 "갤럭시"라는 이름의 스마트폰들과 같은 다른 "갤럭시"의 반복들에 대한 결과들을 전송하지 않는다.
본 명세서에서 다양한 제스처들이 설명되었지만, 이 분야의 통상의 기술자는 상황 키보드가 키보드 상에서의 또는 그 근처에서의 사실상 모든 이동을 수행될 액션과 관련된 잠재적 제스처로서 인식할 수 있다는 것을 알 것이다. 일부 예들에서, 사용자는 상황 키보드에 의해 사용될 제스처들을 생성할 수 있다. 사용자 생성 제스처들은 이전에 제공된 제스처들을 대체할 수 있거나, 컴퓨팅 장치에 의해 제공되는 제스처들의 그룹을 증대시킬 수 있다.
일부 예들에서, 제스처들은 사용자에 의해 현재 사용되는 애플리케이션의 타입, 장치의 타입, 사용자 등에 고유하다. 즉, 제스처들의 그룹은 사용중인 애플리케이션, 장치의 타입, 사용자 선호 등에 기초하여 변경 또는 수정될 수 있다. 예를 들어, (전자 서적 애플리케이션과 같이) 텍스트를 판독하는 데 주로 사용되는 애플리케이션은 사용자에 의하여 판독되고 있는 서적 내의 다양한 부분들에 대한 주석과 관련된 추가적인 제스처들을 제공할 수 있다.
다른 예로서, 스마트폰에서 실행되는 애플리케이션은 스크린의 크기가 작으므로 다른 애플리케이션들의 런칭과 관련된 제한된 세트의 제스처들을 가능하게 할 수 있는 반면, 태블릿 장치에서 실행되는 동일 애플리케이션은 스크린의 크기 더 크므로 다른 애플리케이션들의 런칭과 관련된 풀 세트의 제스처들을 가능하게 할 수 있다.
따라서, 상황 키보드 등을 통해 키보드에 기능을 추가하는 것은 특히 사용자들로 하여금 시간 소모적이고 비효율적일 수 있는, 애플리케이션을 떠나거나 다양한 상이한 애플리케이션들 사이에서 내비게이션하는 것 없이도 그들이 사용하고 있는 애플리케이션 내의 콘텐츠에 대해 액션들을 수행하게 할 수 있다. 입력을 수신하는 애플리케이션들에 보편적인 키보드는 사용자들이 장치에 상주하는 다수의 애플리케이션에 걸쳐 액션들을 수행하는 허브로서 기능할 수 있으며, 따라서 이러한 사용자들에게 이들이 작업하거나 플레이하거나 통신하거나 이들의 장치들의 많은 상이한 능력을 이용할 수 있는 강력하고 효율적인 메커니즘을 제공할 수 있다.
상황 키보드의 설정 및 기능
본 명세서에서 설명되는 바와 같이, 상황 키보드(150)는 링크 삽입, 메시지 전송, 콘택 리스트 갱신 등과 같은 많은 상이한 액션을 수행한다. 사용자에게 유익한 경험을 제공하기 위하여, 상황 키보드는 상황 키보드가 본 명세서에서 설명되는 다양한 액션들을 어떻게 수행하는지를 지시하는 다양한 설정들을 포함할 수 있다. 상황 키보드 또는 상황 키보드를 지원하는 장치와 관련된 다양한 데이터베이스, 예를 들어 데이터베이스들(152 또는 350)에 저장될 수 있는 설정들은 다양한 액션들을 어떻게 수행할지에 대한 정보를 상황 키보드에 제공한다. 예를 들어, 상황 키보드는 설정들을 이용하여, 링크를 어떻게 삽입할지, 이미지를 어떻게 렌더링할지 등을 결정할 수 있다.
일부 예들에서, 설정들은 사용자에 의해 정의될 수 있다. 즉, 사용자는 키보드 상에서 입력될 때 상황 키보드로 하여금 선택된 텍스트와 관련된 탐색 동작 또는 다른 액션을 수행하게 하는 텍스트의 스트링들을 정의할 수 있다. 일부 예들에서 사용자에 의해 정의되는 예시적인 설정들은 다음을 포함한다.
링크들을 어떻게 제공할지, 예를 들어 HTML 내에서의 링크들의 렌더링, URL 단축 서비스 이용 등을 정의하는 설정;
사용자 데이터베이스를 어떻게 채울지, 예를 들어 전화 번호, 이메일 어드레스 등으로 채우는 것을 정의하는 설정;
어떤 검색 엔진을 사용할지 또는 선택들의 메뉴 내에 어떤 검색 엔진들을 제공할지를 정의하는 설정;
둘 이상의 액션이 수신된 제스처와 관련될 때 옵션들의 메뉴를 언제 제공할지를 정의하는 설정;
둘 이상의 액션이 수신된 제스처와 관련될 때 상황 키보드로 하여금 언제 적절한 액션을 선택하게 할지를 정의하는 설정; 또는
사용자 지정 제스처들, 단어 매크로들 및 다른 입력 기반 명령들 등을 정의하는 설정.
따라서, 상황 키보드는 제스처가 수행될 액션과 연관되는지를 결정할 때, 수행될 적절한 액션을 선택할 때 그리고/또는 수신된 입력에 응답하여 액션을 수행할 때 설정들을 이용한다.
상황 키보드에 의해 수행되는 프로세스들
본 명세서에서 설명되는 바와 같이, 상황 키보드는 콘텐츠 검색, 소셜 네트워킹 사이트로의 포스팅, 콘택 정보 저장 등과 같은 사용자의 다양한 작업들을 용이하게 할 수 있다. 아래의 시나리오들은 상황 키보드의 구현을 위한 예시적인 이용 사례들을 설명한다.
제1 시나리오 - 정보 검색
일부 예들에서, 상황 키보드는 제스처들을 이용하여, 사용자들로 하여금 그들이 읽거나 타이핑하고 있는 콘텐츠와 관련된 정보를 검색 및/또는 회수할 수 있게 해준다. 도 10a-10d는 정보 검색을 개시할 때 상황 키보드를 이용하여 수행되는 단계들을 나타내는 스크린 샷들이다. 도 10a는 사용자에게 전송된 이메일 메시지의 스크린 샷(1000)을 나타낸다. 이메일 메시지는 메시지의 본문 내의 텍스트(1005)를 포함한다. 메시지를 읽는 동안, 사용자는 용어 "불고기(bulgoki)"에 대해 더 많이 알기를 원한다. 도 10b는 용어 "불고기"가 강조(1012)된 스크린 샷(1010)을 나타낸다. 강조되면, 사용자는 터치스크린 상에서 화살표를 그림으로써 화살표(1014)의 제스처를 입력한다. 상황 키보드는, 도 10c의 스크린 샷(1020)에는 도시되지 않지만, 사용자가 "불고기"에 대한 더 많은 정보를 검색하기를 원할 수 있는 옵션들의 온스크린 메뉴(1025)를 런칭한다. "구글" 옵션과 같은 옵션이 선택되면, 상황 키보드는 도 10d에 도시된 스크린 샷(1030)에 나타난 구글 웹사이트에서 (상황 키보드에 의해 시드로서 간주되는) "불고기"에 대한 정보의 검색을 개시한다. 스크린 샷(1030)은 검색의 다양한 결과들(1035)을 표시한다. 따라서, 일부 구현들에서, 상황 키보드는 많은 이익 중에서 특히 사용자로 하여금 이메일 또는 다른 문서를 읽는 동안에 제스처를 수행하여 이메일의 콘텐츠에 대해 더 많이 알 수 있게 해준다.
일부 예들에서, 상황 키보드는 단어 매크로들을 이용하여, 사용자들로 하여금 그들이 읽거나 타이핑하고 있는 콘텐츠와 관련된 정보를 검색 및/또는 회수할 수 있게 해준다. 도 11a-11c는 정보 검색을 개시할 때 상황 키보드를 이용하여 수행되는 단계들을 나타내는 스크린 샷들이다. 도 11a는 사용자에게 전송된 이메일의 스크린 샷(1100)을 나타낸다. 이메일 메시지는 메시지의 본문 내의 텍스트(1105)를 포함한다. 메시지를 읽는 동안, 사용자는 용어 "불고기"에 대해 더 많이 알기를 원한다. 도 11b는 용어 "불고기"가 강조(1112)된 스크린 샷(1110)을 나타낸다. 강조되면, 사용자는 표시된 키보드(1116) 상에서 "구글"의 텍스트 스트링(1114)을 입력한다. 상황 키보드는 입력 텍스트가 단어 매크로인 것으로 결정하고, 도 11c에 도시된 스크린 샷(1120)에 나타난 구글 웹사이트에서 "불고기"에 대한 정보의 검색을 개시한다. 스크린 샷(1120)은 검색의 다양한 결과들(1125)을 표시한다. 따라서, 일부 구현들에서, 상황 키보드는 많은 이익 중에서 특히 사용자로 하여금 이메일 또는 다른 문서를 읽는 동안에 표시된 키보드 상에서 단어 매크로를 제공하여 정보를 검색할 수 있게 해준다.
물론, 상황 키보드는 정보를 검색하도록 프롬프트될 때 다양한 상이한 옵션들을 제공할 수 있다. 본 예에서는 구글이 설명되지만, 다른 범용 검색 엔진(예를 들어, 빙(Bing), 야후 등), 소비자 비평 사이트(예를 들어, 옐프(Yelp)), 온라인 소매상(예를 들어, amazon.com), 콘텐츠 수집기, 블로그, 소셜 네트워킹 사이트 등과 같은 다른 검색 엔진들이 사용될 수 있다.
상황 키보드는 시드 내의 콘텐츠의 타입(예로서, 콘텐츠가 음식의 타입을 지시할 때, epicurious.com과 같은 음식 블로그가 선택됨), 사용자에 대한 이력 정보(예로서, 사용자는 항상 google.com을 선택함), 위치 정보(예로서, 사용자가 뉴욕에 있을 때, nyimes.com이 선택됨), 애플리케이션 환경(예를 들어, 사용자가 facebook.com에 있을 때, 페이스북 내에서 검색이 수행됨) 및/또는 다른 시드 또는 논(non)-시드 정보와 같은 다양한 팩터들에 기초하여 옵션들 중 하나 이상을 결정 및/또는 제안할 수 있다. 일부 예들에서, 상황 키보드는 사용자 정의 가능 옵션을 제공할 수 있다. 예를 들어, 도 10c의 메뉴(1025)는 사용자가 검색을 수행하기를 원하는 사이트를 입력할 수 있는 "새로 추가(add new)"를 위한 옵션을 포함한다.
제2 시나리오 - 텍스트 향상
일부 예들에서, 상황 키보드는 제스처들을 이용하여 사용자들로 하여금 그들이 읽거나 타이핑하고 있는 콘텐츠를 향상시킬 수 있게 해준다. 도 12a-12b는 링크 또는 다른 정보를 애플리케이션 내에 삽입할 때 수행되는 단계들을 나타내는 스크린 샷들이다. 도 12a는 장치에 의해 표시된 텍스트 메시징 애플리케이션 내에 입력되고 있는 텍스트 메시지의 스크린 샷(1200)을 나타낸다. 텍스트 메시지는 입력된 콘텐츠(1202) 및 상황 키보드가 시드로서 사용할 수 있는 강조된 콘텐츠(1204) "Tamarine"을 포함한다. 그려진 화살표의 제스처(1206)가 키보드에서 입력으로서 수신된다. 도 12b의 스크린 샷(1210)에 의해 도시된 바와 같이, 상황 키보드는 수신된 제스처(1206) 및 강조된 시드 콘텐츠에 응답하여 제스처(1206)가 콘텐츠, 식당 "Tamarine"에 대한 정보에 대한 링크를 검색하고 검색된 콘텐츠에 대한 링크(1214)를 메시지의 본문(1212) 내에 삽입하기 위한 액션과 관련되는 것으로 결정한다. 따라서, 일부 구현들에서, 상황 키보드는 많은 이익 가운데 특히 제스처들을 이용하여, 사용자로 하여금 이전에 작성된 또는 현재 작성되고 있는 콘텐츠를 링크들 및 다른 콘텐츠를 이용하여 향상시킬 수 있게 해준다.
일부 예들에서, 상황 키보드는 단어 매크로들을 이용하여, 사용자들로 하여금 그들이 읽거나 타이핑하고 있는 콘텐츠를 향상시킬 수 있게 해준다. 도 13a-13b는 링크 또는 다른 정보를 애플리케이션 내에 삽입할 때 수행되는 단계들을 나타내는 스크린 샷들이다. 도 13a는 장치에 의해 표시된 텍스트 메시징 애플리케이션 내에 입력되고 있는 텍스트 메시지의 스크린 샷(1300)을 나타낸다. 텍스트 메시지는 입력된 콘텐츠(1302) 및 상황 키보드가 시드로서 사용할 수 있는 강조된 콘텐츠(1304) "Tamarine"을 포함한다. "linkyelp"의 단어 매크로(1306)가 키보드에서 입력으로서 수신된다. 도 13b의 스크린 샷(1310)에 의해 도시된 바와 같이, 상황 키보드는 수신된 단어 매크로(1306) 및 강조된 시드 콘텐츠에 응답하여 단어 매크로(1306)가 웹사이트 yelp.com으로부터 콘텐츠, 식당 "Tamarine"에 대한 정보에 대한 링크를 검색하고 검색된 콘텐츠에 대한 링크(1314)를 메시지의 본문(1312) 내에 삽입하기 위한 액션과 관련되는 것으로 결정한다. 따라서, 일부 구현들에서, 상황 키보드는 많은 이익 가운데 특히 단어 매크로들을 이용하여, 사용자로 하여금 이전에 작성된 또는 현재 작성되고 있는 콘텐츠를 링크들 및 다른 콘텐츠를 이용하여 향상시킬 수 있게 해준다.
물론, 이 분야의 통상의 기술자는 상황 키보드가 메시지 내의 다양한 다른 콘텐츠 또는 텍스트 및/또는 콘텐츠의 다른 부분의 삽입 또는 대체를 용이하게 할 수 있다는 것을 알 것이다. 예를 들어, 콘텐츠에 대한 링크들에 더하여, 상황 키보드는 이미지, 비디오 파일, 오디오 파일, 문서, 추가 텍스트 콘텐츠 등의 삽입을 용이하게 할 수 있다. 예를 들어, 텍스트 구 "공용 테이블(communal table)"이 강조될 때 단어 매크로 "def"를 입력하는 사용자는 상황 키보드로 하여금 공용 테이블에 대한 정의를 메시지 내에 삽입하게 할 수 있다. 다른 예로서, 단어 "이력서(resume)"를 타이핑한 후에 원의 제스처를 입력하는 사용자는 상황 키보드로 하여금 타이핑되고 있는 메시지와 함께 사용자의 이력서의 pdf 파일을 첨부하게 할 수 있다.
상황 키보드는 사용자가 메시지의 텍스트를 입력하고 있는 동안에 정보를 검색하고 검색된 정보에 링크하는 것을 도울 수 있다. 도 14a-14d는 맵 또는 다른 정보를 애플리케이션 내에 삽입할 때 수행되는 단계들을 나타내는 스크린 샷들이다. 도 14a는 사용자가 메시징 애플리케이션 내에 텍스트(1402)를 입력하는 스크린 샷(1400)을 나타낸다. 상황 키보드는 단어 "스타벅스(Starbucks)"를 예상 및 강조하여(1404), 다수의 팩터(예로서, 문장의 신택스, 사용자의 이력)에 기초하여, 사용자가 스타벅스의 위치에 대한 정보를 메시지 내에 추가할 것으로 결정한다. 도 14b의 스크린 샷(1410)에 도시된 바와 같이, 사용자는 제스처 키로부터 "m" 키로의 경로를 그리는 제스처(1415)를 수행한다. 제스처(1415)에 응답하여, 상황 키보드는 사용자가 도 14c의 스크린 샷(1420)에 도시된 사용자의 영역 내의 스타벅스들의 위치들의 맵을 보려고 시도하고 있는 것으로 결정한다. 즉, 상황 키보드는 "스타벅스"의 시드, 수신된 제스처들 및 사용자의 장치의 위치 상황을 이용하여, 사용자가 근처의 스타벅스 커피 가게들의 맵을 요청하고 있는 것으로 결정하고, 맵(1425)을 사용자에게 제공한다. 사용자가 위치를 선택하면, 상황 키보드는 도 14d의 스크린 샷(1430)에 도시된 메시지(1432)를 선택된 위치의 어드레스 정보 및 그의 맵(1434)에 대한 링크를 이용하여 갱신한다.
따라서, 상황 키보드는 단어 매크로, 제스처, 또는 명령으로서 간주되는 다른 입력에 응답하여 어떤 액션들을 수행할지를 결정할 때 명시적 시드들(예를 들어, 사용자로부터 강조와 같은 수신된 입력에 의해 시드인 것으로 지시되는 단어들) 및/또는 암시적 시드들(예로서, 상황 키보드에 의한 결정에 기초하여 시드인 것으로 지시되는 단어들)을 이용할 수 있다.
제3 시나리오 - 정보 저장
일부 예들에서, 상황 키보드는 제스처들을 이용하여, 사용자들로 하여금 메시지들 내에서 수신된 콘텐츠, 웹페이지 상에서 읽는 콘텐츠 등과 같이 그들이 읽거나 타이핑하고 있는 콘텐츠 및 다른 정보를 저장할 수 있게 해준다. 도 15a-15b는 정보를 데이터베이스에 저장할 때 수행되는 단계들을 나타내는 스크린 샷들이다. 도 15a에서, 스크린 샷(1500)은 "Mike Jones"에 대한 콘택 정보(1502)를 포함하는 이메일 메시지를 나타낸다. 사용자는 정보를 그의 콘택 데이터베이스에 저장하기를 원하고, 키보드 상에서 수기 "C"의 제스처(1504)를 입력한다. 상황 키보드는 도 15b의 스크린 샷(1510)에 도시된 바와 같이 수신된 제스처(1504)가 정보를 저장하기 위한 액션과 연관되는 것으로 결정하고, 콘택 정보(1502)를 새로운 콘택(1515)으로서 사용자의 콘택 리스트에 삽입한다. 따라서, 일부 구현들에서, 상황 키보드는 많은 이익 가운데 특히 제스처들을 이용하여, 사용자로 하여금 사용자에게 제공되는 메시지들, 문서들 및 다른 텍스트로부터의 정보를 그의 장치에 저장할 수 있게 해준다.
일부 예들에서, 상황 키보드는 단어 매크로들을 이용하여, 사용자들로 하여금 메시지들 내에서 수신된 콘텐츠, 웹페이지 상에서 읽는 콘텐츠 등과 같이 그들이 읽거나 타이핑하고 있는 콘텐츠 및 다른 정보를 저장할 수 있게 해준다. 도 16a-16b는 정보를 데이터베이스에 저장할 때 수행되는 단계들을 나타내는 스크린 샷들이다. 도 16a에서, 스크린 샷(1600)은 "Mike Jones"에 대한 콘택 정보(1602)를 포함하는 이메일 메시지를 나타낸다. 사용자는 정보를 그의 콘택 데이터베이스에 저장하기를 원하고, 키보드 상에서 단어 "콘택(contacts)"을 작성함으로써 단어 매크로(1604)를 입력한다. 상황 키보드는 도 16b의 스크린 샷(1610)에 도시된 바와 같이 수신된 단어 매크로(1604)가 정보를 저장하기 위한 액션과 연관되는 것으로 결정하고, 콘택 정보(1602)를 새로운 콘택(1615)으로서 사용자의 콘택 리스트에 삽입한다. 따라서, 일부 구현들에서, 상황 키보드는 많은 이익 가운데 특히 단어 매크로들을 이용하여, 사용자로 하여금 사용자에게 제공되는 메시지들, 문서들 및 다른 텍스트로부터의 정보를 그의 장치에 저장할 수 있게 해준다.
콘택 정보에 더하여, 상황 키보드는 다른 타입의 정보를 사용자의 장치 내의 다양한 데이터베이스들 내에 저장하는 것을 용이하게 할 수 있다. 예를 들어, 사용자는 웹페이지에 의해 제공된 이벤트의 텍스트 설명을 선택하고, 입력 제스처 또는 단어 매크로를 통해 이벤트에 대한 사용자의 달력 내의 엔트리를 생성하도록 상황 키보드에 명령할 수 있다. 상황 키보드는 명령 입력의 수신에 응답하여 엔트리 내에 이미 채워진 이벤트 정보를 이용하여 사용자에 대한 달력 엔트리를 생성하기 위한 액션을 수행한다.
일부 예들에서, 상황 키보드는 키보드를 통해 수신된 명령들에 응답하여 장치 데이터베이스들에 이미 저장된 정보를 사용 및/또는 검색할 수 있다. 예를 들어, 사용자는 이메일을 타이핑하고 있고, 참조자에 대한 콘택 정보를 이메일에 삽입하기를 원할 수 있다. 이를 위해, 사용자는 참조자의 이름을 강조하고 "addcon"의 단어 매크로를 입력할 수 있으며, 이는 상황 키보드로 하여금 사용자의 콘택 리스트로부터 참조자의 콘택 정보를 검색하고 콘택 정보를 이메일 내에 삽입하게 한다.
일부 예들에서, 상황 키보드는 키보드를 통해 수신된 명령들에 응답하여 장치에 의해 측정, 감지 및/또는 획득된 정보를 이용 및/또는 검색할 수 있다. 그러한 정보는 지리 위치 정보(예를 들어, 경도 및 위도 정보), 상대 위치 정보(예로서, 소정의 경계표 또는 거리에 대한 사용자의 근접도), 온도 및 기타 기상 정보, 고도 정보, 속도 정보, 시간 정보, 장치의 카메라에 의해 획득된 이미지들 및 다른 데이터 등을 포함할 수 있다. 예를 들어, 전세계를 여행하는 사용자는 여행 동안 다양한 시간에 그의 부모에게 이메일을 전송할 수 있다. 상황 키보드를 이용하여 이메일을 작성할 때, 사용자는 상황 키보드로 하여금 장치로부터 검색하고 "The traveler is Bratislava, Slovakia. It is 34 degrees outside, with light rain"와 같은 소정의 정보를 이메일의 끝에 삽입하게 하는 제스처(예를 들어, 장치의 키보드 상에서 체크 마크를 그림)를 수행할 수 있다. 따라서, 상황 키보드는 많은 이익 가운데 특히 사용자로 하여금 다양한 타입의 정보를 탐색 또는 측정하게 하지 않고 그러한 정보의 추가를 용이하게 할 수 있어서, 사용자의 메시지들을 향상시키면서 사용자의 시간 및 노력을 줄일 수 있다.
제4 시나리오 - 정보 포스팅
일부 예들에서, 상황 키보드는 제스처들 또는 단어 매크로들을 이용하여, 사용자들로 하여금 콘텐츠 또는 다른 정보를 웹페이지, 블로그, 소셜 네트워크 사이트 등과 같은 다양한 위치들로 포스팅할 수 있게 해준다. 도 17a-17b는 정보를 웹사이트 또는 다른 위치로 포스팅할 때 수행되는 단계들을 나타내는 스크린 샷들이다. 도 17a는 사용자가 최근의 해리포터 영화의 짧은 비평과 같은 텍스트(1702)를 입력한 노트 패드 또는 다른 텍스트 편집기 애플리케이션의 스크린 샷(1700)을 나타낸다. 사용자는 이 메시지를 다양한 상이한 소셜 네트워크 사이트들 및 블로그들에 포스팅하기를 원하고, 이를 행하기 위해 키보드 상에서 제스처를 수행한다. 도 17a는 시작 키로부터 키들 "F-B"로의 경로를 그리는 제1 제스처(1704)를 나타낸다. 대안으로서, 사용자는 유사한 명령을 상황 키보드에 입력하기 위해 "페이스북"의 단어 매크로를 작성 또는 타이핑했을 수 있다. 상황 키보드는 제스처(1704)가 텍스트를 사용자의 페이스북 페이지로 포스팅하기 위한 액션과 연관되는 것으로 결정하고, 도 17b의 스크린 샷(1710)에 도시된 바와 같이 사용자의 상태(1715)를 그의 페이스북 페이지 상에서 갱신하거나 갱신을 개시한다.
이어서, 도 18a의 스크린 샷(1800)에 도시된 바와 같이, 사용자는 동일 메시지(1805)를 그의 트위터 피드에 포스팅하기를 원하며, 그를 행하기 위해 키보드 상에서 제스처, 즉 시작 키로부터 키들 "T-W"로의 경로를 그리는 제2 제스처(1804)를 다시 수행한다. 대안으로서, 사용자는 유사한 명령을 상황 키보드에 입력하기 위해 "tw"의 단어 매크로를 작성 또는 타이핑했을 수 있다. 상황 키보드는 제스처(1804)가 텍스트를 사용자의 트위터 피드에 포스팅하기 위한 액션과 연관된 것으로 결정하고, 도 18b의 스크린 샷(1810)에 도시된 바와 같이 사용자의 피드(1815)를 그의 트위터 페이지 상에서 갱신하거나 갱신을 개시한다.
따라서, 일부 구현들에서, 상황 키보드는 많은 이익 가운데 특히 단어 매크로들 및 제스처들을 이용하여, 사용자에게 각각의 상이한 위치 또는 웹사이트에 대한 애플리케이션들을 런칭할 것을 요구하지 않고 사용자로 하여금 정보를 사용자의 소셜 네트워크(예를 들어, 페이스북 페이지, 트위터 계정, 구글+ 페이지, 링크드인(Linkedin) 프로파일 등) 내의 위치들과 같은 다양한 웹사이트들 및 다른 위치들로 포스팅할 수 있게 해준다.
결론
상황이 명확히 달리 요구하지 않는 한, 명세서 및 청구항들 전반에서, 단어 "포함한다", "포함하는" 등은 배타적 또는 포괄적인 의미가 아니라 포함의 의미로서, 즉 "포함하지만, 한정되지 않는다"는 의미로 해석되어야 한다. 본 명세서에서 사용될 때, 용어 "접속", "결합" 또는 이들의 임의의 변형은 둘 이상의 요소 사이의 직접 또는 간접적인 임의의 접속 또는 결합을 의미하며, 요소들 사이의 결합 또는 접속은 물리적, 논리적 또는 이들의 조합일 수 있다. 게다가, 단어 "여기서", "위", "아래" 및 유사한 의미의 단어들은 본원에서 사용될 때 본원의 임의의 특정 부분들이 아니라 본원의 전체를 참조해야 한다. 상황이 허락하는 경우, 단수 또는 복수를 사용하는 위의 상세한 설명 내의 단어들은 각각 복수 또는 단수도 포함할 수 있다. 둘 이상의 아이템의 리스트를 참조하는 단어 "또는"은 단어의 다음의 해석들의 전부, 즉 리스트 내의 임의의 아이템, 리스트 내의 모든 아이템 및 리스트 내의 아이템들의 임의 조합을 포함한다.
시스템의 실시예들의 전술한 설명은 포괄적인 것을 또는 시스템을 위에 개시된 바로 그 형태로 한정하는 것을 의도하지 않는다. 시스템의 특정 실시예들 및 그에 대한 예들이 설명의 목적을 위해 위에서 설명되었지만, 관련 분야의 기술자들이 인식하듯이, 시스템의 범위 내에서 다양한 균등한 변경들이 가능하다. 예를 들어, 프로세스들 또는 블록들이 소정의 순서로 제공되지만, 대안 실시예들은 단계들을 갖는 루틴들을 상이한 순서로 수행하거나, 블록들을 갖는 시스템들을 상이한 순서로 이용할 수 있으며, 일부 프로세스들 또는 블록들은 제거, 이동, 추가, 세분, 결합 및/또는 수정될 수 있다. 이러한 프로세스들 또는 블록들 각각은 다양한 상이한 방식으로 구현될 수 있다. 또한, 프로세스들 또는 블록들은 때때로 직렬로 수행되는 것으로 설명되지만, 이러한 프로세스들 또는 블록들은 병렬로 대신 수행될 수 있거나, 상이한 시간에 수행될 수 있다.
전술한 많은 실시예는 (가입자에게 제공되기 전에 또는 가입자 호출 동안에) 이동 장치 상에 저장된 소프트웨어를 이용하지만, 전술한 스크립트들 및 다른 소프트웨어는 이동 장치 내에 하드 코딩될 수 있다(예를 들어, EEPROM, PROM 등에 저장될 수 있다). 또한, 위의 기능은 스크립트 또는 다른 특수 모듈 없이도 구현될 수 있다.
본 명세서에서 제공되는 시스템의 가르침은 반드시 전술한 시스템이 아니라 다른 시스템들에 적용될 수 있다. 전술한 다양한 실시예들의 요소들 및 동작들은 추가적인 실시예들을 제공하도록 결합될 수 있다.
첨부된 출원서 내에 목록화될 수 있는 임의의 것들을 포함하는, 전술한 특허들 및 출원들 및 다른 참고 문헌들 모두는 참고로 포함된다. 시스템의 양태들은 필요한 경우에 시스템의 더 추가적인 실시예들을 제공하기 위해 전술한 다양한 참고 문헌들의 시스템들, 기능들 및 개념들을 이용하도록 변경될 수 있다.
이들 및 다른 변경들은 전술한 상세한 설명을 고려하여 시스템에 대해 이루어질 수 있다. 위의 설명은 시스템의 소정 실시예들을 상술하고, 고려되는 최상의 모드를 설명하지만, 위의 설명이 본문에 얼마나 상세하게 나타나는지에 관계없이, 시스템은 많은 방식으로 실시될 수 있다. 로컬 기반 지원 시스템의 상세들은 그의 구현 상세들에서 크게 변할 수 있지만, 본 명세서에서 개시되는 시스템에 여전히 포함될 수 있다. 전술한 바와 같이, 시스템의 소정의 특징들 또는 양태들을 설명할 때 사용되는 특정 용어는 용어가 그 용어와 관련된 시스템의 임의의 특정 특성들, 특징들 또는 양태들로 제한되도록 본 명세서에서 재정의된다는 것을 암시하는 것으로 간주되지 않아야 한다. 일반적으로, 아래의 청구항들에서 사용되는 용어들은 위의 상세한 설명 부분이 그러한 용어들을 명확히 정의하지 않는 한은 시스템을 명세서에 개시된 특정 실시예들로 한정하는 것으로 해석되지 않아야 한다. 따라서, 시스템의 실제 범위는 개시된 실시예들뿐만 아니라, 청구항들에 따른 시스템을 실시 또는 구현하는 모든 균등한 방법들도 포함한다.
시스템의 소정 양태들이 아래의 소정의 청구항 형태들에서 제공되지만, 본 발명자들은 임의 수의 청구항 형태들에서 시스템의 다양한 양태들을 고려한다. 예컨대, 시스템의 하나의 양태만이 컴퓨터 판독 가능 매체 내에 구현되는 것으로 기재되지만, 컴퓨터 판독 가능 매체 내에 다른 양태들도 구현될 수 있다. 따라서, 본 발명자들은 시스템의 다른 양태들을 위해 그러한 추가적인 청구항 형태들을 추구하기 위해 출원 후에 추가적인 청구항들을 추가할 권리를 보유한다.

Claims (20)

  1. 이동 장치용 키보드 시스템으로서,
    키보드 컴포넌트 - 상기 키보드 컴포넌트는 상기 이동 장치의 터치스크린을 통해 사용자에게 가상 키보드를 제시하도록 구성됨 -;
    텍스트 입력 컴포넌트 - 상기 텍스트 입력 컴포넌트는 상기 가상 키보드를 통해 텍스트 입력을 수신하고, 상기 수신된 텍스트 입력에 기초하여 텍스트 스트링을 갱신하도록 구성됨 -; 및
    액션 컴포넌트 - 상기 액션 컴포넌트는 상기 가상 키보드를 통해 수신된 입력과 관련된 하나 이상의 액션을 수행하도록 구성됨 -
    를 포함하는 키보드 시스템.
  2. 제1항에 있어서,
    상기 액션 컴포넌트는,
    입력 수신 컴포넌트 - 상기 입력 수신 컴포넌트는 상기 가상 키보드를 통해 수신된 입력을 수신하도록 구성됨 -;
    액션 결정 컴포넌트 - 상기 액션 결정 컴포넌트는 하나 이상의 액션이 상기 수신된 입력과 관련되는 것을 결정하도록 구성됨 -; 및
    액션 수행 컴포넌트 - 상기 액션 수행 컴포넌트는 상기 결정된 하나 이상의 액션이 수행되게 하도록 구성됨 -
    를 포함하는 키보드 시스템.
  3. 제1항에 있어서,
    상기 액션 컴포넌트는 상기 가상 키보드를 통해 수신된 텍스트 입력에 응답하여 하나 이상의 액션을 수행하도록 구성되는 키보드 시스템.
  4. 제1항에 있어서,
    상기 액션 컴포넌트는 상기 가상 키보드를 통해 수신된 제스처에 응답하여 하나 이상의 액션을 수행하도록 구성되는 키보드 시스템.
  5. 제1항에 있어서,
    상기 액션 컴포넌트는, 상기 가상 키보드를 통해 수신된 텍스트 입력 및 상기 이동 장치의 상기 터치스크린에 의해 표시된 시드 텍스트(seed text)에 응답하여 하나 이상의 액션을 수행하도록 구성되는 키보드 시스템.
  6. 제1항에 있어서,
    상기 액션 컴포넌트는, 상기 가상 키보드를 통해 수신된 제스처 및 상기 이동 장치의 상기 터치스크린에 의해 표시된 시드 텍스트에 응답하여 하나 이상의 액션을 수행하도록 구성되는 키보드 시스템.
  7. 제1항에 있어서,
    상기 액션 컴포넌트는 상기 이동 장치의 상기 터치스크린에 의해 표시된 텍스트에 기초하여 하나 이상의 액션을 수행하도록 구성되는 키보드 시스템.
  8. 제1항에 있어서,
    상기 액션 컴포넌트는 상기 이동 장치의 상기 터치스크린에 의해 표시된 강조된 텍스트(highlighted text)의 일부에 기초하여 하나 이상의 액션을 수행하도록 구성되는 키보드 시스템.
  9. 제1항에 있어서,
    상기 텍스트 입력 컴포넌트는, 상기 이동 장치의 사용자가 상기 가상 키보드의 키들을 두드릴 때 상기 가상 키보드를 통해 텍스트 입력을 수신하도록 구성되는 키보드 시스템.
  10. 제1항에 있어서,
    상기 텍스트 입력 컴포넌트는, 상기 이동 장치의 사용자가 상기 가상 키보드의 키들을 가로지르는 경로를 그릴(trace) 때 상기 가상 키보드를 통해 텍스트 입력을 수신하도록 구성되는 키보드 시스템.
  11. 컴퓨팅 장치의 프로세서에 의해 실행될 때 상기 컴퓨팅 장치로 하여금 상황 키보드(contextual keyboard)를 제공하게 하는 콘텐츠를 갖는 컴퓨터 판독 가능 저장 매체로서,
    상기 상황 키보드는,
    상기 컴퓨팅 장치에 의해 표시된 키보드를 통해 텍스트 입력을 수신하는 텍스트 입력 계층; 및
    상기 컴퓨팅 장치에 의해 표시된 상기 키보드를 통해 수신된 명령에 응답하여 하나 이상의 액션을 수행하는 액션 계층
    을 포함하는 컴퓨터 판독 가능 저장 매체.
  12. 제11항에 있어서,
    상기 액션 계층은 상기 컴퓨팅 장치에 의해 표시된 상기 키보드를 통해 수신된 단어 매크로(word macro)에 응답하여 하나 이상의 액션을 수행하는 컴퓨터 판독 가능 저장 매체.
  13. 제11항에 있어서,
    상기 액션 계층은 상기 컴퓨팅 장치에 의해 표시된 상기 키보드를 통해 수신된 제스처에 응답하여 하나 이상의 액션을 수행하는 컴퓨터 판독 가능 저장 매체.
  14. 제11항에 있어서,
    상기 액션 계층은, 상기 컴퓨팅 장치에 의해 표시된 상기 키보드를 통해 수신된 단어 매크로 또는 제스처에 응답하여 상기 컴퓨팅 장치에 의해 표시된 정보를 상기 컴퓨팅 장치의 데이터베이스에 저장하기 위한 하나 이상의 액션을 수행하는 컴퓨터 판독 가능 저장 매체.
  15. 제11항에 있어서,
    상기 액션 계층은, 상기 컴퓨팅 장치에 의해 표시된 상기 키보드를 통해 수신된 단어 매크로 또는 제스처에 응답하여 상기 수신된 텍스트 입력과 관련된 정보를 웹페이지로 포스팅하기 위한 하나 이상의 액션을 수행하는 컴퓨터 판독 가능 저장 매체.
  16. 제11항에 있어서,
    상기 액션 계층은, 상기 컴퓨팅 장치에 의해 표시된 상기 키보드를 통해 수신된 단어 매크로 또는 제스처에 응답하여 상기 수신된 텍스트 입력과 관련된 정보에 기초하여 콘텐츠에 대한 링크를 삽입하기 위한 하나 이상의 액션을 수행하는 컴퓨터 판독 가능 저장 매체.
  17. 제11항에 있어서,
    상기 액션 계층은 상기 컴퓨팅 장치에 의해 표시된 상기 키보드를 통해 수신된 단어 매크로 또는 제스처에 응답하여 정보를 검색하기 위한 하나 이상의 액션을 수행하는 컴퓨터 판독 가능 저장 매체.
  18. 이동 장치의 키보드 애플리케이션에 의해 수행되는 방법으로서,
    상기 키보드 애플리케이션의 가상 키보드를 통해 입력을 수신하는 단계;
    상기 수신된 입력이 상기 키보드 애플리케이션에 의해 수행될 액션과 관련된 것으로 결정하는 단계; 및
    상기 관련된 액션을 수행하는 단계
    를 포함하는 방법.
  19. 제18항에 있어서,
    상기 관련된 액션을 수행하는 단계는 상기 이동 장치 상에서 실행되는 개별 애플리케이션에 의해 수행될 액션을 개시하는 단계를 포함하는 방법.
  20. 제18항에 있어서,
    상기 수신된 입력은 텍스트 스트링 또는 제스처이고, 상기 수신된 입력이 상기 키보드 애플리케이션에 의해 수행될 액션과 관련된 것으로 결정하는 단계는, 상기 텍스트 스트링 또는 제스처가 상기 키보드 애플리케이션에 의해 수행될 하나 이상의 액션과 관련된 것으로 결정하는 단계를 포함하는 방법.
KR1020137016053A 2010-11-20 2011-11-18 상황 키보드를 이용한 컴퓨팅 장치 상에서의 액션 수행 KR20130143697A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US41582810P 2010-11-20 2010-11-20
US61/415,828 2010-11-20
PCT/US2011/061530 WO2012068544A2 (en) 2010-11-20 2011-11-18 Performing actions on a computing device using a contextual keyboard

Publications (1)

Publication Number Publication Date
KR20130143697A true KR20130143697A (ko) 2013-12-31

Family

ID=46063894

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020137016058A KR20140001957A (ko) 2010-11-20 2011-11-18 입력된 텍스트를 이용하여 상황 정보에 액세스하여 이를 처리하기 위한 시스템들 및 방법들
KR1020137016053A KR20130143697A (ko) 2010-11-20 2011-11-18 상황 키보드를 이용한 컴퓨팅 장치 상에서의 액션 수행
KR1020137016019A KR20130116295A (ko) 2010-11-20 2011-11-21 이동 장치의 키보드 애플리케이션과 같은 키보드 애플리케이션에 명령하기 위한 제스처들의 사용

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020137016058A KR20140001957A (ko) 2010-11-20 2011-11-18 입력된 텍스트를 이용하여 상황 정보에 액세스하여 이를 처리하기 위한 시스템들 및 방법들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020137016019A KR20130116295A (ko) 2010-11-20 2011-11-21 이동 장치의 키보드 애플리케이션과 같은 키보드 애플리케이션에 명령하기 위한 제스처들의 사용

Country Status (5)

Country Link
US (3) US9244610B2 (ko)
EP (3) EP2641146A4 (ko)
KR (3) KR20140001957A (ko)
CN (3) CN103827779B (ko)
WO (3) WO2012068544A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018074710A1 (ko) * 2016-10-18 2018-04-26 주식회사 한컴세이프티 가상키보드를 통해 손쉬운 문자 입력을 지원하는 터치스크린 전자 장치 및 그 동작 방법

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140001957A (ko) 2010-11-20 2014-01-07 뉘앙스 커뮤니케이션즈, 인코포레이티드 입력된 텍스트를 이용하여 상황 정보에 액세스하여 이를 처리하기 위한 시스템들 및 방법들
KR20130052745A (ko) * 2010-12-23 2013-05-23 한국전자통신연구원 제스처를 이용한 메뉴 제공 방법 및 이를 이용한 휴대 단말
US8572481B2 (en) * 2011-03-14 2013-10-29 Apple Inc. Device, method, and graphical user interface for displaying additional snippet content
US9094813B2 (en) 2011-04-02 2015-07-28 Open Invention Network, Llc System and method for redirecting content based on gestures
US10776103B2 (en) * 2011-12-19 2020-09-15 Majen Tech, LLC System, method, and computer program product for coordination among multiple devices
KR101932270B1 (ko) * 2012-01-04 2018-12-24 엘지전자 주식회사 이동 단말기 및 그 제어방법
US8902198B1 (en) * 2012-01-27 2014-12-02 Amazon Technologies, Inc. Feature tracking for device input
WO2013130682A1 (en) * 2012-02-27 2013-09-06 5 Examples, Inc. Date entry system controllers for receiving user input line traces relative to user interfaces to determine ordered actions, and related systems and methods
US20130239030A1 (en) * 2012-03-06 2013-09-12 Apple Inc. Application for publishing journals
US8667414B2 (en) * 2012-03-23 2014-03-04 Google Inc. Gestural input at a virtual keyboard
US9857889B2 (en) * 2012-06-29 2018-01-02 Samsung Electronic Co., Ltd Method and device for handling event invocation using a stylus pen
CN102893250B (zh) * 2012-07-13 2015-07-22 华为技术有限公司 确定操作对象的方法和终端
KR20140014510A (ko) * 2012-07-24 2014-02-06 삼성전자주식회사 음성 인식에 의하여 형성된 문자의 편집 방법 및 그 단말
US9495069B2 (en) * 2012-08-31 2016-11-15 Paypal, Inc. Expanded icon functionality
US8782549B2 (en) 2012-10-05 2014-07-15 Google Inc. Incremental feature-based gesture-keyboard decoding
US9021380B2 (en) 2012-10-05 2015-04-28 Google Inc. Incremental multi-touch gesture recognition
US8850350B2 (en) 2012-10-16 2014-09-30 Google Inc. Partial gesture text entry
US8977961B2 (en) * 2012-10-16 2015-03-10 Cellco Partnership Gesture based context-sensitive functionality
US8701032B1 (en) 2012-10-16 2014-04-15 Google Inc. Incremental multi-word recognition
US8843845B2 (en) 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
US9557818B2 (en) * 2012-10-16 2017-01-31 Google Inc. Contextually-specific automatic separators
US8819574B2 (en) 2012-10-22 2014-08-26 Google Inc. Space prediction for text input
CN103092511B (zh) * 2012-12-28 2016-04-20 北京百度网讯科技有限公司 移动终端的输入方法、装置和移动终端
US8832589B2 (en) 2013-01-15 2014-09-09 Google Inc. Touch keyboard using language and spatial models
US20140208274A1 (en) * 2013-01-18 2014-07-24 Microsoft Corporation Controlling a computing-based device using hand gestures
US10976922B2 (en) * 2013-02-17 2021-04-13 Benjamin Firooz Ghassabian Data entry systems
US10649619B2 (en) * 2013-02-21 2020-05-12 Oath Inc. System and method of using context in selecting a response to user device interaction
US9799005B2 (en) * 2013-03-07 2017-10-24 Samsung Electronics Co., Ltd. Computing system with contextual interaction mechanism and method of operation thereof
US9477645B2 (en) * 2013-03-13 2016-10-25 Sap Se Systems and methods of active text markup
US8887103B1 (en) 2013-04-22 2014-11-11 Google Inc. Dynamically-positioned character string suggestions for gesture typing
US9081500B2 (en) 2013-05-03 2015-07-14 Google Inc. Alternative hypothesis error correction for gesture typing
US20140365878A1 (en) * 2013-06-10 2014-12-11 Microsoft Corporation Shape writing ink trace prediction
CN103390060A (zh) * 2013-07-30 2013-11-13 百度在线网络技术(北京)有限公司 基于移动终端的歌曲推荐方法与装置
US9277354B2 (en) * 2013-10-30 2016-03-01 Sprint Communications Company L.P. Systems, methods, and software for receiving commands within a mobile communications application
US9500867B2 (en) 2013-11-15 2016-11-22 Kopin Corporation Head-tracking based selection technique for head mounted displays (HMD)
US9383816B2 (en) * 2013-11-15 2016-07-05 Kopin Corporation Text selection using HMD head-tracker and voice-command
US9904360B2 (en) 2013-11-15 2018-02-27 Kopin Corporation Head tracking based gesture control techniques for head mounted displays
US10209955B2 (en) 2013-11-15 2019-02-19 Kopin Corporation Automatic speech recognition (ASR) feedback for head mounted displays (HMD)
KR102131826B1 (ko) * 2013-11-21 2020-07-09 엘지전자 주식회사 이동 단말기 및 이의 제어 방법
US20150153949A1 (en) * 2013-12-03 2015-06-04 Google Inc. Task selections associated with text inputs
US10983805B2 (en) * 2014-02-21 2021-04-20 Nod, Inc. Contextual keyboard located on a remote server for implementation on any content delivery and interaction application
US9330666B2 (en) * 2014-03-21 2016-05-03 Google Technology Holdings LLC Gesture-based messaging method, system, and device
CN104200170B (zh) * 2014-04-15 2018-06-19 中兴通讯股份有限公司 一种电子设备的隐私保护方法及电子设备
US9575560B2 (en) 2014-06-03 2017-02-21 Google Inc. Radar-based gesture-recognition through a wearable device
US9921660B2 (en) 2014-08-07 2018-03-20 Google Llc Radar-based gesture recognition
US9811164B2 (en) 2014-08-07 2017-11-07 Google Inc. Radar-based gesture sensing and data transmission
US9588625B2 (en) 2014-08-15 2017-03-07 Google Inc. Interactive textiles
US10268321B2 (en) 2014-08-15 2019-04-23 Google Llc Interactive textiles within hard objects
US9778749B2 (en) 2014-08-22 2017-10-03 Google Inc. Occluded gesture recognition
US11169988B2 (en) 2014-08-22 2021-11-09 Google Llc Radar recognition-aided search
US9940016B2 (en) 2014-09-13 2018-04-10 Microsoft Technology Licensing, Llc Disambiguation of keyboard input
US9600080B2 (en) 2014-10-02 2017-03-21 Google Inc. Non-line-of-sight radar-based gesture recognition
US10956032B2 (en) * 2014-10-29 2021-03-23 Microsoft Technology Licensing, Llc Keyboard utility for inputting data into a mobile application
CN104363322B (zh) * 2014-11-20 2017-10-17 广东欧珀移动通信有限公司 拨号方法及装置
US10459608B2 (en) 2014-12-01 2019-10-29 Ebay Inc. Mobile optimized shopping comparison
CN104571915B (zh) * 2014-12-29 2018-11-27 科大讯飞股份有限公司 触屏终端中触摸键盘的控制方法和装置
CN104571585B (zh) * 2014-12-30 2017-07-28 北京奇虎科技有限公司 输入法光标操作方法和装置
US9959069B2 (en) * 2015-02-12 2018-05-01 Microsoft Technology Licensing, Llc Externalized execution of input method editor
US10016162B1 (en) 2015-03-23 2018-07-10 Google Llc In-ear health monitoring
US9983747B2 (en) 2015-03-26 2018-05-29 Google Llc Two-layer interactive textiles
CN104731554B (zh) * 2015-03-30 2018-08-07 北京奇艺世纪科技有限公司 一种评论信息发布方法及装置
US11068644B1 (en) * 2015-03-30 2021-07-20 Insurance Services Office, Inc. System and method for creating customized insurance-related forms using computing devices
US10139916B2 (en) 2015-04-30 2018-11-27 Google Llc Wide-field radar-based gesture recognition
JP6427279B2 (ja) 2015-04-30 2018-11-21 グーグル エルエルシー ジェスチャの追跡および認識のための、rfに基づいた微細動作追跡
CN107466389B (zh) 2015-04-30 2021-02-12 谷歌有限责任公司 用于确定类型不可知的rf信号表示的方法和装置
US9693592B2 (en) 2015-05-27 2017-07-04 Google Inc. Attaching electronic components to interactive textiles
US10088908B1 (en) 2015-05-27 2018-10-02 Google Llc Gesture detection and interactions
CN104935812B (zh) * 2015-05-29 2017-11-03 广东欧珀移动通信有限公司 一种控制自拍模式开启的方法及装置
CN104850770A (zh) * 2015-06-05 2015-08-19 深圳市智诺微智能电子科技有限公司 一种手势密码输入虚拟键盘及应用方法
US10082931B2 (en) * 2015-06-12 2018-09-25 Microsoft Technology Licensing, Llc Transitioning command user interface between toolbar user interface and full menu user interface based on use context
KR20170017572A (ko) * 2015-08-07 2017-02-15 삼성전자주식회사 사용자 단말 장치 및 이의 제어 방법
US10817065B1 (en) 2015-10-06 2020-10-27 Google Llc Gesture recognition using multiple antenna
WO2017079484A1 (en) 2015-11-04 2017-05-11 Google Inc. Connectors for connecting electronics embedded in garments to external devices
US10489768B2 (en) * 2015-12-30 2019-11-26 Visa International Service Association Keyboard application with third party engagement selectable items
US10260830B2 (en) 2016-02-11 2019-04-16 John Hafen Smart-gun systems and methods
US10140017B2 (en) 2016-04-20 2018-11-27 Google Llc Graphical keyboard application with integrated search
US10222957B2 (en) 2016-04-20 2019-03-05 Google Llc Keyboard with a suggested search query region
US9965530B2 (en) 2016-04-20 2018-05-08 Google Llc Graphical keyboard with integrated search features
US10078673B2 (en) 2016-04-20 2018-09-18 Google Llc Determining graphical elements associated with text
US10305828B2 (en) 2016-04-20 2019-05-28 Google Llc Search query predictions by a keyboard
WO2017192167A1 (en) 2016-05-03 2017-11-09 Google Llc Connecting an electronic component to an interactive textile
US10175781B2 (en) 2016-05-16 2019-01-08 Google Llc Interactive object with multiple electronics modules
US10831763B2 (en) * 2016-06-10 2020-11-10 Apple Inc. System and method of generating a key list from multiple search domains
US10769182B2 (en) 2016-06-10 2020-09-08 Apple Inc. System and method of highlighting terms
US10409488B2 (en) 2016-06-13 2019-09-10 Microsoft Technology Licensing, Llc Intelligent virtual keyboards
US20170357521A1 (en) * 2016-06-13 2017-12-14 Microsoft Technology Licensing, Llc Virtual keyboard with intent-based, dynamically generated task icons
US10664157B2 (en) * 2016-08-03 2020-05-26 Google Llc Image search query predictions by a keyboard
US10409487B2 (en) * 2016-08-23 2019-09-10 Microsoft Technology Licensing, Llc Application processing based on gesture input
CN107015637B (zh) * 2016-10-27 2020-05-05 阿里巴巴集团控股有限公司 虚拟现实场景下的输入方法和装置
US10884610B2 (en) 2016-11-04 2021-01-05 Myscript System and method for recognizing handwritten stroke input
US10579150B2 (en) 2016-12-05 2020-03-03 Google Llc Concurrent detection of absolute distance and relative movement for sensing action gestures
US11199965B2 (en) * 2016-12-29 2021-12-14 Verizon Patent And Licensing Inc. Virtual keyboard
US9924313B1 (en) 2017-02-23 2018-03-20 International Business Machines Corporation Location based generation of pertinent information
CN108415679B (zh) * 2018-03-08 2021-02-26 广东美的制冷设备有限公司 设备及其触摸控制方法
US10928996B2 (en) * 2018-12-28 2021-02-23 Brandon Ly Baunach Systems, devices and methods for electronic determination and communication of location information
US11544994B2 (en) 2020-03-27 2023-01-03 Aristocrat Technologies, Inc. Beacon to patron communications for electronic gaming devices
US20210338864A1 (en) * 2020-04-30 2021-11-04 Aristocrat Technologies, Inc. Ultraviolet disinfection and sanitizing systems and methods for electronic gaming devices and other gaming equipment
CN112379820B (zh) * 2020-11-24 2022-08-05 惠州Tcl移动通信有限公司 全键盘按键的输入检测方法、设备和计算机可读存储介质

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1027938A (en) 1909-11-02 1912-05-28 Westinghouse Air Brake Co Fluid-pressure brake.
US5502803A (en) 1993-01-18 1996-03-26 Sharp Kabushiki Kaisha Information processing apparatus having a gesture editing function
JP3416268B2 (ja) 1994-06-30 2003-06-16 キヤノン株式会社 画像認識装置及びその方法
US6999955B1 (en) * 1999-04-20 2006-02-14 Microsoft Corporation Systems and methods for estimating and integrating measures of human cognitive load into the behavior of computational applications and services
US7762453B2 (en) * 1999-05-25 2010-07-27 Silverbrook Research Pty Ltd Method of providing information via a printed substrate with every interaction
US20030023952A1 (en) 2001-02-14 2003-01-30 Harmon Charles Reid Multi-task recorder
US6792408B2 (en) * 2001-06-12 2004-09-14 Dell Products L.P. Interactive command recognition enhancement system and method
US7251367B2 (en) * 2002-12-20 2007-07-31 International Business Machines Corporation System and method for recognizing word patterns based on a virtual keyboard layout
US7382358B2 (en) 2003-01-16 2008-06-03 Forword Input, Inc. System and method for continuous stroke word-based text input
US7098896B2 (en) * 2003-01-16 2006-08-29 Forword Input Inc. System and method for continuous stroke word-based text input
US7453439B1 (en) 2003-01-16 2008-11-18 Forward Input Inc. System and method for continuous stroke word-based text input
US7480619B1 (en) * 2003-03-04 2009-01-20 The Board Of Trustees Of The Leland Stanford Junior University Integration manager and natural interaction processor
US7401072B2 (en) * 2003-06-10 2008-07-15 Google Inc. Named URL entry
US7250938B2 (en) * 2004-01-06 2007-07-31 Lenovo (Singapore) Pte. Ltd. System and method for improved user input on personal computing devices
US7890396B2 (en) * 2005-06-07 2011-02-15 Cfph, Llc Enhanced system and method for managing financial market information
US20060024126A1 (en) 2004-07-31 2006-02-02 Johansson Kenneth L Page lifting spring
US20060242126A1 (en) * 2005-03-25 2006-10-26 Andrew Fitzhugh System and method for a context-sensitive extensible plug-in architecture
US7487461B2 (en) * 2005-05-04 2009-02-03 International Business Machines Corporation System and method for issuing commands based on pen motions on a graphical keyboard
US7542029B2 (en) 2005-09-20 2009-06-02 Cliff Kushler System and method for a user interface for text editing and menu selection
US20160344581A9 (en) * 2005-09-21 2016-11-24 Amit Karmarkar Text message including a contextual attribute of a mobile device
US8726195B2 (en) * 2006-09-05 2014-05-13 Aol Inc. Enabling an IM user to navigate a virtual world
US8564544B2 (en) * 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
CN101356493A (zh) * 2006-09-06 2009-01-28 苹果公司 用于照片管理的便携式电子装置
US20080126075A1 (en) * 2006-11-27 2008-05-29 Sony Ericsson Mobile Communications Ab Input prediction
US8059101B2 (en) * 2007-06-22 2011-11-15 Apple Inc. Swipe gestures for touch screen keyboards
US8626823B2 (en) * 2007-11-13 2014-01-07 Google Inc. Page ranking system employing user sharing data
US8479118B2 (en) 2007-12-10 2013-07-02 Microsoft Corporation Switching search providers within a browser search box
US8504946B2 (en) * 2008-06-27 2013-08-06 Apple Inc. Portable device, method, and graphical user interface for automatically scrolling to display the top of an electronic document
US8319742B2 (en) * 2008-08-26 2012-11-27 Research In Motion Limited Portable electronic device and method of controlling same
US8769427B2 (en) 2008-09-19 2014-07-01 Google Inc. Quick gesture input
US20100185949A1 (en) * 2008-12-09 2010-07-22 Denny Jaeger Method for using gesture objects for computer control
US8756534B2 (en) * 2009-03-16 2014-06-17 Apple Inc. Methods and graphical user interfaces for editing on a multifunction device with a touch screen display
US8294680B2 (en) * 2009-03-27 2012-10-23 Sony Mobile Communications Ab System and method for touch-based text entry
CN101546233A (zh) * 2009-05-05 2009-09-30 上海华勤通讯技术有限公司 触摸屏界面手势识别操作方法
US8762893B2 (en) * 2010-05-14 2014-06-24 Google Inc. Automatic derivation of analogous touch gestures from a user-defined gesture
US20110314427A1 (en) 2010-06-18 2011-12-22 Samsung Electronics Co., Ltd. Personalization using custom gestures
KR20140001957A (ko) 2010-11-20 2014-01-07 뉘앙스 커뮤니케이션즈, 인코포레이티드 입력된 텍스트를 이용하여 상황 정보에 액세스하여 이를 처리하기 위한 시스템들 및 방법들

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018074710A1 (ko) * 2016-10-18 2018-04-26 주식회사 한컴세이프티 가상키보드를 통해 손쉬운 문자 입력을 지원하는 터치스크린 전자 장치 및 그 동작 방법

Also Published As

Publication number Publication date
KR20140001957A (ko) 2014-01-07
CN103314343B (zh) 2017-02-15
CN103827779B (zh) 2017-06-20
US20120127083A1 (en) 2012-05-24
CN103314343A (zh) 2013-09-18
WO2012068544A2 (en) 2012-05-24
KR20130116295A (ko) 2013-10-23
EP2641147A4 (en) 2017-05-03
EP2641145A2 (en) 2013-09-25
CN103827779A (zh) 2014-05-28
US9244610B2 (en) 2016-01-26
CN103649876A (zh) 2014-03-19
WO2012068550A3 (en) 2012-10-04
US9244611B2 (en) 2016-01-26
US20120127082A1 (en) 2012-05-24
EP2641147A2 (en) 2013-09-25
EP2641145A4 (en) 2017-05-03
US9189155B2 (en) 2015-11-17
WO2012068544A3 (en) 2012-09-20
EP2641146A4 (en) 2017-05-03
WO2012068584A3 (en) 2012-10-11
WO2012068584A2 (en) 2012-05-24
CN103649876B (zh) 2017-02-15
WO2012068550A2 (en) 2012-05-24
EP2641146A2 (en) 2013-09-25
US20120127080A1 (en) 2012-05-24

Similar Documents

Publication Publication Date Title
US9244611B2 (en) Performing actions on a computing device using a contextual keyboard
US10841265B2 (en) Apparatus and method for providing information
US11460983B2 (en) Method of processing content and electronic device thereof
US10698604B2 (en) Typing assistance for editing
CN103038728B (zh) 例如在移动电话上使用触摸屏的多模式文本输入系统
US20170357627A1 (en) Device, Method, and Graphical User Interface for Classifying and Populating Fields of Electronic Forms
CN108541310B (zh) 一种显示候选词的方法、装置及图形用户界面
WO2018057890A1 (en) Smart replies using an on-device model
US9965569B2 (en) Truncated autosuggest on a touchscreen computing device
US9639265B2 (en) Distance-time based hit-testing for displayed target graphical elements
US20170103072A1 (en) Generating Image Tags
US8949858B2 (en) Augmenting user interface elements with information
JP2009266236A (ja) デバイス上の言語入力インターフェース
JP6182636B2 (ja) インタラクションを通じてキーワードを検索する端末、サーバ及び方法
CN111052064A (zh) 自动提供基于手势的自动完成建议的方法及其电子设备
US20140253458A1 (en) Method and System for Suggesting Phrase Completions with Phrase Segments
JP2014089645A (ja) システムおよび情報提供方法並びに電子機器

Legal Events

Date Code Title Description
A201 Request for examination
E601 Decision to refuse application