Nothing Special   »   [go: up one dir, main page]

CN107209756B - 在标记语言文档中支持数字墨水 - Google Patents

在标记语言文档中支持数字墨水 Download PDF

Info

Publication number
CN107209756B
CN107209756B CN201680009701.9A CN201680009701A CN107209756B CN 107209756 B CN107209756 B CN 107209756B CN 201680009701 A CN201680009701 A CN 201680009701A CN 107209756 B CN107209756 B CN 107209756B
Authority
CN
China
Prior art keywords
digital ink
markup language
language document
additional
user input
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.)
Active
Application number
CN201680009701.9A
Other languages
English (en)
Other versions
CN107209756A (zh
Inventor
苏飞
E.C.布朗
涂霄
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107209756A publication Critical patent/CN107209756A/zh
Application granted granted Critical
Publication of CN107209756B publication Critical patent/CN107209756B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/171Editing, e.g. inserting or deleting by use of digital ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03545Pens or stylus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • 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/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

计算设备上的应用包括支持在标记语言文档中输入和输出数字墨水的数字墨水系统。数字墨水指的是可以被显示在输出设备上的在输入设备上的物体(例如笔或手指)笔划的数字表示。标记语言文档例如可以包括可以在其中输入数字墨水以及可选地其他数据的编辑框。随着输入物体在输入设备之上移动,标识出输入物体的位置的数据被捕获并且被嵌入在文档的标记语言元素中。所述数字墨水系统还允许显示包括数字墨水的文档,其中数字墨水系统将数字墨水连同包括在文档中的任何其他数据一起显示。

Description

在标记语言文档中支持数字墨水
背景技术
随着计算技术的进步,许多不同类型的计算设备变得可用,比如膝上型计算机、平板计算机、智能电话等等。这些设备当中的一些接受输入,从而允许用户例如通过使用笔或手指写字而在设备上进行书写或绘画。虽然许多用户喜欢在设备上进行书写或绘画的能力,但是允许这样的输入并不是没有其问题。这方面的一个问题是可能难以把通过这样的输入所提供的数据合并到正由用户编辑或创建的文档中,从而导致用户对于其设备感到挫折。
发明内容
提供本发明内容是为了以简化形式介绍将在后面的具体实施方式部分中进一步描述的概念的选择。本发明内容不意图标识出所要求保护的主题内容的关键特征或必要特征,也不意图被用来限制所要求保护的主题内容的范围。
根据一个或多个方面,由应用接收针对标记语言文档的数字墨水用户输入。生成包括描述数字墨水用户输入的数据的数字墨水标记语言元素,并且把数字墨水标记语言元素嵌入在标记语言文档中。标记语言文档还在一个或多个附加元素中包括附加数据,所述附加数据描述在显示标记语言文档时将显示的附加内容。带有数字墨水标记语言元素的标记语言文档被传送到存储设备。
根据一个或多个方面,对存储设备进行访问以获得标记语言文档,所述标记语言文档包括数字墨水标记语言元素以及包括附加数据的一个或多个附加元素。从数字墨水标记语言元素中提取出描述标记语言文档的数字墨水的数据,并且从所述一个或多个附加元素中提取出描述标记语言文档的附加内容的附加数据。所述数字墨水以及附加内容作为标记语言文档的视觉表示进行显示。
附图说明
将参照附图来描述具体实施方式。在图中,附图标记的(多位)最左侧数字标识该附图标记首次出现在其中的图。在具体实施方式和图中的不同实例中对于相同的附图标记的使用可以指示类似的或完全相同的项目。在图中表示的实体可以指示一个或多个实体,因此在讨论中可以互换地指代所述实体的单数或复数形式。
图1图示出了根据一个或多个实施例的实施在标记语言文档中支持数字墨水的示例性系统。
图2图示出了根据一个或多个实施例的数字墨水的示例。
图3图示出了根据一个或多个实施例的数字墨水和附加数据输入的示例。
图4是图示出了根据一个或多个实施例的用于把数字墨水添加到标记语言文档中的示例性过程的流程图。
图5图示出了根据一个或多个实施例的显示包括嵌入的数字墨水的文档的示例。
图6是图示出了根据一个或多个实施例的用于显示带有嵌入的数字墨水的标记语言文档的示例性过程的流程图。
图7图示出了包括示例性计算设备的示例性系统,所述示例性计算设备代表可以实施本文所描述的各种技术的一个或多个系统和/或设备。
具体实施方式
本文中讨论了在标记语言文档中支持数字墨水。数字墨水指的是可以在输出设备上显示的在输入设备上的物体(例如笔或手指)笔划(stroke)的数字表示。数字墨水类似于通过传统的笔或铅笔创建的笔划,但是所述笔划被显示在输出设备上,而不是墨水或石墨被沉积在纸张或某种其他书写表面上。当被显示时,数字墨水也被称作数字墨水笔划。
计算设备上的应用包括支持在标记语言文档中输入和输出数字墨水的数字墨水系统。标记语言文档例如可以包括可以在其中输入数字墨水以及可选地其他数据的编辑框。随着输入物体(例如笔或手指)在输入设备之上移动,标识输入物体的位置的数据被捕获并且被嵌入在文档的标记语言元素中。所述数字墨水系统还允许显示包括数字墨水的文档,所述数字墨水系统将数字墨水连同包括在文档中的任何其他数据一起显示。所述计算设备还支持数字墨水的剪切和粘贴,从而允许把包括在一个文档中的数字墨水拷贝并且粘贴到另一个文档。
通过把数字墨水包括为文档的标记语言元素,数字墨水被嵌入在标记语言文档中。数字墨水在标记语言文档中的这一嵌入允许把数字墨水存储为与包括在文档中的任何其他数据相同的文档的一部分,而不是创建单独的文件来存储数字墨水。这就允许把针对文档的数据包括在单一文件中,从而通过减少跟踪哪些文件与哪些其他文件相关联以便生成文档的需要,来降低计算设备和文件系统的复杂度。单一文件的使用还减少了带宽需求,这是因为不需要保持针对多个文件的附加文件开销,从而减少了存储设备上的存储空间,减少了在通过网络在设备之间传输文档时所使用的带宽等等。
此外,数字墨水在标记语言文档中的这一嵌入允许数字墨水被涉及在文档回流(reflow)或布局中。类似于文档中的其他内容,数字墨水可以被定位在显示器上的各个位置处。与把数字墨水作为覆盖物来对待形成对照的是,可以基于所显示的其他文档内容的位置来确定所显示的数字墨水的位置,并且可以基于数字墨水的位置来确定其他所显示的文档内容的位置。
图1图示出了根据一个或多个实施例的实施在标记语言文档中支持数字墨水的示例性系统100。系统100包括可以通过网络106与一项或多项(m)服务104进行通信的计算设备102。网络106可以是多种不同的网络,其中包括因特网、局域网(LAN)、电话网(例如公共电话、蜂窝、卫星等等)、内联网、其他公共和/或专有网络、其组合等等。
计算设备102可以是多种不同类型的设备当中的任一种,比如台式计算机、服务器计算机、膝上型或上网本计算机、移动设备(例如平板或平板手机设备、蜂窝或其他无线电话(例如智能电话)、笔记本计算机、移动站)、可穿戴设备(例如眼镜、手表)、娱乐设备(例如娱乐电器、可通信地耦合到显示设备的机顶盒、游戏控制台)、电视或其他显示设备、汽车计算机等等。因此,计算设备102的范围可以从具有大量存储器和处理器资源的全资源设备(例如个人计算机、游戏控制台)到具有有限的存储器和/或处理资源的低资源设备(例如传统的机顶盒、手持式游戏控制台)。
每一项服务104(1)、……、104(m)由多种不同类型的设备当中的一个或多个设备实施,其范围从具有大量存储器和处理器资源的全资源设备到具有有限的存储器和/或处理资源的低资源设备,这类似于计算设备102。每一项服务104(1)、……、104(m)保持由计算设备102获得和/或保存的文档,正如后面更加详细地讨论的那样。
计算设备102包括操作系统112、应用114和存储设备116。操作系统112包括用户输入模块118、输出模块120以及具有数字墨水支持的拷贝和粘贴系统122。拷贝和粘贴系统122允许把包括数字墨水的数据从一个应用或文档拷贝到另一个应用或文档,正如后面更加详细地讨论的那样。
用户输入模块118从计算设备102的用户接收用户输入。可以通过多种不同的方式提供用户输入,比如通过按下设备102的小键盘或键盘的一个或多个按键,按下设备102的控制器(例如遥控设备、鼠标、跟踪板等等)的一个或多个按键,按下设备102的触摸板或触摸屏的特定部分,在设备102的触摸板或触摸屏上做出特定手势(例如用手指、笔或其他物体),和/或在设备102的控制器(例如遥控设备、鼠标、跟踪板等等)上做出特定手势(例如用手指、笔或其他物体)。还可以通过针对设备102的其他物理反馈来提供用户输入,比如敲击设备102的任何部分,可以由设备102的运动检测或其他组件辨识出的动作(比如摇动设备102、旋转设备102、弯曲或折曲设备102等等)等等。还可以通过其他方式提供用户输入,比如通过针对麦克风的语音或其他可听输入,通过由图像捕获设备观察到的手或其他身体部位的运动等等。
用户输入模块118可以通过前面所讨论的可以据以接收用户输入的任何方式从用户接收数字墨水用户输入。举例来说,可以通过用户跨触摸屏、触摸板等移动物体(例如手指或触笔)而提供数字墨水用户输入。作为另一个示例,可以通过用户移动鼠标或其他光标控制设备而提供数字墨水用户输入。作为再一个示例,可以通过用户移动笔、触笔或其他设备而提供数字墨水用户输入,其中所述笔、触笔或其他设备感测其自身的位置或随着时间的移动并且向用户输入模块118提供关于这样的位置或移动的指示。
输出模块120生成、管理和/或输出内容,以供显示、回放和/或其他呈现。该内容可以由输出模块120创建或者从计算设备100的其他模块或应用(比如应用114)获得。该内容例如可以是用户界面(UI)的显示或回放部分。所述内容可以由计算设备100的组件(例如扬声器、交互式显示设备等等)显示或通过其他方式回放。可替换地,输出模块120可以生成一个或多个信号,所述信号被输出到与计算设备100分开的其他设备或组件(例如扬声器、显示设备等等)。
应用114是显示或通过其他方式呈现存储在文档中的数据的应用或程序。在一个或多个实施例中,应用114是经由网络106从各种服务104获得文档的Web浏览器。虽然在图1中图示出了单一应用,但是应当提到的是,计算设备102可以包括类似于应用114的任意数目的应用。应用114可以被实施成由操作系统112运行的单独应用,或者可以可替换地被实施成操作系统112的至少一部分。文档指的是存储可以由计算设备102显示或通过其他方式呈现的各种类型的电子内容的文件或其他类型的数据结构。文档典型地是用标记语言编写的,比如可扩展标记语言(XML)或超文本标记语言(HTML)。文档还可以包括用其他语言编写的内容,所述其他语言比如是JavaScript、级联样式表(CSS)等等。
在一个或多个实施例中,应用114从计算设备102本地的源(比如存储设备116)获得文档。附加地或可替换地,应用114可以经由网络106从各种服务104从文档获得文档。应用114还可以可选地生成被本地存储在计算设备102处(例如存储在存储设备116中)和/或被远程存储(例如存储在服务104处)的文档。
应用114包括支持在文档中使用数字墨水的数字墨水系统124。数字墨水系统124包括管理在文档中嵌入数字墨水的数字墨水嵌入模块126,以及管理嵌入在文档中的数字墨水的显示的数字墨水显示模块128。
图2图示出了根据一个或多个实施例的数字墨水的一个示例。图2图示出了包括编辑框202的示例性显示器200,可以由用户在编辑框202中输入数字墨水以及可选地附加数据。在图2的所图示的示例中,字母“h”已作为数字墨水被输入在编辑框202中,并且作为字母“h”的数字墨水笔划被显示在编辑框202中。收集表示数字墨水的数据,比如随着物体(例如笔或手指)在输入设备上移动的物体位置,这些位置被图示成沿着字母“h”的圆圈。举例来说,圆圈204是字母“h”起始处的位置,圆圈206是字母“h”的结尾处的位置,圆圈208和210(以及所图示出的附加线圈)是沿着创建字母“h”的笔划的位置。
表I图示出了根据一个或多个实施例的标识出沿着创建字母“h”的笔划的位置的数据的示例。
表I
Figure DEST_PATH_IMAGE002
表I包括标识出在绘制字母“h”时的特定时间处的笔划的在屏幕上(或编辑框202内)的位置的一系列坐标,其被图示成“trace(追踪)”元素。在一个或多个实施例中,所述坐标是笛卡尔坐标系中的坐标,但是也可以可替换地使用其他坐标系。可以按照规则或不规则的间隔捕获坐标。这些位置也被称作描述数字墨水的数据。
回到图1,在一个或多个实施例中,描述数字墨水的数据遵循“墨水标记语言(InkML)”W3C推荐(2011年9月20日)。但是应当提到的是,遵循InkML W3C推荐的数据是一个示例,并且在可替换的实施例中,所述数据不遵循InkML W3C推荐(例如所述数据可以遵循其他公共或专有标准)。
对于所接收到的数字墨水用户输入,数字墨水嵌入模块126生成数字墨水标记语言元素,该数字墨水标记语言元素包括描述数字墨水用户输入的数据。描述数字墨水用户输入的数据包括沿着数字墨水用户输入的笔划的位置,正如前面所讨论的那样。描述数字墨水用户输入的数据还可以包括各种附加信息,比如标识输入源(例如笔或手指)的数据,标识出指示所绘制的线条的宽度或其他特性的画笔设定的数据,标识数字墨水的语义含义的数据(例如由应用114或操作系统112基于数字墨水用户输入辨识出的字符或词语),标识出输入数字墨水的用户的数据(例如在接收到数字墨水用户输入时登录到计算设备102中的用户),数字墨水笔划的时间戳(例如允许随后按照与接收到数字墨水用户输入相同的定时或速率来显示数字墨水)等等。该附加信息可以由应用114或操作系统112自动确定,可以通过用户选择输入等等。
在一个或多个实施例中,“ink(墨水)”标签被定义并且用来标识出文档中的数字墨水标记语言元素。表II图示出了带有嵌入的数字墨水的标记语言文档的一个示例。
表II
Figure DEST_PATH_IMAGE004
表II包括使用“ink”标签规定的在第11行-第17行处的数字墨水标记语言元素。所述数字墨水标记语言元素开始于在第11行处的“<ink>”,并且结束于在第17行处的“</ink>”。“trace”元素(在第12行-第16行处)在所述数字墨水标记语言元素内,所述“trace”元素包括标识出在绘制字母“h”时的特定时间处的笔划的在屏幕上(或编辑框内)的位置的一系列坐标,正如前面所讨论的那样。
表II中的示例包括“trace”元素,所述“trace”元素包括一系列坐标。还可以把包括标识出各种附加信息的数据的一个或多个附加元素包括在数字墨水标记语言元素内。举例来说,包括标识出输入源的数据的元素可以被包括在数字墨水标记语言元素中,包括标识出指示所绘制的线条的宽度或其他特性的画笔设定的数据的元素可以被包括在数字墨水标记语言元素中,包括标识出数字墨水的语义含义的数据的元素可以被包括在数字墨水标记语言元素中,包括标识出输入数字墨水的用户的数据的元素,包括数字墨水笔划的时间戳(例如针对多个字符当中的每一个字符的开始的时间戳,针对沿着墨水笔划的每一个位置的时间戳(例如针对如表I中所图示的所捕获的每一个坐标集合,指示该坐标集合被捕获或标识的时间的时间戳))的元素,等等。
在一个或多个实施例中,描述除了数字墨水之外的其他附加类型的内容的各种附加数据可以被包括在文档中,比如文本、音频、视频等等。该附加数据可以被包括在文档的一个或多个附加元素中。
图3图示出了根据一个或多个实施例的数字墨水和附加数据输入的示例。图3图示出了包括编辑框302的示例性显示器300,可以在编辑框302中输入数字墨水和附加数据。在图3的所图示的示例中,字母“h”已作为数字墨水被输入在编辑框302中,并且短语“is forhello”已作为文本输入被输入在编辑框302中。文本输入可以通过多种方式被输入,比如使用键盘。类似于前面关于图2的讨论,表示数字墨水的数据被收集,并且包括在文档的数字墨水标记语言元素中。表示文本输入的数据也被收集,并且包括在文档的附加标记语言元素中。
表III图示出了带有嵌入的数字墨水以及附加数据的标记语言文档的示例。
表III
Figure DEST_PATH_IMAGE006
表III包括使用“ink”标签规定的在第11行-第17行处的数字墨水标记语言元素。所述数字墨水标记语言元素开始于在第11行处的“<ink>”,并且结束于在第17行处的“</ink>”。“trace”元素(在第12行-在16行处)在所述数字墨水标记语言内,所述“trace”元素包括标识出在绘制字母“h”时的特定时间处的笔划的在屏幕上(或编辑框内)的位置的一系列坐标,正如前面所讨论的那样。表III还在第18行处包括描述将要显示的附加内容(文本“is for hello”)的数据。描述附加内容的数据是也包括数字墨水标记语言元素的附加元素(段落元素)。
图4是图示出根据一个或多个实施例的用于把数字墨水添加到标记语言文档的示例性过程400的流程图。过程400由比如图1的数字墨水系统124之类的数字墨水系统实施,并且可以通过软件、固件、硬件或其组合来实施。过程400被图示出为一个动作集合,并且不限于为了实施各种动作的操作而示出的顺序。过程400是用于把数字墨水添加到标记语言文档的示例性过程;本文中参照不同图包括了关于把数字墨水添加到标记语言文档的附加讨论。
在过程402中,接收针对标记语言文档的数字墨水用户输入(动作402)。数字墨水用户输入是由用户输入的数字墨水(例如,如前面所讨论的那样通过在触摸屏、触摸板或其他输入设备上移动物体,移动鼠标或其他光标控制设备等等)。数字墨水用户输入是将被包括在标记语言文档中的数字墨水。
生成包括描述数字墨水用户输入的数据的数字墨水标记语言元素(动作404)。该数字墨水标记语言元素例如可以是如前面所讨论的“ink”元素。可替换地,在已经生成用于标记语言文档的数字墨水标记语言元素的情况下,则不需要重复动作404(例如可以把描述数字墨水用户输入的数据添加到先前生成的数字墨水标记语言元素)。
将数字墨水嵌入在标记语言文档中(406)。通过把在动作404中生成的数字墨水标记语言元素添加到标记语言文档,而把数字墨水嵌入在标记语言文档中。可替换地,如果由于数字墨水标记语言元素已经存在而没有在动作404中生成数字墨水标记语言元素,则通过把描述数字墨水用户输入的数据添加到先前生成的数字墨水标记语言元素,而把数字墨水嵌入在标记语言文档中。
标记语言文档被传送到存储设备(动作408)。所述存储设备可以是本地存储设备(例如被包括为包括实施过程400的数字墨水系统的相同计算设备的一部分)或远程存储设备(例如通过网络访问)。
回到图1,数字墨水显示模块128管理嵌入在文档中的数字墨水的显示。数字墨水显示模块128从标记语言文档中提取出描述将要显示的内容的各种数据,并且经由输出模块120显示所述内容。数字墨水显示模块128理解在文档中使用的不同标记语言元素,并且从这些元素中提取出数据。举例来说,数字墨水显示模块提取出描述前面的表II或表III的数字墨水标记语言元素中的数字墨水的数据,并且绘制出包括在数字墨水标记语言元素中指示的位置的数字墨水笔划。作为另一个示例,数字墨水显示模块提取出描述在表III的第18行处的文本的数据,并且显示所提取出的该文本。如果数字墨水笔划的时间戳被包括在文档中,则数字墨水显示模块可选地按照与接收到数字墨水用户输入相同的定时或速率来显示数字墨水。例如,如果在五秒的时间段内接收到数字墨水用户输入,则在五秒的时间段内显示数字墨水,就如同数字墨水在显示时正被输入一样。
图5图示出了根据一个或多个实施例的显示包括嵌入的数字墨水的文档的示例。图5图示出了其中显示数字墨水和附加数据的示例性显示器500。图5图示出了显示前面的表III的文档的一个示例。如图所示,文本内容“Example of InkML embedded in an HTML5file (嵌入在HTML5文件中的InkML的示例)”被显示为header(标题),作为字母“h”的数字墨水内容被显示,并且作为文本“is for hello”的附加内容也被显示。
图6是图示出了根据一个或多个实施例的用于显示带有嵌入的数字墨水的标记语言文档的示例性过程600的流程图。过程600由比如图1的数字墨水系统124之类的数字墨水系统实施,并且可以通过软件、固件、硬件或其组合来实施。过程600被示出为一个动作集合,并且不限于为了实施各种动作的操作而示出的顺序。过程600是用于显示带有嵌入的数字墨水的标记语言文档的示例性过程;本文中参照不同图包括了关于显示带有嵌入的数字墨水的标记语言文档的附加讨论。
在过程600中,对存储设备进行访问以便获得标记语言文档(动作602)。所述存储设备可以是本地存储设备(例如被包括为包括实施过程600的数字墨水系统的相同计算设备的一部分)或远程存储设备(例如通过网络访问)。
从标记语言文档中提取出描述嵌入在标记语言文档中的数字墨水的数据(动作604)。通过标识出包括所述数据的数字墨水标记语言元素并且将所标识出的数据提供给用于显示数字墨水的输出模块,来提取描述数字墨水的数据。
还从标记语言文档中提取出描述包括在标记语言文档中的附加内容的数据(动作606)。通过标识出包括附加数据的标记语言元素并且把附加数据提供给用于显示或者另外地呈现(例如可听地回放)附加内容的输出模块,来提取描述附加内容的数据。
显示数字墨水和附加内容二者(动作608)。可替换地,在某些情况下,通过不同于显示的其他方式来呈现附加内容,比如回放音频内容。
回到图1,操作系统112的拷贝和粘贴系统122支持嵌入在标记语言文档中的数字墨水。拷贝和粘贴系统122理解标记语言文档中的数字墨水标记语言元素,并且允许把数字墨水标记语言元素从一个文档拷贝并且粘贴到另一个文档。作为一个示例,用户可以选择从第一文档显示的内容的一部分(所选部分包括数字墨水),并且输入拷贝请求。作为响应,拷贝和粘贴系统122把包括所选部分的标记语言元素(或其部分)存储到剪切板或其他存储器中。用户随后可以标识出第二文档(或者可替换地,第一文档)中的位置并且输入粘贴请求。第二文档可以是由打开第一文档的相同应用或者不同的应用所打开和使用的文档。响应于粘贴请求,拷贝和粘贴系统122把来自剪切板或其他存储器的数据提供给打开第二文档的应用,并且该应用把标记语言元素合并到第二文档中。举例来说,包括描述所选数字墨水的数据的数字墨水标记语言元素被嵌入在第二文档中。
在一个或多个实施例中,数字墨水系统124采用各种附加机制当中的一种或多种来促进数字墨水的使用以及数字墨水在标记语言文档中的嵌入。后面将描述这些附加机制,并且数字墨水系统124可以采用这些机制当中的任一种或任意组合。在一个或多个实施例中,数字墨水系统124采用所有这些机制,但是可替换地,数字墨水系统124采用少于所有这些机制。
由数字墨水系统124采用的一种机制是z顺序的保留。z顺序指的是,在用户界面中哪一项内容在哪一项其他内容之上或之下,其中在其他内容之上或者上面的内容可能遮挡该其他内容的至少一部分。数字墨水系统124在标记语言文档中记录关于内容的z顺序的指示,从而使得z顺序被保持。这一指示可以通过不同方式被包括在标记语言文档中,比如基于包括描述内容的数据的标记语言元素被显示的顺序(例如在其他内容上面的内容在标记语言文档中位于该其他内容之后)。保留z顺序例如允许这样的情况,其中如果用户输入在墨水笔划之上键入的文本,则所述文本被显示在墨水笔划的上面或之上。
由数字墨水系统124采用的一种机制是管理界外数字墨水。在其中只能在特定区域(例如,如前面所讨论的编辑框)中输入数字墨水的情形中,数字墨水系统124管理其中用户输入延伸到所述特定区域的边界之外的情况。在一个或多个实施例中,在数字墨水用户输入开始于特定区域内并且随后离开所述特定区域的情况下,数字墨水系统124收集检测到物体的所有位置,但是仅仅显示数字墨水用户输入的处于所述特定区域内部的那些部分。这例如允许要在所有数字墨水用户输入上实施的辨识操作,即使所有数字墨水都不被显示,也是如此。
在物体触摸特定区域之外的位置并且随后该物体被移动到所述特定区域内的某一位置的情况下,物体的移动不被当作数字墨水用户输入。可替换地,所述移动可以被当作数字墨水用户输入,但是数字墨水系统124只显示数字墨水的处于该特定区域内的那些部分。
由数字墨水系统124采用的一种机制是对数字墨水进行定位。数字墨水系统124允许按照类似于文档中的文本、图片或其他内容的方式把数字墨水笔划定位在显示器上的各个位置处。举例来说,可以使用CSS位置属性来定位数字墨水。与把数字墨水当作覆盖物形成对照的是,与文档中的其他内容相类似地定位数字墨水。类似于文档中的文本、图片或其他内容,在文档回流或布局确定中可以考虑到数字墨水。因此可以基于数字墨水笔划的存在来确定或改变其他内容的定位(例如其他内容可以被数字墨水笔划围绕或者邻近数字墨水笔划被显示),并且可以基于文档中的其他内容的存在来确定或改变数字墨水笔划的定位。
由数字墨水系统124采用的一种机制是命中测试(hit test)管理。当接收到数字墨水用户输入时,数字墨水系统124实施命中测试以便确定数字墨水笔划是否与文档的任何其他内容相交(并且从而允许保留z顺序)。在数字墨水被输入特定区域(例如,如前面所讨论的编辑框)中的情况下,数字墨水系统124防止数字墨水占据整个特定区域。这一防止例如可以通过如下操作实施:响应于数字墨水用户输入占据整个特定区域,忽略或删除数字墨水用户输入。
附加地,数字墨水系统124防止数字墨水用户输入阻挡其下面的任何难消除(intractable)对象。难消除对象指的是不应被其他内容覆盖的对象(内容)。这一防止例如可以通过如下操作实施:响应于数字墨水用户输入处于难消除对象的上面而忽略或删除数字墨水用户输入,或者改变z顺序从而使得数字墨水笔划处于难消除对象的下面。
由数字墨水系统124采用的一种机制是湿墨水管理。在其中在与接收到数字墨水用户输入相同的设备(例如触摸屏)上显示数字墨水笔划的情况下,数字墨水系统124管理数字墨水笔划,使得其保持靠近生成笔划的物体(例如笔尖、用户的手指尖)。这向用户提供了一种外在表现,即对象是数字墨水的源(例如类似于墨水或石墨通过笔或铅笔施加到纸上)。
在一个或多个实施例中,计算设备102支持多线程操作。应用114作为一个或多个进程运行在计算设备上,每一个进程包括一个或多个线程(也被称作程序线程)。线程指的是可以由操作系统112独立管理、调度和运行的指令序列。数字墨水系统124可选地创建(或者使用现有的)一个或多个线程以用于接收数字墨水用户输入以及显示数字墨水笔划,并且这一个或多个线程与显示文档中的其他内容的一个或多个附加线程分开(并且可选地被当作比显示文档中的其他内容的那一个或多个附加线程更高的优先级水平的线程)。数字墨水系统124还可选地创建(或者使用现有的)一个或多个线程以用于接收数字墨水用户输入以及显示数字墨水笔划,并且这一个或多个线程与在标记语言文档中嵌入数字墨水的一个或多个附加线程分开。与使用显示数字墨水笔划相同的线程来显示其他内容的情况相比,对于多线程的这一使用允许更加快速地显示数字墨水笔划。
由数字墨水系统124采用的一种机制是编辑操作支持。数字墨水系统124支持各种不同的数字墨水编辑操作,比如用以撤消数字墨水用户输入的撤消操作,用以重做数字墨水输入操作的重做操作,用以擦除数字墨水的擦除操作,用以选择数字墨水的选择操作等等。可以通过如前面所讨论的多种方式当中的任一种方式接收规定这些不同操作的用户输入。
数字墨水系统124基于用户输入来对嵌入在标记语言文档中的数字墨水实施适当的操作。举例来说,如果接收到数字墨水用户输入并且随后接收到撤消操作,则数字墨水系统124从标记语言文档中移除(例如删除)响应于数字墨水用户输入而添加的数字墨水标记语言元素(但是数字墨水系统124可以把所删除的数字墨水标记语言元素的拷贝保持在存储器中)。如果随后接收到重做操作,则数字墨水系统124把数字墨水标记语言元素重新添加到标记语言文档。作为另一个示例,如果接收到指示要擦除数字墨水的一部分的擦除操作,则数字墨水系统124从数字墨水标记语言元素中删除对应于将被擦除的部分的数字墨水的位置。
由数字墨水系统124采用的一种机制是数字墨水特性支持。数据墨水可以具有各种不同的特性,比如宽度(也被称作画笔宽度,如同被用来生成数字墨水的物体是绘画画笔一样)、形状、颜色等等。数字墨水系统124接收规定数字墨水特性的用户输入,从而允许用户规定他或她所期望的特性。可以通过如前面所讨论的多种方式当中的任一种接收这些用户输入。
数字墨水系统124在标记语言文档中包括关于数字墨水的特性的指示。这一指示可以通过各种方式被包括在标记语言文档中。举例来说,可以把一个或多个特性元素添加到前面所讨论的数字墨水标记语言元素。例如,数字墨水标记语言元素包括如前面所讨论的标识出墨水笔划在各个时间的位置的“trace”元素。可以在数字墨水标记语言元素中包括类似的元素以便标识出数字墨水的其他特性。举例来说,可以包括“brush(画笔)”元素以便标识出数字墨水的形状、颜色和宽度。
由数字墨水系统124采用的一种机制是数字墨水辨识支持。用户输入的数字墨水常常表示特定文本,比如字母、数字或其他字符,这也被称作数字墨水的语义含义。数字墨水系统124促进辨识这一文本,其本身实施辨识或者把关于所标识出的墨水笔划在各个时间的位置的指示提供给另一个模块或系统以实施辨识。可以使用多种公共或专有技术当中的任一种实施对于文本的辨识。
数字墨水系统124在标记语言文档中包括关于所标识出的文本的指示。这一指示可以通过各种方式被包括在标记语言文档中。举例来说,可以把一个或多个语义含义元素添加到前面所讨论的数字墨水标记语言元素。例如,数字墨水标记语言元素包括如前面所讨论的标识出墨水笔划在各个时间的位置的“trace”元素。可以在数字墨水标记语言元素中包括类似的元素以便标识出数字墨水的语义含义。举例来说,可以包括“semanticmeaning(语义含义)”元素以便标识所辨识出的文本。
因此,本文所讨论的技术提供了允许把数字墨水嵌入在标记语言文档中的机制。把数字墨水嵌入在标记语言文档中允许把针对文档的将呈现的所有内容包括在单一文件中,从而减少在存储设备上的存储开销并且减少传输文件时的带宽使用。
把数字墨水嵌入在标记语言文档中还避免了使用覆盖物层的需要。覆盖物层指的是在用户界面上面的收集数字墨水用户输入的透明层,所收集的那些数字墨水用户输入被保持与标记语言文档分开(并且典型地被存储在单独的文件中)。但是这样的覆盖物层不需要与本文所讨论的技术一起被使用。避免覆盖物层提供了,应用或操作系统对于所有数字墨水数据(例如所有trace元素)的访问,例如对于所有数字墨水数据的原生HTML文档对象模型(DOM)访问。可以如应用所期望的那样,比如通过使用标准CSS属性或样式,对数字墨水数据(例如数字墨水标记语言元素或者甚至单独的trace(或其他数据)元素)进行访问和定位。此外,可以保持针对数字墨水的适当的z顺序,从而允许在某些内容的上面但是在其他内容的下面显示某些数字墨水——通过把数字墨水嵌入在标记语言文档中,不需要按照相同的方式对待所有数字墨水。
虽然本文中参照特定模块讨论了特定功能,但是应当提到的是,本文中所讨论的独立模块的功能性可以被分离到多个模块中,和/或多个模块的至少一些功能性可以被组合到单一模块中。附加地,本文中被讨论为实施某一动作的特定模块包括,该特定模块自己实施所述动作,或者可替换地,该特定模块调用或通过其他方式访问实施所述动作(或者与该特定模块相结合来实施所述动作)的另一个组件或模块。因此,特定模块实施某一动作包括,该特定模块自己实施所述动作和/或由该特定模块调用或通过其他方式访问的另一个模块实施所述动作。
图7一般地在700处图示出了包括示例性计算设备702的示例性系统,所述示例性计算设备702代表可以实施本文所描述的各种技术的一种或多种系统和/或设备。计算设备702例如可以是服务提供商的服务器、与客户端相关联的设备(例如客户端设备)、芯片上系统和/或任何其他适当的计算设备或计算系统。
所图示出的示例性计算设备702包括通信地彼此耦合的处理系统704、一个或多个计算机可读介质706以及一个或多个I/O接口708。虽然没有示出,但是计算设备702还可以包括将各种组件彼此耦合的系统总线或其他数据和命令传输系统。系统总线可以包括不同总线结构当中的任一种或任意组合,比如利用多种总线架构当中的任一种的存储器总线或存储器控制器、外围总线、通用串行总线和/或处理器或局部总线。还设想到多种其他示例,比如控制和数据线。
处理系统704代表使用硬件实施一项或多项操作的功能性。相应地,处理系统704被图示为包括可以被配置成处理器、功能块等等的硬件元件710。这可以包括通过硬件实施成专用集成电路或者使用一个或多个半导体形成的其他逻辑设备。硬件元件710不受限于从其形成所述硬件元件710的材料或者其中所采用的处理机制。举例来说,处理器可以包括(多个)半导体和/或晶体管(例如,电子集成电路(IC))。在这样的情境中,处理器可执行指令可以是电子可执行指令。
计算机可读介质706被图示为包括存储器/存储装置712。存储器/存储装置712表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置712可以包括易失性介质(比如随机存取存储器(RAM))和/或非易失性介质(比如只读存储器(ROM)、闪存、光盘、磁盘等等)。存储器/存储装置712可以包括固定介质(例如RAM、ROM、固定硬驱动器等等)以及可移除介质(例如闪存、可移除硬驱动器、光盘等等)。计算机可读介质706可以通过多种其他方式进行配置,正如后面进一步描述的那样。
一个或多个输入/输出接口708代表通过使用各种输入/输出设备允许用户向计算设备702录入命令和信息并且还允许向用户和/或其他组件或设备呈现信息的功能性。输入设备的示例包括键盘、光标控制设备(例如鼠标)、麦克风(例如用于语音输入)、扫描仪、触摸功能性(例如被配置成检测物理触摸的电容性或其他传感器)、照相机(其例如可以采用可见或不可见的波长(比如红外频率)来检测不涉及作为手势的触摸的移动)等等。输出设备的示例包括显示设备(例如监视器或投影仪)、扬声器、打印机、网络卡、触觉响应设备等等。因此,计算设备702可以通过后面进一步描述的多种方式被配置成支持用户交互。
计算设备702还包括数字墨水系统714。数字墨水系统714提供针对把数字墨水嵌入在标记语言文档中的各种支持,正如前面所讨论的那样。数字墨水系统714例如可以实施图1的数字墨水系统124。
本文中可以在软件、硬件元件或程序模块的一般情境中描述各种技术。一般说来,这样的模块包括实施特定任务或者实现特定抽象数据类型的例程、程序、对象、元件、组件、数据结构等等。本文中所使用的术语“模块”、“功能性”和“组件”一般表示软件、固件、硬件或其组合。本文中所描述的技术的特征是独立于平台的,从而意味着可以在具有多种处理器的多种计算平台上实施所述技术。
所描述的模块和技术的实现可以被存储在某种形式的计算机可读介质上或者在某种形式的计算机可读介质上传送。计算机可读介质可以包括可以由计算设备702访问的多种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”指的是,允许持久性地存储信息的介质和/或设备,和/或与纯粹的信号传输、载波或信号本身形成对照的有形的存储装置。因此,计算机可读存储介质指的是非信号承载介质。计算机可读存储介质包括硬件,比如易失性和非易失性的、可移除和不可移除的介质和/或通过适合于存储信息的方法或技术而实施的存储设备,所述信息比如是计算机可读指令、数据结构、程序模块、逻辑元件/电路或者其他数据。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)或其他光学存储装置,硬盘、磁带盒、磁带、磁盘存储装置或其他磁性存储设备,或者适于存储所期望的信息并且可由计算机访问的其他存储设备、有形介质或制造品。
“计算机可读信号介质”指的是,被配置成把指令比如经由网络传送到计算设备702的硬件的信号承载介质。信号介质典型地可以把计算机可读指令、数据结构、程序模块或其他数据具体体现在比如载波、数据信号或其他传输机制之类的已调制的数据信号中。信号介质还包括任何信息递送介质。术语“已调制的数据信号”意指,以使得在信号中编码信息这样的方式设置或改变其特性当中的一个或多个特性的信号。作为示例而非限制,通信介质包括比如有线网络或直接连线连接之类的有线介质,以及比如声学、RF、红外和其他无线介质之类的无线介质。
正如前面所描述的那样,硬件元件710和计算机可读介质706代表通过硬件形式实施的指令、模块、可编程设备逻辑和/或固定设备逻辑,其在一些实施例中可以被采用来实施本文中所描述的技术的至少一些方面。硬件元件可以包括以下各项的组件:集成电路或芯片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD)以及其他硅中实现方式或其他硬件设备。在此情境中,硬件元件可以操作为处理设备(所述处理设备实施通过所述硬件元件具体体现的指令、模块和/或逻辑所定义的程序任务)以及操作为被利用来存储用于执行的指令的硬件设备,例如先前所描述的计算机可读存储介质。
还可以采用前述各项的组合来实施本文中所描述的各种技术和模块。相应地,软件、硬件或程序模块以及其他程序模块可以被实施成具体体现在某种形式的计算机可读存储介质上的一条或多条指令和/或逻辑,和/或可以通过一个或多个硬件元件710来实施。计算设备702可以被配置成实施对应于所述软件和/或硬件模块的特定指令和/或功能。相应地,将模块实施成可由计算设备702作为软件执行的模块可以至少部分地通过硬件来实现,例如通过使用所述处理系统的计算机可读存储介质和/或硬件元件710。所述指令和/或功能可以是一个或多个制造品(例如一个或多个计算设备702和/或处理系统704)可执行/可操作的,以便实施本文中所描述的技术、模块和示例。
正如在图7中进一步图示出的那样,示例性系统700允许在个人计算机(PC)、电视设备和/或移动设备上运行应用时的针对无缝用户体验的普遍存在的环境。当在利用应用、玩视频游戏、观看视频等等的同时从一个设备转变到下一个设备时,服务和应用在所有三种环境中基本上类似地运行以获得共同的用户体验。
在示例性系统700中,多个设备通过中央计算设备互连。中央计算设备可以处于所述多个设备的本地,或者可以处于远离所述多个设备的位置。在一个或多个实施例中,中央计算设备可以是通过网络、因特网或者其他数据通信链接而连接到所述多个设备的一台或多台服务器计算机的云。
在一个或多个实施例中,这一互连架构允许在多个设备上递送功能性,从而为所述多个设备的用户提供共同的无缝体验。所述多个设备当中的每一个可以具有不同的物理需求和能力,并且中央计算设备使用平台以允许向设备递送既是针对该设备定制同时对于所有设备又是共同的体验。在一个或多个实施例中,创建目标设备的类别,并且针对一般的设备类别定制体验。可以通过设备的物理特征、使用类型或者其他共同特性来定义设备的类别。
在各种实现方式中,计算设备702可以采取多种不同的配置,比如用于计算机716、移动装置718和电视720用途。这些配置当中的每一种包括可能具有通常不同的构造和能力的设备,因此可以根据所述不同的设备类别中的一个或多个来配置计算设备702。举例来说,计算设备702可以被实施成计算机716设备类别,其包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等等。
计算设备702还可以被实施成移动装置718设备类别,其包括移动设备,比如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等等。计算设备702还可以被实施成电视720设备类别,其包括具有或者连接到在休闲观看环境中的通常更大的屏幕的设备。这些设备包括电视、机顶盒、游戏控制台等等。
本文所描述的技术可以得到计算设备702的这些各种配置的支持,并且不限于本文所描述的技术的特定示例。这一功能性还可以完全地或部分地通过使用分布式系统来实施,比如通过平台724实施在“云”722上,正如后面所描述的那样。
云722包括和/或代表用于资源726的平台724。平台724抽象化云722的硬件(例如服务器)和软件资源的底层功能性。资源726可以包括应用和/或数据,所述应用和/或数据可以在远离计算设备702的服务器上执行计算机处理时被利用。资源726还可以包括在因特网上和/或通过订户网络(比如蜂窝或Wi-Fi网络)提供的服务。
平台724可以抽象化用以把计算设备702与其他计算设备连接的资源和功能。平台724还可以用来抽象化资源的规模,以便对于所遇到的针对通过平台724实施的资源726的需求提供相应的规模水平。相应地,在互连设备环境中,本文所描述的功能性的实施可以遍及系统1300分布。举例来说,所述功能性可以被部分地实施在计算设备702上以及通过抽象化云722的功能性的平台724来实施。
在本文的讨论中,描述了各个不同的实施例。应当认识到并且理解的是,本文所描述的每一个实施例可以被独立使用,或者与本文所描述的一个或多个其他实施例相结合来使用。本文所讨论的技术的其他方面涉及后面的实施例当中的一个或多个。
一种方法包括:由应用接收针对标记语言文档的数字墨水用户输入;生成包括描述数字墨水用户输入的数据的数字墨水标记语言元素;把数字墨水标记语言元素嵌入在标记语言文档中,所述标记语言文档还在一个或多个附加元素中包括描述在显示标记语言文档时将显示的附加内容的附加数据,以便允许把描述数字墨水用户输入的数据和描述附加内容的附加数据包括在单一文件中;以及把带有数字墨水标记语言元素的标记语言文档传送到存储设备。
可替换地或者除了任一种前述方法之外,存在以下各项当中的任一项或任意组合:所述方法还包括通过数据网络访问服务,并且从所述服务获得标记语言文档;所述方法还包括接收针对拷贝标记语言文档的一部分的用户请求,所述部分包括所述数字墨水中的至少一些,并且响应于用户请求把数字墨水标记语言元素的至少一部分提供给拷贝和粘贴系统;所述方法还包括接收针对把内容粘贴到标记语言文档中的用户请求,将被粘贴的内容包括描述附加数字墨水的数据,并且把所述附加数字墨水嵌入在标记语言文档中;所述方法还包括在标记语言文档中保留数字墨水和附加内容的z顺序;所述应用显示将在其中输入数字墨水的编辑框,数字墨水用户输入既包括编辑框内的多个位置也包括编辑框之外的多个位置,所述方法还包括在数字墨水标记语言元素中包括既标识出编辑框内的多个位置也标识出编辑框之外的多个位置的数据,并且显示仅编辑框内的多个位置,作为针对数字墨水用户输入的数字墨水笔划;所述方法还包括使用一个或多个第一程序线程来接收数字墨水用户输入并且显示针对数字墨水用户输入的数字墨水笔划,以及使用一个或多个第二程序线程来显示附加内容;所述方法还包括在接收数字墨水用户输入之后接收针对撤消数字墨水用户输入的第一用户请求,并且响应于第一用户请求从标记语言文档中移除数字墨水标记语言元素;所述方法还包括在接收到针对撤消数字墨水用户输入的第一用户请求之后接收针对重做数字墨水用户输入的第二请求,并且响应于第二用户请求把数字墨水标记语言元素添加回到标记语言文档中;所述方法还包括在接收到数字墨水用户输入之后接收针对擦除数字墨水的一部分的用户请求,并且从数字墨水标记语言元素中删除标识出对应于所述部分的数字墨水的位置的数据;所述方法还包括接收规定数字墨水的特性的用户输入,所述特性包括从包括以下各项的一组当中选择的一项或多项特性:形状、颜色和宽度,并且在数字墨水标记语言元素中添加标识出用户规定的数字墨水特性的附加元素;所述方法还包括辨识数字墨水用户输入所表示的一个或多个字符,并且在数字墨水标记语言元素中添加标识出以下各项的附加元素:所辨识出的一个或多个字符、提供数字墨水用户输入的用户的标识以及数字墨水用户输入的数字墨水笔划的时间戳。
一种方法包括:对存储设备进行访问以获得标记语言文档,所述标记语言文档包括数字墨水标记语言元素以及包括附加数据的一个或多个附加元素;从数字墨水标记语言元素中提取出描述标记语言文档的数字墨水的数据;从所述一个或多个附加元素中提取出描述标记语言文档的附加内容的附加数据;以及显示数字墨水以及附加内容,作为标记语言文档的视觉表示。
可替换地或者除了任一种前述方法之外,对存储设备进行访问包括通过数据网络访问存储设备。
一种计算设备包括:包括一个或多个处理器的处理系统;其上存储了多条指令的一个或多个计算机可读存储介质,所述指令响应于由处理系统执行使得处理系统实施包括以下各项的动作:由计算设备的应用接收指示针对第一标记语言文档的数字墨水的用户输入;生成包括描述数字墨水的数据的数字墨水标记语言元素;把数字墨水标记语言元素嵌入在第一标记语言文档中,所述标记语言文档还在一个或多个附加元素中包括描述在显示第一标记语言文档时将显示的附加内容的附加数据,以便允许把描述数字墨水用户输入的数据和描述附加内容的附加数据包括在单一文件中;以及把带有数字墨水标记语言元素的第一标记语言文档传送到存储设备。
可替换地或者除了任一种前述方法之外,存在以下各项当中的任一项或任意组合:所述动作还包括通过因特网访问服务,并且从所述服务获得标记语言文档;所述动作还包括对存储设备进行访问以获得第二标记语言文档,所述第二标记语言文档包括数字墨水标记语言元素以及包括附加数据的一个或多个附加元素,从第二标记语言文档的第二数字墨水标记语言元素中提取出描述第二标记语言文档的数字墨水的数据,从第二标记语言文档的一个或多个附加元素中提取出描述第二标记语言文档的附加内容的附加数据,以及显示第二标记语言文档的数字墨水以及第二标记语言文档的附加内容,作为第二标记语言文档的视觉表示;所述一个或多个处理器执行作为多个线程的所述应用,并且所述动作还包括使用所述多个线程当中的一个或多个第一程序线程来接收数字墨水用户输入并且显示针对数字墨水的数字墨水笔划,以及使用所述多个线程当中的一个或多个第二程序线程把数字墨水嵌入在第一标记语言文档中;所述动作还包括接收针对拷贝第一标记语言文档的一部分的用户请求,所述部分包括数字墨水中的至少一些,并且响应于用户请求把数字墨水标记语言元素的至少一部分提供给拷贝和粘贴系统;所述动作还包括接收针对把内容粘贴到第一标记语言文档中的用户请求,将被粘贴的内容包括描述附加数字墨水的数据,并且把所述附加数字墨水嵌入在标记语言文档中。
虽然已经通过特定于结构特征和/或方法动作的语言描述了本主题内容,但是应当理解的是,在随附权利要求中限定的主题内容不一定受限于前面所描述的特定特征或动作。相反,前面所描述的特定特征和动作是作为实施权利要求的示例性形式而公开的。

Claims (25)

1.一种用于支持数字墨水的方法,包括:
由应用接收针对标记语言文档的数字墨水用户输入;
生成包括描述数字墨水用户输入的数据的数字墨水标记语言元素;
通过向所述标记语言文档添加所述数字墨水标记语言元素,来把数字墨水标记语言元素嵌入在标记语言文档中,所述标记语言文档还在一个或多个附加元素中包括描述在显示标记语言文档时将显示的附加内容的附加数据;以及
把带有数字墨水标记语言元素的标记语言文档传送到存储设备。
2.根据权利要求1所述的方法,还包括:
通过数据网络访问服务;以及
从所述服务获得标记语言文档。
3.根据权利要求1所述的方法,还包括:
接收针对拷贝标记语言文档的一部分的用户请求,所述部分包括所述数字墨水中的至少一些;以及
响应于用户请求把数字墨水标记语言元素的至少一部分提供给拷贝和粘贴系统。
4.根据权利要求1所述的方法,还包括:
接收针对把内容粘贴到标记语言文档中的用户请求,将被粘贴的内容包括描述附加数字墨水的数据;以及
把所述附加数字墨水嵌入在标记语言文档中。
5.根据权利要求1所述的方法,还包括在标记语言文档中保留数字墨水和附加内容的z顺序。
6.根据权利要求1到5当中的任一条所述的方法,所述应用显示将在其中输入数字墨水的编辑框,数字墨水用户输入既包括编辑框内的多个位置也包括编辑框之外的多个位置,所述方法还包括:
在数字墨水标记语言元素中包括既标识出编辑框内的多个位置也标识出编辑框之外的多个位置的数据;以及
显示仅编辑框内的多个位置,作为针对数字墨水用户输入的数字墨水笔划。
7.根据权利要求1到5当中的任一条所述的方法,还包括:
使用一个或多个第一程序线程来接收数字墨水用户输入并且显示针对数字墨水用户输入的数字墨水笔划;以及
使用一个或多个第二程序线程来显示附加内容。
8.根据权利要求1到5当中的任一条所述的方法,还包括:
在接收到数字墨水用户输入之后接收针对撤消数字墨水用户输入的第一用户请求;以及
响应于第一用户请求,从标记语言文档中移除数字墨水标记语言元素。
9.根据权利要求8所述的方法,还包括:
在接收到针对撤消数字墨水用户输入的第一用户请求之后接收针对重做数字墨水用户输入的第二请求;以及
响应于第二用户请求,把数字墨水标记语言元素添加回到标记语言文档中。
10.根据权利要求1到5当中的任一条所述的方法,还包括:
在接收到数字墨水用户输入之后接收针对擦除数字墨水的一部分的用户请求;以及
从数字墨水标记语言元素中删除标识出对应于所述部分的数字墨水的位置的数据。
11.根据权利要求1到5当中的任一条所述的方法,还包括:
接收规定数字墨水的特性的用户输入,所述特性包括从包括以下各项的一组当中选择的一项或多项特性:形状、颜色和宽度;以及
在数字墨水标记语言元素中添加标识出用户规定的数字墨水特性的附加元素。
12.根据权利要求1到5当中的任一条所述的方法,还包括:
辨识数字墨水用户输入所表示的一个或多个字符;以及
在数字墨水标记语言元素中添加标识出以下各项的附加元素:所辨识出的一个或多个字符、提供数字墨水用户输入的用户的标识以及数字墨水用户输入的数字墨水笔划的时间戳。
13.根据权利要求1所述的方法,描述所述数字墨水用户输入的所述数据包括沿着所述数字墨水用户输入的笔划的位置。
14.一种用于支持数字墨水的方法,包括:
对存储设备进行访问以获得标记语言文档,所述标记语言文档包括数字墨水标记语言元素以及包括附加数据的一个或多个附加元素;
从数字墨水标记语言元素中提取出描述标记语言文档的数字墨水的数据,描述所述数字墨水的所述数据包括沿着所述数字墨水的笔划的位置;
从所述一个或多个附加元素中提取出描述标记语言文档的附加内容的附加数据;以及
显示数字墨水以及附加内容,作为标记语言文档的视觉表示。
15.根据权利要求14所述的方法,对存储设备进行访问包括通过数据网络访问存储设备。
16.一种计算设备,包括:
包括一个或多个处理器的处理系统;
其上存储了多条指令的一个或多个计算机可读存储介质,所述指令响应于由处理系统执行使得处理系统实施包括以下各项的动作:
由计算设备的应用接收表明针对第一标记语言文档的数字墨水的用户输入;
生成包括描述数字墨水的数据的数字墨水标记语言元素;
通过向所述第一标记语言文档添加所述数字墨水标记语言元素,来把数字墨水标记语言元素嵌入在第一标记语言文档中,所述标记语言文档还在一个或多个附加元素中包括描述在显示第一标记语言文档时将显示的附加内容的附加数据;以及
把带有数字墨水标记语言元素的第一标记语言文档传送到存储设备。
17.根据权利要求16所述的计算设备,所述动作还包括:
通过因特网访问服务;以及
从所述服务获得标记语言文档。
18.根据权利要求16或权利要求17所述的计算设备,所述动作还包括:
对存储设备进行访问以获得第二标记语言文档,所述第二标记语言文档包括数字墨水标记语言元素以及包括附加数据的一个或多个附加元素;
从第二标记语言文档的第二数字墨水标记语言元素中提取出描述第二标记语言文档的数字墨水的数据;
从第二标记语言文档的一个或多个附加元素中提取出描述第二标记语言文档的附加内容的附加数据;以及
显示第二标记语言文档的数字墨水以及第二标记语言文档的附加内容,作为第二标记语言文档的视觉表示。
19.根据权利要求16或权利要求17所述的计算设备,所述一个或多个处理器执行作为多个线程的所述应用,并且所述动作还包括:
使用所述多个线程当中的一个或多个第一程序线程来接收数字墨水用户输入并且显示针对数字墨水的数字墨水笔划;以及
使用所述多个线程当中的一个或多个第二程序线程把数字墨水嵌入在第一标记语言文档中。
20.根据权利要求16或权利要求17所述的计算设备,所述动作还包括:
接收针对拷贝第一标记语言文档的一部分的用户请求,所述部分包括数字墨水中的至少一些;以及
响应于用户请求把数字墨水标记语言元素的至少一部分提供给拷贝和粘贴系统。
21.根据权利要求16或权利要求17所述的计算设备,所述动作还包括:
接收针对把内容粘贴到第一标记语言文档中的用户请求,将被粘贴的内容包括描述附加数字墨水的数据;以及
把所述附加数字墨水嵌入在标记语言文档中。
22.一种计算设备,包括:
包括一个或多个处理器的处理系统;
其上存储了多条指令的一个或多个计算机可读存储介质,所述指令响应于由处理系统执行使得处理系统实施根据权利要求1-15当中的任一条所述的方法。
23.其上存储了多条指令的一种计算机可读存储介质,所述指令响应于由处理系统执行使得处理系统实施根据权利要求1-15当中的任一条所述的方法。
24.一种计算设备,包括:
用于由应用接收针对标记语言文档的数字墨水用户输入的模块;
用于生成包括描述数字墨水用户输入的数据的数字墨水标记语言元素的模块;
用于通过向所述标记语言文档添加所述数字墨水标记语言元素来把数字墨水标记语言元素嵌入在标记语言文档中的模块,所述标记语言文档还在一个或多个附加元素中包括描述在显示标记语言文档时将显示的附加内容的附加数据;以及
用于把带有数字墨水标记语言元素的标记语言文档传送到存储设备的模块。
25.一种计算设备,包括:
用于对存储设备进行访问以获得标记语言文档的模块,所述标记语言文档包括数字墨水标记语言元素以及包括附加数据的一个或多个附加元素;
用于从数字墨水标记语言元素中提取出描述标记语言文档的数字墨水的数据的模块,描述所述数字墨水的所述数据包括沿着所述数字墨水的笔划的位置;
用于从所述一个或多个附加元素中提取出描述标记语言文档的附加内容的附加数据的模块;以及
用于显示数字墨水以及附加内容作为标记语言文档的视觉表示的模块。
CN201680009701.9A 2015-02-10 2016-02-01 在标记语言文档中支持数字墨水 Active CN107209756B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/618,303 US10776570B2 (en) 2015-02-10 2015-02-10 Supporting digital ink in markup language documents
US14/618303 2015-02-10
PCT/US2016/015872 WO2016130344A1 (en) 2015-02-10 2016-02-01 Supporting digital ink in markup language documents

Publications (2)

Publication Number Publication Date
CN107209756A CN107209756A (zh) 2017-09-26
CN107209756B true CN107209756B (zh) 2021-01-22

Family

ID=55359753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680009701.9A Active CN107209756B (zh) 2015-02-10 2016-02-01 在标记语言文档中支持数字墨水

Country Status (4)

Country Link
US (1) US10776570B2 (zh)
EP (1) EP3256958A1 (zh)
CN (1) CN107209756B (zh)
WO (1) WO2016130344A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10614300B2 (en) * 2014-12-23 2020-04-07 Lenovo (Singapore) Pte. Ltd. Formatting handwritten content
WO2017115692A1 (ja) * 2015-12-28 2017-07-06 アルプス電気株式会社 手書き入力装置、情報入力方法及びプログラム
US11373033B2 (en) * 2016-01-26 2022-06-28 Lenovo (Singapore) Pte. Ltd. Display of ink input and digital recognition results
US20170236318A1 (en) * 2016-02-15 2017-08-17 Microsoft Technology Licensing, Llc Animated Digital Ink
US10817169B2 (en) * 2016-10-14 2020-10-27 Microsoft Technology Licensing, Llc Time-correlated ink
US10275910B2 (en) 2017-09-25 2019-04-30 Microsoft Technology Licensing, Llc Ink space coordinate system for a digital ink stroke
US10826572B2 (en) * 2018-04-16 2020-11-03 Microsoft Technology Licensing, Llc Preserving digital ink spatial relationships in electronic messages
EP4121842A1 (en) * 2020-04-30 2023-01-25 Hewlett-Packard Development Company, L.P. Regions with digital ink input

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7128270B2 (en) * 1999-09-17 2006-10-31 Silverbrook Research Pty Ltd Scanning device for coded data
BR0306576A (pt) 2003-08-21 2006-10-03 Microsoft Corp coleta e renderização de tinta
US7262785B2 (en) * 2003-08-21 2007-08-28 Microsoft Corporation Ink editing architecture
US7206777B2 (en) * 2003-10-29 2007-04-17 International Business Machines Corporation Method and system for archiving and retrieving a markup language document
US7284192B2 (en) * 2004-06-24 2007-10-16 Avaya Technology Corp. Architecture for ink annotations on web documents
US7574048B2 (en) * 2004-09-03 2009-08-11 Microsoft Corporation Freeform digital ink annotation recognition
US20080229186A1 (en) * 2007-03-14 2008-09-18 Microsoft Corporation Persisting digital ink annotations as image metadata
US20100171754A1 (en) * 2009-01-07 2010-07-08 Microsoft Corporation Converting digital ink to shapes and text
US8331677B2 (en) 2009-01-08 2012-12-11 Microsoft Corporation Combined image and text document
US8478777B2 (en) * 2011-10-25 2013-07-02 Google Inc. Gesture-based search
JP6064381B2 (ja) 2012-06-13 2017-01-25 株式会社リコー 情報共有システム
US9953012B2 (en) 2012-09-11 2018-04-24 Egain Corporation Method and system for web page markup including notes, sketches, and stamps

