CN111095215B - 应用间传递格式特定的数据对象 - Google Patents

应用间传递格式特定的数据对象 Download PDF

Info

Publication number
CN111095215B
CN111095215B CN201880043389.4A CN201880043389A CN111095215B CN 111095215 B CN111095215 B CN 111095215B CN 201880043389 A CN201880043389 A CN 201880043389A CN 111095215 B CN111095215 B CN 111095215B
Authority
CN
China
Prior art keywords
application
data object
data
note
computing device
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
CN201880043389.4A
Other languages
English (en)
Other versions
CN111095215A (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
Priority to CN202310963237.9A priority Critical patent/CN116974792A/zh
Priority to CN202310963217.1A priority patent/CN116991604A/zh
Publication of CN111095215A publication Critical patent/CN111095215A/zh
Application granted granted Critical
Publication of CN111095215B publication Critical patent/CN111095215B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • 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/151Transformation
    • 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/169Annotation, e.g. comment data or footnotes
    • 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/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • 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/186Templates
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]

Abstract

一般来说,本发明涉及可使得计算设备能够基于以不同方式格式化的专用于第二应用的其它数据对象来重新创建被专门格式化以供在当前执行的应用中使用的数据对象的技术。例如,计算设备可以最初执行第一应用。计算设备可以执行第二应用,该第二应用包含一个或多个数据对象,这些数据对象被专门格式化以供在第二应用中使用和显示。第一应用可以接收第一数据对象,其中第一数据对象的格式特定于第二应用。第一应用可确定第一数据对象的内容并创建包括第一数据对象的内容的至少一部分的第二数据对象,其中第二数据对象的格式特定于第一应用。

Description

