CN103080873A - 用于输入法编辑器的扩展框 - Google Patents

用于输入法编辑器的扩展框 Download PDF

Info

Publication number
CN103080873A
CN103080873A CN201080067382XA CN201080067382A CN103080873A CN 103080873 A CN103080873 A CN 103080873A CN 201080067382X A CN201080067382X A CN 201080067382XA CN 201080067382 A CN201080067382 A CN 201080067382A CN 103080873 A CN103080873 A CN 103080873A
Authority
CN
China
Prior art keywords
script
input
user
ime
candidate item
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201080067382XA
Other languages
English (en)
Other versions
CN103080873B (zh
Inventor
王咏刚
区良裔
张荫芾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN103080873A publication Critical patent/CN103080873A/zh
Application granted granted Critical
Publication of CN103080873B publication Critical patent/CN103080873B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/146Coding or compression of tree-structured data
    • 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/018Input/output arrangements for oriental characters
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Document Processing Apparatus (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)

Abstract

本公开的实施方式提供用于扩展(IME)功能的输入法编辑器(IME)扩展框。在一些实施方式中,接收在IME的用户界面中的用户输入,并提供给脚本引擎。从电存储在脚本储存库中的多个脚本中选择脚本。使用脚本引擎通过脚本来处理用户输入,以生成一个或多个候选项,并且所述一个或多个候选项被提供给(IME)引擎。在一些实施方式中,接收脚本文件,该脚本文件可被(IME)系统运行,以基于对(IME)系统的用户输入生成一个或多个候选项。脚本文件被电存储在中央寄存器,中央寄存器包括多个脚本,并且多个脚本被公布用于下载到用户设备并安装在用户设备上,该用户设备包括(IME)系统。

Description

用于输入法编辑器的扩展框
技术领域
本公开涉及输入法。
背景技术
在使用语标字体(logographic script)的语言中,一个或两个字符大约对应于一个词语或含义,这样的语言具有比标准输入设备上的按键更多的字符,标准的输入设备如计算机键盘或移动设备键盘。例如,中文包含由基础拼音(Pinyin)字符和五个音调定义的数以万计的字符。这些多对一关联的映射可以通过帮助输入在输入设备上没有找到的字符和符号的输入法来实现。因此,西式键盘或移动设备可以用来输入中文字符。同样,输入法可以用来使用西式键盘输入许多其他语言,包括表意文字(ideogram),诸如日语、韩语、其他语言。
输入法编辑器(IME)可以用来实现输入法。以中文为例,用户可以输入一个或多个拼音字符或查询,它们由IME处理以提供一个或多个中文字符候选项。一种场景包括查询对候选项映射(query-to-candidates mapping)功能:f(查询)=候选项(f(query)=candidates),其中,查询包括ACSII键的序列,而候选项包括中文或非中文字符串的列表。虽然其他输入对输出映射将ACSII查询映射到中文或非中文候选项,但是这样的映射在功能上也是受限的。
发明内容
本说明描述了涉及输入法的技术,并且具体来讲,涉及用于输入法的扩展框(extension framework)。
一般,在本说明中描述的主题的一个创新的方面可以体现为包括以下动作的方法:接收在输入法编辑器(IME)的用户界面中的用户输入;将用户输入提供给脚本引擎;从电存储在脚本储存库中的多个脚本中选择脚本;使用脚本引擎通过脚本处理用户输入以生成一个或多个候选项;以及将一个或多个候选项提供给IME引擎。
在一些方面中,所述动作还包括例示沙盒进程,脚本引擎在沙盒进程内运行。
在一些方面中,IME引擎使用进程间通信与脚本引擎进行通信。
在一些方面中,所述动作还包括在沙盒进程内运行IPC服务器,IPC服务器启用在IME引擎和脚本引擎之间的通信。
在一些方面中,沙盒进程限制脚本引擎的功能。
在一些方面中,用户输入包括识别脚本的输入序列和要由脚本处理的输入。
在一些方面中,所述动作还包括:将用户输入与一个或多个触发字符串进行比较;确定用户输入与一个或多个触发字符串之一匹配;以及基于所述一个或多个触发字符串之一选择脚本。
在一些方面中,所述动作还包括:接收指示在扩展模式中的IME的操作的输入;响应于接收输入,在扩展模式中操作IME;以及当在扩展模式中操作时,将所有用户输入提供给脚本引擎。
在一些方面中,通过脚本处理用户输入包括以下动作:建立与基于网络的服务的网络连接;将至少一部分用户输入提供给基于网络的服务;以及从基于网络的服务接收响应,该响应已经基于所述至少一部分用户输入而生成,并且一个或多个候选项包括该响应。在一些方面中,基于网络的服务包括地图服务、搜索服务、以及翻译服务中的至少一个。
在一些方面中,所述动作还包括:生成包括第一组候选项的第一候选项列表;生成包括第二组候选项的第二候选项列表,第二组候选项包括使用脚本引擎生成的一个或多个候选项;组合至少一部分第一组候选项和至少一部分第二组候选项,以提供第三候选项列表;以及在用户设备上显示第三候选项列表。
在一些方面中,IME引擎处理一个或多个候选项用于在用户界面上显示。
在一些方面中,所述动作还包括:接收指示选择一个或多个候选项之一的第二用户输入;以及将一个或多个候选项之一输入到在用户设备上运行的应用。在一些方面中,所述应用包括文字处理应用、文本编辑应用、电子表单应用、电子邮件应用、展示应用、以及网络浏览器之一。
在一些方面中,电存储在脚本储存库中的每个脚本包括从多个核准的(approved)例程中选择的一个或多个例程。
在一些方面中,所述动作还包括识别脚本的脚本语言,其中,所述脚本引擎例示与用于通过脚本处理用户输入的脚本语言相对应的运行时间(runtime)。
在一些方面中,用户输入以第一语言提供。在一些方面中,一个或多个候选项以第一语言提供。在其他方面中,一个或多个候选项以第二语言提供。在其它方面中,一个或多个候选项以第一语言和第二语言的组合提供。在一些方面中,一个或多个候选项包括一个或多个符号。
在一些方面中,所述动作还包括:接收输入;响应于输入,生成电存储在中央寄存器(central registry)中的可用脚本的列表,可用脚本的列表包括脚本;接收指示脚本选择的第二输入;响应于第二输入,从中央寄存器中检索脚本;以及将脚本存储在脚本储存库中。
在本说明中描述的主题的另一个创新的方面可以体现为包括以下动作的方法:接收在IME的用户界面中的用户输入;将用户输入提供给脚本引擎;从电存储在脚本储存库的多个脚本中选择脚本;基于脚本中提供的指令,建立与基于网络的服务的网络连接;将至少一部分用户输入提供给基于网络的服务;从基于网络的服务接收响应;以及将响应提供给IME引擎,以便将响应显示给用户。
在一些方面中,基于网络的服务包括地图服务、搜索服务、以及翻译服务中的至少一个。在一些方面中,至少一部分用户输入被提供给地图服务,由地图服务产生响应,并且响应包括用户可选择的超链接。在其他方面中,至少一部分用户输入被提供给搜索服务作为搜索词(search term),由搜索服务生成响应,并且响应包括由搜索服务基于搜索词生成的一个或多个搜索结果。在其他方面中,至少一部分用户输入被提供给翻译服务,并且以第一语言提供,由翻译服务生成响应,并且以第二语言提供该响应。
一般,在本说明中描述的主题的另一个方面可以体现为包括以下动作的方法:接收脚本文件,脚本文件可由IME系统运行,以基于对IME系统的用户输入生成一个或多个候选项;将脚本文件电存储在中央寄存器中,中央寄存器包括多个脚本;以及公布可用于下载到用户设备并安装在用户设备上的多个脚本,用户设备包括IME系统。
在一些方面中,所述多个脚本中的每个脚本包括从多个核准的例程中选择的一个或多个例程。
在一些方面中,所述多个脚本中的脚本以JavaScript、Lua以及VBScript之一编写。
在一些方面中,所述多个脚本中的至少一个脚本包括关联元数据,关联元数据提供用于显示一个或多个候选项的指令。在一些方面中,所述指令包括提供用于显示在候选项列表中的一个或多个候选项的号码序列。在其它方面中,所述指令包括提供用于显示在候选项列表中的一个或多个候选项的字母序列。
在本说明中描述的主题的一个或多个实施方式的细节在以下附图和描述中阐述。从描述、附图、以及权利要求中,本主题的其他特征、方面、以及优点将变得清楚。而且,在本说明中描述的主题的方面,包括上述各方面,可以以一个或多个组合方式进行组合。
附图说明
图1是可以利用来实施这里描述的系统和方法的示例系统的框图。
图2是示例输入法编辑器(IME)的框图。
图3是示例IME扩展框的框图。
图4是示出用于IME的命令扩展模式的示例进程的流程图。
图5是示出用于运行IME的示例进程的流程图。
图6A示出了对应于命令扩展模式的示例扩展。
图6B示出了基于图6A的扩展的示例输出。
各个附图中的类似符号指示类似的元素。
具体实施方式
概览
本说明描述了涉及用于输入法编辑器(IME)的扩展框的技术。虽然将在英语和中文语言的上下文中描述示例的实施方式,但是本公开可以容易地应用到其他非语标(non-logographic)语言(例如,包括德语、法语、意大利语、西班牙语、葡萄牙语、瑞典语)以及语标语言(例如,包括日语、汉语、和/或印度语)。
图1是可以利用来实施这里描述的系统和方法的示例系统100的框图。系统100可以包括,例如,计算机设备,如个人计算机设备,或其他电子设备,如移动电话、移动通信设备、个人数字助理(PDA)、等等。系统100包括处理设备102、第一数据存储器(store)104、第二数据存储器106、输入设备108、输出设备110、以及网络接口112。总线系统114包括,例如,数据总线和主板,总线系统114可以用来建立和控制组件102、104、106、108、110和112之间的通信。其他系统体系结构也可以使用。
处理设备102可以包括,例如,一个或多个微处理器。第一数据存储器104可以包括,例如,随机存取存储器存储设备(random access memory storagedevice),如动态随机存取存储器,或者其他类型的计算机可读介质存储器设备(computer readable medium memory device)。第二数据存储器106可以包括,例如,一个或多个硬盘驱动器、闪存、和/或只读存储器、或者其他类型的计算机可读介质存储设备。
示例输入设备108可以包括键盘、鼠标、手写笔等,而示例输出设备110可以包括显示设备、音频设备等。网络接口112可以包括,例如,可操作地将数据传送到网络116和从网络116接收数据的有线或无线网络设备。网络116可以包括一个或多个局域网(LAN)和/或广域网(WAN),如因特网。
在一些实施方式中,系统100可以包括来自数据存储器的IME代码101,例如来自数据存储106。IME代码101可以包括指令,当运行指令时,使得处理设备102执行IME功能。IME代码101可以包括,例如,解释指令(interpreted instruction),如脚本指令,例如JavaScript或ECMAScritp指令,可以在网络浏览器环境中运行指令。其他实施方式也可以使用,例如,独立应用、小应用(applet)、插件模块、等等。
IME代码101的运行生成或启动IME实例103。IME实例103帮助一个或多个输入法在设备100中的处理,在此期间,系统100可以接收用于输入字符或符号的组合输入(composition input),诸如,例如,汉字(Hanzi)字符。例如,用户可以使用一个或多个输入设备108(例如,键盘,如西式键盘,与手写识别引擎一起使用的手写笔,等等)输入用于识别汉字字符的组合输入。在一些示例中,汉子字符可以由多于一个的组合输入来组成。
第一数据存储器104和/或第二数据存储器106可以存储组合输入与字符的关联。基于用户输入,输入法编辑器实例103可以使用数据存储器104和/或数据存储器106中的信息来识别由输入表现的一个或多个候选项选择。在一些实施方式中,如果识别到多于一个的候选项选择,则候选项选择被显示在输出设备110上。使用输入设备108,用户可以从候选项选择中选择用户希望输入的汉字字符。
在一些实施方式中,系统100上的IME实例103可以接收一个或多个拼音组合输入,并将组合输入转换为汉字字符。IME实例103能够,例如,使用从敲击按键中接收的拼音音节或字符来表现汉字字符。每个拼音音节能够,例如,对应于一个或多个西式键盘中的敲击按键。使用拼音IME,用户通过使用包括表现汉字字符的声音的一个或多个拼音音节的组合输入来输入汉字字符。但是,用于其他语言的输入法也可以是有帮助的。
在一些实施方式中,可以访问系统100的远程计算系统118也可以用来编辑语标脚本。例如,系统100可以是经由网络116提供语标脚本编辑能力的服务器。在一个示例中,用户能够使用远程计算系统,例如,客户端计算机,编辑存储在数据存储器104和/或数据存储器106中的语标脚本。系统100能够,例如,选择字符和经由网络接口112从用户接收组合输入。处理设备102能够,例如,识别邻近所选择的字符的一个或多个字符,并且基于接收的组合输入以及邻近的字符来识别一个或多个候选项选择。系统100能够将包括候选项选择的数据通信传送回远程计算系统。
在一些实施方式中,IME实例103能够基于一个或多个组合输入和语言上下文105来识别候选项选择。语言上下文105能够,例如,定义由输入法编辑器实例103支持的不同语言,例如,英语语言上下文105a、中文语言上下文105b、汉语语言上下文105c、等等。例如,IME实例103能够将英语上下文105a应用到组合输入,以便将组合输入映射到英语字母表。同样,IME实例103能够将中文语言上下文105b应用到组合输入,以便将组合输入映射到拼音输入、等等。
基于组合输入和语言上下文105,IME实例103能够识别用于由用户选择的一个或多个候选项选择。在一些实施方式中,语言上下文105能够被利用来自动地提供由不同语言定义的候选项选择,例如,交织显示模式,其中,来自英语语言的候选项选择(例如,定义词语的字母)可以与中文字符(例如,汉子字符)同时显示。在一些实施方式中,语言上下文105能够被利用来自动地提供由一种语言定义的候选项选择,例如,切换显示模式,其中,只有来自英语语言的候选项选择,例如,定义词语的字母,可以被显示用于第一组字符,而只有来自中文语言的候选项选择,例如,汉子字符,可以被显示用于第二组字符。
图2是示例IME系统120的框图。IME系统120可以使用,例如,输入法编辑器代码101和相关联的数据存储器104和106来实现。IME系统120包括IME引擎122、字符数据存储器124、组合输入数据存储器126、语言模型数据存储器128、以及扩展框200。其他存储体系结构也可以使用。字符数据存储器124包括在一个或多个语言模型中使用的语标脚本的字符,以及在基于罗马或西式字母表中的字符和词语,例如,英文、德文、西班牙文、等等。在一些实施方式中,字符数据存储器124还包括关于字符之间的关系的信息。例如,字符数据存储器124可以包括取决于邻近该字符的字符而分配给该字符的分数或概率值。其他上下文的相关数据也可以使用。如以下所更详细讨论的,扩展框200与IME引擎122交互以支持任意的查询对候选项(query-to-candidate)的映射。
组合输入数据存储器126包括组合输入和存储在字符数据存储器124中的字符的关联。在一些实施方式中,组合输入数据存储器126可以将字符数据存储器124中的每个字符链接到由输入法编辑器引擎122使用的组合输入。例如,IME引擎122能够使用字符数据存储器124和组合输入数据存储器126中的信息,将字符数据存储器124中的一个或多个字符与组合输入数据存储器126中的一个或多个组合输入相关联和/或相识别。
语言模型数据存储器128可以定义一个或多个语言模型,例如,英语语言模型、中文语言模型、等等。每个语言模型能够,例如,定义特定的规则集合,例如,语言特定的语法、短语集合、动词、等等,可以用来确定用户录入一组组合输入时可能的意图。每个语言模型还可以包括特定用户的用户历史,例如,由该特定用户经常使用的词语或短语的字典。
在一些实施方式中,IME引擎122可以根据语言上下文105来解释组合输入,例如,英语上下文105a、中文上下文105b、韩语上下文105c、等等。当根据语言上下文105解释组合输入时,可以确定语言上下文值107。基于语言上下文值107和组合输入,可以识别候选项选择并展示给用户用于选择。
例如,可以通过输入法编辑器引擎122接收若干组合输入,例如,敲击按键。敲击按键可以定义一系列中文上下文105b中的拼音输入,并且可以定义英语上下文105a中的一系列字母。因此,一个或多个英语候选项选择,例如,词语,以及一个或多个中文候选项选择,例如,汉子字符,可以展示给用户用于选择。
在一些实施方式中,英语上下文值107a可以通过将组合输入与英语词语的前缀进行比较并基于该比较设定英语上下文值来确定。例如,组合输入o-p-p-o匹配词语“opportunity”中的字符串。例如,英语上下文值107a能够与通过比较识别的前缀匹配成比例地设定,例如,对于组合输入o-p的上下文值可以很低,而对于组合输入o-p-p-o-r-t-u的上下文值可以高很多。
语言上下文值107也可以通过其他进程来确定。例如,中文上下文值107b可以通过评估中文字符对中文语言模型并基于评估设定中文上下文值107b来确定。例如,中文语言模型可以包括中文语法模型。示例中文语法模型可以包括连动结构模型、完成式和未完成式模型、以及其他语法模型。
基于组合输入,例如,敲击按键,能够识别一系列拼音输入。拼音组合输入,反过来可以用来识别汉字字符。中文语法模型可以被应用到汉子字符,以确定用户在中文上下文中意图输入的似然性。例如,以汉字字符全部是动词为结果的组合输入字符串将会得分很低,而以动词和宾语为结果的组合输入字符串将得分更高、等等。作为另一个示例,结果为读作“我爱花(I loveflowers)”的中文字符串的组合输入将收到较高的中文上下文值107b,而结果为读作“床牛电视(bed cow tv)”的中文字符串的组合输入字符串将收到很低的中文上下文值107b。
其他进程可以用来确定语言上下文值107。例如,特定语言的不经常使用的词语的上下文值可以得分(scaled)较低,而如由用户简档(profile)定义的常用词语或短语的上下文值可以得分较高、等等。
扩展框
IME提供查询对候选项映射功能,一般提供为:
f(查询)=候选项
其中,查询是ASCII按键的序列。使用中文语言作为示例,作为结果的候选项可以包括中文或非中文字符串的列表。例如:
f(“pinyin”)=[“拼音”、“品”、“频”、……]
示出了作为拼音IME的基础输入模式的拼音对中文映射。
存在能够将ASCII查询映射到一个或多个候选项(例如,中文或非中文候选项)的其他映射。作为一个示例,IME可以用于英语的自动完成模式,以便基于部分词语输入来提供词语候选项的列表。例如:
f(“eng”)=[“eng”、“English”、“engineering”、……]
作为另一个示例,IME可以用于中文数字输入模式。例如:
f(“i123”)=[“一百二十三”、“壹佰貳拾叁”、“一二三”]
本公开的IME扩展框通过提供命令扩展模式(称为“扩展模式”)扩展了IME的能力,该命令扩展模式使得IME能够支持任意的查询对候选项映射,以便满足不同用户的需求和/或喜好。IME扩展框实现了这一点而无需底层映射功能的硬编码。一般,IME扩展框包括脚本引擎、沙盒进程、脚本储存库、进程间通信(IPC)机制、公共应用程序接口(API)和控制台工具。脚本引擎托管(host)脚本语言解释器的运行时间以运行存储在脚本储存库中的一个或多个脚本,并返回结果。沙盒进程在安全环境中运行脚本引擎。IPC机制启用了在IME引擎和沙盒进程之间的通信。公共API使得第三方开发者能够以统一的方式编写IME扩展,而控制台工具使得开发者能够测试和验证所创建的扩展脚本。
图3是示例IME扩展框200的框图。当IME在命令扩展模式中操作并且包括沙盒进程202和脚本储存库204时,实施IME扩展框200。沙盒进程202运行IPC服务器206和脚本引擎208。IME扩展框200与IME引擎122通信,以便基于用户输入提供基于脚本的查询对候选项的映射。具体来讲,用户能够与一个或多个应用220交互。每个应用220包括用户界面222,用于接收用户输入以及显示基于用户输入生成的一个或多个候选项。作为非限定性的示例,每个应用220可以包括文字处理应用、文本编辑应用、电子表单应用、电子邮件应用、展示应用、和/或网络浏览器。
由IME扩展框200提供的查询对候选项的映射可以包括一对一的映射,这可以通过简单的表格查找来实现。由IME扩展框200提供的映射还可以包括基于实施的脚本语言的更多的复杂的查询对候选项的映射。例如,基于脚本的扩展可以提供来将用户文本输入从水平布局转换为垂直布局,如下所示:
||到|把||
||下|您||
||面|要||
||的|转||
||输|换||
||入|的||
||框|文||
||中|字||
||  |输||
||  |入||
而且,IME扩展框200通过经过网络(例如,图1的网络116)连接到远程资源来启用对这样的资源的访问。例如,通过运行扩展脚本,能够连接到由在线服务提供商(例如,Google)提供的服务。以这种方式,扩展脚本功能可以访问服务提供商的服务,以实施更有用的输入特征。示例的输入特征可以包括查询Google地图有关详细的地址字符串(例如,提供为用户可选择的超链接)、指导IME用户到Google搜索、检索Google建议的结果、和/或使用Google翻译将用户输入转换到另一种语言和/或符号。如以下更详细讨论的,IME扩展框200还使得第三方开发者能够使用脚本编程来编写定制的查询对候选项的映射逻辑,与C++先编码然后编译相反。
扩展脚本可以由第三方生成和测试。运行的扩展脚本可以被注册和公布,以便使IME用户可用。例如,通过IME,用户可以请求可用的列表(即,公布的扩展脚本)。IME可以通过网络连接到中央寄存器(例如,通过图1的网络116连接到中央寄存器230),例如,该中央寄存器存储所公布的扩展脚本。用户能够选择一个或多个扩展脚本,并且所选择的扩展脚本被下载到当在扩展模式中操作IME时要被调用的用户的本地设备,并且安装在用户的本地设备上。扩展脚本可以存储在脚本储存库204上,该脚本储存库204可以提供在系统100的数字存储器中。脚本储存库使得脚本引擎208能够本地装载和运行相应的脚本。由用户安装的所有脚本被存储在脚本储存库204中。在一些实施方式中,一个或多个脚本托管(script host)网站(例如,由第三方开发者维持),每个网站用作远离用户设备的远程脚本储存库。用户设备可以访问一个或多个脚本托管网站,并且可以被提供可从特定网站得到的列表可获得脚本,并将所选择的脚本下载到脚本储存库204。
当在扩展模式中操作时,IME扩展框200检索并运行所安装的命令扩展,并且将一个或多个结果提供给IME引擎,用于显示给用户。结果可以由语标字符、非语标字符、数字、数学表达式、超文本链接、图标、表情图标和/或符号组成。作为非限定性的示例,符号可以包括数学符号(例如,∑、√、∞、∩、≈、≠、≡、≤、≥、等等)、黄道十二宫符号(例如,
Figure BDA00002570698600111
等等)、或者任何其它类型的符号(例如,
Figure BDA00002570698600112
↓、↑、
Figure BDA00002570698600113
&、$、
Figure BDA00002570698600114
等等)。扩展模式包括命令扩展模式(称为“i-ext模式”)、触发扩展模式、以及处理器(handler)扩展模式。在命令扩展模式中,当用户输入特定字符序列时,调用扩展功能。示例字符序列可以包括:i+命令+自变量,以下更详细地讨论。在触发扩展模式中,当输入序列时,或者由IME生成的候选项之一匹配预注册的触发字符串或模式(pattern)时,调用扩展功能。也就是,IME基于输入序列生成一个或多个候选项,并且回顾全部输入序列和一个或多个候选项两者,以确定与预注册的触发模式的匹配。在处理器扩展模式中,所有用户输入指向扩展功能,并且要由IME显示的所有候选项通过扩展功能来生成。以这种模式,IME的行为通过调用的扩展脚本来控制。因此,用户明确地指令IME(例如,点击扩展注册的热键)以进入处理器扩展模式,并且将所有的用户输入路由到扩展脚本。
第三方开发者可以通过提供多字符命令名称、输入功能名称、以及简短描述来注册用于在命令扩展模式中使用的扩展脚本。用于在触发扩展模式中使用,第三方开发者可以通过提供入口函数名称、简短描述、用于匹配用户输入的0~N触发字符串/模式、用于匹配一个或多个IME生成的候选项的0~M触发字符串/模式来注册扩展脚本。用于在处理器扩展模式中使用,第三方开发者可以通过提供由扩展处理的输入模式的名称、入口函数名称、简短描述、以及使用户能够激活处理器扩展模式的定制热键或菜单项。这个信息被存储在中央储存库,用于由IME用户下载和安装。
以下更详细地讨论在扩展模式(即,命令、触发、以及处理器扩展模式之一)中IME的操作。
脚本引擎
脚本引擎初始化脚本运行时间环境,将内置例程注册到运行时间中,从脚本储存库中装载脚本,并且在每次请求IME核心引擎时评估映射功能。多个脚本语言(例如,JavaScript、Lua或VBScript)可以被并行支持。例如,脚本引擎可以基于所装载的脚本的文件扩展(例如,.js、.lua或.vb)来选择相应的脚本语言运行时间,并在运行时评估功能。
在一些实施方式中,脚本语言可以被直接嵌入,而MS Windows ScriptEngine可以经由IActiveScript接口使用。在这样的实施方式中,不需要另外的安装程序大小(installer size),无需另外费劲就可以支持两种脚本语言(例如,JavaScript和VBScript),并且可以利用(leverage)预安装的ActiveX控制。在一些实施方式中,可以提供嵌入的Lua运行时间引擎。Lua运行时间存储器要求很小(例如,仅需要大约50KB额外安装程序存储器)。而且,Lua运行时间容易调整(trim)和/或定制,并且白列表(white-list)Lua特征和内建例程以避免安全性威胁很容易。在一些实施方式中,例如,可以实施嵌入的JavaScript引擎。JavaScript是网络开发者中流行的脚本语言,当运行JavaScript代码时比Windows Script Engine更快,并且能够被调整或定制。
在包括嵌入的Lua运行时间引擎的实施方式中,Lua运行时间引擎可以包括一个或多个以下模块:语法分析器(lexer)和解析器、虚拟机、存储器管理和垃圾收集、预编译的内存块(chunk)转储/解除转存(dump/undump)、Lua API、调试支持、以及构建例程(built-routine)。构建历程模块可以包括基础库、协同例程例程(co-routine routines)、模块/数据包例程、字符串库、数学库、操作系统库、表格库、输入/输出库、和/或调试库。这些模块可以被定制和整理,以最小化二进制大小,或者为了安全性考虑而白列表特征和内置例程。定制Lua运行时间的一个目的在于限制可以由第三方开发者使用的语言特征和内建例程。只利用IME相关的例程,像字符串例程、数学例程、表格例程、以及特定IME例程,第三方开发者不能直接影响用户的本地系统,即使在没有沙盒保护的情况下,这将在以下详细讨论。
一般,IME扩展框是独立于语言的。从而,IME扩展框可以支持任何脚本语言,并且不限于这里所讨论的脚本语言。
沙盒进程
沙盒是程序在其中运行的限制性的环境,并且典型地得到库的帮助,使得如脚本引擎的进程在限制性的环境内运行。当运行沙盒时,脚本引擎具有受限的功能。在一些实施方式中,脚本引擎只能访问CPU周期和存储器。在这样的实施方式中,例如,沙盒的脚本引擎不能写入磁盘或显示其自己的窗口。通过限制脚本对沙盒进程的运行,第三方脚本可以逻辑上与应用分离。
所允许的脚本引擎的功能通过明确的策略来管控。沙盒利用(leverage)由特定操作系统提供的安全性,以允许代码运行,该代码运行不能对计算机做出永久的改变或者存取秘密的信息。沙盒提供的体系结构和准确保证(exactassurance)取决于操作系统。在Windows中,例如,代码不能执行任何形式的I/O而无需进行系统调用。在大多数系统调用中,Windows执行安全性检查。沙盒保证安全性检查对于特定动作失败,如相应策略中定义的那样禁止服务器进程执行所述特定动作。
在一些实施方式中,沙盒依赖于通过操作系统机制而提供的保护,可以包括但不限于,令牌(token)、对象和/或完整性级别。这些示例的机制在保护操作系统、其配置、以及用户数据方面非常有效。实际的限制由所述策略来配置,其是能够被调用以定义脚本引擎的限制和允许的编程接口。在一些实施方式中,控制所述限制的示例的机制包括主令牌、模仿(impersonate)令牌和任务令牌。一些实施方式还包括完整性级别(例如,包括Windows Vista操作系统的实施方式)。
作为另一个示例,提供由Google提供的Chrome操作系统用于创建沙盒进程(例如,脚本引擎)。Chrome操作系统使用令牌限制、任务对象、以及API拦截来限制沙盒进程的特权,并且使用简单的共享存储器作为IPC,以便提供在沙盒进程和代理(broker)进程(例如,IME引擎)之间的通信。例如,IME引擎提供能够用来开始和初始化沙盒进程的自动开始的IME守护(daemon)进程。对于本公开的IME扩展框,可以实施更简单的沙盒(例如,使用令牌限制和任务对象而不需使用API拦截来限制脚本引擎的特权的沙盒)。而且,沙盒进程本身可以用作IPC中的服务器角色。
如上所述,令牌限制、任务对象和API拦截可以被实施以限制沙盒进程的特权。关于令牌限制,进程(例如,脚本引擎)利用剥离掉(stripped)一些或全部其安全性标识符(SID)的令牌在沙盒中开始。无需任何SID,对安全对象的访问将被操作系统的安全管理器否定。关于任务对象,进程(例如,脚本引擎)可以在用来限制进程的能力的任务对象中运行。具体来讲,限制被置于任务对象上,以避免进程改变令牌、发送消息到任务范围之外、和/或创建新的桌面。API拦截可以用来控制沙盒进程对非安全资源的访问,并且拦截以及使低级别API调用失败。
IME引擎的自动开始的守护进程可以用来开始和初始化沙盒进程。为了达成这一点,守护进程可以制作受限制的令牌、制作任务对象和限制其能力,利用受限制的令牌来产生(spawn)沙盒进程,将沙盒进程分配给任务对象,和/或将新进程的主线程(thread)的令牌改变为具有更多权限的模仿令牌。IME引擎可以装载扩展脚本,并且可以利用具有更多权限的模仿令牌初始化脚本引擎和IPC服务器。
IME和沙盒进程之间的通信
在一些实施方式中,IME引擎和沙盒进程之间的通信可以如上面所讨论的使用IPC来建立。IPC提供了一组技术,用于在一个或多个进程中的多个线程之中交换数据。IPC方法技术可以包括远程程序调用(RPC)。RPC启用子例程或程序,以便在与调用程序应用的地址空间不同的另一个地址空间中运行。
在一些实施方式中,IME引擎使用简单的共享存储器IPC与在沙盒中包装的(wrapped)脚本引擎进行通信。可以基于例如,处理消息发送和接收的操作系统事件来实施通知机制。为了达成这一点,IPC可以提供为更简单的IPC(例如,比以Chrome沙盒代理为目标的IPC更简单)。例如,也在沙盒中包装的IPC服务器不需要支持多个任务。当在IME引擎和沙盒进程之间传送信息时,IPC接口可以使用协议缓冲器作为数据格式。
在一些实施方式中,IPC支持使用C++模板和协议缓冲器的任意的请求和响应类型。示例的IPC请求和响应可以包括,例如:
Figure BDA00002570698600151
公共API
如上所讨论的,公共API使得第三方开发者能够以统一的方式编写IME扩展。在Lua脚本语言中编写的扩展脚本,例如,包含一个或多个查询对候选项映射功能。示例的映射功能包括:
function calc(input)
expr="return"..input
return(loadstring(expr)())
end
映射功能可以注册为扩展命令。具体来讲,注册功能使得开发者能够注册扩展,所述扩展可以提供为命令扩展、触发扩展或处理器扩展,它们每一个都在以下被更详细的讨论。
命令扩展的名称可以提供为多字符的字符串(例如,2字符的字符串),用来匹配当在扩展模式时输入的命令字符串。使用扩展模式输入的自变量被传入(pass in)作为功能调用(例如,Lua功能调用)的自变量字符串。如果功能不要求任何自变量,则自变量被IME引擎忽略。也就是说,即使用户在命令之后明确地输入了自变量,如果功能不要求自变量,则功能也将忽略自变量。在一些脚本语言(例如,Lua或JavaScript)中,功能可以被定义为没有自变量(has-no-argument),但是调用者仍然可以传入一些将被忽略的自变量。如果用户输入没有在扩展模式中提供,则空字符串将被传到功能中。重复的扩展命令名称不被脚本引擎允许。例如,如果第一脚本具有相应的注册的扩展命令名称,并且开发者尝试使用相同的命令名称注册第二脚本,则功能将返回错误(false)。扩展功能的返回值可以是一个对象(例如,字符串或数字),或者包含两个或更多个对象(例如,字符串或数字)的表格。IME引擎使用每个对象的字符串表现,作为IME前端显示的候选项。
开发者工具
如以上讨论的,本公开的IME扩展框提供了开发者工具,使得第三方开发者能够创建和注册与IME一起使用的扩展脚本。开发者工具包括白列表的(即,核准的)例程。如果限制可用的例程,则第三方开发者被禁止直接影响用户的本地系统,即使没有沙盒的保护。在基于Lua的扩展脚本的示例情况下,白列表的例程可以包括:基础例程(例如,assert、error、ipairs、loadstring、next、pairs、select、tonumber、tostring、type、unpack)、字符串例程(例如,string.byte、string.char、string.find、string.format、string.gmatch、string.gsub、string.len、string.lower、string.match、string.rep、string.reverse、string.sub、string.upper)、日期时间例程(例如,os.date、os.time、os.difftime)、数学例程(例如,math.abs、math.acos、math.asin、math.atan、math.ceil、math.cosh、math.cosh、math.cos、math.deg、math.exp、math.floor、math.fmod、math.frexp、math.log、math.ldexp、math.logl0、math.max、math.min、math.modf、math.pi、math.pow、math.rad、math.random、math.randomseed、math.sinh、math.sin、math.sqrt、math.tanh)、以及表格/列表操作例程(例如,table.concat、table.insert、table.maxn、table.remove、table.sort)。
除了白列表的例程,语言IME模块可以被提供来启用另外的功能。在Lua脚本语言的示例情况下,Lua IME模块在脚本引擎中运行,以提供IME相关的功能或其他帮助(helper)功能。如以上讨论的,多个注册器功能被Lua IME模块提供,用于开发者利用IME扩展框注册扩展。Lua IME模块还提供帮助例程(例如,ime.parse_mapping、ime.join_string)。帮助例程帮助开发者容易地实施IME扩展。例如,许多扩展脚本的代码共享一些公用的逻辑(例如,以便将字符串文字(literal)分割到映射中)。帮助例程可以节省从头编写扩展的劳动。
通过用C/C++实施例程并将这样的例程注册到Lua运行时间中,和/或在Lua本身中实施例程并装载脚本作为初始脚本,可以在Lua运行时间中提供另外的例程。用于将C/C++功能注册到Lua运行时间的示例代码包括:
Figure BDA00002570698600171
用于在Lua本身中实施Lua IME模块例程的示例代码包括:
Figure BDA00002570698600172
Figure BDA00002570698600181
在C++中,以下示例的代码可以用来装载在Lua本身中实施的例程:
Figure BDA00002570698600182
一般,并且对于一些脚本语言(例如,Lua),预定义的内建例程可以以其中语言的解释器被实施的语言实施,或者以脚本语言本身实施。为了简化这一点,假设Lua语言的解释器以C++实施,第一例程以C++实施,而第二例程以Lua实施:当Lua解释器被装载时,第一例程是原生机器码(nativemachine code),并与Lua解释器一起装载。第二例程以Lua实施,所以其在公用Lua脚本装载时被装载,但是被Lua标记为*内建例程*。当脚本调用第一例程然后调用第二例程时,Lua解释器运行第一例程而无需进一步的操作,因为第一例程已经编译到原生机器码中。然而,对于第二例程,Lua解释器必须首先解释第二例程,然后就像其运行正常的脚本那样运行它。
连接例程
如以上所讨论的,本公开的IME扩展框启用对由一个或多个在线服务提供商提供的服务的访问,以实现更有用的输入特征。具体来讲,包括超文本传输协议(HTTP)连接例程的连接例程可以由脚本引擎中运行的IME模块提供,以便启用扩展脚本以从在线服务提供商取得在线数据。一些示例的API可以包括:ime.google_translate(text,from language,to language,callback),其提供了翻译服务;以及ime.google_search(query,parameters,callback),其提供了搜索服务。
连接例程是异步的,因为可能需要时间返回结果。扩展脚本定义了其本身的回叫功能,用于在数据传送完成时接收结果。回叫功能指令IME引擎使用API显示候选项。示例的API可以包括:ime.show_result(query_id,candidates),其显示搜索服务的结果。IME引擎和IME前端意识到异步行为,并且可以在处理期间显示等待图标(例如,沙漏)。
一般操作
IME可以在基础IME模式中起作用以使用传统的查询对候选项映射来处理用户输入。IME还可以在扩展模式中起作用以使用IME扩展框处理用户输入。也就是说,IME可以在命令、触发、以及处理器扩展模式之一中起作用,以使用所识别的扩展脚本处理用户输入。
图4是示出用于IME的命令扩展模式的示例进程(400)的流程图。在图4中,参考了中文作为非限定性的示例。示例进程(400)可以,例如,使用IME引擎122和扩展框200由系统100运行。用户输入在IME引擎122接收,并且能够以多个输入模式之一来提供。一个输入模式可以提供为输入字符(例如,“i”)接着是自变量(例如,[0-9]+)。因此,组合的输入模式可以提供为i[0-9]+,其启动(402)IME的基础输入模式(402)以提供查询对候选项映射。具体来讲,已有的i模式(i-mode)逻辑被应用(404)到自变量,以提供用于显示给用户的一个或多个候选项。在一些实施方式中,已有的i模式逻辑可以使用简单的表格查找、使用自变量作为对表格的输入来确定相关的候选项。一个或多个候选项被经由一个或多个前端组件(例如,输出设备110)显示(406)给用户。
另一种输入模式可以提供为输入字符串(例如,“i”)接着是多字符脚本名称(例如,[a-z][a-z])和要由脚本处理的自变量(例如,.+)。因此,组合的输入模式可以被提供为i[a-z][a-z].+,其启动(408)IME的命令扩展模式(“i-ext模式”)以基于由IME扩展框200处理的脚本提供查询对候选项映射。具体来讲,由用户输入指定的脚本被运行(410)以评估自变量(“arg”)和确定或生成一个或多个候选项。在一些实施方式中,脚本可以使用脚本中定义的简单的表格查找,使用自变量作为对表格的输入,确定相关候选项。在其他的实施方式中,脚本可以数学地处理自变量以生成相关的候选项。在一些实施方式中,如以上所讨论的,脚本可以访问网络资源(例如,由服务提供商提供的资源),生成相关的候选项。在一些实施方式中,可以提供其它功能和/或功能组合以生成候选项。一个或多个候选项被提供给IME引擎122用于经由一个或多个前端组件(例如,输出设备110)显示(406)给用户。
一个或多个触发扩展可以以IME注册。每个触发扩展包括触发字符串或模式,当他们被IME引擎122识别时,启动触发扩展模式。具体来讲,对IME的用户输入可以与注册的触发字符串进行比较。如果用户输入匹配触发字符串,则用户输入被提供给IME扩展框200,以便使用识别的脚本来处理输入。在一些实施方式中,用户输入可以使用IME引擎122处理(即,在基础输入模式中),以生成第一组候选项,并且如果用户输入还匹配触发字符串,则可以使用IME扩展框200处理(即,在触发扩展模式中)用户输入,以生成第二组候选项。第二组候选项可以由IME扩展框200提供给IME引擎122,并且第一和第二组候选项可以由IME引擎122组合用于显示给用户。
在一些实施方式中,触发扩展模式可以基于一个或多个候选项启动。具体来讲,对IME的用户输入可以与注册的触发字符串进行比较。如果用户输入与触发字符串不匹配,则用户输入由IME引擎122处理,以生成第一组候选项。所生成的候选项中的每一个可以与注册的触发字符串进行比较。如果候选项与触发字符串相匹配,候选项使用IME扩展框200处理(即,在触发扩展模式中),以生成第二组候选项。第二组候选项可以由IME扩展框200提供给IME引擎122,并且第一和第二组候选项可以由IME引擎122组合用于显示给用户。
IME可以被设置到处理器扩展模式,其中所有的用户输入被提供给IME扩展框200用于处理。具体来讲,处理器可以用IME引擎122注册,该处理器使得用户能够在基础输入模式和处理器扩展模式之间切换。作为示例,这样的处理器可以包括显示给用户的可选择的菜单项和/或热键。如果用户选择菜单项和/或热键,处理器扩展模式被启动,并且所有用户输入被指向IME扩展框。如果用户取消选择(deselect)菜单项和/或热键,处理器扩展模式被停止,并且用户输入可以如这里所讨论的那样被处理。
示例进程
图5是示出用于运行IME的示例进程500的流程图。例如,进程500可以在图1的系统100中和/或在图2的IME系统120中实施。进程500确定是否已经规定了特定的扩展模式(502)。例如,用户可以提供输入给系统100(例如,通过选择菜单项和/或热键),指示IME在处理器扩展模式中操作,以便将所有的用户输入提供给IME扩展框用于处理。如果规定了扩展模式,则IME系统120在处理器扩展模式中操作,并且用户输入被接收(504)。
用户输入被提供作为对IME扩展框的输入(508)。IME扩展框通过运行脚本处理用户输入以处理用户输入,并返回一个或多个候选项给IME引擎(510)。在这样的情况下,IME扩展框运行由处理器扩展模式指定的脚本。进程500基于一个或多个候选项生成候选项列表(512)。进程确定是否有任何候选项与触发字符串匹配(514)。例如,IME引擎可以将每个候选项与一个或多个注册的触发字符串进行比较。
如果没有规定扩展模式(502),用户输入被接收(506),则进程500确定是否命令扩展模式将被启动(516)。例如,IME引擎可以评估用户输入以确定是否命令扩展模式将被启动。如果命令扩展模式将被启动,用户输入被提供作为对IME扩展框的输入(508),则进程如上所述继续。在这样的情况下,IME扩展框运行由用户输入指定的脚本。
如果用户输入没有指示命令扩展模式将被启动,则进程500确定是否用户输入与触发字符串相匹配(518)。例如,IME引擎可以将用户输入与一个或多个注册的字符串进行比较。如果用户输入与触发字符串相匹配,用户输入被提供作为对IME扩展框的输入(508),则进程如上所述继续。在这样的情况下,IME扩展框运行由触发字符串指定的脚本。如果用户输入与触发字符串不匹配,则进程500基于用户输入生成候选项列表(520)。具体来讲,IME系统以基础输入模式操作,以便使用IME引擎提供查询对候选项映射。
进程500确定是否候选项列表中的任何候选项与触发字符串相匹配(514)。例如,IME引擎将候选项列表中的每个候选项与一个或多个注册的触发字符串比较。如果候选项列表中的候选项与触发字符串不匹配,则进程500显示候选项列表(500),并且进程结束。例如,IME引擎可以指令输出设备显示候选项列表。
如果候选项列表的候选项与触发字符串相匹配,则候选项被提供作为对IME扩展框的输入,并且IME扩展框通过运行脚本处理候选项以处理候选项,并且返回一个或多个扩展候选项给IME引擎(524)。进程500基于候选项列表和一个或多个扩展候选项生成修改的候选项列表(526)。例如,IME引擎可以接收一个或多个扩展候选项,并且可以修改原始候选项列表(例如,在(512)或(520)提供的),以包括一个或多个扩展候选项。进程500显示修改的候选项列表(528),并且进程结束。例如,IME引擎可以指令输出设备显示修改的候选项列表。
示例扩展
示例的扩展和作为结果的候选项在以下提供。扩展和作为结果的候选项可以使用功能键(例如,在键盘上)或者等效的输入(例如,触摸屏或手写笔输入)来导航。功能键使用方括号([...])来指示,并且示例的功能键包括:
[ENTER]提交用户输入
[SPACE]提交当前的候选项
[BACKSPACE]删除用户输入的最后一个字符
[DEL]删除用户输入的当前字符
[PGDN]/[PGUP]分别移动到前一候选项页/后一候选项页
[↑](上键)/[↓](下键)在候选项列表内移动
[←](左键)/[→](右键)移动插入符以编辑查询
[ESC]取消当前输入
一般,用户提供用户输入或等效输入,用户输入可以通过按下[ENTER]来提交(commit)给IME。用户输入然后由IME引擎122处理(例如,在基础输入模式中),由IME引擎122和IME框200处理(例如,在命令扩展模式或触发扩展模式中),或者由IME扩展框200处理(例如,在处理法扩展模式中)。使用IME引擎122确定一个或多个候选项并将候选项列表显示给用户。取决于候选项的数量,候选项列表可以包括多于一页,在给定时间向用户显示单一候选项列表页。候选项可以以字母或数字次序来提供,每个候选项具有与此相关联的顺序的字母或数字,如以下所示。用户可以使用[PGDN]/[PGUP]和/或[↑]/[↓]或等效输入来导航候选项列表和/或页,以便选择期望的候选项。用户可以使用[SPACE]或等效输入来提交所选择的候选项。一旦提交,候选项由IME输入给托管应用(例如,图2的应用(Application)220)。例如,如果托管应用是文字处理应用,则所提交的候选项可以提供给文件。作为另一个示例,如果托管应用是因特网浏览器,所提交的候选项可以输入到浏览器的任何输入区域(例如,显示的对话框、地址栏)。
命令扩展模式示例
在一些实施方式中,用户可以提供简单的用户输入(例如,单一字符“i”)给IME,该IME生成可以由用户选择的候选项脚本的列表(即,那些已经下载和安装在用户设备上的脚本)。作为示例,并且使用中文作为示例语言,用户输入“i”可以生成可用命令扩展脚本的以下列表:
js计算模式,rq当前日期,hh字符画……<-->
开始的“i”初始化命令扩展模式(即,i-ext模式),并示出可用的i-ext脚本(例如,js、rq、hh,以下更详细地讨论)作为候选项列表。用户可以使用功能键或等效输入来浏览命令,并且可以使用[SPACE]或等效输入选择候选项脚本。例如,用户输入i[PGDN],导致显示i-ext命令候选项列表的下一页(例如,sj当前时间、wb五笔编码……<-->)。作为另一个示例,用户输入i[PGUP],导致显示i-ext命令候选项列表的前一页。
在一些实施方式中,用户可以向IME提供更复杂的用户输入(例如,单一字符“i”接着一个或多个敲击按键或其他等效输入)。例如,用户输入“i[SPACE]”导致运行“js”命令扩展,以提供以下的示例输入候选项:
[计算模式:请输入四则运算式,如3*(2.5-1.7)+sin(4)]
具体来讲,[SPACE]接着i,指示i-ext模式“js”,其是在可用脚本的列表中列出的第一脚本。这也可以通过用户提供“ijs”作为用户输入来实现。
另一个示例输入可以包括i[↓][SPACE]。这个输入导致运行“rq”命令扩展,以提供以下的示例输入候选项:
1.2010-10-10  2.2010年10月10日  3.2010/10/10
具体来讲,[↓]移动光标到第二脚本候选项(例如,rq),并且[SPACE]选择那个脚本候选项用于运行。这也可以通过用户提供“irq”作为用户输入来达成。编号1.、2.和3.是与候选项相关联的序号。在输入的候选项列表中,按键[1]、[2]或[3]可以用来提交期望的输入候选项。或者,[SPACE]可以用来提交当前高亮显示的候选项。在其他的实施方式中,用户输入可以提供为“irq2”,直接导致提交2009年10月10日。
在这种情况下,原始用户输入直接指示应当提交从脚本rq产生的候选项列表的候选项编号2。这提供了更快速的和有效的提交输入候选项的方式,特别是在用户已经知道可能已经显示的候选项时。
用户可以提供包括识别了期望的脚本和要由脚本处理的期望的候选项的输入的更复杂的输入。例如,用户输入“kjs3+2*sin(10)”启动i-ext模式,识别js作为期望的脚本,以及3+2*sin(10)作为要由脚本处理的自变量。从而,自变量由脚本处理,以生成和显示以下示例的输出:
1.9119577782213
在这种情况下,只有一个结果被返回,并且不提供候选项序号。当预先规定的、随后的敲击按键(例如,[SPACE])时,提交所显示的结果,并提供该结果作为对应用的输入。
另一个示例的输入包括“inh1587”,导致以下示例的输入候选项列表:
a.公元1587年  b.万历15年  c.万历十五年
因此,为了映射要求数字自变量(例如,[0-9]+)的功能,所选择的脚本指令脚本引擎使用顺序的字母(例如,a、b、c)来显示输入的候选项列表,并且作为候选项选择或提交键。这个信息可以由脚本功能的元数据来提供。
图6A示出了对应于命令扩展模式的示例扩展,而图6B示出了基于图6A的扩展的示例输出。在图6A的代码600中,功能计算(Compute)是由开发者实施的脚本功能。开发者调用ime.register_command来注册该命令扩展。在命令扩展由用户安装之后,用户可以输入“ijs[xxxx]”,其可以被键入(typed)以评估算术表达式[xxxx]、以及显示的结果。在图6B的示例,用户输入包括:
ijs 380.22*(sin(7.2)+cos(8))
算术表达式包括380.22*(sin(7.2)+cos(8)),而脚本得到示例的候选项列表602:
输入表达式,例如3*log(4+2),246.44637233801
其基于图6A的脚本生成。在一些实施方式中,扩展可以注册为这里更详细讨论的触发扩展,在这种情况下开发者调用ime.register_trigger。
触发扩展模式
如以上所讨论的,当用户输入/和/或候选项与预先注册的触发字符串相匹配时,启动触发扩展模式。使用中文和英语作为示例语言,中文词语“shijian”可以翻译为英语“time”。用户可以输入“shijian”到拼音IME,得到以下由IME引擎生成的示例的候选项列表:
1.时间  2.事件  3.实践  4.世间  5.是件
但是,如果“shijian”是预先注册的触发字符串,IME引擎将用户输入提供给IME扩展框,其处理相应的脚本,以提供一个或多个另外的候选项。例如,相应的脚本可以返回当前时间(例如,12:00)作为候选项。由IME扩展框生成的一个或多个候选项被提供给IME引擎,其组合候选项以提供以下示例的候选项列表:
1.时间  2.事件  3.实践  4.世间  5.12:00
在上述候选项列表中,扩展候选项(即,由IME扩展框提供的候选项)被插入第一候选项列表页的最后位置。
在一些实施方式中,触发扩展模式可以基于由IME引擎生成的候选项来启动。例如,如以上所讨论的,用户输入“shijian”将正常地得到以下由IME引擎生成的示例的候选项列表:
1.时间  2.事件  3.实践  4.世间  5.是件
但是,如果IME引擎认识到候选项与预先注册的触发字符串相匹配,则IME引擎可以将候选项提供给IME扩展框,以生成一个或多个另外的候选项。作为示例,“时间”(即,以上示例的候选项列表的第一个候选项)可以提供作为预先注册的触发字符串。从而,IME引擎提供“时间”给IME扩展框,其基于指定的脚本处理“时间”以生成扩展候选项(例如,12:00)。扩展候选项被提供给IME引擎,其生成最终的或修改的候选项列表,用于显示给用户。示例的修改的候选项列表可以包括:
1.时间  2.12:00  3.事件  4.实践  5.世间
因此,如果基于IME引擎的特定候选项启动触发扩展模式,扩展候选项被插入到触发候选项旁边(next to)。
在一些实施方式中,触发扩展模式可以通过用户输入使用前缀和/或后缀匹配来启动。通配符(wild)(例如,“!”或“*”)可以用来在注册触发扩展时定义前缀/后缀匹配。作为非限定性的示例,触发扩展“bm*”可以注册为用户输入触发字符串。任何以“bm”开头的用户输入将被IME引擎识别为匹配的触发字符串。示例的用户输入可以包括“bmabcd”。响应于用户输入,IME引擎可以生成包括第一组候选项的候选项列表。由IME引擎生成的示例的候选项列表可以包括:
1.宝马奔驰的  2.编码  3.爸妈  4.宝马  5.白马
但是,因为“bm*”被注册为触发字符串,IME扩展框还处理用户输入,以生成包括第二组候选项的扩展候选项列表。由IME扩展框生成的示例的候选项列表可以包括:
因此,单一的候选项被提供在第二组候选项中。IME扩展框的扩展候选项列表可以被提供给IME引擎,其组合候选项列表以提供修改的候选项列表。示例的修改的候选项列表可以包括:
1.宝马奔驰的  2.编码  3.爸妈  4.宝马  5.囧
公开的实施方式和在本说明中描述的所有功能操作可以以数字电子电路来实施,或者以计算机软件、固件、或硬件来实施,包括在本说明中公开的结构以及它们的结构等效物,或者以它们中的一个或多个的组合来实施。公开的实施方式可以实施为一个或多个计算机程序产品,即,编码在计算机可读介质上、用于由数据处理装置运行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机可读介质可以是机器可读存储设备、机器可读存储衬底(substrate)、存储设备、影响机器可读传播信号的物质的组成、或者它们中的一个或多个的组合。术语“数据处理装置”涵盖所有用于处理数据的装置、设备、以及机器,作为示例,包括可编程处理器、计算机、或多个处理器或计算机。除了硬件以外,所述装置可以包括创建用于所感兴趣的计算机程序的运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或多个的组合的代码。传播的信号是人工生成的信号,例如,机器生成的电、光、或电磁信号,生成所述信号以便对信息进行编码,用于传送到合适的接收方装置。
计算机程序(也称为程序、软件、软件应用、脚本、或代码)可以用任何形式的编码语言来编写,包括编译的或解释的语言,并且其可以用任何形式来部署,包括作为独立程序或作为模块、组件、子例程、或其它适于在计算环境中使用的单元。计算机程序不必对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中(例如,存储在标记语言文件中的一个或多个脚本)、存储在所感兴趣的程序专用的单一文件中、或者存储在多个协调文件中(例如,存储一个或多个模块、子程序、或代码部分的文件)。计算机程序可以被部署为在一台计算机或多台计算机上运行,所述多个计算机位于一个地点或者分布在多个地点并通过通信网络互连。
本说明中描述的进程和逻辑流可以由一个或多个可编程处理器执行,所述处理器运行一个或多个计算机程序,以便通过对输入数据进行操作并生成输出来执行功能。进程和逻辑流也可以由专用逻辑电路执行,并且装置也可以实施为专用逻辑电路,例如,FPGA(场可编程门阵列)或ASIC(专用集成电路)。
适于运行计算机程序的处理器可以,作为示例,全部通用和专用微处理器、以及任何种类的数字计算机中的任何一个或多个处理器。一般,处理器将从只读存储器或随机存取存储器或者从两者接收指令和数据。计算机的主要元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。一般,计算机还将包括一个或多个用于存储数据的大容量存储设备,或者可操作地耦接到大容量存储设备,用于从大容量存储设备接收数据或者向大容量存储设备传送数据,或者两者,所述大容量存储设备例如磁盘、磁光盘、或光盘。但是,计算机不需要具有这样的设备。而且,计算机可以嵌入到另一个设备中,例如,移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器,仅举数例。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质、以及存储设备,作为示例,包括半导体存储设备,例如,EPROM、EEPROM、以及闪存设备;磁盘,例如,内部硬盘或可移动硬盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补偿,或结合到专用逻辑电路中。
为了提供与用户的交互,本公开的实施方式可以实施在具有显示设备的计算机上,例如,CRT(阴极射线管)或LCD(液晶显示器)监视器,用于显示信息给用户,以及键盘和指定设备,例如,鼠标和跟踪球,用户可以以此提供输入给计算机。其它种类的设备也可以用来提供用于与用户交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈、或触觉反馈;并且来自用户的输入可以以任何形式接收,包括听觉、语音、或触觉输入。
本公开的实施方式可以以包括后端组件或包括中间件组件或包括前端组件的计算系统实施,或者以这样的后端、中间件、前端组件中的一个或多个的任何组合实施,后端组件例如数据服务器,中间件组件例如应用服务器,前端组件例如具有图形用户接口或网络浏览器的客户端计算机,用户可以通过图形用户界面或网络浏览器与本公开的实施方式交互。系统的组件可以通过任何形式或介质的数字数据通信互连,例如,通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如,因特网。
计算系统可以包括客户端和服务器。客户端和服务器一般相互远离,并且典型地通过通信网络交互。客户端和服务器的关系凭借在各个计算机上运行的计算机程序来产生,并且彼此具有客户端-服务器关系。
虽然本说明包含许多细节,它们不应当被解释为对本公开的或可能要求保护的范围的限制,而应当被解释为本公开的特定实施方式专用的特征的描述。在分离的实施方式的上下文中,在本说明中描述的一定的特征也可以以单一实施方式的组合来实施。相反地,在单一实施方式的上下文中描述的各种特征也可以在分离的多个实施方式中或在任何合适的子组合来实施。而且,虽然特征可以被如上描述为在特定的组合中动作,即使最初这样要求保护的,在一些情况下,可以从组合中去除所请求保护的组合中的一个或多个特征,并且请求保护的组合可以指向子组合或子组合的变型。
类似地,虽然操作在附图中以特定的次序描绘,这不应当被理解为要求这样的操作以所示出的特定次序或以顺序的次序来执行,或者要求所有示出的操作都被执行,以达成期望的结果。在一定的环境中,多任务处理和并行处理是有优势的。而且,在上述实施方式中各个系统组件的分离不应当被理解为在所有的实施方式中都要求这样的分离,并且应当理解为所描述的程序组件和系统一般可以在单一软件产品中整合在一起,或者封装到多个软件产品中。
已经描述了本公开的多个实施方式。但是,应当理解,可以进行各种修改而不脱离本公开的精神和范围。因此,其它实施方式也在以下权利要求的范围内。

Claims (55)

1.一种计算机实施的方法,包括:
接收在输入法编辑器(IME)的用户界面中的用户输入;
将用户输入提供给脚本引擎;
从电存储在脚本储存库的多个脚本中选择脚本;
使用脚本引擎通过脚本来处理用户输入,以生成一个或多个候选项;并且
将一个或多个候选项提供给IME引擎。
2.如权利要求1所述的计算机实施的方法,还包括
例示沙盒进程,该脚本引擎在沙盒进程内运行。
3.如前述权利要求中的一个或多个所述的计算机实施的方法,其中,所述IME引擎使用进程间通信与脚本引擎进行通信。
4.如权利要求3所述的计算机实施的方法,还包括在沙盒进程内运行IPC服务器,该IPC服务器启用IME引擎和脚本引擎之间的通信。
5.如权利要求2到4中的一个或多个所述的计算机实施的方法,其中,所述沙盒进程限制脚本引擎的功能。
6.如前述权利要求中的一个或多个所述的计算机实施的方法,其中,所述用户输入包括识别脚本的输入序列和要由脚本处理的输入。
7.如前述权利要求中的一个或多个所述的计算机实施的方法,还包括:
将用户输入与一个或多个触发字符串进行比较;
确定用户输入与所述一个或多个触发字符串之一匹配;并且
基于所述一个或多个触发字符串之一选择脚本。
8.如权利要求1到5中的一个或多个所述的计算机实施的方法,还包括:
接收指示在扩展模式中的IME的操作的输入;
响应于接收输入,在扩展模式中操作IME;并且
当在扩展模式中操作时,将所有用户输入提供给脚本引擎。
9.如前述权利要求中的一个或多个所述的计算机实施的方法,其中,通过脚本处理用户输入包括:
建立与基于网络的服务的网络连接;
将至少一部分用户输入提供给基于网络的服务;并且
从基于网络的服务接收响应,该响应已经基于至少一部分用户输入而生成,并且所述一个或多个候选项包括该响应。
10.如权利要求9所述的计算机实施的方法,其中,所述基于网络的服务包括地图服务、搜索服务、以及翻译服务中的至少一个。
11.如前述权利要求中的一个或多个所述的计算机实施的方法,还包括:
生成包括第一组候选项的第一候选项列表;
生成包括第二组候选项的第二候选项列表,第二组候选项包括使用脚本引擎生成的一个或多个候选项;
组合至少一部分第一组候选项和至少一部分第二组候选项,以提供第三候选项列表;并且
在用户设备上显示第三候选项列表。
12.如前述权利要求中的一个或多个所述的计算机实施的方法,其中,所述IME引擎处理一个或多个候选项用于在用户界面上显示。
13.如前述权利要求中的一个或多个所述的计算机实施的方法,还包括:
接收指示选择一个或多个候选项之一的第二用户输入;并且
将所述一个或多个候选项之一输入到在用户设备上运行的应用。
14.如权利要求13所述的计算机实施的方法,其中,所述应用包括文字处理应用、文本编辑应用、电子表单应用、电子邮件应用、展示应用、以及网络浏览器之一。
15.如前述权利要求中的一个或多个所述的计算机实施的方法,其中,电存储在脚本储存库中的每个脚本包括从多个核准的例程中选择的一个或多个例程。
16.如前述权利要求中的一个或多个所述的计算机实施的方法,还包括识别脚本的脚本语言,其中,脚本引擎例示与用于通过脚本处理用户输入的脚本语言相对应的运行时间。
17.如前述权利要求中的一个或多个所述的计算机实施的方法,其中,所述用户输入以第一语言提供。
18.如权利要求17所述的计算机实施的方法,其中,所述一个或多个候选项以第一语言提供。
19.如权利要求17所述的计算机实施的方法,其中,所述一个或多个候选项以第二语言提供。
20.如权利要求17所述的计算机实施的方法,其中,所述一个或多个候选项以第一语言和第二语言的组合提供。
21.如权利要求17到20中的任何一个所述的计算机实施的方法,其中,所述一个或多个候选项包括一个或多个符号。
22.如前述权利要求中的一个或多个所述的计算机实施的方法,还包括:
接收输入;
响应于输入,生成电存储在中央寄存器的可用脚本的列表,可用脚本的列表包括脚本;
接收指示脚本选择的第二输入;
响应于第二输入,从中央寄存器中检索脚本;并且
将脚本存储在脚本储存库中。
23.一种计算机实施的方法,包括:
接收在输入法编辑器(IME)的用户界面中的用户输入;
将用户输入提供给脚本引擎;
从电存储在脚本储存库中的多个脚本中选择脚本;
基于脚本中提供的指令,建立与基于网络的服务的网络连接;
将至少一部分用户输入提供给基于网络的服务;
从基于网络的服务接收响应;并且
将响应提供给IME引擎,以便将该响应显示给用户。
24.如权利要求23所述的计算机实施的方法,其中,所述基于网络的服务包括地图服务、搜索服务、以及翻译服务中的至少一个。
25.如权利要求24所述的计算机实施的方法,其中,所述至少一部分用户输入被提供给地图服务,由地图服务生成响应,并且该响应包括用户可选择的超链接。
26.如权利要求24所述的计算机实施的方法,其中,所述至少一部分用户输入被提供给搜索服务作为搜索词,由搜索服务生成响应,并且该响应包括由搜索服务基于搜索词生成的一个或多个搜索结果。
27.如权利要求24所述的计算机实施的方法,其中,所述至少一部分用户输入被提供给翻译服务,并且以第一语言提供,由翻译服务生成响应,并且以第二语言提供。
28.一种计算机实施的方法,包括:
接收脚本文件,该脚本文件可由输入法编辑器(IME)系统运行,以便基于对IME系统的用户输入生成一个或多个候选项;
将脚本文件电存储在中央寄存器,该中央寄存器包括多个脚本;并且
公布用于下载到用户设备并且安装在用户设备上的多个脚本,用户设备包括IME系统。
29.如权利要求28所述的计算机实施的方法,其中,所述多个脚本中的每个脚本包括从多个核准的例程中选择的一个或多个例程。
30.如权利要求28或29所述的计算机实施的方法,其中,所述多个脚本中的脚本以JavaScript、Lua以及VBScript之一编写。
31.如权利要求28到30中的一个或多个所述的计算机实施的方法,其中,所述多个脚本中的至少一个脚本包括关联元数据,关联元数据提供用于显示一个或多个候选项的指令。
32.如权利要求31所述的计算机实施的方法,其中,所述指令包括提供用于显示在候选项列表中的一个或多个候选项的号码序列。
33.如权利要求31所述的计算机实施的方法,其中,所述指令包括提供用于显示在候选项列表中的一个或多个候选项的字母序列。
34.一种系统,包括:
显示器;
计算机可读的存储介质,包括用于电存储一个或多个脚本的脚本储存库;以及
一个或多个处理器,运行输入法编辑器(IME),接收对IME的用户输入,将用户输入提供给脚本引擎,从脚本储存库中选择脚本,使用脚本引擎通过脚本处理用户输入以生成一个或多个候选项,并且提供一个或多个候选项以显示在显示器上。
35.如权利要求34所述的系统,其中,所述一个或多个处理器例示沙盒进程,脚本引擎在沙盒进程内运行。
36.如权利要求34或35所述的系统,其中,所述IME引擎使用进程间通信与脚本引擎进行通信。
37.如权利要求36所述的系统,其中,所述一个或多个处理器在沙盒进程内运行IPC服务器,IPC服务器启用IME引擎和脚本引擎之间的通信。
38.如权利要求35到37中的一个或多个所述的系统,其中,所述沙盒进程限制脚本引擎的功能。
39.如权利要求34到38中的一个或多个所述的系统,其中,所述用户输入包括识别脚本的输入序列和要由脚本处理的输入。
40.如权利要求34到39中的一个或多个所述的系统,其中,所述一个或多个处理器将用户输入与一个或多个触发字符串进行比较,确定用户输入与所述一个或多个触发字符串之一匹配,并且基于所述一个或多个触发字符串之一选择脚本。
41.如权利要求34到38中的一个或多个所述的系统,其中,所述一个或多个处理器接收指示在扩展模式中的IME的操作的输入,响应于接收输入在扩展模式中操作IME,并且当在扩展模式中操作时将所有用户输入提供给脚本引擎。
42.如权利要求34到41中的任何一个所述的系统,其中,所述一个或多个处理器通过以下步骤通过脚本处理用户输入:
建立与基于网络的服务的网络连接;
将至少一部分用户输入提供给基于网络的服务;并且
从基于网络的服务接收响应,该响应已经基于所述至少一部分用户输入而生成,并且所述一个或多个候选项包括该响应。
43.如权利要求42所述的系统,其中,所述基于网络的服务包括地图服务、搜索服务、以及翻译服务中的至少一个。
44.如权利要求34到43中的一个或多个所述的系统,其中,所述一个或多个处理器生成包括第一组候选项的第一候选项列表,生成包括第二组候选项的第二候选项列表,第二组候选项包括使用脚本引擎生成的一个或多个候选项,组合至少一部分第一组候选项和至少一部分第二组候选项,以提供第三候选项列表,并且在用户设备上显示第三候选项列表。
45.如权利要求34到44中的一个或多个所述的系统,其中,所述IME引擎处理一个或多个候选项用于在用户界面上显示。
46.如权利要求34到45中的一个或多个所述的系统,其中,所述一个或多个处理器接收指示选择一个或多个候选项之一的第二用户输入,并且将所述一个或多个候选项之一输入到在用户设备上运行的应用。
47.如权利要求46所述的系统,其中,所述应用包括文字处理应用、文本编辑应用、电子表单应用、电子邮件应用、展示应用、以及网络浏览器之
48.如权利要求34到47中的一个或多个所述的系统,其中,电存储在脚本储存库中的每个脚本包括从多个核准的例程中选择的一个或多个例程。
49.如权利要求34到48中的一个或多个所述的系统,其中,所述一个或多个处理器识别脚本的脚本语言,其中,所述脚本引擎例示与用于通过脚本处理用户输入的脚本语言相对应的运行时间。
50.如权利要求34到49中的一个或多个所述的系统,其中,所述用户输入以第一语言提供。
51.如权利要求50所述的系统,其中,所述一个或多个候选项以第一语言提供。
52.如权利要求50所述的系统,其中,所述一个或多个候选项以第二语言提供。
53.如权利要求50所述的系统,其中,所述一个或多个候选项以第一语言和第二语言的组合提供。
54.如权利要求50到53中的一个或多个所述的系统,其中,所述一个或多个候选项包括一个或多个符号。
55.如权利要求34到54中的一个或多个所述的系统,其中,所述一个或多个处理器接收输入,响应于输入生成电存储在中央寄存器中的可用脚本的列表,可用脚本的列表包括脚本,接收指示脚本选择的第二输入,响应于第二输入从中央寄存器中检索脚本,并且将脚本存储在脚本储存库中。
CN201080067382.XA 2010-04-12 2010-04-12 用于输入法编辑器的扩展框 Active CN103080873B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2010/071691 WO2011127640A1 (en) 2010-04-12 2010-04-12 Extension framework for input method editor

Publications (2)

Publication Number Publication Date
CN103080873A true CN103080873A (zh) 2013-05-01
CN103080873B CN103080873B (zh) 2016-10-05

Family

ID=44798249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080067382.XA Active CN103080873B (zh) 2010-04-12 2010-04-12 用于输入法编辑器的扩展框

Country Status (7)

Country Link
US (1) US9086735B2 (zh)
EP (1) EP2558923A4 (zh)
JP (1) JP5921527B2 (zh)
KR (1) KR101681281B1 (zh)
CN (1) CN103080873B (zh)
TW (1) TWI526880B (zh)
WO (1) WO2011127640A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109478187A (zh) * 2017-04-25 2019-03-15 微软技术许可有限责任公司 输入法编辑器
CN111858675A (zh) * 2020-07-24 2020-10-30 北京玉符科技服务有限公司 自定义属性编辑器
CN112800473A (zh) * 2021-03-17 2021-05-14 好人生(上海)健康科技有限公司 一种基于大数据安全屋的数据处理方法
EP3207661B1 (en) * 2014-11-18 2021-12-29 Auth0 Inc. Identity infrastructure as a service

Families Citing this family (172)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US20120309363A1 (en) 2011-06-03 2012-12-06 Apple Inc. Triggering notifications associated with tasks items that represent tasks to perform
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US9104306B2 (en) * 2010-10-29 2015-08-11 Avago Technologies General Ip (Singapore) Pte. Ltd. Translation of directional input to gesture
US8689181B2 (en) 2010-11-23 2014-04-01 Axeda Corporation Scripting web services
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US9160785B2 (en) * 2011-05-26 2015-10-13 Candi Controls, Inc. Discovering device drivers within a domain of a premises
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8825748B2 (en) * 2011-07-06 2014-09-02 Sharp Laboratories Of America, Inc. Sandboxed daemon process invocation through HTTP
US9348479B2 (en) 2011-12-08 2016-05-24 Microsoft Technology Licensing, Llc Sentiment aware user interface customization
CN103164122B (zh) 2011-12-08 2015-10-28 中兴通讯股份有限公司 一种调用通讯录内容的方法及装置
US9378290B2 (en) 2011-12-20 2016-06-28 Microsoft Technology Licensing, Llc Scenario-adaptive input method editor
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
WO2014000143A1 (en) 2012-06-25 2014-01-03 Microsoft Corporation Input method editor application platform
US8959109B2 (en) 2012-08-06 2015-02-17 Microsoft Corporation Business intelligent in-document suggestions
US9898445B2 (en) * 2012-08-16 2018-02-20 Qualcomm Incorporated Resource prefetching via sandboxed execution
WO2014032244A1 (en) 2012-08-30 2014-03-06 Microsoft Corporation Feature-based candidate selection
CN104823135B (zh) * 2012-08-31 2018-01-30 微软技术许可有限责任公司 用于输入法编辑器的个人语言模型
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US10199051B2 (en) 2013-02-07 2019-02-05 Apple Inc. Voice trigger for a digital assistant
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
JP6112968B2 (ja) * 2013-05-23 2017-04-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コマンド生成方法、装置及びプログラム
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
KR101922663B1 (ko) 2013-06-09 2018-11-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
JP6398257B2 (ja) * 2013-06-27 2018-10-03 株式会社リコー 通信管理システム、通信端末、通信システム、およびプログラム
CN105580004A (zh) 2013-08-09 2016-05-11 微软技术许可有限责任公司 提供语言帮助的输入方法编辑器
CN104424180B (zh) * 2013-09-09 2017-11-07 佳能株式会社 文本输入方法及设备
US9384191B2 (en) 2013-09-25 2016-07-05 International Business Machines Corporation Written language learning using an enhanced input method editor (IME)
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
CN110797019B (zh) 2014-05-30 2023-08-29 苹果公司 多命令单一话语输入方法
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9710316B1 (en) 2014-12-18 2017-07-18 Amazon Technologies, Inc. Flexible scripting platform for troubleshooting
US9785489B1 (en) * 2014-12-18 2017-10-10 Amazon Technologies, Inc. Secure script execution using sandboxed environments
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
CN104820695A (zh) * 2015-04-29 2015-08-05 百度在线网络技术(北京)有限公司 一种资源获取方法及装置
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
CN106933561A (zh) * 2015-12-31 2017-07-07 北京搜狗科技发展有限公司 语音输入方法和终端设备
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10275595B2 (en) * 2016-09-29 2019-04-30 Trap Data Security Ltd. System and method for characterizing malware
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
CN106445189B (zh) * 2016-12-16 2020-03-17 北京小米移动软件有限公司 候选词显示方法及装置
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10540187B2 (en) * 2017-10-13 2020-01-21 International Business Machines Corporation User-initiated dynamic data application programming interface creation
US10979235B2 (en) 2017-10-20 2021-04-13 Dropbox, Inc. Content management system supporting third-party code
US10878019B2 (en) * 2017-10-20 2020-12-29 Dropbox, Inc. Hosted storage for third-party services
US11113411B2 (en) 2017-10-20 2021-09-07 Dropbox, Inc. Authentication security model for a content management system
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10394584B2 (en) * 2017-12-18 2019-08-27 Atlassian Pty Ltd Native execution bridge for sandboxed scripting languages
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10944859B2 (en) 2018-06-03 2021-03-09 Apple Inc. Accelerated task performance
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
US11681804B2 (en) 2020-03-09 2023-06-20 Commvault Systems, Inc. System and method for automatic generation of malware detection traps
WO2021203343A1 (zh) * 2020-04-09 2021-10-14 北京微动数联科技有限公司 Web请求处理方法和装置
US11038934B1 (en) 2020-05-11 2021-06-15 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US11637937B2 (en) * 2020-11-18 2023-04-25 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and non-transitory storage medium
US11620110B1 (en) * 2022-06-07 2023-04-04 Snowflake Inc. Registration of multiple user defined functions
US11930045B1 (en) 2023-04-28 2024-03-12 Snowflake Inc. Secure network access from sandboxed applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070226773A1 (en) * 2006-03-21 2007-09-27 Novell, Inc. System and method for using sandboxes in a managed shell
CN101286155A (zh) * 2007-04-11 2008-10-15 谷歌股份有限公司 用于输入法编辑器集成的方法和系统
CN101286093A (zh) * 2007-04-09 2008-10-15 谷歌股份有限公司 客户端输入方法
CN101488154A (zh) * 2009-03-04 2009-07-22 西安双捷科技有限责任公司 用于网页的文字输入实现方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0260658A (ja) 1988-08-29 1990-03-01 Terumo Corp 中空糸膜型物質移動装置
JP3589682B2 (ja) 1993-03-16 2004-11-17 富士通株式会社 文書作成装置
JPH07129565A (ja) 1993-10-29 1995-05-19 Sharp Corp 情報処理装置
US6003050A (en) * 1997-04-02 1999-12-14 Microsoft Corporation Method for integrating a virtual machine with input method editors
US7174288B2 (en) * 2002-05-08 2007-02-06 Microsoft Corporation Multi-modal entry of ideogrammatic languages
US8245270B2 (en) * 2005-09-01 2012-08-14 Microsoft Corporation Resource based dynamic security authorization
CN101286154B (zh) * 2007-04-09 2016-08-10 谷歌股份有限公司 输入法编辑器用户档案
CN101286094A (zh) 2007-04-10 2008-10-15 谷歌股份有限公司 多模式输入法编辑器
JP2009223782A (ja) 2008-03-18 2009-10-01 Nec Corp 文字入力装置、携帯端末装置、文字入力方法及びそのプログラム
KR20100056938A (ko) * 2008-11-20 2010-05-28 엔에이치엔(주) 웹 페이지를 생성하기 위해 사용되는 컴포넌트 기반의 자바웹 애플리케이션 개발 프레임워크
US8904012B2 (en) 2009-11-27 2014-12-02 Google Inc. Client-server input method editor architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070226773A1 (en) * 2006-03-21 2007-09-27 Novell, Inc. System and method for using sandboxes in a managed shell
CN101286093A (zh) * 2007-04-09 2008-10-15 谷歌股份有限公司 客户端输入方法
CN101286155A (zh) * 2007-04-11 2008-10-15 谷歌股份有限公司 用于输入法编辑器集成的方法和系统
CN101488154A (zh) * 2009-03-04 2009-07-22 西安双捷科技有限责任公司 用于网页的文字输入实现方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3207661B1 (en) * 2014-11-18 2021-12-29 Auth0 Inc. Identity infrastructure as a service
CN109478187A (zh) * 2017-04-25 2019-03-15 微软技术许可有限责任公司 输入法编辑器
CN111858675A (zh) * 2020-07-24 2020-10-30 北京玉符科技服务有限公司 自定义属性编辑器
CN112800473A (zh) * 2021-03-17 2021-05-14 好人生(上海)健康科技有限公司 一种基于大数据安全屋的数据处理方法
CN112800473B (zh) * 2021-03-17 2022-01-04 好人生(上海)健康科技有限公司 一种基于大数据安全屋的数据处理方法

Also Published As

Publication number Publication date
US20120041752A1 (en) 2012-02-16
US9086735B2 (en) 2015-07-21
CN103080873B (zh) 2016-10-05
JP2013524372A (ja) 2013-06-17
JP5921527B2 (ja) 2016-05-24
WO2011127640A1 (en) 2011-10-20
EP2558923A4 (en) 2014-11-19
KR20130072209A (ko) 2013-07-01
TWI526880B (zh) 2016-03-21
KR101681281B1 (ko) 2016-12-12
TW201205352A (en) 2012-02-01
EP2558923A1 (en) 2013-02-20

Similar Documents

Publication Publication Date Title
CN103080873A (zh) 用于输入法编辑器的扩展框
US10909331B2 (en) Implicit identification of translation payload with neural machine translation
US9043300B2 (en) Input method editor integration
JP5421239B2 (ja) 複数モードの入力メソッドエディタ
US7634720B2 (en) System and method for providing context to an input method
TWI464605B (zh) 由電腦實施的方法以及輸入方法編輯器伺服器
CN107454954B (zh) 数据绑定相关性分析
JP2016186805A (ja) 中国語、日本語、および韓国語の言語データを電子的形態で管理するためのモジュラーシステムと方法
US20110289407A1 (en) Font recommendation engine
AU2006326672A1 (en) Embedded rule engine for rendering text and other applications
US11003426B1 (en) Identification of code for parsing given expressions
Swearngin et al. Genie: Input Retargeting on the Web through Command Reverse Engineering
US11978436B2 (en) Application vocabulary integration with a digital assistant
Jensen et al. Country selection on web forms: a comparison of dropdown menus, radio buttons and text field with autocomplete
KR102158544B1 (ko) 모바일 기기의 입력 인터페이스 내에서 맞춤법 검사를 지원하는 방법 및 시스템
Gordon Developing a language for spoken programming
Patel et al. Enhanced prediction correctness of Smartphone dictionary via addition of application awareness
KR20190100572A (ko) 중국상표 한자독음 검색엔진 및 중국상표 검색방법
Torcolini Summer 2010 Improving Accessibility for the Blind on the Android Platform Nicole Torcolini
Torcolini Summer 2010 Improving Accessibility for the Blind on the Android Platform

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.

CP01 Change in the name or title of a patent holder