Also Published As

Publication number Publication date
EP3256958A1 (en) 2017-12-20
US20160232146A1 (en) 2016-08-11
WO2016130344A1 (en) 2016-08-18
US10776570B2 (en) 2020-09-15
CN107209756A (zh) 2017-09-26

Similar Documents

Publication Publication Date Title
CN107209756B (zh) 在标记语言文档中支持数字墨水
US10484315B2 (en) Method, system and apparatus for adding network comment information
US11550993B2 (en) Ink experience for images
US7966352B2 (en) Context harvesting from selected content
US10007402B2 (en) System and method for displaying content
DE112009000003B4 (de) Programmierschnittstelle für ein Berührungsereignismodell
US9507520B2 (en) Touch-based reorganization of page element
US20140047308A1 (en) Providing note based annotation of content in e-reader
US20160188143A1 (en) Productivity tools for content authoring
US20150012818A1 (en) System and method for semantics-concise interactive visual website design
US20130326430A1 (en) Optimization schemes for controlling user interfaces through gesture or touch
US20100042933A1 (en) Region selection control for selecting browser rendered elements
CN109074375B (zh) web文档中的内容选择
US9792268B2 (en) Zoomable web-based wall with natural user interface
US9747004B2 (en) Web content navigation using tab switching
US20170235706A1 (en) Effecting multi-step operations in an application in response to direct manipulation of a selected object
CN105531657A (zh) 呈现打开窗口和选项卡
US10469274B2 (en) Live ink presence for real-time collaboration
CA2983248C (en) Rendering graphical assets natively on multiple screens of electronic devices
US20150058710A1 (en) Navigating fixed format document in e-reader application
US11113458B2 (en) Concurrently supporting both document-based and object-based undo operations
WO2018194853A1 (en) Enhanced inking capabilities for content creation applications
JP2015114955A (ja) 情報処理装置、情報処理方法、およびプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant