分类、锚定和变换墨迹的方法

文档序号:6559258阅读:319来源:国知局

专利名称::分类、锚定和变换墨迹的方法本申请与在2000年6月21日递交的名为“用于分类、锚定和变换墨迹注释的方法”的美国专利60/212,825以及在1999年12月7日递交的名为“用于捕获和显现用于不可更改的电子文档的注释的方法和装置”的美国专利09/455,806有关。本发明一般涉及文档的电子显示。更加具体来说,本发明涉及在电子显示文档中的墨迹和注释的放置和使用。当今许多因素促使计算机和计算机软件的发展。这些因素中的一个因素是需要基本上在任何时候任何地方提供对信息的可访问性。笔记本计算机、个人数字助理(PDA)、以及其它个人电子设备的蓬勃发展反应了这样一个事实,即用户希望无论他在什么地方在什么时候都能够访问信息。为了更大程度地促进信息的可访问性,信息的表现必须尽可能地令人熟悉和舒适。按照这种思路,推动信息的电子表现的成功的一个方式将使得用户能够以熟悉的方式来处理信息。换句话说,电子表现信息的使用和操纵可以模仿用户最熟悉的范例,例如打印文档,作为对它们使用的最初邀请。结果,形成用户与他们的“机器”之间的更大亲和力,从而即使机器具有更大的能力并且超出用户期望地向用户提供更多的内容,也可以更大地促进可访问性。一旦用户对新的电子表现形式感觉舒适,则他们更有可能利用全部可用功能。促进亲和力的一个方式是用电子图书格式表现信息,其中计算机用接近于印刷图书的方式来显示信息。为了更加完全地模仿印刷图书,用户需要具有自己的文本注释的能力,类似于在图书的页边处书写。用户还希望强调显示所选择的部分,就象用户期望在一个电子图书中所看到的主动阅读(active-reading)行为一样。用户希望添加图画、箭头、下划线、删除线等等,这也类似于在纸的图书中进行书写。最后,用户还要添加书签。可以获得上述所谓的“主动阅读”行为。在任何具有显示文本的GUI(图形用户接口)的计算机应用程序的情况中,可以假设所显示文本对用户来说是主要的。如果对原始文本添加墨迹(ink-mark)的过程对于原始文本的表现具有负面的影响,则用户不大可能频繁地对该电子信息添加墨迹注释(ink-annotate)和/或不大可能具有一个另人满意的墨迹注释经历。结果,做为从纸质图书向前迈进一步的电子图书(或者e-Book)的体会将受到损害。所需要的是一种增强电子图书墨迹注释特征的机制,以匹配或优于对于纸质图书的类似经历。手写、涂写和在文本上做标记是人类所具有的高度发展的技能,用于在文档上获得短的和图形的评论。只有当计算机支持这些行为,它们才比得上纸的方便性手写不需要为了使用被计算机识别。但是,它必须在一个人期望能够在一个显示文档页上书写的任何情况下可应用。该书写必须是可见的,而不需要对文档的任何附加的妨碍,并且不需要对文档的布局做任何改变。用于注释文档的已知方法达不到这些目标。另外,总是把一个注释与一个单个单元(例如给定一个的页面)相关联可能在重新排列(reflow)一个文档的文字时造成显现上的困难。这些困难包括把在一个页面上的注释显现为不同于该注释的原始主题。本发明提供一种向电子显示文档添加电子墨迹(electronicink)的技术。在本发明的上下文中,“文档”包括所有形式的电子可显示信息,包含但不限于书本、手册、参考材料、图书,等等。电子墨迹(也简称为“墨迹”)包括画图、手写文字(或注释)、以及强调显示(highlighting)。为了产生一个注释,用户在文档中选择一个对象以定位该注释被放置的位置。计算机系统决定哪个对象已经被选择并且锚定(anchor)该墨迹或注释。用户添加注释,并且最后返回并继续阅读该文档。注释可以是被过滤、导航、排序以及索引每个用户输入。注释可以包括文字注释、画图、强调显示、书签等等与主动阅读的一般领域相关的内容。在一个实施例中,系统改变该文档的内容,以向文档添加一个锚定标记。在另一个实施例中,系统确定与所选择对象相关的文件位置,并且锚定到该文件位置。在本发明的上下文中,一个所显示“对象”可以包括文字、图像、公式以及其它包含在所显示文档中的相关单元。注释可以包括强调显示、添加文字记录、添加画图(就象一个人用铅笔或钢笔在纸质图书上所做的那样),以及添加书签。文档可以被分为可更改和不可更改。对于可更改文档,该系统把文档改变为包含墨迹或注释,或者至少在锚定对象的位置添加一个到墨迹或注释的链接。在不可更改文档的情况下,该系统把电子墨迹与不可更改文档中的一个文件位置相链接。本发明计算例如单词(或者其它显示单元)的第一字母的文件位置,并且把该文件位置与该注释存储在一个分离的链接的局部文件中。在另一个实施例中,墨迹的文件位置锚定也可以被用于可更改文档中,或者当不可更改文档表示一个文件的不可更改部分时,注释被添加到该文件的一个可改写部分。本发明的另一个实施例涉及扩缩墨迹注释,即使在改变屏幕分辨率和屏幕尺寸时,也使得该墨迹注释显现正确。墨迹注释被作为数据点而捕获和存储。通常,墨迹如所捕获的那样被显示,意味着原始数据点被用于表现墨迹注释。其问题是屏幕分辨率可能改变或者屏幕尺寸可能改变,使得该注释对任何随后的观看来说太大或太小。在此,本发明把该墨迹与包括屏幕尺寸和屏幕分辨率在内的关于捕获该墨迹的系统的信息一同存储。如果屏幕尺寸或屏幕分辨率不同于所存储信息的显示设备,则本发明把确定注释的数据点扩缩到新的屏幕尺寸或分辨率。另外,把一个注释锚定到一个点、一个对象、多个对象或者一个几何区域的方法是已知的。但是在注释中一个墨迹笔画唯一之处在于它的形状具有其自身的图像含义,另外其形状和位置可以产生多个关联。但是,锚定的方法还没有保持足够的关联,它们也没有伴随着墨迹笔画的形状提供用于翻译这些关联的逻辑,以使得这些笔画在所注释单元的改变中保留。为了识别适当的关联,本系统和方法首先对形状进行分类,然后使用这些分类有助于识别多个可能相关独立单元。多个独立锚定可以包括一个或多个被注释的对象和/或区域,以及足够接近而被关联的任何其它注释。最后,当任何这些其它单元移动或改变时,本系统和方法使用逻辑来用复杂的方式变换该形状。从下文本发明的详细描述、所附权利要求书和在此所列出的用于解释本发明的附图中,对于本领域的专业人员来说本发明的这些和其它新的优点、细节、实施例、特点和目的将是显而易见的。图1A和1B示出根据本发明的实施例的通用计算机和手持计算机。图2示出根据本发明的实施例的在计算机屏幕上的显示文档。图3A和3B示出根据本发明的实施例可用于存储文档的不同文件格式。图4示出根据本发明的实施例用于以UTF8和Unicode(统一的字符编码标准)格式存储字符的不同字节。图5示出根据本发明的实施例用于确定一个对象的文件位置的过程。图6示出根据本发明的实施例用于确定一个对象的文件位置的另一个过程。图7示出根据本发明的实施例用于显示注释的一个过程。图8A和8B示出根据本发明的实施例用于存储注释的各种存储技术。图9示出根据本发明的实施例用于操纵注释的屏幕。图10示出根据本发明的实施例的注释的扩缩。图11示出根据本发明的实施例的注释的一个例子。图12-16示出根据本发明的实施例的注释与显示文档的部分之间的关联。本发明涉及一种用于捕获和关联与一个不可更改文档相关的注释的系统和方法。尽管不是必须的,但是本发明将用例如程序模块这样的计算机可执行指令的一般情况来描述。通常,程序模块包括例行程序、程序、对象、脚本、组件、数据结构等等,其执行特定的任何或者采用特定抽象的数据类型。另外,本领域内的专业人员将认识到本发明可以用任何计算机系统结构来实现,包括但不限于分布式计算环境,其中任务可以由通过一个通信网络链接的远程处理设备所执行。在一个分布式计算环境中,程序模块可以位于本地和远程存储设备中。本发明还可以用个人计算机(PC)、手持设备、多处理器系统、基于微处理器或者可编程的消费电子产品、网络PC、小型计算机、大型主机等等来实现。图1A为可以实现本发明的一个计算环境的示意图。本发明可以在一个常规个人计算机200形式的通用计算设备中实现,包括处理单元210、系统存储器220以及把包括系统存储器在内的各种系统组件连接到处理单元210的系统总线230。系统总线230可以是任何类型的总线结构,包括存储总线或者存储控制器、外围总线和使用任何各种总线结构的本地总线。系统存储器包括只读存储器(ROM)240和随机存取存储器(RAM)250。一个基本输入/输出系统260(BIOS)被存储在ROM240中,其中包含例如在启动过程中有助于在个人计算机200内的元件之间传送信息的基本例程。个人计算机200进一步包括用于读写硬盘(未示出)的硬盘驱动器270、用于读写可移动磁盘290的磁盘驱动器280、以及用于读写例如CDROM或者其它光介质这样的可移动光盘292的光盘驱动器291。硬盘驱动器270、磁盘驱动器280、以及光盘驱动器291分别通过硬盘驱动器接口292、磁盘驱动器接口293、以及光盘驱动器接口294连接到系统总线230。驱动器以及它们相关的计算机可读介质提供对用于个人计算机200的计算机可读指令、数据结构、程序模块和提供数据的非易失存储。尽管在此所述的示例环境采用硬盘、可移动磁盘290和可移动光盘,但是本领域内的专业人员将认识到还可以在该示例的操作环境中采用其它类型的可存储由计算机存取的数据的计算机可读介质,例如盒式磁带、闪存卡、数字视频光盘、贝努利盒式磁带(Bernoullicartridge)、随机存取存储器(RAM)、只读存储器(ROM)等等。多个程序模块可以存储在硬盘、磁盘290、光盘292、ROM240或RAM250中,包括操作系统295、一个或多个应用程序296、其它程序模块297以及程序数据298。用户可以通过例如键盘201和指示设备202这样的输入设备把指令和信息输入到个人计算机200中。其它输入设备(未示出)可以包括话筒、游戏杆、游戏盘、盘状卫星天线、扫描仪等等。这些和其它输入设备通常通过一个连接到系统总线的串行接口206连接到处理单元210,但是还可以由其它接口连接,例如并行口、游戏端口或者通用串行总线(USB)。监视器207或者其它类型的显示设备也通过例如视频适配器208这样的一个接口连接到系统总线230。除了监视器之外,个人计算机一般还包括例如扩音器和打印机这样的其它外围输出设备(未示出)。个人计算机200可以工作在网络环境中,使用到例如远程计算机209这样的一个或多个远程计算机的逻辑连接。远程计算机209可以是另一个个人计算机、服务器、路由器、网络PC、对等设备或者其它公用的网络节点,并且一般包括许多或者所有上述与个人计算机200相关的单元,尽管在图1A中仅仅示出一个存储器存储设备211。在图1A中所示的逻辑连接包括局域网(LAN)212和广域网(WAN)213。这种联网环境在办公室、企业计算机网络、内部网和因特网中是平常的。当用于局域网网络环境中时,个人计算机200通过网络接口或者适配器214连接到本地网络212。当用于广域网网络环境中时,个人计算机200一般包括一个调制解调器215或者其它用于在例如因特网这样的广域网213上建立通信的装置。内置或外置的调制解调器215通过串行接口206连接到系统总线230。在一个网络环境中,所示与个人计算机200或其部分相关的程序模块可以被存储在远程存储器存储设备中。可以看出所示的网络连接是示例性的,并且可以使用其它用于在计算机之间建立通信链接的技术。假设存在任何各种众所周知的协议,例如TCP/IP、以太网、FTP、HTTP等等,并且该系统可以工作在客户机-服务器结构中,以允许用户从基于Web的服务器检索网页。任何各种常规的Web浏览器可以被用于在网页上显示和操纵数据。在一个实施例中,提供笔形数字转换器165和伴随着笔或输入笔166以便于数字地捕捉手写输入。尽管图中示出笔形数字转换器165和处理单元210之间的直接连接,但是实际上笔形数字转换器165可以通过本领域内所公知的串行口、并行口或者其它接口以及系统总线230连接到处理单元210。另外,尽管数字转换器165被示出为与监视器207相分离,但是最好数字转换器165的可用输入区域与监视器207的显示区域共同延展(co-extensive)。另外,数字转换器165可以集成在监视器207中,或者可以作为重叠或者附加到监视器207的一个分离设备而存在。除了与图1A相关描述的系统之外,本发明可以实现在手持计算机上。另外,专用(purpose-built)设备也可以支持本发明。简而言之,手持计算机和专用设备在结构上类似于图1A的系统,但是可能限于显示器(其可能是对人的手指或者输入笔的接触敏感)、存储器(包括RAM和ROM)、以及同步/调制解调端口,该端口用于把该手持计算机和专用设备连接到另一个计算机或者网络(包括因特网),以下载和/或上载文档,或者下载和/或上载注释。手持计算机和专用设备的描述是本领域内所公知的,并且为了简单起见在此省略。本发明可以使用C语言来实现。并且,也可以使用其它语言,包括C++、汇编语言等等。图1B示出根据本发明的各个方面可以使用的一个写字板(tablet)PC167。图1A的系统中的任何或者所有特点、子系统和功能可以包含在图1B的计算机中。写字板PC167包括一个大的显示表面168,例如数字化平板显示器,最好是液晶显示(LCD)屏幕,其上显示多个窗口169。使用输入笔170,用户可以在数字化显示区域上选择、强调显示和书写。适当的数字化显示面板的例子包括电磁笔数字转换器,例如Mutoh或者Wacom笔数字转换器(pendigitizer)。还可以使用例如光数字转换器这样的其它类型的笔数字转换器。写字板PC167转换使用输入笔170所作的标记,以操纵数据、输入文字以及执行常规的计算机应用程序任务,例如电子表格、文字处理程序等等。输入笔可以配有按键或者其它特征来增加其选择能力。在一个实施例中,输入笔可以作为“铅笔”或者“钢笔”而实现,其中一端构成书写部位,并且另一端构成一个“擦除器”(eraser)端,当移动经过显示器时,表示显示器的部分要被擦除。在另一个实施例中,该输入笔可能在一端或者在两端仅仅具有一个输写部分。可以使用例如鼠标、轨迹球等等这样的其它类型的输入设备。另外,用户自己的手指可以用于在触感或者接近感应(proximity-sensitive)显示器上选择或指示显示图象的部分。从而,如在此所用的术语“用户输入设备”具有较宽的定义,并且包含对已知输入设备的许多变型。区域171示出使得用户确定在输入笔接触数字转换器时该输入笔所在的位置的一个反馈区域或者接触区域。在另一个实施例中,当到达本发明的保持状态(holdstatus)时,区域171提供视觉反馈。图2示出根据本发明的实施例在一个计算机屏幕上的显示文档。最好,该文档以接近于电子图书的纸张等效外观的形式而显示,并且在这种情况下该电子图书是一本小说。文档阅读窗口101可以包括各个部分,包括列出该文档的标题的标题栏(titlebar)101,以及主体(body)102。在显示窗口的主体102中,文档的各个部分被显示。图2示出显示标题104、章节号105、章节题目106和章节的文字107的一个例子。类似于实际的书本,页边空白108、109、110和111出现在所显示文字的周围。如在此所引用的,所显示单元可以被独立地引用。例如,对象103“we”具有一个图形注释,由用户用在那里划一个方框圈住该单词。现有各种用于存储电子可显示信息的方案。在第一实施例中,墨迹或注释被存储在锚定位置处的文档内。或者,一个锚定链接被插入到或接近于与该墨迹相关的对象,以允许布局显现器(layoutrenderer)适当地显现该文档和附加的墨迹或注释。另外,该系统可以锚定到该文档中的一个文件位置。各种描述与作为一个锚定的文档位置的使用有关。应当知道其它实施例也可以被用于锚定墨迹或注释,包括文档本身的改变,以在锚定位置处包含该注释或者锚定链接。图3A和3B以及相关的附图描述锚定墨迹或者注释的文件位置的使用。确定的文件位置被用于对不可更改文档的直接随机访问,而无论该文档被压缩或解压缩。在一个实施例中,该文件位置在从原始的Unicode(一种已知的文本存储格式)推导的UTF-8(另一种已知的文本存储格式)中指定。但是,为了节省空间,不可更改文档可以使用通用的二进制压缩算法来压缩、解压缩并且转换为Unicode格式用于观看。相应地,为注释存储的文件位置在各种存储方案和压缩技术中是一致的。对于文档的存储,工业标准是UnicodeUCS-2。UnicodeUCS-2使用每个字符两个字节来编码文本。从标准英语字母到包括外国文字和符号的复杂符号都使用两个字节来编码。图3A示出作为存储在四对字节中的4字母单词的图形表示。另一种存储方案包括UTF-8格式,其中标准字母(例如,US-ASCII字符)被仅仅用于一个字节来编码。来自UnicodeUSC-2字符集的外国字符和符号使用两个或三个字节来编码。如图3B中所示,第一字节的部分被用于表示总共有多少字节确定整个字符。剩余的字节限于不会与用来确定单字节字符相混淆的数值。对于使用标准字母的大文本,UTF8-编码的文件可能具有Unicode编码的一半大小。但是,在多个外国字符或者符号的情况下,所存储文件的大小可能实际比Unicode格式更大,因为具有较大数目的字母或符号的3字节表示。其它可变字节长度的字符编码已经用于工业中,例如,使用一个或两个字节的Shift-JIS标准编码字符(从比Unicode的字符集更小的字符集得出)。与UTF-8不同,2字节(two-byte)字符的第二字节可能包含还被它本身用于表示单字节字符的一个数值。图4示出根据本发明的实施例用于以UTF8和Unicode格式存储字符的不同字节。对于图3A和3B讨论的两种方案的一个例子在图4中示出。单词“banana”在Unicode格式中需要12个字节来表示,而在UTF8中仅使用6个字节。单词“facade”在Unicode格式中需要12个字节来表示,并且在UTF8格式中需要8个字节。其它存储方案是本领域中已知的,但是为了简单起见没有在此示出。UTF8和Unicode之间的不同仅仅通过例子而示出,并且其意图是把本发明限于使用其中一种存储方案而不使用另外一种。在存储模式中的不同与在用于固定注释的文件位置的技术是相关的。如果文件位置用一种存储方案来确定,把该存储位置移植到另一种存储方案可能不会产生对于一个注释的相同所需文件位置。因此,所有注释可以根据单个方案的使用而固定到一个文件位置。最好,当文档被显示时用于保存文档的方案是用于确定文件位置的方案。从而,不管该文档是否被关闭并且压缩到另外一种方案,当在该显示方案中重新打开时,用于注释的文件位置保持与创建时相同。Unicode可以是用于显示文档的方案。另外,UTF8也可以被用作为任何其它文本编码或者压缩方案来访问该文档用于显示。图5示出根据本发明的实施例用于确定一个对象的文件位置的过程。在步骤501中,用户在屏幕上选择一个对象。该用户可以通过用鼠标、触摸板、轨迹球等等指示设备控制的光标来选择对象。另外,用户可以使用输入笔或手指,如果显示器的表面能够允许这种输入方式的话。在步骤502中,系统判断哪个对象所选择。该步骤与从显示设备到阅读窗口内部的坐标的物理坐标转换有关。从该转换中,由用户所选择的对象是已知的。步骤502A是可选的。它与该对象的动作后选择(actionpostselection)的用户选择有关。如果用户在对象的选择之后被提供一个菜单,并且添加注释的功能被提供在该菜单上,则步骤502A与添加注释功能的选择有关。添加注释的一个例子在1999年12月7日递交的名为“用于捕获和显现用于不可更改变电子内容的文字注释的方法和装置”的美国专利(BW03797.84618)中详细描述,该专利的内容被包含于此用于对任何基本主题事项的参考。步骤503与所选择对象的文件位置的确定有关。文件位置可以包括所选择对象的第一字节。另外,文件位置可以是所选择对象的最后字符(或者甚至是最后字符之后的字符)的第一字节。如果该对象跨过一个页面,则选择第一字符的第一字节以确定该文件位置具有在该对象的开始页面上显示任何注释而不是在下一页上显示该注释的优点。本领域内的任何专业人员将认识到所选择对象(或者围绕所选择对象)的任何字节可以被选择以提供该对象的文件位置。另外,人们可以选择该对象所在的一行、或者段落或者该页的部分(例如,该页的上部、中部或下部)。文件位置可以通过计数从一些已知文件位置到例如所选择对象的第一字节的位置之间的字节数而确定。已知的文件位置可以是文件的开头,或者例如可以是当前段落开头的上述文件位置。计数步骤可以在注释产生之前或之后执行。另外,计数步骤可以在由用户产生该注释的背景中执行。请注意,注释文件位置可以总是在文本中存储为UTF-8偏移量,当在二进制压缩前它所在位置。但是,该算法被用于用Unicode字符来显示文本作品。因此,在该例子中,需要从所选择对象推算回到一个已知UTF-8文件位置的字符。由于原始出版物(电子图书、文档等等)的二进制文件格式把标识(markup)(标签,tag)与文字相混杂,因此当为所选择对象(该注释将被锚定到)计算文件位置时需要排除由这种标签所占据的字节。但是,许多(如果不是大部分)这些标签不在显示屏幕上占据字符位置。因此,保持跟踪在显示器上的每一文本串的开始文件位置是重要的,其对应于在该文件中不间断的文本串。一个“不间断”的文本串是指在该文件中的不被开始或结束标签所中断的文本。因此,在精确确定用于把注释锚定在所选择对象的文件位置中涉及的步骤可以一般化为1)在我们的数据结构中查找哪个显示字符位置是在上文中所述的一个“不间断”文本串的开始。2)从相同的数据结构中获取与开始显示字符位置相关的文件位置。3)确定从文本串开始位置到选择开始位置之间的字符串。该字符串包含一些Unicode字符。4)确定有多少个UTF-8字节将需要来保持来自步骤3)的字符串的UTF-8编码版本。5)把来自步骤4的UTF-8字节计数加到来自步骤2的文件位置上。步骤504涉及与创建一个文件以保持该注释。尽管在步骤503之后示出,但是应当知道它可以在对象的文件位置确定之前或过程中出现。在步骤505中,文件位置被置于文件的开头(或者文件的部分),存储所产生的注释。另外,文件位置可以附加到被观看的文件上。图6示出根据本发明的实施例用于确定一个对象的文件位置的另一个过程。如步骤601中所示,用户导航到一个页面。一旦在该页面上,系统确定在该页面上的第一对象的第一字节的文件位置,如步骤602中所示。该文件位置可以在每次显示一个新的页面时确定。另外,系统可以在开始确定第一字符的文件位置之前暂停(例如,两秒),以允许用户在开始文件位置确定之前导航到一个新的页面。当用户快速翻页时,该延迟具有使系统工作负载最小化的优点。一旦用户停在一给定页,然后系统可以确定第一字节的文件位置。在步骤603中,该页面的文件位置被暂时存储在存储器中。在步骤604中,系统等待一个对象的选择或者导航到另一个页面。考虑不需要该文件位置来执行的更多选项(例如,在一个参考文档中查找一个术语,如在1999年12月7日递交的名为“用于安装和使用与阅读电子内容相结合的参考材料的方法和装置”的美国专利(BW03797.84619),其全部内容被包含于此以供参考)。在步骤605中,一旦一个对象被选择,参照在显示页面上的第一对象的第一字节确定所选择对象的相对位置。在步骤606中,在步骤602中确定的该页面上的第一对象的第一字节的文件位置被从存储器(在步骤603中存储)中检索并加上在步骤605确定的被选对象的第一字节的相对位置,以确定所选择对象的文件位置。在步骤607中,所选择对象的文件位置与所创建注释一同存储。与文件位置的确定相关的这些步骤可以在用于该对象的注释之前或之后发生。另外,该文件位置可以在该注释被创建的背景中执行。本领域内的专业人员将会知道任何种类的技术可以被用于确定对象位置,并且它仍然被认为是在本发明的范围之内。图7涉及当导航到该页面时用于显示所创建注释的过程。在步骤701中,用户导航到一个页面。在步骤702中,系统确定在该页面上的第一对象的文件位置。在步骤703中,系统确定在该页面上的最后对象的文件位置。在步骤704中,为该文档存储的注释被搜索以确定是否有任何注释的文件位置位于在步骤702中确定的文件位置与在步骤703确定的文件位置之间。在步骤705,如果没有带有文件位置的注释被定位用于显示在显示页上,则该系统等待用户输入(例如,包括导航到一个新的页面或者选择用于注释的一个对象,或者任何在此所述的其它行为)。在步骤706中,发现一个注释与在该页面上的一个对象相关。在该页面上的该对象的位置被确定,并且为该对象显示该注释。用于确定该对象的位置的系统可以包括从所注释对象的文件位置减去在该页面上的第一对象的文件位置。然后该差值被用于确定从该页面的第一字符后经过多少个字节才是所注释的对象。在这一点,其它注释可以通过从步骤706返回到步骤705而做出。另外,该系统可以在此从该文档的开始计数,以确定哪个对象被注释。本领域内的专业人员可以看出现在存在多种方法用于显示用于被注释对象的注释。上述例子不是限制性的。在显示被确定为存在于内容(在任何给定时间由用户所观看的文本单元)的给定“页面”中的注释的情况中,计算机系统将首先确认一个全局状态,其确定注释是否应当被显现。例如,用户被提供一种能力来全局地指定是否显示或隐藏画图注释(以及文本记录、书签、强调显示等等)。在显示一个对象的特定注释之前,计算机系统将检查该全局设制,以确定是否显现该特定的注释。如果用户选择隐藏该特定的注释,则该注释将不被显现。图8A和8B示出根据本发明的实施例用于存储注释的各种存储技术。图8A示出一个具有可更改部分(803-806)以及不可更改部分(802)的文档801。这种类型的文件包括本领域内所公知的信息文本文件(Infotextfile)格式。注释806可以与不可更改内容802相结合地存储。注释806可以存储在一个具有标头(header)803和主体(body)806的文件中。标头803例如包括与该注释806相关的对象的文件位置804。它还可以包括在文件位置805中的注释806的类型的指示。如上文所述,注释806可以包括强调显示、书签、重叠在该对象上的画图、或者文本注释。图8B示出作为与该注释文件相分离的分离文件的不可更改内容809。图8B的注释文件807具有与图8A的注释807相似的构成单元。注释文件807可以包括表示链接到哪一个不可更改文档(在此为809)的一个文件部分808。使用在图8B中提出的方法,一个文件可以存储用于一个用户的所有注释,并且不可更改内容部分809被分别存储。该方法具有这样的优点,即它能够一次快速扫描所有注释而不是访问所有文档801(包括不可更改部分802)以获得存储在其中的所有注释。图9示出用于存储、改变、搜索和重新命名存储在一个系统中的注释的显示窗口。该窗口900包括一个题目标识符90l,以提醒用户他或她正处于一个注释面板900中。窗口900可以包括两个面板902和903(或者按照需要可以添加其它面板)。面板902和903可以由文档提供一个注释904的列表。另外,它们可以在一个个人系统中提供一个所有注释的列表。当在面板902中(在此,标题为“记录”,Notes),用户可以按照类型(强调显示、画图、文本、书签)来排序注释的列表。选择一个注释使用户导航到在文档中包含该注释的位置。选择并保持该注释,允许用户把该特定注释删除、改变外观、隐藏或显示,或者重新命名该注释。第二面板903(在此,标题为“视图”,View)可以允许用户根据注释的属性来排序注释。例如,用户可以按照创建的时间、最后访问时间、按照类型、字母次序、以及按照书本次序来排序注释。另外,个人注释可以使用在该页面上的控制来开启或关闭。并且,如果所有注释已经被关闭(或者仅仅某种特定类型的注释被关闭),并且另一个注释被创建(或者该类型的另一个注释),则该类型的所有注释可以被重新开启。这可以扩展到包括开启所有被隐藏的注释,并且添加一个新的注释。注释的扩缩对于扩缩注释,图10示出在一个具有第一分辨率或尺寸的屏幕上的第一组注释,以及在一个具有第二分辨率或尺寸的屏幕上的该注释的扩缩版本。采用下面的例子。设P原始(x,y)是一个注释的数据点的原始位置。N(x,y)是新的屏幕分辨率。O(x,y)原始屏幕分辨率。对于每个点P新(x,y),对于每个x和y分量,扩缩数据点的新位置由新的屏幕分辨率与旧的屏幕分辨率的比值给出P新((P原始x·Nx/Ox),(P原始y·Ny/Oy))假设x和y分量是独立的。从而,可以容易地适应各种分辨率(例如,640×480和640×400)。另一个实施例包括把墨迹注释标准化为特定的格式。从而,当显示该墨迹注释时,本发明不需要使用捕捉的屏幕分辨率(因为由于该初始标准化过程,该分辨率实际上是已知的)。系统仅仅需要把所有检索的注释转换以适应当前屏幕分辨率(res)。其它的变形包括通过选择标准化分辨率使该处理过程最小化,以适应于最慢计算能力的平台。把墨迹注释与信息相关联尽管具有各种注释、文档重新排列(documentreflow)或者观看者更改(viewermodification),除了允许观看位于底层的文档之外,以及为了避免损失计算机的功能,这些墨迹任务可以与传统的计算机任务共存。特别地,为了用于电子文档,墨迹注释应当能够在下层文档的改变中得到保留(Sruvive)。在此保留(Survival)意味着继续传达墨迹笔画的图形含义,并且与被注释的单元相关联,即使这些单元被删除或改变。本发明包括用于分类、锚定和转换墨迹注释的一组方法,使得它们在被注释单元的改变中得到保留。例如参见图12,其中示出在保持对被注释主体的引用的文档重新排列之前或之后的注释。下文的描述和相关附图示出由于文档外观的更改如何变换墨迹和注释。文档可能由于文档内容的改变而改变外观,或者由于用户喜好的改变(例如,选择较大字体)但不对下层文档内容做出更改而改变外观。与两种改变相关的墨迹转换被认为是本发明的一部分。开始点笔画分类和多个独立的锚定墨迹注释包括图形思想(草图)、语言思想(手写单词)、以及标记(例如,下划线、强调显示、画圈)。每种都具有其自身的图形含义以及相关关系,即如果文档的布局不同其形状可能改变。例如,对于草图,要保持笔画(在X和Y方向上)之间的准确几何关系是重要的,并且要保持接近于行中单元(in-lineelement)但不挡住它们。对于手写单词,保持单词在一起并且保持顺序单词(在行和列中)之间的连续关系(flowrelationship)是重要的。对于在文本上标记,即使当该文本改变和移动时,要保持该标记的相关部分在位置和尺寸上与它所标记的文本之间的正确关系是重要的。为了在下层单元移动和改变时保持墨迹注释的含义和相关关系,该系统和方法识别哪个笔画以及哪组笔画需要这些处理。首先,笔画的形状和它所在的几何区域可以被用于把它分类为几种类型中的一种。接着,与对象的相邻关系可以被用于以各种方式锚定该笔画,作为进一步的分类。图13示出显示一些但不是所有墨迹笔画的分类的一个页面1.星号1302是具有图形含义(它不需要被该系统和方法所识别,仅仅保留即可)的形状。它位于页边上,其中除了被锚定到最近的行中单元之外,它还可以被认为主要与包含该单元的行相关。2.单词“Thisink’sovertext”1303是“一串笔画”,其中第一笔画主要与紧接着在其上方或下方的文本相关,并且其它笔画主要与第一笔画相关,以增加含义。为了保证第一笔画与正确的单词相关,该系统和方法可以使用另外的探试法,或者把锚定反馈给用户,并允许手动纠正。例如,该系统可以使用平均或加权平均来确定“一串笔画”的中心位置,并且把该中心与最接近的文本相关联。并且,该系统可以要求用户选择该注释所引用的文本。3.单词“underlyingdocument’slayout”由一对笔画1305所标记,第一笔画被认为标记单词的范围(因为它在与文字行相平行的方向上跨过该范围),并且第二笔画可以被认为与第一笔画相连,以添加含义。在另一个实施例中,系统可以根据创建第一和第二条线之间的时间间隔或者事件的存在把第二条线分类为与第一条线,或者与相同的文本相关。4.在左页边中的垂直线跨过在列的方向上的一定范围的单词,它被认为标记在该线1308右侧的文字行。5.单词的圈廓线(outline)1306以“handwritingandstetches”为开始,它被认为是一组线段,水平的线段标记单词,其它线段标记文字行。6.把该圈廓线连接到页边的记录1307的线1309是一个连接符(connector),其具有可以是完全独立的单元的两个主要锚定标志(每一端各一个)。7.页边记录1307本身是一串笔画,它主要与其第一笔画所在位置相关,但是还与最接近该第一笔画和长线的接近端的页边和文本相关。8.单词“Thisink’sin-linewithtext”1305具有作为注释的含义,但是由于它被插入到文本流中,因此它们被分类为该文本布局的部分,并且不受到锚定和变换。总的来说,该系统和方法具有5种基本类型的墨迹,仅仅其中的三种被分类为注释该系统和方法可以使用探试法来锚定被分类为注释的每个笔画。例如,首先,在笔画开始的窗口中的XY位置给出一个窗口锚定。接着,如果窗口的布局引擎(lagoutengine)提供关于下层区域和附近单元的附加及时信息,则无论何时一个锚定单元移动或改变时,该系统和方法可以创建用于探试法的附加锚定,以支持墨迹的重新布局。下文描述探试法的一个例子,但是应当知道可以使用其它探试法,并且被认为在本发明的范围内。1.在完成一个笔画时,该系统和方法检查它与相关的其它注释之间的接近程度。2.系统检查其形状,如果是线形的,则系统向布局引擎询问图形区域,以确定它是否符合三种线形分类中的任何一种-平行于一段相继单元,(例如在一行中的多个文本字符,其还可以包括行中墨迹和其它对象),垂直于这些段的序列(例如在一列中的多行),或者与一对不相继单元相关的连接线。在一个实施例中,其中使用简单的探试法,仅仅考虑高宽比,以及末端是否接近边界框的对角)。如果宽度比高度大一定的比例(例如,默认值为5倍),则边界框的左和右边缘的中点(midpoint)标记文本,它被分类为水平文本标记。如果最接近的文本在下方,则系统要求最接近上方的对象,并且根据距离的比例在它们之间选择。这倾向于把水平文本标记分类为下划线(而不是“上划线”,认为上划线不常见)。如果两端标记行中文字或墨迹,并且其高度比宽度大一定的比例(例如,默认值为7倍),则它被分类为标记一些行的垂直标记。否则,如果端部接近对角,它是一个连接线(可以连接两个行中单元或者把一个单元与页边相连接)。3.如果笔画不被分类为这些线形分类中的一种,则系统识别最接近笔画的XY中点的行中单元(包括不可见的行中单元,例如单词空格、制表符间隔和行间隔),以用作一个锚定。如果该中点和锚定单元水平相距超过一个阈值(例如,0.2英寸),则该系统把它标记为“侧页边”(Sidemargin)。如果它们在垂直方向上相距超过一个阈值,则系统把它标记为“顶部/下部页边”(top/bottommargin)。4.如果不在页边中,系统还记录锚定单元的尺寸,使得如果锚定单元被重新扩缩时,墨迹可以被重新扩缩。5.除了窗口、区域和单元锚定之外,系统还可以链接到任何附近的重叠单元(一般是墨迹笔画,但是可以是图像、形状和文本标签)。这是因为,如果这种重叠单元形成一个草图或者单词,则保持它们相互之间的相对位置比随着嵌入锚定一同流动(flow)更加重要。结果墨迹链(手写单词是一个例子)根据在该链中的第一笔画的位置和比例作为单元而移动和扩缩。例如,如果到附近墨迹笔画的距离低于一个阈值(例如,0.15英寸),则一个实施例把该笔画作为一个附加的锚定,并且把该当前的笔画标记为“附近墨迹”。6.在这一点,系统已经识别足够的嵌入锚定,并且足以分类该笔画,使得当系统注意到一个锚定改变时,该系统可以适当的变换该墨迹注释。响应各种锚定改变的各种笔画类别的变换当一个锚定移动时,该系统使用探试法来重新排列笔画。下文描述这些探试法的一个实施例,但是可以有许多变化。该描述假定西方文字(垂直列,从左到右流动)。对于东方文字来说,方向将翻转和/或旋转,并且双向文本流将从行到行之间反向和正向地回折。例子包括如下。1.如页面1401的图14中所示,锚定到在一个行中文本流中的单个位置并且不在页边上的墨迹1403随着紧接着在该锚定之前或之后的单元而重新定位(re-position)和重新扩缩(re-scale)。在此,尽管由于至少部分文字在字体尺寸上发生变化,两页之间的文字重新排列,在页面1401上的圈廓线1403作为在页面1402中的1404继续圈住文本“in-line”。2.如图15中所示原来锚定是一个“侧页边”的墨迹1503被在相同的页边中重新定位,以保持在该包含其锚定的文本行旁边,如果页边独立于锚定尺寸缩小,则该墨迹水平方向剪短或收缩(这避免了挡住文本或者被在页边缘处剪切)。在此,墨迹1503被锚定到延着叶面1501上文本侧的页边。当文本被重新排列时,墨迹1503跟随它锚定的文本,并且被根据页边宽度而调节并且显现为1504。3.原来锚定是“顶部/底部页边”(例如,星号1302)的墨迹仅仅被垂直地重新定位,以保持与包含其锚定的行之间的距离。如果页边缩小的话,它可以可能被在窗口边缘垂直地剪切。文档重新布局可能把一个顶部或底部页边注释移到下一个或前一个页面,在此它将在相同的页边上示出。在用户需要能够移动一个注释而不改变其锚定的情况下,编辑操作可能造成多个注释占据相同的页边。4.连接到文本中的两个点的一条线随着锚定之间距离的改变,它可能必须扩缩和/或旋转和/或在X和/或Y方向上翻转。5.如图16中所示,把一个行中单元连接到在页面1601上的页边记录1603的一条线1606可能类似地随着其锚定之间距离的改变必须扩缩和/或旋转和/或在X和/或Y方向上翻转。参照上述小节1和图14,行中端部随着其锚定而重新定位。并且,参照上述小节2或3以及图15,页边端部随着其锚定的行垂直地重新定位。这导致行1607连接到页面1602上的一个页边记录1604。6.标记行中单元的范围的一条线或线段应当随着其锚定之间距离的改变而水平地变大或变小。参见具有页面1201和双下划线1202的图12。当重新布局使得其中一个锚定通过一行的端部折行(Wrap),则标记1202被复制为两条线(作为1204和1205),示出为在开始锚定(例如,单词“underlying”)与第一行的末端之间的一条线1204,加上在下一行开始到末端锚定(例如,单词“layout).”)之间的一条线1205。当添加附加的线分割符(linebreak)时,附加的水平线被示出为跨过中间线(in-betweenlines)。这些线被归组以作为一个整体选择。因此,按照需要单个下划线被分为两个、三个或多个下划线,以变换该注释。另外,该变换可以反过来为了重新排列把多条线转换为一条线。7.属于上述笔画分类中的任何一种并且接近于现有的墨迹的一个笔画被重新用其附近的墨迹来定位,并且随着它扩缩(除非新的墨迹是一条连接线,在这种情况下它延伸以保持在其末端的相关关系)。它与附近的墨迹相关,使得单词、行中流(in-line-flows)和草图在一起,从而保留它们的图形含义。数据格式、显现和保持为了使墨迹注释在多个系统和应用程序中可用,需要一种通用的方法来保持墨迹和相关的锚定信息。保持格式可以携带分类和锚定信息,使得变换可以继续传递该相关关系而不失去图形含义。注释和墨迹包括作为保持信息的一个来源(source)、一个或多个链接以及一个或多个目标。墨迹注释还可以包括属于每个来源的信息,包括具有创建信息(应用程序、用户和时间)的一个或多个墨迹笔画,加上可选式样(style)信息(例如,12pt(点)、粗体、红色)以及可选含义信息(例如,草图、单词、段落仿真类型和/或文档类型)。对于一个墨迹注释,每个链接可以包括对多个独立锚定的引用,其中一些可以是其它注释的来源。每个墨迹注释来源可以包括1)每个墨迹笔画的信息A)该笔画的第一采样对于第一笔画的第一采样的XY位置2)每个墨迹采样的信息B)采样对于该笔画的第一采样的XY位置每个墨迹注释来源还可以包括1)每个笔画的可选数据A)用于笔画开始的时间戳印B)采样率C)平均压力D)平均斜度2)每个采样的可选数据A)用于采样的时间戳印B)压力C)斜度D)贝塞尔曲线控制(BezierControl)每个墨迹注释链接包括1)每个墨迹注释的信息A)第一笔画的第一采样对于初始锚定的XY位置B)当注释时该锚定的比例每个墨迹注释链接还可以包括1)每个注释的可选锚定信息A)对于任何形状页边标志(用于统一方向的文本流),和/或附近的墨迹锚定B)对于连接符连接符类型加上用于第二端的锚定信息,加上可选页边标志C)对于范围范围类型标志加上用于第二端的锚定信息,加上可选段标志来自布局引擎(LayoutEngine)的支持布局引擎是领域内所公知的。一种众所周知的布局引擎是用在Trident中,用于微软公司的InternetExplorer浏览器的布局引擎。其它布局引擎也是本领域所公知的。该布局引擎确定对象和区域的位置。因此,它可以识别哪个对象是最近的墨迹笔画,以及它落在哪个区域中,并且提供这种用于包含在注释链接中的信息。具体来说,最近的行中对象的位置以及到该对象的距离将决定该注释的流(flow)是否为行中、垂直(侧页边)或者无(顶部/底部页边)。另外,布局引擎还可以在任何锚定出现、移动或者外观改变时给出通知,使得墨迹注释可以正确地变换。在上述说明中,本发明已经参照特定的实例性的实施例进行了描述。尽管本发明已经根据各种实施例进行描述,但是本领域内的普通技术人员将认识到可以在所附权利要求中提出的本发明的范围做出本发明的各种改变、实施例或者变形。所有这些都被认为在本发明的圈子、精神和范围内。因此,说明书和附图被认为是说明性的而不是限制性的。因此,本发明仅受到所附权利要求书的限制。权利要求1.一种用于把电子墨迹添加到具有显示器的一个系统上的所显示信息中的计算机实现方法,所述方法包括如下步骤对所述电子墨迹分类;把所述电子墨迹与所述显示信息的至少一个对象相关联。2.根据权利要求1所述的方法,其中所述分类步骤把所述电子墨迹分类为嵌入墨迹(embeddedink)和重叠墨迹(overlaidink)中的一种。3.根据权利要求1所述的方法,其中所述分类步骤包括确定它到其它注释之间的距离的步骤。4.根据权利要求1所述的方法,其中所述分类步骤包括确定它的高宽比的步骤。5.根据权利要求1所述的方法,其中所述相关联步骤进一步包括如下步骤通过添加一个指向所述显示信息的链接,把所述电子墨迹锚定到至少一个对象。6.根据权利要求1所述的方法,其中所述相关联步骤进一步包括如下步骤把所述电子墨迹锚定到所述至少一个对象的一个文件位置。7.根据权利要求1所述的方法,其中所述相关联步骤进一步包括如下步骤通过在指向电子墨迹的所述对象处或附近添加一个链接,把所述电子墨迹锚定到至少一个对象。8.根据权利要求1所述的方法,其中所述电子墨迹与所述至少一个对象之间的关系被保持,不管一个布局引擎对所述显示信息的重新排列。9.根据权利要求1所述的方法,其中所述分类步骤把所述墨迹分类为行中字词(in-linewords)。10.根据权利要求1所述的方法,其中所述分类步骤把所述墨迹分类为文本标记(textmarks)。11.根据权利要求1所述的方法,其中所述分类步骤把所述墨迹分类为行中段落和草图(in-lineparagraphsandsketches)。12.根据权利要求1所述的方法,其中所述分类步骤把所述墨迹分类为页边记录(marginnotes)。13.根据权利要求1所述的方法,其中所述分类步骤把所述墨迹分类为一个连接符(connector)。14.一种存储有一个程序的计算机可读介质,所述程序实现用于把电子墨迹添加到具有显示器的一个系统上的所显示信息中的计算机实现方法,所述程序包括如下步骤对所述电子墨迹分类;把所述电子墨迹与所述显示信息的至少一个对象相关联。15.根据权利要求14所述的计算机可读介质,其中所述分类步骤把所述电子墨迹分类为嵌入墨迹和重叠墨迹中的一种。16.根据权利要求14所述的计算机可读介质,其中所述分类步骤包括确定它到其它注释之间的距离的步骤。17.根据权利要求14所述的计算机可读介质,其中所述分类步骤包括确定它的高宽比的步骤。18.根据权利要求14所述的计算机可读介质,其中所述相关联步骤进一步包括如下步骤通过添加一个指向所述显示信息的链接,把所述电子墨迹锚定到至少一个对象。19.根据权利要求14所述的计算机可读介质,其中所述相关联步骤进一步包括如下步骤把所述电子墨迹锚定到所述至少一个对象的一个文件位置。20.根据权利要求14所述的计算机可读介质,其中所述相关联步骤进一步包括如下步骤通过在指向电子墨迹的所述对象处或附近添加一个链接,把所述电子墨迹锚定到至少一个对象。21.根据权利要求14所述的计算机可读介质,其中所述电子墨迹与所述至少一个对象之间的关系被保持,不管一个布局引擎对所述显示信息的重新排列。22.根据权利要求14所述的计算机可读介质,其中所述分类步骤把所述墨迹分类为行中字词。23.根据权利要求14所述的计算机可读介质,其中所述分类步骤把所述墨迹分类为文本标记。24.根据权利要求14所述的计算机可读介质,其中所述分类步骤把所述墨迹分类为行中段落和草图。25.根据权利要求14所述的计算机可读介质,其中所述分类步骤把所述墨迹分类为页边记录。26.根据权利要求14所述的计算机可读介质,其中所述分类步骤把所述墨迹分类为一个连接符。27.一种用于把电子墨迹与具有对象的内容相关联的系统,其中包括接收数字转换器的输出的一个输入设备;连接到所述输入设备的一个处理系统;连接到所述处理器的一个存储器,所述存储器存储所述内容;以及连接到所述处理器的一个输出设备,其中,所述处理器对与从所述输入设备接收的信号有关的电子墨迹进行分类,所述处理器把所述电子墨迹与所述内容相关联,所述处理器转换所述电子墨迹,并且所述处理器把所述转换的电子墨迹输出到所述输出设备。28.根据权利要求27所述的系统,其中所述处理器把所述电子墨迹分类为嵌入墨迹和重叠墨迹中的一种。全文摘要在此公开了用于分类、锚定和变换墨迹的方法。墨迹画图和墨迹注释被捕获并且与附加信息一同存储,这使得多种所述方法可以把该墨迹与一个或多个显示单元相关联。在显示文档的重新格式化或重新排列过程中,墨迹可以被按照初始意图正确地显示。文档编号G06F17/21GK1330332SQ0112194公开日2002年1月9日申请日期2001年6月21日优先权日2000年6月21日发明者勒罗伊·B·基利,苏姗·卡赞帝,丹·阿尔特曼,查尔顿·E·路易申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1