KR20220005592A - 키보드 입력의 모호성 제거 - Google Patents

키보드 입력의 모호성 제거 Download PDF

Info

Publication number
KR20220005592A
KR20220005592A KR1020217042521A KR20217042521A KR20220005592A KR 20220005592 A KR20220005592 A KR 20220005592A KR 1020217042521 A KR1020217042521 A KR 1020217042521A KR 20217042521 A KR20217042521 A KR 20217042521A KR 20220005592 A KR20220005592 A KR 20220005592A
Authority
KR
South Korea
Prior art keywords
input
keyboard
input data
gesture
stroke
Prior art date
Application number
KR1020217042521A
Other languages
English (en)
Other versions
KR102415851B1 (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 KR20220005592A publication Critical patent/KR20220005592A/ko
Application granted granted Critical
Publication of KR102415851B1 publication Critical patent/KR102415851B1/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/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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • 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
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0234Character input methods using switches operable in different directions
    • 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
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0236Character input methods using selection techniques to select from displayed items
    • 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
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • 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

Landscapes

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

Abstract

장치는, 형상 기록 입력 및 방사상 엔트리 입력을 수용하는 키보드를 동작시키는 키보드 엔진을 포함한다. 키보드 입력 모듈은 키보드의 적어도 하나의 입력 센서로부터 입력 데이터를 획득한다. 의도 모호성 제거 엔진(intention disambiguation engine)은 키보드의 유저에게 형상 기록 입력 및 방사상 엔트리 입력 수용의 동시적 사용을 가능하게 한다.

Description

키보드 입력의 모호성 제거{DISAMBIGUATION OF KEYBOARD INPUT}
전자 디바이스의 유저는 모바일 디바이스 및 태블릿을 점점 더 많이 사용하고 있고, 이것은 그래픽 터치스크린 키보드 및 다른 터치 감응 키보드의 증가된 사용, 및 효율적인 텍스트 엔트리(text entry) 기술에 대한 대응하는 유저 요구로 이어졌다. 연구자들은, 쿼티(QWERTY)가 아닌 키 레이아웃으로부터, 한 번의 획으로 전체 단어를 형상 기록하는 것(shape-writing)으로, 언어 모델을 통해 키를 다량으로 다중화하고(heavily multiplex) 모호한 입력을 해결하는 접근 방식으로, 터치 스크린 타이핑을 개선하기 위한 많은 전략을 추구해 왔다.
이러한 기술이 상당한 성능적 이점을 산출할 수도 있지만, 이들은 또한, 성능 이득이 실현될 수 있기 이전에, 유저로부터의 스킬 획득의 상당한 투자를 종종 수반할 수도 있다. 따라서, 유저는 이러한 이득을 실현할 만큼 충분히 오래 이러한 신규의 기술에 관심을 유지하지 않을 수도 있다.
하나의 일반적인 양태에 따르면, 장치는, 형상 기록 입력(shape-writing input) 및 방사상 엔트리 입력(radial entry input)을 수용하는 키보드를 동작시키는 키보드 엔진을 포함한다. 키보드 입력 모듈은 키보드의 적어도 하나의 입력 센서로부터 입력 데이터를 획득한다. 의도 모호성 제거 엔진(intention disambiguation engine)은 키보드의 유저에게 형상 기록 입력 및 방사상 엔트리 입력 수용의 동시적 사용을 가능하게 한다.
다른 양태에 따르면, 입력 데이터는, 형상 기록 입력 및 방사상 엔트리 입력을 수용하는 키보드로부터 획득될 수도 있다. 형상 기록 입력과 방사상 엔트리 입력 사이를 구별하기 위해 입력 데이터의 모호성을 제거하는 것에 의해, 키보드의 유저에게, 형상 기록 입력 및 방사상 엔트리 입력 수용의 동시적 사용이 제공될 수도 있다.
다른 양태에 따르면, 컴퓨터 프로그램 제품은, 적어도 하나의 디바이스 프로세서로 하여금, 형상 기록 입력 및 방사상 엔트리 입력을 수용하는 키보드로부터 입력 데이터를 획득하게 할 수도 있고, 형상 기록 입력과 방사상 엔트리 입력 사이를 구별하기 위해 입력 데이터의 모호성을 제거하는 것에 의해, 키보드의 유저에게, 형상 기록 입력 및 방사상 엔트리 입력 수용의 동시적 사용을 제공하게 할 수도 있는 실행가능 코드를 저장하는 컴퓨터 판독가능 저장 매체를 포함할 수도 있다.
이 개요는 하기의 발명을 실시하기 위한 구체적인 내용에서 더 설명되는 엄선된 개념을 간소화된 형태로 소개하기 위해 제공된다. 이 개요는 청구된 특허 대상의 주요 특징이나 또는 본질적인 특징을 식별하도록 의도된 것이 아니며, 청구된 특허 대상의 범위를 제한하는 데 사용되도록 의도된 것도 아니다. 하나 이상의 구현예의 상세는, 하기의 첨부의 도면 및 설명에서 개시된다. 다른 특징은 설명 및 도면으로부터, 그리고 청구범위로부터 명확해질 것이다.
도 1a 및 도 1b는 예시적인 가상 키보드를 예시한다.
도 2는 횡방향의 방사상 엔트리 제스처(lateral radial entry gesture)의 예를 예시한다.
도 3은 대각선의 방사상 엔트리 제스처(diagonal radial entry gesture)의 예를 예시한다.
도 4는 수직의 방사상 엔트리 제스처(vertical radial entry gesture)의 예를 예시한다.
도 5a 및 도 5b는 예시적인 방사상 메뉴를 예시한다.
도 6a 및 도 6b는 예시적인 단어 예측을 예시한다.
도 7a 내지 도 7c는 예시적인 형상 기록을 예시한다.
도 8은 방사상 제스처 기능성과 관련되는 예시적인 방사상 제스처 도움말 메뉴(help menu)를 묘사한다.
도 9는 예시적인 키보드가 부착된 예시적인 디바이스를 묘사한다.
도 10a 및 도 10b는, 예시적인 의도 모호성 제거 엔진에 의해 사용될 수도 있는 예시적인 상태 머신을 묘사한다.
도 11은 예시적인 키보드 엔진에 대한 예시적인 로직을 예시한다.
도 12는, 키보드 엔트리 모드(keyboard entry mode)의 모호성을 제거하기 위한 예시적인 일반화된 시스템을 예시하는 블록도이다.
도 13a 내지 도 13c는 도 12의 시스템의 예시적인 동작을 예시하는 플로우차트이다.
I. 서론
슬레이트, 태블릿, 이동 전화, 및 멀티 터치 전자 화이트보드 상에서의 텍스트 엔트리를 위한 소프트 키보드에 대한 향상 및 혁신은, 현재 연구 및 혁신이 활발한 영역이다.
텍스트 엔트리 성능을 향상시키기 위한, 또는 동일한 스크린의 실제 자산(estate)에서 더 많은 키 기능을 적합시키기 위한 하나의 기술은, 단일의 또는 다중 터치 스와이프 제스처를 통해 터치스크린 키보드를 증강시키는 것이다. 예를 들면, 스페이스(Space), 백스페이스(Backspace), 엔터(Enter), 및 시프트(Shift)와 같은 키에 대한 스트로크 바로가기(stroke shortcut)가, 방사상 제스처(즉, 가상 키보드의 키 상의, 근처의, 또는 사이의; 또는 몇몇 구현예에서, 텍스트 그 자체 바로 위의 다양한 위치에서 트리거되는 방향성 스트로크)로서, 또는 특정 키(예를 들면, 시프트의 경우) 상에서, 또는 (예를 들면, 스페이스, 백스페이스, 및 엔터의 경우) 키보드의 거의 임의의 영역 상에서 호출될 수 있는 방사상 메뉴를 통해, 이 방식으로 활용될 수도 있다. 특히, 이 접근 방식은 또한, 제스처에 의해 중복되는 대응하는 키의 잠재적인 제거, 또는 생략을 가능하게 하고, 그러므로, 잠재적인 2차 및 3차 가상 키보드로부터의 추가적인 캐릭터(character)에 대한 키보드 공간을 확보하게 된다. 예로서, 방사상 메뉴를 갖는 그리고 제스처 중복 키가 생략된 스트로크 키보드를 제공하기 위한 몇몇 기술은, 발명의 명칭이 "Graphical Keyboard with Radial Menus"이고 2012년 10월 30일자로 출원된 공동 소유된 미국 특허 가출원 제61/720,335(대리인 관리 번호 제336986.01호), 및 발명의 명칭이 "Keyboard with Gesture-Redundant Keys Removed"이고 2012년 12월 19일자로 출원되고 미국 특허 공개 공보 제2014/0123049호로서 공개된 미국 특허 출원 제13/720,527(대리인 관리 번호 제336986.02호)에서 논의된다.
또한, 이러한 키 기능은 예시적인 스트로크 및 짧은 스트로크 제스처를 통해 구현될 수도 있다. 예로서, 이러한 키 기능을 제공하기 위한 몇몇 기술은, 발명의 명칭이 "Gesture-Initiated Keyboard Functions"이고, 미국 특허 공개 공보 제2014/0078063호로서 공개된, 2012년 12월 12일자로 출원된 공동 소유의 미국 특허 출원 제13/712,111호(대리인 관리 번호 제337229.02호)에서 논의된다.
본원에서 논의되는 예시적인 기술에 따르면, 키보드는 짧은 선형적 스트로크 제스처 - 예를 들면, 방사상 스트로크, 방사상 엔트리 모드 제스처, 또는 방사상 메뉴 제스처 - 와 형상 기록의 조합을 제공할 수도 있다. 본원에서 논의되는 예시적인 기술에 따르면, 허용된 엔트리 모드 중 임의의 것은 키보드 상의 임의의 곳에서 사용될 수도 있고, 모드 사이의 모호성을 제거하는 것은, 유저로부터 입력을 수신하도록 구성되는 키보드 상의 임의의 위치에서, 즉석으로, 원활하게 달성될 수도 있다.
이 맥락에서, "제스처"는, 키보드 디바이스의 터치 감응 표면에 대한 또는 그 터치 감응 표면으로부터의 손가락 또는 다른 키보드 엔트리 오브젝트(또는 이들의 임의의 조합 또는 부조합)의 임의의 터칭, 슬라이딩, 홀딩, 또는 릴리싱을 가리킬 수도 있다. 또한, "제스처"는, 키보드를 터치하지 않으면서(예를 들면, 키보드가 물리적 키보드이든 또는 소프트 키보드이든 간에, 또는 소프트 키보드와 관련하여, 키보드 위의 공중에서), 키보드 위에서 발생하는, 손가락, 손, 또는 다른 키보드 입력 엔트리(또는 이들의 임의의 조합 또는 부조합)의 임의의 움직임을 가리킬 수도 있다. 또한, "제스처"는, 디스플레이 상에서 시작하여 입력 오브젝트가 움직임에 따라 디스플레이 위쪽으로 올라가는, 손가락, 손, 또는 다른 키보드 입력 엔트리 오브젝트의 임의의 움직임을 가리킬 수도 있다(예를 들면, 깊이 감응 디스플레이에서, 방사상 메뉴 제스처가 디스플레이 상에서 시작할 수도 있고, 손가락이 제스처를 수행함에 따라, 디스플레이 위로 이동할 수도 있으며, 따라서 손가락이 디스플레이와 접촉한 상태로 유지되는 동일한 방향의 제스처와는 구별될 수 있다).
이 맥락에서 사용되는 바와 같이, 키보드 상에서의 "형상 기록"은 손가락을 떼지 않고 단어를 철자하기(spell out) 위해 키보드 위에서 스트로크하는 것을 수반할 수도 있다. 예를 들면, 형상 기록은, 스트로크의 형상 및 스트로크의 굴곡 지점(inflection point)에 기초하여 제스처에 인접하는 다양한 키를 결정하는 것에 의해 해석될 수도 있다(예를 들면, "밀접도"의 미리 결정된 임계 값에 기초하여, 어떤 키가 굴곡 지점에 충분히 가까운지를 결정한다 - 이 "충분히 가까운" 키가 입력으로서 엔트리를 위해 의도되었다는 것을 결정함). 예를 들면, 이러한 제스처는, 형상 기록에서, 전체 단어의 엔트리를 위해 사용될 수도 있다. 예를 들면, 스트로크 경로를 의도된 단어와 매칭시키기 위해, 언어 모델이 사용될 수도 있다.
예를 들면, 빈번하게 사용되는 단어(예를 들면, "the", "of", 또는 특정 유저에 의해 빈번하게 사용되는 다른 단어)에 대해 형상 제스처(shape gesture)가 사용될 수도 있고 - 유저가 형상 제스처를 학습하면, 텍스트 엔트리에서 더 빠른 속도 및 효율성을 유익하게 제공할 수도 있다. 예를 들면, 형상 제스처는, 덜 빈번하게 사용되는 단어에 대해서도(즉, 사전에 있는 임의의 단어에 대해서도) 또한 사용될 수도 있다. 예를 들면, 유저가 형상 기록 기술의 경험을 쌓음에 따라, 유저는 덜 빈번하게 발생하는 단어를 점점 더 많이 형상 기록하려는 경향을 나타낼 수도 있다.
이 맥락에서 사용되는 바와 같이, "방사상 스트로크" 또는 "방사상 엔트리" 제스처는, 초기 터치에 후속하여 특정한 방향(예를 들면, 디바이스가 일반적인 사용 포지션으로 유지될 때, 상방, 하방, 왼쪽, 오른쪽, 등등)에서의 움직임에 의해 실행되는 상당히 짧고 선형적인(즉, 제스처에 포함되는, 실질적으로 굴곡 지점, 또는 비선형적인 각도가 포함되지 않는 실질적으로 곧은(straight)) 스트로크 또는 제스처를 일반적으로 가리킬 수도 있다.
이 맥락에서 사용되는 바와 같이, "방사상 스트로크" 또는 "방사상 엔트리" 제스처는 또한, 더 긴 스트로크로 칭해질 수도 있다. 예를 들면, 이러한 더 긴 스트로크는 방사상 메뉴에서 사용될 수도 있다(예를 들면, 길고, 곧고, 수직인 스트로크는 반복하는 백스페이스 제스처로서 해석됨).
이 맥락에서 사용되는 바와 같이, "방사상 스트로크" 또는 "방사상 엔트리" 제스처는 또한, (예를 들면, 계층적(네스트화된(nested)) 방사상 메뉴를 허용하기 위한) 하나의 굴곡 지점을 갖는 스트로크를 가리킬 수도 있다.
이 맥락에서 사용되는 바와 같이, "의도"는 키보드 엔트리에서의 유저의 의도를 가리킬 수도 있다. 예를 들면, 유저는, 그/그녀가 키보드 상에서 "w" 키로부터 "e" 키로 연속적으로 제스처를 취할 때 단어 "we"를 입력할 것을 의도할 수도 있다. 이 맥락에서 사용되는 바와 같이, "의도 모호성 제거"는, 키보드 상에 입력되는 바와 같은, 그리고 키보드 엔트리 입력을 제공하는 엔티티(예를 들면, 유저)에 의해 의도되는 바와 같은 입력의 잠재적인 의도된 표현의 모호성 제거를 가리킬 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 키보드는, "형상 기록" 기술을 동시에 지원하면서, 상기에서 논의되는 예시적인 키(예를 들면, 스트로크 바로가기와 중복하는, 따라서, 스트로크 바로가기를 지원하는 키보드로부터 생략될 수도 있는 키) 및/또는 기능, 및 다른 제스처에 대한 간단한 스트로크 바로가기의 통합을 포함할 수도 있다. 예를 들면, 이 통합은, (더 높은 수준의 성능을 제공하지만) 완전한 이익을 얻기 위해서는 유저의 연습 및 학습의 많은 투자를 수반할 수도 있는 완벽한 형상 기술 스킬의 장기간의 획득과 예시적인 스트로크 제스처의 간단한 성능 이점을 결합하는 하이브리드 접근 방식을 가능하게 할 수도 있다.
도 1a는, 스페이스, 백스페이스, 시프트 및 엔터 키가 생략된 예시적인 탭 플러스 제스처(tap-plus-gesture) 쿼티 그래픽 또는 인쇄 키보드(graphical or printed keyboard)(100A)를 예시한다. 예를 들면, 실제의 완전한 생략/제거에 대한 대안은, 하나 이상의 키의 사이즈를 상당히 감소시키고 및/또는 단일의 키 상으로 결합시키는 것이다, 즉, 이들 키의 실질적인 생략이다. 마찬가지로, 이것은, 유저 선호도에 따라, 표준 키보드(모든 키를 가짐)가 온 태브(on tab) 또는 옵션으로서 이용가능한 것, 및 이들 키 중 일부 또는 전체가 생략된 키보드가 다른 태브 또는 옵션인 것을 가리킬 수도 있다. 이 맥락에서, "제거한다" 및 그 변형어, 예컨대 "생략한다", "제거" 또는 "제거하는"은 실제 생략(또는 실질적인 생략)을 가리킨다.
알 수 있는 바와 같이, 생략을 통해, 숫자/특수 캐릭터가 대체될 수도 있다, 예를 들면, 표준 쿼티 키보드의 제일 윗 줄(숫자 1부터 9와 0뿐만 아니라, 그 위의 시프트된 캐릭터)은, 중복하는 키의 생략에 의해 비어진 공간으로 제공된다. 예를 들면, "7" 키(102)는, 좌상(up-left), 상방(up), 및 우상(up-right)으로의 방사상 스트로크를 통해 각각 이용가능한 방사상 엔트리 대안 "\", "&", 및 "/"를 갖는 것으로 도시된다. 예를 들면, "7" 키(102)에 대한 탭(tap)은, 유저가 "7"을 입력하려고 한다는 추론을 제공할 것이다. 그러나, "7" 키(102)에 대한 터치와 그에 후속하는 상방으로의, 그리고 왼쪽으로 이동하는 방향에서의(유저의 관점에서, 상방 및 왼쪽으로의) 짧은 스트로크(실질적을 선형이고, 실질적으로 짧은 제스처)는, 유저가 방사상 엔트리 제스처(즉, 방사상 엔트리 스트로크)로서 "\"를 입력하려고 한다는 추론을 제공할 수도 있다. 예를 들면, 키마다의 이들 추가적인 캐릭터는, 대응하는 제스처가 자연스럽게 직관적일 수 있도록 키 상에 위치될 수도 있다(예를 들면, 유저의 관점에서 상방 및 왼쪽으로의 제스처를 수반하는 "\" 입력, 및 유저의 관점에서 상방 및 오른쪽으로의 제스처를 수반하는 "/" 입력). 추가적으로, "9" 키 및 "0" 키는, 방사상 엔트리 입력에서의 직관적 용이성을 위해, ("9" 키 상의) 하나의 쌍을 열기 위한 스트로크가, ("0" 키 상의) 그 쌍을 닫기 위한 스트로크 또는 제스처와 직관적으로 커플링되도록, 각각, 중괄호(brace), 괄호(parenthesis), 및 모난 괄호(bracket)를 포함한다.
도 1a에서 도시되는 바와 같이, 예시적인 키보드(100A)에서, 하나보다는, 세 개까지의 보조 캐릭터(심볼 및 커맨드, 등등을 포함함)가 키보드의 기본 키에 추가될 수도 있고, 방사상 메뉴 제스처 또는 스트로크로서, 키당 네 개까지의 캐릭터로 나타나게 된다. 따라서, 예를 들면, 세 개의 보조 캐릭터 중 어떤 것이 선택되는지를 구별하기 위해, 세 개의 상향(upward) 스트로크, 즉 좌상, 상방, 및 우상이 사용될 수도 있다. 상방의 캐릭터(예를 들면, 별표 "*")는, 표준 쿼티 키보드 상의 관련된 주(primary) 캐릭터(예를 들면, 문자(letters)의 경우, 소문자)와 일반적으로 결합되는 캐릭터이며, 다른 두 개의 스트로크 선택 캐릭터(stroke-selected character) 사이에서 위치되는 것으로 디스플레이된다. 그러므로, 상향 스트로크의 일반적인 방향은, ("8" 키(106)의 경우, 왼쪽 스트로크의 시프트된 캐릭터인 플러스 "+"를 선택하는 좌상 스트로크, 및 오른쪽 스트로크의 시프트된 캐릭터인 마이너스 "-"를 선택하는 우상 스트로크로) 선택되는 캐릭터의 위치에 대응한다. 다른 구현예에서, 키마다 더 많은(또는 더 적은) 제스처가 존재할 수도 있고(따라서, 키마다 더 많은(또는 더 적은) 캐릭터 및/또는 커맨드를 가질 수도 있고), 및/또는 키보드 상의 임의의 곳에서 개시될 수 있는 더 많은 제스처가 존재할 수도 있다. 따라서, 이들 추가적인 입력을 가능하게 하기 위해 2차 키보드로 스위칭하는 것은, 실질적으로 감소될 수도 있다(또는 제거될 수도 있다).
예를 들면, 키마다의 추가적인 캐릭터는, 타이핑 중인 유저에 대한 더 용이한 가독성 인식을 가능하게 하기 위해, 시각적으로 흐리게 될(grayed out) 수도 있다(또는 추가적인 캐릭터를 가시성에서 덜 강조하는 다른 시각적 지원). 예를 들면, 가시적인 키보드는, 키 상에 백색의(또는 유사하게 더 밝은) 캐릭터가 인쇄된 블랙(또는 유사하게 어두운) 배경 컬러를 가질 수도 있다. 따라서, 추가적인 캐릭터는, 유저에 대한 가시성 "분리"를 지원하기 위해, 디스플레이된 키보드 상에서 "기본" 캐릭터보다 덜 강조되는 것처럼 보일 수도 있다.
예를 들면, (도시되는 바와 같은) 추가된 키의 보조 및 주 심볼을 활용하는 것은, 주 키보드로부터 이차 키보드로 캐릭터를 이동시킨다. 예를 들면, 통상적인 쿼티 키보드 상에 나타나는 다른 캐릭터는 오른쪽 상하에서 또한 나타날 수도 있다. 스페이스, 엔터, 시프트 및 백스페이스 키를 생략하는 것에 의해, 이 키보드는, 동일한 터치 감응 표면적을 소비하면서 그리고 예를 들면, 훨씬 더 적은 캐릭터를 갖는 다른 키보드와 동일한 사이즈의 키(또는 상이한 사이즈의 키)를 가지면서, 훨씬 더 많은 캐릭터를 제공할 수도 있다. 이 메커니즘에 제공하는 이들 공통 캐릭터에 대한 즉각적인 액세스는, 텍스트 엔트리 속도에서 상당한 증가를 가능하게 하고, 복잡성을 감소시킨다.
도 1a에서 도시되는 바와 같이, 키보드(100A) 상에서 유저 입력이 입력되고 있을 때의 상황에서 대안(예를 들면, 단어 대안, 제스처 대안, 등등)의 디스플레이를 위해, 대안적인 제안 리스트(104)에 대한 디스플레이 영역이 제공될 수도 있다. 예를 들면, 유저가 입력을 입력함에 따라 제안이 제공될 수도 있다. 예를 들면, 유저는 리스트로부터 대안을 선택할 수도 있는데, 리스트는 선택가능한 "되돌리기(undo)" 옵션을 더 포함할 수도 있다. 예를 들면, 에디터에서 입력되는 수용된 단어는, 그것을 다른 대안적인 제안과 시각적으로 구별하기 위해, 대안적인 제안 리스트(104)에서 채색되어(예를 들면, 그린 컬러화를 통해) 디스플레이될 수도 있다. 도시되지는 않지만, 대안적인 제안 리스트(104)는, 키보드(100A) 외에, 또는 키보드(100A) 대신, 별개의 디스플레이에서 디스플레이될 수도 있다. 예를 들면, 대안적인 제안 리스트(104)는, 디스플레이된(예를 들면, 입력된) 텍스트에 근접하게 위치되는 별개의 윈도우에서 디스플레이될 수도 있다.
도 1b는, 스페이스(110), 백스페이스(112), 시프트(114) 및 엔터(116) 입력을 위한 키를 포함하는 예시적인 쿼티 그래픽 또는 인쇄 키보드(100B)를 예시한다. 예를 들면, 숫자 키는 통상적인 종래의 키보드 상에서 통상적으로 제공될 수도 있지만, 그러나 키보드의 다른 레이어 상에 제공될 수도 있는데, 이것은 숫자 키에 액세스할 키보드 레이어를 스위칭하는 것을 수반한다.
도 2는 예시적인 탭 플러스 제스처 쿼티 그래픽 또는 인쇄 키보드(100) 상에서의 예시적인 제스처를 예시하는데, 화살표는 짧은 유저 제스처의 몇몇 예를 나타낸다. 컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 더 정교한 제스처가 검출될 수도 있고 사용될 수도 있지만, 설명의 간략화를 위해 간단한 스트로크 형태의 제스처가 도시된다는 것을 인식할 것이다. 예를 들면, 짧은 스트로크는 직관적일 수도 있고 한 번 학습되면 유저가 기억하기가 쉬울 수도 있다. 몇몇 구현예에서, 제스처의 스트로크의 길이가 또한 고려될 수도 있다. 예를 들면, 아주 짧은 스트로크는 탭으로 간주될 수도 있다. 다른 예로서, 탭의 힘 프로파일(force profile)이 이러한 추론을 위해 사용될 수도 있다. 예를 들면, 급격한 힘 개시 프로파일(a sharp force onset profile)은, 탭의 의도로서 추론될 수도 있지만, 더 부드러운 개시 프로파일은 의도적인 스와이핑 모션을 나타내는 것으로 추론될 수도 있다(예를 들면, 이 압력 개시 곡선을 신뢰성 있게 감지하기 위해, 약 1 kHz의 높은 샘플링 레이트를 사용한다).
예를 들면, 왼쪽으로의 짧은 선형적 스트로크(202)는 백스페이스로서 간주될 수도 있고 왼쪽으로의 더 긴 스트로크는 이전 단어 삭제(Delete Previous Word) 또는 이전 단어 선택(Select Previous Word) 커맨드로서 간주될 수도 있다. 예를 들면, 오른쪽으로의 짧은 선형적 스트로크(204)는 스페이스로서 간주될 수도 있다. 몇몇 구현예에서, 스트로크 또는 제스처의 속도, 가속도, 및/또는 동적 성질(dynamic nature)이 또한 고려될 수도 있다.
도 2에서, 탭핑되는(tapped)(예를 들면, 접촉된 뒤 들어 올려지는) 임의의 키는 다른 터치 키보드 상의 키와 마찬가지로 거동할 수도 있다. 따라서, 탭핑은 탭핑되는 키의 캐릭터 또는 기능(예를 들면, 디스플레이된 키 상에서 표현되는 심볼에 의해 나타내어짐)의 추론을 제공할 수도 있다. 따라서, 예시적인 키보드(100) 상에서, "a" 키가 탭핑되면, 유저의 의도된 키보드 입력으로서 소문자 "a"가 추론된다.
본원에서 논의되는 몇몇 예시적인 기술에 따르면, 액션을 개시하기 위해 제스처가 사용될 수도 있는데, 예를 들면, 개시 이후의 홀딩 액션은 제어 상태를 입력하기 위해 사용된다. 예를 들면, 왼쪽으로의 스트로크(202)가 들어 올려지면(lifted) 백스페이스로서 인식될 수도 있고, 반면 동일한 스트로크이지만, 그러나 들어 올리는 대신 스트로크의 최종 위치를 유지하는 것이 후속되면, 자동 반복 백스페이스를 개시할 수도 있다. 예를 들면, 이 시점 이후에 왼쪽으로 움직이는 것은 자동 반복을 가속시키기 위해 사용될 수도 있다. 예를 들면, 오른쪽으로 움직이는 것은 자동 반복을 느리게 하기 위해 사용될 수도 있고, 자동 반복을 잠재적으로 반대로 하여 삭제된 캐릭터를 되돌릴 수도 있다. 예를 들면, 자동 반복 백스페이스는, 다른 형상 기록 제스처와의 실질적인 모호성을 방지하기 위해, 소정의 키까지만 제한될 수도 있다(예를 들면, 단어는 단어 본체 내에 숫자를 통상적으로 포함하지 않기 때문에, 숫자 키까지만 제한될 수도 있다). 예를 들면, 많은 유저는 백스페이스 기능성을 빈번하게 사용할 수도 있고, 이러한 제한은 모호성 제거에서 실질적으로 도움이 될 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 유저가 키보드 상의 거의 모든 곳을 터치하고 오른쪽으로의 스트로크를 실행하면, 제스처(204)에 의해 예시되는 바와 같이, 스페이스 캐릭터가 추론될 수도 있다. 본원에서 논의되는 예시적인 기술에 따르면, 왼쪽 스트로크는 백스페이스를 나타낼 수도 있다. 따라서, 예를 들면, 유저가 키보드 상의 (거의) 모든 곳을 터치하고 왼쪽으로의 스트로크를 실행하면, 그/그녀는 백스페이스를 나타낼 수도 있고, 이것은, 입력된 하나 이상의 이전 캐릭터의 삭제로 나타날 수도 있다. 이것은 제스처(202)에 의해 예시된다. 예를 들면, 소정의 키는 이들 제스처에 응답하지 않을 수도 있다(예를 들면, 스크린의 에지에 있는 키, 예컨대 컨트롤(Ctrl) 키는 그들 고유의 커스텀 메뉴를 구비할 수도 있다). 예를 들면, 이들 제스처는, 유저가 일반적인 단어의 타이핑 동안 자연스럽게 터치할 실질적으로 임의의 곳에서 사용될 수도 있지만, 소정의 구역(예를 들면, 에지 근처, 또는 특정한 제어 오브젝트 상)은 다른 목적을 위해 예약된다.
본원에서 논의되는 예시적인 기술에 따르면, 그리고 도 3에서 도시되는 바와 같이, 왼쪽 하향(downward-left) 스트로크(302) 엔터(또는 리턴(Return)) 엔트리를 제공할 수도 있다. 따라서, 유저가 키보드 상의 임의의 곳을 터치하여 왼쪽으로의 하향 스트로크를 실행하면, "엔터" 키가 추론될 수도 있다. 예를 들면, 유저 의도를 구별하기 위해, 예를 들면, 왼쪽으로의 그리고 단지 약간의 아래쪽으로의 스트로크가 백스페이스일 가능성이 있는지 또는 엔터 스트로크일 가능성이 있는지의 여부를 구별하기 위해, 미리 결정된 임계 각이 사용될 수도 있다. 하나의 구현예에서, 제스처 중 일부 또는 전체에 대해, 유저는, 제스처가 키보드 내부에서 개시되는 한, 디스플레이된 키보드의 외부에서 릴리스할 수 있다. 도 3에서 도시되는 바와 같이, 우상향(upward-right) 스트로크(304)는 이스케이프(Escape) 엔트리를 제공할 수도 있다. 따라서, 유저가 키보드 상의 임의의 곳을 터치하고 오른쪽으로의 상향 스트로크를 실행하면, "이스케이프" 키가 추론될 수도 있다.
컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 스페이스, 백스페이스 및 엔터 스트로크가, 대형 타겟인 키보드 상의 임의의 곳에서 개시될 수 있기 때문에, 그리고 그들의 방향이 명확히 표현하기가 쉽고 강한 니모닉 값을 가지기 때문에, 그들은, 폐루프의 세심한 키 누름(closed-loop attentive key press) 대신, 개방 루프의 탄도 액션(open-loop ballistic action)(예를 들면, 어떠한 미세한 모터 제어도 필요로 하지 않는 탄도 제스처)을 사용하여 명확히 될 수도 있다는 것이 이해할 것이다. 결과는 유익하게는 학습이 용이한 방식을 제공하여, 텍스트 엔트리 레이트를 크게 증가시킬 수도 있다.
도 4에서, 선형의 상향 스트로크 제스처(402)는, 상향 스트로크 제스처가 캐릭터의 시프트 버전으로 어떻게 프로세싱될 수도 있는지를 예시한다. 따라서, 유저 탭핑 대신, 유저가 상향 스트로크를 실행하면, 그 캐릭터의 시프트된 버전이 결과로서 나타난다. 도 4의 예에서, "p" 키가 접촉되고 제스처(402)에 의해 나타내어지는 바와 같이 (손가락 또는 스타일러스를 바로 떼는 대신) 상향 스트로크(402)가 후속되면, (대안 리스트 영역(102)에 도시되는 바와 같이) 대문자 "P"가 결과적으로 나타난다. 예를 들면, 시프트를 행하는 손가락은, 제스처가 키의 영역 내부에서 개시되는 한, 키의 영역 밖에서 릴리스될 수도 있다(예를 들면, 손가락은 키의 영역 위에서 릴리스될 수도 있다). 도 4가 대안 리스트 영역(102)에서 대문자 "P"를 도시하지만, 엔트리(예를 들면, 대문자)는 대안 리스트 영역(102)에서 나타나지 않을 수도 있다는 것도 또한 가능하다.
다른 예로서, (특정한 캐릭터에 대해, 시프트 캐릭터를 생성하기 위해 목표로 된 제스처를 필요로 하는 대신) 전체 키보드에 대한 시프트 상태를 관련시키기 위해, 키보드 상의 미리 결정된 시작 영역으로부터의 일반적인 상향 제스처가 사용될 수도 있다. 예를 들면, 이것은, 유저가 키의 최하단 행(row)의 키로부터 제스처를 취하는 것을 필요로 하는 경우(이것은 부주의로 다른 기능성을 호출할 수도 있다), 에지 제스처 검출을 도울 수도 있다. 다른 예로서, 하나 대신 두 손가락을 이용한(그리고 키보드 상의 임의의 곳에서 개시되는) 상향 제스처가, 시프트 대신 캡스 락(Caps Lock)으로서 추론될 수도 있다. 또한, 두 손가락이 아래로 향하는 하향 제스처가 디폴트 상태를 복원할 수도 있다. 다른 예로서, 두 손가락 제스처의 도움으로, 다른 손가락이 키보드와 접촉하고 있는 동안 이루어지는 단일 손가락 제스처는, 유사한 단일 손가락 제스처와는 상이한 의미를 갖는 것으로 해석될 수도 있다.
다른 예로서, 방사상 메뉴 및/또는 방사상 스트로크가, 키보드(100) 상의 다양한 키에 대한 더 많은 대안을 제공할 수도 있다. 예를 들면, 유저는 "E" 키를 탭핑하여 유지할 수도 있고 짧은 방향성 스트로크 또는 제스처를 통해 이용가능한 여러 개의 캐릭터의 선택을 획득할 수도 있다. 예를 들면, 도 5a 및 도 5b에서 도시되는 바와 같이, 방사상 메뉴(502 및/또는 504)는, "E" 키에 대한 방향성의 짧은 스트로크를 통해 옵션을 제공할 수도 있다. 예를 들면, 방사상 메뉴(502 또는 504)는, 터치 입력(또는 펜 입력, 또는 다른 입력 오브젝트를 통한 입력)으로부터 인식될 수 있는 다양한 제스처의 메뉴 및 제스처의 각각에 대응하는 키보드 기능을 제공할 수도 있다. 따라서, 유저는 입력에 이용가능한 키보드 기능을 인식할 수 있게 되는데, 이것은, 잠재적인 유저 혼란을 감소시키면서, 제스처가 상이한 애플리케이션에서 및/또는 상이한 키에 대해 수행될 때 상이한 키보드 기능에 대응하는 것을 가능하게 할 수도 있다. 도 5a 및 도 5b에서 도시되는 바와 같이, 제시되는 방사상 메뉴(502 또는 504)가 입력의 위치에 무관하게 제시될 수도 있지만, 방사상 메뉴(502 또는 504)는, 예를 들면, 메뉴가 특정한 키에 기초하여 유저에게 제시되는 것을 가능하게 할 수도 있다. 예를 들면, 방사상 메뉴(502 또는 504)는 키보드 상에 중첩되는 것으로, 및/또는 상이한 디스플레이 디바이스 상에, 및/또는 동일한 디스플레이 상에서, 그러나 키보드를 벗어나서, 등등에서 디스플레이될 수도 있다. 예를 들면, 방사상 메뉴(502 또는 504)는, 키보드 상에서 관련된 키에 근접하게(예를 들면, 그 키를 둘러싸면서) 디스플레이될 수도 있다. 예를 들면, 방사상 메뉴는 유저에 의해 이해될 수도 있고, 필요하다면, 키보드 입력 동안 디스플레되지 않을 수도 있다.
방사상 메뉴를 사용하는 경우, 키보드 엔진은, 시각적 지원을 나타내기 이전에 타이밍을 포함하도록 구성될 수도 있다. 예를 들면, 키보드 엔진은, 시간의 미리 결정된 임계치가 지나갈 때까지, 방사상 메뉴의 디스플레이를 개시하지 않을 수도 있다.
추가적으로, 키보드 엔진은, (유저가 상이한 동작을 선택할 수도 있기 때문에) 예시적인 커맨드의 결과를 커밋하기 이전에, 유저가 "릴리스"할 때까지 대기하도록 구성될 수도 있다. 예를 들면, 유저가 문자 "e"를 터치하고 위로 스트로크하지만, 릴리스하지 않고 - 그 다음 무언가 다른 것을 선택하려고 결정하는 경우, 유저는 그/그녀의 궤도를 수정할 수 있고 릴리스하기(그리고 커밋하기) 이전에, 다른 방향을 향해 이동할 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 스트로크 바로가기 및 형상 기록과 함께 또는 이들과는 독립적으로, 단어 예측이 예시적인 키보드 엔진 안으로 통합될 수도 있다. 예를 들면, 스트로크 바로가기 제스처는, 잠재적으로 모호한 형상 기록 제스처의 경우에, 예측 대안으로서 제공될 수도 있다. 예를 들면, 도 6a 및 도 6b에서 도시되는 바와 같이, 단어 "to"는 오른쪽으로의 수평 스트로크(602)로서 입력될 수도 있는데, 이것은, 유저가 그리는 제스처의 길이에 따라, 스페이스에 대한 예시적인 스트로크 바로가기와 잠재적으로 혼돈될 수도 있다. 예를 들면, 단어 예측 엔진은, 의도된 단어의 최고 확률에 따라 하나 이상의 단어 예측을 결정하기 위해 사전을 사용할 수도 있다. 예를 들면, 단어 예측 엔진은 또한 형상 기록 제스처를 해석하는 것을 돕기 위해 n-그램 언어 모델(n-gram language model)을 사용할 수도 있다. 또한, 예측된 수정 철자(predicted corrected spelling)로서 별개로, 또는 최고 확률 단어 예측과 조합하여, 철자 수정(spelling correction)이 사용될 수도 있다. 또한, 단어 예측은, 사용된 및/또는 선택된 과거 단어의 유저 프로파일 이력을 사용하여, 특정한 이력에 대한 최고 확률 단어 예측을 예측하기 위해, 유저에게 개별맞춤될 수도 있다. 예를 들면, 입력된 형상 기록에 대한 의미를 해석하기 위해 사전이 사용될 수도 있다. 따라서, 키보드 엔진에 의해 사용되는 사전에 있지 않은 단어를 입력하기 위한 백업으로서 별개의 텍스트 엔트리가 사용될 수도 있다.
이 예에서, 형상 기록 인식기(shape-writing recognizer)는 의도된 단어로서 "to"를 가정할 수도 있지만, 모호성 제거 엔진은, 유저가 제스처를 소망된 예측으로서 확인하여, 제스처의 모호성을 제거하는 것을 쉽고 편리하게 만들기 위해, (임의의 다른 단어 예측 대안과 함께) 대안적인 제안 리스트(104)에서 예측 대안으로서 "(스페이스)"를 또한 제공할 수도 있다. 예를 들면, 유저는 리스트(104)로부터 "to" 옵션을 선택할 수도 있다. 도 6b에서 도시되는 바와 같이, 꼬리가 있는 화살표(trail arrow)(604)는, 제스처(602)의 경로 및 타이밍을 일시적으로 예시하는 "혜성 꼬리(comet trail)"를 나타낼 수도 있다. 예를 들면, 이러한 "혜성 꼬리"는, 입력으로서 키보드 엔진에 의해 수신될 때, 키보드(100) 상에서의 제스처의 경로를 시각화함에 있어서 유저를 지원할 수도 있다.
다른 예로서, 유저가 쿼티 키보드 상의 "w" 키로부터 "e" 키로 스트로크했다면, 스트로크는 "스페이스" 키에 대한 스트로크 바로가기 제스처, 또는 단어 "we"에 대한 형상 기록 스트로크 둘 다로서 모호하게 해석될 수도 있다. 본원에서 논의되는 예시적인 기술에 따르면, 모호성 제거 엔진은, 유저가 모호성을 해결할 수도 있도록, "we" 및 "(스페이스)" 둘 다를 포함하는 예측 대안을 제공할 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 대안적인 제안 리스트(104)는 제스처의 모호성을 해결함에 있어서 도움이 될 수도 있다. 예를 들면, 통상적인 단어 대안 리스트가 대안 단어를 제공할 수도 있지만, 본원에서 논의되는 예시적인 기술은 또한 대안으로서 제스처를 명시적으로 제공할 수도 있다.
도 7a 내지 도 7c에서 도시되는 바와 같이, 단일의 제스처에서 전체 단어를 입력하기 위해 예시적인 키보드(100)와 함께 형상 기록이 사용될 수도 있다. 도 7a의 예에서 도시되는 바와 같이, 유저는, "r" 키를 터치하고 "e" 키를 향해 왼쪽으로 수평으로 스트로크하는 것에 의해, 제스처(702)를 개시할 수도 있다. 터치가 이 시점에서 종료되면, 수평적으로 왼쪽으로의 짧은 수평 제스처 또는 스트로크가 (예를 들면, 상기에서 논의되는 왼쪽으로의 짧은 선형적 스트로크(202)에 의해 예시되는 바와 같이) "백스페이스"를 입력하려는 유저 의도로서 (모호하게) 해석될 수도 있기 때문에, 대안적인 제안 리스트(104)는, 이 시점에서 "re" 및 "백스페이스"를 디스플레이할 수 있다. 도 7b에서 도시되는 바와 같이, 제스처(702)가 계속 이동하여, "e" 키에 도달하고, "w" 키에서의 제스처화된 굴곡 지점을 통해, "a" 키를 향해 왼쪽 아래로 기울어진다. 터치가 이 시점에서 종료하면, 대각선 왼쪽 아래로의 짧고 경사진 제스처 또는 스트로크가 (예를 들면, 상기에서 논의되는 좌하향 스트로크(302)와 같이) "엔터"를 입력하려는 유저 의도로서 (모호하게) 해석될 수도 있기 때문에, 대안적인 제안 리스트(104)는 "rea" 및 "(엔터)"를 디스플레이할 수도 있다. 대안적인 제안 리스트(104)는 또한, 터치가 이 시점에서 종료하면, (이전 추론으로부터) "rew", "ra", "re", 및 "(백스페이스)"를 비롯한, 현재 제스처에 대해 다른 잠재적인 대안을 디스플레이할 수도 있다. 예를 들면, 터치가 이 시점에서 종료하면, 모호성 제거 엔진은, 제스처가 지금은 상이한 방향으로 경사져 있기 때문에, "백스페이스"가 이전에는 의도되지 않았다는 것을 추론할 수 있다.
도 7c에서 도시되는 바와 같이, 제스처(702) 계속 이동하여, "a" 키에 도달하고, "a" 키에서의 제스처화된 굴곡 지점을 통해, "d" 키를 향해 오른쪽 수평으로 기울어진다. 도 7c에서 도시되는 바와 같이, 수평적으로 오른쪽으로의 짧고 경사진 제스처 또는 스트로크가 (예를 들면, 상기에서 논의되는 오른쪽으로의 짧은 선형적 스트로크(204)에 의해 예시되는 바와 같이) "스페이스"를 입력하려는 유저 의도로서 (모호하게) 해석될 수도 있기 때문에, 대안적인 제안 리스트(104)는, 이 시점에서 "read" 및 "(스페이스)"를 디스플레이할 수 있다. 대안적인 제안 리스트(104)는 또한, 현재 제스처에 대해, 도시되는 바와 같이, "rad", "reading", "reader", "ready", 및 "ras"을 비롯한 다른 잠재적인 대안을 디스플레이할 수도 있다. 예를 들면, 제스처가 이제 상이한 방향으로 경사져 있기 때문에, 모호성 제거 엔진은 이제 "엔터"가 이전에는 의도되지 않았다는 것을 추론할 수도 있다.
예를 들면, 모호성 제거 엔진은 또한, 형상 기록과 관련되는 사전에서의 사전 룩업을 통해 유저의 의도를 추론할 수도 있다. 예를 들면, 단어 예측 엔진은, "r" 다음에 "e" 그 다음 "a" 그 다음 "d"가 후속하는 문자에 대한 키를 일시적으로 가로지르는 형상 기록 제스처에 대한 가능성 있는 의도된 단어로서, 이러한 사전을 사용하여, "read", "rad", "reading", "reader", 및 "ready"와 같은 옵션을 제공할 수도 있다.
예를 들면, 스트로크가 입력될 때 스트로크의 다양한 양태를 나타낼 수도 있는 시각적 표시자(indicator)가, 키보드의 유저에 대한 피드백으로서, 제공될 수도 있다. 예를 들면, 스트로크가 실행될 때, 키보드 상에서의 스트로크의 시작 지점 및 일시적 경로를 시각적으로, 그래픽적으로 나타내기 위해, 스트로크의 실행 동안 "혜성 꼬리"가 디스플레이될 수도 있다(예를 들면, 키보드 상에 중첩되는 것으로 디스플레이될 수도 있다). 예를 들면, 유저에게 추가적인 입력(예를 들면, 디스플레이된 대안을 선택하는 것 또는 하나 이상의 현재 디스플레이된 대안을 버리는 것, 또는 제스처/스트로크 입력을 "되돌리기하는 것")을 제공할 기회를 제공하기 위해, 이러한 피드백은 스트로크의 실행 이후에도 계속 디스플레이될 수도 있다. 예를 들면, 혜성 꼬리는, 스트로크의 실행 동안 최근에 더 많이 터치되었던(또는 "히트"되었던) 키보드 상의 디스플레이 지점에서 더 두껍게(그리고 더 밝게) 나타날 수도 있고, 최근에 덜 터치되었던 키보드 상의 디스플레이 지점을 더 얇게(그리고 덜 밝게) 나타낼 수도 있다(예를 들면, 스트로크가 완성되어 감에 따라 스트로크의 그래픽적인 일시적 이력을 제공한다). 예를 들면, 스트로크의 그래픽적인 일시적 이력(예를 들면, 실행 동안 스트로크의 방향을 일시적으로 나타냄)을 제공하기 위해, 화살표 타입의 스트로크 꼬리가 사용될 수도 있다. 예를 들면, 제스처가 명확하게 해석되었다는 것을 나타내기 위해 컬러가 또한 사용될 수도 있다(예를 들면, 일단 제스처가 완료되면, "이해됨"을 나타나기 위해 혜성 꼬리는 그린으로 변하거나, 또는 "이해되지 않음"을 나타내기 위해 레드로 변한다). 따라서, 유저는, 예시적인 모호성 제거 기술의 일부로서, 스트로크/제스처 엔트리에서의 그들의 의도를 검증하는 그래픽 출력을 제공받을 수도 있다.
추가적으로, 도면에서 명시적으로 도시되지는 않지만, 키보드 입력의 현재 상태의 이해의 시각적 용이성을 제공하기 위해, 컬러 및 음영이 사용될 수도 있다(예를 들면, SHIFT(시프트) 캐릭터에 대한 중간 그레이, 및 숫자 자체에 대한 진백색(true white)). 다른 시각적 표시자가 또한 사용될 수도 있는데, 예를 들면, 키보드가 형상 기록 모드에 있을 때 키는 연결된 것으로 디스플레이될 수도 있다. 컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 키보드 입력의 현재 상태의 이해의 이러한 시각적 용이성을 제공하기 위해 임의의 타입의 그래픽 기술이 사용될 수도 있다는 것을 이해할 것이다. 예를 들면, 그/그녀가 어떤 모드에 있는지를 유저가 느낄 수 있도록 햅틱이 사용될 수도 있고, 및/또는 유저의 손가락(들)을 가이드하기 위해 햅틱이 사용될 수도 있다(예를 들면, 방사상 메뉴 엔트리와는 대조적으로, 형상 기록 엔트리에서 손가락 또는 입력 오브젝트가 키의 경계를 가로지르고 있을 때 햅틱 텍스쳐, 및/또는 상이한 햅틱 피드백을 사용한다). 또한, 햅틱과 함께 또는 햅틱 없이, 오디오 큐(audio cue)가 사용될 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 상기에서 논의되는 단어(또는 다른 심볼의) 예측은, 예측으로서 방사상 엔트리 스트로크 및/또는 스트로크 바로가기를 명시적으로 나타낼 수도 있는 짧은 스트로크(또는 방사상 엔트리) 및 잠재적인 형상 기록 후보 둘 다를 포함할 수도 있는 예측 대안의 리스트를 제공할 수도 있다. 예를 들면, 리스트는, 짧은 스트로크(또는 방사상 엔트리) 대안을 나타내는 명시적인 텍스트 이름(text name) 및/또는 그래픽 오브젝트(예를 들면, 대안으로서 열거되는 텍스트 "(스페이스)")를 포함할 수도 있다. 예를 들면, 대안의 이러한 리스트는, 유저에게, 모호성 제거 입력을 제공할 기회를, 예측 대안의 리스트로부터의 선택의 형태로 제공할 수도 있다. 본원에서 논의되는 예시적인 기술에 따르면, 제스처가 입력되고 있음에 따라, 예측은 키보드 상에서(예를 들면, 키보드의 상부에서), 또는 키보드와 관련하여 디스플레이될 수도 있다. 본원에서 논의되는 예시적인 기술에 따르면, 예측은, (예를 들면, 그래픽의 선택가능한 "되돌리기" 심볼로서의, 및/또는 선택가능한 텍스트 옵션으로서의) 선택가능한 "되돌리기" 선택과 함께, 키보드 상에서 디스플레이될 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 유저는, 방사상 엔트리 스트로크를 통해, 대안적인 제안 리스트(104)에 있는 대안의 선택을 나타낼 수도 있다. 예를 들면, 유저는, (만약 있다면) 키보드의 상부에서 단어/제스처 예측으로부터 선택하기 위해, (키 또는 키가 아닌 것 상에서의) 수직 하방의(straight down) 스트로크를 제공할 수도 있다. 어떠한 예측도 없다면, 이것은 무연산(no-op)으로 추론될 수도 있다. 예를 들면, 수직 하방의 일직선으로 스트로크하는 것은, 리스트의 디폴트(제1) 선택물(choice)을 선택한다. 예를 들면, 오른쪽으로의 45도의 굴곡을 가지고 수직 하방으로 스트로크하는 것은, 제2 선택물의 선택으로서 추론될 수도 있다. 예를 들면, 오른쪽으로의 90도의 굴곡을 가지고 수직 하방으로 스트로크하는 것은, 제3 선택물의 선택으로서 추론될 수도 있다. 대안적으로, 유저는 또한, 디스플레이된 대안적 제안을 선택하기 위해 그것을 탭핑할 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 형상 기록에서의 예측 선택을 위한 다른 예시적인 구현예는, 선택지(selection)가 이용가능하자 마자 선택지를 갖는 방사상 메뉴를 디스플레이하는 것을 수반할 수도 있고 유저는 손가락 또는 다른 입력 오브젝트의 속도를 줄인다(예를 들면, 제스처가 완료될 가능성이 높다는 것을 의미함). 예를 들면, 손가락이 느려지면, 방사상 메뉴가 바로 손가락 위치에서 나타날 수도 있다. 예를 들면, 그 다음 유저가 (예를 들면, 그/그녀가 실제로는 전체 단어와 관련한 그/그녀의 활용을 완료하지 않았기 때문에) 다시 가속하면, 방사상 메뉴의 중간 단계의 제안은 사라질 수도 있고 유저는, 손가락이 다시 느려질 때, 제안을 갖는 다른 방사상 메뉴의 디스플레이를 제공받을 수도 있다. 예를 들면, 하방 선택지가 디폴트 예측일 수도 있다. 이 예시적인 시나리오에서, 디폴트 예측을 선택하기 위해, 하방으로의 짧은 스트로크가 사용될 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 일반적으로 입력되는 스트로크 바로가기와의 잠재적인 혼란을 고려하여, 소정의 낮은 빈도의 단어는 단어 사전으로부터 생략되거나 또는 제거될 수도 있다. 예를 들면, 단어 "igg"(무시(ignore) 또는 냉대(snub)의 속어(slang word))가 영어 사전에서 나타나지만, 현재는 좀처럼 사용되지 않으며 따라서, 예시적인 "엔터" 제스처(예를 들면, 좌하방으로 스트로크하는 것)와의 충돌 가능성을 무시하기 위해, 예시적인 형상 기록 사전에서 생략될 수도 있는데, 예시적인 "엔터" 제스처가 "i" 키의 근처에서 시작하여 분명히 표현되면, 이 단어의 형상 인식을 트리거할 수도 있다. 예를 들면, 단어 사전은, 직선의 방사상 메뉴 스트로크와 (덜 빈번한) 형상 기록 단어 사이의 충돌을 야기할 수도 있는 낮은 빈도의 용어를 배제할 수도 있다. 예를 들면, 낮은 빈도의 단어에 대해서도, 꽤 완전한 사전을 구비하는 것이 일반적으로 바람직할 수도 있지만, 이들 단어가 스트로크 제스처인 것으로 오인식될 가능성이 실질적으로 높은 것으로(예를 들면, 약 90%의 확률, 또는 그 이상) 결정되는 경우, 낮은 빈도의 단어를 생략하는 것이 더 바람직할 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 터치 및 펜 입력 둘 다가 키보드 상에서 사용될 수도 있다. 예를 들면, 형상 기록 기능성을 스트로크 제스처 기능성과 분리하기 위해, 터치 또는 펜 양식(modality)의 선택이 사용될 수도 있다. 예시적인 기술에 따르면, 스트로크 제스처는 터치에 의해서만 분명하게 표현될 수도 있고 형상 기록 제스처는 펜을 통해서만 분명하게 표현될 수도 있다. 대안적으로, 펜 및 터치 입력은 동등하게 간주될 수도 있다. 또한, 형상 기록 입력을 스트로크 제스처 입력과 구별하기 위해, 마우스 입력이 사용될 수도 있다. 컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 다른 형태의 입력(다른 입력 오브젝트를 가짐)이 또한 사용될 수도 있다는 것을 인식할 것이다.
예시적인 기술에 따르면, 손가락을 이용한 형상 기록을 명시적으로 허용하기 위해, 터치 전용 모드가 호출될 수도 있다.
도 8은 방사상 제스처 기능성과 관련되는 예시적인 방사상 제스처 도움말 메뉴(802)를 묘사한다. 예를 들면, 유저는, 방사상 제스처 메뉴(802)의 디스플레이를 개시하도록 지정되는 제어 입력을 입력하는 것에 의해 방사상 제스처 메뉴(802)에 액세스할 수도 있다. 예를 들면, 방사상 제스처 메뉴(802)는, 방사상 제스처 메뉴(802)와 관련되는 적어도 미리 결정된 시간 임계 값 동안 "터치 및 유지" 엔트리를 유저가 실행한 이후, 키보드 위치(예를 들면, 키 위치)로부터 "슬라이드 업(slide-up)" 메뉴로서 디스플레이될 수도 있다. 도 8에서 도시되는 바와 같이, 유저가 "e" 키 상에서 이러한 "터치 및 유지" 엔트리를 실행했다면, 방사상 제스처 메뉴(802)는, 눌려진 키(예를 들면, 도 8에서 도시되는 바와 같은 "e" 키) 위의 영역에서 유저에게 보일 수 있는 "슬라이드 업" 디스플레이 메뉴로서 제공될 수도 있고, 그 결과 유저는 유저의 손가락(또는 키 입력을 위해 사용되는 다른 오브젝트)에 의해 어떠한 옵션도 차단되지 않으면서 방사상 메뉴 옵션을 볼 수 있게 될 수도 있다. 또한, 예를 들면, 방사상 제스처 메뉴(802)는, 자신의 디스플레이 아래에 있는 키의 적어도 약간의 가시성을 제공하도록, 디스플레이될 수도 있고 반투명할 수도 있다. 도 8에서 도시되는 바와 같이, 방사상 메뉴는, 왼쪽 스트로크가 백스페이스를 나타낼 수도 있고, 오른쪽 스트로크가 스페이스를 나타낼 수도 있고, 상향 스트로크가 대문자를 나타낼 수도 있고, 좌하향 스트로크가 엔터를 나타낼 수도 있다는 도움말을 제공할 수도 있다. 따라서, 예를 들면, 유저가 키보드 상의 임의의 곳을 터치하고 이들 스트로크 중 하나를 실행하면, 그/그녀는, 방사상 제스처 도움말 메뉴(802)에서 나타내어지는 바와 같은 각각의 키보드 입력을 나타낼 수도 있다.
도 9는 키보드(100)가 부착된 예시적인 디바이스(902)를 묘사하는데, 유저가 대안적인 제안 리스트(104)로부터 "hello" 대안을 선택한 이후의 디스플레이(902)(이것은 터치 디스플레이일 수도 있거나 또는 비터치 디스플레이일 수도 있다) 상의 단어 "hello"를 도시한다. 도 9에서 도시되는 바와 같이, 예를 들면, 키보드(100A)로부터 입력을 획득하기 위한, 그리고 키보드(100A)로 출력을 제공하기 위한 입/출력 컴포넌트(904)가 디바이스에 포함될 수도 있다. 도시되지는 않지만, 대안적인 제안 리스트(104)는, 키보드(100A) 상에서 외에, 또는 키보드(100A) 상에서 대신, 별개의 디스플레이(902)에서 디스플레이될 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 다양한 입력 제스처의 모호성 제거의 일부로서, 상태 머신이 사용될 수도 있다. 예를 들면, 모호성 제거 엔진은, 스트로크 데이터 또는 제스처 데이터의 엔트리를 나타내는 키보드 입력 데이터를 획득할 수도 있다. 예를 들면, 스트로크 데이터가 방사상 엔트리(예를 들면, 스트로크 바로가기)에 대응하는지 또는 형상 기록 스트로크에 대응하는지의 여부를 결정하기 위해서, 미리 결정된 임계 값이 사용될 수도 있다. 예를 들면, 입력 데이터 해석 모듈이 스트로크의 길이뿐만 아니라, 스트로크의 시작 지점 및 방향을 결정할 수도 있다. 예를 들면, 유저가 (현재) "탭" 모드에 있고, 어떤 키를 터치 다운하고, 처음 터치된 키로부터 여러 개의 키만큼 분리된 다른 키로의 방향성 움직임이 후속되면, 형상 기록 모드로의 엔트리 모드 전이가 원활하게(seamlessly) 제공될 수도 있다.
다른 기준도 가능한데, 예를 들면, 스트로크의 압력 프로파일, 결과적으로 발생하는 모션 프로파일에 기초하여 터치의 타입, 위치, 및 성질을 추론하기 위한 3축 가속도계 및 자이로스코프 모션 센서 시그니쳐, 및/또는 가속도계, 자이로스코프, 및 자력계 센서 판독치의 센서 융합으로부터 유도되는 완전한 순시(full instantaneous) 3차원(three-dimensional; 3D) 방위를 포함한다. 컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 이러한 센서 신호에 기초하여 터치 입력을 개선하는, 또는 결합된 모션 및 터치 신호로부터 터치의 타입(예를 들면, 엄지손가락 대 검지(forefinger) 입력)을 추론하는 것에 의해 터치 핸들링을 조정하거나 향상시키는 많은 방식이 존재한다는 것을 인식할 것이다. 예를 들면, 이들 채널은 예를 들면, 입력의 모호성을 제거하는 머신 학습 접근 방식에서 사용될 수도 있는 추가적인 피쳐로서, 입력의 타입을 결정하기 위해 사용될 수도 있다.
예를 들면, 입력 데이터 해석 모듈은, 스트로크가 하나 이상의 굴곡 지점을 포함했는지의 여부, 및 각기 각각의 결정된 굴곡 지점에서, 스트로크의 방향에서의 전환과 관련되는 각각의 각도를 결정할 수도 있다. 예를 들면, 굴곡 지점을 갖는 스트로크는, 스트로크가 형상 기록 스트로크로서 의도되는 가망성을 상승시킬 수도 있다. 이 맥락에서, "굴곡 지점"은, 스트로크의 엔트리 동안 방향에서의 실질적 변화를 스트로크가 포함하는 지점을 가리킬 수도 있다. 예를 들면, 굴곡 지점은, 위쪽으로 오목한 아크를 아래쪽으로 오목한 아크와 구별하는, 또는 그 반대로 구별하는 곡선 상의 지점을 포함할 수도 있다. 그러나, 형상 기록에서, 몇몇 단어는, 굴곡 지점 없이, 일 방향의 움직임만을 수반할 수도 있다(예를 들면, 'we', 'to', 'all', rip'). 형상 기록 검출을 위한 입력으로서 주로 간주되는 것은, 이동된 경로(traveled path)에서의 스크린 지점의 세트이다. 예를 들면, 현재(및 과거) 키보드 엔트리 모드를 상태도(state diagram)에서의 상태로서 추적하기 위해 상태 머신이 사용될 수도 있다. 예를 들면, 현재 상태가 "형상 기록" 모드를 나타내면, 다음 번 키보드 입력은 "형상 기록" 모드에서 계속할 확률이 높을 수도 있다. 따라서, 유저의 계속되는(즉, 시간적으로 다음 번의) 입력에서 유저의 의도를 추론하기 위해 입력 모드의 이력이 사용될 수도 있다.
예를 들면, 모드는 다음 번 입력에 의해 변경될 수도 있거나, 또는 키에 대해 실질적으로 더 많은 압력을 적용하는 것과 같은 명시적 입력에 의해 변경될 수도 있는데, 키에 대해 실질적으로 더 많은 압력을 적용하는 것은, 키보드 엔트리 모드를 변경하려는 유저에 의한 의도로서 키보드 엔진에 의해 해석될 수도 있다. 다른 예로서, 실질적으로 가벼운 터치는 형상 기록 모드를 사용하려는 의도로서 해석될 수도 있고, 실질적으로 강하게 눌려진 터치는 형상 기록 모드 이외의 제스처 모드를 사용하려는 의도로서 해석될 수도 있다. 예를 들면, 입력 모호성 제거를 위해, (예를 들면, 압력 감응 키보드에 대한) 압력의 결정이 사용될 수도 있다.
예를 들면, 관측된 길이를 미리 결정된 임계 길이와 비교하는 것에 의해, 더 큰 길이로 실행된 스트로크가 형상 기록 스트로크로서 의도될 확률이 더 높다는 것이 결정될 수도 있다.
예를 들면, 입력 데이터 해석 모듈은, 스트로크의 실행의 속도 및/또는 가속도(예를 들면, 엔트리의 속력 및/또는 가속도)를 결정할 수도 있다. 예를 들면, 관측된 속도 및/또는 가속도를 미리 결정된 임계 속도 및/또는 가속도와 비교하는 것에 의해, 더 큰 속도 및/또는 가속도로(예를 들면, 더 빠르게, 더 빠른 속력으로) 실행된 스트로크가, 유저가 빈번하게 사용할 수도 있는 스트로크 바로가기, 또는 형상 기록 제스처를 나타낼 수도 있다는 것이 결정될 수도 있다.
예를 들면, 키보드 엔진 입력 모듈은, 키보드에 대한 터치에 대응하는 입력을 수신할 수도 있다. 키보드 상에서의 위치, 터치에 의해 둘러싸이는 키보드 상에서의 표면적, 등등과 같은 터치의 다양한 특성(property)이 결정될 수도 있다. 예를 들면, 키보드 엔진은 초기 터치를, 제스처의 시작 입력으로서 해석할 수도 있다. 예를 들면, 초기 터치가 제스처의 종단 액션이면, 그 터치는 키보드의 그 위치 상에서의 "탭"에 대한 유저의 의도로서 해석될 수도 있고, 입력은, 예를 들면, "탭" 모드에서 터치되는 위치에 실질적으로 위치되는 키의 의도된 엔트리로서 해석될 수도 있다.
예를 들면, 의도 모호성 제거 엔진은 (예를 들면, 유저가 키보드 입력을 입력함에 따라 키보드 엔트리 모드에 대응하는 상태를 추적하는 상태 머신의 도움을 받아), "탭" 또는 "타이프(type)" 모드, "형상 기록" 모드, 및/또는 "방사상 엔트리" 입력 엔트리와 같은 상태를 추적할 수도 있다. 예를 들면, 현재 엔트리 이전의 최종 상태가 "탭" 모드 또는 "타이프" 모드였다면, 다음 번 키보드 입력은, 일시적 방향성 제스처가 수신되지 않는 한, "탭" 모드 또는 "타이프" 모드인 것으로 의도될 가능성이 높을 수도 있는데, 그 시점에서, 모드는 상이한 입력 모드(예를 들면, "형상 기록" 모드)로 변경될 수도 있고, 그 상이한 입력 모드는, 상이한 상태(예를 들면, "형상 기록" 상태)로 이동하기 위한 결정을 행하는 상태 머신에 대한 입력으로서 간주될 수도 있다. 예를 들면, 최종(현재) 상태가 "형상 기록" 모드에 있는 상태였다면, 다음 번 키보드 입력은 "형상 기록" 모드에 있는 것으로 의도될 확률이 높을 수도 있다. 예를 들면, 그/그녀가 키보드 엔트리를 계속함에 따라 현재 입력 모드가 (예를 들면, 키보드 또는 디바이스 디스플레이 상의 키보드 모드 표시자로서 또는 키보드의 컬러의 변화, 키보드 상의 하나 이상의 키의 상이한 외관, 등등과 같은 시각적 표시자로서) 유저에게 나타내어질 수도 있다.
예를 들면, 초기 터치 이후에, 초기 터치 위치와는 상이한 키보드 상의 위치로의 키보드 상에서의 제스처화된 움직임이 후속되면, 키보드 엔진은, 이러한 움직임을, 제스처를 입력하려는 유저에 의한 의도로서 해석할 수도 있다. 예를 들면, 움직임이 미리 결정된 임계 움직임 길이(예를 들면, 20 픽셀)를 초과하면, 키보드 엔진은, 이러한 움직임을, 형상 기록 제스처를 입력하려는 유저에 의한 의도로서 해석할 수도 있다. 예를 들면, 미리 결정된 임계 움직임 길이는, 키보드의 사이즈, 디스플레이의 사이즈 및 해상도에 의존하는 값, 및/또는 디스플레이가 수직인지, 기울어졌는지, 또는 수평인지, 등등의 여부에 의존하는 값으로서 결정될 수도 있다. 예를 들면, 키보드의 입력 모듈에 의해 수신되는 입력 데이터는, 움직임이 진행함에 따라, 입력 데이터를 저장할 수도 있고, 그 결과 키보드 엔진은, 입력 제스처와 관련되는 일시적 움직임에 수반되는 일시적 상태에 대한 입력을 해석할 수도 있다.
예를 들면, 키보드 엔진은, 초기 입력 "핑거 다운(finger down)"으로부터 "손가락 움직임"의 각각의 단계를 계속 통과하여 "핑거 업(finger up)"의 최종 입력까지의 입력 제스처 경로를 분석할 수도 있다. 키보드 엔진은, 제스처를 해석하고 유저의 하나 이상의 잠재적인 의도를 결정하기 위해, 이러한 경로를 사용할 수도 있다. 예를 들면, 키보드 엔진은, 유저 의도가 짧은 스트로크 또는 방사상 입력을 제공하는 것이었는지, 또는 형상 기록 입력을 제공하는 것이었는지의 여부를 결정하기 위해, 입력의 잠재적인 모호성 제거를 결정할 수도 있다.
예를 들면, 의도 모호성 제거 엔진은, 다양한 터치 및 움직임의 특성을 묘사하기 위해, 입력의 다양한 특성을 활용할 수도 있다. 예를 들면, 특성은, 움직임의 길이(예를 들면, "유저 입력이 얼마나 멀리 이동했는가?", "움직임이 얼마나 많은 픽셀 또는 키를 통해 이동했는가?"), 움직임의 경로(예를 들면, "유저 입력이 어떤 문자 또는 키를 통해 이동했는가?", 유저 움직임이 어떤 방향 또는 방향들을 통해 이동했는가?", "움직임이 어디에서 시작했고 그것이 어디에서 종료했는가(움직임이 어떤 경로를 취했는가)?", "경로의 길이는 얼마인가?"), 및 특정한 입력 제스처를 완료하는 데 사용되는 시간의 양(예를 들면, 더 많은 시간이 사용되는 것은, 형상 기록 제스처를 입력하려는 의도를 암시할 수도 있다)을 포함할 수도 있다. 또한, 의도 모호성 제거 엔진은, 스트로크의 동역학(예를 들면, 가속, 감속, 가속, 등등)을 포함하는 특성을 활용할 수도 있다.
추가적으로, 특성은, 제스처가 입력될 때의 입력 속도에서의 가속도, 메뉴를 보면서 보낸 시간의 유저 이력 또는 다양한 타입의 입력의 엔트리와 관련되는 유저 이력을 포함할 수도 있다. 예를 들면, 관찰된 값은 모호성 제거를 지원하기 위해 임계 값에 비교될 수도 있다. 예를 들면, 다양한 타입의 키보드 입력에서의 유저의 과거 의도에 관한 정보를 제공하기 위해, 유저 프로파일이 사용될 수도 있다. 또한, 소정의 기능성에 대한 짧은 스트로크 제스처가 소정의 키까지로 제한될 수도 있기 때문에(예를 들면, 자동 반복 백스페이스는 숫자 키까지만 제한될 수도 있다), 특성은, 제스처 입력을 시작하기 위해 터치되었던 키의 결정을 포함할 수도 있다.
예를 들면, 움직임의 길이가 미리 결정된 길이 임계 값 미만인 것으로 결정되면, 특정한 움직임은, 짧은 제스처를 제공하려는 유저에 의한 의도로서 해석될 수도 있는데, 짧은 제스처는 방사상 입력, 또는 방사상 메뉴 입력으로서 해석될 수도 있다. 다른 예로서, 움직임이 키의 방사상 영역에서 개시되고, 움직임이 방사상 영역 밖으로 나오고, 미리 결정된 임계 시간보다 더 긴 시간의 길이 동안 계속되면, 유저가 (방사상 엔트리 입력 또는 탭 모드가 아니라) 형상 기록 모드를 사용하려고 의도했다는 의도가 추론될 수도 있다.
도 10a 및 도 10b는, 예시적인 의도 모호성 제거 엔진에 의해 사용될 수도 있는 예시적인 상태 머신을 묘사한다. 도 10a에서 도시되는 바와 같이, 예시적인 상태 머신의 상태 및 전이를 예시하기 위해, 상태도가 사용될 수도 있다.
도 10a에서 도시되는 바와 같이, 유저는 상태 TouchStart(1002)에서 키보드에 대한 입력을 시작할 수도 있는데, 그 시점에서, 키는 키 기록(Record the key)(StartKey)(1004)에서 기록될 수도 있다. 유저는, TouchMove(1006)에서, 손가락 또는 다른 입력 오브젝트를 움직일 수도 있는데, 그 시점에서, 획득된 위치는 (위치를 제스처 경로에 추가(1008)에서) 제스처 경로에 추가될 수도 있다.
1010에서, 시작 키가 숫자 키인지의 여부, 및 경로가 "충분히 긴"지(예를 들면, 미리 정의된 임계 제스처 경로 길이보다 더 긴지)의 여부가 결정될 수도 있다. 만약 그렇다면, 1012에서, "반복" 키가 생략된다.
1014에서, 경로가 키 폭의 두 배(2x) 보다 더 긴지의 여부가 결정된다. 만약 그렇다면, 1016에서, 형상 기록 모드가 관련된다.
터치 활동이 종료되면, TouchEnd(1018)가 도달될 때까지 TouchMove(1006)가 반복한다.
도 10b(도 10a의 TouchEnd(1018)에서 시작함)에서 도시되는 바와 같이, (예를 들면, 1016에서의 형상 기록 모드의 관련화로부터의) 형상 기록 모드(1020), 또는 탭 모드(1022) 중 어느 하나에서, 진행이 계속된다.
1024에서, 탭 모드(1022)에 있는 경우, 경로에 대한 매칭하는 방사상 제스처가 존재하는지의 여부에 대한 결정이 이루어진다. 만약 그렇다면, 1026에서, 방사상 제스처가 방출된다. 경로에 대한 매칭하는 방사상 제스처가 존재하지 않으면, 1028에서, 탭핑된 키가 방출된다. 이 맥락에서, "방출한다(emit)"는 키보드 엔진으로부터 정보를 출력하는 것(예를 들면, 디스플레이 디바이스 상에 정보를 디스플레이하는 것, 저장 매체 상에 정보를 저장하는 것, 정보를 인쇄하는 것, 등등)을 가리킬 수도 있다.
시스템이 형상 기록 모드(1020)에 있으면, 1030에서, 경로가 비어 있는지의 여부에 대한 결정이 이루어진다. 1030에서, 경로가 비어 있다면, 1032에서 탭 모드가 관련되고 1028에서 탭핑된 키가 방출된다.
1030에서, 경로가 비어 있지 않으면, 1034에서, 매칭하는 단어가 존재하는지의 여부에 대한 결정이 이루어진다. 만약 그렇다면, 1036에서, 매칭된 단어가 방출된다.
1034에서, 매칭하는 단어가 존재하지 않으면, 1038에서, 경로가 선형적이고 너무 길지 않은지(예를 들면, 미리 결정된 임계 값 미만인지)의 여부가 결정된다. 1038에서 "아니오"이면, 1040에서, 매칭하는 "최상의 추측" 단어가 존재하는지의 여부에 대한 결정이 이루어진다. 1040에서, 매칭하는 "최상의 추측" 단어 존재하면, 1042에서, 단어가 제안된다. 1040에서, 매칭하는 "최상의 추측" 단어가 존재하지 않으면, 1044에서, 실패가 추론된다. 이 맥락에서, "실패"는, 제공된 입력으로부터 유저 의도의 검출의 실패를 가리킨다.
1038에서, 경로가 선형적이고 너무 길지 않다는 것이 결정되면, 1046에서, 경로에 대한 매칭하는 방사상 제스처가 존재하는지의 여부에 대한 결정이 이루어진다. 만약 그렇다면, 1026에서, 방사상 제스처가 방출된다. 1046에서, 경로에 대한 매칭하는 방사상 제스처가 존재하지 않는다는 것이 결정되면, 1044에서 실패가 추론된다. 이 맥락에서, "실패"는, 제공된 입력으로부터 유저 의도의 검출의 실패를 가리킨다.
본원에서 논의되는 예시적인 기술에 따르면, 특정한 키에 대한 "터치 및 유지" 입력을 통해 방사상 메뉴가 요청되어, 터치되는 "기본" 캐릭터와는 상이한 다양한 캐릭터(또는 기능)(예를 들면, 대문자, 상이한 언어, 구두점 심볼(punctuation symbol), 등등 - 나타내어진 방향에서의 짧은 스트로크를 통해 획득가능함)를 획득하기 위해 입력될 수도 있는 방향성의 짧은 스트로크를 나타내는, 그 키를 둘러싸는 그래픽 디스플레이를 제공할 수도 있다. 본원에서 논의되는 예시적인 기술에 따르면, 방사상 메뉴는 처음에 선택된 키를 둘러싸는 것으로 디스플레이될 수도 있지만, 그 다음에는, 유저의 손가락(또는 다른 키보드 엔트리 오브젝트)에 의한 디스플레이의 폐색을 방지하기 위해, (예를 들면, 미리 결정된 시간 임계 값 이후에) 키보드 상에서 슬라이드 업될 수도 있다. 그래픽 디스플레이가 키를 둘러싸든 또는 슬라이드 업하든, 손가락(또는 다른 입력 오브젝트)이 릴리스하자 마자 기대되는 것을 유저가 이해할 수도 있도록, 어떤 방향 및 캐릭터가 현재 선택되는지의 표시가 디스플레이될 수도 있다. 본원에서 논의되는 예시적인 기술에 따르면, 유저는, 방사상 메뉴를 요청하지 않으면서 스트로크식의 방사상 메뉴 제스처(stroking radial menu gesture)를 입력할 수도 있고, 방사상 제스처 엔트리와 형상 기록 제스처 사이를 구별하도록 유저 제스처의 모호성을 제거하기 위해, 모호성 제거 기술이 (예를 들면, 모호성 제거 엔진을 통해) 사용될 수도 있다.
도 11은, 키보드 엔진(1102)에 대한 간단하고 일반화된 로직의 예를 세그먼트(1104, 1108, 및 1116)로서 예시하는데, 세그먼트(1104, 1108, 및 1116)는, 입력을 해석하기 위해 키보드 엔진에 의해 사용될 수도 있는 (본원에서는 판독성의 용이성을 위해) 키보드(100)에 대한 입력을 추적하는 일반화된 세그먼트를 나타낼 수도 있다. 예를 들면, 도 11에서 도시되는 바와 같이, 키보드(100)로부터 "터치 다운" 입력을 수신하고, 입력 "들어 올림(lift up)" 움직임이 후속하는 것의 결과로서, "터치 다운"의 초기 입력(1106)이 결정될 수도 있다. 그 다음, "들어 올림"(1107)의 최종 결정이 추론될 수도 있는데, 그 시점에서, 로직 세그먼트(1104)에 대응하여, 유저가 키보드 상의 특정한 키를, 그것을 입력으로서 제공하기 위해, "탭"하려고 의도했다는 것을 추론할 수도 있다.
예를 들면, 키보드(100)로부터의 "터치 다운" 입력을 수신하고, 입력되는 하나의 방향성 움직임이 후속하는 것의 결과로서, "터치 다운"의 초기 입력(1110)이 결정될 수도 있다. 그 다음, "대안"(1112)의 추론이 입력될 수도 있고, 입력 "들어 올림" 움직임이 후속할 수도 있다. 예를 들면, "대안"(1112)은, 스트로크가 후속하는 초기 키의 시퀀스, 또는 다른 키가 후속하는 초기 키를 포함할 수도 있다. 그 다음, "들어 올림"(1114)의 최종 결정이 추론될 수도 있는데, 이 시점에서, 상기에서 논의되는 바와 같이, 그리고 세그먼트(1108)에 대응하여, 유저가 "방사상 엔트리" 또는 "형상 기록" 엔트리 중 어느 하나를 제공하려고 의도했다는 해석이 추론될 수도 있다. 예를 들면, 본원에서 더 논의되는 바와 같이, 그 다음, 예시적인 모호성 제거 기술이 활용될 수도 있다.
예를 들면, 키보드(100)로부터의 "터치 다운" 입력을 수신하고, 입력되는 하나의 방향성 움직임이 후속하는 것의 결과로서, "터치 다운"의 초기 입력(1118)이 결정될 수도 있다. 그 다음, "대안"(1120)의 추론이 입력될 수도 있고, 입력 "방향 변경" 움직임이 후속할 수도 있다. 예를 들면, "대안"(1120)은, 스트로크가 후속하는 초기 키의 시퀀스, 또는 다른 키가 후속하는 초기 키를 포함할 수도 있다. 형상 기록에서, 몇몇 단어는, 굴곡 지점 없이, 일 방향의 움직임만을 수반할 수도 있다. 형상 기록 검출을 위한 입력으로서 주로 간주되는 것은, 이동된 경로(traveled path)에서의 스크린 지점의 세트이다. 옵션적으로(optionally), "굴곡 지점"(1122)의 추론이 입력될 수도 있고, 다양한 다른 입력이 후속할 수도 있다. 예를 들면, 굴곡 지점은, 입력 제스처의 움직임에서의 방향 변경의 각도뿐만 아니라, 움직임의 속도 및/또는 가속도 및 제스처 움직임의 다른 속성(attribute)을 결정하도록 분석될 수도 있다. 입력 "들어 올림" 움직임이 마지막으로 수신될 수도 있다. 그 다음, "들어 올림"(1124)의 최종 결정이 입력될 수도 있고, 이 시점에서, 유저가, 상기에서 논의되는 바와 같이, 그리고 로직 세그먼트(1116)에 대응하여, "형상 기록" 엔트리를 제공하려고 의도했다는 해석이 추론될 수도 있다.
그러나, 방사상 메뉴에 대한 스트로크는 단지 일 하나의 방향의 움직임만을 수반하지 않을 수도 있다. 예를 들면, 방사상 메뉴 상에서, 유저는 위로 스트로크 할 수도 있고, 그 다음, 시프트 대신 백스페이스를 입력하기 위해, 릴리스하기 이전에 왼쪽을 향해 이동할 것을 결정할 수도 있다. 추가적으로, 형상 기록에서, 몇몇 단어는, 굴곡 지점 없이, 일 방향의 움직임만을 수반할 수도 있다(예를 들면, 'we', 'to', 'all', rip'). 형상 기록 검출을 위한 입력으로서 주로 간주되는 것은, 이동된 경로(traveled path)에서의 스크린 지점의 세트이다.
본원에서 논의되는 예시적인 기술에 따르면, 형상 기록 제스처는, 입력의 다양한 속성을 통해, 방사상 엔트리 입력과 구별될 수도 있다. 예를 들면, 모호성 제거 엔진은, 방사상 엔트리 입력과는 구별되는 바와 같은, 형상 기록 제스처를 입력하기 위해 유저에 의해 사용되는 상이한 압력(예를 들면, 형상 기록을 위한 가벼운 터치/호버, 방사상 엔트리 입력을 위한 강한 터치 호버)을 결정할 수도 있다. 예를 들면, 이러한 상이한 압력을 검출하기 위해, 입력이 형상 기록 입력으로서 의도되는지 또는 방사상 엔트리 입력으로서 의도되는지의 여부를 결정하기 위한 터치 압력 감지 및/또는 디스플레이 위에서의 감지가 사용될 수도 있다.
예를 들면, 펜 감지 및 터치 감지를 지원하는 키보드의 경우, 펜 입력은, 입력이 형상 기록 입력으로서 의도된다는 것을 나타낼 수도 있고, 한편 터치 입력은, 입력이 스트로크 제스처로서 의도된다는 것을 나타낼 수도 있다.
예를 들면, 멀티터치 감지를 지원하는 키보드의 경우, 입력을 위해 사용되는 손가락의 수는 입력을 구별하기 위해 사용될 수도 있다. 예를 들면, 두 손가락 입력은, 입력이 형상 기록 입력으로서 의도된다는 것을 나타내는 것으로 해석될 수도 있고, 한편, 한 손가락 입력은, 입력이 스트로크 제스처로서 의도된다는 것을 나타내는 것으로 해석될 수도 있다.
예를 들면, 모호성 제거 엔진은 또한, 유저의 스킬 레벨에 기초하여 형상 기록 제스처와 방사상 엔트리 입력 사이를 구별할 수도 있다(예를 들면, 경험이 많은 유저는 입력 오브젝트 또는 손가락을 오른쪽으로 그 다음 아래로 움직이는 것에 의해 '엔터' 제스처를 의도하지는 않을 것이고, 반면 초보자는 그 의도를 가지고 이러한 입력을 제공할 수도 있다).
예를 들면, 모호성 제거 엔진은, 유저의 선호 언어에 기초하여, 형상 기록 제스처와 방사상 엔트리 입력 사이를 구별할 수도 있다.
예를 들면, 모호성 제거 엔진은, 스트로크의 동역학(예를 들면, 가속도, 속력, 커브, 등등)에 기초하여, 형상 기록 제스처와 방사상 엔트리 입력 사이를 구별할 수도 있다. 예를 들면, 이들 타입의 입력 피쳐의 모호성 제거 엔진의 모호성 제거에서 모호성 제거 엔진을 훈련시키기 위해, 머신 학습이 사용될 수도 있다.
예를 들면, 디바이스에 대한 유저의 그립을 (예를 들면, 그립 센서를 통해) 감지할 수도 있는 디바이스의 경우, 모호성 제거 엔진은, 디바이스에 대한 유저의 그립(예를 들면, 슬레이트 케이스, 등등에 대한 그립)에 기초하여, 형상 기록 제스처와 방사상 엔트리 입력 사이를 구별할 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 유저에 대한 그/그녀의 일시적 제스처 경로의 그래픽 표시자를 제공하기 위해, "혜성 꼬리"와 같은 그래픽 표시자가 디스플레이될 수도 있다. 따라서, 본원에서 논의되는 예시적인 기술에 따르면, 오른쪽으로의 플릭(flick)은 스페이스 입력의 의도를 나타낼 수도 있고, 오른쪽으로의 더 긴 스트로크는 태브(Tab) 입력의 의도를 나타낼 수도 있다. 대안적으로, (예를 들면, 긴 스트로크 대신) 플릭이 (예를 들면, 임의의 스트로크 방향에 대해) 형상 기록 모드를 트리거할 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 느린 폐루프 모션은, 커서 제어 또는 삽입 지점 움직임 모드(insertion-point movement mode)로 전환하려는 의도로서 추론될 수도 있고, 반면, 빠른 개루프의 탄도 모션은, 선형 스트로크 제스처 및/또는 형상 기록 제스처를 수반할 수도 있는 제스처를 입력하려는 의도로서 추론될 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 폐루프의 미세 위치 결정 모드(closed-loop fine positioning mode)에서는, 다음을 포함하지만, 이들로 제한되지는 않는 다양한 커서(또는 삽입 지점) 배치 제어 기능이 활용될 수도 있다:
(1) 움직인 거리에 기초한 절대적(그러나 간접적인) 배치.
(2) 움직인 거리의 이득 계수 배(times)에 기초한 비례적(상대적) 배치.
(3) 고정된 움직임 거리 임계치까지의 비례적 또는 절대적 제어, 그 움직임 임계치 이후에는 상이한 제어 기능을 가짐. 예를 들면, 타이밍 기반의 자동 반복을 통한 탭 및 유지가 하나의 이러한 기능이다. 예를 들면, 압력 감응 자동 반복을 통한 탭 및 유지는 다른 것이다. 자동 반복은 압력의 함수이다.
(4) 예를 들면, WINDOWS XP 상에서의 마우스 포인터 모션에 대해 구현되는 탄도 제어와 유사한 방식으로, 손가락 움직임 거리 및 속도에 기초한 전달 함수를 통한 비례적 제어.
(5) 손가락 움직임에 기초한 비례적 그리고 절대적 제어의 혼합. 예를 들면, 이러한 제어의 예시적인 구현예의 논의는, 각각의 발명의 명칭이 "Manual controlled scrolling"인 공동 소유의 미국 특허 제7,202,857호 및 미국 특허 제6,707,449호에서 이용가능하다. 예를 들면, (터치스크린의 상황에서의) 이 접근 방식의 기초는, Hinckley 등등의 "New Applications for the Touchscreen in 2D and 3D Medical Imaging Workstations," In Proc. 1995 SPIE Conference on Medical Imaging: Image Display (SPIE Proceedings), Vol. 2431, April 27, 1995, pp. 561-570에서 개설된다.
(6) 예를 들면, 스크린 상에서 키 눌림 자국(impression)에 의해, 또는 간접적인 압력 또는 터치 감응 키보드(예를 들면, MICROSOFT SURFACE TOUCHCOVER) 상에서 느껴질 수 있는 키 눌림 자국 상에서 제공되는 물리적 디텐트(detent)에 전체적으로 또는 부분적으로 링크되는 삽입 지점 이산 움직임(insertion point discrete movement)에 입각한, 상기의 것 중 임의의 것.
미국 특허 제6,707,449호에서 논의되는 바와 같이, 이 미국 특허에서 논의되는 스크롤링의 상황에서, 키보드 상에서의 움직임(또는, 근접 인식 키보드의 경우, 키보드 위에서 이루어지는 제스처)을 검출함에 있어서는, 아주 작은 손가락(또는 다른 입력 오브젝트) 모션을 소정의 환경에서 무시하는 것이 바람직할 수도 있다. 예를 들면, 키보드의 터치 감응 표면 상에서의 유저의 손가락(또는 키보드 근처에서의 제스처용 입력 오브젝트)의 의도치 않은 작은 움직임을 무시하는 것이 바람직할 수도 있다. 이것은, 예를 들면, 터치 감응 표면 상의(또는 근접 인식 키보드 위의) 한 장소에서 손가락을 유지하고 있을 때, 유저가 그의 또는 그녀의 손가락을 절대적으로 정지하도록 제어할 수 없는 경우에 유익할 수도 있다. 이것은 또한, 유저의 손가락의 경련 및/또는 센서 판독에서의 작은 변동으로 인해, 다큐먼트가 디스플레이 스크린 상에서 약간 움직이는 것으로 보이거나, 또는 "흐르는 듯 하는(swimming)" 것을 방지할 수도 있다. 유저의 손가락이 키보드의 표면과 접촉하고 있는 경우(또는 근접 인식 키보드에 가까이 근접하고 있는 경우), 시스템은 상이한 움직임 임계치의 조합의 사용에 의해, 유저가 그의 또는 그녀의 손가락을 의도적으로 움직이고 있는지 또는 그렇지 않은지의 여부를 추론할 수도 있다. 유저가 손가락을 의도적으로 움직이고 있는지의 여부에 관한 결정은, 여러 가지 다른 피쳐 및 인식된 제스처, 예컨대 몇몇 상황에서 및/또는 유저의 데이터에 의존하여 자동 스크롤링 모드의 시작 및/또는 스크롤링을 멈출 수도 있는 제스처에 대한 빌딩 블록(building block)으로서 사용될 수도 있다. 예를 들면, 결정은 환경과 같은 다른 파라미터에 또한 의존할 수도 있다(예를 들면, 시스템은, 유저가 모든 것이 움직이고 있는 버스에 타고 있다는 것을 감지할 수도 있고, 따라서, 임계치는 상이할 수도 있고, 시스템은, 슬레이트가 플랫형이고, 유저의 무릎, 또는 기대고 있는 것, 등등과는 구별된다는 것을 감지할 수도 있다.
유저가 먼저 키보드의 터치 감응 표면을 터치하면(또는 입력 오브젝트를 근접 인식 키보드와 근접하게 이동시키면), 검출시, 유저의 손가락 위치는 키보드 상에서 움직이고 있지 않은 것으로 간주될 수도 있다. 움직이고 있지 않은 상태는 초기 조건일 수도 있다. 움직이고 있거나 움직이고 있지 않은 상태는 플래그로서 저장될 수도 있거나 또는 "움직이고 있는" 또는 "움직이고 있지 않은" 상태를 실현하는 임의의 다른 방법을 사용하여 저장될 수도 있다. 손가락 움직임이 옵션적인(optional) 제1 타임아웃 기간 내에 제1 임계 거리(예를 들면, 초기 터치 지점으로부터의 거리) 및/또는 속도(및/또는 가속도)를 초과하지 않는다는 것이 결정되면, 손가락은 여전히 키보드 상에서 움직이고 있지 않은 것으로 결정되고, 제1 임계치가 계속되는지의 여부의 결정. 한편, 손가락 움직임이 제1 타임아웃 기간 내에 제1 임계치를 초과하는 경우, 손가락은 움직이고 있는 것으로("움직이고 있는' 상태에 있는 것으로) 간주되고, 플래그가 상응하게 설정될 수도 있다. 이 플래그는 저장될 수도 있다. 제1 임계치는, 거리로서 정의되는 경우, 설정 길이(예를 들면, 밀리미터 또는 인치, 픽셀), 설정 속도(예를 들면, 초당 밀리미터, 초당 픽셀), 스크롤링 영역 길이의 비율, 또는 이들의 임의의 조합 또는 부조합으로서 정의될 수도 있다. 예를 들면, 제1 임계치는 키보드 입력 영역의 스크롤링 영역 길이의 대략 1%에서 설정될 수도 있다. 시스템은, 손가락의 총 움직임이 제2 임계 거리 및/또는 속도 미만인 제2 타임아웃이 만료할 때까지 손가락을 움직이는 것으로 계속 간주한다.
예를 들면, 제1 및 제2 타임아웃은 동일할 수도 있거나 또는 이들은 상이할 수도 있다. 예를 들면, 제2 타임아웃은 제2 타임아웃의 대략 2배일 수도 있다(예를 들면, 제1 타임아웃은 대략 200 밀리초일 수도 있고 제2 타임아웃은 대략 400 밀리초일 수도 있다). 또한, 제2 임계치는 스크롤링 디바이스의 길이의 대략 05%일 수도 있다. 제2 임계치가 제1 임계치보다 작지만, 제2 임계치는 제1 임계치와 동일할 수도 있거나 또는 심지어 제1 임계치보다 더 클 수도 있다. 손가락 움직임이 제2 임계치 미만이면, 손가락은 움직이고 있지 않은 것으로(움직이고 있지 않은" 상태인 것으로) 한 번 더 간주될 수도 있고, 플래그가 상응하게 설정될 수도 있다. 손가락 움직임이 제2 임계치를 초과하면, 손가락은 여전히 움직이고 있는 것으로 간주될 수도 있고, 프로세스는 다른 지연이 계시되면서(timed) 진행한다. 이들 단계 중 일부 또는 전체는 순차적으로 또는 병렬로 수행될 수도 있고, 단일의 단계로서 병합될 수도 있고, 및/또는 추가적인 부단계로 추가로 세분될 수도 있다. 상기의 논의가 두 개의 임계치를 포함하지만, 컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 임의의 수의 임계치(예를 들면, 소망되는 또는 필요로 되는 만큼의 많은 임계치)가 사용될 수도 있다는 것을 이해할 것이다.
종종 유저가 그의 또는 그녀의 손가락을 키보드의 터치 감응 표면으로부터 떼내는(remove) 경우(다르게는 본원에서 "들어서 떨어지는(lift-off)" 또는 "릴리스하는"으로 칭해짐), 유저의 손가락은 현재의 위치에 의도치 않게 영향을 줄 수도 있거나 또는 교란시킬 수도 있다. 이것의 영향은, 최근 손가락 위치의 FIFO(first-in, first-out; 선입선출) 큐를 유지하는 것에 의해 감소될 수 있다. FIFO 큐는 시스템에 의해, 예컨대 스토리지 디바이스에 및/또는 메모리에 저장될 수도 있다. 유저가 키보드의 터치 감응 표면과의 접촉을 중단하는 경우, 시스템은, 모션이 유한하게 (또는 거의) 중지한 샘플을 찾기 위해 큐를 거슬러(back through) 탐색할 수도 있다. 이러한 샘플이 발견되면, 현재 위치는 그 중지 지점에서 시작하도록 조정될 수도 있다. 따라서, 유저의 의도가 중지하는 것이었다는 것이 나타나는 경우, 위치는 유저의 명백한 의도에 따라 조정될 것이다.
한편, 의도된 중지를 나타내는 이러한 샘플이 큐에서 발견되지 않으면, 또는 수정의 양(거리)이 임계 양(거리 및/또는 길이의 비율에 의해 측정됨)보다 더 크면, 위치는 조정되지 않을 수도 있다. 큰 수정을 거절하는 이유는, 유저가 키보드의 터치 감응 표면을 놓았을 때, 유저가 아마도 그의 또는 그녀의 손가락을 상대적으로 빨리 이동시켰다는 것을 큰 수정이 나타낸다는 것이다. 손가락의 저항 또는 드래그는 들어서 떨어지는 프로세스 동안 자연스럽게 감소되는 것으로 예상될 수도 있기 때문에, 이것은 일반적이지 않은 현상이다. 따라서, 이러한 상황에서는 위치를 변경하지 않는 것이 유익할 수도 있는데, 유저가 빠른 모션을 의도하고, 그 모션을 되돌리기 하는 것이 유저의 의도에 반할 수도 있기 때문이다.
"스크롤링"의 맥락에서, 미국 특허 제6,707,449호는, 다음과 같이, 예컨대 손가락 압력 또는 접촉 면적에 기초하여, 자동 스크롤링 레이트 결정을 논의한다.
스크롤링의 레이트를 유저의 입력에 매핑하기 위한 많은 상이한 기능이 가능하다. 예를 들면, 시스템은, 손가락 속도, 손가락 압력/접촉 면적, 유지의 길이, 탭의 횟수, 및/또는 탭의 빈도와 같은 다양한 인자에 기초하여 고정된 레이트의 스크롤링 및/또는 가변 레이트의 스크롤링을 사용할 수도 있다. 고정된 레이트의 스크롤링이 사용되는 경우, 고정된 레이트는 디폴트 값을 가질 수도 있고, 유저가 선택가능할 수도 있고, 및/또는 다큐먼트를 조작/편집하고 있는 소프트웨어 애플리케이션에 의해 선택가능할 수도 있다. 가변 레이트의 스크롤링은, 그 또는 그녀가 다큐먼트를 스캔할 때 유저가 스크롤링 레이트를 연속적으로 조정하는 것을 허용할 수도 있다. 스크롤링 레이트를 연속적으로 조정하는 성능은, 더 제어가능한 그리고 예측가능한 스크롤 인터페이스를 제공할 수도 있다.
예를 들면, 가변 레이트의 스크롤링은, 스크롤링 디바이스의 터치 감응 표면에 대한 손가락 압력에 기초하여, 사용될 수도 있다. 손가락 압력은 직접적으로 측정될 수도 있고 및/또는 디바이스의 터치 감응 표면 상에서의 측정된 손가락 접촉 면적의 함수일 수도 있다. 이러한 구현예에서, 현재의 스크롤링 액션에 대한 손가락 접촉의 양을 정규화하는 및/또는 느린 스크롤링과 빠른 스크롤링 사이에 제어 가능한 범위의 스크롤링 속도를 제공하기 위해 손가락 접촉 면적의 지수 변환(exponential transformation)을 수행하는 알고리즘이 사용될 수도 있다. 예를 들면, 유저의 손가락이 상이한 사이즈를 가지기 때문에, 시스템은, 유저가 디스플레이를 탭할 때, 터치다운시의 손가락의 사이즈를 자동적으로 측정할 수도 있다. 스크롤링 레이트는 두 단계로 계산될 수도 있다. 예를 들면, 디바이스의 터치 감응 표면에 대한 손가락 압력의 각각의 샘플에 대해, 다음의 변수 P가 먼저 계산될 수도 있다:
Figure pat00001
여기서 P는 접촉 면적에 기초한 정규화된 압력 추정치이고, K3는 이득 계수이고, p는 현재 압력 판독치이고, p0는 하기에서 설명되는 최소 레이트 지점에 대해 선택되는 압력이다.
다음에, 식 (1)의 결과는 현재 샘플링된 손가락 압력에 대한 스크롤링의 레이트를 계산하기 위해 사용될 수도 있다:
Figure pat00002
여기서 K4는 이득 계수이고 dy/dt는 스크롤링의 결과적으로 나타나는 계산된 레이트이다(t는 시간을 나타낸다). 따라서, 이러한 식을 사용하면, 다큐먼트의 스크롤링의 레이트는 손가락 접촉 면적 및/또는 압력의 비선형 함수이다. dy/dt가 제로 미만이면, dy/dt는 제로로 설정될 수도 있다. 또한, dy/dt가 임계치보다 더 크면, dy/dt는 그 임계치로 설정될 수도 있다. 스크롤링 레이트 dy/dt가 다큐먼트의 스크롤링에 적용되는 경우, dy/dt의 양의 값은 (예를 들면) 스크롤링 다운에 대해 사용될 수도 있고, 스크롤 업하기 위해서는 dy/dt는 -1로 곱해질 수도 있다.
예를 들면, 시스템은, 디바이스의 영역 중 어떤 영역이 터치되고 있는지를 결정할 수도 있고, 어떤 활성 영역이 터치되고 있는지에 따라 반대 방향에서의 자동 스크롤링을 위해 이득 계수(K3 및/또는 K4)의 상이한 값이 사용될 수도 있다. 예를 들면, 자동 스크롤링 업 영역 및 자동 스크롤링 다운 영역은 상이한 이득 계수(K3 및/또는 K4)와 관련될 수도 있다. 터치 감응 표면의 특정한 형상, 임의의 베젤 또는 스크롤링 영역을 자동 스크롤링 영역과 분리할 수도 있는 다른 분할기(divider)의 형상, 및 자동 스크롤링이 스크롤링 영역과는 물리적으로 분리된 영역에서 발생하는지의 여부에 따라, 유저의 손가락과 스크롤링 업 영역 사이에서, 자동 스크롤링 다운 영역과는 상이한 양의 접촉이 발생할 수도 있다. 예를 들면, 유저의 손가락은, 스크롤링 스트립(scrolling strip)의 정상적인 사용 동안, 업 스크롤링을 위한 활성 영역과 접촉할 때, 다운 스크롤링을 위한 활성 영역과 접촉할 때와는 약간 상이한 각도에 있을 것으로 예상될 수도 있는데, 표면 접촉의 양이, 손가락이 둥글게 말릴 때보다 손가락이 펴졌을 때 더 크게 되게 한다. 따라서, 이득 계수(K3 및/또는 K4)의 값은, 업 자동 스크롤링 및 다운 자동 스크롤링이 서로 비교하여 유사한 느낌 및 응답을 가지도록, 이 차이를 보상하도록 설정될 수도 있다. 이득 계수(K4)는 초당 픽셀, 초당 센티미터, 또는 초당 텍스트 라인과 같은 스크롤링 속도의 단위이다. 값 dy/dt는 또한 K4와 동일한 단위를 가질 수도 있다.
p0의 값을 결정하는 방식이 가능하기 때문에, p0 최소 레이트 지점에 대한 적절한 값의 선택은 하기에서 논의된다. 예를 들면, 유저가 스크롤링의 레이트를 특정하려고 시도하고 있을 때 p0의 값을 실시간으로 결정하기 위해, 현재 유저 제스처 그 자체의 동역학이 사용될 수도 있다. 예를 들면, 최소 레이트 지점에 대한 디바이스의 터치 감응 표면에 대한 손가락 압력은, 초기 접촉 이후 옵션적인 지연에 후속하여 샘플링될 수도 있다. 지연은, 유저가 터치 감응 표면과의 안정된 초기 접촉을 확립할 만큼 충분히 길 수도 있는데, 예컨대 약 200 밀리초일 수도 있다. 이 지연 동안, 손가락 압력의 현재 값이 연속적으로 측정될 수도 있고 p0에 대한 예비 추정치로서 사용될 수도 있으며, 그 결과 유저는 최소의 인지가능한 지연을 가지고 스크롤링을 시작할 수도 있다.
스크롤링의 레이트에 대한 최대 임계치가 대안적으로 또는 추가적으로 부과될 수도 있다. 또한, 하나 이상의 이전의 압력 값(p)에 기초할 수도 있는 예상되는 미래의 압력 값(p)의 범위를 나타내는 슬라이딩 윈도우가 사용될 수도 있다. 상기에서 나타내어진 바와 같은 dy/dt의 계산이 최대 임계치보다 더 큰 레이트로 나타나는 경우, p0에 대한 값은, 현재 압력 값(p)이 스크롤링의 최대 임계 레이트로 나타나도록, 압력 값에서 윈도우를 위쪽으로 슬라이딩시키는 것에 의해 재계산될 수도 있다. 한편, 손가락 압력이 윈도우의 바닥 아래로 떨어지면, p0의 값은 윈도우를 아래쪽으로 슬라이딩시키는 것에 의해 재계산될 수도 있다. 디바이스에 의해 감지될 수도 있는 압력 값의 공지의 범위는, 윈도우의 초기 디폴트의 최소 및 최대 압력을 선택하기 위한 기초로서 사용될 수도 있다. 하기에 설명되는 레이트 제한 및/또는 압력 최대 기준은 이러한 윈도우를 슬라이딩시키는 전략(sliding-window strategy)에서 사용될 수도 있다. 예를 들면, 이러한 윈도우를 슬라이딩시키는 기술은, 가벼운 터치 또는 더 작은 손가락을 갖는 다른 유저와 비교하여 몇몇 유저가 무거운 터치 또는 큰 손가락을 갖는 상이한 유저에 대한 자동적인 자체 교정을 허용한다.
예를 들면, p0 최소 레이트 지점의 선택을 향상시키기 위해, 레이트 제한이 활용될 수도 있다. 레이트 제한이 초과되면, 제한을 충족하게끔 p0 최소 레이트 지점이 재계산되도록, 상기 식에 대해, 움직임의 최대 및/또는 최소 레이트가 부과될 수도 있다. 이것은, 통상적인 판독 속도 및 유저의 제스처에 대한 감지된 압력을 적응시키는 효과를 가질 수도 있다. 또한, 손가락 압력을 결정하기 위해 많은 터치 감응 패드가 손가락 접촉 면적을 실제로 감지하기 때문에, 얼마나 많은 "압력"이 인가될 수 있는지에 대한 실질적인 제한이 종종 존재한다. 통상적인 이러한 최대 압력 값의 지식은, p0 최소 레이트 지점의 선택을 돕기 위해 사용될 수 있다. 예를 들면, 디바이스의 터치 감응 표면을 강하게 누르는 것에 의해 유저가 시작하면, 유저가 접촉 면적을 더 증가시킬 수 없을 것이다는 것을 아는 경우 다큐먼트는 즉시 빠르게 스크롤될 수도 있다.
예를 들면, 상이한 위치에서의 상이한 영역과의 유저의 손가락의 통상적인 접촉 면적이 변할 것으로 예상될 수도 있기 때문에, 상기 식에서의 파라미터 또는 압력 최대치는 상이한 활성 영역에 대해 상이할 수도 있다. 다시 말하면, 상이한 방향에서의 스크롤 레이트는, 디바이스의 터치 감응 표면에 인가되는 손가락 압력의 단위마다 상이할 수도 있다. 디바이스의 터치 감응 표면에 대해 터치되는 면적에 의존하는 파라미터에 대한 조정은, 압력 응답을 더 일관되어 보이게 할 수도 있다.
컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 스크롤링의 맥락에서 상기에서 논의되는 바와 같은 이러한 기술이, 다른 목적을 위한 제스처화와 같은 다른 맥락에서 또한 적용될 수도 있다는 것을 인식할 것이다.
컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 본원의 논의의 취지를 벗어나지 않으면서, 많은 다른 타입의 데이터 입력 특성이 모호성 제거를 위해 사용될 수도 있다는 것을 인식할 것이다.
컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 본원의 논의의 취지를 벗어나지 않으면서, 본원에서 논의되는 키보드 입력의 모호성 제거를 달성하는 많은 방식이 존재할 수도 있다는 것을 인식할 것이다.
II. 예시적인 동작 환경
본원에서 논의되는 피쳐는, 본원의 논의의 취지를 벗어나지 않으면서, 컴퓨팅 디바이스의 기술 분야에서 숙련된 자에 의해 이해될 수도 있는 많은 상이한 방식으로 구현될 수도 있는 예시적인 실시형태로서 제공된다. 이러한 피쳐는 예시적인 실시형태 피쳐로서만 해석되어야 하며, 이들 상세한 설명으로만 제한되는 것으로 해석되도록 의도되지는 않는다.
본원에서 추가로 논의되는 바와 같이, 도 12는 키보드 엔트리 모드의 모호성을 제거하기 위한 일반화된 시스템(1200)의 블록도이다. 도시되는 바와 같은 일반화된 시스템(1200)은, 본원에서 논의되는 바와 같은 예시적인 시스템에 포함될 수도 있는 다양하고 예시적인 기능성을 예시하도록 의도되는 것에 불과하며, 다양한 하드웨어 및/또는 소프트웨어 구성에서의 구현의 관점에서 제한하도록 의도되지는 않는다.
예를 들면, 시스템(1200)은, 적어도 하나의 프로세서에 의한 실행을 위한 명령어를 저장하는 컴퓨터 판독가능 저장 매체를 포함하는 키보드 엔진(1206)을 포함하는 장치를 포함할 수도 있다. 도 12에서 도시되는 바와 같이, 시스템(1200)은 적어도 하나의 프로세서(1204)를 포함하는 디바이스(1202)를 포함할 수도 있다.
디바이스(1202)는, 형상 기록 입력 및 방사상 엔트리 입력을 수용하는 키보드(1208)를 동작시킬 수도 있는 키보드 엔진(1206)을 포함할 수도 있다. 예를 들면, 도 12의 디바이스(1202) 외부에서 도시되지만, 디바이스(1202)는 키보드(1208)를 포함(예를 들면, 수용)할 수도 있다. 키보드 엔진(1206)은, 형상 기록 입력 및 방사상 엔트리 입력을 동시에 수용하는 키보드(1208)를 동작시킬 수도 있고, 그 결과 유저는, (예를 들면, 키 또는 기능을 토글하는 것을 통해) 모드 사이를 명시적으로 토글할 필요 없이, 엔트리의 타입(뿐만 아니라 모드) 중 어느 하나를 원활하게 사용할 수도 있다. 예를 들면, 키보드 엔진(1206)은, 탭 모드 또는 형상 기록 모드 중 어느 하나에서 방사상 제스처 입력을 지원할 수도 있다.
예를 들면, 유저 입력을 용이하게 하기 위해, 그래픽 또는 인쇄 키보드(1208)가 제시될 수도 있다. 예를 들면, 키보드(1208)는 전체 터치 감응 영역(또는 제스처 감응 영역)의 전체 또는 거의 전체를 차지할 수도 있고, 따라서, 본원에서 도시되는 또는 논의되는 키보드 묘사의 어느 것도, 그 안에서 나타내어지는 다양한 컴포넌트의 임의의 물리적 스케일, 사이즈 또는 방위를 나타내도록 의도되지는 않는다. 터치 감응 영역(또는 제스처 감응 영역)은, 멀티 터치 및/또는 펜 터치를 비롯한, 임의의 타입을 가질 수도 있다. 터치 감응 영역은, 터치 감응 스크린, 또는 인쇄 키보드 아래의 다른 압력/용량성 또는 다른 센서, 또는 근접 인식 키보드(물리적 및/또는 가상)일 수도 있다. 또한, 키보드(1208)와 함께, 마우스 입력이 사용될 수도 있다.
컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 본원의 논의의 취지를 벗어나지 않으면서, 다양한 형태의 키보드가 존재한다는 것을 이해할 것이다.
예시적인 실시형태에 따르면, 키보드 엔진(1206), 또는 그것의 하나 이상의 부분은, 하기에서 논의되는 바와 같이, 유형의 컴퓨터 판독가능 저장 매체 저장될 수도 있는 실행가능 명령어를 포함할 수도 있다. 예시적인 실시형태에 따르면, 컴퓨터 판독가능 저장 매체는, 분산형 디바이스를 비롯한, 임의의 수의 스토리지 디바이스, 및 임의의 수의 저장 매체 타입을 포함할 수도 있다.
이 맥락에서, "프로세서"는, 프로세싱 시스템과 관련되는 명령어를 프로세싱하도록 구성되는 단일의 프로세서 또는 다수의 프로세서를 포함할 수도 있다. 따라서, 프로세서는, 명령어를 병렬로 및/또는 분산된 방식으로 프로세싱하는 하나 이상의 프로세서를 포함할 수도 있다. 디바이스 프로세서(1204)가 도 12에서 키보드 엔진(1206) 외부에 있는 것으로 묘사되지만, 컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 디바이스 프로세서(1204)가, 키보드 엔진(1206), 및/또는 그 엘리먼트의 임의의 것의 내부 또는 외부에 위치될 수도 있는 분산된 유닛으로서, 및/또는 단일의 컴포넌트로서 구현될 수도 있다는 것을 인식할 것이다.
예를 들면, 시스템(1200)은 하나 이상의 프로세서(1204)를 포함할 수도 있다. 예를 들면, 시스템(1200)은, 상기 하나 이상의 프로세서(1204)에 의해 실행가능한 명령어를 저장하는 적어도 하나의 유형의 컴퓨터 판독가능 저장 매체를 포함할 수도 있는데, 실행가능 명령어는, 본원에서 논의되는 바와 같이, 적어도 하나의 컴퓨팅 장치(예를 들면, 컴퓨팅 디바이스)로 하여금, 시스템(1200)에 포함되는 다양하고 예시적인 컴포넌트와 관련되는 동작을 수행하게 하도록 구성된다. 예를 들면, 하나 이상의 프로세서(1204)는 적어도 하나의 컴퓨팅 장치(예를 들면, 컴퓨팅 디바이스)에 포함될 수도 있다. 컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 본원의 논의에 따라, 이러한 논의의 취지를 벗어나지 않으면서, 구성될 수도 있는 프로세서 및 컴퓨팅 장치의 많은 구성이 존재한다는 것을 이해할 것이다.
이 맥락에서, "컴포넌트" 또는 "엔진"은, 하드웨어 지원을 통해, 소정의 동작을 수행하도록 구성될 수도 있는 실행가능 명령어 또는 하드웨어를 가리킬 수도 있다. 이러한 명령어는, 명령어의 컴포넌트 그룹 내에 포함될 수도 있거나, 또는 하나보다 많은 그룹에 걸쳐 분산될 수도 있다. 예를 들면, 제1 컴포넌트의 동작과 관련되는 몇몇 명령어는, 제2 컴포넌트(또는 더 많은 컴포넌트)의 동작과 관련되는 명령어의 그룹에 포함될 수도 있다. 예를 들면, 본원에서의 "컴포넌트" 또는 "엔진"은, 단일의 엔티티에 위치될 수도 있는 또는 다수의 엔티티에 걸쳐 확산 또는 분산될 수도 있는 실행가능 명령어에 의해 구현될 수도 있는 기능성을 가지고 구성되는 계산 엔티티의 타입을 가리킬 수도 있고, 다른 컴포넌트와 관련되는 명령어 및/또는 하드웨어와 중첩할 수도 있다. 이 맥락에서, "실행가능" 명령어는, 하나 이상의 하드웨어 디바이스에 의한 실행을 위해 명시적으로 구성되는 명령어를 가리키며, 소프트웨어 그 자체를 가리키지는 않는다.
예시적인 실시형태에 따르면, 키보드 엔진(1206)은 하나 이상의 유저 디바이스와 관련하여 구현될 수도 있다. 예를 들면, 키보드 엔진(1206)은, 하기에서 더 논의되는 바와 같이, 하나 이상의 서버와 통신할 수도 있다.
예를 들면, 엔티티 저장소(1216)가 하나 이상의 데이터베이스를 포함할 수도 있고, 데이터베이스 인터페이스 컴포넌트(1218)를 통해 액세스될 수도 있다. 컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 다양한 타입의 데이터베이스 구성(예를 들면, 관계형 데이터베이스, 계층적 데이터베이스, 분산형 데이터베이스) 및 비 데이터베이스 구성과 같은, 본원에서 논의되는 저장소 정보를 저장하기 위한 많은 기술이 존재한다는 것을 인식할 것이다.
예시적인 실시형태에 따르면, 키보드 엔진(1206)은, 예를 들면, 키보드 엔진(1206)에 대한 중간 데이터를 저장할 수도 있는 메모리(1220)를 포함할 수도 있다. 이 맥락에서, "메모리"는, 데이터 및/또는 명령어를 저장하도록 구성되는 단일의 메모리 디바이스 또는 다수의 메모리 디바이스를 포함할 수도 있다. 또한, 메모리(1220)는, 다수의 분산형 스토리지 디바이스에 걸칠 수도 있다.
예시적인 실시형태에 따르면, 유저 인터페이스 컴포넌트(1222)는, 유저(1224) 및 키보드 엔진(1206) 사이의 통신을 관리할 수도 있다. 유저(1224)는, 다른 입/출력 디바이스 및 디스플레이(1228)와 관련될 수도 있는 수신 디바이스(1226)와 관련될 수도 있다. 예를 들면, 디스플레이(1228)는, 내부 디바이스 버스 통신을 통해, 또는 적어도 하나의 네트워크 연결을 통해, 수신 디바이스(1226)와 통신하도록 구성될 수도 있다. 예를 들면, 디스플레이(1228)는 수신 디바이스(1226)에 바로 연결될 수도 있다.
예시적인 실시형태에 따르면, 디스플레이(1228)는, 플랫 패널 스크린 디스플레이, 인쇄 형태의 디스플레이, 2차원 디스플레이, 3차원 디스플레이, 정적 디스플레이, 무빙 디스플레이, 촉각 출력과 같은 센서류(sensory) 디스플레이, 및 유저(예를 들면, 유저(1224))와 통신하기 위한 임의의 다른 형태의 출력으로서 구현될 수도 있다.
예시적인 실시형태에 따르면, 키보드 엔진(1206)은, 적어도 하나의 네트워크(1232)를 통해 키보드 엔진(1206)과 통신할 수도 있는 다른 엔티티와 키보드 엔진(1206) 사이의 네트워크 통신을 관리할 수도 있는 네트워크 통신 컴포넌트(1230)를 포함할 수도 있다. 예를 들면, 네트워크(1232)는, 인터넷, 적어도 하나의 무선 네트워크, 또는 적어도 하나의 유선 네트워크 중 적어도 하나를 포함할 수도 있다. 예를 들면, 네트워크(1232)는, 키보드 엔진(1206)에 대한 데이터의 송신을 지원할 수도 있는 셀룰러 네트워크, 무선 네트워크, 또는 임의의 타입의 네트워크를 포함할 수도 있다. 예를 들면, 네트워크 통신 컴포넌트(1230)는, 키보드 엔진(1206)과 수신 디바이스(1226) 사이의 네트워크 통신을 관리할 수도 있다. 예를 들면, 네트워크 통신 컴포넌트(1230)는, 유저 인터페이스 컴포넌트(1222)와 수신 디바이스(1226) 사이의 네트워크 통신을 관리할 수도 있다. 예를 들면, 디바이스(1202)는, 프로세서, 디스플레이, 스토리지, 등등 모두가 단일의 하드웨어 엔티티에 포함되는 독립형일 수도 있다(예를 들면, 태블릿, 슬레이트, 등등). 예를 들면, 디바이스(1202)는 독립형 터치스크린 디바이스일 수도 있다.
키보드 엔진(1206)은, 키보드(1208)의 적어도 하나의 입력 센서로부터 입력 데이터(1242)를 획득하는 키보드 입력 모듈(1240)을 포함할 수도 있다.
의도 모호성 제거 엔진(1244)은, 키보드(1208)의 유저에게, 형상 기록 입력 및 방사상 엔트리 입력 수용의 동시적 사용을 가능하게 한다.
예를 들면, 입력 데이터 해석 모듈(1246)은 입력 데이터(1242)를 분석할 수도 있고, 후보 형상 기록 입력 결과, 또는 후보 방사상 엔트리 입력 결과 중 하나 이상을 포함하는 하나 이상의 후보 프로세싱 값(one or more candidate processed value)(1248)을 제공할 수도 있다.
예를 들면, 의도 모호성 제거 엔진(1244)은, 하나 이상의 후보 프로세싱 값(1248)에 기초하여, 복수의 제안 값(1250)을 제공할 수도 있다.
예를 들면, 복수의 제안 값(1250)은 후보 형상 기록 입력 결과 및 후보 방사상 엔트리 입력 결과를 포함할 수도 있는데, 키보드 엔진(1206)은, 제안 값의 디스플레이를 제공하는 키보드 출력 모듈(1252)을 더 포함할 수도 있고, 후보 방사상 엔트리 입력 결과의 디스플레이는, 후보 방사상 엔트리 입력 결과와 관련되는 방사상 엔트리 입력의 추론을 명시적으로 나타내는 그래픽 표시를 제공한다.
예를 들면, 입력 데이터 해석 모듈(1246)은 입력 데이터(1242)를 분석하여, 키보드의 방사상 영역에서의 짧은 스트로크 입력을 나타내는 키보드 입력을, 입력 데이터가 포함하는지의 여부를 결정하는 것에 의해, 후보 방사상 엔트리 입력 결과를 결정할 수도 있다.
예를 들면, 사전(1254)은, 낮은 빈도로 발생하는 용어로서 결정되는 낮은 빈도의 용어에 대한 엔트리를 생략할 수도 있는데, 입력 데이터 해석 모듈(1246)은, 사전(1254)을 사용하여, 입력 데이터를 분석하여 하나 이상의 후보 프로세싱 값(1248)을 제공할 수도 있다.
예를 들면, 형상 기록 해석기(shape-writing interpreter)(1256)는 입력 데이터(1242)를 분석할 수도 있고 입력 데이터(1242)를 사용하여 하나 이상의 후보 형상 기록 결과(1258)를 제공할 수도 있다.
예를 들면, 방사상 엔트리 해석기(1260)는 입력 데이터(1242)를 분석할 수도 있고 입력 데이터를 사용하여 하나 이상의 후보 방사상 엔트리 결과(1262)를 제공할 수도 있다. 예를 들면, 방사상 엔트리 해석기(1260)는 방사상 엔트리 결과 및/또는 네스트화된(예를 들면, 계층적, 다중 레벨의) 방사상 엔트리 결과를 제공할 수도 있다(예를 들면, 방사상 메뉴 아이템 중 하나 이상은 서브 메뉴를 구비할 수도 있다).
예를 들면, 상태 머신(1264)은 키보드 엔진(1206)에 대한 입력 모드를 추적할 수도 있다.
예를 들면, 키보드(1208)는 압력 감응 키보드, 터치 감응 키보드, 또는 근접 인식 키보드를 포함할 수도 있다.
예를 들면, 키보드(1208)는 가상 키보드를 포함할 수도 있다.
예를 들면, 키보드(1208)는, 터치 감응 키를 갖는 저주행 기계식 키보드(low-travel mechanical keyboard), 또는 순수한 터치 감응 키보드를 포함할 수도 있다.
예를 들면, 키보드(1208)는, 복수의 키가 실질적으로 생략되고 짧은 스트로크 입력 기능성에 의해 대체된 키보드를 포함할 수도 있다.
예를 들면, 탭 입력 및 제스처 입력을 수신하기 위한 그래픽 또는 인쇄 키보드가 압력 감응 또는 터치 감응 표면 상에 제공될 수도 있다. 예를 들면, 키보드(1208)는, 적어도 하나의 생략된 또는 실질적으로 생략된 키를 포함하는 제거된 또는 생략된 키 세트로 구성될 수도 있는데, 생략된 키 세트의 각각의 키는, 제스처를 통해 입력가능한 캐릭터, 액션, 또는 커맨드 코드에 대응한다.
예를 들면, 키보드(1208)는, 키보드 디스플레이 아래에 있는 스크린의 완전한 가시성을 제공하기 위해 반투명할 수도 있다.
예를 들면, 키보드(1208)는, 알파벳 키를 포함하지만 숫자키를 포함하지 않는 상이한 키보드에 대해 동일한 사이즈의 또는 실질적으로 동일한 사이즈의 터치 감응 영역에서 알파벳 키 및 숫자 키를 포함할 수도 있는데, 이 경우, 키보드 및 상이한 키보드는 동일한 사이즈의 또는 실질적으로 동일한 사이즈의 알파벳 키를 갖는다. 키보드(1208)는, 제스처 입력에 의해 중복하게 만들어지는 하나 이상의 키를 키보드로부터 생략하는 것에 의해 제공될 수도 있다. 키보드(1208)는 또한, 키보드의 오른쪽 또는 왼쪽 중 어느 하나로 배치되는 통상적인 숫자 키패드 배치의 숫자 키를 포함할 수도 있고; 이러한 배치는, 키보드가 가로 스크린 방위에서 디스플레이될 때 유익하게 바람직할 수도 있다(그러나 아마도 세로 방위에서는 아닐 수도 있다). 예를 들면, 키보드(1208)의 사이즈는, 디스플레이 디바이스 사이즈 및 가로\세로 방위에 따라 조정가능할 수도 있다.
예를 들면, 키보드(1208)의 키와의 상호작용에 대응하는 데이터가 수신될 수도 있는데, 적어도 하나의 키는 다수의 캐릭터(문자, 숫자, 특수 캐릭터 및/또는 커맨드를 포함함)를 나타낸다. 상호작용이 제1 제스처를 나타낸다는 것을 데이터가 나타내면, 제1 캐릭터 값이 추론된다. 상호작용이 제2 제스처(제1 제스처와는 상이함)를 나타낸다는 것을 데이터가 나타내면, 제2 캐릭터 값이 추론된다. 상호작용이 탭을 나타낸다는 것을 데이터가 나타내면, 키에 의해 표현되는 탭 관련 캐릭터 값(tap-related character value)이 추론될 수도 있다.
본원에서 논의되는 다양하고 예시적인 기술은, 제스처가 키보드 상의 소정의 키를 대체할 수도 있는 터치 감응 그래픽 또는 인쇄 키보드를 일반적으로 수반할 수도 있다. 예를 들면, 대체된 키는 제스처에 의해 불필요한 것으로(또는 다르게는 중복하게) 만들어 질 수도 있다. 예를 들면, 다르게는 중복하는 키의 생략 또는 제거는, 동일한 터치 감응 영역의 키보드 상에 더 많은 키를 제공하는 것, 동일한 터치 감응 영역에서 더 큰 키를 제공하는 것, 및/또는 키보드에 의해 점유되는 터치 감응 영역의 양을 감소시키는 것을 허용할 수도 있다.
예로서, 키보드(1208)의 임의의 알파벳 키에 대한 탭핑은 그 키와 관련되는 소문자 캐릭터를 출력할 수도 있고, 반면 동일한 키에 대해 개시되는 상향 스트로크는 출력되고 있는 관련된 캐릭터의 시프트된 값(예를 들면, 대문자)을 출력할 수도 있고, 따라서, 시프트 키에 대한 별도의 탭에 대한 필요성을 방지하게 된다. 예를 들면, 키보드(1208) 상의 임의의 곳에서 개시되는 오른쪽으로의 스트로크는 스페이스를 출력할 수도 있다. 마찬가지로, 키보드 상의 임의의 곳에서 개시되는 왼쪽으로의 스트로크는 백스페이스를 출력할 수도 있고, 한편 하방 왼쪽으로 경사진 스트로크(예를 들면, 키보드 상의 임의의 곳에서 개시됨)는 엔터를 출력할 수도 있다. 예를 들면, 스트로크 제스처는 알파벳 캐릭터의 중앙 클러스터 상에서 가능하게 될 수도 있고, 반면, 하나 이상의 주변 키(예를 들면, 특수 키, 예컨대 백스페이스 또는 Ctrl, 또는 특수 영역, 예컨대 숫자 키패드 또는 (만약 있다면) 커서 제어를 위한 터치 패드 영역)는, 예를 들면, 터치패드 시작 영역으로부터의 커서 제어의 경우에, 제스처가 전혀 없는 것을 포함하여, 자신에게 할당되는 상이한 또는 단지 부분적으로 중첩하는 스트로크 제스처를 구비할 수도 있다. 따라서, 스트로크 메뉴는 공간적으로 다중화될 수도 있다(예를 들면, 몇몇 키와는, 또는 키의 소정의 세트에 대해서는, 또는 모든 키에 대해서는, 잠재적으로 상이하다). 또한, 키보드(1208) 에지 근처의 키, 이 경우, 공간의 부족으로 인해 소정의 방향으로의 제스처(예를 들면, 자신의 우측이 베젤에 너무 가까이 배치되는 키보드의 경우, 표면의 우측 에지 상의 키로부터의 오른쪽 스트로크)가 가능하지 않을 수도 있고, 그에 의해, 유저는 입력을 입력하기 위해 더 중앙에서(또는 에지로부터 더 멀리 떨어져) 제스처를 시작할 수도 있다.
또한, 몇몇 예시적인 구현예에서는, 상기에서 논의되는 바와 같은 스페이스, 백스페이스, 시프트, 및 엔터 스트로크 외에, 또는 대신에, 키보드 또는 개개의 키와 관련되는 방사상 메뉴(들) 상에서의 단일의 또는 멀티 터치 스트로크 제스처에 의해 추가적인 키 수정자(예컨대 Ctrl, Alt, WINDOWS(윈도우) 키(시작 키), 오른쪽 메뉴 키, 등등)가 이용가능할 수도 있다.
컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, (단지 백스페이스가 아니라) 다른 비 캐릭터 액션, 예컨대 종종 소프트 키보드 상에서 표시를 갖는 일반적인 유저 인터페이스 커맨드(예를 들면, 양식 채우기(form-filling)에서의 이전/다음 필드, 고(Go) 커맨드, 검색 커맨드, 등등)를 입력하기 위해 제스처가 또한 사용될 수도 있다는 것을 인식할 것이다. 또한, 더 풍부하거나 또는 더 일반적인 커맨드(예컨대, 잘라내기/복사/붙여넣기)가 제스처에 의해 또한 입력될 수도 있고, 매크로가 제스처에 의해 호출될 수도 있고, 등등이다. 본원에서 논의되는 바와 같이, 제스처를 학습하고 기억함에 있어서의 용이성을, 직관적 제스처(예를 들면, 스페이스에 대한 오른쪽 스트로크)가 유익하게 제공할 수도 있다.
본원에서 논의되는 바와 같이, 제스처는, 일반적으로, 디스플레이된 키보드의 상하좌우(예를 들면, 동서남북(North-South-East-West), 또는 N-S-E-W) 방향에 기초할 수도 있다. 그러나, 방향 축은, 특히 엄지손가락 기반의 제스처에 경우, (반대의 거울반사된 방향에서) 어떤 양만큼 회전될 수도 있는데, 그 이유는, 오른쪽 엄지손가락을 사용하여 상방으로의 제스처를 의도하는 유저는, 우상쪽으로(예를 들면, 디바이스의 현재 방향에 따라서는 NE쪽으로) 또는 우상상쪽으로(Up-Up-Right)(예를 들면, 북북동쪽으로) 더 많이 제스처를 취할 가능성이 있을 수도 있기 때문이다. 마찬가지로, 왼쪽 엄지손가락은 좌상(예를 들면, NW) 또는 좌상상(Up-Up-Left)(예를 들면, 북북서)으로 더 많이 제스처를 취할 가능성이 있을 수도 있다. 또한, 디바이스의 방위는 또한 보상될 수도 있다. 예를 들면, 유저가 디바이스를 조금 옆으로 쥐고 있는 경우, 상방 제스처는, 디바이스 기준에서는, 제스처가, 디바이스의 방위에 따라, 좌상 또는 우상으로 움직이고 있더라도, 시프트를 계속 수행하는 신호로서 사용될 수도 있다. 이러한 방위 조정의 결정은, 하나 이상의 관성 센서(예를 들면, 가속도계, 자이로스코프, 및/또는 자력계를 포함함), 및/또는 다른 타입의 센서(예를 들면, 비전 기반의 센서(vision based sensor), 등등)에 의해 결정되는 바와 같은 태블릿의 방위를 고려할 수도 있다.
이 맥락에서, "그래픽" 키보드는, 가시적인 "표면", 예를 들면, 터치 감응 디스플레이 표면 또는 근접 인식 표면 상에 렌더링되는, 그리고 따라서 자신의 외관을 프로그램적으로 변경할 수도 있는 키보드를 가리킬 수도 있다. 이 맥락에서, "인쇄된" 키보드는, 외관이 프로그램적으로 변경불가능한 압력 감응의, 또는 유사한 표면과 관련되는 키보드(예를 들면, 슬레이트 또는 태블릿 컴퓨팅 디바이스의 커버 안으로 내장됨), 예를 들면, 템플릿으로서 또는 다른 방식으로 부착되어 또는 키보드 또는 압력 감응 표면, 또는 근접 인식 표면의 일부로서 인쇄되는, 엠보스 가공되는(embossed), 물리적으로 중첩되는 키보드를 가리킬 수도 있다. 이해되는 바와 같이, 본원에서 설명되는 키보드는, 일반적으로, 그래픽 키보드 또는 인쇄 키보드, 및/또는 하이브리드 키보드(예를 들면, 하나 이상의 디스플레이 및/또는 터치스크린을 상부에 갖는 인쇄 키보드), 및/또는 가상 키보드를 일반적으로 포함할 수도 있다.
본원에서 논의되는 예시적인 기술에 따르면, 추가적인 제스처는, 단일의 디스플레이된 키가 다수의 캐릭터, 예를 들면, 세 개 또는 네 개(또는 그 이상)를 나타내는 것을 허용할 수도 있다. 이 맥락에서, "캐릭터"는, 알파벳 캐릭터, 숫자 캐릭터, 심볼, 특수 캐릭터, 및 커맨드를 비롯한, 키를 통해 시스템 안으로 입력될 수도 있는 임의의 것을 가리킬 수도 있다. 예를 들면, 키는, "탭" 입력에 대해 하나의 캐릭터에 대한 입력을, 그리고 세 개의 구별된 상향 제스처에 대한 세 개의 캐릭터, 예컨대 일반적인 좌상 제스처에 대한 하나, 일반적으로 수직 상방의(straight up) 제스처에 대한 하나, 및 일반적인 우상 제스처에 대한 하나를 가능하게 할 수도 있다.
예를 들면, 키 주위의 방사상 영역은, 방사상 영역에서 입력될 수도 있는 다양한 제스처에 따라, 상이한 타입의 입력을 제공하도록 인에이블될 수도 있다. 예로서, 키를 둘러싸는(또는 키에 밀접하는) 영역은, 다양한 섹션과 관련하여 이루어지는 제스처가 다양한 구별된 의미를 갖게끔(즉, 상이한 키보드 입력을 제공함) 이해될 수도 있도록, 기하학적으로 배열된 섹션(예를 들면, 8개의 섹션)으로 분할될 수도 있다. 또한, 키를 둘러싸는 영역은 아주 클 수도 있다.
예를 들면, 제스처는, 다른 현존하는 제스처와 동일할 수도 있는데, 두 개의 유사한/같은 제스처는, 예를 들면, 키보드 상에서의 그들의 시작 위치에 의해, 또는 표면 경계(베젤)를 가로지르는 제스처에 의해 구별된다.
본원에서 논의되는 하나 이상의 것들과는 상이한 및/또는 그것들에 부가하여 상이한 제스처가 또한 사용될 수도 있다. 추가적으로, 제스처는, 예컨대 KINECT 디바이스, 적외선 근접 센서, 비접촉 용량성 감지, 또는 다른 유사한 디바이스에 의해 감지되는 "공중(air)" 제스처일 수도 있지만, 터치 감응 표면 상에서는 필수는 아니다. 예를 들면, 이러한 "공중" 제스처는 가상 키보드와 함께 사용될 수도 있다. 공중에서 진행하는 동안, 디스플레이를 터치하고 (예를 들면, 방사상 메뉴의 방향 중 하나에서) 스트로크하는 것에 의해 유저가 시작하는 제스처가 또한 존재할 수도 있는데, 이것은 디스플레이와 접촉을 유지한 상태에서의 동일한 제스처와는 구별될 수도 있다. 다른 예로서, 마우스 입력이 사용될 수도 있다.
다른 예로서, 손가락 입력이 본원에서 논의될 수도 있지만, 플라스틱 스틱/스타일러스 또는 용량성 펜, 또는 배터리 전력의 또는 유도 결합식 스타일러스와 같은 기계적 매개물이, 사용될 수도 있는 몇몇 가능한 대안이다. 다른 예로서, 이러한 "공중" 제스처를 제공하기 위해, 다른 오브젝트가 사용될 수도 있다. 또한, 입력은 개선될 수도 있고(예를 들면, 키에 중첩되는 제스처 커맨드에 대해 호버 피드백이 수신될 수도 있다), 및/또는, 펜이 상호작용을 수행하고 있는 것으로 알려지는지 또는 손가락이 상호작용을 수행하고 있는 것으로 알려지는지의 여부(이것은, 접촉 면적에 의해, 및/또는 펜에 대해 그리고 터치에 대해 상이한 디지타이저를 사용하는 것에 의해, 및/또는 깊이 카메라를 사용하여 펜을 터치와 구별하는 것에 의해, 및/또는 펜과 터치 사이를 구별하는 것을 가능하게 하는 다른 기술을 사용하는 것에 의해 검출될 수도 있다)에 따라, 상이한 길이 및/또는 정확도 제약이 스트로크 제스처에 대해 적용될 수도 있다. 따라서, 컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 본원의 논의는 본원에서 설명되는 임의의 특정한 실시형태, 양태, 구조, 기능성 또는 예로 제한되지 않는다는 것을 인식할 것이다. 오히려, 본원에서 설명되는 실시형태, 양태, 개념, 구조, 기능성 또는 예의 임의의 것은 비제한적이며, 본 발명은 일반적으로 컴퓨터 및 키보드 및 제스처 기술에서 이익 및 이점을 제공할 수도 있는 다양한 방식으로 사용될 수도 있다.
컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 본원의 논의의 취지를 벗어나지 않으면서, 키보드 제스처 입력의 모호성을 제거하기 위해, 많은 상이한 기술이 사용될 수도 있다는 것을 인식할 것이다.
III. 플로우차트 설명
본원에서 논의되는 피쳐는, 본원의 논의의 취지를 벗어나지 않으면서, 컴퓨팅 디바이스의 기술 분야에서 숙련된 자에 의해 이해될 수도 있는 많은 상이한 방식으로 구현될 수도 있는 예시적인 실시형태로서 제공된다. 이러한 피쳐는 예시적인 실시형태 피쳐로서만 해석되어야 하며, 이들 상세한 설명으로만 제한되는 것으로 해석되도록 의도되지는 않는다.
도 13a 내지 도 13c는, 예시적인 실시형태에 따른, 도 12의 시스템의 예시적인 동작을 예시하는 플로우차트이다. 도 13a의 예에서, 키보드는 형상 기록 입력 및 방사상 엔트리 입력을 수용하도록 동작될 수도 있다(1302).
입력 데이터는, 키보드의 적어도 하나의 입력 센서로부터 획득될 수도 있다(1304).
키보드의 유저에게, 형상 기록 입력 및 방사상 엔트리 입력 수용의 동시적 사용이 가능하게 될 수도 있다(1306).
예를 들면, 도 13b의 예에서, 입력 데이터가 분석될 수도 있고 입력 데이터를 사용하여 하나 이상의 후보 형상 기록 입력 결과가 제공될 수도 있다(1308).
예를 들면, 입력 데이터가 분석될 수도 있고, 입력 데이터를 사용하여, 후보 방사상 엔트리 입력 결과, 또는 네스트화된 방사상 엔트리 입력 결과가, 제공될 수도 있다(1310).
예를 들면, 상태 머신을 통해 입력의 모드가 추적될 수도 있다(1312).
예를 들면, 키보드는 압력 감응 키보드를 포함할 수도 있다(1314).
예를 들면, 키보드는 가상 키보드를 포함할 수도 있다(1316).
예를 들면, 키보드는, 키보드로부터 생략되는 종래의 키보드의 키에 대응하는 소정의 텍스트 엔트리 동작의 짧은 스트로크 기능성을 포함할 수도 있다(1318).
예를 들면, 도 13c의 예에서, 터치 및 유지 입력에 응답하여, 키 위치로부터 슬라이드 업 메뉴로서 방사상 제스처 메뉴의 디스플레이가 개시될 수도 있다(1320).
예를 들면, 입력 데이터는 분석될 수도 있고, 후보 형상 기록 입력 결과, 또는 후보 방사상 엔트리 입력 결과 중 하나 이상을 포함하는 하나 이상의 후보 프로세싱 값이 제공될 수도 있다(1322).
예를 들면, 하나 이상의 후보 프로세싱 값에 기초하여, 복수의 제안 값이 제공될 수도 있다(1324).
예를 들면, 복수의 제안 값은, 후보 형상 기록 입력 결과 및 후보 방사상 엔트리 입력 결과를 포함할 수도 있다(1326).
예를 들면, 제안 값의 디스플레이가 제공될 수도 있는데, 후보 방사상 엔트리 입력 결과의 디스플레이는, 후보 방사상 엔트리 입력 결과와 관련되는 방사상 엔트리 입력의 추론을 명시적으로 나타내는 그래픽 표시를 제공한다(1328).
예를 들면, 입력 데이터는 분석되어, 키보드의 방사상 영역에서의 짧은 스트로크 입력을 나타내는 키보드 입력을, 입력 데이터가 포함하는지의 여부를 결정하는 것에 의해, 후보 방사상 엔트리 입력 결과를 결정할 수도 있다(1330).
예를 들면, 입력 데이터는, 낮은 빈도로 발생하는 그리고 직선의 방사상 메뉴 스트로크와 형상 기록 단어 사이의 충돌의 상당한 확률을 가지고 발생하는 용어로서 결정되는 낮은 빈도의 용어에 대한 엔트리를 생략하는 사전을 사용하여, 분석되어 하나 이상의 후보 프로세싱 값을 제공할 수도 있다(1332).
컴퓨팅 디바이스의 기술 분야에서 숙련된 자는, 본원의 논의의 취지를 벗어나지 않으면서, 입력 키보드 제스처의 모호성을 제거하는 많은 방식이 존재할 수도 있다는 것을 이해할 것이다.
IV. 특정 실시형태의 양태
본원에서 논의되는 피쳐는, 본원의 논의의 취지를 벗어나지 않으면서, 컴퓨팅 디바이스의 기술 분야에서 숙련된 자에 의해 이해될 수도 있는 많은 상이한 방식으로 구현될 수도 있는 예시적인 실시형태로서 제공된다. 이러한 피쳐는 예시적인 실시형태 피쳐로서만 해석되어야 하며, 이들 상세한 설명으로만 제한되는 것으로 해석되도록 의도되지는 않는다.
예를 들면, 시스템은, 적어도 하나의 디바이스 프로세서 중 적어도 하나를 통해, 형상 기록 입력 및 방사상 엔트리 입력을 수용하는 키보드를 동작시키는 키보드 엔진 및 적어도 하나의 디바이스 프로세서를 포함하는 장치를 포함한다. 키보드 엔진은, 키보드의 적어도 하나의 입력 센서로부터 입력 데이터를 획득하는 키보드 입력 모듈, 및 키보드의 유저에게, 형상 기록 입력 및 방사상 엔트리 입력 수용의 동시적 사용을 가능하게 하는 의도 모호성 제거 엔진을 포함한다.
키보드 엔진은, 입력 데이터를 분석하고, 후보 형상 기록 입력 결과 또는 후보 방사상 엔트리 입력 결과 중 하나 이상을 포함하는 하나 이상의 후보 프로세싱 값을 제공하는 입력 데이터 해석 모듈을 더 포함하는데, 의도 모호성 제거 엔진은, 하나 이상의 후보 프로세싱 값에 기초하여, 복수의 제안 값을 제공한다.
복수의 제안 값은, 후보 형상 기록 입력 결과 및 후보 방사상 엔트리 입력 결과를 포함한다.
키보드 엔진은, 제안 값의 디스플레이를 제공하는 키보드 출력 모듈을 더 포함하는데, 후보 방사상 엔트리 입력 결과의 디스플레이는, 후보 방사상 엔트리 입력 결과와 관련되는 방사상 엔트리 입력의 추론을 명시적으로 나타내는 그래픽 표시를 제공한다.
입력 데이터 해석 모듈은 입력 데이터를 분석하여, 키보드의 방사상 영역에서의 짧은 스트로크 입력을 나타내는 키보드 입력을, 입력 데이터가 포함하는지의 여부를 결정하는 것에 의해, 후보 방사상 엔트리 입력 결과를 결정할 수도 있다.
장치는, 낮은 빈도로 발생하는 그리고 직선의 방사상 메뉴 스트로크와 형상 기록 단어 사이의 충돌의 상당한 확률로 발생하는 용어로서 결정되는 낮은 빈도의 용어에 대한 엔트리를 생략하는 사전을 더 포함하는데, 입력 데이터 해석 모듈은, 사전을 사용하여, 입력 데이터를 분석하여 하나 이상의 후보 프로세싱 값을 제공한다.
키보드 엔진은, 입력 데이터를 분석하고 입력 데이터를 사용하여 하나 이상의 후보 형상 기록 입력 결과를 제공하는 형상 기록 해석기를 더 포함할 수도 있다.
키보드 엔진은, 입력 데이터를 분석하고 입력 데이터를 사용하여 후보 방사상 엔트리 입력 결과, 또는 네스트화된 방사상 엔트리 입력 결과 중 하나 이상을 제공하는 방사상 엔트리 해석기를 더 포함할 수도 있다.
키보드 엔진은, 키보드 엔진에 대한 입력의 모드를 추적하는 상태 머신을 더 포함한다.
키보드는 압력 감응 키보드를 포함할 수도 있다.
키보드는 가상 키보드를 포함한다.
키보드는, 키보드로부터 생략되는 종래의 키보드의 키에 대응하는 소정의 텍스트 엔트리 동작의 짧은 스트로크 입력 기능성을 포함할 수도 있다.
형상 기록 입력 및 방사상 엔트리 입력을 수용하는 키보드로부터 입력 데이터가 획득된다.
형상 기록 입력과 방사상 엔트리 입력 사이를 구별하기 위해 입력 데이터의 모호성을 제거하는 것에 의해, 형상 기록 입력 및 방사상 엔트리 입력 수용의 동시적 사용이, 디바이스 프로세서를 통해, 키보드의 유저에게 제공될 수도 있다.
입력 데이터는 분석되어, 후보 형상 기록 입력 결과, 또는 후보 방사상 엔트리 입력 결과 중 하나 이상을 포함하는 하나 이상의 후보 프로세싱 값을 제공한다.
하나 이상의 후보 프로세싱 값에 기초하여, 복수의 제안 값이 제공된다.
복수의 제안 값은, 후보 형상 기록 입력 결과 및 후보 방사상 엔트리 입력 결과를 포함한다.
제안 값의 디스플레이가 개시되는데, 후보 방사상 엔트리 입력 결과의 디스플레이는, 후보 방사상 엔트리 입력 결과와 관련되는 방사상 엔트리 입력의 추론을 명시적으로 나타내는 그래픽 표시를 제공한다.
입력 데이터를 분석하는 것은, 입력 데이터를 분석하여 키보드의 방사상 영역에서의 짧은 스트로크 입력을 나타내는 키보드 입력을, 입력 데이터가 포함하는지의 여부를 결정하는 것에 의해, 후보 방사상 엔트리 입력 결과를 결정하는 것을 포함한다.
터치 및 유지 입력에 응답하여, 키 위치로부터 슬라이드 업 메뉴로서 방사상 제스처 메뉴의 디스플레이가 개시된다.
컴퓨터 프로그램 제품은, 적어도 하나의 디바이스 프로세서로 하여금, 형상 기록 입력 및 방사상 엔트리 입력을 수용하는 키보드로부터 입력 데이터를 획득하게 하고, 형상 기록 입력과 방사상 엔트리 입력 사이를 구별하기 위해 입력 데이터의 모호성을 제거하는 것에 의해, 키보드의 유저에게, 형상 기록 입력 및 방사상 엔트리 입력 수용의 동시적 사용을 제공하게 하는 실행가능 코드를 저장하는 컴퓨터 판독가능 저장 매체를 포함한다.
실행가능 코드는, 적어도 하나의 컴퓨팅 디바이스로 하여금, 입력 데이터를 분석하여 후보 형상 기록 입력 결과, 또는 후보 방사상 엔트리 입력 결과 중 하나 이상을 포함하는 하나 이상의 후보 프로세싱 값을 제공하게 하고, 하나 이상의 후보 프로세싱 값에 기초하여, 복수의 제안 값을 제공하게 한다.
컴퓨팅 환경에서 수 년 동안 고객 개인 정보 및 기밀 유지가 지속적으로 고려되고 있다. 따라서, 입력 키보드 제스처의 모호성을 제거하기 위한 예시적인 기술은, 이러한 기술과 관련되는 관련된 애플리케이션 또는 서비스와의 하나 이상의 가입 계약(예를 들면, "서비스 약관(Terms of Service)"(TOS) 계약)을 통해 허가를 제공한 유저에 의해 제공되는 유저 입력 및/또는 데이터를 사용할 수도 있다. 예를 들면, 유저는 그들의 입력/데이터가 송신되어 디바이스 상에 저장되게 하는 동의를 제공할 수도 있다, 단, 각각의 당사자가 송신 및/또는 저장이 어떻게 발생하는지를, 그리고, 만약 있다면, 저장의 어떤 레벨 또는 지속기간이 유지될 수도 있는지를 제어할 수도 있다는 것이 (예를 들면, 유저가 승인한 계약을 통해) 명시적으로 나타내어질 수도 있다. 또한, 유저에 의해 사용되는 디바이스를 식별하기 위해 사용될 수도 있는 식별자가, 예를 들면, 실제 유저 정보를 해싱하는 것에 의해, 난독화될(obfuscated) 수도 있다. 임의의 관련 사법권의 개인 정보 보호 법률 및 규정에 따라 임의의 유저 입력/데이터가 획득될 수도 있다는 것이 이해되어야 한다.
본원에서 설명되는 다양한 기술의 구현예는, 디지털 전자 회로부(circuitry)에서, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어에서, 또는 이들의 조합에서 구현될 수도 있다(예를 들면, 다양한 기능성을 수행하는 명령어를 실행하도록 구성되는 장치).
구현예는, 신호(예를 들면, 순수한 전파 신호와 같은 순수한 신호)로 구체화되는 컴퓨터 프로그램으로서 구현될 수도 있다. 이러한 구현예는, 본원에서, 하기에서 논의되는 바와 같은 "컴퓨터 판독가능 저장 매체" 또는 "컴퓨터 판독가능 스토리지 디바이스"로서 자격이 없는 "컴퓨터 판독가능 송신 매체"를 통해 구현되는 것으로 언급될 것이다.
대안적으로, 컴퓨팅 장치(예를 들면, 데이터 프로세싱 장치, 컴퓨팅 디바이스), 예를 들면, 프로그래머블 프로세서, 특수 목적의 프로세서 또는 디바이스, 컴퓨터, 또는 다수의 컴퓨터에 의한 실행을 위한, 또는 이들의 동작을 제어하기 위한, 머신 사용가능 또는 머신 판독가능 스토리지 디바이스(예를 들면, 자기 또는 디지털 매체 예컨대 범용 직렬 버스(Universal Serial Bus; USB) 스토리지 디바이스, 테이프, 하드 디스크 드라이브, 콤팩트 디스크, 디지털 비디오 디스크(digital video disk; DVD), 등등)에서 구체화되는 컴퓨터 프로그램을 통해, 구현예가 구현될 수도 있다. 이러한 구현예는 본원에서 "컴퓨터 판독가능 저장 매체" 또는 "컴퓨터 판독가능 스토리지 디바이스"를 통해 구현되는 것으로 언급될 수도 있고 따라서 순수한 전파 신호와 같은 순수 신호인(그리고 따라서 본원에서 상기에서 논의되는 바와 같은 "컴퓨터 판독가능 송신 매체"로서 자격이 없는) 구현예와는 상이하다. 따라서, 본원에서, "컴퓨터 판독가능 저장 매체" 또는 "컴퓨터 판독가능 스토리지 디바이스"에 대한 언급은, 신호 그 자체를 언급하지는 않는다.
컴퓨터 프로그램, 예컨대 상기에서 설명되는 컴퓨터 프로그램(들)은, 컴파일식, 인터프리트식, 또는 기계어를 비롯한, 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적합한 다른 단위로서의 형태를 비롯한, 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은, 머신 사용가능 또는 머신 판독가능 스토리지 디바이스(예를 들면, 컴퓨터 판독가능 매체) 상에서 실행가능 코드(예를 들면, 실행가능 명령어)로서 유형적으로(tangibly) 구체화될 수도 있다. 상기에서 설명되는 기술을 구현할 수도 있는 컴퓨터 프로그램은, 한 장소에 있는 또는 다수의 장소에 걸쳐 분산되며 통신 네트워크에 의해 연결되는 하나의 컴퓨터 상에서 또는 다수의 컴퓨터 상에서 실행되도록 배치될 수도 있다.
입력 데이터에 대해 동작하고 출력을 생성하는 것에 의해 기능을 수행하는 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래머블 프로세서에 의해 방법 단계가 수행될 수도 있다. 하나 이상의 프로그래머블 프로세서는 명령어를 병렬로 실행할 수도 있고, 및/또는 분산 프로세싱을 위한 분산 구성으로 배치될 수도 있다. 본원에서 논의되는 예시적인 기능성은 또한 하나 이상의 하드웨어 로직 컴포넌트에 의해 수행될 수도 있고, 장치는, 적어도 부분적으로, 하나 이상의 하드웨어 로직 컴포넌트로서 구현될 수도 있다. 제한이 없는 예를 들면, 사용될 수 있는 하드웨어 로직 컴포넌트의 예시적인 타입은 필드 프로그래머블 게이트 어레이(Field-programmable Gate Array; FPGA), 프로그램 고유의 집적 회로(Program-specific Integrated Circuit; ASIC), 프로그램 고유의 표준 제품(Program-specific Standard Product; ASSP), 시스템 온칩 시스템(System-on-a-chip system; SOC), 복합 프로그래머블 로직 디바이스(Complex Programmable Logic Device; CPLD), 등등을 포함할 수도 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 예로서, 범용 마이크로프로세서 및 특수 목적의 마이크로프로세서 둘 다, 및/또는 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는, 리드 온리 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어 및 데이터를 수신할 것이다. 컴퓨터의 엘리먼트는, 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스 및 명령어를 실행하기 위한 적어도 하나의 프로세서를 포함할 수도 있다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 스토리지 디바이스, 예를 들면, 자기, 광자기 디스크, 또는 광학 디스크를 포함할 수도 있거나, 또는 이들로부터 데이터를 수신하도록 또는 이들로 데이터를 전송하도록, 또는 둘 다를 하도록 동작가능하게 커플링될 수도 있다. 컴퓨터 프로그램 명령어 및 데이터를 구현하기에 적합한 정보 캐리어는 불휘발성 메모리의 모든 형태를 포함하는데, 예로서 반도체 메모리 디바이스, 예를 들면, EPROM, EEPROM, 및 플래시 메모리 디바이스; 자기 디스크, 예를 들면, 내부 하드 디스크 또는 착탈식 디스크; 광자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함한다. 프로세서 및 메모리는, 특수 목적의 로직 회로부에 의해 보완될 수도 있거나, 또는 특수 목적의 로직 회로부에 통합될 수도 있다.
유저와의 상호작용을 제공하기 위해, 정보를 유저에게 디스플레이하기 위한 디스플레이 디바이스, 예를 들면, 음극선관(cathode ray tube; CRT), 액정 디스플레이(liquid crystal display; LCD), 발광 다이오드(light-emitting diode; LED) 모니터, 또는 플라즈마 모니터, 및 키보드 및 포인팅 디바이스, 예를 들면, 마우스 또는 트랙볼을 구비하는 컴퓨터에 대한 구현예가 구현될 수도 있는데, 유저는 키보드 및 포인팅 디바이스에 의해 컴퓨터로 입력을 제공할 수 있다. 본원에서 논의되는 바와 같이, 태블릿, 터치스크린, 슬레이트, 등등은 입력 및 디스플레이를 위해 사용될 수도 있다. 유저와의 상호작용을 제공하기 위해 다른 종류의 디바이스가 또한 사용될 수 있다: 예를 들면, 유저에게 제공되는 피드백은 임의의 형태의 센서류 피드백, 예를 들면, 시각적 피드백, 및/또는 청각적 피드백, 및/또는 촉각 피드백일 수 있다. 예를 들면, 출력은, 시각적 출력(예를 들면, 시각적 제스처, 비디오 출력), 및/또는 오디오 출력(예를 들면, 음성, 디바이스 사운드), 및/또는 촉각 출력(예를 들면, 터치, 디바이스 움직임), 및/또는 온도, 및/또는 냄새, 등등을 포함하는(그러나 이들로 제한되지는 않는) 임의의 형태의 센서류 출력을 통해 제공될 수도 있다.
또한, 유저로부터의 입력은, 음향, 및/또는 스피치, 또는 및/또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 본원에서 논의되는 바와 같이, 입력은 펜 또는 다른 입력 오브젝트로부터 수신될 수도 있다. 예를 들면, 입력은, 시각적 입력(예를 들면, 제스처, 비디오 입력), 오디오 입력(예를 들면, 음성, 디바이스 사운드), 촉각 입력(예를 들면, 터치, 디바이스 움직임), 온도, 냄새, 등등을 포함하는(그러나 이들로 제한되지는 않는) 임의의 형태의 센서류 입력을 통해 유저로부터 수신될 수도 있다.
또한, 내츄럴 유저 인터페이스(natural user interface; NUI)는 유저와 인터페이싱하도록 사용될 수도 있다. 이 맥락에서, "NUI"는, 마우스, 키보드, 리모콘, 및 등등과 같은 입력 디바이스에 의해 부과되는 인공적 제약이 없이, 유저가 디바이스와 "자연적인" 방식으로 상호작용하는 것을 가능하게 하는 임의의 인터페이스 기술을 가리킬 수도 있다.
NUI 기술의 예는, 스피치 인식, 터치 및 스타일러스 인식, 스크린 상에서의 그리고 스크린에 인접한 곳에서의 둘 모두에서의 제스처 인식, 에어 제스처(air gesture), 머리 및 눈 추적(head and eye tracking), 보이스 및 스피치, 비전, 터치, 제스처, 및 머신 지능에 의존하는 기술을 포함할 수도 있다. 예시적인 NUI 기술은, 터치 감응 디스플레이, 음성 및 스피치 인식, 의도 및 목표 이해, 깊이 카메라(예를 들면, KINECT, 입체 카메라 시스템, 적외선 카메라 시스템, RGB(red, green, blue; 레드, 그린, 블루) 카메라 시스템 및 이들의 조합)를 사용한 모션 제스처 검출, 가속도계/자이로스코프를 사용한 모션 제스처 검출, 자력계, 얼굴 인식, 3D 디스플레이, 머리, 눈 및 시선 추적(head, eye and gaze tracking), 몰입형 증강 현실(immersive augmented reality) 및 가상 현실 시스템, 및 전기장 감지 전극(electric field sensing electrode)을 사용한 뇌 활동을 감지하기 위한 기술(예를 들면, EEG(electroencephalography; 뇌파 검사) 및 관련 기술)을 포함할 수도 있지만, 그러나 이들로 제한되지는 않는다.
예를 들면, 데이터 서버로서 백엔드(back end) 컴포넌트를 포함하는, 또는 미들웨어 컴포넌트, 예를 들면, 애플리케이션 서버를 포함하는, 또는 프론트 엔드 컴포넌트, 예를 들면, 유저가 구현예와 상호작용할 수 있는 웹 브라우저 또는 그래픽 유저 인터페이스를 구비하는 클라이언트 컴퓨터를 포함하는, 또는 이러한 백 엔드, 미들웨어, 또는 프론트 엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현예가 구현될 수도 있다. 컴포넌트는, 임의의 형태 또는 매체의 디지털 데이터 통신, 예를 들면, 통신 네트워크에 의해 상호접속될 수도 있다. 통신 네트워크의 예는, 근거리 통신망(local area network; LAN) 및 광역 통신망(wide area network; WAN), 예를 들면, 인터넷을 포함한다.
본 특허 대상이 구조적 피쳐 및/또는 방법론적 액트(act)에 고유한 언어로 설명되었지만, 첨부의 청구범위에서 정의되는 특허 대상은 상기에서 설명되는 특정 피쳐 또는 액트로 반드시 제한되는 것은 아니다는 것이 이해되어야 한다. 오히려, 상기에서 설명되는 특정 피쳐 및 액트는 특허청구범위를 구현하는 예시적인 형태로서 설명된다. 설명된 구현예의 소정의 피쳐가 본원에서 설명되는 바와 같이 예시되었지만, 기술 분야에서 숙련된 자에게는, 많은 수정예, 대체예, 변경예 및 등가예가 떠오를 것이다. 따라서, 첨부의 청구범위는, 실시형태의 범위 내에 있는 그러한 모든 수정예 및 변경예를 포괄하도록 의도된다는 것이 이해되어야 한다.

Claims (20)

  1. 장치에 있어서,
    적어도 하나의 디바이스 프로세서; 및
    명령어를 저장한 적어도 하나의 컴퓨터 판독가능한 저장 매체를 포함하고,
    상기 명령어는, 상기 적어도 하나의 디바이스 프로세서에 의해 실행될 때, 상기 적어도 하나의 디바이스 프로세서로 하여금:
    단어(word)들의 형상 기록(shape-writing) 및 개별 캐릭터(character)들의 방사상 엔트리(radial entry)를 구현하도록 구성된 키보드를 동작시키고;
    주 캐릭터(primary character)에 관한 것인 상기 키보드에의 입력을 식별하는 입력 데이터를 획득하고 - 상기 입력은 상기 주 캐릭터와 연관된 보조 캐릭터를 선택하도록 사용가능한 특정한 방향으로 이동함 - ;
    상기 입력이 특정 단어를 엔터(enter)시키기 위한 형상 기록 입력인지 아니면 상기 보조 캐릭터를 엔터시키기 위한 방사상 엔트리 입력인지 모호성 제거하도록(disambiguate) 상기 입력 데이터를 평가하고;
    제1 인스턴스에서 상기 입력이 상기 형상 기록 입력으로서 모호성 제거될 때, 상기 주 캐릭터를 포함하는 상기 특정 단어를 엔터시키고;
    제2 인스턴스에서 상기 입력이 상기 방사상 엔트리 입력으로서 모호성 제거될 때, 상기 주 캐릭터와 연관된 상기 보조 캐릭터를 엔터시키게
    하는 것인, 장치.
  2. 청구항 1에 있어서, 상기 명령어는, 상기 적어도 하나의 디바이스 프로세서에 의해 실행될 때, 상기 적어도 하나의 디바이스 프로세서로 하여금:
    상기 입력 데이터를 분석하며,
    상기 특정 단어를 식별하는 후보 형상 기록 입력 결과와,
    상기 보조 캐릭터를 식별하는 후보 방사상 엔트리 입력 결과
    를 포함하는 후보 처리된 값을 제공하고;
    상기 입력 데이터에 응답하여 복수의 제안들을 디스플레이하고 - 상기 복수의 제안들은 상기 특정 단어의 제1 제안 및 상기 보조 캐릭터의 제2 제안을 포함함 - ;
    상기 제1 인스턴스에서, 상기 제1 제안의 선택에 응답하여 상기 특정 단어를 엔터시키고;
    상기 제2 인스턴스에서, 상기 제2 제안의 선택에 응답하여 상기 보조 캐릭터를 엔터시키게
    하는 것인, 장치.
  3. 청구항 1에 있어서, 상기 형상 기록 입력은 상기 특정 단어의 또다른 캐릭터를 통과하며, 상기 또다른 캐릭터는 상기 주 캐릭터에 대한 상기 키보드 상의 특정한 방향에 위치되는 것인, 장치.
  4. 청구항 1에 있어서, 상기 명령어는, 상기 적어도 하나의 디바이스 프로세서에 의해 실행될 때, 상기 적어도 하나의 디바이스 프로세서로 하여금:
    상기 제1 인스턴스에서, 적어도 상기 입력 데이터의 관찰된 길이에 기초하여 상기 입력 데이터를 상기 형상 기록 입력으로서 모호성 제거하게
    하는 것인, 장치.
  5. 청구항 4에 있어서, 상기 명령어는, 상기 적어도 하나의 디바이스 프로세서에 의해 실행될 때, 상기 적어도 하나의 디바이스 프로세서로 하여금:
    상기 제2 인스턴스에서, 적어도 상기 입력 데이터의 관찰된 길이에 기초하여 상기 입력 데이터를 상기 방사상 엔트리 입력으로서 모호성 제거하게
    하는 것인, 장치.
  6. 청구항 1에 있어서, 상기 명령어는, 상기 적어도 하나의 디바이스 프로세서에 의해 실행될 때, 상기 적어도 하나의 디바이스 프로세서로 하여금:
    상기 입력 데이터의 관찰된 길이를 문턱값과 비교하고;
    상기 입력 데이터의 관찰된 길이가 상기 문턱값을 초과할 때 상기 입력 데이터가 상기 형상 기록 입력이라고 결정하고;
    상기 입력 데이터의 관찰된 길이가 상기 문턱값 미만에 속할 때 상기 입력 데이터가 상기 방사상 엔트리 입력이라고 결정하게 하도록
    하는 것인, 장치.
  7. 청구항 1에 있어서, 상기 명령어는, 상기 적어도 하나의 디바이스 프로세서에 의해 실행될 때, 상기 적어도 하나의 디바이스 프로세서로 하여금:
    상기 입력 데이터로부터, 상기 입력의 관찰된 압력을 결정하고;
    적어도 상기 입력의 관찰된 압력에 기초하여 상기 입력 데이터를 모호성 제거하게
    하는 것인, 장치.
  8. 청구항 7에 있어서, 상기 명령어는, 상기 적어도 하나의 디바이스 프로세서에 의해 실행될 때, 상기 적어도 하나의 디바이스 프로세서로 하여금:
    상기 관찰된 압력이 상기 키보드 상의 가벼운 터치를 나타낼 때, 상기 입력 데이터를 상기 형상 기록 입력으로서 지정하고;
    상기 관찰된 압력이 상기 키보드 상의 강한 터치를 나타낼 때, 상기 입력 데이터를 상기 방사상 엔트리 입력으로서 지정하게
    하는 것인, 장치.
  9. 청구항 1에 있어서, 상기 명령어는, 상기 적어도 하나의 디바이스 프로세서에 의해 실행될 때, 상기 적어도 하나의 디바이스 프로세서로 하여금:
    상기 입력 데이터로부터, 상기 입력의 관찰된 속도를 결정하고;
    적어도 상기 입력의 관찰된 속도에 기초하여 상기 입력 데이터를 모호성 제거하게
    하는 것인, 장치.
  10. 청구항 9에 있어서, 상기 명령어는, 상기 적어도 하나의 디바이스 프로세서에 의해 실행될 때, 상기 적어도 하나의 디바이스 프로세서로 하여금:
    상기 관찰된 속도가 문턱값 미만에 속할 때, 상기 입력 데이터를 상기 방사상 엔트리 입력으로서 지정하고;
    상기 관찰된 속도가 문턱값을 초과할 때, 상기 입력 데이터를 상기 형상 기록 입력으로서 지정하게
    하는 것인, 장치.
  11. 청구항 1에 있어서, 상기 명령어는, 상기 적어도 하나의 디바이스 프로세서에 의해 실행될 때, 상기 적어도 하나의 디바이스 프로세서로 하여금:
    상기 입력 데이터로부터, 상기 입력의 관찰된 가속도를 결정하고;
    적어도 상기 입력의 관찰된 가속도에 기초하여 상기 입력 데이터를 모호성 제거하게
    하는 것인, 장치.
  12. 컴퓨팅 디바이스에 의해 수행되는 방법에 있어서,
    형상 기록 및 방사상 엔트리를 수용하는 키보드로부터 입력 데이터 - 상기 입력 데이터는 상기 키보드 상에서 수행된 현재 스트로크(stroke)가 특정한 방향으로 이동하였음을 나타냄 - 를 획득하는 단계;
    상기 특정한 방향으로 이동하는 스트로크를 통해 상기 키보드에 둘 다 엔터될 수 있는 형상 기록 입력 및 방사상 엔트리 입력을 식별하는 단계;
    적어도 상기 현재 스트로크의 특성에 기초하여, 상기 현재 스트로크가 상기 형상 기록 입력인지 아니면 상기 방사상 엔트리 입력인지 결정하도록 상기 현재 스트로크를 모호성 제거하는 단계;
    제1 인스턴스에서 상기 현재 스트로크가 상기 형상 기록 입력으로서 모호성 제거될 때, 상기 컴퓨팅 디바이스 상에 상기 형상 기록 입력에 의해 식별되는 단어를 엔터시키는 단계; 및
    제2 인스턴스에서 상기 현재 스트로크가 상기 방사상 엔트리 입력으로서 모호성 제거될 때, 상기 컴퓨팅 디바이스 상에 캐릭터를 엔터시키는 단계
    를 포함하는, 컴퓨팅 디바이스에 의해 수행되는 방법.
  13. 청구항 12에 있어서, 상기 특성은 상기 현재 스트로크의 길이인 것인, 컴퓨팅 디바이스에 의해 수행되는 방법.
  14. 청구항 12에 있어서, 상기 특성은 상기 현재 스트로크의 속도인 것인, 컴퓨팅 디바이스에 의해 수행되는 방법.
  15. 청구항 12에 있어서, 상기 특성은 상기 현재 스트로크 동안 인가된 압력인 것인, 컴퓨팅 디바이스에 의해 수행되는 방법.
  16. 청구항 12에 있어서, 상기 특성은, 상기 현재 스트로크가 변곡점을 포함하는지 여부에 관한 것인, 컴퓨팅 디바이스에 의해 수행되는 방법.
  17. 청구항 16에 있어서,
    상기 제1 인스턴스에서, 적어도 상기 현재 스트로크가 변곡점을 포함한다는 것에 기초하여 상기 현재 스트로크를 상기 형상 기록 입력으로서 모호성 제거하는 단계
    를 더 포함하는, 컴퓨팅 디바이스에 의해 수행되는 방법.
  18. 청구항 17에 있어서,
    상기 제2 인스턴스에서, 적어도 상기 현재 스트로크에 변곡점이 없다는 것에 기초하여 상기 현재 스트로크를 상기 방사상 엔트리로서 모호성 제거하는 단계
    를 더 포함하는, 컴퓨팅 디바이스에 의해 수행되는 방법.
  19. 시스템에 있어서,
    프로세서; 및
    실행가능 코드를 저장한 컴퓨터 판독가능 저장 매체를 포함하고,
    상기 실행가능 코드는, 상기 프로세서로 하여금,
    키가 터치될 때 특정 캐릭터를 엔터시키기 위한 상기 키를 갖는 키보드를 제공하고;
    상기 키보드에 대한 현재 입력이 상기 키에 접촉하고 상기 키로부터 멀어지는 특정한 방향으로 이동함을 나타내는, 상기 키보드로부터의 입력 데이터를 획득하고;
    적어도 상기 현재 입력의 특성에 기초하여, 상기 입력 데이터를 형상 기록 입력으로서 처리할지 여부를 결정하고;
    제1 인스턴스에서 상기 현재 입력을 형상 기록 입력으로서 처리하지 않는다는 결정이 행해질 때, 상기 현재 입력에 응답하여 상기 키와 연관된 보조 캐릭터를 엔터시키고;
    제2 인스턴스에서 상기 현재 입력을 형상 기록 입력으로서 처리한다는 결정이 행해질 때, 상기 현재 입력에 응답하여 상기 키와 연관된 주 캐릭터를 포함하는 단어를 엔터시키게
    하는 것인, 시스템.
  20. 청구항 19에 있어서, 상기 보조 캐릭터는 상기 특정 캐릭터의 대문자 버전인 것인, 시스템.
KR1020217042521A 2014-09-13 2015-09-09 키보드 입력의 모호성 제거 KR102415851B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/485,720 US9940016B2 (en) 2014-09-13 2014-09-13 Disambiguation of keyboard input
US14/485,720 2014-09-13
KR1020177010113A KR102345039B1 (ko) 2014-09-13 2015-09-09 키보드 입력의 모호성 제거
PCT/US2015/049056 WO2016040405A1 (en) 2014-09-13 2015-09-09 Disambiguation of keyboard input

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020177010113A Division KR102345039B1 (ko) 2014-09-13 2015-09-09 키보드 입력의 모호성 제거

Publications (2)

Publication Number Publication Date
KR20220005592A true KR20220005592A (ko) 2022-01-13
KR102415851B1 KR102415851B1 (ko) 2022-06-30

Family

ID=54148639

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177010113A KR102345039B1 (ko) 2014-09-13 2015-09-09 키보드 입력의 모호성 제거
KR1020217042521A KR102415851B1 (ko) 2014-09-13 2015-09-09 키보드 입력의 모호성 제거

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020177010113A KR102345039B1 (ko) 2014-09-13 2015-09-09 키보드 입력의 모호성 제거

Country Status (11)

Country Link
US (2) US9940016B2 (ko)
EP (2) EP3191929B1 (ko)
JP (1) JP6655064B2 (ko)
KR (2) KR102345039B1 (ko)
CN (2) CN107077288B (ko)
AU (1) AU2015315248B2 (ko)
BR (1) BR112017003650A2 (ko)
CA (1) CA2959715C (ko)
MX (1) MX2017003316A (ko)
RU (1) RU2707148C2 (ko)
WO (1) WO2016040405A1 (ko)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8984431B2 (en) 2009-03-16 2015-03-17 Apple Inc. Device, method, and graphical user interface for moving a current position in content at a variable scrubbing rate
US9424246B2 (en) 2009-03-30 2016-08-23 Touchtype Ltd. System and method for inputting text into electronic devices
US10191654B2 (en) * 2009-03-30 2019-01-29 Touchtype Limited System and method for inputting text into electronic devices
GB0905457D0 (en) 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
US10706096B2 (en) 2011-08-18 2020-07-07 Apple Inc. Management of local and remote media items
US9002322B2 (en) 2011-09-29 2015-04-07 Apple Inc. Authentication with secondary approver
JP5844707B2 (ja) * 2012-09-28 2016-01-20 富士フイルム株式会社 画像表示制御装置、画像表示装置、プログラム及び画像表示方法
WO2014143776A2 (en) 2013-03-15 2014-09-18 Bodhi Technology Ventures Llc Providing remote interactions with host device using a wireless device
US9898187B2 (en) 2013-06-09 2018-02-20 Apple Inc. Managing real-time handwriting recognition
US11256294B2 (en) 2014-05-30 2022-02-22 Apple Inc. Continuity of applications across devices
CN105450583B (zh) 2014-07-03 2019-07-05 阿里巴巴集团控股有限公司 一种信息认证的方法及装置
CN105446992A (zh) 2014-07-08 2016-03-30 阿里巴巴集团控股有限公司 建立商品对象回收信息数据库、确定价值信息方法及装置
CN105450411B (zh) 2014-08-14 2019-01-08 阿里巴巴集团控股有限公司 利用卡片特征进行身份验证的方法、装置及***
CN105447378B (zh) * 2014-08-27 2018-07-13 阿里巴巴集团控股有限公司 一种密码生成方法和装置
CN110072131A (zh) 2014-09-02 2019-07-30 苹果公司 音乐用户界面
US9940016B2 (en) 2014-09-13 2018-04-10 Microsoft Technology Licensing, Llc Disambiguation of keyboard input
US20160077735A1 (en) * 2014-09-17 2016-03-17 Kabushiki Kaisha Toshiba Character input apparatus and character input method
US10585584B2 (en) * 2014-09-29 2020-03-10 Hewlett-Packard Development Company, L.P. Virtual keyboard
CN105719183A (zh) 2014-12-03 2016-06-29 阿里巴巴集团控股有限公司 定向转账方法及其装置
CN104571585B (zh) * 2014-12-30 2017-07-28 北京奇虎科技有限公司 输入法光标操作方法和装置
CN105869043A (zh) 2015-01-19 2016-08-17 阿里巴巴集团控股有限公司 分散热点的数据库账户转入、转出的记账方法及装置
CN105989467A (zh) 2015-02-03 2016-10-05 阿里巴巴集团控股有限公司 无线支付方法与装置及交通工具乘坐费检验方法与***
CN106164840A (zh) * 2015-02-16 2016-11-23 华为技术有限公司 一种键盘的显示方法、装置及终端设备
US9996258B2 (en) * 2015-03-12 2018-06-12 Google Llc Suggestion selection during continuous gesture input
US10503264B1 (en) * 2015-06-16 2019-12-10 Snap Inc. Radial gesture navigation
US10282090B2 (en) * 2015-09-30 2019-05-07 Apple Inc. Systems and methods for disambiguating intended user input at an onscreen keyboard using dual strike zones
CN106570009B (zh) 2015-10-09 2020-07-28 阿里巴巴集团控股有限公司 导航类目更新方法及装置
US9939921B2 (en) * 2015-12-30 2018-04-10 Synaptics Incorporated Electronic device keyboard spacebar with visual feedback associated with location sensing
US10528186B2 (en) * 2016-03-31 2020-01-07 Rovi Guides, Inc. Systems and methods for controlling playback of a media asset using a touch screen
DK179186B1 (en) 2016-05-19 2018-01-15 Apple Inc REMOTE AUTHORIZATION TO CONTINUE WITH AN ACTION
DK179329B1 (en) 2016-06-12 2018-05-07 Apple Inc Handwriting keyboard for monitors
DK201670622A1 (en) 2016-06-12 2018-02-12 Apple Inc User interfaces for transactions
EP3474275A4 (en) * 2016-06-21 2019-11-06 Sony Corporation INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING METHOD
US20180018086A1 (en) * 2016-07-14 2018-01-18 Google Inc. Pressure-based gesture typing for a graphical keyboard
JP6162299B1 (ja) * 2016-07-28 2017-07-12 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、入力切替方法、及びプログラム
US20180090027A1 (en) * 2016-09-23 2018-03-29 Apple Inc. Interactive tutorial support for input options at computing devices
US10739990B1 (en) * 2016-12-18 2020-08-11 Leonid Despotuli Gesture-based mobile device user interface
US11609692B2 (en) * 2017-04-07 2023-03-21 Hewlett-Packard Development Company, L.P. Cursor adjustments
US11431836B2 (en) 2017-05-02 2022-08-30 Apple Inc. Methods and interfaces for initiating media playback
US10992795B2 (en) 2017-05-16 2021-04-27 Apple Inc. Methods and interfaces for home media control
CN111343060B (zh) 2017-05-16 2022-02-11 苹果公司 用于家庭媒体控制的方法和界面
US20220279063A1 (en) 2017-05-16 2022-09-01 Apple Inc. Methods and interfaces for home media control
US11455094B2 (en) 2017-07-11 2022-09-27 Thumba Inc. Interactive virtual keyboard configured for gesture based word selection and having a plurality of keys arranged approximately radially about at least one center point
US11061556B2 (en) * 2018-01-12 2021-07-13 Microsoft Technology Licensing, Llc Computer device having variable display output based on user input with variable time and/or pressure patterns
CN108734371A (zh) 2018-02-12 2018-11-02 阿里巴巴集团控股有限公司 一种针对风控指令的处理方法、装置及设备
JP7106890B2 (ja) * 2018-03-05 2022-07-27 オムロン株式会社 文字入力装置、文字入力方法、及び、文字入力プログラム
CN108632348B (zh) 2018-03-19 2020-02-18 阿里巴巴集团控股有限公司 一种业务校验方法和装置
CA3131489A1 (en) 2019-02-27 2020-09-03 Louisiana-Pacific Corporation Fire-resistant manufactured-wood based siding
DK201970533A1 (en) 2019-05-31 2021-02-15 Apple Inc Methods and user interfaces for sharing audio
US11010121B2 (en) 2019-05-31 2021-05-18 Apple Inc. User interfaces for audio media control
US10904029B2 (en) 2019-05-31 2021-01-26 Apple Inc. User interfaces for managing controllable external devices
US11620103B2 (en) 2019-05-31 2023-04-04 Apple Inc. User interfaces for audio media control
US11194467B2 (en) 2019-06-01 2021-12-07 Apple Inc. Keyboard management user interfaces
US11009969B1 (en) 2019-12-03 2021-05-18 International Business Machines Corporation Interactive data input
CN111552429B (zh) * 2020-04-29 2021-07-23 杭州海康威视数字技术股份有限公司 一种图形选中方法、装置及电子设备
US11079913B1 (en) 2020-05-11 2021-08-03 Apple Inc. User interface for status indicators
US11392291B2 (en) 2020-09-25 2022-07-19 Apple Inc. Methods and interfaces for media control with dynamic feedback
US11797173B2 (en) * 2020-12-28 2023-10-24 Microsoft Technology Licensing, Llc System and method of providing digital ink optimized user interface elements
US11847378B2 (en) 2021-06-06 2023-12-19 Apple Inc. User interfaces for audio routing
KR20230020711A (ko) * 2021-08-04 2023-02-13 한국전자통신연구원 음성인식성능 향상을 위한 영어 문자 입력 장치 및 이를 이용한 방법
US20230324997A1 (en) * 2022-04-11 2023-10-12 Meta Platforms Technologies, Llc Virtual Keyboard Selections Using Multiple Input Modalities

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094197A (en) * 1993-12-21 2000-07-25 Xerox Corporation Graphical keyboard
US20050190973A1 (en) * 2004-02-27 2005-09-01 International Business Machines Corporation System and method for recognizing word patterns in a very large vocabulary based on a virtual keyboard layout
US20070040813A1 (en) * 2003-01-16 2007-02-22 Forword Input, Inc. System and method for continuous stroke word-based text input
US20140078063A1 (en) * 2012-09-18 2014-03-20 Microsoft Corporation Gesture-initiated keyboard functions

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6317128B1 (en) 1996-04-18 2001-11-13 Silicon Graphics, Inc. Graphical user interface with anti-interference outlines for enhanced variably-transparent applications
US5953541A (en) 1997-01-24 1999-09-14 Tegic Communications, Inc. Disambiguating system for disambiguating ambiguous input sequences by displaying objects associated with the generated input sequences in the order of decreasing frequency of use
US6160555A (en) 1997-11-17 2000-12-12 Hewlett Packard Company Method for providing a cue in a computer system
US6424338B1 (en) 1999-09-30 2002-07-23 Gateway, Inc. Speed zone touchpad
US6707449B2 (en) 2000-08-30 2004-03-16 Microsoft Corporation Manual controlled scrolling
US20030014239A1 (en) 2001-06-08 2003-01-16 Ichbiah Jean D. Method and system for entering accented and other extended characters
US7202857B2 (en) 2001-08-29 2007-04-10 Microsoft Corporation Manual controlled scrolling
US7075520B2 (en) 2001-12-12 2006-07-11 Zi Technology Corporation Ltd Key press disambiguation using a keypad of multidirectional keys
US20070005685A1 (en) * 2002-09-16 2007-01-04 Wunchun Chau Browser-based payment system
US7453439B1 (en) 2003-01-16 2008-11-18 Forward Input Inc. System and method for continuous stroke word-based text input
SG135918A1 (en) 2003-03-03 2007-10-29 Xrgomics Pte Ltd Unambiguous text input method for touch screens and reduced keyboard systems
US8648825B2 (en) 2010-10-01 2014-02-11 Z124 Off-screen gesture dismissable keyboard
US20080010055A1 (en) * 2005-03-08 2008-01-10 Pathiyal Krishna K Handheld Electronic Device and Associated Method Employing a Multiple-Axis Input Device and Providing a Prior Variant List When Employing a Disambiguation Routine and Reinitiating a Text Entry Session on a Word
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
US7895518B2 (en) * 2007-04-27 2011-02-22 Shapewriter Inc. System and method for preview and selection of words
US8059101B2 (en) 2007-06-22 2011-11-15 Apple Inc. Swipe gestures for touch screen keyboards
WO2010018579A2 (en) 2008-08-12 2010-02-18 Benjamin Firooz Ghassabian Improved data entry system
US9041660B2 (en) * 2008-12-09 2015-05-26 Microsoft Technology Licensing, Llc Soft keyboard control
GB0905457D0 (en) 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
US20100259482A1 (en) 2009-04-10 2010-10-14 Microsoft Corporation Keyboard gesturing
WO2010126495A1 (en) 2009-04-29 2010-11-04 Hewlett-Packard Development Company, L.P. Controlling a keyboard
US8549432B2 (en) 2009-05-29 2013-10-01 Apple Inc. Radial menus
US8884872B2 (en) 2009-11-20 2014-11-11 Nuance Communications, Inc. Gesture-based repetition of key activations on a virtual keyboard
CN102081490B (zh) * 2009-11-27 2013-01-30 沈阳格微软件有限责任公司 面向触屏设备的点划式汉字声韵输入***
EP2513755A2 (en) 2009-12-20 2012-10-24 Keyless Systems Ltd Features of a data entry system
US8381119B2 (en) 2010-01-11 2013-02-19 Ideographix, Inc. Input device for pictographic languages
US9104312B2 (en) * 2010-03-12 2015-08-11 Nuance Communications, Inc. Multimodal text input system, such as for use with touch screens on mobile phones
US20110242138A1 (en) 2010-03-31 2011-10-06 Tribble Guy L Device, Method, and Graphical User Interface with Concurrent Virtual Keyboards
JP5615583B2 (ja) 2010-04-08 2014-10-29 京セラ株式会社 文字入力装置、文字入力方法および文字入力プログラム
US20110302518A1 (en) 2010-06-07 2011-12-08 Google Inc. Selecting alternate keyboard characters via motion input
CN102117175A (zh) * 2010-09-29 2011-07-06 北京搜狗科技发展有限公司 一种滑行输入中文的方法、装置和触摸屏输入法***
US20120081297A1 (en) 2010-10-01 2012-04-05 Google Inc. Touch keyboard with phonetic character shortcuts
JP5705499B2 (ja) 2010-10-15 2015-04-22 シャープ株式会社 情報処理装置および情報処理装置の制御方法
WO2012068550A2 (en) 2010-11-20 2012-05-24 Kushler Clifford A Systems and methods for using entered text to access and process contextual information
KR20120069484A (ko) 2010-12-20 2012-06-28 삼성전자주식회사 키 입력 방법 및 장치
US20130067420A1 (en) 2011-09-09 2013-03-14 Theresa B. Pittappilly Semantic Zoom Gestures
US8856674B2 (en) 2011-09-28 2014-10-07 Blackberry Limited Electronic device and method for character deletion
US8890808B2 (en) 2012-01-06 2014-11-18 Microsoft Corporation Repositioning gestures for chromeless regions
US9141262B2 (en) 2012-01-06 2015-09-22 Microsoft Technology Licensing, Llc Edge-based hooking gestures for invoking user interfaces
US8902181B2 (en) 2012-02-07 2014-12-02 Microsoft Corporation Multi-touch-movement gestures for tablet computing devices
US20130271385A1 (en) 2012-04-16 2013-10-17 Research In Motion Limited Method of Changing Input States
CN102841752B (zh) * 2012-08-21 2015-10-07 刘炳林 一种人机交互设备的字符输入方法和装置
US9304683B2 (en) * 2012-10-10 2016-04-05 Microsoft Technology Licensing, Llc Arced or slanted soft input panels
US20140123049A1 (en) 2012-10-30 2014-05-01 Microsoft Corporation Keyboard with gesture-redundant keys removed
US9940016B2 (en) 2014-09-13 2018-04-10 Microsoft Technology Licensing, Llc Disambiguation of keyboard input

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094197A (en) * 1993-12-21 2000-07-25 Xerox Corporation Graphical keyboard
US20070040813A1 (en) * 2003-01-16 2007-02-22 Forword Input, Inc. System and method for continuous stroke word-based text input
US20050190973A1 (en) * 2004-02-27 2005-09-01 International Business Machines Corporation System and method for recognizing word patterns in a very large vocabulary based on a virtual keyboard layout
US20140078063A1 (en) * 2012-09-18 2014-03-20 Microsoft Corporation Gesture-initiated keyboard functions

Also Published As

Publication number Publication date
KR102345039B1 (ko) 2021-12-29
US20180300056A1 (en) 2018-10-18
CN111708478A (zh) 2020-09-25
KR20170054503A (ko) 2017-05-17
MX2017003316A (es) 2017-06-21
EP3191929A1 (en) 2017-07-19
CN111708478B (zh) 2023-11-07
CA2959715C (en) 2023-01-17
JP6655064B2 (ja) 2020-02-26
RU2017107513A3 (ko) 2019-04-25
RU2017107513A (ru) 2018-09-10
CA2959715A1 (en) 2016-03-17
US9940016B2 (en) 2018-04-10
US20160077734A1 (en) 2016-03-17
AU2015315248A1 (en) 2017-03-09
KR102415851B1 (ko) 2022-06-30
EP3191929B1 (en) 2020-04-22
US10983694B2 (en) 2021-04-20
JP2017531372A (ja) 2017-10-19
RU2707148C2 (ru) 2019-11-22
WO2016040405A1 (en) 2016-03-17
BR112017003650A2 (pt) 2017-12-05
CN107077288B (zh) 2020-07-07
CN107077288A (zh) 2017-08-18
AU2015315248B2 (en) 2020-07-09
EP3686727A1 (en) 2020-07-29

Similar Documents

Publication Publication Date Title
KR102345039B1 (ko) 키보드 입력의 모호성 제거
US10353570B1 (en) Thumb touch interface
US10768804B2 (en) Gesture language for a device with multiple touch surfaces
JP5730667B2 (ja) デュアルスクリーン上のユーザジェスチャのための方法及びデュアルスクリーンデバイス
US9348458B2 (en) Gestures for touch sensitive input devices
EP1774429B1 (en) Gestures for touch sensitive input devices
US20140123049A1 (en) Keyboard with gesture-redundant keys removed
US20090100383A1 (en) Predictive gesturing in graphical user interface
US20100259482A1 (en) Keyboard gesturing
EP2442222A2 (en) Information processing apparatus, and input control method and program of information processing apparatus
US8081170B2 (en) Object-selecting method using a touchpad of an electronic apparatus
KR101436585B1 (ko) 원 포인트 터치를 이용한 사용자 인터페이스 제공 방법 및 이를 위한 장치
KR101436588B1 (ko) 멀티 포인트 터치를 이용한 사용자 인터페이스 제공 방법 및 이를 위한 장치
US20170185282A1 (en) Gesture recognition method for a touchpad
KR102090443B1 (ko) 터치 제어 방법, 장치, 프로그램 및 컴퓨터 판독가능 기록매체
KR101436586B1 (ko) 원 포인트 터치를 이용한 사용자 인터페이스 제공 방법 및 이를 위한 장치
KR20160059079A (ko) 터치 압력을 이용한 애플리케이션 제어 장치 및 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant