自动提示列表和手写输入的制作方法

文档序号:6567131阅读:365来源:国知局

专利名称::自动提示列表和手写输入的制作方法自动提示列表和手写输入
背景技术
相关技术的描述当前,自动提示列表被用在用户接口中。例如,当用户在英特网浏览器的地址栏中输入信息时,可向用户显示使其输入完成的提示。在这类系统中,用户可开始在地址输入栏中键入"WWW",则将向其显示以下可能的选择,这些选择可包括或可不包括以前访问过的网站http:〃www.https:〃www.ftp:〃www.www.crm.comwww.msnbc.com使用自动提示列表的一个优点是它能够向用户提示已输入到栏中的信息的完整(信息)。自动提示列表基于l)先前输入或2)期望输入的至少之一来提供内容提示。虽然常规自动提示列表是有益的,但是它们受限于基于文本的输入系统,即仅对键盘输入做出反应。使用基于笔的计算系统的用户在使用自动提示列表时受到限制,因为常规系统不对手写输入产生响应。
发明内容本发明的各个方面解决了上述问题的一个或多个,由此针对手写输入提供了经改进的自动提示能力。本发明的各个方面使得用户能够输入或开始输入手写信息并使系统提供自动提示内容作为响应。本发明的各个方面作为示例而非限制地示出于附图中。图1示出了其中可实现本发明的特定方面的通用数字计算环境的示意图。图IB到1M示出了支持本发明的一个或多个方面的通用计算机环境。图2示出了根据本发明的各个方面的基于笔的计算系统的示例性实例。图3示出了根据本发明的各个方面的示例性元件之间的交互动作。图4示出了根据本发明的各个方面的自动提示列表的一个示例。图5示出了与本发明的至少一个方面互动的各个对象。图6示出了由根据本发明的各个方面的自动提示列表产生的另一个示例。图7示出了与应用程序互动的常规自动提示列表。具体实施方式本发明的各个方面涉及响应于用户手写输入提供自动提示信息。自动提示信息可随所使用应用程序的变化而变化。注意在以下描述中阐述了元件之间的各种连接。注意这些连接是通用的,并且除非另外说明,可以是直接或间接的,而且本说明书并非旨在在这个方面进行限制。概述对于计算机用户而言,手写电子墨水变得越来越普遍。尽管越来越受到大众的青睐,但是手写作为输入方式有其自身的缺点。重点在于,手写识别总是不能做到尽善尽美。用户试图写入的东西与手写被错误识别之间的断层破坏了用户的感受。为了尝试克服这种识别失败,用户转向键入(在实际或显示键盘上)或者尝试使用手写墨水。可以理解,如果在使用输入笔控制应用程序时却需要基于文本的输入来起作用,则用户可能会感到失望。本发明的各个方面涉及手写接收面板与自动完成进程之间的接口。在此,在本发明的一个示例中,应用程序可包含要求用户输入的用户接口。用户、应用程序或操作系统可调用手写接收面板,以便接收用户的手写(输入)。手写接收面板可进行识别,并且将识别到的文本发送到自动完成进程,其中该自动完成进程基于所接收的信息确定提示内容并等待用户输入。用户可选择来自自动完成进程的提示之一,然后该选择被转发到应用程序。或者,用户可向识别信息的手写接收面板添加更多的信息,而自动完成进程基于来自手写接收面板的信息提供提示。在本发明的另一个方面,当用户选择或向手写接收面板添加新信息时,手写输入面板可与自动完成进程来回地交换信息。在一些情形中,用户可能能够利用先前被识别的、先前被定位(因为存在于存储器中)的信息,或者对输入信息使用预定结构。本文将描述本发明的这些和其它方面。墨水的特性对于使用墨水笔的用户而言,众所周知的是,物理墨水(使用带墨水容器的笔在纸张上书写的一种)能够比由线段连接的一系列坐标传递更多的信息。例如,物理墨水可反应笔的压力(通过墨水的厚度)、笔的角度(通过线条或曲线的形状以及离散点周围的墨水的性态)以及笔尖的速度(通过平直度、线宽以及线条或曲线路线上的线宽变化)。另外的示例包括墨水被吸收到纸张或其沉积的其它表面的纤维的方法。这些细微特性还有助于传递以上所列特性。由于这些附加特性,所以能够比多个点之间的均匀线宽更即时地传递情绪、个性、着重点等。当用户使用基于输入笔的输入设备时,电子墨水(或墨水)涉及捕获以及所所捕获电子信息的显示。电子墨水指笔划顺序或任意笔划的收集,其中每一笔划包括一连串点。这些笔划可同时提取或收集,或者为了单独的缘故,可在独立时间和位置提取或收集。这些点可使用各种公知技术来呈现,包括笛卡儿(Cartesian)坐标(X,Y)、极坐标(r,0)和其它本领域所公知的技术。电子墨水可包括真实墨水的特性的显示,包括压力、角度、速度、颜色、笔尖尺寸和墨水不透明度。电子墨水还可包括其它特性,其它信息中包括墨水被沉积到页面上的次序(对于大多数西语而言,从左到右然后往下的光栅图案)、时间戳(指示墨水何时被沉积)、墨水书写者的指示、以及主叫设备(在其上拖曳墨水的机器的标识或用于沉积墨水的笔的标识的至少之一)。在上述特性中,主要使用了笔划的时间次序以及作为一系列坐标的笔划。同时也可使用所有其它特性。术语<table>tableseeoriginaldocumentpage6</column></row><table>可包括笔划序列或无序笔划、或者其任意组合。此外,对于笔划中的每一笔划或点而言,一些特性可能是唯一的(例如压力、速度、角度等)。这些特性可存储在笔划或点层面,而非墨水层面。墨水对象存储有带特性或不带特性的墨水的数据结构。笔划一连串或一组捕获点。例如,当进行再现时,一连串点可使用线条来连接。或者,笔划可表示成一个点和指向下一个点的矢量。简言之,不管点的底层表示和/或如何连接这些点,笔划旨在包括与墨水相关的点或线段的任何表示。文档具有可视化表示和内容的任何电子文件。文档可包括网页、文字处理文档、笔记本页面或写字板、电子数据表、视觉显示、数据库记录、图像文件以及其任意组合。再救RenderorRenderedorRendering)确定信息(包括文本、图形和/或电子墨水)如何显示一在屏幕上、打印或以一些其它方式输出一的进程。计算机可读介质计算机系统上可由用户访问的任意可用介质。作为示例而非限制,"计算机可读介质"可包括计算机存储介质和通信介质。计算机存储介质"计算机存储介质"包括以诸如计算机可读指令、数据结构、程序模块或其它数据的信息存储的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。"计算机存储介质"包括但<table>tableseeoriginaldocumentpage8</column></row><table>通用计算环境图1示出了其上可实现本发明的适当的计算系统环境100的一个示例。计算系统环境ioo仅作为适当的计算环境的一个示例,而非旨在对本发明的用途范围或功能性做任何限制。计算机环境100也不应当被解释为对示例性操作系统100中所示元件的任何一个或组合有的任何依赖性或要求。本发明可运行于许多其它通用或专用计算系统环境或配置。适用于本发明的众所周知的计算系统、环境和/或配置包括但不限于个人计算机、服务器计算机、手持型或膝上设备、多处理机系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、微型计算机、大型计算机、包括上述系统或设备的任意种类的分布式计算环境等。可在由计算机执行的诸如程序模块的计算机可执行指令的通用环境中描述本发明。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。也可在其中通过经由通信网络链接的远程处理设备执行任务的分布式计算环境中实践本发明。在分布式计算环境中,程序模块可位于包括存储器存储设备的本地或远程计算机存储介质中。参看图1,用于实现本发明的示例性系统包括计算机110形式的通用计算设备。计算机110的元件可包括但不限于处理单元120、系统存储器130和将包括系统存储器在内的各种系统元件耦合到处理单元120的系统总线121。系统总线121可以是包括使用各种总线架构中的任一种的存储器总线或存储器控制器、外围总线以及局域总线在内的若干类型总线结构中的任意一种。作为示例而非限制,这些架构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局域总线、以及也称为夹层(Mezzanine)总线的外设部件互连(PCI)总线。计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计算机110访问的任何可用介质,包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任意方法和技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字通用光盘(DVD)或其它光盘存储器、磁带盒、磁带、磁盘存储器或其它磁存储设备、或者可被用来存储所需信息并可由计算机110访问的任意其它介质。通信介质通常以诸如载波或其它传送机制的己调制数据信号的方式体现计算机可读指令、数据结构、程序模块或者其它数据,并且包括任意信息传输介质。术语"已调制数据信号"是指以在信号中编码信息的方式设置或改变了其特性中的一个或多个的信号。作为示例而非限制,通信介质包括诸如有线网络或直接连接的有线介质、以及诸如声波、RF、红外线和其它无线介质的无线介质。以上介质的任意组合应当也可包括在计算机可读介质的范围内。系统存储器130包括诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失性和/或非易失性存储器形式的计算机存储介质。包含有助于诸如在启动期间在计算机110内的元件之间传递信息的基本例程的基本输入/输出系统133(BIOS)通常存储在ROM131中。RAM132通常包含通过处理单元120直接存取和/或立即操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。计算机110也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了对不可移动的非易失性磁性介质读或写的硬盘驱动器141、对可移动的非易失性磁盘152读或写的磁盘驱动器151、以及对诸如CDROM或其它光学介质的可拆卸的非易失性光盘156读或写的光盘驱动器155。可被用在示例性操作环境中的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字通用光盘、数字视频磁带、固态RAM、固态ROM等。硬盘驱动器141通常经由诸如接口140的不可移动存储器接口连接到系统总线121,而磁盘驱动器151和光盘驱动器155通常经由诸如接口150的可移动存储器接口连接到系统总线121。以上讨论并在图1中示出的驱动器以及与它们相关联的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146以及程序数据147。注意这些组件可与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序模块146和程序数据147被赋予不同附图标记,以便最低限度说明它们是不同的副本。用户可通过诸如键盘162和通常称之为鼠标、跟踪球或触摸板的定点设备161向计算机20输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些或其它输入设备常常经由耦合于系统总线的用户输入接口160连接到处理单元120,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)的其它接口和总线结构连接。监视器191或其它类型的显示设备也经由诸如视频接口190的接口连接到系统总线121。除监视器之外,计算机还可包括诸如扬声器197和打印机196的其它外围输出设备,它们可经由输出外围接口195连接。计算机110可工作在使用到诸如远程计算机180的一个或多个远程计算机的逻辑连接的网络化环境中。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且通常包括以上就计算机IIO所描述的组件中的许多或所有组件,尽管图1仅示出了存储设备181。图1中所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这些网络环境在办公室、企业计算机网络、内联网和因特网中是普遍的。当用在LAN网络环境中时,计算机110经由网络接口或适配器170连接到LAN171。当用在WAN网络环境中时,计算机110通常包括调制解调器172或在诸如因特网的WAN173上建立通信的其它装置。或为内置式或为外置式的调制解调器172可经由用户输入接口160或其它适当的机制连接到系统总线121。在网络化环境中,关于计算机110所述的程序模块或其一部分可被存储在远程存储器存储设备中。作为示例而非限制,图1示出了驻留在存储设备181的远程应用程序185。应当理解,所示网络连接仅是示例性的,并且也可使用在计算机之间建立通信链接的其它装置。在一些方面中,笔数字转换器165以及伴随笔或笔尖166被设置成数字地捕获徒手输入。尽管示出了笔数字转换器165与用户输入接口160之间的直接连接,但在实践中,笔数字转换器165可直接耦合到处理单元110、并行端口或者通过包括无线的任意技术耦合到其它接口以及系统总线130。笔166也可具有与其相关联的摄像头,以及用于将通过该摄像头捕获到的图像信息无线传输到与总线130互动的接口的收发器。此外,笔可具有除摄像头之外的或替代其的、用于确定电子墨水的笔划的其它感测系统,包括加速度计、磁强计和陀螺仪。应当理解,所示网络连接是示例性的,并且也可使用其它手段建立计算机之间的通信链路。采取现有的诸如TCP/IP、以太网、FTP、HTTP等的各种公知协议的任一种,并且系统可工作于允许用户从基于web的服务器检索网页的客户机-服务器配置。各种常规web浏览器的任一种可被用来显示和操作网页上的数据。编程接口(或更简明的为接口)可被视为使得一个或多个代码段能够与一个或多个其它代码段通信或者访问它们所提供的功能的任何机制、进程、协议。或者编程接口可被视为系统组件中能够通信耦合到其它组件的一个或多个机制、方法、函数调用、模块等的一个或多个机制、方法、函数调用、模块、对象等。不管所应用的术语或者不管代码段是否单独编译、或者代码段用作源、中间还是目标代码、或者代码段用在运行时间系统还是进程中、或者它们位于同一或不同机器上还是分布于多个机器、或者代码段所提供的功能完全以软件方式、完全以硬件方式还是硬件和软件的组合来实现,前述语句中的术语"代码段"旨在包括一个或多个指令或代码行,并且包括例如代码模块、对象、子例程、函数等。概念上,编程接口可在如图1B或图1C中一般地示出。图1B示出了作为第一与第二代码段进行通信的管道的接口Interfacel。图1C示出了包括接口对象II和12(可以作为或不作为第一和第二代码段的一部分)的接口,这些接口对象使得系统的第一和第二代码段可经由介质M进行通信。从图1C中可看到,可将接口对象Il和I2视为同一系统的独立接口,也可认为对象Il和I2再加上介质M构成接口。尽管图1B和1C示出了双向流以及流的每一侧的接口,但是特定实现可仅具有一个方向上的信息流(或如下所述没有信息流)或者可仅在一侧具有接口对象。作为示例而非限制,诸如应用编程接口(API)、入口点、方法、函数、子例程、远程过程调用和组件对象模型(COM)接口的术语被包括在编程接口的定义内。这种编程接口的各个方面可包括第一代码段由此将信息(其中以最宽泛的理解使用"信息"并包括数据、命令、请求等)发送到第二代码段的方法;第二代码段由此接收信息的方法;以及信息的结构、序列、语法、组织、模式、定时和内容。在这点上,底层输运介质本身对于接口的操作而言可能不重要,不管此介质是有线还是无线,或者两者的组合,只要信息以接口所定义的方式传输。在特定情形中,信息并非以常规理解中的单向或双向传递,因为信息传递可经由另一种机制(例如放置于缓冲器、文件等中的、分别来自代码段之间的信息流的信息)或者当一个代码段仅仅访问第二代码段所提供的功能时不存在。在例如取决于代码段以松散耦合还是紧密耦合配置方式作为系统的一部分的给定情形中,任何或所有这些方面都可能是重要的,所以所列出的应当认为是示例性的而非限制。对于本领域技术人员而言,这种编程接口概念是众所周知的,而且根据上述本发明的详细描述是清楚的。然而,存在实现编程接口的其它方法,而且除非明确排除,这些都旨在通过在本说明书的最后部分阐述的权利要求来包括。其它这样的方法可能显得比图1B和1C的简单化视图要更高级和复杂,然而仍可执行类似功能来实现同样全面的结果。现在将简要地描述编程接口的一些示例性可选择的实现。A.分解(FACTORING)从一个代码段到另一个的通信可通过将通信分割成多个离散通信来间接实现。这示意性地示出于图1D和1E中。如所示,一些接口可根据可分割的功能组来描述。因此,可分解图1B和1C的接口功能来实现相同的结果,正如可数学地提供24,艮卩为2x2x3x2。因此,如图1D所示,由接口Interface1所提供的功能可再分解以将该接口的通信转换成多个接口InterfacelA、InterfacelB、InterfacelC等的通信,同时实现相同的结果。如图1E中所示,由接口I1提供的功能可再分解成多个接口Ila、Ilb、Ilc等,同时实现相同的结果。类似地,第二代码段接收来自第一代码段的信息的接口12可分解成多个接口I2a、12b、12c等。当进行分解时,第一代码段所包括接口的数量无需匹配第二代码段所包括接口的数量。在图1D和1E的任一情况中,接口Interfacel和II的功能本质分别与图1B和1C的保持相同。接口的分解可能还伴随着结合、交换和其它数学特性,从而分解可能难以被识别。例如,操作的次序可能是不重要的,因此由接口实现的功能可在到达接口之前就已通过另一代码或接口块实现,或者通过系统的单独组件执行。此外,编程领域的普通技术人员可理解,存在实现相同结果的各种进行不同函数调用的方法。B.重新定义(REDEFINITION)在一些情况中,忽略、添加或重新定义编程接口的特定方面(例如参数)却仍可实现预期结果是可能的。这示出于图1F和1G中。例如,假定图1B的接口Interface1包J舌函数调用Square(input,precision,output)—包括三个参数input(输入)、precision(精度)和output(输出)的调用,并且该调用从第一代码段发出到第二代码段。如果在假定情况中不关心中间的参数精度,如图1F所示,则忽略或甚至用无意义的参数替代(在此情形中)也无妨。还可添加无关的附加参数。在任一情况中,可实现求平方功能,只要在通过第二代码段对input求平方之后返回output。对于计算系统的一些下游或其它部分而言,precision可能是非常有意义的参数;然而,一旦认识到对于计算平方这种有限目的而言不需要精度,则可替代或忽略它。例如,在对结果不产生不利影响的情况下,可传递诸如出生日期的无意义的值而非传递有效精度值。类似地,如图1G中所示,用重新定义成忽略或向接口添加参数的接口Il'来替代接口II。接口12可类似地重新定义成接口12',该接口12'被重新定义成忽略非必要参数、或可在别处处理的参数。这里的重点是在一些情况中,编程接口可包括对于一些目的而言不需要的、诸如参数的各个方面,所以它们可被忽略或重新定义,或者出于其它目的在别处进行处理。C.内联编码(INLINECODING)合并两个独立代码模块的若干或所有功能是也是可行的,从而使它们之间的"接口"改变形式。例如,图IB和1C的功能可分别转换成图1H和II的功能。在图1H中,先前图IB的第一和第二代码段合并成包含它们两者的模块。在此情况下,代码段仍然可彼此通信,但是接口可改装成更适于单模块的形式。因而,例如,可能不再需要形式调用和返回语句,但是对接口Interfacel的类似处理或响应跟踪可能仍是有效的。类似地,如图II所示,图1C的接口12的部分(或全部)可内联写入接口II来形成接口11,。如所示,接口12被分割成I2a和I2b,而接口部分I2a已与接口II内联编码以形成接口Il,。对于具体示例,假定图1C的接口II执行由接口12接收的函数调用square(i叩ut,output),该接口12在通过第二代码段处理了input所传递的值之后(计算i叩ut的平方),用output传递返回所求的平方结果。在这样的情况中,在不对接口进行调用的情况下,由第二代码段执行的处理(对i叩ut进行求平方)可由第一代码段来执行。D.分离(DIVORCE)从一个代码段到另一个的通信可通过将通信分割成多个离散通信来间接实现。这示意性地示出于图1J和1K中。如图1J所示,提供一个或多个代码块(分离接口,因为它们从原始接口分离功能和/或接口功能)来转换第一接口Interfacel上的通信使其符合不同的接口一在此情况中为接口Interface2A、Interface2B和Interface2C。可能是这样的例如,存在设计成根据Interfacel协议与所述操作系统通信的已安装的基本应用程序,但是随后操作系统被改变成使用不同接口一在此情况中为接口Interface2A、Interface2B和Interface2C。重点在于由第二代码段所用的原始接口变成不再与由第一代码段所用的接口兼容,中间介质被用来使新旧接口相互兼容。类似地,如图1K所示,可引入第三代码段,该第三代码段具有用于接收来自接口II的分离接口DIl,以及用于向例如重新设计成与DI2合作但提供相同功能结果的接口I2a和I2b传递接口功能的分离接口DI2。类似地,DI1和DI2一起合作以便将图1C的接口II和12的功能转移到新的操作系统,同时提供相同或类似的功能结果。E.重写(REWRITING)另一种可能的形式是动态重写代码以便用实现相同全部结果的其它方案来替换接口功能。例如,可能存在一种系统,其中向执行环境(诸如由.Net架构、Java运行时环境或其它类似运行时类型的环境提供)中的即时(Just-in-Time)(JIT)编译器或解释器提供以中间语言(例如微软IL、JavaByteCode等)呈现的代码段。JIT编译器可编写成动态转换从第一代码段到第二代码段的通信,即在第二代码段(初始或者不同的第二代码段)可能需要的时候,使得它们符合不同接口。这示出于图1L和1M中。如从图1L中可看到的,这种方法类似于上述分离情况。可能是这样的例如,其中已安装的基本应用程序被设计成根据Interfacel协议与操作系统进行通信,但随后操作系统被改变成使用不同接口。JIT编译器可被用来使从已安装的基本应用程序发出的通信符合操作系统的接口。如图1M中所示,也可使用这种动态重写接口的方法来动态分解,或另外改变接口。还应当注意上述经由其它实施例实现与接口相同或类似的结果的情况还可以各种方式组合一串行或并行地、或者与其它插入代码组合。因而,上述其它实施例并非互相排斥,而是可被混合、配合及组合成产生与图1B和1C中呈现的一般情况相同或等效的情况。还应当注意至于大多数程序设计构造,存在实现接口的相同或类似功能的、这里尚未描述但是通过本发明的精神和范围呈现的其它类似方法,即应当注意,通过以接口的值为基础的接口可呈现至少部分功能,并能够呈现有益结果。图2示出了根据本发明的各个方面可使用的示例性平板(tablet)PC201。图1系统中的任何或所有特征、子系统和功能都可包括在图2计算机中。平板PC201包括其上显示多个窗口203的大显示面202,例如数字化平板显示器,较佳地为液晶显示(LCD)屏。用户可使用输入笔204在数字化显示面202上进行选定、加亮和/或书写。适当的数字化显示面202的示例包括电磁笔数字转换器,诸如Mutoh或Wacom公司的笔数字转换器。还可使用例如光学数字转换器的其它类型的笔数字转换器。平板PC201解释使用输入笔做出的动作,以便处理数据、输入文本、创建图画、和/或执行诸如电子数据表、文字处理程序等的常规计算机应用程序任务。输入笔204可配备一个或多个按钮,或者用于增加其选择能力的其它特征。在一个实施例中,输入笔204可实现为"铅笔"或"钢笔",其中一端构成书写部分而另一端构成"擦除器"端,并且当在显示器上移动时,该"擦除器"端指示显示器要擦除的部分。可使用诸如鼠标、跟踪球等其它类型的输入设备。另外,在触敏式或接近式显示器上,用户自身的手指可作为输入笔204,并可用来选择或指示被显示图像的部分。因此,如本文所用的术语"用户输入设备"旨在对众所周知的诸如输入笔204的输入设备进行宽泛定义并包括许多变体。区域205示出了使得用户能够在接触显示面202时确定输入笔204所在位置的反馈区或接触区。在各个实施例中,系统提供了墨水平台作为一组COM(组件对象模型)服务,从而应用程序可将它们用于捕获、处理并存储墨水。一个服务使得应用程序能够用已公开的墨水表示来读取或写入墨水。墨水平台还可包括包含如可扩展标记语言(XML)的标记语言。此外,系统可使用DCOM作为另一个实现。还可使用包括微软公司的Win32编程模型和.Net编程模型的其它实现。自动提示和手写输入自动完成进程(也称为自动提示进程),最近使用(MRU)列表和最经常使用(MFU)列表是通用特征,并且被用于许多应用程序以及各种操作系统外壳的若干领域。这些列表的用途之一是有助于用户输入难以记住的诸如电子邮件(email)地址、URL和文件名的不规则文本。对于使用手写输入电子邮件地址、URL和文件名的用户而言,此用途甚至更大,因为对于诸如这些的字典之外的单词,手写识别通常最差,从而使得输入这些数据类型的过程甚至更为麻烦。本发明的各个方面涉及将各种应用程序的自动提示(也称为自动完成)与手写输入结合成整体。由于这种整合,用户可发现使用手写输入和与之互动的应用程序有助于方便使用、提高进出通行速度以及用户满意度。图3示出了本发明的各个方面的一个示例性实例。这里,应用程序301包括用户接口302。用户输入信息(用户输入303)。应用程序可包括转发(305)用于显示在所述用户接口302中的信息的输入处理程序304。注意用户输入信息可通过应用程序301或手写接收面板307来处理。到应用程序301的用户输入303以虚线直接示出,因为用户可能不需要总是向应用程序301独立输入信息。在一些情形中,例如,使用板型写字板或笔的、有限键或无键的计算设备,应用程序301可接收基于输入笔的信息,或者用户可仅使用手写接收面板307输入信息,由此绕过向应用程序301直接输入信息。用户或应用程序301可调用手写接收面板307。手写接收面板307可包括用于至少接收由输入笔与数字转换器交互动作形成的、电子墨水形式的手写输入的接口和进程。应当理解,手写接收面板307还可接收其它类型的信息,包括经由以上软键盘和/或经由用户使用鼠标拖曳墨水的键盘输入(实际或显示的)和鼠标输入。应当理解,手写接收面板307可用于有源数字转换器和无源数字转换器。手写接收面板307可包括各种类型的输入显示,包括但不限于行输入(显示其上拖曳墨水的准线)、框输入(每字符或符号输入一个单独的限定区)、键盘输入(软键盘)或通用空白输入区的至少之一。具有这些选项的至少一些的手写接收面板307的一个示例是华盛顿州(WA)雷蒙德的微软公司的TIP(写字板输入面板)。接着,用户将信息303(例如手写墨水)输入手写接收面板307。手写接收面板307尝试识别输入信息303并将识别结果转发(308)到自动完成提供器(autocompleteprovider)309。响应于从手写接收面板307转发到自动完成提供者309的己识别信息,自动完成提供器309向用户提供自动完成提示。然后,用户通过输入310选择提示之一,并且该选择被转发(311)到用于在用户接口302中显示的应用程序301。在已做出选择之后,自动完成提供器309关闭提示列表的用户接口。本发明的各个方面描述了独立于手写接收面板307的自动完成提供器309。在本发明的其它方面中,自动完成提供器309可被集成到手写接收面板307。在又一个方面中,手写接收面板307可被集成到自动完成提供器309。在这两个后面的方面中,向用户提供了通过控制另一用户接口来打开手写接收面板307和自动完成提供器309之一。以下是用户如何使用自动提示列表来向用户接口转发信息的一个示例。首先,用户可在手写接收面板307中输入"www"。然后,自动完成提供器309可提供提示自动完成列表,例如包括http:〃www,https:〃www.ftp:〃www.用户可继续添加信息到手写接收面板307(其中自动完成列表将随时间更新),或者可从自动完成列表中选择表项。一旦用户已选择了自动完成列表表项之一,则选择(或己做出选择的指示)被发送到应用程序301并显示在用户接口302中。这里,一旦用户已从自动完成列表中选择了一表项,则可清除手写接收面板307中的内容。用户可继续添加更多信息到手写接收面板307,并且使得新近识别的信息被传递到自动完成列表,而用户对提示结果的选择被发送到应用程序301。作为替代方案,手写接收面板307和自动完成提供器者309可交换信息308、312,直至用户对结果感到满意。接着,手写接收面板307将手写接收面板307与自动完成提供器309之间的交换结果转发(313)到用于在用户接口302显示的应用程序301。作为一个示例,以上使用了输入"www"。与以上相类似,用户输入由手写接收面板307识别为"www"的手写信息303。自动完成提供器309提供提示完成列表(例如,h加:/Avww.等)。一旦通过用户输入310对提示完成进行了选择,则提示完成经由路径312返回到手写接收面板307,其中在手写接收面板307中的识别结果被替换成选定的完成。然后,用户可向驻留在手写输入面板307的提示完成添加附加信息。最后,在字符串完成之后,则所用信息可经由路径313转发(手动地或通过使用字符串定时自动转发自动地)到用于在用户接口302显示的应用程序301。最后,作为又一替代方案,应用程序314可将用户接口302中的信息转发到自动完成提供器309以用作提示列表的初始信息。此初始信息有时候可称为引导信息。然后,来自手写接收面板307的识别结果308可与来自用户接口302的内容相结合作为信息,自动完成提供器309通过提供提示内容对该信息做出响应。然后,从自动完成提供者309选择的提示可通过上述路径(311或312/313)转发到应用程序301。手写接收面板307可拥有自动完成进程并下拉自动提示列表。或者,手写接收面板307可对从自动完成提供器309处提供的自动提示列表的定位产生影响。这可通过自动完成提供器309的应用程序编程接口来完成。图4示出了具有输入区402的应用程序401。用户可通过手写接收面板403输入手写墨水,并且在手写接收面板403的附近显示自动提示列表404。自动提示列表可通过自动完成提供器309来生成。自动提示列表中所提供的信息可通过应用程序改变。例如,对于因特网浏览器,自动提示列表可包括与万维网(WorldWideWeb)地址有关的信息或顶层域(domain)标识符。对于电子邮件应用程序,自动完成列表可包括关于可能包含来自个人电子邮件地址簿的电子邮件地址的信息。应用程序可相对于TIP而非应用程序的文本区来改变其自动提示列表的位置。以下提供关于应用程序的自动提示列表可如何被定位的指南。为了不现在用户的手掌之下,当可合适出现在手写接收面板的顶部边缘时,它们不用离开屏幕顶部边缘。自动提示列表的底部边缘可触及手写接收面板的书写表面的顶部边缘。如果它们不适合处于手写接收面板上方时,则它们可将自身定位成在手写接收面板的底部边缘的下方。在此情况中,自动提示列表的顶部边缘可触及手写接收面板书写表面的底部边缘。当手写接收面板已扩展成包括多于一行墨迹时,自动提示列表可相对于用户施加墨水的当前行定位自身。在此情况中,自动提示列表可将该行的顶部和顶部当作书写接收面板的顶部和底部。或者,自动提示列表可总是相对于施加墨水的顶部和顶部出现。自动提示列表可左对齐出现在手写接收面板的第一结尾空白区的上方。在手写接收面板的行方式中,自动提示列表可显示成该自动提示列表的左边缘与最后一行上的最后一个墨迹对象的右边缘对齐。在自动提示列表的框输入模式中,自动提示列表可显示成该自动提示列表的左边缘与第一结尾空白框的左边缘对齐。在任一种外壳中,如果在不离开屏幕右边缘的情况下,无法使列表左对齐,则列表可变成靠着屏幕的右边缘右对齐。,在自动提示列表显示的任何时候,只要用户用笔点击自动提示列表的外部,则自动提示列表将隐藏。任何时候对手写接收面板的最后字码做出修改,则自动提示列表可更新并重新显示。当用户使用硬或软键盘时,应用程序的自动提示列表可相对于文本输入区而非手写接收面板来定位。在这些情况中,自动提示列表以与桌面电脑相同的方式显示和运行。或者,当使用软键盘时,自动提示列表可相对于软键盘来定位。靠近软键盘定位自动提示列表的益处之一是彼此间的导航仅需有限的运动,由此使得对于用户而言,两者之间的交互动作更容易。在执行识别且更新识别结果之后,立即出现自动提示列表。在手写接收面板的框输入模式中,在识别到每个字符之后更新自动提示列表。在手写接收面板的行输入模式中,在识别到一段之后更新自动提示列表。图5示出了根据本发明的各个方面的组件之间的各个关系。手写接收面板501包括与状态管理器504交换信息的手写窗口控制503。状态管理器504被连接到状态库505,该状态库被连接到可编程管理器。发送状态信息并接收结果。可编程管理器506向自动完成提供器进程502发送状态信息。自动完成提供器进程502包括具有状态管理器508和自动完成客户机(autocompleteclient)509的手写接收面板对象507。自动完成客户机509与自动完成提供器510交换信息。这里,手写接收面板501调用自动完成提供者510并转发来自手写接收面板501的结果。自动完成提供器进程502中的自动完成提供器510生成具有用于向用户显示的内容的自动完成列表。以下描述了一种可能的应用程序设计接口定义,该定义使得应用程序或手写接收面板能够访问自动提示列表和输入信息。自动完成客户机可具有向自动完成提供器510开放的自动完成客户机接口。自动完成客户机接口可包括一种通知提供器的方法,该方法注册要注册到自动完成客户程序的自动完成提供器。方法可包括指向要注册到自动完成客户机的自动完成提供器接口的指针。自动完成客户机可类似地具有不通知提供器的方法,该方法从自动完成客户机注销自动完成提供器接口。也可存在可以两种方法之一执行的用户选择接口。首先,如果使用这种方法转发信息,则可向手写接收面板转发回用户的选择以便添加附加的信息。第二,如果未使用这种方法转发信息,则它可用来通知用户己选定的选择。API也可包括对自动提示列表进行显示的优选矩形的规范。方法可包括指向屏幕坐标中指示提供器的优选位置和自动完成列表用户接口的尺寸的矩形的指针、指向屏幕坐标中指示聚焦区的位置和尺寸的矩形的指针、指向基于手写接收面板的当前状态以及由自动完成列表指定的优选自动完成列表位置和尺寸通过自动完成列表客户机更改的矩形的指针。API可包括对显示用户接口的请求。这是自动完成提供器在打算显示自动完成UI时做出的调用。自动完成客户机可更改提供器的优选矩形。这是自动完成提供器在打算显示自动完成UI时做出的调用。接着,自动完成提供器可包括以下接口-更新待定文本(pendingtext)的方法,该方法更新用于生成自动完成列表的待定文本。此文本将不包含已插入到聚焦区中的文本,并且自动完成提供器负责考虑用于生成自动完成列表的当前区文本和选择。此方法还可指定自动完成列表应当显示的字符。此方法可触发提供器来显示自动完成列表UI。一种可用来显示或隐藏自动完成列表的显示方法。以下扩展可用于或不用于本发明的各个方面。应用程序可将自动提示列表作为文本转发给手写接收面板,并使手写接收面板拥有或相对于其下拉出填充有由应用程序提供的自动提示值的自动提示列表。手写接收面板下拉列表可浮置于应用程序列表重定位的路线之上,或者完全集成到手写接收面板UI。或者,自动提示列表可不进行重定位,而是保留在其当前位置上。此外,自动提示列表可由应用程序、操作系统或用户放置在任何地方。可向应用程序传递顶部识别结果的两个或多个,从而使应用程序基于不同识别可能性生成自动提示列表。可整合多种文本形式预测的自动提示,从而用户可在单个列表中获得自动完成的URL或电子邮件地址以及预测可能输入的字典单词(不管他们之前是否键入此单词)。将来,本发明将从当前自动完成实现扩展为通用文本。可将URL分解成多个部分,或者构建可用来导航到用户先前访问过的地址的上级或同级的字段。使用这种方法,即使用户从未访问过www.cnn.com,只要用户访问过www.crm.com/currentnews,就能够实现其上级www.cnn.com的自动完成。这可通过在IAutoCompleteResults接口中包括AdjustAutoCompleteList方法来完成。这种方法使得手写接收面板能够在应用程序显示列表表项之前更改该应用程序将显示的列表表项。图6中示出了附加信息,并按照如下进行通过自动完成列表提供器对笔输入面板对象的调用获得AdjustAutoCompleteList()。当此方法被调用时,笔输入面板对象可包含其自身保存的最终及框示意文本。在此方法中,当为默认值时,笔输入面板将在给定自动完成字符串中搜索首次出现的最终示意字符串的最终示意文本,并且从自动完成字符串中删除最终示意字符串,如下-最终示意文本="AAA"自动完成字符串="000AAABBBCCC"对最终示意文本进行剪裁之后的结果字符串="BBBCCC"最终示意文本之前的任何自动完成字符串部分(在以上示例中为"000")也被剪裁掉。定为IS—URL时,以特定方式进行剪裁。如图6中所示,给出了URL部分的定义。此外,自动完成列表可如下用于因特网地址。协议字符串是其后跟随"//"的字符串部分。主机名是在协议字符串之后并且其后跟随一句点的字符串部分。顶层域名是句点符之后、字符串内任何斜线字符之前的最后一部分字符串。当主机名和顶层域名存在时,二层域名存在时,二层域名是与顶层域名左边的句点分隔开的字符串部分。如果主机名与顶层域名之间存在由句点符分隔开的多个部分段,则它们是作为域名的第二层或更高层。框外壳并不区分域名的第二层或更高层,并且它们可当作整体处置。如果存在顶层域,贝lj-文件名是在协议分隔符之后的最后斜线字符之后的字符串部分。文件名与协议分隔符之后的第一斜线字符之间的字符串部分是目录。如果不存在顶层域,贝IJ:文件名是最后斜线字符之后的字符串部分。目录是文件名与协议分隔符之间的字符串部分。框输入模式可将字符串分割成以下单元协议字符串及协议分隔符。主机名及其后的分隔符。*域名及其后的分隔符。目录及文件名。在检査并更改了所有全自动完成字符串之后,框外壳可从列表中移除任意重复项。接着,系统可启动显示字符串的索引。启动全自动完成字符串内要从调节自动完成列表返回的字符索引通过以与默认自动完成列表完全相同的方式来确定。它可能处于全字符内首次出现的最终示意文本的末端。对于显示字符串的端索引,以下步骤定义自动完成字符串中要返回的字符的端位置。a.如果示意文本在全字符串中协议分隔符之前结束(不包括协议分隔符的两个斜线字符),则端位置是包括协议分隔符的协议字符串。b.如果(a)不成立,并且示意文本在全字符串中跟随着主机名的分隔符之前结束,则端位置是包括随后分隔符的主机名的末端。C.如果(b)不成立,并且示意文本在全字符串中跟随着顶层域名的分隔符之前结束,则端位置是包括随后分隔符的顶层域名的末端。d.如果(C)不成立,并且示意文本在全字符串中的目录或文件名范围内(包括域名与目录名之间的分隔符)结束,则端位置是全字符串的末端。在另一种方法中,自动完成提供器可管理自动提示列表的所有再现。例如,自动完成提供器可接收手写接收面板的位置(相对于其它显示内容的相对位置或绝对位置)指示,并基于手写接收面板的位置定位自动提示列表。在另一个示例中,自动完成提供器可不接收手写输入面板的位置的任何指示,并且可将自动提示列表定位在预定位置(靠近屏幕的一侧或位于中心等),或者可将自动提示列表定位成靠近其它显示内容(例如,与选自自动列表的内容所要发送的应用程序的用户接口分隔开、重叠或位于其顶部),或者高出该内容。已根据优选和示例性实施例描述了本发明。对于本领域普通技术人员而言,通过查阅本公开,可获得落在所附权利要求的范围和精神内的许多其它实施例、变体和变化。权利要求1.一种用于接收用户输入的计算机实现方法,包括以下步骤接收书写输入;以及将所述用户输入与自动提示列表相整合。2.如权利要求1所述的计算机实现方法,其特征在于,所述自动提示列表是浏览器的一部分。3.如权利要求1所述的计算机实现方法,其特征在于,所述自动提示列表是操作系统的一部分。4.如权利要求1所述的计算机实现方法,其特征在于,所述自动提示列表是应用程序的一部分。5.如权利要求1所述的计算机实现方法,其特征在于,还包括自动完成提供器进程和平板输入面板进程。6.—种显示自动完成列表的计算系统,包括接收文本的第一用户接口;接收手写墨迹的第二用户接口,所述手写墨迹被识别作为经识别的文本;具有基于所述经识别的文本的提示完成列表的第三用户接口,所述第三用户接口接收用户对所述列表的选择,并且所述用户选择被转发到所述第一用户接口。7.如权利要求6所述的计算系统,其特征在于,所述将用户选择转发到第一用户接口是通过自动完成列表提供器将所述用户选择发送到主存所述第一用户接口的应用程序而发生。8.如权利要求6所述的计算系统,其特征在于,所述将用户选择转发到第一用户接口是通过自动完成列表提供器将所述用户选择发送到手写接收面板而发生,所述手写接收面板允许用户在将所述用户选择转发到主存第一用户接口的应用程序之前更改所述用户选择。9.一种用于接收用户输入的计算机系统,包括用于接收手写输入的装置;以及用于将所述用户输入与自动提示列表相整合的装置。10.如权利要求9所述的计算机系统,其特征在于,所述自动提示列表是浏览器的一部分。11.如权利要求9所述的计算机系统,其特征在于,所述自动提示列表是操作系统的一部分。12.如权利要求9所述的计算机系统,其特征在于,所述自动提示列表是应用程序的一部分。13.如权利要求9所述的计算机系统,其特征在于,还包括自动完成提供器进程和平板输入面板进程。全文摘要描述了一种在自动提示列表中使用手写输入的进程和系统。手写输入被识别为文本,并被转发到基于所识别的文本提供提示列表结果的自动提示列表提供器。文档编号G06F15/00GK101164054SQ200680013369公开日2008年4月16日申请日期2006年4月20日优先权日2005年4月22日发明者A·加赛德,F·D·琼斯,J·A·克洛,J·C·谭多格,J·W·佩蒂罗斯,L·B·基利,S·J·戴维斯,T·A·基林斯基,T·D·舒尔茨,T·穆拉雅玛申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1