应用间传递格式特定的数据对象
背景技术
尽管能够同时执行多个应用,但是应用被设计成作为特定应用的隔离实例执行,并且在应用的特定实例内的事件(例如,用户输入或满足一些其它要求)发生时改变状态。一些应用能够与其它不同的应用通信,但通常需要显式导航到相应应用内的相关数据以及另外的用户输入以启动应用之间的数据交换。移动计算设备的用户可能必须提供输入以在不同的应用图形用户界面(GUI)之间切换,从而完成特定任务。例如,计算设备的用户可能必须停止在幻灯片呈现应用中输入文本,提供输入以使设备切换到记笔记应用,在笔记应用内手动导航,以便定位可能与在幻灯片呈现应用中正被编辑的幻灯片对象相关的任何笔记对象,并且在笔记应用的GUI处提供另外的输入,以选择或重新创建用户可能想要完成对幻灯片对象的编辑的信息。提供一些计算设备执行各种任务所需的几个输入可能是繁琐的,重复且耗时的。
发明内容
一般来说,本发明涉及用于在不同应用之间移动包括在数据对象中的信息时自动修改具有特定应用格式的数据对象的技术,其中不同应用中的每一个与不同的特定应用数据对象格式相关联。例如,计算设备可以执行第一应用,例如幻灯片呈现应用。计算设备还可以执行第二应用,该第二应用可以与一个或多个数据对象相关联,一个或多个数据对象中的每一个数据对象都被专门格式化以便在第二应用的图形用户界面中使用和显示。例如,第二应用可以是记笔记应用,并且记笔记应用的一个或多个笔记文档可以存储在存储器中以便在记笔记应用内使用。第一应用(例如,幻灯片呈现应用)可以接收具有记笔记应用特定格式的第一数据对象。此外,数据对象可以包括一个或多个数据结构。例如,计算设备可以接收用户输入,该用户输入指示计算设备从记笔记应用发送笔记文档到幻灯片呈现应用,该笔记文档被专门格式化,以供在记笔记应用中使用。第一应用可以创建第二数据对象(例如,图形幻灯片),其中第二数据对象的格式特定于第一应用(例如,幻灯片呈现应用)。对于第一数据对象的一个或多个数据结构中的至少一个数据结构,第一应用可以提取数据结构的内容,选择第二数据对象的特定数据结构以放置所提取的内容,并且将第一数据对象的相应数据结构的值插入第二数据对象的特定数据结构。以这种方式,第二应用以与先前的复制和粘贴操作不同的方式将信息传递到第一应用,在先前的复制和粘贴操作中,用户必须从第一文档中选择要复制的特定文本,选择特定位置将文本放置在第二文档中,并且手动格式化粘贴的文本。
不同的应用通常具有不同的文件格式,数据格式和创建具有独特结构和布局的数据对象的方式。通过以这种方式自动修改数据对象,本公开的技术可以为用户提供一种方式来快速地将存储在第二应用上的数据对象中的文档、文件或任何其他数据传送到第一应用中的数据对象,而无需用户手动地导航到相应应用内的相关内容页面,手动地重新创建第一应用中的数据,或使用将内容存储到计算设备的存储器的通用复制和粘贴技术来手动地重新格式化所传送的数据。以这种方式,本公开的技术可以减少在应用之间传送数据对象所需的时间量和用户输入的数量,这可以简化用户体验并且可以减少计算设备的功耗。
在一个示例中,本公开涉及一种方法,该方法包括由在计算设备处执行的第一应用从在计算设备处执行的第二应用接收第一数据对象。第一数据对象的格式特定于第二应用。第一数据对象包括第一组一个或多个数据结构。该方法还包括由第一应用创建第二数据对象。第二数据对象的格式特定于第一应用,并且不同于第一数据对象的格式。第二数据对象包括第二组一个或多个数据结构。该方法还包括,对于第一组一个或多个数据结构中的至少一个数据结构,由第一应用从第一数据对象的相应数据结构中提取一个或多个值,由第一应用基于与第一数据对象的相应数据结构相关联的元数据,选择第二数据对象选择的第二组一个或多个数据结构中的特定数据结构,以及由第一应用将来自第一数据对象的相应数据结构的一个或多个值插入到第二数据对象的特定数据结构中。
在另一实例中,本发明针对一种计算装置,其包括至少一个处理器和存储与第一应用相关联的指令的存储器。当执行时,所述指令使所述至少一个处理器从在所述计算装置处执行的第二应用接收第一数据对象。第一数据对象的格式特定于第二应用。第一数据对象包括第一组一个或多个数据结构。所述指令在被执行时还使所述至少一个处理器确定所述第一数据对象的内容。所述指令在被执行时还使得所述至少一个处理器创建第二数据对象。第二数据对象的格式特定于第一应用,并且不同于第一数据对象的格式。第二数据对象包括第二组一个或多个数据结构。所述指令在被执行时还使得所述至少一个处理器:对于所述第一组一个或多个数据结构中的至少一个数据结构,从所述第一数据对象的相应数据结构中提取一个或多个值,基于与所述第一数据对象的相应数据结构相关联的元数据,选择第二数据对象的第二组一个或多个数据结构中的特定数据结构,以及将来自第一数据对象的相应数据结构的一个或多个值插入到第二数据对象的特定数据结构中。
在另一示例中,本发明针对一种存储指令的非暂时性计算机可读存储媒体,所述指令在被执行时致使计算装置的至少一个处理器从在所述计算装置处执行的第二应用接收第一数据对象。第一数据对象的格式特定于第二应用。第一数据对象包括第一组一个或多个数据结构。所述指令在被执行时还使所述至少一个处理器确定所述第一数据对象的内容。所述指令在被执行时还使得所述至少一个处理器创建第二数据对象。第二数据对象的格式特定于第一应用,并且不同于第一数据对象的格式。第二数据对象包括第二组一个或多个数据结构。所述指令在被执行时还使得所述至少一个处理器:对于所述第一组一个或多个数据结构中的至少一个数据结构,从所述第一数据对象的相应数据结构中提取一个或多个值,基于与所述第一数据对象的相应数据结构相关联的元数据,选择第二数据对象的第二组一个或多个数据结构中的特定数据结构,以及将来自第一数据对象的相应数据结构的一个或多个值插入到第二数据对象的特定数据结构中。
在另一示例中,本发明针对一种装置,其包括用于从在所述计算装置处执行的第二应用接收第一数据对象的单元。第一数据对象的格式特定于第二应用。第一数据对象包括第一组一个或多个数据结构。该装置还包括用于确定第一数据对象的内容的单元。该装置还包括用于创建第二数据对象的单元。第二数据对象的格式特定于第一应用,并且不同于第一数据对象的格式。第二数据对象包括第二组一个或多个数据结构。该装置还包括,对于第一组一个或多个数据结构中的至少一个数据结构,用于从第一数据对象的相应数据结构中提取一个或多个值的单元,用于基于与第一数据对象的相应数据结构相关联的元数据来选择第二数据对象的第二组一个或多个数据结构中的特定数据结构的单元,以及用于将来自第一数据对象的相应数据结构的一个或多个值插入到第二数据对象的特定数据结构中的单元。
在另一示例中,本发明针对可使计算装置能够基于以不同方式格式化的专用于第二应用的其它数据对象来重新创建经专门格式化以供在当前执行的应用中使用的数据对象的技术。例如,计算设备可以最初执行第一应用。计算设备可以执行第二应用,该第二应用包含一个或多个数据对象,这些数据对象被专门格式化以供在第二应用中使用和显示。第一应用可以接收第一数据对象,其中第一数据对象的格式特定于第二应用。第一应用可确定第一数据对象的内容并创建包括第一数据对象的内容的至少一部分的第二数据对象,其中第二数据对象的格式特定于第一应用。
本公开的一个或多个示例的细节在以下附图和描述中阐述。从说明书和附图以及从权利要求书中,本公开的其它特征,目的和优点将是显而易见的。
附图说明
图1是说明根据本发明的一个或多个方面的经配置以自动分析和修改在应用之间传递的数据对象的示例计算装置的概念图。
图2是说明根据本发明的一个或多个方面的经配置以自动分析和修改在应用之间传递的数据对象的示例计算装置的框图。
图3A-3B是示出根据本公开的一个或多个方面的示例性计算设备的一系列示例性用户界面的概念图,所述示例计算设备被配置为自动分析被格式化为在第一应用中使用的数据对象,并将该数据对象修改到具有不同格式的第二应用。
图4A-4B是示出根据本公开的一个或多个方面的用于示例计算设备的另一系列的示例用户界面的概念图,所述示例计算设备被配置为自动分析被格式化为在第一应用中使用的数据对象,并将该数据对象修改到具有不同格式的第二应用。
图5A-5B是示出根据本公开的一个或多个方面的用于示例计算设备的另一系列的示例用户界面的概念图,所述示例计算设备被配置为自动分析被格式化为在第一应用中使用的数据对象,并将该数据对象修改到具有不同格式的第二应用。
图6A-6B是示出根据本公开的一个或多个方面的用于示例计算设备的另一系列的示例用户界面的概念图,所述示例计算设备被配置为自动分析被格式化为在第一应用中使用的数据对象,并将该数据对象修改到具有不同格式的第二应用。
图7是说明根据本发明的一个或多个方面的示例计算装置的示例操作的流程图,所述示例计算设备被配置为自动分析被格式化为在第一应用中使用的数据对象,并将该数据对象修改到具有不同格式的第二应用。
图8是说明根据本发明的一个或多个方面的经配置以识别和显示经确定与正执行的任务相关的信息的示例计算装置的概念图。
图9A-9E是示出根据本公开的一个或多个方面的用于示例计算设备的一系列用户界面的概念图,所述示例计算设备被配置为识别和显示被确定为与正在执行的任务相关的信息。
图10是说明根据本发明的一个或多个方面的经配置以识别和显示经确定与正执行的任务相关的信息的示例计算装置的进一步实例操作的流程图。
具体实施方式
图1是说明根据本发明的一个或多个方面的示例计算设备110的概念图,该计算设备110被配置为自动分析和修改在应用之间传递的数据对象。在图1的示例中,计算设备110表示单独的移动或非移动计算设备。计算设备110的示例包括移动电话,平板计算机,膝上型计算机,台式计算机,服务器,主机,机顶盒,电视,可佩戴设备(例如,计算机化的手表,计算机化的眼镜,计算机化的手套等),家庭自动化设备或系统(例如,智能恒温器或家庭助理设备),个人数字助理(PDA),游戏系统,媒体播放器,电子书阅读器,移动电视平台,汽车导航或信息娱乐系统,或配置成执行多个应用(例如,应用118A和118B)或以其它方式访问与计算设备110当前执行的任务相关的应用的任何其他类型的移动、非移动、可佩戴、以及不可佩戴的计算设备。
计算设备110包括用户界面(UID)112。计算设备110的UID 112可以用作计算设备110的输入和/或输出设备。UID 112可以使用各种技术来实现。例如,UID 112可以用作使用存在敏感输入屏幕的输入设备,诸如电阻触摸屏,表面声波触摸屏,电容触摸屏,投影电容触摸屏,压敏屏幕,声脉冲识别触摸屏,或另一种存在敏感显示技术。
UID 112可以用作使用麦克风技术,红外传感器技术或其它输入设备技术的输入设备,用于接收用户输入。例如,UID 112可以使用内置麦克风技术来检测UI模块120和/或情境模块122处理以完成任务的语音输入。作为另一个示例,UID 112可以包括可以从计算设备110的用户接收触觉输入的存在敏感显示器。UID 112可以通过检测来自用户的一个或多个手势(例如,用户用手指或触笔触摸或指向UID 112的一个或多个位置)来接收触觉输入的指示。
UID 112可用作输出(例如,显示)设备并向用户呈现输出。UID 112可以用作使用任何一个或多个显示设备的输出设备,例如液晶显示器(LCD),点阵显示器,发光二极管(LED)显示器,有机发光二极管(OLED)显示器,电子墨水,或能够向计算设备110的用户输出可视信息的类似单色或彩色显示器。UID 112可以用作使用扬声器技术,触觉反馈技术或其它输出设备技术的输出设备,用于向用户输出信息。UID 112可以呈现与应用118A和118B以及格式模块121相关的用户界面(例如,用户界面102A或102B)。UID 112可呈现与计算平台,操作系统,应用和/或在计算设备110处执行和/或可从计算设备110访问的服务(例如,电子邮件,聊天,在线服务,电话,游戏等)的其它特征有关的用户界面。
计算设备110还包括应用118A和118B,用户界面(UI)模块120和格式模块121。应用118A和118B以及模块120和121可以使用驻留在计算设备110中和/或在计算设备110处执行的软件,硬件,固件或硬件、软件和固件的混合来执行所描述的操作。计算设备110的一个或多个处理器,或多个设备的处理器,可以执行存储在计算设备110的存储器或其它非暂时性存储介质中的指令,以执行应用118A和118B以及模块120和121的操作。计算设备110可以将应用118A和118B以及模块120和121作为在底层硬件上执行的虚拟机来执行。应用118A和118B以及模块120和121可以作为操作系统或计算平台的一个或多个服务来执行。应用118A和118B以及模块120和121可以作为一个或多个可执行程序在计算平台的应用层执行。
UI模块120管理用户与UID 112和计算设备110的其它组件的交互。换句话说,UI模块120可以充当计算设备110的各种组件之间的中介,以基于UID 112检测到的用户输入来进行确定,并响应于用户输入而在UID 112处生成输出。UI模块120可以从计算设备110的应用,服务,平台或其它模块接收指令,以使UID 112输出用户界面(例如,用户界面14A)。UI模块120可以管理由计算设备110作为用户视图接收的输入以及与在UID 112处呈现的用户界面的交互,并且响应于从正在处理用户输入的计算设备110的应用,服务,平台或其它模块接收到附加指令来更新用户界面。
如图1所示,用户界面102A是幻灯片呈现用户界面。然而,用户界面102A可以是在第一应用(例如应用118A)的执行期间产生的任何图形用户界面。在图1的示例中,用户界面102A包括图形幻灯片对象104A,标题数据结构106A和主体数据结构108A。图形用户界面102A还包括笔记对象109A,UI模块120可基于第二应用(例如应用118B)的执行生成该笔记对象109A。
根据本公开的技术,UI模块120可以为当前在计算设备110上执行的应用118A生成内容页面。在图1的示例中,应用118A是幻灯片呈现应用。UI模块120还可以执行应用118B以生成应用118B的内容页面,应用118B当前也在计算设备110上执行。在图1的示例中,应用118A的内容页面包括图形幻灯片对象104A,并且应用118B的内容页面包括笔记对象109A。相应应用的内容页面可以都包括在用户界面102A中。
格式模块121可从应用118B接收第一数据对象,格式模块121将该第一数据对象转发到应用118A。第一数据对象的格式特定于应用118B,并且第一数据对象包括第一组一个或多个数据结构。例如,应用118A可以从应用118B接收笔记对象109A。如图1所示,以特定于应用118B的特定格式示出了笔记对象。换句话说,笔记对象109A可以被构造为使得应用118B可以处理笔记对象109A,创建在结构上类似于笔记对象109A的笔记对象,并且使用笔记对象109A执行特定功能,其中诸如应用118A的其他应用可以不被配置为执行这些相同的动作。诸如应用118A的其它应用可以访问存储在这样的数据对象内的内容,但是以只读方式,其中其它应用可以从数据对象的数据结构中提取内容,但是可以不改变或删除现有的数据对象,或者创建附加的数据对象。
响应于接收到第一数据对象,应用118A创建第二数据对象(例如,图形幻灯片对象104B)。第二数据对象包括第二组一个或多个数据结构。图形幻灯片对象104B的格式是特定于应用118A的,并且不同于笔记对象109B的格式。类似于笔记对象109A和应用118B之间的关系,图形幻灯片对象104B可以被构造成使得应用118A可以处理图形幻灯片对象104B,创建在结构上类似于图形幻灯片对象104B的图形幻灯片对象,并且使用图形幻灯片对象104B执行特定的功能,其中诸如应用118B的其他应用可以不被配置成在图形幻灯片对象104B上执行这些相同的动作。
在具有第一数据对象和第二数据对象的情况下,应用118A可以处理第一数据对象以从第一数据对象的一个或多个数据结构中提取内容,并将内容放置在第二数据对象内。例如,对于第一对象的第一组一个或多个数据结构中的至少一个数据结构,应用118A可以从第一数据对象的相应数据结构中提取一个或多个值。使用与第一数据对象的相应数据结构(例如,可扩展标记语言(XML)标签)相关联的元数据,应用118A可以为第二数据对象选择第二组一个或多个数据结构中的特定数据结构,并将来自第一数据对象的相应数据结构的一个或多个值插入到第二数据对象的特定数据结构中。
在图1的示例中,笔记对象109A包括读取“process for success”的标头以及一系列要点。所有这些数据可以被包括在单个数据结构(例如,具有新行字符,特定间隔字符,要点字符和文本字符的一个长文本串)中,两个数据结构(例如,用于标题的一个数据结构和用于一系列要点的一个数据结构)中,或多于两个数据结构(例如,用于标题的一个数据结构和用于每个要点的一个相应数据结构)中。根据笔记对象109A内的特定数据结构,格式模块121可以不同地处理内容。在任何情况下,格式模块121可以从笔记对象109A的一个或多个数据结构中提取内容。
如图1所示,格式模块121可以从笔记对象109A获取所提取的内容,并填充图形幻灯片对象104B的数据结构,以在应用118A中创建图形幻灯片对象。无论使用与笔记对象109A的各种数据结构相关联的元数据还是通过解析所提取的内容,格式模块121可以确定短语“process for success”正被用作笔记对象109A的标头或标题。应用118A可以使用笔记对象109A的硬编码信息(例如,标头或标题XML标签),或指示标头和标题通常如何出现在各种文档(例如,字体大小,字体权重,文本对齐,文本位置等)中的推理数据来确定该短语是标头或标题。这样,格式模块121可以将该短语插入标题数据结构106B中。此外,格式模块121可使用与笔记对象109A的各种数据结构(例如,主体XML标签)相关联的元数据或通过使用推断数据来解析所提取的内容来确定该项目符号列表被用作笔记对象109A的主体,其中该推断数据指示主体文本或项目符号列表通常如何出现在各种文档中(例如,字体大小,字体权重,文本对齐,文本位置,要点存在,破折号等)。这样,格式模块121可以将项目符号列表插入到主体数据结构108B中。UI模块120可以输出用户界面102B,用于在UID 112处显示,在用户界面102B中显示用于应用118A的新创建的图形幻灯片对象104B,以及来自应用118B的笔记对象109A。
如本文所述的技术所理解的,不同的应用通常具有不同的文件格式,数据格式和创建具有独特结构和布局的数据对象的方式。通常,在简单的文件转换(例如从可编辑文档转换到打印文档格式文件)中,可编辑文件的图像在不考虑任一文件内的特定数据结构的情况下被取得。在复制和粘贴操作中,用户必须显式地选择要传送的特定内容,手动地导航到要放置该内容的目标目的地文档的特定部分,并且手动地重新格式化所传送的内容,使得它适合新的应用。一些其他应用使用户能够将一个应用唯一的对象嵌入到该应用的文件中,但是它们需要访问外部应用。虽然许多应用试图提供通用的体验,但是更专门的应用通常向用户提供对内容的更大的控制和更多的应用到内容的特征。然而,计算固有的问题是在不同的专用应用中重新创建内容是繁琐的、不精确的过程,该过程需要来自用户的许多手动输入。
通过在应用118A和118B之间传递数据对象,本公开的技术可以为用户提供一种方式,以便快速地将应用118B的文件内的数据对象中存储的文档,文件或任何其它数据传送到应用118A的文件内的数据对象,而不需要用户手动导航到相应应用内的相关内容页面,在应用118A中重新创建数据,或者使用将内容存储到计算设备110的存储器的通用复制和粘贴技术来重新格式化所传送的数据。以这种方式,本公开的技术可以减少在应用之间传送数据对象所需的时间量和用户输入的数量,这可以简化用户体验并且可以减少计算设备110的功耗。
图2是示出根据本公开一个或多个方面的示例计算设备的框图,该计算设备被配置成自动分析和修改在应用之间传递的数据对象。下面将图2的计算设备210描述为图1的计算设备110A和/或110B的示例。图2仅说明计算装置210的一个特定实例,且计算装置210的许多其它示例可在一些实例中使用且可包括包含在示例计算装置210中的组件的子集或可包括图2中未展示的额外组件。
如图2的示例所示,计算设备210包括用户界面设备(UID)212,一个或多个处理器240,一个或多个通信单元242,一个或多个输入组件244,一个或多个输出组件246以及一个或多个存储组件248。UID 212包括显示组件202和存在敏感输入组件204。计算设备210的存储组件248包括应用218A,应用218B,UI模块220,情境模块222,一个或多个相关应用224以及相关对象数据存储226。
一个或多个处理器240可以实现与计算设备210相关联的功能和/或执行与计算设备210相关联的指令,以主动地将用户引导到与在应用218A上的计算设备210上执行的任务有关的信息。处理器240的示例包括应用处理器,显示控制器,辅助处理器,一个或多个传感器集线器,以及被配置为用作处理器,处理单元或处理设备的任何其它硬件。模块218A,218B,220和222可由处理器240操作以执行计算设备210的各种动作,操作或功能。例如,计算设备210的处理器240可以检索和执行由存储组件248存储的指令,这些指令使处理器240执行操作模块218A,218B,220和222。所述指令在由处理器240执行时可致使计算装置210向应用218B提供关于应用218A的信息,所述应用218B确定应用218A的情境且基于所述情境检索相关数据对象。
UI模块220可以包括图1的计算设备110的UI模块120的所有功能,并且可以执行与UI模块120类似的操作,用于例如管理计算设备210在UID 212处提供的用户界面(例如,用户界面102A和102B),以有助于计算设备110的用户与应用218A和218B之间的交互。例如,计算设备210的UI模块220可以从应用218A和218B接收信息,该信息包括用于输出(例如,显示)伴随用户界面(例如,用户界面102B)的指令。UI模块220可以通过通信信道250从应用218B接收信息,并使用该数据来生成用户界面。UI模块220可以在通信信道250上发送显示命令和相关联的数据,以使UID 212在UID 212处呈现用户界面。
格式模块221可以包括图1的计算设备110的格式模块121的所有功能,并且可以执行与用于执行应用218B的格式模块121类似的操作。在一些示例中,格式模块221可在本地(例如,在处理器240处)执行以提供与在应用218A内创建数据对象相关联的功能。在一些实例中,格式模块221可充当可访问计算装置210的远程伴随服务的接口。例如,格式模块221可以是到应用218B的远程版本的接口或应用编程接口(API)。
一个或多个相关应用224表示在计算设备210处执行并且可从计算设备210访问的所有各种单独应用和服务,所有各种单独应用和服务可由应用218B和情境模块222访问以向用户提供信息和/或执行任务。相关应用224的许多示例可以存在并且包括电子邮件应用,聊天或消息应用,日历应用,文档处理应用,联系人存储应用,搜索应用,地图或导航应用,运输服务应用(例如,公共汽车或火车跟踪应用),社交媒体应用,因特网浏览器应用,或可以在计算设备210处执行的任何和所有其它应用。通常,一个或多个相关应用224可以包括与应用218A相同的套件中的任何应用,可以与应用218A交换数据的任何应用,由与应用218A相同的公司开发的任何应用,或者可以与数据存储设备中与应用218A相同的内容交互的任何应用。
如贯穿本公开所使用的,术语“情境”用于描述可由格式模块221、情境模块222和应用218B使用的任何信息,以定义计算设备和计算设备的用户可以在特定时间使用应用218A执行的任务或与关于该任务的细节。例如,在接收到来自用户的显式许可之后,应用218B可以接收关于使用应用218A执行的当前状态或当前任务的信息,并基于该信息确定情境。通常,应用218B可以基于应用218A的内容页面中的信息来确定情境,至少一部分情境可以被输出以便在图形用户界面中显示。内容页面可以包括各种内容数据对象或内容数据结构,每个内容数据对象或内容数据结构可以包括应用218B可分析以确定应用218A的情境的文本,图像,媒体,音频,元数据,计算机代码,或统一资源定位符(URL)信息。
此外,对于贯穿本公开的描述,可以向用户提供控件,允许用户在分析情境的应用时选择本文描述的系统,程序或特征是否以及何时能够收集用户信息(例如,关于用户的社交网络,社交动作或活动,职业,用户的偏好或用户的当前位置的信息),若是,则用户从服务器发送内容或通信。此外,在存储或使用某些数据之前,可以以一种或多种方式处理这些数据,从而去除个人可识别信息。例如,可以处理用户的身份,从而不能确定用户的个人可识别的信息,或者可以在获得位置信息的地方(例如城市,邮政编码或州级)概括用户的地理位置,从而不能确定用户的特定位置。因此,用户可以控制收集关于用户的什么信息,如何使用该信息以及向用户提供什么信息。
计算设备210内的一个或多个存储组件248可以存储用于在计算设备210的操作期间处理的信息(例如,计算设备210可以存储在计算设备210处执行期间由模块218A,218B,220,221和222访问的数据)。在一些示例中,存储组件248是临时存储器,意味着存储组件248的主要目的不是长期存储。计算装置210上的存储组件248可经配置以将信息短期存储为易失性存储器,且因此在断电时不保留所存储的内容。易失性存储器的示例包括随机存取存储器(RAM),动态随机存取存储器(DRAM),静态随机存取存储器(SRAM)以及本领域已知的其它形式的易失性存储器。
在一些示例中,存储组件248还包括一个或多个计算机可读存储介质。在一些示例中,存储组件248包括一个或多个非暂时性计算机可读存储介质。存储组件248可经配置以存储比通常由易失性存储器存储的更大量的信息。存储组件248可进一步经配置以将信息长期存储为非易失性存储器空间并在通电/断电循环之后保留信息。非易失性存储器的实例包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(EPROM)或电可擦除可编程(EEPROM)存储器的形式。存储组件248可存储与模块218A,218B,220,221和222以及数据存储器226相关联的程序指令和/或信息(例如,数据)。存储组件248可包括经配置以存储与模块218A,218B,220,221和222以及数据存储器226相关联的数据或其它信息的存储器。
通信信道250可互连组件212,240,242,244,246和248中的每一个,以用于组件间通信(物理地,通信地和/或操作地)。在一些示例中,通信信道250可以包括系统总线,网络连接,进程间通信数据结构或用于传送数据的任何其它方法。
计算设备210的一个或多个通信单元242可以通过在一个或多个网络上发送和/或接收网络信号来经由一个或多个有线和/或无线网络与外部设备通信。通信单元242的示例包括网络接口卡(例如,诸如以太网卡),光收发器,射频收发器,GPS接收器或可发送和/或接收信息的任何其它类型的设备。通信单元242的其它示例可以包括短波无线电,蜂窝数据无线电,无线网络无线电,以及通用串行总线(USB)控制器。
计算设备210的一个或多个输入组件244可以接收输入。输入的示例是触觉,音频和视频输入。在一个示例中,计算设备210的输入组件242包括存在敏感输入设备(例如,触摸敏感屏幕,PSD),鼠标,键盘,语音响应系统,相机,麦克风或用于检测来自人或机器的输入的任何其它类型的设备。在一些示例中,输入组件242可包括一个或多个传感器组件,一个或多个位置传感器(GPS组件,Wi-Fi组件,蜂窝式组件),一个或多个温度传感器,一个或多个移动传感器(例如,加速度计,陀螺仪),一个或多个压力传感器(例如,气压计),一个或多个环境光传感器和一个或多个其它传感器(例如,红外接近传感器,湿度计传感器等)。举几个其它非限制性示例,其它传感器可以包括心率传感器,磁力计,葡萄糖传感器,嗅觉传感器,罗盘传感器,步进计数器传感器。
计算装置210的一个或多个输出组件246可产生选定形态的输出。形态的示例可以包括触觉通知,听觉通知,视觉通知,机器生成的语音通知或其它形态。在一个示例中,计算设备210的输出组件246包括呈现敏感显示器,声卡,视频图形适配卡,扬声器,阴极射线管(CRT)监视器,液晶显示器(LCD),或任何其它类型的用于以所选方式向人或机器产生输出的设备。
计算设备210的UID 212可以类似于计算设备110A的UID 112,并且包括显示组件202和存在敏感输入组件204。显示组件202可以是由UID 212显示信息(例如,视觉指示)的屏幕,而呈现敏感输入组件204可以在显示组件202处和/或附近检测数据对象。
尽管被示为计算设备210的内部组件,但是UID 212也可以表示与计算设备210共享数据路径以用于发送和/或接收输入和输出的外部组件。例如,在一个示例中,UID212表示位于计算设备210的外部封装(例如,移动电话上的屏幕)内并且物理地连接到计算设备210的外部封装的计算设备210的内置组件。在另一示例中,UID 212表示计算设备210的外部组件,该外部组件位于计算设备210的封装或外壳外部并且与计算设备210的封装或外壳物理分离(例如,与计算设备210共享有线和/或无线数据路径的监视器,投影仪等)。
计算设备210的UID 212可以检测二维和/或三维手势作为来自计算设备210的用户的输入。例如,UID 212的传感器可以检测在UID 212的传感器的阈值距离内的用户的移动(例如,移动手,手臂,笔,指示笔等)。UID 212可以确定运动的二维或三维矢量表示,并且将矢量表示与具有多个维度的手势输入(例如手波,收缩,夹紧,笔划等)相关。换句话说,UID 212可以检测多维手势,而不需要用户在UID 212输出用于显示的信息的屏幕或表面处或附近进行手势。代替的,UID 212可以检测在传感器处或附近执行的多维手势,该传感器可以位于或不位于UID 212输出用于显示的信息的屏幕或表面附近。
根据本公开的技术,UI模块220可以为当前在计算设备210上执行的应用218A生成内容页面。在图2的示例中,应用218A是记笔记应用。UI模块220还可以执行应用218B以生成用于应用218B(例如,幻灯片呈现应用)的内容页面。在图2的示例中,应用218A的内容页面可以包括一个或多个笔记对象,并且应用218B的内容页面包括一个或多个图形幻灯片对象。相应应用的内容页面都可以被包括在用户界面中。
格式模块221可以从应用218B接收第一数据对象,并且将第一数据对象转发到应用218A。第一数据对象的格式特定于应用218B,并且第一数据对象包括第一组一个或多个数据结构。例如,应用218A可以从应用218B接收一个或多个图形幻灯片对象。在图2的示例中,一个或多个图形幻灯片对象可以以特定于应用218B的特定格式示出。换句话说,图形幻灯片对象可以被构造为使得应用218B可以处理图形幻灯片对象,创建在结构上类似于图形幻灯片对象的图形幻灯片对象,并且使用图形幻灯片对象执行特定功能,其中诸如应用218A的其他应用可以不被配置为执行这些相同的动作。诸如应用218A的其它应用可以访问存储在图形幻灯片对象内的内容,但是以只读方式,其中其它应用可以从图形幻灯片对象的数据结构中提取内容,但是可以不改变或删除现有的数据对象,或者创建附加的数据对象。
响应于接收到第一数据对象,应用218A创建第二数据对象(例如,一个或多个笔记对象)。第二数据对象包括第二组一个或多个数据结构。一个或多个创建的笔记对象的格式是特定于应用218A的,并且不同于一个或多个图形幻灯片对象的格式。类似于一个或多个图形幻灯片对象和应用218B的关系,一个或多个笔记对象可以被构造为使得应用218A可以处理一个或多个笔记对象,创建在结构上类似于一个或多个笔记对象的笔记对象,并且使用一个或多个笔记对象执行特定功能,其中诸如应用218B的其他应用可以不被配置为执行这些相同的动作。
具有第一数据对象和第二数据对象,应用218A可以处理第一数据对象以确定和提取第一数据对象(例如,一个或多个图形幻灯片对象)的内容。例如,对于第一对象的第一组一个或多个数据结构中的至少一个数据结构,应用218A可以从第一数据对象的相应数据结构中提取一个或多个值。使用与第一数据对象的相应数据结构(例如,可扩展标记语言(XML)标签或关于内容的结构,位置或其它特性的推断数据)相关联的元数据,应用218A可以为与相应数据相对应的第二数据对象选择第二组一个或多个数据结构中的特定数据,并将来自第一数据对象的相应数据结构的一个或多个值插入到第二数据对象的特定数据结构中。
在各种示例中,一个或多个图形幻灯片对象中的每一个可以包括各种数据,诸如文本的主题序列,文本的主序列,一个或多个图像,一个或多个视频,数学方程和格式化列表中的至少一个。此外,每个图形幻灯片对象可以包括不同的数据结构。所有这些数据可以被包括在单个数据结构或多个数据结构中。根据一个或多个图形幻灯片对象内的特定数据结构,格式模块221可以不同地处理内容。在任何情况下,格式模块221可以从一个或多个图形幻灯片对象中的一个或多个的一个或多个数据结构中提取内容。
应用218A可以从一个或多个图形幻灯片对象中提取内容,并填充一个或多个笔记对象的数据结构,以基于应用218B中的数据对象的内容在应用218A中创建一个或多个笔记对象。或者使用与一个或多个图形幻灯片对象的各个不同数据结构相关联的元数据,或者通过解析所提取的内容,格式模块221可以在一个或多个笔记对象中选择适合所提取的内容的相应数据结构。例如,应用218A可以使用笔记对象109A的硬编码信息(例如,标头或标题XML标签),或指示标头和标题通常如何出现在各种文档中(例如,字体大小,字体权重,文本对齐,文本位置等)的推理数据来确定短语是标头或标题。在一些示例中,在创建第二数据对象时,格式模块221可针对第一数据对象的一个或多个数据结构的每一数据结构读取与第一数据对象的相应数据结构(例如,一个或多个图形幻灯片对象)相关联的元数据。然后,格式模块221可基于与相应数据结构相关联的元数据来选择所创建的笔记对象的一个或多个数据结构的特定数据结构,并将来自图形幻灯片对象的相应数据结构的一个或多个值插入到笔记对象的特定数据结构中。
例如,特定图形幻灯片对象的一个或多个数据结构可以包括标题数据结构和主体数据结构。对于图形幻灯片对象的标题数据结构,格式模块221可以选择所创建的笔记对象的标题数据结构,并且将来自图形幻灯片对象的标题数据结构的一个或多个值插入到所创建的笔记对象的标题数据结构中。对于图形幻灯片对象的主体数据结构,格式模块221可以选择所创建的笔记对象的主体数据结构,并且将来自图形幻灯片对象的主体数据结构的一个或多个值插入到所创建的笔记对象的主体数据结构中。
在一些其它示例中,特定的图形幻灯片对象可以包括值的列表。这样,格式模块221可创建笔记对象以包括值列表的图像或描绘值列表的图表。该特征还可以用在应用218B是包括值列表(例如,表)的电子表格应用的示例中。如果选择将该值列表发送到应用218A,则格式模块221可以将该值列表改变为描绘电子表格应用中所示的值的图像,或者基于该列表中的值创建表。在其它示例中,格式模块221可再现值列表,该值列表是应用218A可使用的格式的值的可编辑表。
在某些情况下,图形幻灯片对象可以包括图像。在这样的示例中,格式模块221可以基于对应用218A中的图像的一个或多个要求来有条件地格式化第一数据对象的图像。例如,当在UID 212上输出以显示时,笔记对象的大小可以小于图形幻灯片对象。这样,格式模块221可以裁剪所选择的图像或收缩整个图像,使得图像将适合较小的显示尺寸。格式模块221还可降低质量,色彩特性或执行任何其它图像编辑功能以满足任何大小,色彩,文件大小,质量或任何其它特征要求。然后,格式模块221可以在创建期间将有条件地格式化的图像插入到笔记对象中。
在创建第二数据对象时,格式模块221可以使用应用218A创建多个数据对象,每个数据对象包括第一数据对象的相应数据结构的至少一部分。多个数据对象可以包括第二数据对象,并且多个数据对象中的每个数据对象的相应格式可以特定于应用218A并且不同于第一数据对象的格式。例如,在应用218A是幻灯片呈现应用且应用218B是记笔记应用的示例中,应用218B中的笔记对象可以包括标头和项目符号列表(例如,类似于图1的笔记对象109A)。在这样的情况下,格式模块221可以创建多个图形幻灯片对象,每个图形幻灯片对象包括标头和/或项目符号列表的一部分,而不是创建包括标头和项目符号列表的单个图形幻灯片对象。例如,第一图形幻灯片对象可以包括笔记对象的标头作为主标题幻灯片,来自项目符号列表的每一项都被关联到不同的图形幻灯片对象,该项被显示为具有空主体部分的相应图形幻灯片对象的标头,用户可以将该空主体部分填充为他们认为合适。在其它示例中,格式模块221可以创建与笔记对象的项目符号列表中的项目的数量相等的图形幻灯片对象的数量,其中笔记对象的标头是每个图形幻灯片对象的标头,并且其中项目符号列表的单个项目填充特定图形幻灯片对象的主体部分。
在一些示例中,第一数据对象可以被包括在多个数据对象中,其中多个数据对象中的每个数据对象包括相应的内容和相应的元数据。例如,第一数据对象可以是电子表格内的第一值,并且多个数据对象中的每个数据对象可以是与第一值在同一标头下的值。在一些实例中,在应用218B内,可以使用被认为是数据对象的元数据的描述性语言来标记应用内的一个或多个数据对象,其中具有作为第一数据对象的公共标签的每个数据对象被包括在多个数据对象中。格式模块221可使用应用218A接收第一数据对象(例如,第一值)。格式模块221可选择具有与第一值相同的相应元数据的每一值(即,在与第一值相同的标头下的每一值)。格式模块221可以将包括第一值的标头下的每个值插入到第二数据对象中。以此方式,格式模块221可仅通过单个用户交互在应用218A与218B之间有效地移动多条数据,进一步减少在替代应用中再现数据所花费的时间。
在一些示例中,情境模块222可以在格式模块221接收到第一数据对象之前,使用应用218B接收与应用218A的内容页面相关联的信息。第一应用的内容页面的至少第一部分可以被包括在UID 212的图形用户界面中。情境模块222可使用应用218B并基于与应用218A的内容页面相关联的信息来确定应用218A的情境。情境模块222可使用应用218B并至少部分地基于应用218A的情境来确定来自与应用218A(例如,相关应用224)相关的一个或多个应用的每一应用的相应数据对象集合。相应的数据对象组可以包括第一数据对象。UI模块220可以使用应用218B并且至少部分地基于相应的数据对象集合来生成用于应用218B的内容页面,该内容页面包括来自相应的数据对象集合中的至少一个的至少一个数据对象的一个或多个图形指示。该至少一个数据对象可以包括第一数据对象。虽然用于应用218A的内容页面的至少第二部分被包括在图形用户界面中,但是UI模块220可以使用应用218B输出用于在计算设备210的图形用户界面内显示应用218B的内容页面的至少一部分。
换句话说,应用218B可以是从相关应用224检索数据对象的伴随应用。格式模块221可接收所检索的数据对象之一,确定所接收的数据对象的内容,且基于所接收的数据对象的内容在应用218A内创建数据对象。关于应用218B如何检索这些数据对象的其它细节将在下面参考图8-10进行描述。
作为另一示例,应用218A可以是电子表格应用,并且第二数据对象可以是用于电子表格应用的一个或多个单元格。在一些这样的示例中,第一数据对象的至少一个数据结构可以包括方程。应用218A还可以确定用于电子表格应用的当前文档的一个或多个标头与第一数据对象的方程中的一个或多个变量相匹配。基于该匹配,应用218A然后可以格式化第二数据对象,使得与当前文档的相应一个或多个标头匹配的方程中的一个或多个变量被第二数据对象的方程中的匹配的一个或多个标头替换。
尽管上面已经描述了记笔记,电子表格,伴随和幻灯片呈现应用,但是许多其它类型的应用可以利用这里描述的技术。例如,应用218A或应用218B可以是字处理应用,电子邮件应用,日历应用,文件存储应用,消息应用,或基于可包含在用于其它应用的数据对象中的特定数据来创建数据对象的任何其它应用。
图3A-3B是示出根据本公开的一个或多个方面的示例性计算设备的一系列示例性用户界面的概念图,所述示例计算设备被配置为自动分析被格式化为在第一应用中使用的数据对象,并将该数据对象修改到具有不同格式的第二应用。下面在图1的计算设备110的情境中描述图3A-3B。例如,根据本公开的一个或多个方面,当在计算设备110的一个或多个处理器上执行时,格式模块121可以执行应用118A和118B以产生图形用户界面310和320。仅出于说明的目的,下面在图1的计算设备110的情境中描述图3A-3B。
在图3A的示例中,计算设备110可以输出GUI 310。在计算设备110输出GUI310时,计算设备110可以执行两个不同的应用。第一应用可以是幻灯片呈现应用,而第二应用可以是记笔记应用。GUI 310可以显示与每个应用相关联的内容页面。幻灯片呈现应用可以包括幻灯片对象,其中标题和主体可以各自可选地插入幻灯片中。在图3A的示例中,记笔记应用可以包括具有标头和文本列表的单个笔记对象。
在计算设备110上执行的幻灯片呈现应用可以从记笔记应用接收笔记对象。特别格式化以供记笔记应用使用的笔记对象可能不是可由幻灯片呈现应用使用的形式。这样,幻灯片呈现应用可以确定笔记对象的内容并基于笔记对象的内容创建多个幻灯片对象。例如,多个创建的幻灯片对象中的每一个可以具有与笔记对象的标头相同的标题。此外,每个创建的幻灯片对象的主体可以包括笔记对象中的列表中的项目之一的内容。换句话说,所创建的幻灯片对象的数量可以等于包含在笔记中的列表中的项目的数量,从而根据单个笔记对象的内容创建整个幻灯片呈现。这样,幻灯片呈现应用重新格式化笔记对象,使得笔记对象的内容是幻灯片呈现应用可使用的形式,从而基于单个笔记对象创建多个幻灯片对象。在图3B中,计算设备110可以输出GUI 320,其示出所创建的包括笔记对象的内容的幻灯片对象。
图4A-4B是示出根据本公开的一个或多个方面的用于示例计算设备的另一系列示例用户界面的概念图,所述示例计算设备被配置为自动分析被格式化为在第一应用中使用的数据对象,并将该数据对象修改到具有不同格式的第二应用。下面在图1的计算设备110的情境中描述图4A-4B。例如,根据本公开的一个或多个方面,当在计算设备110的一个或多个处理器上执行时,格式模块121可以执行应用118A和118B以产生图形用户界面410和420。仅出于说明的目的,下面在图1的计算设备110的情境中描述图4A-4B。
在图4A的示例中,计算设备110可以输出GUI 410。在计算设备110输出GUI410时,计算设备110可以执行两个不同的应用。第一应用可以是幻灯片呈现应用,而第二应用可以是记笔记应用。GUI 410可以显示与每个应用相关联的内容页面。幻灯片呈现应用可以包括幻灯片对象,其中标题和主体可以各自可选地插入幻灯片中。在图4A的示例中,记笔记应用可以包括多个笔记对象,其中一些笔记对象具有标头和内容,而其它笔记对象仅具有内容。此外,每个笔记对象在主标签“meeting”下被分类。
在计算设备110上执行的幻灯片呈现应用可以接收来自记笔记应用的多个笔记对象。每个都被专门格式化以在笔记应用中使用的笔记对象可能不是可由幻灯片呈现应用使用的形式。这样,幻灯片呈现应用可以确定每个笔记对象的相应内容,并为每个笔记对象创建相应的幻灯片对象,其中相应的幻灯片对象基于每个笔记对象的内容。
例如,第一幻灯片对象可以仅包括基于用于对多个数据对象进行分组的标签“meeting”的标题。每个后续的幻灯片可以基于笔记对象本身,包括作为特定幻灯片的标题的相应笔记对象(如果存在的话)的标头。此外,每个创建的幻灯片对象的主体可以包括来自多个笔记对象的一个笔记对象的内容。换句话说,所创建的幻灯片对象的数量可以等于与特定标签相关联的笔记对象的数量,加上用于标签本身的附加幻灯片对象,从而从单个笔记对象的内容创建整个幻灯片呈现。这样,幻灯片呈现应用重新格式化笔记对象,使得笔记对象的内容是幻灯片呈现应用可使用的形式,从而基于多个笔记对象创建多个幻灯片对象。在图4B中,计算设备110可以输出GUI 420,其示出所创建的包括笔记对象的内容的幻灯片对象。
图5A-5B是示出根据本公开的一个或多个方面的用于示例计算设备的另一系列示例用户界面的概念图,所述示例计算设备被配置为自动分析被格式化为在第一应用中使用的数据对象,并将该数据对象修改到具有不同格式的第二应用。以下在图1的计算设备110的情境中描述图5A-5B。举例来说,根据本公开的一个或多个方面,格式模块121在计算装置110的一个或多个处理器处执行时可执行应用118B以产生图形用户界面510和520。仅出于说明的目的,以下在图1的计算设备110的情境中描述图5A-5B。
虽然前面的示例中的每一个都示出了基于笔记对象的幻灯片对象的创建,但是计算设备110也可以执行该功能的逆功能。换句话说,基于一个或多个幻灯片对象,计算设备110可以创建一个或多个笔记对象。在图5A的示例中,计算设备110可以输出GUI510。在计算设备110输出GUI 510时,计算设备110可以执行两个不同的应用。第一应用可以是幻灯片呈现应用,而第二应用可以是记笔记应用。GUI 510可以显示与每个应用相关联的内容页面。在图5A的示例中,幻灯片呈现应用可以包括多个幻灯片对象,其中一些幻灯片对象具有标题和主体内容,而其它幻灯片对象仅具有内容。此外,第一幻灯片对象仅包括标题。
在计算设备110上执行的记笔记应用可以从幻灯片呈现应用接收多个幻灯片对象。每个都被专门格式化以在幻灯片呈现应用中使用的幻灯片对象可能不是笔记应用可用的形式。这样,记笔记应用可以确定每个幻灯片对象的相应内容,并为每个幻灯片对象创建相应的笔记对象,其中相应的笔记对象基于每个幻灯片对象的内容。
例如,第一幻灯片对象可以仅包括标题“meeting”。这样,记笔记应用可以标记所创建的笔记对象“meeting”中的每一个。包括在该标签下的每个笔记对象可以基于剩余的幻灯片对象,包括相应幻灯片对象(如果存在)的标题作为特定笔记对象的标头。此外,每个创建的笔记对象的主体可以包括来自多个幻灯片对象的一个幻灯片对象的内容。这样,记笔记应用重新格式化幻灯片对象,使得幻灯片对象的内容是记笔记应用可使用的形式,从而基于多个幻灯片对象创建多个笔记对象。在图5B中,计算设备110可以输出GUI 520,其示出所创建的包括笔记对象的内容的幻灯片对象。
图6A-6B是示出根据本公开的一个或多个方面的用于示例计算设备的另一系列的示例用户界面的概念图,所述示例计算设备被配置为自动分析被格式化为在第一应用中使用的数据对象,并将该数据对象修改到具有不同格式的第二应用。图6A-6B是下面在图1的计算设备110的情境中描述。例如,根据本公开的一个或多个方面,当在计算设备110的一个或多个处理器上执行时,格式模块121可以执行应用118A和118B以产生图形用户界面610和620。仅出于说明的目的,下面在图1的计算设备110的情境中描述图6A-6B。
如图6A所示,除了幻灯片呈现应用或记笔记应用之外的其他应用可利用本文所述的技术。例如,在图6A的示例中,第一应用可以是电子表格应用,而第二应用可以是记笔记应用。
在图6A的示例中,计算设备110可以输出GUI 610。GUI 610可以显示与每个应用相关联的内容页面。在图6A的示例中,电子表格应用可以包括多个单元格对象,其中已经放置了内容。GUI 610中的四个单元格对象是标头单元格对象(即,包括文本“Object”,“Mass(kg)”,“Acceleration(m/s2)”和“Force(N)”的单元格。此外,在图6A的示例中,记笔记应用可以包括单个笔记对象,其包括方程“Force=Mass x Acceleration”。
在计算设备110上执行的电子表格应用可以从记笔记应用接收笔记对象。特别格式化以供记笔记应用使用的笔记对象可能不是电子表格应用可使用的形式。这样,电子表格应用可以确定笔记对象的内容并基于笔记对象的内容创建一个或多个单元格对象。
例如,在图6B的示例中,计算设备110可以基于笔记对象中的方程创建三个单元格对象。计算设备110可以确定笔记对象的方程中的变量与已经填充的单元格对象中存在的标头中的两个相匹配(即,mass和acceleration)。这样,计算设备110可以用对与所列出的变量相匹配的电子表格中的列的引用来替换方程中的变量。此外,计算设备110可以确定方程中的乘积与第三标头(即,force)匹配。这样,计算设备110可以将重新格式化的方程插入到在剩余单元格中具有内容的一行或多行中的“force”列中。以这种方式,电子表格应用重新格式化笔记对象,使得笔记对象的内容是电子表格应用可使用的形式,从而将方程转换为由电子表格应用识别的形式。计算设备110可以输出GUI 620,其示出所创建的包括笔记对象的内容的单元格对象。
图7是说明根据本发明的一个或多个方面的示例计算装置的进一步示例操作的流程图,所述示例计算装置经配置以将经格式化以在第一应用中使用的数据对象传递到具有不同格式的第二应用。下面在图1的计算设备110的情境中描述图7。例如,根据本公开的一个或多个方面,当在计算设备110的一个或多个处理器上执行时,格式模块121可以执行应用118B以执行操作700-720。仅出于说明的目的,下面在图1的计算设备110的情境中描述图10。
根据本公开的技术,计算设备110使用在计算设备110处执行的第一应用并且从在计算设备110处执行的第二应用接收第一数据对象(700)。第一数据对象的格式可以特定于第二应用,并且第一数据对象可以包括第一组一个或多个数据结构。在一些情况下,第一数据对象的至少一个数据结构的一个或多个值可以包括文本的标题序列,文本的主序列,一个或多个图像,一个或多个视频,数学方程和格式化列表中的至少一个。使用第一应用,计算设备110可以基于与第一对象的至少一个数据结构相关联的元数据将内容分类为这些类型的内容中的一种,元数据包括对应于内容的结构,布局或视觉特性的硬编码标签(例如,XML标签)或推理数据。
计算设备110使用第一应用创建第二数据对象(710)。第二数据对象可以为第一应用被专门格式化,并且不同于第一数据对象。第二数据对象可以包括第二组一个或多个数据结构。
对于第一组一个或多个数据结构中的至少一个数据结构,计算设备110可以从第一数据对象的相应数据结构中提取一个或多个值(720)。基于与第一数据对象的相应数据结构相关联的元数据,计算设备110可以为第二数据对象选择第二组一个或多个数据结构中的特定数据结构(730)。然后,计算设备110可以将来自第一数据对象的相应数据结构的一个或多个值插入到第二数据对象的特定数据结构中(740)。在一些示例中,计算设备110可以输出用于显示的图形用户界面,该图形用户界面包括第二数据对象的内容的至少一部分。
计算设备110可以确定第一数据对象的另一数据结构是否将被包括在第二数据对象中(750)。如果计算设备110确定存在要被包括在第二数据对象中的第一数据对象的另一数据结构(750的“是”分支),则计算设备110可以重复该过程(步骤720-740),用于从数据结构中提取内容并将该内容插入到第二数据对象中的数据结构中。如果计算设备110确定不存在要被包括在第二数据对象中的第一数据对象的另一数据结构(750的“否”分支),则计算设备110可以终止该过程。
例如,第一数据对象的一个或多个数据结构可以包括标题数据结构和主体数据结构。对于第一数据对象的标题数据结构,计算设备110可以选择第二数据对象的标题数据结构,并且将来自第一数据对象的标题数据结构的一个或多个值插入到第二数据对象的标题数据结构中。对于第一数据对象的主体数据结构,计算设备110可以选择第二数据对象的主体数据结构,并且将来自第一数据对象的主体数据结构的一个或多个值插入到第二数据对象的主体数据结构中。
作为另一示例,第一应用是电子表格应用,并且第二数据对象可以是用于电子表格应用的一个或多个单元格。在一些这样的示例中,在确定第一数据对象的内容时,计算设备110确定第一数据对象的内容包括方程。计算设备110可以确定用于电子表格应用的当前文档的一个或多个标头与方程中的一个或多个变量相匹配。然后,计算设备110可以格式化第二数据对象,使得与当前文档的相应一个或多个标头相匹配的方程中的一个或多个变量被第二数据对象的方程中的匹配的一个或多个标头替换。
第一数据对象还可以包括用于值列表的数据结构。这样,计算设备110可以将第二数据对象创建为值列表的图像或描绘值列表的图表。
第一数据对象还可以包括图像的数据结构。在这样的示例中,计算设备110可以基于对第一应用中的图像的一个或多个要求来有条件地格式化第一数据对象的图像。然后,计算设备110可以在创建期间将有条件地格式化的图像插入到第二数据对象中。
在创建第二数据对象时,计算设备110可以使用第一应用创建多个数据对象,每个数据对象包括第一数据对象的相应数据结构的至少一部分。多个数据对象可以包括第二数据对象,并且用于多个数据对象中的每个数据对象的相应格式可以是特定于第一应用的,并且可以不同于第一数据对象的格式。
第一应用还可以包括幻灯片呈现应用,其中第二数据对象是用于幻灯片呈现应用的一个或多个图形幻灯片。第二应用可以是记笔记应用,并且第一数据对象是用于记笔记应用的一个或多个笔记对象。在其它示例中,第一应用可以是记笔记应用,第二数据对象可以是用于记笔记应用的一个或多个笔记对象,第二应用可以是幻灯片呈现应用,并且第一数据对象可以是用于记笔记应用的一个或多个笔记图形幻灯片。
第一数据对象可以被包括在多个数据对象中,其中多个数据对象中的每个数据对象包括相应的内容和相应的元数据。计算设备110还可以使用第一应用接收多个数据对象。计算设备110可以使用第一应用选择具有与第一数据对象相同的相应元数据的多个数据对象中的每一个数据对象。计算设备110可以使用第一应用将第一数据对象的至少一个数据结构的一个或多个值以及多个数据对象的每个数据对象的一个或多个相应数据结构的一个或多个相应值插入到第二数据对象中,其中所述多个数据对象的每个数据对象的一个或多个相应数据结构的一个或多个相应值具有与第一数据对象相同的相应元数据。
计算设备110可以在接收第一数据对象之前,使用第二应用接收与在计算设备处执行的第一应用的内容页面相关联的信息。用于第一应用的内容页面的至少第一部分可以被包括在计算设备110的图形用户界面中。计算设备110可以使用第二应用并且基于与第一应用的内容页面相关联的信息来确定第一应用的情境。计算设备110可以使用第二应用并且至少部分地基于第一应用的情境,为与第一应用相关的一个或多个应用中的每个应用确定相应组的数据对象。相应组的数据对象可以包括第一数据对象。计算设备110可以使用第二应用并且至少部分地基于相应组的数据对象来生成用于第二应用的内容页面,该内容页面包括来自相应组的数据对象中的至少一个一组的至少一个数据对象的一个或多个图形指示。该至少一个数据对象可以包括第一数据对象。当用于第一应用的内容页面的至少第二部分被包括在图形用户界面中时,计算设备110可以使用第二应用输出用于计算设备110的图形用户界面内的第二应用的内容页面的至少一部分,以供显示。
在确定第二应用的情境时,计算设备110可以使用第二应用来标识用于第一应用的内容页面中的一个或多个内容对象,提取一个或多个内容对象中的每一个的至少一个相应属性,并且至少部分地基于一个或多个内容对象中的每一个的至少一个相应属性中的一个或多个属性来确定第一应用的情境。一个或多个内容对象可以包括文本,图像,元数据,应用状态,应用代码,字段标识符,文件名或文件类型中的一个或多个。
在为与第一应用相关的一个或多个应用的每个应用确定相应组的数据对象时,计算设备110可以使用第二应用,基于情境为与第一应用相关的一个或多个应用中的每一个应用构建相应的搜索查询,并从相应的搜索查询执行每个相应的搜索查询,以从与第一应用相关的一个或多个应用的相应应用的数据中检索相应组的数据对象。
与第一应用相关的一个或多个应用可以包括与第一应用相关的至少两个应用,并且在生成用于第一应用的内容页面时,计算设备110可以使用第二应用并且至少部分地基于用于与第一应用相关的至少两个应用的相应组的数据对象来生成用于第二应用的内容页面,所述用于第二应用的内容页面包括用于与第一个应用相关的至少两个应用中的每个应用的、来自相应组数据对象的至少一个数据对象的至少一个图形指示。
计算设备110还可以使用第二应用接收用户输入的指示,该用户输入的指示从包括在第二应用的内容页面中的至少一个数据对象的一个或多个图形指示中选择第一数据对象的第一图形指示。使用第二应用,计算设备110可以将第一数据对象发送到第一应用。
计算设备110还可以使用第二应用接收对表示包括在第一应用的内容页面中的一个或多个内容对象的一个或多个图形指示的选择的指示,基于一个或多个内容对象确定第一应用的更新的情境,至少部分地基于第一应用的更新的情境,确定与第一应用相关的一个或多个应用中的每个应用的相应更新组的数据对象,至少部分地基于相应更新组的数据对象生成用于第一应用的更新的内容页面,该更新的内容页面包括来自相应更新组的数据对象中的至少一组中的至少一个数据对象的一个或多个图形指示,并且当用于第一应用的内容页面的至少第三部分被包括在图形用户界面中时,在计算设备110的图形用户界面内输出第二应用的更新的内容页面的一部分,用于显示。
在输出用于第二应用的内容页面的部分时,计算设备110可以在用于第一应用的内容页面的至少第二部分被包括在图形用户界面中的同时,使用第二应用将图形用户界面的一部分替换为用于第一应用的内容页面的部分。
输出用于显示的第二应用的内容页面的部分包括来自第一组数据对象中的至少一个数据对象的一个或多个图形指示,该第一组数据对象用于来自与第一应用相关的一个或多个应用中的应用。计算设备110还可以接收用户输入的指示,该用户输入选择与第一应用相关的一个或多个应用不同的应用。计算设备110可以至少部分地基于相应组的数据对象来生成用于第一应用的更新的内容页面,所述更新的内容页面包括来自第二组数据对象的至少一个数据对象的一个或多个图形指示,所述第二组数据对象用于与第一应用相关的一个或多个应用不同的应用。当用于第一应用的内容页面的至少第二部分被包括在图形用户界面中时,计算设备110可以在计算设备的图形用户界面内输出用于第二应用的更新的内容页面的一部分以供显示。
计算设备110可以在确定情境之前接收用户输入的指示以开始执行第二应用,并且响应于接收到用户输入的指示,使用第二应用来确定情境。在一些示例中,第二应用可以是伴随应用。
图8是说明根据本发明的一个或多个方面的示例计算装置810的概念图,该示例计算装置810经配置以识别和显示被确定为与正执行的任务相关的信息。在图8的示例中,计算设备810可以是并且包括类似于图1的计算设备110的组件。计算设备810包括UID 812,其可以类似于图1的UID 112。图8的示例示出了其中传递到应用818A的数据对象源自伴随应用的示例,该伴随应用可以标识和显示来自被确定为与正在执行的任务相关的一个或多个相关应用的信息。
计算设备810还包括应用818A和818B,用户界面(UI)模块820和情境模块822。应用818A和818B以及模块820和822可以使用驻留在计算设备810中和/或在计算设备810处执行的软件,硬件,固件或硬件,软件和固件的混合来执行所描述的操作。计算设备810的一个或多个处理器,或多个设备的处理器,可以执行存储在计算设备810的存储器或其它非暂时性存储介质中的指令,以执行应用818A和818B以及模块820和822的操作。计算设备810可以将应用818A和818B以及模块820和822作为在底层硬件上执行的虚拟机来执行。应用818A和818B以及模块820和822可以作为操作系统或计算平台的一个或多个服务来执行。应用818A和818B以及模块820和822可以作为一个或多个可执行程序在计算平台的应用层执行。
UI模块820管理用户与UID 812和计算设备810的其它组件的交互。换句话说,UI模块820可以充当计算设备810的各种组件之间的中介,以基于UID 812检测到的用户输入进行确定,并响应于用户输入在UID 812处生成输出。UI模块820可以从计算设备810的应用,服务,平台或其它模块接收指令,以使UID 812输出用户界面(例如,用户界面802A)。UI模块820可以管理由计算设备810作为用户视图接收的输入,并且与在UID 812处呈现的用户界面交互,并且响应于从正在处理用户输入的计算设备810的应用,服务,平台或其它模块接收到附加指令来更新用户界面。
如图8所示,用户界面802A是电子邮件用户界面。然而,用户界面802A可以是在第一应用(例如应用818A)的执行期间产生的任何图形用户界面。在图8的示例中,用户界面802A包括内容对象804A(即,电子邮件通信的“to”字段),内容对象804B(即,电子邮件通信的“from”字段)和内容对象804C(即,电子邮件通信的主体)。
根据本公开的技术,UI模块820可以执行应用818A,为当前在计算设备810上执行的应用818A生成内容页面。在图8的示例中,应用818A是电子邮件应用,其是应用的网络套件的一部分。电子邮件应用的内容页面可以包括“To”字段,“From”字段,主题行,电子邮件正文区域,电子邮件列表,电子邮件链中的附加内容,或与用户的电子邮件收件箱或发件箱相关的任何附加内容,包括文本,图像,元数据,应用状态,应用代码,字段标识符,文件名或文件类型。
UI模块820可以经由UID 812输出用于显示的图形用户界面802A,该图形用户界面802A包括应用818A的内容页面的至少一部分。在图8的示例中,包括在图形用户界面802A中的内容页面的部分由内容对象804A(即,电子邮件通信的“to”字段),内容对象804B(即,电子邮件通信的“from”字段)和内容对象804C(即,电子邮件通信的主体)组成。然而,在其它实例中,UI模块820可基于UID 812中可用的图形房地产和包含在每一内容对象内的内容量来输出更多内容对象或更少内容对象。
在从用户接收到这样做的显式许可之后,情境模块822可以执行应用818B以接收与应用818A的内容页面相关联的信息。情境模块822然后可执行应用818B以基于应用818A的内容页面来确定应用818B的应用818A的情境。情境可包括关于应用818A的当前状态的任何信息,其可提供对应用818A内正执行的当前任务,将在应用818A内执行的将来任务的指示,或与应用818A相关的任何其它信息。例如,在执行应用818B之前,UI模块820可以输出对执行应用818B的显式用户许可的请求,并将与内容页面相关联的信息传送给818A。在接收到这样做的显式许可之后,情境模块822可以开始执行应用818B。如果明确的许可被拒绝,则情境模块822可以代之以制止执行应用818B。
在图8的示例中,情境模块822可以确定内容对象804A指示当前电子邮件通信是寻址到计算设备810的用户的接收到的电子邮件。情境模块822还可以确定内容对象804B指示用户的老板“Manager John”是当前电子邮件通信的作者,并且因此该电子邮件可能与工作相关。最后,情境模块822还可以确定内容对象804C指示用户的老板正在请求用户和老板两者创作的关于与公司X的交易的文档。
尽管图8的示例描述了使用UI模块820当前正输出以经由UID 812显示的内容对象的情境模块822,但情境模块822可在情境确定过程中分析内容页面内的任何内容对象,包括UI模块820当前未输出用于显示但在同一内容页面上的内容对象。例如,内容对象804C可以是对先前的电子邮件链的答复,该先前的电子邮件链被包括在内容页面上但不在屏幕上。当确定应用818A的情境时,情境模块822可以使用先前的电子邮件链作为附加数据。
至少部分地基于应用818A的情境,情境模块822可执行应用818B,以确定与应用818A相关的一个或多个应用中的每一应用的相应组的数据对象。例如,应用818A(电子邮件应用)可以是应用的网络套件的一部分。应用818B可经配置以存取来自同一网络套件内的其它应用的数据,所述其它应用将与应用818A相关。在某些情况下,可以与应用818A交换数据的任何应用可以被认为是相关的应用。此外,由与应用818A相同的公司开发的任何应用可以被认为是相关的应用。在一些实例中,可与数据存储装置中的与应用818A相同内容交互的任何应用可被视为相关应用。
在图8的示例中,应用818B将应用818A的情境确定为用户正在查看与用户的老板的电子邮件交换,以便找到用户和用户的老板在起草时协作的特定文档。然后,情境模块822可以执行应用818B,以基于所确定的情境(例如,关于公司X的文档和与所述公司X一起发生的交易)来搜索与应用818A相关的文档编辑/存储应用内的文档。应用818B可以检索与相关文档编辑/存储应用相关联的文档列表,所述文档列表包括对公司X的引用,处理用户的业务是其的一方,由用户和用户的老板共同创作的文档等。
应用818B可以将所检索的数据对象的列表转发到UI模块820,UI模块820可以生成用于应用818B的内容页面,该内容页面包括来自相应组的数据对象中的至少一组中的至少一个数据对象的一个或多个图形指示。内容页面可以包括应用818B检索到的一组数据对象的一部分或全部。UI模块820然后可以输出图形用户界面802B,该图形用户界面802B包括用于应用818B的内容页面的至少一部分,同时显示图形用户界面802A的至少一部分。
例如,应用818B可以检索一组十个文档,这些文档与公司X、用户是一方的交易、或者由用户和用户的老板共同创作的交易有关。应用818B可以基于文档与所确定的情境的匹配程度来对文档进行排序。在图8的示例中,标题为“Corporation X Deal.doc”的文档806A可以是用户和用户的老板共同创作的关于用户公司和公司X之间的交易的文档。标题为“Corporation X Fee Agreemeng.doc”的文档806B可以是用户和用户的老板共同创作的关于用户公司和公司X之间的先前费用协议的文档。标题为“Corporation R Deal.doc”的文档806C可以是用户创作的关于用户公司和公司R之间的交易的文档。UI模块820可以确定UID 812大到足以显示十个文档中的三个。UI模块820可以输出图形用户界面802B,如显示总共十个检索到的文档中的前三个文档,或者在先前生成的应用818B的排序列表中排序最高的三个文档(即,文档806A-806C)。图形用户界面802B可以是可滚动的,使得可以向用户显示最初未在图形用户界面802B中示出的其他7个文档中的每一个。
通过利用应用818B来确定在计算设备810上执行的应用818A的情境信息,计算设备810可以为用户提供一种方式来快速获得文档,文件或被确定为与由应用818A在计算设备810上执行的任务相关的任何其他存储的数据对象,而无需用户在若干不同的应用之间切换,手动导航到相应应用内的相关内容页面,或者了解在两个不同的应用之间移动数据对象需要什么输入。例如,在图8的示例中,用户可以将文档806A(用户的老板所请求的可能文档)拖入应用818A的图形用户界面的回复字段中,以将所请求的文档附加到回复电子邮件。以此方式,本发明的技术可减少在其它应用中检索相关数据对象所需的时间量及用户输入的数目,这可简化用户体验且可减少计算装置810的功耗。
通过向应用818B提供与应用818A相关联的情境信息,本公开的技术可以为用户提供快速获得文档,文件或被确定为与使用应用818A执行的任务相关的任何其它数据的方式,而无需用户在若干不同应用之间切换,手动导航到相应应用内的相关内容页面,或了解在两个不同应用之间移动数据对象需要什么输入。以此方式,本发明的技术可减少从其它应用检索相关数据对象所需的时间量及用户输入的数目,这可简化用户体验且可减少计算装置810的功耗。
图9A-9C是示出根据本公开的一个或多个方面的示例性计算设备的一系列操作的概念图,所述示例性计算设备被配置为执行伴随应用以识别和显示来自各种应用的可能与使用当前执行的应用执行的任务相关的信息。下面在图2的计算设备210的情境中描述图9。例如,根据本公开的一个或多个方面,当在计算设备210的一个或多个处理器处执行时,情境模块222可以执行应用218B以产生图形用户界面960A-960E。仅出于说明的目的,下面在图1的计算设备210的情境中描述图9。
在图9A中,计算设备210可以执行应用218A以产生图形用户界面960A。在图9A-9C的示例中,应用218A可以是字处理应用。图形用户界面960A示出用户可以在2017年8月8日编辑关于公司Z的客户会议的文本文档。包括议程在内的会议的进一步细节被包括在图形用户界面960A中。应用218A的内容页面可以是整个文本文档,即使图形用户界面960A可以仅包括文本文档的一部分。
在某一点,计算设备210可以开始执行应用218B。应用218B可基于内容页面(即,文本文档的整体)来确定应用218A的情境。应用218B可以提取关于文本文档的信息,包括文本文档的任何附加作者和文本文档的内容。基于此情境,应用218B可以从与应用218A相关的应用检索相应组的数据对象。在图9A的示例中,应用218B可以从电子邮件应用,日历应用和通讯录应用检索数据对象,每个应用与应用218A相关。这些应用的列表可以通过图形元素964来描述,这些应用的列表包括组合页面,该组合页面包括与所有应用相关的数据对象。
在图9A的示例中,应用218B可以确定文本文档的标题是“Client Meeting Kick-Off”。应用218B还可以确定相关的电子邮件应用包括来自文本文档与主题行“Re:ClientMeeting Kick-Off Agenda”的合作者的电子邮件。应用218B可以确定该电子邮件可以包括对给定当前情境的用户有用的信息,并输出电子邮件消息的图形指示962A。
应用218B还可以找到在日历应用中的单词文档中讨论的会议的日历事件,以及会议的出席者之一的联系信息。这样,应用218B还可以在图形用户界面960B中分别输出这些对象的图形指示962B和962C。
在图9B和图形用户界面960C中,用户可以从图形指示列表964中选择电子邮件应用,因为用户可以寻找讨论文本文档的特定电子邮件。这样,应用218B可以生成仅包括从电子邮件应用的数据存储中检索的电子邮件的更新的内容页面。图形指示966A可以是与最初在图形用户界面960B中示出的相同的电子邮件消息。然而,图形用户界面960C还可以包括与最初未在图形用户界面960B中显示的附加电子邮件相关联的两个附加图形指示966B和966C。
然后,应用218B可以接收用户输入的指示,该用户输入选择图形指示966A和相关联的电子邮件。这样,应用218B可以访问相关的电子邮件应用以更新图形用户界面来显示关于所选电子邮件消息的附加信息。例如,应用218B可以输出,以便在图形用户界面960D,主题行968A,联系行968B和电子邮件正文968C中显示。
在图9C中,应用218B可以接收选择电子邮件正文968C的进一步用户输入的指示。这样,在图形用户界面960E中,应用218B可以使用所选择的电子邮件正文968C来执行应用218A中的功能。在图9C的示例中,该功能与“copy and paste”功能相关,将电子邮件的正文粘贴到文本文档中。以这种方式,用户能够在多个应用之间快速导航,所述多个应用可以彼此通信并且在所述应用之间传送相关信息,而不用一直完全导航离开初始应用。
图10是说明根据本发明的一个或多个方面的示例计算装置的进一步示例操作的流程图,所述示例计算装置经配置以执行伴随应用以识别和显示来自各种应用的可能与使用当前执行的应用执行的任务相关的信息。下面在图8的计算设备810的情境中描述图10。例如,根据本公开的一个或多个方面,情境模块822在计算设备810的一个或多个处理器处执行时,可以执行应用818B以执行操作1000-1040。仅出于说明的目的,下面在图8的计算设备810的情境中描述图10。
根据本发明的技术,情境模块822可执行应用818B以接收与用于在计算装置810处执行的应用818A的内容页面相关联的信息(1000)。情境模块822然后可执行应用818B以基于应用818A的内容页面来确定应用818B的应用818A的情境(1010)。情境可包括关于应用818A的当前状态的任何信息,其可提供对应用818A内正执行的当前任务,将在应用818A内执行的将来任务的指示,或与应用818A相关的任何其它信息。
虽然图8的示例描述了使用UI模块820当前正输出的内容对象以供经由UID812显示的情境模块822,但是情境模块822可以在情境确定过程中分析内容页面内的任何内容对象,包括UI模块820当前未输出以供显示但在同一内容页面上的内容对象。例如,内容对象804C可以是对先前的电子邮件链的答复,该先前的电子邮件链被包括在内容页面上但不在屏幕上。当确定应用818A的情境时,情境模块822可以使用先前的电子邮件链作为附加数据。
至少部分地基于应用818A的情境,情境模块822可执行应用818B以从与应用818A相关的一个或多个应用确定每一应用的相应组的数据对象(1020)。例如,应用818A(电子邮件应用)可以是应用的网络套件的一部分。应用818B可经配置以存取来自同一网络套件内的其它应用的数据,所述其它应用将与应用818A相关。在某些情况下,可以与应用818A交换数据的任何应用可以被认为是相关的应用。此外,由与应用818A相同的公司开发的任何应用可以被认为是相关的应用。在一些示例中,可与数据存储装置中的与应用818A的相同内容交互的任何应用可被视为相关应用。
应用818B可以将所检索的数据对象的列表转发到UI模块820,UI模块820可以生成用于应用818B的内容页面,该内容页面包括来自相应组的数据对象中的至少一组中的至少一个数据对象的一个或多个图形指示(1030)。内容页面可以包括应用818B检索到的一组数据对象的一部分或全部。UI模块820然后可以输出图形用户界面802B,该图形用户界面802B包括用于应用818B的内容页面的至少一部分,同时显示图形用户界面802A的至少一部分(1040)。
通过利用应用818B来确定在计算设备810上执行的应用818A的情境信息,计算设备810可以为用户提供一种方式来快速获得文档,文件或被确定为与由应用818A在计算设备810上执行的任务相关的任何其他存储的数据对象,而无需用户在若干不同的应用之间切换,手动导航到相应应用内的相关内容页面,或者了解在两个不同的应用之间移动数据对象需要什么输入。例如,在图8的示例中,用户可以将文档806A(用户的老板所请求的可能文档)拖入应用818A的图形用户界面的回复字段中,以将所请求的文档附加到回复电子邮件。以此方式,本发明的技术可减少在其它应用中检索相关数据对象所需的时间量及用户输入的数目,这可简化用户体验且可减少计算装置810的功耗。
通常,上述技术描述了在计算设备上执行的两个应用之间传递信息,使得一个应用可以利用通常仅在另一个应用中可用的信息。然而,不同的应用通常具有不同格式的不同数据对象,这意味着这种数据对象的传递并不总是可能的,必须对所传递的内容进行附加的编辑,或者需要附加的手动输入来更新所复制的数据对象的格式。
如图10进一步所示,计算设备810的应用818A可以从应用818B接收数据对象(1050)。第一数据对象的格式可以特定于第二应用,并且第一数据对象可以包括第一组一个或多个数据结构。在一些情况下,第一数据对象的至少一个数据结构的一个或多个值可以包括文本的标题序列,文本的主序列,一个或多个图像,一个或多个视频,数学方程和格式化列表中的至少一个。应用818A可基于与第一对象的至少一个数据结构相关联的元数据将内容分类为这些类型的内容中的一者,所述元数据包含对应于内容的结构,布局或视觉特性的硬编码标签(例如,XML标签)或推理数据。
应用818A创建第二数据对象(1060)。第二数据对象可以为第一应用专门格式化,并且不同于第一数据对象。第二数据对象可以包括第二组一个或多个数据结构。
对于第一组一个或多个数据结构中的至少一个数据结构,应用818A可以从第一数据对象的相应数据结构中提取一个或多个值(1070)。基于与第一数据对象的相应数据结构相关联的元数据,应用818A可以为第二数据对象选择第二组一个或多个数据结构中的特定数据结构(1080)。然后,应用818A可以将来自第一数据对象的相应数据结构的一个或多个值插入到第二数据对象的特定数据结构中(1090)。
应用818A可确定第一数据对象的另一数据结构是否将被包括在第二数据对象中(1100)。如果应用818A确定存在要被包括在第二数据对象中的第一数据对象的另一数据结构(1100的“是”分支),则应用818A可以重复该过程(步骤1070-1090),用于从数据结构中提取内容并将该内容插入到第二数据对象中的数据结构中。如果应用818A确定不存在要被包括在第二数据对象中的第一数据对象的另一数据结构(1100的“否”分支),则应用818A可以终止该过程。
如本文所述的技术所理解的,不同的应用通常具有不同的文件格式,数据格式和创建具有独特结构和布局的数据对象的方式。通常,在简单的文件转换(例如从可编辑文档到打印文档格式文件)中,可编辑文件的图像在不考虑任一文件内的特定数据结构的情况下被取得。在复制和粘贴操作中,用户必须显式地选择要传送的特定内容,手动地导航到要放置该内容的目标目的地文档的特定部分,并且手动地重新格式化所传送的内容,使得它适合新的应用。一些其他应用使用户能够将一个应用唯一的对象嵌入到该应用的文件中,但是它们需要访问外部应用。虽然许多应用试图提供通用的体验,但是更专门的应用通常向用户提供对内容的更大的控制和更多的应用到内容的特征。然而,计算固有的问题是在不同的专用应用中重新创建内容是一个繁琐的,不精确的过程,其需要来自用户的许多手动输入。
通过在应用之间传递数据对象,本公开的技术可以提供一种方式,供用户快速地将第二应用的文件内的数据对象中存储的文档、文件或任何其他数据传送到第一应用的文件内的数据对象,而不需要用户手动地导航到相应应用内的相关内容页面,重新创建第一应用中的数据,或使用将内容存储到计算设备的存储器的通用复制和粘贴技术来重新格式化所传送的数据。不同的应用可以服务于不同的功能,但是单个用户可能希望使用多个应用的功能来完成任务。通过减少在应用之间传递信息所需的数字和用户努力,计算设备可以以更高的效率,简化的用户体验以及更少的功耗来执行任务。以这种方式,本公开的技术可以减少在应用之间传送数据对象所需的时间量和用户输入的数量,这可以简化用户体验并且可以减少计算设备的功耗。
条项1。一种方法,包括:由在计算设备处执行的第一应用从在所述计算设备处执行的第二应用接收第一数据对象,其中所述第一数据对象的格式特定于所述第二应用,并且其中所述第一数据对象包括第一组一个或多个数据结构;由所述第一应用创建第二数据对象,所述第二数据对象的格式特定于所述第一应用并与所述第一数据对象的所述格式不同,其中所述第二数据对象包括第二组一个或多个数据结构;和对于所述第一组一个或多个数据结构中的至少一个数据结构:由所述第一应用从所述第一数据对象的相应数据结构中提取一个或多个值;由所述第一应用基于与所述第一数据对象的所述相应数据结构相关联的元数据来选择所述第二数据对象的所述第二组一个或多个数据结构中的特定数据结构;和由所述第一应用将来自所述第一数据对象的所述相应数据结构的所述一个或多个值插入到所述第二数据对象的所述特定数据结构中。
条项2.根据条项1所述的方法,还包括:由所述第一应用输出图形用户界面以供显示,所述图形用户界面包括所述第二数据对象的所述特定数据结构的至少一部分。
条项3.如条项1-2中任一项所述的方法,其中创建所述第二数据对象包括:由所述第一应用创建多个数据对象,每个数据对象包括所述第一数据对象的相应数据结构的至少一部分,其中所述多个数据对象包括所述第二数据对象,并且其中所述多个数据对象中的每个数据对象的相应格式特定于所述第一应用并且不同于所述第一数据对象的格式。
条项4.如条项1-3中任一项所述的方法,其中所述第一应用包括幻灯片呈现应用,其中所述第二数据对象包括用于所述幻灯片呈现应用的一个或多个图形幻灯片,其中所述第二应用包括记笔记应用,并且其中所述第一数据对象包括用于所述记笔记应用的一个或多个笔记文档。
条项5.如条项1-4中任一项所述的方法,提取所述第一数据对象的所述相应数据结构的所述内容包括:由所述第一应用使用可扩展标记语言(XML)来检索所述第一数据对象的XML标签的值,并且其中将来自所述第一数据对象的所述相应数据结构的所述一个或多个值插入所述第二数据对象的所述特定数据结构包括:由所述第一应用将所述第二数据对象的XML标签设置为等于所述第一数据对象的XML标签的值。
条项6.根据条项5所述的方法,其中所述第一数据对象的所述一个或多个数据结构包括标题数据结构和主体数据结构,其中创建所述第二数据对象包括:对于所述第一数据对象的所述标题数据结构:由所述第一应用选择所述第二数据对象的标题数据结构;由第一应用将第一数据对象的标题数据结构中的一个或多个值插入第二数据对象的标题数据结构中;对于所述第一数据对象的体数据结构:由所述第一应用选择所述第二数据对象的体数据结构;由第一应用将第一数据对象的主体数据结构中的一个或多个值插入第二数据对象的主体数据结构中。
条项7.如条项1-6中任一项所述的方法,所述第一应用包括记笔记应用,其中,所述第二数据对象包括所述记笔记应用的一个或多个笔记文档,其中,所述第二应用包括幻灯片呈现应用,并且其中,所述第一数据对象包括所述幻灯片呈现应用的一个或多个笔记图形幻灯片。
条项8.如条项1-7中任一项所述的方法,其中所述第一应用包括电子表格应用,并且其中所述第二数据对象包括所述电子表格应用的一个或多个单元格。
条项9.如条项1-8中任一项所述的方法,其中所述第一数据对象被包括在多个数据对象中,其中所述多个数据对象中的每个数据对象包括相应的内容和相应的元数据,并且其中所述方法还包括:由所述第一应用接收所述多个数据对象中的所述第一数据对象;由所述第一应用检索所述多个数据对象中具有与所述第一数据对象相同的相应元数据的每个数据对象;和由所述第一应用将所述第一数据对象的所述一个或多个数据结构的所述一个或多个值、以及所述多个数据对象中具有与所述第一数据对象相同的相应元数据的每个数据对象的相应的一个或多个数据结构的相应的一个或多个值插入到所述第二数据对象中。
条项10.如条项1-9中任一项所述的方法,其中所述第一数据对象的所述至少一个数据结构的所述一个或多个值包括以下中的至少一个:文本的标题序列,文本的主序列,一个或多个图像,一个或多个视频,数学方程和格式化的列表。
条项11.如条项1-10中任一项所述的方法,还包括:在接收所述第一数据对象之前:由所述第二应用接收与在所述计算设备处执行的所述第一应用的内容页面相关联的信息,其中所述第一应用的所述内容页面的至少第一部分被包括在所述计算设备的图形用户界面中;由第二应用基于与第二应用的内容页面相关联的信息来确定第一应用的情境;由所述第二应用至少部分地基于所述第一应用的情境,确定与所述第一应用相关的一个或多个应用中的每个应用的相应组的数据对象,其中所述相应组的数据对象包括所述第一数据对象;由所述第二应用至少部分地基于所述相应组的数据对象来生成所述第二应用的内容页面,所述内容页面包括来自所述相应组的数据对象中的至少一组中的至少一个数据对象的一个或多个图形指示,其中所述至少一个数据对象包括所述第一数据对象;和当所述第一应用的所述内容页面的至少第二部分被包括在所述图形用户界面中时,由所述第二应用在所述计算设备的所述图形用户界面内输出所述第二应用的所述内容页面的至少一部分,用于显示。
条项12.根据条项11所述的方法,其中确定所述第二应用的所述情境包含:由所述第二应用识别所述第一应用的所述内容页面中的一个或多个内容对象;由第二应用提取所述一个或多个内容对象中的每一个内容对象的至少一个相应属性;以及由所述第二应用至少部分地基于所述一个或多个内容对象中的每一个内容对象的所述至少一个相应属性中的一个或多个属性来确定所述第一应用的情境。
条项13.如条项12所述的方法,其中所述一个或多个内容对象包括文本,图像,元数据,应用状态,应用代码,字段标识符,文件名或文件类型中的一个或多个。
条项14.如条项11-13中任一项所述的方法,其中确定与所述第一应用相关的所述一个或多个应用中的每个应用的所述相应组的数据对象包括:由所述第二应用基于所述情境来构造用于与所述第一应用相关的所述一个或多个应用中的每一个应用的相应的搜索查询;以及由第二应用执行来自相应搜索查询的每个相应搜索查询,以从与第一应用相关的一个或多个应用中的相应应用的数据中检索相应组的数据对象。
条项15.如条项11-14中任一项所述的方法,其中与所述第一应用相关的所述一个或多个应用包括与所述第一应用相关的至少两个应用,并且其中生成用于所述第一应用的所述内容页面包括由所述第二应用至少部分地基于与所述第一应用相关的所述至少两个应用的相应组的数据对象来生成所述第二应用的所述内容页面,所述内容页面包括与所述第一应用相关的至少两个应用中的每个应用的相应组的数据对象中的至少一个数据对象的至少一个图形指示。
条项16.如条项11-15中任一项所述的方法,还包括:
由第二应用接收用户输入的指示,该用户输入的指示从包括在第二应用的内容页面中的至少一个数据对象的一个或多个图形指示中选择第一数据对象的第一图形指示;以及第二应用向第一应用发送第一数据对象。
条项17.如条项11-16中任一项所述的方法,还包括:由第二应用接收对表示包括在第一应用的内容页面中的一个或多个内容对象的一个或多个图形指示的选择的指示;由第二应用基于一个或多个内容对象来确定第一应用的更新的情境;由第二应用至少部分地基于第一应用的更新的情境,确定与第一应用相关的一个或多个应用中的每个应用的相应的更新组的数据对象;由第二应用至少部分地基于相应的更新组的数据对象来生成第一应用的更新的内容页面,该更新的内容页面包括来自相应的更新组的数据对象中的至少一组中的至少一个数据对象的一个或多个图形指示;并且当第一应用的内容页面的至少第三部分被包括在图形用户界面中时,由第二应用在计算设备的图形用户界面内输出第二应用的更新的内容页面的一部分以供显示。
条项18.如条项11-17中任一项所述的方法,其中输出所述第二应用的所述内容页面的所述部分包括:当所述第一应用的所述内容页面的至少所述第二部分被包括在所述图形用户界面中时,由所述第二应用利用所述第一应用的所述内容页面的所述部分来替换所述图形用户界面的一部分。
条项19.如条项11-18中任一项所述的方法,其中输出用于显示的所述第二应用的所述内容页面的所述部分包括与所述第一应用相关的所述一个或多个应用中的应用的第一组数据对象中的至少一个数据对象的一个或多个图形指示,所述方法还包括:由所述第二应用接收用户输入的指示,所述用户输入的指示选择与所述第一应用相关的所述一个或多个应用不同的应用;由第二应用至少部分地基于相应组的数据对象来生成第一应用的更新的内容页面,该更新的内容页面包括与第一应用相关的一个或多个应用中的不同的应用的第二组数据对象中的至少一个数据对象的一个或多个图形指示;并且当第一应用的内容页面的至少第二部分被包括在图形用户界面中时,由第二应用在计算设备的图形用户界面内输出第二应用的更新的内容页面的一部分以供显示。
条项20.如条项11-19中任一项所述的方法,还包括:在确定所述情境之前,由所述计算设备接收用户输入的指示以开始执行所述第二应用;以及响应于接收到用户输入的指示,由第二应用确定情境。
条项21.如条项11-20中任一项所述的方法,其中所述第二应用包括伴随应用。
条项22.如条项1-21中任一项所述的方法,其中所述第一数据对象包括值列表,并且其中所述第二数据对象包括所述值列表的图像和描绘所述值列表的图表中的一个。
条项23.如条项1-22中任一项所述的方法,其中所述第一数据对象包括图像,并且其中所述方法还包括:由所述第一应用基于对所述第一应用中的图像的一个或多个要求来有条件地格式化所述第一数据对象的所述图像;由第一应用将有条件地格式化的图像插入第二数据对象。
条项24.一种计算设备,包括:至少一个处理器;以及存储器,其存储与第一应用相关联的指令,所述指令在被执行时使得所述至少一个处理器:从在所述计算设备处执行的第二应用接收第一数据对象,其中所述第一数据对象的格式特定于所述第二应用,并且其中所述第一数据对象包括第一组一个或多个数据结构;创建第二数据对象,所述第二数据对象的格式特定于所述第一应用,且与所述第一数据对象的格式不同,所述第二数据对象包括第二组一个或多个数据结构;以及对于第一组一个或多个数据结构中的至少一个数据结构:从第一数据对象的相应数据结构中提取一个或多个值;基于与第一数据对象的相应数据结构相关联的元数据,来选择第二对象的第二组一个或多个数据结构中的特定数据结构;以及将来自第一数据对象的相应数据结构的一个或多个值插入到第二数据对象的特定数据结构中。
条项25.根据权利要求24所述的计算装置,其中所述存储器进一步存储与所述第一应用相关联的指令,所述指令在被执行时使所述至少一个处理器:输出包含所述第二数据对象的所述特定数据结构的至少一部分的图形用户界面以供显示。
条项26.如条项24-25中任一项所述的计算设备,其中使得所述至少一个处理器创建所述第二数据对象的指令包括在被执行时使得所述至少一个处理器执行以下操作的指令:创建多个数据对象,所述多个数据对象中的每一个都包括所述第一数据对象的相应数据结构的至少一部分,其中所述多个数据对象包括所述第二数据对象,并且其中所述多个数据对象中的每个数据对象的相应格式特定于所述第一应用,并且不同于第一数据对象的格式。
条项27.如条项24-26中任一项所述的计算设备,其中使所述至少一个处理器提取所述第一数据对象的相应数据结构的内容的指令包括当被执行时使所述至少一个处理器使用可扩展标记语言(XML)来检索所述第一数据对象的XML标签的值的指令,并且其中使所述至少一个处理器将来自所述第一数据对象的相应数据结构的所述一个或多个值插入所述特定数据中的指令包括当被执行时使至少一个处理器将第二数据对象的XML标签设置为等于第一数据对象的XML标签的值。
条项28.一种存储与第一应用相关联的指令的非暂时性计算机可读存储介质,所述指令在被执行时使得计算设备的至少一个处理器:从在所述计算设备处执行的第二应用接收第一数据对象,其中所述第一数据对象的格式特定于所述第二应用,并且其中所述第一数据对象包括第一组一个或多个数据结构;创建第二数据对象,所述第二数据对象的格式特定于所述第一应用,且与所述第一数据对象的格式不同,所述第二数据对象包括第二组一个或多个数据结构;以及对于第一组一个或多个数据结构中的至少一个数据结构:从第一数据对象的相应数据结构中提取一个或多个值;基于与第一数据对象的相应数据结构相关联的元数据,选择第二对象的第二组一个或多个数据结构中的特定数据结构;以及将来自第一数据对象的相应数据结构的一个或多个值插入到第二数据对象的特定数据结构中。
条项29.根据条项28所述的非暂时性计算机可读存储介质,其中,使所述至少一个处理器创建所述第二数据对象的所述指令包括在被执行时使所述至少一个处理器执行以下操作的指令:创建多个数据对象,所述多个数据对象中的每一个都包括所述第一数据对象的相应数据结构的至少一部分,其中,所述多个数据对象包括所述第二数据对象,并且其中,所述多个数据对象中的每个数据对象的相应格式特定于所述第一应用,并且与第一数据对象的格式不同。
条项30.如条项28-29中任一项所述的非暂时性计算机可读存储介质,其中使所述至少一个处理器提取所述第一数据对象的相应数据结构的内容的指令包括在被执行时使所述至少一个处理器使用可扩展标记语言(XML)检索所述第一数据对象的XML标签的值的指令,并且其中使所述至少一个处理器将来自所述第一数据对象的相应数据结构的所述一个或多个值插入第二数据对象的特定数据结构指令包括在被执行时使至少一个处理器将第二数据对象的XML标签设置为等于第一数据对象的XML标签的值的指令。
条项31.一种计算设备,其被配置为执行条项1-23中的任一个方法。
条项32.一种计算设备,包括用于执行条项1-23中的任一个方法的装置。
条项33.一种用指令编码的计算机可读存储介质,所述指令用于使一个或多个可编程处理器执行条项1-23中的任一个方法。
在一个或多个示例中,所描述的功能可实施于硬件,软件,固件或其任何组合中。如果在软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或在计算机可读介质上传输,并由基于硬件的处理单元执行。计算机可读介质可以包括对应于诸如数据存储介质的有形介质的计算机可读存储介质,或者包括有助于例如根据通信协议将计算机程序从一个地方传送到另一个地方的任何介质的通信介质。以此方式,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索指令,代码和/或数据结构以实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可以包括RAM,ROM,EEPROM,CD-ROM或其它光盘存储,磁盘存储,或其它磁存储设备,闪存,或可以用于以指令或数据结构的形式存储所需程序代码并且可以由计算机访问的任何其它介质。而且,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,数字用户线(DSL)或诸如红外,无线电和微波的无线技术从网站,服务器或其它远程源发送指令,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波的无线技术被包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接,载波,信号,或其它瞬态介质,而是指向非瞬态,有形存储介质。如本文所用,盘和盘包括光盘(CD)、激光盘、光盘、数字通用盘(DVD)、软盘和蓝光盘,其中盘通常磁性地再现数据,而光盘用激光光学地再现数据。上述的组合也应该包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,例如一个或多个数字信号处理器(DSP),通用微处理器,专用集成电路(ASIC),现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路。因此,这里使用的术语“处理器”可以指任何前述结构或适于实现这里描述的技术的任何其它结构。此外,在一些方面中,本文所描述的功能性可在专用硬件和/或软件模块内提供。而且,可以在一个或多个电路或逻辑元件中完全实现这些技术。
本公开的技术可以在各种设备或装置中实现,包括无线手机,集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述了各种组件,模块或单元,以强调被配置成执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,各种单元可以组合在硬件单元中或由以下各项的组合提供:包括如上所述的一个或多个处理器的互操作硬件单元与适当的软件和/或固件相结合。
已经描述了本公开的各种实例。预期所描述的系统,操作或功能的任何组合。这些和其它实例在所附权利要求的范围内。

Claims (12)

1.一种自动分析和修改在应用之间传递的数据对象的方法,其特征在于,包括:
由在计算设备处执行并被配置为呈现幻灯片的第一应用从在所述计算设备处执行并被配置为呈现笔记的第二应用接收笔记数据对象,其中所述笔记数据对象的格式特定于所述第二应用,并且其中所述笔记数据对象包括第一组一个或多个数据结构;
在没有接收指示对所述笔记数据对象的所述格式的修改的用户输入的情况下,由所述第一应用自动地创建幻灯片数据对象,所述幻灯片数据对象的格式特定于所述第一应用并与所述笔记数据对象的所述格式不同,其中所述幻灯片数据对象包括第二组一个或多个数据结构;和
对于所述第一组一个或多个数据结构中的至少一个数据结构:
由所述第一应用从所述笔记数据对象的相应数据结构中提取一个或多个值;
由所述第一应用基于标记所述笔记数据对象的所述相应数据结构的元数据来选择所述幻灯片数据对象的所述第二组一个或多个数据结构中的特定数据结构;和
由所述第一应用将来自所述笔记数据对象的所述相应数据结构的所述一个或多个值插入到所述幻灯片数据对象的所述特定数据结构中,使得由所述元数据识别的所述笔记数据对象的标题作为所述幻灯片数据对象的所述第二组一个或多个数据结构的标题数据结构被插入,并且由所述元数据识别以及与所述笔记数据对象的所述标题相关联的主体数据作为所述幻灯片数据对象的所述第二组一个或多个数据结构的不同的一个或多个主体数据结构被插入。
2.根据权利要求1所述的方法,其特征在于,还包括:
在接收所述笔记数据对象之前:
由所述第二应用接收与在所述计算设备处执行的所述第一应用的内容页面相关联的信息,其中,所述第一应用的所述内容页面的至少第一部分被包括在所述计算设备的图形用户界面中;
由所述第二应用基于与所述第一应用的所述内容页面相关联的所述信息来确定所述第一应用的情境;
由所述第二应用至少部分地基于所述第一应用的所述情境,确定与所述第一应用相关的一个或多个应用中的每个应用的相应组的数据对象,其中所述相应组的数据对象包括所述笔记数据对象;
由所述第二应用至少部分地基于所述相应组的数据对象来生成所述第二应用的内容页面,所述内容页面包括来自所述相应组的数据对象中的至少一组中的至少一个数据对象的一个或多个图形指示,其中所述至少一个数据对象包括所述笔记数据对象;和
当所述第一应用的所述内容页面的至少第二部分被包括在所述图形用户界面中时,由所述第二应用在所述计算设备的所述图形用户界面内输出所述第二应用的所述内容页面的至少一部分,用于显示。
3.根据权利要求1所述的方法,其特征在于,创建所述幻灯片数据对象包括:
由所述第一应用创建多个数据对象,每个数据对象包括所述笔记数据对象的相应数据结构的至少一部分,其中所述多个数据对象包括所述幻灯片数据对象,并且其中所述多个数据对象中的每个数据对象的相应格式特定于所述第一应用并且不同于所述笔记数据对象的所述格式。
4.根据权利要求1所述的方法,其特征在于,提取所述笔记数据对象的所述相应数据结构的所述一个或多个值包括:由所述第一应用使用可扩展标记语言XML来检索所述笔记数据对象的XML标签的值,并且其中将来自所述笔记数据对象的所述相应数据结构的所述一个或多个值插入所述幻灯片数据对象的所述特定数据结构包括:由所述第一应用将所述幻灯片数据对象的XML标签设置为等于所述笔记数据对象的XML标签的值。
5.根据权利要求1所述的方法,其特征在于,所述笔记数据对象的所述一个或多个数据结构包括标题数据结构和主体数据结构,其中创建所述幻灯片数据对象包括:
对于所述笔记数据对象的所述标题数据结构:
由所述第一应用选择所述幻灯片数据对象的所述标题数据结构;和
由所述第一应用将来自所述笔记数据对象的所述标题数据结构的一个或多个值插入所述幻灯片数据对象的所述标题数据结构中;和
对于所述笔记数据对象的所述主体数据结构:
由所述第一应用选择所述幻灯片数据对象的所述一个或多个主体数据结构;和
由所述第一应用将来自所述笔记数据对象的所述主体数据结构的一个或多个值插入所述幻灯片数据对象的所述主体数据结构中。
6.根据权利要求1所述的方法,其特征在于,所述第一应用包括记笔记应用,其中,所述幻灯片数据对象包括所述记笔记应用的一个或多个笔记文档,其中,所述第二应用包括幻灯片呈现应用,并且其中,所述笔记数据对象包括所述幻灯片呈现应用的一个或多个笔记图形幻灯片。
7.根据权利要求1所述的方法,其特征在于,所述笔记数据对象被包括在多个笔记数据对象中,其中所述多个笔记数据对象中的每个笔记数据对象包括相应的内容和相应的元数据,并且其中所述方法还包括:
由所述第一应用接收所述多个笔记数据对象中的所述笔记数据对象;
由所述第一应用检索所述多个笔记数据对象中具有与所述笔记数据对象相同的相应元数据的每个笔记数据对象;和
由所述第一应用将所述笔记数据对象的所述一个或多个数据结构的所述一个或多个值、以及所述多个笔记数据对象中具有与所述笔记数据对象相同的相应元数据的每个笔记数据对象的相应的一个或多个数据结构的相应的一个或多个值插入到所述幻灯片数据对象中。
8.根据权利要求1所述的方法,其特征在于,所述笔记数据对象的所述至少一个数据结构的所述一个或多个值包括以下中的至少一个:
文本的标题序列,
文本的主序列,
一个或多个图像,
一个或多个视频,
数学方程,以及
格式化的列表。
9.根据权利要求1所述的方法,其特征在于,所述笔记数据对象包括值列表,并且其中,所述幻灯片数据对象包括所述值列表的图像和描绘所述值列表的图表中的一个。
10.根据权利要求1所述的方法,其特征在于,所述笔记数据对象包括图像,并且其中所述方法还包括:
由所述第一应用基于对所述第一应用中的图像的一个或多个要求,有条件地格式化笔记数据对象的所述图像;和
由所述第一应用将有条件地格式化的图像插入所述幻灯片数据对象。
11.一种计算设备,其特征在于,包括:
至少一个处理器;和
存储器,所述存储器存储与第一应用相关联的指令,所述指令在被执行时使所述至少一个处理器执行根据权利要求1-10中任一项所述的方法。
12.一种非暂时性计算机可读存储介质,其特征在于,所述非暂时性计算机可读存储介质存储与第一应用相关联的指令,所述指令在被执行时使计算设备的至少一个处理器执行根据权利要求1-10中任一项所述的方法。
CN201880043389.4A 2017-09-26 2018-06-14 应用间传递格式特定的数据对象 Active CN111095215B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202310963237.9A CN116974792A (zh) 2017-09-26 2018-06-14 应用间传递格式特定的数据对象
CN202310963217.1A CN116991604A (zh) 2017-09-26 2018-06-14 应用间传递格式特定的数据对象

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762563609P 2017-09-26 2017-09-26
US62/563,609 2017-09-26
US15/851,090 US10521278B2 (en) 2017-09-26 2017-12-21 Format-specific data object passing between applications
US15/851,090 2017-12-21
PCT/US2018/037549 WO2019067031A1 (en) 2017-09-26 2018-06-14 DATA OBJECT SPECIFIC TO FORMAT BETWEEN APPLICATIONS

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN202310963217.1A Division CN116991604A (zh) 2017-09-26 2018-06-14 应用间传递格式特定的数据对象
CN202310963237.9A Division CN116974792A (zh) 2017-09-26 2018-06-14 应用间传递格式特定的数据对象

Publications (2)

Publication Number Publication Date
CN111095215A CN111095215A (zh) 2020-05-01
CN111095215B true CN111095215B (zh) 2023-08-29

Family

ID=65807645

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202310963237.9A Pending CN116974792A (zh) 2017-09-26 2018-06-14 应用间传递格式特定的数据对象
CN202310963217.1A Pending CN116991604A (zh) 2017-09-26 2018-06-14 应用间传递格式特定的数据对象
CN201880043389.4A Active CN111095215B (zh) 2017-09-26 2018-06-14 应用间传递格式特定的数据对象

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN202310963237.9A Pending CN116974792A (zh) 2017-09-26 2018-06-14 应用间传递格式特定的数据对象
CN202310963217.1A Pending CN116991604A (zh) 2017-09-26 2018-06-14 应用间传递格式特定的数据对象

Country Status (4)

Country Link
US (3) US10521278B2 (zh)
EP (1) EP3625680A1 (zh)
CN (3) CN116974792A (zh)
WO (1) WO2019067031A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521278B2 (en) 2017-09-26 2019-12-31 Google Llc Format-specific data object passing between applications
US11681760B2 (en) 2018-08-01 2023-06-20 Microsoft Technology Licensing, Llc Cross-application ingestion and restructuring of content
US11295073B2 (en) 2018-08-01 2022-04-05 Microsoft Technology Licensing, Llc Cross-application ingestion and restructuring of spreadsheet content
US11113447B2 (en) * 2018-08-01 2021-09-07 Microsoft Technology Licensing, Llc Cross-application ingestion and restructuring of slide presentation content
US11182538B2 (en) 2018-08-01 2021-11-23 Microsoft Technology Licensing, Llc Conversational user interface logic for cross-application ingestion and restructuring of content
CA3117852A1 (en) * 2018-11-14 2020-05-22 Wix.Com Ltd. System and method for creation and handling of configurable applications for website building systems
US11106934B2 (en) * 2019-02-11 2021-08-31 Innovaccer Inc. Automatic visual display overlays of contextually related data from multiple applications
US11520970B2 (en) * 2019-09-23 2022-12-06 Snap Inc. Personalized fonts
US20210303473A1 (en) * 2020-03-27 2021-09-30 Datto, Inc. Method and system of copying data to a clipboard
CN111831460B (zh) * 2020-06-30 2023-06-16 江西科技学院 一种文本复制粘贴方法、系统及可读存储介质
US20220171917A1 (en) * 2020-12-02 2022-06-02 Honeywell International Inc. Methods and systems for electronic checklist tags
CN114860142A (zh) * 2021-01-20 2022-08-05 华为技术有限公司 一种拖拽处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825316A (zh) * 2005-02-25 2006-08-30 微软公司 软件应用程序文档的数据存储
CN104737197A (zh) * 2012-06-29 2015-06-24 高通股份有限公司 经由共享空间共享用户接口对象
CN105393223A (zh) * 2013-06-20 2016-03-09 微软技术许可有限责任公司 通过捕捉服务捕捉网站内容
CN105518624A (zh) * 2013-07-03 2016-04-20 三星电子株式会社 用于在用户设备中互通应用的方法和装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172584A1 (en) * 2003-02-28 2004-09-02 Microsoft Corporation Method and system for enhancing paste functionality of a computer software application
US20050066335A1 (en) 2003-09-23 2005-03-24 Robert Aarts System and method for exposing local clipboard functionality towards external applications
US7383499B2 (en) 2004-12-30 2008-06-03 Microsoft Corporation System and method for dynamically creating a destination template
US7797638B2 (en) * 2006-01-05 2010-09-14 Microsoft Corporation Application of metadata to documents and document objects via a software application user interface
JP2007249754A (ja) * 2006-03-17 2007-09-27 Internatl Business Mach Corp <Ibm> 情報処理装置、情報処理方法およびプログラム
US20090006448A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Automated model generator
US8584149B2 (en) * 2007-07-16 2013-11-12 Apteryx, Inc. Methods of populating a third-party document with digital information content
US20090164493A1 (en) * 2007-12-24 2009-06-25 Johnsgard Todd J Apparatus and methods for editing content on a wireless device
US8275779B2 (en) * 2009-01-22 2012-09-25 International Business Machines Corporation Data tranformations for applications supporting different data formats
US8577960B2 (en) 2010-07-29 2013-11-05 Sap Ag Providing status information for components in a distributed landscape
US8423405B1 (en) 2010-11-01 2013-04-16 Google Inc. Advertisement selection
KR101351903B1 (ko) * 2011-08-19 2014-01-17 주식회사 엘지화학 케이블형 이차전지
US20130159984A1 (en) 2011-12-14 2013-06-20 Sap Ag Release independent deployment of user productivity services
US20130339980A1 (en) * 2012-06-14 2013-12-19 Clicksoftware Technologies Ltd Composite application enabling workflow between unmodified constituent applications
US8656265B1 (en) 2012-09-11 2014-02-18 Google Inc. Low-latency transition into embedded web view
US9355415B2 (en) 2012-11-12 2016-05-31 Google Inc. Providing content recommendation to users on a site
US9935910B2 (en) 2012-12-21 2018-04-03 Google Llc Recipient location aware notifications in response to related posts
US20150001283A1 (en) * 2013-06-28 2015-01-01 Earthling, Llc Mailbox having solar power
US10394949B2 (en) 2015-06-22 2019-08-27 Microsoft Technology Licensing, Llc Deconstructing documents into component blocks for reuse in productivity applications
US10331620B2 (en) * 2015-11-24 2019-06-25 International Business Machines Corporation File generator
US10558950B2 (en) 2017-05-15 2020-02-11 Google Llc Automatic context passing between applications
US10521278B2 (en) 2017-09-26 2019-12-31 Google Llc Format-specific data object passing between applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825316A (zh) * 2005-02-25 2006-08-30 微软公司 软件应用程序文档的数据存储
CN104737197A (zh) * 2012-06-29 2015-06-24 高通股份有限公司 经由共享空间共享用户接口对象
CN105393223A (zh) * 2013-06-20 2016-03-09 微软技术许可有限责任公司 通过捕捉服务捕捉网站内容
CN105518624A (zh) * 2013-07-03 2016-04-20 三星电子株式会社 用于在用户设备中互通应用的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
小议如何实现XML与VB之间的数据交换;张庆生;《今日科苑》;第197页 *

Also Published As

Publication number Publication date
US10977094B2 (en) 2021-04-13
US10521278B2 (en) 2019-12-31
EP3625680A1 (en) 2020-03-25
CN116991604A (zh) 2023-11-03
US11307908B2 (en) 2022-04-19
US20200250014A1 (en) 2020-08-06
US20190095255A1 (en) 2019-03-28
CN111095215A (zh) 2020-05-01
CN116974792A (zh) 2023-10-31
WO2019067031A1 (en) 2019-04-04
US20210224141A1 (en) 2021-07-22

Similar Documents

Publication Publication Date Title
CN111095215B (zh) 应用间传递格式特定的数据对象
CN108701016B (zh) 根据通知数据自动生成图形用户界面的方法、装置及系统
CN106796602B (zh) 用于内容创作的生产力工具
US10430070B2 (en) Providing defined icons on a graphical user interface of a navigation system
CN110020411B (zh) 图文内容生成方法及设备
US10289727B2 (en) Incorporation of semantic attributes within social media
KR20170066374A (ko) 콘텐츠 데이터용 레이아웃을 사용자-의도에 기반하여 생성하는 기법
CN110753911B (zh) 应用之间的自动情境传递
CN108958731B (zh) 一种应用程序界面生成方法、装置、设备和存储介质
US20220337539A1 (en) Personality reply for digital content
EP3566196A1 (en) Identification of documents based on location, usage patterns and content
US11232145B2 (en) Content corpora for electronic documents
US20200394152A1 (en) Digital design application plugin for content updates and delivery
US20190220537A1 (en) Context-sensitive methods of surfacing comprehensive knowledge in and between applications
US20230342167A1 (en) Automating semantically-related computing tasks across contexts
US10831812B2 (en) Author-created digital agents

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