CN110476162B - 使用导航助记符控制显示的活动信息 - Google Patents

使用导航助记符控制显示的活动信息 Download PDF

Info

Publication number
CN110476162B
CN110476162B CN201880022925.2A CN201880022925A CN110476162B CN 110476162 B CN110476162 B CN 110476162B CN 201880022925 A CN201880022925 A CN 201880022925A CN 110476162 B CN110476162 B CN 110476162B
Authority
CN
China
Prior art keywords
navigation
activity
mnemonic
user
record
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
CN201880022925.2A
Other languages
English (en)
Other versions
CN110476162A (zh
Inventor
T·H·阿尔菲恩三世
K·L·克罗克
C·E·汉密尔顿
B·R·迈耶斯
M·J·诺瓦克
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 CN110476162A publication Critical patent/CN110476162A/zh
Application granted granted Critical
Publication of CN110476162B publication Critical patent/CN110476162B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24575Query processing with adaptation to user needs using context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/904Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Computational Linguistics (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

描述了用于获得用户活动信息和导航助记符信息的技术。活动信息和导航助记符信息可以用于以使用所显示的导航助记符帮助用户定位活动的方式,来控制在显示器中呈现的信息。用户活动信息可以包括应用程序标识符和内容标识符。导航助记符信息可以包括资源标识符和相关性标识符。用户可以基于导航助记符和活动之间的关系(例如,时间关系)来搜索活动。应用程序可以通过界面来注册活动信息和导航助记符信息,并且导航助记符馈送服务可以提供与用户计算机设备上的用户活动不直接相关的导航助记符。

Description

使用导航助记符控制显示的活动信息
背景技术
计算机设备正变得越来越普遍,越来越多人的日常活动涉及计算机设备。在一天的过程中,用户可能使用一个或多个计算机设备进行许多活动,例如,观看视频、听音乐、浏览网页、使用聊天或通信程序、处理文档或演示文稿、或者玩游戏等等。随着时间的推移,用户可能希望恢复或重新访问他们先前参与的活动。然而,用户可能难以记住恢复该活动所需的所有细节。
在很多情况下,用户甚至可以使用单个计算机设备同时执行多个活动。人们越来越希望并且需要执行涉及多个计算机设备的活动以及在多个计算机设备之间活动。例如,用户可能使用多个不同的计算机设备(例如,智能手机、工作台式计算机、膝上型计算机和家用台式计算机)处理单个任务或者多个相互关联的任务(例如,工作项目)。用户可以在他们的膝上型计算机上开始观看娱乐节目或玩游戏,但是可能希望稍后在他们的智能手机或平板计算机上继续观看或播放。用户可以在工作时在他们的台式计算机上开始研究网络上的主题,并且在他们上下班途中在智能手机或平板计算机上继续他们的研究。
随着计算机设备用于大量的任务,并且变得更加融入人们的生活中,用户跟踪他们的活动和相关内容变得具有挑战性。例如,用户可能希望访问该用户两天前浏览的网页,但可能不记得该网页的地址,或者他们是如何找到的它,甚至不记得他们用来查看该网页的浏览器或设备。用户可能在他们的计算机设备上收听歌曲或观看视频,但可能不再记得歌曲或视频的标题。用户可能曾经在处理某个文档,但可能不再记得存储该文档的位置或者如何再次访问它。
在某些情况下,计算机设备(例如,在计算机设备上运行的单个应用程序或计算机设备的操作系统)可以为用户提供一些有限的功能以尝试和跟踪他们的活动。例如,操作系统组件可以允许用户查看最近创建或修改的文件的列表。网络浏览器可以允许用户访问该用户访问的网页的历史。但是,此类功能通常仅限于单个应用程序或域。
但是,至少某些关于活动的信息(例如,用户打开但未修改的文件)可能是用户不可获得的。即使当信息可用时,用户感兴趣的特定信息也可能与大量其它信息混杂在一起。例如,用户想要找到的网页的地址可能与用户在特定一天访问的其它网页的结果的信息混杂在一起。如果用户不记得他们访问该网页的具体日期,则任务将变得更具挑战性和令人沮丧。因此,仍然存在用于跟踪用户在一个或多个计算机设备上的活动并使用户容易且智能地访问该信息的改进空间。
发明内容
提供本概括部分以便用简化的形式介绍将在以下的详细描述中进一步描述的概念选择。本概括部分并不是旨在标识本发明的关键特征或本质特征,也不是用于限制本发明的保护范围。
描述了用于获取和控制关于用户活动和导航助记符的信息,并向用户呈现该信息的全部或一部分的各种显示的技术。公开了用于提供关于活动和相关联的导航助记符的信息的显示。可以使用与活动相关联的相关性标准、与导航助记符相关联的相关性标准、或者其组合,来组织显示中包括的信息。与导航助记符相关联地显示活动信息,可以允许用户更容易地定位感兴趣的信息。为了进一步促进用户定位相关信息,提供了各种机制来创建用于导航助记符和活动的记录,其包括在与用户相关联的多个计算机设备上创建和收集导航助记符和用户活动信息。
根据一个实施例,提供了一种计算机设备,该计算机设备包括处理单元和存储器。对该计算机设备进行编码,以执行用于呈现包括与多个活动记录和一个或多个导航助记符记录相关联的信息的显示的操作。这些操作包括:接收活动记录选择标准。例如,活动记录选择标准可以包括时间顺序标准、类型标准、与导航助记符的关系、或者其组合。记录选择标准可以包括:指定相关性阈值或以其它方式限制要获取的活动记录的数量。根据选择标准来选择多个活动记录。
这些操作还包括:选择一个或多个导航助记符记录。可以例如基于存储的导航助记符记录和活动记录之间的关联,来选择所述一个或多个导航助记符记录,或者可以通过使用相关性标准(例如,时间顺序标准)分析导航助记符记录与活动记录的相关性,或识别活动记录和导航助记符记录中的共同或相关属性,来选择所述一个或多个导航助记符记录。导航助记符记录选择标准可以包括:指定相关性阈值或以其它方式限制要获取的导航助记符记录的数量。为输出到例如缓冲区,对显示进行呈现。该显示包括与多个选定的活动记录和选定的一个或多个导航助记符记录相关联的信息。
在另一个实施例中,提供了一种用于从多个计算机设备收集用户活动和导航助记符信息,并向这些计算机设备中的一个或多个发送与所述多个计算机设备上的用户活动不直接相关的一个或多个导航助记符记录的方法。从与用户相关联的多个计算机设备中的每一个接收活动记录。从所述多个计算机设备中的每一个接收导航助记符信息。例如,导航助记符信息可以是导航助记符记录或者足以产生导航助记符记录的信息。针对不直接与所述多个计算机设备上的用户活动相关联的导航助记符信息,存储多个导航助记符记录。例如,这些记录不是监测计算机设备上的用户活动的结果,或者不是在用户的计算机设备上运行的应用程序创建的。
确定所述多个导航助记符记录中的不直接与所述多个计算机设备上的用户活动相关联的满足用户的相关性标准的一个或多个导航助记符记录。在各个例子中,可以使用规则、启发式或机器学习来执行该确定。将所确定的一个或多个导航助记符记录发送到所述多个计算机设备中的一个或多个。
在另外的实施例中,提供了一种用于创建活动记录和导航助记符记录的方法。例如,该方法可以由通过应用程序接口提供的应用程序调用方法来执行。调用用于生成活动记录的方法。该方法包括内容标识符和应用程序标识符作为参数。
调用用于生成导航助记符记录的方法。该方法包括资源标识符和相关性标识符作为参数。资源标识符可以标识用于向用户显示的内容(例如,媒体内容、网站、人员的简档信息),其可以帮助用户查看活动信息。资源标识符还可以包括对于与导航助记符相关的其它内容的引用,例如到某个网站或文件的链接。相关性标识符可以是可用于确定导航助记符与其它导航助记符或活动信息的相关性的信息。例如,相关性标识符可以是与导航助记符相关联的人(例如,文档的协作者或共同作者、对话或电子邮件交换的参与者、会议的被邀请者等等)、时间顺序信息(例如,与导航助记符相关联的时间)、位置或其它信息。
本公开内容还包括被配置为执行上面所描述的方法或者包括用于执行上面所描述的方法的指令的计算系统和计算机可读存储介质。如本文所描述的,可以根据需要将各种其它特征和优点结合到这些技术中。
附图说明
图1是示出与一个或多个计算机设备上的用户动作相对应的任务、活动和历史记录与导航助记符之间的关系的图。
图2是示出可以包括在任务记录、活动记录和历史记录(其概括了一个或多个计算机设备上的用户动作)中以及导航助记符记录中的数据的图。
图3是可以实现所描述的创新的示例架构的图。
图4是示出任务、活动(其包括活动的个体历史记录)和导航助记符之间的关系的图。
图5是显示与多个导航助记符有关的用户活动的概要的示例屏幕。
图6是具有相对于导航助记符组织的活动信息的示例屏幕。
图7是用于显示来自所选择的活动记录和导航助记符记录的信息的示例方法的流程图。
图8是用于从多个计算机设备收集用户活动和导航助记符信息,并向这些计算机设备中的一个或多个发送与所述多个计算机设备上的用户活动不直接相关的一个或多个导航助记符记录的示例方法的流程图。
图9是用于创建活动记录和导航助记符记录的示例方法的流程图。
图10是可以在其中实现一些描述的实施例的示例性计算系统的图。
图11是可以结合本文所描述的技术使用的示例性移动设备。
图12是可以结合本文所描述的技术使用的示例性云支持环境。
具体实施方式
计算机设备正变得越来越普遍,越来越多人的日常活动涉及计算机设备。在一天的过程中,用户可能使用一个或多个计算机设备进行许多活动,例如,观看视频、听音乐、浏览网页、使用聊天或通信程序、处理文档或演示文稿、或者玩游戏等等。随着时间的推移,用户可能希望恢复或重新访问他们先前参与的活动。然而,用户可能难以记住恢复该活动所需的所有细节。例如,用户可能不记得他们访问过的网站、他们打开的文件的位置、他们喜欢的特定歌曲等等。
在很多情况下,用户甚至可以使用单个计算机设备同时执行多个活动。人们越来越希望并且需要执行涉及多个计算机设备的活动以及在多个计算机设备之间活动。例如,用户可能使用多个不同的计算机设备(例如,智能手机、工作台式计算机、膝上型计算机和家用台式计算机)处理单个任务或者多个相互关联的任务(例如,工作项目)。用户可以在他们的膝上型计算机上开始观看娱乐节目或玩游戏,但是可能希望稍后在他们的智能手机或平板计算机上继续观看或播放。用户可以在工作时在他们的台式计算机上开始研究网络上的主题,并且在他们上下班途中在智能手机或平板计算机上继续他们的研究。
随着计算机设备用于大量的任务,并且变得更加融入人们的生活中,用户跟踪他们的活动和相关内容变得具有挑战性。例如,用户可能希望访问该用户两天前浏览的网页,但可能不记得该网页的地址,或者他们是如何找到的它,甚至不记得他们用来查看该网页的浏览器或设备。用户可能在他们的计算机设备上收听歌曲或观看视频,但可能不再记得歌曲或视频的标题。用户可能曾经在处理某个文档,但可能不再记得存储该文档的位置或者如何再次访问它。当用户的活动分布在多个设备上时,这种情况会变得更加困难。
在某些情况下,计算机设备(例如,在计算机设备上运行的单个应用程序或计算机设备的操作系统)可以为用户提供一些有限的功能以允许用户尝试和跟踪他们的活动。例如,操作系统组件可以允许用户查看最近创建或修改的文件的列表。网络浏览器可以允许用户访问该用户访问的网页的历史。但是,此类功能通常仅限于单个应用程序或域。某些应用程序或域可能无法提供帮助用户恢复活动的功能。即使当应用程序确实提供这样的功能时,对于用户来说知道如何使用不同应用程序的不同功能以及针对他们可能希望恢复的每个活动与不同应用程序进行交互可能是麻烦的。此外,受限于特定的应用程序或域,并不能提供将不同类型的活动联系在一起的能力,而这可以更好地允许用户定位和恢复先前活动。
但是,至少某些关于活动的信息(例如,用户打开但未修改的文件)可能是用户不可获得的。即使当信息可用时,用户感兴趣的特定信息也可能与大量其它信息混杂在一起。例如,用户想要找到的网页可能与用户在特定一天访问的其它网页的结果的信息混杂在一起。如果用户不记得他们访问该网页的具体日期,则任务将变得更具挑战性和令人沮丧。
此外,即使在一个设备上提供一些搜索能力,用户也可能希望在不同的设备上查看或继续他们的活动。例如,虽然用户的台式计算机保存了用户打开哪些文档、用户打开了哪些应用程序以及参与的应用程序内容、或者用户访问了哪些网站的记录,但是对于希望在另一台计算机设备(例如,他们的智能手机或平板电脑)上查看或恢复该活动的用户来说,该信息通常是不可获得的。特别是,搜索用户在网上查看但未在本地复制的内容可能很困难(例如,用户可能仅限于搜索他们访问过的网站的历史记录,但无法搜索网站本身(与网站的URL相比而言))。对于用于提供对网页传送内容的访问的应用程序而言,也存在这种困难。因此,仍然存在用于跟踪用户在一个或多个计算机设备上的活动,并使用户容易且智能地访问该信息的改进空间,其包括允许用户稍后在最后进行活动的计算机设备上、或者在不同的计算机设备上恢复他们的活动。
本公开内容提供了可以允许用户更容易地在计算机设备上以及(在特定实施例中)在多个计算机设备上跟踪他们的活动的创新。在某种程度上,通过随时间跟踪相同或相关的用户活动,可以促进这些创新。用户参与活动的次数或者用户参与活动的持续时间,可以与其对用户的重要性相关。例如,如果用户在特定网页上花费了20分钟,则可能表明该网页比用户进行了登陆并且随后立即导航回到先前页面的另一个网页更重要。但是,用户仅在短时间内访问但导致另一个相关的重要活动(例如,发送电子邮件或拨打电话)的网页,可以表明该网页对用户具有高度重要性。
因此,如下面将更详细描述的,所公开的创新涉及收集关于用户活动的数据,对该信息进行组织(例如,将用户动作与单个活动相关联,而不是作为一系列孤立动作),并提供使用户能够查看他们的活动以查找感兴趣的信息的用户界面。在2017年2月24日提交的共同未决的申请No.15/442,399中,公开了关于用户活动信息和与其相关的显示的其它细节。为了进一步帮助个人定位特定活动,或者以其它方式向个人提供关于用户活动的背景知识,所公开的创新包括:与导航助记符相关联地显示活动信息。
如本文所使用的,导航助记符是可能对用户来说非常难以记住的信息,并且其可以帮助用户确定与导航助记符相关联的活动是否可能与他们正在寻找的信息相关,或者以其它方式为活动信息的显示提供上下文。例如,用户可以将导航助记符和用户在时间上与导航助记符相关联的时间接近的活动相关联。该时间可以是导航助记符发生的时间,也可以是用户与导航助记符相关联的时间。导航助记符可以是重要的新闻或娱乐事件,例如新的大片电影的发布日期或总统选举的日期。
虽然本公开内容通常描述了用于定位过去任务活动的导航助记符,但是可以提供关于预期任务和活动的导航助记符。例如,可以提供人或位置的图像,作为接近即将到来的日历项的导航助记符。
举一个与特定用户或某个位置(例如,个人休假的位置)相关的导航助记符的例子,在个人的不同时间可能特别难忘,例如他们预订假期或离开以进行假期时,或从他们的假期回来时。因此,一些潜在的导航助记符(例如,新闻报道)可能与大量个人相关,而其它导航助记符可能与单个个体相关,或者可能以不同方式与不同用户相关。在各个实施例中,计算机设备(例如,计算机设备的操作系统或其组件)可以通过以下方式,基于启发法、用户行为(包括特定用户或用户集合)来选择导航助记符:使用确定的馈送服务、使用促销资源、基于用户使用或指定的应用程序或服务、或其组合。
导航助记符可以显示在关于用户可能与该导航助记符相关联的活动的信息附近。如果个人回忆他们正在寻找的与显示的导航助记符无关的活动,则用户可以更快地滚动显示的活动,其包括直到用户识别出与他们正在寻找的活动相关联的导航助记符。如果用户将显示的导航助记符与感兴趣的活动相关联,则用户可以更仔细地查看相关联的活动,其包括选择显示与导航助记符相关联的活动的更详细的活动信息。
根据所公开的创新的一个方面,用户可以选择导航助记符来建立相关性标准,以确定要显示的活动和其它导航助记符。例如,可以将特定的人用作导航助记符,可能是因为用户接收到来自该人的电话或电子邮件。在根据时间顺序显示活动的视图中,选择该人可以使所显示的活动改为使用该人作为相关性标准,并显示与该人相关联的活动的列表(即使它们不是最近的活动)。或者,选择该人可以使得显示使用个人标识符而不是时间顺序作为相关性或显示标准的活动。
可以将所公开的导航助记符合并到各种图形用户界面显示中,其包括呈现用户活动(例如,满足特定相关性标准的活动)的摘要或选择的显示、完整活动历史的显示、以及来自于搜索满足特定标准的活动的查询结果的显示。在特定的方面,这些显示可以至少最初包括活动的时间顺序或时间线显示。这些显示可以合并到其它应用程序中,或者提供其它功能,例如在日历或“待办事项”应用程序中显示导航助记符。在一些情况下,可以为过去和未来的活动、任务、日历项目、提醒等,提供导航助记符。
在至少一些情况下,向用户显示的活动信息可以包括:使用户能够提供输入以恢复活动的特征。例如,如果活动是正在观看电影,则可以向用户呈现关于该活动的信息,如果用户选择该活动,则可以将用户带到能够显示电影的应用程序(例如,最初观看该电影的应用程序),可以将电影加载到该应用程序中,可以前进到用户离开观看该电影的位置,并且可以恢复播放。在一些方面,可以在与最初(或最后)进行活动的设备不同的设备处恢复该活动,或者可以在不同于将恢复该活动的设备的设备处启动该活动。类似地,可以在与另一个设备相关联的一个设备上提供导航助记符,其包括在另一个设备上的用户任务和活动。
在一些情况下,如上所述,选择导航助记符可能会导致基于相关性标准或者与所选择的导航助记符相关联的其它参数进行显示(其包括重新组织现有显示)。另外地或者替代地,选择导航助记符可能会导致显示关于导航助记符或与之相关的信息。例如,选择与个人或地点相关联的导航助记符可能导致显示地点的图像或者与该图像或地点有关的显示。如果导航助记符是某个事件或者娱乐内容,则选择导航助记符可以提供参与该事件或者访问内容的选项。
所公开的创新可以提供实例化导航助记符并将导航助记符与活动相关联。例如,应用程序接口可以提供允许应用程序创建导航助记符,并且可选地将应用程序中的用户活动与导航助记符进行关联的方法。还可以通过监测用户活动、或通过生成可能的导航助记符的集合或馈送以及选择性地将导航助记符与用户、特定显示或特定活动相关联(其包括使用启发法或机器学习),来自动创建导航助记符。
可以在多个设备上收集关于用户活动和导航助记符的信息,并将其分发到除了执行该活动的设备之外的设备,其包括通过中间服务或用作用户数据的主存储库的计算机设备之一。在特定的情况下,诸如基于云的服务之类的中间服务从用户的多个计算机设备收集活动信息,并协调活动信息和来自设备的导航助记符之间的任何差异。因此,中间服务(或主设备)可以充当“真实”的仲裁者,并且可以将活动信息和导航助记符分发给用户的设备,其包括:使得可以向特定设备提供其它用户设备的活动信息和导航助记符,或者可以向该特定设备提供更新的信息。以这种方式,可以提供允许用户在多个计算机设备上与一个或多个导航助记符相关联地查看他们的活动的显示。
因此,所公开的创新可以提供许多优点,其包括:
·应用程序注册导航助记符的接口;
·监测用户活动以注册导航助记符的服务;
·与用户计算机设备上的用户活动不直接相关联的潜在导航助记符的池或馈送;
·允许用户定义导航助记符和/或活动,并定义活动和导航助记符之间的关系;
·提供导航助记符以选择性地与用户或用户活动相关联;
·显示包括来自多个计算机设备的用户活动信息和导航助记符;
·使用与导航助记符相关联的相关性标准来获取、组织和显示信息;
这些创新涉及计算机科学技术领域,因为它们收集、分发和仲裁与用户在一个或多个计算机设备上的活动有关的信息,并促进进一步的用户活动。通过允许用户快速地定位和恢复先前的活动,本发明的创新改进了计算机设备的操作,这是因为与用户手动地执行恢复活动所需的每个步骤相比,可以更快地恢复先前的活动(例如,在当他们最后一次参与该活动的点)。这些创新还通过创新的用户界面来改善计算机设备的功能,该用户界面允许用户与计算机设备进行交互以快速地定位相关信息并恢复活动。这些创新还有助于计算机设备之间的交互和信息共享,例如允许用户在另一个设备上查看来自一个设备的活动信息和导航助记符,在设备上恢复最初在另一个设备上执行的活动,或者通过在另一个设备上提供输入来在设备上恢复活动。
用户历史记录、活动、任务和导航助记符之间的关系
在本公开内容的一些方面,监测与一个或多个计算机设备相关联的用户活动。图1示出了用户活动110如何具有指示活动的离散实例的一个或多个历史记录120、或者与活动相关联的事件,以及任务130如何可以包括多个活动。活动110通常与软件应用程序和用户使用该软件应用程序访问或交互的一个或多个特定内容项(例如,文档、电影、音乐文件)相关联。软件应用程序和相关联内容的例子可以是文字处理程序和创建、修改或访问的特定文件、音乐程序和用户收听的歌曲或专辑、视频回放程序和用户观看的特定视频、社交媒体应用程序和用户查看或联系的特定个人或实体、以及网络浏览器和用户访问的特定网页。
在一些情况下,用户可以在单个场合下参与活动110。在其它情况下,用户可以在多个场合下参与相同的活动110。例如,在编写文档时,用户可以创建文档,然后在多个不同的场合对其进行编辑。在某个时刻,用户可能完成了文档,并且可以不再次访问它,或者可能长时间不再访问它。
可以表示用户参与活动110的每个离散时机、或者与活动相关联的特定事件(例如,打印文档、转发电子邮件、为网页加书签),并且由历史记录120进行汇总。历史记录120可以与用户开始活动110的特定实例的时间(或事件发生的时间)、实例结束的时间、用户积极参与活动的持续时间、以及其它信息相关联。
历史记录120可以包括能够用于提供一个活动(或其实例或事件)相对于用户在一段时间内参与的其它活动(或其实例或事件)的重要性的指示的信息。相关性信息可以是一个活动与用户使用相同计算机设备进行的其它同期活动或者用户使用多个计算机设备执行的活动相比,对用户可能有多重要的度量。例如,用户可以在他们的膝上型计算机上编辑文档的同时,使用他们的智能手机收听音乐。在相同的时间段内,用户可以使用他们的智能手机发送文本消息,并且在他们的膝上型计算机上打开网页浏览器。
使用单个计算机设备执行的活动110可能对用户具有不同的相关性或重要性。例如,在上面的例子中,虽然用户在其膝上型计算机上打开了网页浏览器,但对他们来说最重要的活动可能是他们正在编辑的文档。在智能手机上,与用户正在收听的音乐相比,用户发送的文本消息可能具有更大的相关性。在用户在一段时间内执行的所有活动中,编辑文档可能是最相关的活动。如将进一步描述的,可以基于各种参数以多种方式来确定相关性。此外,可以使用不同的模式来计算或测量相关性。例如,用户可以指示他们想要查看最相关的工作活动或者最相关的非工作活动。
可以通过单个因素或多个因素的组合来确定相关性。一个因素可以包括:用户积极参与活动110的时间量。另一个因素可以涉及:用户在参与活动110时执行的重要动作。在一些情况下,可以由特定应用程序定义和报告重要动作:例如,某个应用程序可以报告转发电子邮件或“喜欢”社交媒体帖子作为重要动作。在其它情况下,可以以其它方式确定重要动作,例如通过操作系统跟踪的用户动作。例如,可以将打印对象(例如,文件或网页)的行为指定为重要动作,并且使用其来帮助确定活动110(或特定历史记录120或活动的实例)的相关性值,或者以其它方式与活动相关联(例如,在活动的适当历史记录中进行陈述)。
不同的应用程序以及其相应的活动110可以与更高或更低的相关性因素相关联,其包括取决于应用程序的类型(例如,可以为文字处理器分配比音乐回放应用程序更高的相关性,可以为网络浏览器“A”分配比网络浏览器“B”更高的相关性,可以为“娱乐”应用程序分配比“生产力”应用程序更低的相关性)。与应用程序相关联的活动的相关性还可以取决于用户同时执行的其它活动。例如,当同时执行文字处理和网页浏览时,可以将文字处理排名为比网页浏览更相关,但是可以将网页浏览排名为比同时音乐回放更相关。
可以使用机器学习技术来确定或改进相关性。例如。如果将活动110标记为相关,但用户改为查看关于其它活动的信息,则可以修改相关性的定义或分配的相关性值。类似地,可以使用启发法来创建或调整相关性值。例如,可以识别用户活动的模式(例如,用户喜欢在阅读网站上的新闻时听音乐)或上下文(例如,一天中的时间、一周中的某一天),并创建或调整相关性指示符。当使用多个因素来确定相关性值或者向活动110(或历史记录120或任务130)分配总体相关性分数时,可以对这些因素进行加权,或者分配置信度值,并且周期性地调整权重或置信度值(例如,使用机器学习、启发法或其它技术)。
可以通过用户与之交互的软件应用程序来生成历史记录120。在一些情况下,软件应用程序例如通过接口(例如,调用API的方法来创建或修改历史记录120)可以提供历史记录的信息。在以下情形下,可以创建或修改历史记录120:例如,当用户启动应用程序时、当用户使用应用程序创建、修改或访问新内容时、当用户关闭应用程序或特定内容时、或者在应用程序中发生特定事件时(例如,保存文件、发送电子邮件、打印文档)。
在示例性场景中,当用户观看视频时(例如,使用流视频应用程序或提供流视频的网站),应用程序或网站可以调用用于创建或修改历史记录120的方法(例如,API)。该调用可以包括作为参数的信息,例如,应用程序或网站(或应用程序和网站)的标识符、与用户相关联的标识符、与用户正在观看的视频相关联的标识符、用户访问视频(或启动应用程序)的时间、用户观看视频的持续时间、以及用户停止观看视频时(或进行调用时)的播放位置。
在其它情况下,历史记录120可以由监测用户活动的另一个应用程序或操作系统组件生成。例如,监测组件可以跟踪用户打开的应用程序、应用程序打开的持续时间、用户活动地使用应用程序的持续时间(例如,使用诸如应用程序在用户界面中聚焦或者是主要活动的应用程序的持续时间之类的度量、或用户活动的其它度量,例如通过键盘或指向设备提供给应用程序的输入)、用户打开、修改或创建的文件、以及用户与应用程序相关联采取的重要动作(例如,打印文档或下载文件)。在至少一些方面,用户可以直接生成或指定活动110、历史记录120、任务130、导航助记符140或者其组合,和/或可以使这些活动、历史记录、任务和导航助记符相互关联。
通常,监测组件将过滤机制应用于用户活动或者至少用户活动报告,使得并非所有用户活动都产生历史记录120。也就是说,某些用户动作可能不太重要,在某种意义上它们不太可能与用户稍后想要查看或恢复的活动相关。举例而言,如果用户打开,然后快速关闭一系列文件,则可以指示用户正在查找具有特定内容的文件,并且打开和关闭的文件是用户确定不是正确文件的文件。因此,用户以后可能不太可能想要查看那些活动(并且实际上,显示那些活动可能阻碍用户查找他们寻找的信息),因此他们可以不导致生成历史记录120。但是,如果在打开和关闭一系列文件后,用户打开了一个文件、打印内容然后再快速地关闭,则这可能表明打印的文件很重要,可能是用户有兴趣查看的内容或者在以后恢复,因此可以与历史记录120相关联。
在一些方面,是否创建历史记录120可以至少部分地取决于用户动作是否可以与现有活动110相关联。通常,如果用户动作可以与用户已经执行了一次或多次的离散活动110相关联,则其更可能是相关的。例如,如果用户最近在其它场合访问过一个文件,则打开和关闭该文件可能更重要。
如将进一步描述的,本公开内容提供了用于向用户显示关于用户活动的信息的创新,其包括当用户参与活动110时的个体实例(例如,特定历史记录120)。在一些情况下,与向用户显示的相比,可以创建更多的历史记录120。例如,可以生成历史记录120并用于帮助确定与历史记录120或其它历史记录相关联的活动110的相关性。如果用户访问文档(即使是短暂的时间),例如,其可以指示与用户在相关时间段内参与的其他活动相比,该活动110与用户之间的相关性更高。
可以分析活动110以确定向用户显示哪些历史记录120。例如,用户可能仅想要查看用户在特定时间段期间参与的前五个最相关活动110的最近历史记录120。例如,可以使用与活动110相关联的多个历史记录120来确定活动相关性,即使最终显示给用户的信息可以仅来自最近的历史记录。
每个活动110可以但不一定需要与一个或(在一些情况下)多个任务130相关联。任务130可以表示涉及多个活动110的用户的更高级别的努力。举例而言,任务130可以是用户准备年度部门审查。作为年度评审的一部分,用户可以进行活动110,例如准备报告、准备演示文稿、创建图形和图片、以及向同事发送电子邮件。如果期望的话,任务130和活动110可以具有另外的组织级别。例如,准备报告也可以是任务130,其中准备报告文档并为报告准备图形、图片和图像都是基础活动110。
活动110、历史记录120和任务130中的一个或多个可以与一个或多个导航助记符140相关联。虽然将活动110、历史记录120和任务130示出为与不同的导航助记符140相关联,但在至少一些方面,特定的导航助记符可以与这些元素的组合相关联。例如,充当导航助记符140的新闻报道可能与在该新闻报道出现之日执行的与活动110的特定实例相关联的特定历史记录120特别相关。人可以是导航助记符140,并且与活动110相关联,其包括与活动相关联的任何历史记录120。相同的导航助记符140还可以与包括活动110的任务130相关联。
在一些情况下,任务130或活动110可以用作其它任务或活动的导航助记符。也就是说,用户可以基于与另一活动或任务的心理关联,来回忆特定活动或任务。如图1中所示,导航助记符140a可以由活动5形成,并且可以用作任务2和活动4的导航助记符。
图1示出了导航助记符140如何帮助用户定位特定活动110、历史记录120和任务130。例如,用户可能不记得他们参与活动110的具体时间(与特定历史记录120相关联),但是,导航助记符140可能对用户来说更难忘。用户可能记得导航助记符140与他们正在寻找的历史记录120相关联(例如,“我知道我在与汤姆交谈后处理了该文档”或“我在发生该事件那天观看了电影”)。因此,当查找历史记录120时,用户可以滚动浏览历史记录,直到他们看到与历史记录相关联的导航助记符140,然后更详细地查看与该导航助记符相关联的历史记录(例如,遵循图1中所示的虚线)来定位他们正在寻找的活动,而不是详细查看每个历史记录。
图1还示出了导航助记符140如何能够提供可用于组织关于活动110、历史记录120和任务130的信息的相关性标准。例如,显示最初可以呈现历史记录120的时间顺序列表,其中散布有导航助记符140的描述。如果用户选择导航助记符140,则显示可以呈现与所选择的导航助记符相关联的活动110、历史记录120、任务130或者其组合(例如,通过虚线连接到导航助记符的那些)。
在特定的方面,导航助记符140可以与一个或多个其它导航助记符相关联。这些关联可以促进用户级联地获取信息或者搜索,其中用户可以探索导航助记符之间的关联以便找到他们正在寻找的信息。例如,某个位置的导航助记符140可以与某个人(例如,与用户在该位置进行交互的人)的导航助记符相关联。用户感兴趣的历史记录120可以与该人相关联,但是用户可能最初没有记住该人,或者最初可能没有向用户显示该特定的导航助记符140。
虽然图1示出了活动110、历史记录120和任务130(包括这些组件的特定安排和相互关系),但也可以以另一种方式实现导航助记符140。例如,实现可以省略活动110、历史记录120和任务130中的一个或多个。
任务记录、活动记录、历史记录和导航助记符记录的数据模型
图2示出了可以包括在任务记录200(例如,图2的任务130的记录)中的各种属性。在特定的例子中,可以将任务记录200实现为抽象或复合数据类型(例如,类或结构)。
每个任务记录200通常与唯一任务标识符204(“TaskID”)(例如,整数值)相关联。任务标识符204可以由程序或运行程序的计算机设备使用,以唯一地命名和标识特定任务。每个任务记录200可以包括一个或多个活动标识符206(“ActivityID”),其标识与任务记录相关联的唯一活动。在特定的例子中,活动标识符206可以是一个或多个整数(例如,用于任务记录200的每个组件活动的整数标识符)。在一些情况下,活动标识符206可以包括用于其它任务的任务标识符204。以这种方式,一个任务可以是一个或多个其它任务的父任务(其中在效果上,它们是主任务或父任务的子任务)。
每个任务记录200可以与要显示的用于识别或描述任务的文本208(“DispalyText(显示文本)”)相关联。文本208可以提供任务的人可读的描述。在一些情况下,文本208可以由用户提供,在其它情况下,可以提供默认文本(例如,基于与任务记录200相关联的一个或多个活动的性质)。在其它情况下,可以自动地提供标题208,例如,由应用程序通过界面或通过创建和编辑任务记录200的软件组件来提供。用户可以改变标题208的任何默认或自动分配的值。
类似地,每个任务记录200可以与一个或多个图像或图标210(“图像”,其中图像的每个值可以指定图像文件或图像集合的文件路径)相关联,其中图像或图标210可以由用户分配或者可以由程序(例如,提供任务记录200的创建和管理的程序、或者例如通过API来提供任务记录、活动或活动的个人历史记录的信息的程序)自动地提供。在一些情况下,图像标识符210不包括值。如果图像标识符210为空,则在一些方面,没有图像与该任务相关联,或者可以提供默认图像。
在特定的例子中,图像210可以是与任务记录200的活动相关联的一个或多个内容项的图像。在一些方面,由图像210指定的目标可以是一组可视内容,例如,诸如HTML、JSON或XML之类的标记语言中指定的集合。至少在一些例子中,该目标可以是动态可修改的,使得可以增加另外的可视内容、去除可视内容或以其它方式修改可视内容。与任务记录200的图像210相关联的可视内容可以至少在一些实现中用作导航助记符,其包括用于其它任务记录200或用于活动记录218。
每个任务记录200还可以包括全局相关性指示符212(“GlobalRelevance”)。全局相关性指示符212可以是表示任务200相对于用户可能同时参与的其它任务,对用户而言的预测或估计的相关性或重要性的值(例如,在与任务相关联的活动的最早和最新历史记录所定义的时间段内的时间期间、由一段时间内的最早和最新历史记录限定、或者在包含该任务和一个或多个其它任务的另一选定时间段)。例如,可以使用全局相关性指示符212,按相对重要性对任务记录200(或活动记录218)进行排序。在至少一些方面,全局相关性标识符212可以按照跨多个计算机设备的相关性,对任务200进行排序(例如,智能电话上的活动可以相对于台式计算机上的活动排名在先)。
在一些情况下,任务记录200可以包括与任务相关联的任何导航助记符标识符的一个或多个导航助记符标识符214(“NavigationalMnemonicID”)。可以使用导航助记符标识符214来选择要结合与任务记录200相关联的任务进行显示的导航助记符。导航助记符标识符214还可以用于获取与导航助记符相关联的任务记录200。
任务记录200可以包括比图2中所示更多、更少或不同的信息。例如,任务记录200可以包括从针对与任务记录或者与其底层历史记录相关联的活动所维持的信息中提取的信息。该信息可以包括用于执行与任务记录200相关联的任务的应用程序或计算机设备的标识符。在一些情况下,作为全局相关性标识符120的替代或补充,任务记录200可以具有一个字段,该字段具有表示任务记录200相对于在特定计算机设备上执行的其它任务的预测或估计相关性或重要性的一个或多个值(例如,本地相关性标识符)。
任务记录200还可以包括能够用于将任务记录与其它任务记录、与活动记录218、与历史记录248或者与导航助记符记录272相关联的其它信息。这样的信息可以包括与任务相关联的人(例如,联系人、协作者)、与任务相关联的一个或多个位置(例如,使用计算机设备的硬件传感器确定的)、与任务相关联的时间或者与任务相关联的内容。
图2还示出了可以包括在活动记录218(例如,图1的活动110的记录)中的各种属性。在特定的例子中,可以将活动记录218实现为抽象或复合数据类型(例如,类或结构)。
每个活动记录218通常与唯一活动标识符220(“ActivityID”)(例如,整数值)相关联。活动标识符220可以由程序或运行程序的计算机设备使用,以唯一地命名和标识特定的活动。活动标识符220可以用作任务记录200的活动标识符206的源。
每个活动记录218可以包括应用程序活动标识符222(“AppActivity ID”)。可以将应用程序活动标识符222提供给与活动记录218相关联的应用程序,其可以允许应用程序识别所指示的活动(例如,恢复活动)。因此,应用程序活动标识符222可以表示应用程序的状态或上下文信息,并且可以称为激活信息。
在至少一些情况下,应用程序活动标识符222可以由用于执行与活动记录218相关联的活动的应用程序提供。例如,对于视频应用程序,视频应用程序可以创建标识符而不是指示用户正在观看的特定视频、以及视频内的播放位置。如果选择恢复与相应活动记录218相关联的活动,则可以向应用程序提供应用程序活动标识符222,应用程序可以使用该标识符来定位和恢复用户的先前会话。
每个活动记录218还可以包括激活目标标识符224(“ActivationTarget(激活目标)”)。激活目标标识符224可以用于定位(例如,执行)与活动记录218相关联的特定应用程序。在一些情况下,激活目标标识符224的值可以标识特定的应用程序,例如,特定计算机设备上的特定应用程序(例如,与应用程序相关联的可执行文件的文件路径)。
在其它情况下,可以使用激活目标标识符224的值来识别特定的应用程序,但不能用于识别特定计算机设备上的特定应用程序。例如,如果用户具有台式计算机、膝上型计算机、平板计算机和智能电话,则在一些情况下,激活目标标识符224的值可以标识特定计算机设备(例如,膝上型计算机)的特定应用程序。在其它情况下,激活目标标识符224的值可以标识特定应用程序(例如,特定的媒体播放器),并且激活的应用程序可以取决于活动记录28所位于的设备的标识、或者将要在其上恢复该活动记录的活动的设备。也就是说,如果从要恢复的平板计算机设备中选择活动记录218的活动,则可以执行用于平板计算机设备的应用程序,而如果使用台式计算机来恢复活动,则执行用于台式计算机的应用程序。在一些情况下,消歧服务可以基于要从其恢复活动的设备的标识,来转换激活目标标识符224以指示特定的应用程序(例如,可执行文件的位置)。在特定的方面,如果要在一个设备上恢复活动记录218的活动,并且未在该设备上安装所必需的应用程序,则可以确定和安装适当的应用程序,或者可以提示用户安装该应用程序。
活动记录218可以包括能够用于标识特定内容项(例如,文档文件、视频文件、音乐文件、图像文件、网页等等)的内容标识符226(“ContentTarget”)。在一些情况下,该信息可以由相关联的应用程序独立地维护,例如与应用程序活动标识符222指示的会话或上下文信息相关联地维护。
在一些实现或记录实例中,活动记录218可以不具有应用程序活动标识符222的值,或者该值可能不足以使用适当的应用程序恢复上下文。举例而言,对于通过监测用户动作创建的活动而不是由应用程序直接创建的活动(例如,通过API),相关联的应用程序可能不具有能够通过应用程序活动标识符222的值访问的状态信息。如果创建活动记录218的监测能够确定应用程序使用的内容作为活动的一部分,则可以将内容的标识符(例如,文件位置或网页地址)存储为内容标识符226的值。
即使应用程序包括可以通过应用程序活动标识符222的值访问的状态信息,活动记录218仍然可以包括内容目标标识符226。例如,在用户选择之后恢复活动之前,可以确定与内容目标标识符226相关联的内容是否可用。如果该内容不可用,则可以向用户呈现错误消息,提供手动定位内容的选项,或者可以自动地定位内容并将其下载到计算机设备(其包括当设备接收到引用该设备上没有的内容的活动记录218时进行自动地操作)。或者,可以使用内容目标标识符226的值来访问内容以提供内容的图像或预览。
人可读的标题228(“DisplayText(显示文本)”)可以包括在活动记录218中。在一些情况下,标题228可以由用户选择。在其它情况下,可以自动地提供标题228,例如由应用程序通过界面来提供或者由创建和编辑活动记录218的软件组件来提供。用户可以改变标题228的任何默认或自动分配的值。
图像标识符230(“Image(图像)”)可以用于标识与活动记录218相关联的一个或多个图像(例如,通过文件路径),其包括图像集合。在一些情况下,图像标识符230不包括值。在一些方面,如果图像标识符230为空,则没有图像与该活动相关联。在其它方面,如果图像标识符230为空,则可以使用默认图像,例如使用内容目标标识符226的值的内容预览,或者可以使用与活动记录218相关联的应用程序的图像或图标,作为要结合特定活动记录的其它信息一起显示的图像。
在一些方面,由图像230指定的目标可以是一组可视内容,例如以诸如HTML、JSON或XML之类的标记语言指定的集合。至少在一些例子中,该目标可以是动态可修改的,使得可以增加另外的可视内容、去除可视内容或者以其它方式修改可视内容。至少在一些实现中,与活动记录218的图像230相关联的可视内容可以用作导航助记符,其包括用于其它活动记录218或用于任务记录200。
属性数据232(“Properties(属性)”)可以用于存储与活动记录218相关联的其它信息。例如,属性数据232可以包括要提供给应用程序以恢复应用程序的先前状态和相关上下文(例如,应用程序的设置)的附加信息。在特定情况下,属性数据232可以存储为键值对,其中键指示特定属性或变量,值指示应当为该属性或变量提供的值。
属性数据232可以包括其它或另外的信息。例如,属性数据232可以指定关于与活动记录218相关联的活动的信息。举一个特定例子,当活动记录218表示电影时,属性数据232可以包括诸如电影的标题、电影的导演、电影中的重要演员或女演员、电影的类型等等之类的信息。当活动记录218是事件时,属性数据可以指定诸如事件的类型(例如,游行、抗议或音乐会)、事件发生的日期、事件的发起人等等之类的信息。在属性232中包括此类信息可以提供增强的搜索能力,以及提供关于用户参与什么样的活动的增强型分析(例如,使用机器学习),以及可能在任务中一起发生的活动(转而,这可以允许改进关于哪些活动可以与共同任务相关联的建议)。
活动记录218可以与诸如文档、网页、音频、视频、照片等等之类的内容类型相关联。内容类型可以由内容类型标识符234(“ContentType”)指示。例如,可以使用内容类型标识符234的值,对活动记录进行排序或者允许按内容类型来搜索活动记录218。
每个活动记录218可以与使用应用程序标识符236(“ApplicationID”)指示的特定应用程序相关联。在一些情况下,应用程序标识符236可以用于指示特定计算机设备上的特定应用程序、或特定类型或类别的计算机设备(例如,PC、平板电脑、智能电话)上的应用程序。在其它情况下,应用程序标识符236可以用于指示特定的应用程序(例如,特定的音乐播放程序),但不是特定于特定的计算机设备。每个活动记录218还可以包括用于应用程序的人可读的名称238(“AppDisplayName”)、以及表示该应用程序的图标240(“AppIcon”)。
每个活动记录218可以包括全局相关性标识符242(“Global Relevance”)。全局相关性标识符242可以是表示一个活动相对于用户在一段时间内同时参与的其它活动(或任务记录200)对用户的预测或估计的相关性或重要性的值。可以使用全局相关性标识符242来对用户在不同计算机设备上执行的活动进行排序。在一些情况下,代替全局相关性标识符242或者除了全局相关性标识符242之外,活动记录可以包括本地相关性标识符,其指示该活动在一个或多个特定计算机设备处的相关性(例如,使用智能手机进行的活动实例的值和使用台式计算机进行的活动实例的值)。
活动记录218可以包括已经与相应活动相关联的任何助记符标识符的一个或多个导航助记符标识符244(“NavigationalMnemonicIDs”)。导航助记符标识符244可以用于选择要结合与活动记录218相关联的活动一起显示的导航助记符。导航助记符标识符244还可以用于获取与导航助记符相关联的活动记录218。
活动记录218可以包括比图2中所示更多、更少或不同的信息。活动记录218可以包括将基础活动与一个以上应用程序相关联的信息。例如,用户可以在他们的膝上型计算机上使用一个程序(例如,特定的文字处理程序),但在他们的平板计算机上使用不同的程序(例如,不同的文字处理程序)来执行活动。活动记录218可以使用适合于特定计算机设备的应用程序,存储足以使活动进行恢复的信息。
活动记录218还可以包括能够用于将活动记录与其它活动记录、任务记录200、历史记录248或导航助记符272相关联的其它信息。这样的信息可以包括与活动记录218的活动相关联的人(例如,联系人、协作者)、与该活动相关联的一个或多个位置(例如,使用计算机设备的硬件传感器确定的)、与该活动相关联的时间、或者与该活动相关联的内容。
如上所述,活动(以及其活动记录218)可以与一个或多个历史记录相关联,其中历史记录表示用户参与活动的不同时机或时段或者与该活动相关联的重要动作或事件。图2示出了可以包括在历史记录248中的各种属性。在特定的例子中,历史记录248可以实现为抽象或复合数据类型(例如,类或结构)。
每个历史记录248通常与唯一历史记录标识符249(“HistoryID(历史ID)”)(例如,整数值)相关联。历史记录标识符249可以由程序或运行程序的计算机设备使用,以唯一地命名和识别历史记录248。
历史记录248可以由不同的实体(例如,不同设备的组件、或单个设备的不同组件)创建,并且是由于不同的原因。因此,每个历史记录248可以包括类型标识符250(“Type(类型)”)。类型标识符250的值可以表示或记录用户何时开始新活动、用户完成活动的时间、用户积极参与活动的时段、关于活动的重要用户动作(例如,发送文本或电子邮件、共享文档、打印文档、下载文件、最大化窗口)或者该活动内的事件(例如,对于游戏,完成特定任务或关卡)。如将进一步描述的,一些历史记录248可以由应用程序生成(例如,通过调用允许应用程序创建、获取或修改历史记录的API,其中这些历史记录可以与由应用程序关于历史记录维护的状态信息相关联),因此,应用程序可以至少具有一些灵活性来定义与特定应用程序相关的历史记录类型。其它类型的历史记录248可以是通用的或默认的,并且可以包括能通过监测用户活动而生成的历史记录,而不需要来自应用程序的特定输入。
每个历史记录248使用活动标识符252(“ActivityReferenced”)与特定的活动记录218相关联,活动标识符252可以例如存储适当活动记录的活动标识符220的值。对于某些类型的历史记录248(例如,由应用程序或监测组件指定的那些作为“新的”),历史记录248的创建可以触发创建新的活动记录218的创建,其中新活动记录的活动标识符252的值存储为活动标识符220。
每个历史记录248可以包括时间段标识符254(“EventPeriod”)。在一些情况下,时间段标识符254可以包括与特定历史记录248相关联的特定用户动作的开始和结束时间。在其它情况下,时间段标识符254可以是持续时间,例如,用户在某种程度上参与活动的小时、分钟和/或秒数。如果时间段标识符254测量持续时间,则历史记录248可以包括用于记录用户开始历史记录中反映的活动的时间的另一个字段。
与可能使应用程序运行但不活动地参与应用程序相比,每个历史记录248还可以包括用户积极参与活动的时间的度量。该值可以记录在活动时间标识符256(“ActiveTime”)中。用户积极参与活动的时间量可以由报告应用程序提供,例如,当响应于诸如接口之类的应用程序的调用而创建或修改历史记录248时。如果应用程序没有提供用于活动时间标识符256的值,或者如果通过监测用户活动来创建历史记录248,则可以例如通过以下方式来确定活动时间:跟踪关联的应用程序在用户界面中聚焦多长时间,监测用户例如使用键盘或指向设备对应用程序的输入。
由于历史记录248可以由不同的源(例如,监测组件或应用程序)创建,或者可以从另一个设备或中央存储库接收,因此历史记录可以包括报告源标识符258(“ReportingSource”),其指示什么实体负责创建历史记录。类似地,可以包括设备标识符260(“DeviceID”)以指示在哪个设备上发生与历史记录248相关联的活动。
在至少一些情况下,与活动记录218中的概括信息相比,可以将至少一些个体历史记录248显示给用户。标题262(“DisplayText(显示文本)”)可以包括与历史记录248相关联地显示给用户的文本。标题262可以进行自动地分配、是用户分配的或者默认的,并且在至少一些情况下可以由用户改变,例如,如针对任务记录200的标题208所描述的。
每个历史记录248可以与创建历史记录的时间相关联,或者在一些情况下,例如使用报告时间标识符264(“ReportTime”)来更新。此外,还可以使用报告时间标识符264的值来确定历史记录248的立即或最近程度。如果报告时间标识符264的值是最近的,则与过去更新该值相比,更可能更新历史记录248。
举例而言,应用程序可以创建指示用户正在参与活动的历史记录248。该使用可以是持续的,因此最初在历史记录248中的持续时间可以是从用户发起活动的时间到创建历史记录的时间。稍后,用户可以停止使用该应用程序,并且该应用程序可以更新历史记录248以反映用户参与活动所花费的实际时间。因此,例如,与过去几分钟或几小时创建的历史记录相比,在前一天创建的历史记录248可能更不可能被更新。
与任务记录200和活动记录218一样,历史记录248可以具有相关性值,该相关性值可以用于将历史记录与用户同时参与的其它活动(或者其特定历史记录)进行比较。在至少一些情况下,由于在单个计算机设备上执行活动的各个实例,因此历史记录248可以包括本地相关性标识符266(“LocalRelevance”)的值,其指示活动实例与同一计算机设备上的其它活动实例的比较相关性。通过比较多个设备的历史记录248,可以确定跨多个计算机设备的全局相关性值,并将其与任务记录200或活动记录218相关联。但是,在其它实现中,可以为个体历史记录248确定全局相关性值。
历史记录248可以包括已经与相应活动实例相关联的任何导航助记符标识符的一个或多个导航助记符标识符268(“NavigationalMnemonicIDs”)。可以使用导航助记符标识符268来选择要结合与历史记录248相关联的活动实例一起显示的导航助记符。导航助记符标识符268还可以用于获取与导航助记符相关联的历史记录248。
历史记录248还可以包括能够用于将历史与其它历史记录、活动记录218、任务记录200或者与导航助记符记录272相关联的其它信息。这样的信息可以包括与活动实例相关联的人(例如,联系人、协作者)、与活动实例相关联的一个或多个位置(例如,使用计算机设备的硬件传感器确定)、与活动实例相关联的时间、或者与活动实例相关联的内容。
历史记录248可以包括比图2中所示更多、更少或不同的信息。历史记录248可以包括能够用于将历史记录与其它历史记录、活动记录218、任务记录200或导航助记符记录272相关联的其它信息。这样的信息可以包括与活动实例相关联的人(例如,联系人、协作者)、与活动实例相关联的一个或多个位置(例如,使用计算机设备的硬件传感器确定)、与活动实例相关联的时间、或者与活动实例相关联的内容。
可以使用导航助记符记录272来描述导航助记符。在特定的例子中,可以将导航助记符记录272实现为抽象或复合数据类型(例如,类或结构)。
每个导航助记符记录272可以包括唯一地标识导航助记符记录的导航助记符标识符274(“NavigationalMnemoniclD”),例如,其为整数值。类似于历史记录248,导航助记符记录272可以由各种源创建,其包括由应用程序创建(例如,通过调用应用程序接口的方法)、由用户活动监测服务或导航助记符馈送服务创建,其可以在报告源字段276(“ReportingSource”)中指示。例如,在选择或优先考虑用于显示的导航助记符时,可以使用报告源。
可以在导航助记符记录272中包括时间278(“Time”)。时间278可以是创建导航助记符记录272的时间,或者可以是用于确定任务、活动、历史记录和其它导航助记符与导航助记符记录表示的特定导航助记符的相关性的另一个时间。例如,应用程序可以在事件发生之后的某个时间,为重要事件(例如,新闻报道或众所周知的事件)创建导航助记符记录272。不是使用导航助记符记录272的创建时间来用于时间278,使用重要事件发生的时间可能是更合适的。在另外的方面,导航助记符记录272可以包括允许将创建时间和一个或多个其它重要时间两者进行记录的字段。在一些情况下,时间可以是离散时刻(例如,诸如保存文档或者拍摄照片的时间之类的特定时刻)。在其它情况下,时间可以与持续时间相关联(例如,持续几天或几周的假期)。
特定的导航助记符可以与类型相关联,该类型可以包括在导航助记符记录272的导航助记符类型字段280(“NavigationalMnemonicType”)中。例如,导航助记符的类型280可以是、媒体项目、人(或其他实体)、位置或对象。但是,任何适当的和期望的分类都可以用作类型280,其可以以不同的粒度来指定。例如,对于某些用途,具有“人”的类型280可能是有用的,而在其它情况下,更合适的类型可以是“同事”。也可以基于以不同粒度指定的类型280,来定义用于获取导航助记符记录272的规则。例如,如果将导航助记符记录272的类型280指定为“电影”,则可以指定搜索以获得仅“电影”类型的导航助记符记录,而可以指定另一个搜索以获得与“娱乐内容”相关联的导航助记符记录,其可以被编程为获取具有电影、音乐、书籍、电视节目等类型的导航助记符记录。
在一些情况下,导航助记符记录272可以与使用适当的标识符指定的一个或多个特定任务282(“关联的任务”)、活动284(“关联的活动”)、历史记录286(“关联的历史记录”)和其它导航助记符记录288(“AScNavigationalMnemonics”)相关联。例如,如果应用程序创建了导航助记符记录272,则应用程序可能希望将导航助记符记录与由历史记录248表示的活动的特定实例相关联,因此可以在创建导航助记符记录时分配历史记录标识符286的值。
在至少一些情况下,导航助记符记录272可以包括类似于活动记录218的激活目标224的激活目标290(“激活目标”)。例如,如果应用程序创建导航助记符记录272,则它可以在检测到适当的用户输入时,为启动应用程序的激活目标290提供值(例如,提供特定状态),或者以其它方式显示指定的内容。在其它情况下,激活目标290可以是生成与导航助记符记录272相关联的特定类型的显示的命令。导航助记符记录272可以包括属性信息292(“属性”),例如,允许应用程序在启动后实现特定状态的信息(例如,内容信息)。
标题294(“显示文本”)和图像296(“图像”)标识符可以为导航助记符272的导航助记符提供人可读的标题,以及为用户提供与导航助记符相关联的视觉提示。图像296的值可以指定图像的位置或资源,例如,人、位置或者由导航助记符记录272记录的事件的图像。
导航助记符记录272可以包括比图2中所示更多、更少或不同的信息。导航助记符记录272可以包括能够用于将导航助记符记录与其它导航助记符记录、活动记录218、历史记录248或任务记录200相关联的其它信息。这样的信息可以包括与导航助记符相关联的人(例如,联系人、协作者)、与导航助记符相关联的一个或多个位置(例如,使用计算机设备的硬件传感器确定的)、与导航助记符相关联的时间或者与导航助记符相关联的内容。
可以将任务记录200、活动记录218、历史记录248和导航助记符记录272的集合维持在一个或多个适当的数据结构(例如,队列、列表、堆、堆栈、二叉搜索树、图等等)中,其包括维持在一个共同的数据结构中。如将进一步描述的,可以搜索这样的数据结构以寻找满足特定标准(包括与另一个成员具有特定关系)的成员,然后可以呈现这些成员以进行显示。另外,应用程序接口可以提供用于设置和获取任务记录200、活动记录218、历史记录248和导航助记符记录272的各个字段的方法。
捕获和显示用户活动和导航助记符信息的示例性架构
图3示出了可以用于实现本公开内容的创新的示例性架构300。架构300包括多个计算机设备304。例如,计算机设备304可以包括台式计算机、膝上型计算机、平板计算机、智能电话、游戏控制台、智能电视和电器、以及诸如智能手表和智能眼镜之类的可穿戴技术。计算机设备304可以包括用户活动和导航助记符监测或报告的轻量级或重量级实现,以及用于访问其结果的用户界面。
例如,计算机设备308包括用户活动监测或报告的轻量级实现,其包括导航助记符的报告。计算机设备308中的每一个可以包括多个应用程序312。报告服务316可以收集例如应用程序312通过接口报告的信息,并将其发送到托管聚合/同步组件320的计算机设备318。
可以通过网络或云322连接计算机设备304。在一些情况下,报告服务316还可以向其它计算机设备304(其包括那些具有用户活动和导航助记符监测或报告的重量级实现的设备,例如计算机设备332)发送信息。报告服务316可以允许应用程序312对诸如以下的接口进行各种调用:例如,提供创建或修改关于用户活动和/或导航助记符的信息(其包括存储在任务记录、活动记录、历史记录和导航助记符记录(例如,图2的任务记录200、活动记录218、历史记录248和导航助记符记录272)中的一个或多个中的信息)的接口。
聚合/同步组件320可以从计算机设备304中的一个或多个收集用户活动和导航助记符信息或数据。所收集的信息可以用于更新存储在计算机设备304中的一个或多个上的用户活动和导航助记符信息。例如,计算机设备308可以表示诸如智能手机或平板计算机之类的移动设备。计算机设备332可以表示台式或膝上型计算机。在这种场景中,聚合/同步组件320可以向台式/膝上型计算机332发送关于移动设备308的信息,从而可以向台式/膝上型计算机的用户呈现其在所有计算机设备304上的活动的综合视图,其相对于导航助记符包括对于多个计算机设备共同或者特定于特定计算机设备的信息。在其它场景中,计算机设备308还可以在包括计算机设备332的其它计算机设备304上发送关于用户活动和导航助记符的信息。
聚合/同步组件320可以执行其它活动。例如,聚合/同步组件320可以补充或增加由一个计算机设备304发送的数据,其包括由另一个计算机设备发送的信息。在一些情况下,聚合/同步组件可以将在一个计算机设备304上执行的活动的历史记录与使用另一个计算机设备执行的具有另一个活动的任务相关联。
聚合/同步组件320还可以解决从不同计算机设备304接收的数据之间的冲突。例如,如果两个计算机设备在重叠时间段内包含同一活动的历史记录或导航助记符,则可以通过使用以下规则来解决冲突:例如,对来自不同设备的活动或导航助记符数据进行优先级排序,基于生成活动数据的时间对活动或导航助记符数据进行优先级排序,基于报告源(例如,特定应用程序或shell监测组件)对活动或导航助记符数据进行优先级排序。
例如,如果用户正在两个计算机设备304上收听音乐,则相同内容中的回放位置可以在这些设备之间不同。聚合/同步组件320可以确定与活动相关联的适当回放位置。因此,聚合/同步组件320可以确定用于任务、活动或导航助记符的“真实”数据,并且可以将该信息发送到计算机设备304中的一个或多个,其包括未在其上执行活动的计算机设备、或者使用“真实”数据更新进行该活动的设备上的数据。
对于在不同计算机设备上执行的相同活动的导航助记符的情况,在特定的方面,该活动可以简单地与所有导航助记符相关联。在一些情况下,导航助记符的记录可以包括生成导航助记符的设备的标识符、或者与导航助记符相关联的设备的标识符(例如,由用户在用户所拥有的智能手机中检测到的用户访问的位置)。因此,该导航助记符可以与所确定的位置和特定计算机设备相关联。
计算机设备318还可以托管导航助记符馈送服务324。导航助记符馈送服务324可以收集和/或存储计算机设备304不报告的潜在导航助记符(虽然在一些情况下,导航助记符馈送服务的导航助记符可以重叠或复制由计算机设备报告的一个或多个导航助记符)。
可以完全或部分地策划导航助记符馈送服务324。例如,管理员可以确定要添加到导航助记符馈送服务324的导航助记符。例如,管理员添加的导航助记符可以是管理员认为对于很多用户、特定类别的用户、或者甚至特定用户来说难以记住的事件。策划可以包括:允许特定的源(例如,公司、应用程序、网站)向导航助记符馈送服务324注册导航助记符。
在其它方面,导航助记符馈送服务324的填充可以是完全或部分自动化的。导航助记符馈送服务324的导航助记符可以包括能够用于帮助将导航助记符匹配到特定用户或特定类别用户的类型或分类信息,其中这些信息可以提供更可能对特定用户有用的导航助记符。
例如,导航助记符馈送服务324可以包括用于确定要添加导航助记符的规则。规则可以规定:将一天中最受欢迎的前五个新闻报道添加为导航助记符。还可以基于多个用户报告的导航助记符的分析,来添加导航助记符。规则可以规定:将前五个最流行的导航助记符添加到导航助记符馈送服务324。可以以更细粒度水平来定义规则,例如说明与特定公司相关联的用户报告的前五个导航助记符将添加到用于与该公司相关联的其他用户的导航助记符馈送服务324。
在一些情况下,可以向用户提供导航助记符,以便向用户提供该用户可能感兴趣的信息。由导航助记符馈送服务324提供的导航助记符可以表示用户可能希望更多地了解的新闻报道、媒体项目(例如,电影)或事件(例如,音乐会、戏剧)。导航助记符馈送服务324可以存储具有导航助记符的信息,以指示特定建议的导航助记符是否应当用作导航辅助、用作信息建议或两者。在特定的例子中,可以将导航助记符提供为导航辅助,但是可以在用户不知道导航助记符的主题并且希望获得关于它的更多信息(例如,获得建议的媒体内容的副本或阅读新闻报道)、或者用户对导航助记符本身特别感兴趣的情况下,与关于导航助记符的其它信息相关联。以这种方式,并入所公开的创新的计算环境可以向用户提供更多价值。
为了帮助更好地将导航助记符(例如,导航助记符馈送服务324的导航助记符)与特定用户相关联,计算机设备318可以包括关联引擎326。关联引擎326可以实现用于将导航助记符馈送服务324的特定导航助记符与特定用户相关联的一种或多种技术。这些技术可以包括机器学习和规则(其包括启发法)。例如,规则可以规定:将与特定公司相关联的导航助记符显示给也与该公司相关联的用户。可以建立用户通常每天查看新闻网站的启发法,所以将与该网站相关联的导航助记符显示给用户。可以使用机器学习来分析一个或多个用户最多(或最少)使用的导航助记符,以便开发可以用于将导航助记符与特定用户相关联的规则。还可以使用机器学习来确定在特定情况下,用户最可能使用哪种类型的导航助记符(例如,用于特定的界面或者用户参与的搜索或浏览模态)。
转到计算机设备332上的活动和导航助记符监测和报告服务的重量级实现,计算机设备可以包括多个应用程序336。应用程序336可以通过接口340,直接创建和修改任务、活动、历史记录和导航助记符。接口340可以提供对活动引擎344的方法的访问,活动引擎344可以创建或修改任务记录、活动记录、历史记录和导航助记符记录。
除了通过接口340直接从应用程序33 6接收的用户活动和导航助记符信息之外,计算机设备332还可以通过监测用户活动(例如,与shell 346相关联的用户活动)来接收用户活动信息(例如,由计算机设备332的操作系统提供的服务的接口)。与shell 346相关联的信息可以包括与硬件设备348(例如,辅助存储设备、打印机、指向设备、键盘和其它附件)的交互。交互可以包括:例如,创建、打开或关闭文件,指向活动(例如,鼠标点击和光标操作)、键盘输入和打印文档的命令。
Shell监测组件352可以监测Shell活动。Shell监测组件352可以包括用于各种用户动作的监听器356,例如用于硬件动作的监听器、用于键盘或指向设备输入的监听器、用于网络活动的监听器、用于调用操作系统的音频或视频系统的监听器、用于确定打开和聚焦应用程序的监听器等等。
Shell监测组件352还可以包括处理引擎360。处理引擎360可以分析各种用户动作以将动作与特定应用程序336相关联,并创建提供给活动引擎344的历史记录或导航助记符记录。活动引擎344可以将历史记录与适当的活动或任务相关联,或者适当地创建新的活动或任务。活动引擎344可以将导航助记符记录与适当的任务、活动或历史记录或其它导航助记符记录相关联,或者可以存储导航助记符记录而不立即将其与任务、活动、历史记录或其它导航助记符相关联。
举一个活动引擎344如何基于用户活动创建导航助记符的例子,用户可以使用计算机设备332与另一个人进行音频或视频通信,例如在电话呼叫中或者使用互联网协议语音客户端(例如,华盛顿州雷蒙德市的微软公司的Skype服务)。该用户活动可以与进行对话的特定人(或人员)相关联。此外,对话可以与对话期间用户的位置相关联,例如用户是否在咖啡店中、他们的工作地点、他们的家、是否在机场中等等。在一些方面,可以使用诸如GNSS接收器之类的硬件设备348,通过分析与Wi-Fi接入点相关联的位置、或者通过确定与计算机设备332相关联的互联网协议地址相关的位置,来确定该位置。
与其持有对话的人(或人员)的身份、用户在对话期间的位置或者二者,可以用作导航助记符。例如,如果用户看到他们正在讲话的人的姓名或图像和/或与对话相关联的位置,则用户可以将该信息(其包括用户可以与对话关联的活动、例如他们正在编辑的文档或他们浏览作为对话的主题的网站)与对话的主题相关联。或者,基于用户在对话期间接收的推荐,对话可以是关于用户在稍后时间观看的媒体项目(例如,电影)。
虽然导航助记符不是活动的,但它可以具有对于活动共同的元素,其包括用户参与的在时间上接近导航助记符的活动、或者以其它方式与导航助记符具有关系的活动。在上面的例子中,该对话可以是活动,其可以与活动记录或特定历史记录相关联。活动或历史记录可以包括对话中涉及的人的身份、以及关于对话期间用户的位置的信息。但是,导航助记符不是对话,而是与其持有对话的人或者对话期间用户的位置。
虽然在用户的想法中、在用于导航助记符或活动的记录或两者中,导航助记符可以与对话(活动)相关联,但可以使用导航助记符来定位其它活动或导航助记符,其包括与对话相关联的导航助记符无直接关系的活动或导航助记符。例如,用户可能正在寻找他们在对话之前或之后参与的活动、或者与对话无关的活动。因此,使用导航助记符,所公开的创新可以促进用户的信息获取,即使对于与导航助记符不直接相关联的信息也是如此。
活动引擎344还可以与聚合/同步组件320进行通信,以及可选地与计算机设备308进行通信。关于在计算机设备332上创建或者从聚合/同步组件320或计算机设备308接收的任务、活动、历史记录和导航助记符的信息,可以存储在数据库364中。在至少一些方面,数据库364用于高速缓存聚合/同步组件320的信息的一部分,其中聚合/同步组件保持活动和导航助记符信息的权威存储库。在其它方面,数据库364可以包括另外的功能。
可以对数据库364进行周期性地垃圾收集,例如去除比特定阈值日期更早的用户活动和导航助记符信息、或者与用户未积极参与的活动有关的导航助记符信息、或者用户在一段时间内没有使用的导航助记符。在一些情况下,不是进行垃圾收集,或者在垃圾收集之前的阶段,可以组合或合并单个记录。例如,可以为最近的用户活动,维护所有相关的历史记录。对于较旧的用户活动,可以组合各个历史记录,例如将一天的单个历史记录组合到单个历史记录中,将一周的所有历史记录组合成单个历史记录等等。可以简单地删除比特定阈值更早的条目。
计算机设备332包括用户界面368,其可以允许用户结合一个或多个导航助记符查看关于他们的活动的信息,并且可选地恢复活动、访问与活动相关联的内容、或者修改任务记录、活动记录或历史记录。用户界面368可以包括用于指定用户查看活动和导航助记符信息或者与之交互的各种方式的一个或多个模板372。用户界面368还可以包括规则引擎376,规则引擎376可以响应于特定用户请求,来确定适当的内容以提供特定模板372。用户界面368的显示引擎380可以例如基于模板372以及(至少对于一些模板)规则引擎376指定的数据,呈现用于输出给缓冲器382的显示。
用户界面368可以与查询引擎384相关联。查询引擎384可以从用户接收查询(或在模板372中指定),并且向数据库366查询相关数据。在一些情况下,该查询可以是针对任务、活动(或其个人历史记录)、或满足以下特定标准的导航助记符:例如,在特定日期之前或之后进行、在标题中具有特定关键字、与特定内容或特定应用程序相关联、具有特定类型(例如,生产力、娱乐、游戏、电影等)或者其组合。除了或替代指定关于任务或活动的查询,可以允许用户使用导航助记符来搜索活动。例如,用户可以制定诸如以下的查询:“在我与Colleen见面之前向我展示我正在处理的文档”或“我上周喝咖啡后听到的那首歌是什么?”。另一个查询可以是“给我看看最近与Ken的通讯”。查询引擎384可以包括用于将用户提供的非正式或自由形式查询转换为可以由数据库364处理的格式(例如,在结构化查询语言中)的逻辑。
在一些情况下,计算机设备332可以包括索引器386。索引器386可以对关于任务、活动、历史记录和数据库364的导航助记符的信息进行索引,例如以便通过更容易获得制作用于填充模板372的数据,来改善用户界面368的性能。
架构300可以包括比所示出更多或更少的组件,并且可以以其它方式组织。例如,特定组件的功能可以由另一个组件执行。另外,在至少一些情况下,可以使用多个组件来执行功能。示出为在计算机设备332处发生的至少某些功能(例如,处理引擎360或活动引擎344的功能),可以在聚合/同步组件320处执行。
用户活动和导航助记符信息的数据结构
在至少一些方面,可以在概念上和能够用于存储和管理关于活动和导航助记符的信息的数据结构方面,将活动和导航助记符之间的关系表示为图表。图4示出了包括有表示活动410(其可以是活动或活动的个体历史记录)、任务414(虽然通常图表可以包括多个任务或者不包括任何任务)和导航助记符418的顶点(或节点)的示例图400。顶点之间的关系或关联通过顶点之间的边的存在性来表示。边通常是无向的,但是如果适合于特定关系或关联,则边可以是有向的。
图4示出了图表400如何可以包括来自多个设备的活动410和导航助记符418,以及如何向用户提供该信息可以帮助用户定位感兴趣的任务和活动。例如,顶点422可以与台式计算机相关联,顶点424可以与膝上型计算机相关联,顶点426可以与平板计算机相关联,顶点428可以与智能手机相关联,顶点430可以与诸如健身带或智能手表之类的可穿戴技术相关联。对来自多个设备的活动410、任务414和导航助记符418进行组合,不仅向用户提供更多信息,而且还可以允许用户更容易地定位感兴趣的信息。
举一个例子,用户可以在他们的智能手机上听音乐(顶点410a)的同时,在一个位置(顶点418b)处运行三英里(顶点418a),如健身带所测量的。在继续运行之前,用户可能已经在处理项目(顶点414,任务)的文档(顶点410b)。项目(414)可以与诸如电子表格(顶点410c)的其它活动相关联。项目(414)和文档(422a)可以各自与其它导航助记符(例如,也参与该任务或活动的人(顶点418c、418d))相关联。转而,这些导航助记符可以与另外的活动410、任务414、导航助记符418或其组合相关联。
例如,导航助记符“Ken”(418d)也与活动410d相关联,正在为举行(或已举行)退休派对。应当注意,虽然“Ken”(418d)是与任务414、文档410b和派对410d相关联的导航助记符,但该派对不与该任务或文档相关,并且“Ken”不是活动,即使他是该派对的参与者并且可以是该任务和文档的合作者。
图4还示出了导航助记符418如何来自各种源。三英里跑步418a可以是由健身带(或者与健身带通信的另一个计算机设备上的应用程序)自动创建的导航助记符。三英里跑步418a发生在位置418b,并且该位置可以自动地确定(例如,通过监测组件,比如监测健身带的硬件传感器的shell监测器或用于收听音乐410a的智能手机)。
顶点418e可以表示馈送服务(例如,图3的馈送服务324)建议的导航助记符。再举一个例子,基于与图400相关联的用户的简档,可以将顶点418f建议为用户准备他们最近的欧洲假期的相簿的活动410e的导航助记符。导航助记符410e可以是在欧洲度假期间或当用户创建相簿时发布的电影。用于该电影的导航助记符410e可以与诸如能够观看该电影的链接之类的内容相关联。
再举一个例子,如果用户活动(或其它导航助记符)指示用户可能生病,则可以向用户提供关于潜在治疗方案的建议新闻文章的导航助记符(并且其与适当的活动或导航助记符相关联)。用户可以手动地添加导航助记符(例如,指示用户感觉不舒服的助记符),并且可以将诸如观看脾气暴躁的猫图像410f的活动与该导航助记符相关联。
除了指定顶点之间的关系之外,边还可以表示(或者包括可用于指示)顶点之间的关系的类型的信息。例如,导航助记符418可以与活动或另一个导航助记符相关,因为它们在时间上邻近地发生,或者该关系可能是因为它们发生在相同位置,或者涉及一个或多个相同的人(例如,作为文档的合作者并且向他打了电话的人)。这种关系可以是另一种类型的关系。在其它情况下,边不包括关于关系的信息,例如可以基于与活动410、任务414和导航助记符418的记录相关联的信息,来确定该关系。
用户活动和导航助记符信息的显示
图5示出了示例性用户界面显示500,其可以用于向用户呈现关于与一个或多个导航助记符相关联的其活动的信息。显示500可以是图3的用户界面368的模板372之一,其可以使用规则引擎376和索引器384来填充。可以例如使用显示引擎380和缓冲器382,呈现填充的显示500以便显示到缓冲器。
显示器500呈现多个活动表示504(例如,504a-504f)。每个活动表示504提供关于用户在一段时间内参与的活动的信息。活动表示504可以提供与活动的单个实例相对应的信息(例如,对应于单个历史记录),或者可以包括从活动的多个实例导出的信息(例如,来自与相同活动相关联的多个历史记录的信息)。
显示500可以表示用户活动的摘要视图,其中仅显示了一段时间内最相关的活动。在至少一些实现中,显示500可以包括在多个计算机设备(其包括不是呈现显示的计算机设备的其它计算机设备)处执行的活动。虽然没有示出,但是如果需要的话,活动表示504可以显示该活动在哪个设备上执行的指示符,或者可以以提供这种信息的方式进行显示。
在一些情况下,可以例如使用用户输入来调整时间段(或其它显示窗口参数),使得特定屏幕状态(例如,对应于时间线上的某个位置,例如通过滚动条508上的位置来表示)表示更长或更短的时间窗口。更长的时间窗口可以包括更多数量的活动表示504。如果窗口更大并且包括更多数量的活动表示504,则可以使活动表示的大小更小以适应在显示器500上显示更多的活动表示。或者,可以维持活动表示504的大小,但是控制相关活动表示的数量,例如通过仅显示满足较高阈值相关性程度的活动表示。在一些情况下,可以提供诸如滚动条506之类的用户界面元素以允许用户改变用于选择活动表示504以包括在显示器500中的相关性标准或时间窗口。
可以以特定顺序将活动表示504布置在显示500上。在一些情况下,该顺序可以是时间顺序(例如,按时间顺序或按照反向时间顺序)。在其它情况下,该顺序可以是基于相关性,在不太相关的活动表示之前列出更加相关的活动表示504。在另外的情况下,该排序可以是字母顺序,例如按应用程序名称526或标题516进行排序。或者,可以使用不同类型的排序,或者活动表示504可以是无序的。
当按顺序列出活动表示504时,可以根据期望来定义该顺序。在特定的例子中,以从左到右,然后从上到下的顺序列出活动表示504。例如,对于反向时间顺序,最近的活动表示504将放置在显示500的左上角,其它活动表示将根据其新近程度从左到右排列。一旦填充了一行,将从下一行的最左侧位置开始重复该过程。
滚动条508可包括位置指示器510,其指示当前显示的时间线位置或值。用户可以选择指示符510并调整其位置以查看更多或更少的近期活动表示504(例如,通过点击和拖动指示器,或者通过使用指向设备、键盘或其它输入设备的其它输入)。显示在显示500上的活动表示504以及它们的位置,可以随着指示器510的位置改变而改变。
可以给予用户以另一种格式查看他们的活动的选项(例如,使用另一种模板372)。可以给予用户使用图标512选择当前、摘要、视图(例如,显示500),以及通过选择图标514选择替代视图(例如,提供用户活动的更多(包括所有)视图的详情或详细视图的选项。
在一些情况下,用户可以通过选择(例如,点击或类似输入)活动表示或者活动表示的特定部分,来选择恢复与活动表示504(或者在本公开内容的另一个显示或界面中提供的活动表示)相关联的活动。恢复活动可以包括:启动与活动表示504相关联的应用程序,加载相关内容,以及关于内容来恢复应用程序的先前状态。恢复活动可以包括:在除了呈现显示500的设备之外的计算机设备处恢复活动(例如,当用户选择在台式计算机上显示的活动表示504时,可以在智能电话上启动应用程序)。或者,恢复活动可以包括:在除了最初或最后执行活动的设备之外的计算机设备上恢复活动(例如,可以在台式计算机上恢复最后在智能手机上执行的活动)。当在不同的计算机设备上恢复活动时,恢复活动可以包括以下中的一个或多个:在将恢复活动的计算机设备上安装应用程序,将内容传送到将恢复活动的计算机设备,以及将应用程序状态信息传送到将恢复活动的计算机设备。
显示500可以在每个活动表示504中显示各种信息。每个活动表示504通常包括标题516。标题516可以是由图2的标题228指定的值(或者,在其它情况下,由标题208或262指定的值),其可以是默认值,或者可以以另一种方式提供(例如,不是由标题228的值指定的默认值)。标题516可以根据与活动表示504相关联的应用程序或内容的类型而变化。
活动表示504可以可选地包括与活动表示504的活动相关联的显示图像518(例如,由图2的字段230或210指定的图像)。在一些情况下,例如在活动表示504c中,图像518可以形成活动表示的背景(例如,显示在用于显示关于特定活动表示504的信息的整个显示区域的后面)。在其它情况下,例如在活动表示504a中,图像518可以不占据用于显示关于特定活动表示504的信息的所有显示区域。在其它情况下,可以以另一种方式显示显示的图像518,其包括呈现为与显示500相关联的画布的背景。在一些情况下,图像518可以是单个静态图像,在其它情况下,该图像可以在不同图像之间改变,或者可以包括短视频或动画。在至少一些例子中,活动表示504可以与图像518相关联,并且操作系统、应用程序或两者可以确定图像518的位置(以及活动表示的位置和其相关内容,包括文字内容)。
通常,活动表示504包括关于用于(或者可用于)参与与该活动表示相关联的活动的应用程序的信息。例如,活动表示504可以包括表示应用程序或以其它方式与应用程序相关联的图标524(例如,诸如字段240中指定的图像)。应用程序的名称526(例如,字段238中指定的名称)也可以显示在活动表示504上。在至少一些情况下,例如在与网页浏览活动相关联的活动表示504b的情况下,图标524可以表示与活动表示的网页浏览活动相关联的网页(例如,从活动表示中表示的特定网站提取的图像或者以其它方式与之相关联的图像),并且除了应用程序的名称之外,还可以在活动表示上显示网站的名称530(例如,主机名,其可以存储在例如属性字段292中)。在特定的方面,网页图标或图像518和网页名称530是从与网页相关联的元数据中提取的(并且可以对应于例如当用户访问该网页时,在网络浏览器的标题栏中显示的图像和名称)。
活动表示504c可以表示涉及文档(例如,演示文档、文字处理文档或其它类型的文档)的活动。活动表示504c的标题516可以是与文档相对应的文件的名称,其可选地包括文件路径。活动表示504c可以提供关于文件的详情,例如,其大小534、文件的一个或多个作者536、以及创建或最后修改文件的日期538。活动表示504c中的图像518可以是例如与活动表示相关联的文档的内容的一部分。
活动表示504d可以表示用户在观看视频。标题516可以是该视频的名称(例如,电影或电视节目的名称)。活动表示504d可以包括关于该视频的其它信息,例如评级542(例如,MPAA评级、受欢迎度等级或临界评级)、视频制作的日期544(或者替代地,上次观看该视频的日期)、以及用户先前停止观看该视频的位置546。与活动表示504d一起显示的图像518可以是视频的某个帧或者与视频相关联的特定图像(例如,相当于电影海报)。
如上所述,活动表示504b可以表示用户访问的网站。标题516可以是网页的标题(例如,在与网页相关联的元数据中指定的标题)。活动表示504b可以包括关于网站的其它信息,例如其地址或URL 550。虽然没有示出,但是活动表示504b可以包括关于网页的其它信息,例如用户上次访问该网页的日期或者花在该网站上的时间,其可以是用户上次访问该网站所花费的总时间,也可以是用户上次访问该网页的日期(其可以是特定日期,也可以是特定的互动,例如与活动表示504b相关联的特定历史记录)在该网站所花费的时间。
如上所述,活动表示504b可以包括与作为活动表示504b的网页浏览活动的一部分而访问的网站相关联的图标524,例如由网站的元数据指定。虽然没有示出,但是活动表示504b可以包括图像518,例如,访问的网页的图像。除了地址550之外,活动表示504b还包括与访问的网页相关联的名称530以及用于查看该网页的应用程序(例如,特定的网络浏览器)的名称526。
活动表示504e可以表示与音频内容相关的活动,例如用户收听歌曲或专辑。活动表示504e的标题516可以是例如艺术家的姓名和/或歌曲/专辑的名称。活动表示504e可以显示关于音频内容的其它信息,例如用户播放该内容的次数558、发布该专辑或歌曲的日期560、或者用户最后收听该专辑或歌曲的时间。为活动表示504e显示的图像518可以表示为音乐内容指定的艺术作品(例如,对应于专辑封面)。
一些活动表示504可以涉及用户观看或拍摄的照片。例如,活动表示504f可以表示用户观看的单张照片或者用户观看的照片集合或照片集合中的照片。活动表示504f的标题516可以是照片的文件路径或集合的名称。活动表示504f可以包括类型信息566,其可以指示该照片是单个照片还是照片集合。如果照片来自集合,则可以显示该集合中的照片数量。活动表示504f还可以包括日期568,其可以是拍摄照片(或集合的照片)的日期、或者用户上次观看该照片(或集合)的日期。在活动表示504f中显示的图像518可以是照片或者集合中的照片或者集合中的照片的拼贴。
活动表示504a可以表示用户的游戏活动。游戏活动表示504a的标题516可以是游戏的名称。活动表示504a可以显示关于所播放的游戏内容的其它信息,例如,用户上一次获得的等级或成就572、以及用户玩该游戏所花费的总时间574。虽然没有在图5中示出,但游戏活动表示504a可以包括其它信息,例如玩家到目前为止完成的游戏内容量、或者用户上次玩该游戏的日期。用于游戏活动的活动表示504a可以包括图像518,其可以是例如用户上次玩游戏的会话的屏幕截图、或者与游戏相关联的另一个图像(例如,对应于游戏的包装封面艺术)。
将活动表示504显示在导航助记符表示578(例如,578a-578d)旁边。导航助记符表示578可以表示各种类型的导航助记符,其包括人578a、位置578b(例如,特定的咖啡店)和新闻文章578c。当然,仅将这些导航助记符提供成示例,并且导航助记符表示578可以表示任何类型的导航助记符。
可以使用一个或多个标准,相对于一个或多个活动表示504来定位导航助记符表示578。例如,如果按时间顺序显示活动表示504,则还可以按时间顺序显示导航助记符表示578。如果根据不同的标准显示活动表示504,则可以将导航助记符表示显示在它们相关的活动表示附近。在特定的方面,活动表示504和导航助记符表示578相对于彼此进行组织,然后按顺序显示导航助记符表示及其相关活动表示的集合。
通常以视觉上不同的样式显示导航助记符表示578和活动表示504,使得用户可以区分两者。但是,可以以任何期望的方式显示活动表示504和导航助记符表示578。在一些例子中,不是在显示500的离散部分中显示导航助记符表示578,而是可以在活动表示504之间散布导航助记符表示。也可以以更短暂的方式显示导航助记符表示578,例如当用户导航到新的一系列活动表示504或者如果用户将指向设备移动到特定位置时,显示为可选地部分透明的弹出窗口。例如,如果用户将光标悬停在特定活动表示504上,或者选择该活动表示上的界面元素,则与该活动表示相关联的导航助记符表示578可以显示为弹出窗口。
如图5中所示,导航助记符表示578d可以是形成显示500的背景的图像。当导航助记符表示578d与当前正在显示的活动表示504的全部或大部分相关时,它可以是有用的。例如,如果显示的活动表示504是针对特定时间段的,则导航助记符表示578d可以与该时间段相关联。如果用户导航到另一个时间段,则在导航助记符表示578d中显示的导航助记符可以改变为与新时间段相关的新导航助记符。
如上所述,在至少一些方面,选择导航助记符表示578可以使得显示与该导航助记符有关的信息或者可以生成新的显示(例如,根据不同标准组织的活动表示504的显示)。
在一些情况下,可以允许用户影响显示500中包括的导航助记符表示578。例如,用户可以将一个或多个活动表示504“固定(pin)”到一个或多个导航助记符表示578。这种固定可以导致活动表示504和导航助记符表示57之间永久的关联(或者,至少是永久的,直到用户修改该关联为止)。
还可以给予用户创建或定义导航助记符578的选项。例如,用户可以从联系人列表、位置、媒体内容等等中选择一个人,作为用于特定显示的导航助记符、或者当前在显示中呈现的特定活动表示组504的导航助记符。可以允许用户将活动表示504固定到这样的用户定义的导航助记符表示578。
创建和修改(包括移除)导航助记符表示578的用户活动、以及导航助记符表示和活动表示504之间的关联,可以影响被选择作为导航助记符的内容以及选择哪些导航助记符显示为与显示上的特定活动表示504相关联的导航助记符表示578。例如,用户的动作可以用作图3的规则引擎376或查询引擎384的输入。或者,这些动作可以用于训练关联引擎326。
显示500可以包括另外的用户界面元素。例如,显示500可以包括搜索元素,其中用户可以输入搜索标准以定位满足搜索标准的活动表示504。
虽然将显示500呈现为摘要显示,其中显示所选择的活动表示504(结合相关联的导航助记符表示578),但可以在其它类型的显示中类似地使用活动表示和导航助记符表示。例如,显示可以包括所有活动记录504,或者可以显示与搜索标准相关的活动记录(包括相对于导航助记符指定的搜索标准)。
由导航助记符组织的活动信息的显示
如上所述,在包括导航助记符表示的显示中,导航助记符表示的选择可以导致显示关于导航助记符的其它信息,或者可以生成根据不同标准组织活动信息的新显示(其包括潜在地选择一组不同的活动表示以包括在显示中)。图6示出了示例性显示600,其中相对于与导航助记符表示610相关联的特定导航助记符,对活动表示606进行组织。
显示600可以表示来自图4的图表400的信息的选择。虽然图5的显示500示出了按时间顺序组织的活动表示504(其可以表示来自图表的活动记录以及其相关联的导航助记符表示578),并且可能表示用户在相关时间段内最积极参与的活动,但基于活动表示606与导航助记符表示610的导航助记符的关系来选择活动表示606。显示600可以是图3的用户界面368的模板372之一,并且可以使用规则引擎376和索引器384进行填充。可以例如使用显示引擎380和缓冲区382,呈现填充的显示600以显示给缓冲区。
在一些情况下,可以显示与导航助记符表示610相关联的所有活动表示606。在其它情况下,可以显示满足特定相关性标准的活动表示606,例如,与导航助记符表示610相关联的最近活动表示、具有最活跃用户参与度的活动表示、具有特定类型的活动表示、规则或机器学习建议的活动表示、与特定应用程序或应用程序类型相关联的活动表示等等。与显示500一样,用户可以通过选择适当的活动表示606来恢复活动。
活动表示606可以与其它导航助记符表示614相关联地显示,其中该其它导航助记符表示614可以是连接到图中的活动的其它导航助记符。用户能够通过选择导航助记符表示614中的一个来改变显示600,由此,显示可以改变以显示与所选择的导航助记符表示相关联的活动表示。
虽然用户能够通过选择导航助记符表示578来生成显示600,但是可以以其它方式生成显示600。例如,用户可以选择导航助记符作为搜索标准,或者可以提供用户界面元素以生成显示600。
虽然将显示600示出为具有单个主要导航助记符表示610,但是该显示可以包括用于选择和组织所显示的活动表示606的多个导航助记符表示。例如,用户可以选择按照导航助记符的类别(例如,人、位置、媒体类型等等)来查看活动表示606。所选择的导航助记符类可以生成所有相关导航助记符表示或者所选择的子集的显示。例如,该显示可以包括:用户与他具有最多、或最近联系的人的导航助记符表示,或者用户最近访问或访问最长时间的位置的导航助记符表示。对于这些导航助记符表示,可以如上所述地选择活动表示606。
用于呈现包括活动和导航助记符信息的显示的方法
图7示出了用于呈现显示的方法700,该显示包括与多个活动记录和一个或多个导航助记符记录相关联的信息。例如,可以使用图3的架构300的一个或多个组件来执行方法700,方法700可以包括如图2中所描述的建模的数据。在710处,接收活动记录选择标准。活动记录选择标准可以包括:例如,时间顺序标准、类型标准、与导航助记符的关系、或其组合。记录选择标准可以包括:指定相关性阈值或以其它方式限制要获取的活动记录的数量。在720处,根据选择标准来选择多个活动记录。
在730处,选择一个或多个导航助记符记录。例如,可以基于导航助记符记录和活动记录之间存储的关联来选择一个或多个导航助记符记录,或者可以通过使用相关性标准(例如,按时间顺序标准或者识别活动记录和导航助记符记录中的共同或相关属性)分析导航助记符记录与活动记录的相关性来动态地确定一个或多个导航助记符记录。导航助记符记录选择标准可以包括:指定相关性阈值或以其它方式限制要获取的多个导航助记符记录。
在740处,呈现用于输出的显示,例如输出到缓冲器。该显示包括与多个所选择的活动记录和所选择的一个或多个导航助记符记录相关联的信息。
用于收集和分发活动和导航助记符信息的方法
图8示出了用于从多个计算机设备收集用户活动和导航助记符信息,并向这些计算机设备中的一个或多个发送与所述多个计算机设备上的用户活动不直接相关的一个或多个导航助记符记录的方法800。可以使用图3的架构300的一个或多个组件来执行方法800。在特定的实现中,方法800由导航助记符馈送服务324执行。
在810处,从与用户相关联的多个计算机设备中的每一个接收活动记录。在820处,从所述多个计算机设备中的每一个接收导航助记符信息。例如,该导航助记符信息可以是导航助记符记录或者足以产生导航助记符记录的信息。在830处,针对与所述多个计算机设备上的用户活动不直接相关的导航助记符信息,存储导航助记符记录。例如,这些记录不是监测计算机设备上的用户活动的结果,或者不是由用户的计算机设备上运行的应用程序创建的。
在840处,针对与所述多个计算机设备上的用户活动不直接相关联的满足用户的相关性标准的导航助记符记录,确定一个或多个导航助记符记录。在各个例子中,可以使用诸如启发法或机器学习之类的规则来执行该确定操作。在850处,将所确定的一个或多个导航助记符记录发送给所述多个计算机设备中的一个或多个。
用于创建活动记录和导航助记符记录的方法
图9示出了用于创建活动记录和导航助记符记录的方法900。例如,方法900可以由应用程序接口提供的应用程序调用方法来执行。可以使用图3的架构300的一个或多个组件(其包括接口340)来执行方法900。这些记录的结构可以如图2中所示。
在910处,调用生成活动记录的方法。该方法包括作为参数的内容标识符和应用程序标识符。在920处,调用创建导航助记符记录的方法。该方法包括作为参数的资源标识符和相关性标识符。资源标识符可以标识向用户显示的内容(例如,媒体内容、网站、人的简档信息),并且可以帮助用户查看活动信息。资源标识符还可以包括对于与该导航助记符相关的其它内容的引用,例如网站或文件的链接。相关性标识符可以是可用于确定导航助记符与其它导航助记符或活动信息的相关性的信息。相关性标识符可以是例如与导航助记符相关联的人(例如,文档的协作者或共同作者、对话或电子邮件交换中的参与者、会议的被邀请者)、时间顺序信息(例如,与导航助记符相关联的时间)、位置或其它信息。
计算系统
图10描绘了可以实现所描述的创新的适当计算系统1000的通常示例。计算系统1000并不旨在对使用范围或功能提出任何限制,这是因为可以在不同的通用或专用计算系统中实现本发明的创新。
参考图10,计算系统1000包括一个或多个处理单元1010、1015和存储器1020、1025。在图10中,该基本配置1030包括在虚线内。处理单元1010、1015执行计算机可执行指令。处理单元可以是通用中央处理单元(CPU)、专用集成电路(ASIC)中的处理器或任何其它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以增加处理能力。例如,图10示出了中央处理单元1010以及图形处理单元或协处理单元1015。有形存储器1020、1025可以是可由处理单元访问的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或两者的某种组合。存储器1020、1025以适于由处理单元执行的计算机可执行指令的形式,存储用于实现本文所描述的一个或多个创新的软件1080。
计算系统可以具有其它特征。例如,计算系统1000包括存储器1040、一个或多个输入设备1050、一个或多个输出设备1060、以及一个或多个通信连接1070。诸如总线、控制器或网络之类的互连机制(没有示出)对计算系统1000的组件进行互连。通常,操作系统软件为在计算系统1000中执行的其它软件提供操作环境,并协调计算系统1000的组件的活动。
有形存贮设备1040可以是可移动的或不可移动的,并且包括磁盘、磁带或盒式磁带、CD-ROM、DVD、或者可以用于存储信息并且可在计算系统1000内访问的任何其它介质。存贮设备1040存储用于实现本文所描述的一个或多个创新的软件1080的指令。
输入设备1050可以是诸如键盘、鼠标、笔或跟踪球、语音输入设备、扫描设备、或者向计算系统1000提供输入的另一个设备之类的触摸输入设备。对于视频编码,输入设备1050可以是照相机、视频卡、TV调谐器卡或者接受模拟或数字形式的视频输入的类似设备、或者是将视频样本读取到计算系统1000中的CD-ROM或CD-RW。输出设备1060可以是显示器、打印机、扬声器、CD写入器、或者提供来自计算系统1000的输出的另一个设备。
通信连接1070使得能够通过通信介质与另一个计算实体进行通信。通信介质传送诸如计算机可执行指令、音频或视频输入或输出、或者调制的数据信号中的其它数据之类的信息。调制的数据信号是以对信号中的信息进行编码的方式来设置或改变其一个或多个特征的信号。举例而言但非做出限制,通信介质可以使用电、光学、RF或其它载体。
可以在计算机可执行指令的一般上下文中描述创新,例如,在目标真实或虚拟处理器上的计算系统中执行的程序模块中包括的那些指令。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等等。在各个实施例中,可以根据需要在程序模块之间组合或分割程序模块的功能。可以在本地或分布式计算系统内,执行用于程序模块的计算机可执行指令。
术语“系统”和“设备”在本文中可互换地使用。除非上下文另外明确地指出,否则这两个术语均不意味着对计算系统或计算机设备的类型具有任何限制。通常,计算系统或计算机设备可以是集中式的或者分布式的,可以包括专用硬件和/或通用硬件与实现本文所描述功能的软件的任何组合。
在本文所描述的各个例子中,可以对模块(例如,组件或引擎)进行编码以执行某些操作或提供某些功能,指示可以执行用于该模块的计算机可执行指令以执行这样的操作、使这样的操作进行执行、或者以其它方式提供此类功能。虽然关于软件组件、模块或引擎描述的功能可以作为离散软件单元(例如,程序、功能、类方法)来执行,但是不需要将其实现为离散单元。也就是说,可以将功能合并到一个或多个程序中,例如一个或多个较大程序或通用程序中的一行或多行代码。
为了便于呈现起见,具体实施方式使用诸如“确定”和“使用”之类的术语来描述计算系统中的计算机操作。这些术语是计算机执行的操作的高级抽象,其不应与人执行的操作混淆。与这些术语相对应的实际计算机操作根据实施方式而变化。
移动设备
图11是描绘包括各种可选硬件和软件组件(通常在1102处示出)的示例性移动设备1100的系统图。该移动设备中的任何组件1102可以与任何其它组件通信,但为了便于说明起见,并没有示出所有的连接。该移动设备可以是各种计算机设备(例如,蜂窝电话、智能电话、手持计算机、个人数字助理(PDA)等等)中的任何一种,并且可以允许与一个或多个移动通信网络1104(例如,蜂窝网络、卫星网络或其它网络)进行无线地双向通信。
所示的移动设备1100可以包括控制器或处理器1110(例如,信号处理器、微处理器、ASIC或其它控制和处理逻辑电路),以执行诸如信号编码、数据处理、输入/输出处理、功率控制之类的任务和/或其它功能。操作系统1112可以控制组件1102的分配和使用,并支持一个或多个应用程序1114。这些应用程序可以包括常见的移动计算应用程序(例如,电子邮件应用程序、日历、联系人管理器、网页浏览器、消息传送应用程序)或任何其它计算应用程序。用于访问应用商店的功能1113还可以用于获取和更新应用程序1114。
所示的移动设备1100可以包括存储器1120。存储器1120可以包括不可移动存储器1122和/或可移动存储器1124。不可移动存储器1122可以包括RAM、ROM、闪存、硬盘或其它公知的存储器存储技术。可移动存储器1124可以包括闪存或用户识别模块(SIM)卡(其在GSM通信系统中是公知的)或者其它公知的存储器存储技术(例如,“智能卡”)。存储器1120可以用于存储用于运行操作系统1112和应用程序1114的数据和/或代码。示例性数据可以包括:要经由一个或多个有线或无线网络发送到一个或多个网络服务器或其它设备和/或从其接收的网页、文本、图像、声音文件、视频数据或其它数据集。存储器1120可以用于存储用户标识符(例如,国际移动用户识别码(IMSI))和设备标识符(例如,国际移动设备标识符(IMEI))。可以将这些标识符发送到网络服务器以识别用户和设备。
移动设备1100可以支持诸如触摸屏1132、麦克风1134、相机1136、物理键盘1138和/或跟踪球1140之类的一个或多个输入设备1130、以及诸如扬声器1152和显示器1154之类的一个或多个输出设备1150。其它可能的输出设备(没有示出)可以包括压电式或其它触觉输出设备。一些设备可以提供一个以上的输入/输出功能。例如,触摸屏1132和显示器1154可以组合在单个输入/输出设备中。
输入设备1130可以包括自然用户界面(NUI)。NUI是使用户能够以“自然”方式与设备交互,而不受诸如鼠标、键盘、遥控器等等之类的输入设备施加的人为约束的任何接口技术。NUI方法的示例包括:依赖于语音识别、触摸和手写笔识别、在屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、语音和声音、视觉、触摸、手势和机器智能的那些NUI方法。NUI的其它示例包括:使用加速度计/陀螺仪的运动手势检测、面部识别、3D显示、头部、眼睛和视线跟踪、沉浸式增强现实和虚拟现实系统,所有这些都提供了更自然的接口、以及使用电场感应电极(EEG和相关方法)感知大脑活动的技术。因此,在一个特定例子中,操作系统1112或应用程序1114可以包括语音识别软件,作为允许用户通过语音命令操作设备1100的语音用户接口的一部分。此外,设备1100还可以包括输入设备和软件,其允许经由用户的空间手势进行用户交互,例如检测和解释手势以向游戏应用程序提供输入。
无线调制解调器1160可以耦合到天线(没有示出),并且可以支持处理器1110和外部设备之间的双向通信,如本领域所熟知的。一般化地示出了调制解调器1160,其可以包括用于与移动通信网络1104和/或基于其它无线电的调制解调器(例如,蓝牙1164或Wi-Fi1162)进行通信的蜂窝调制解调器。无线调制解调器1160通常被配置为对于单个蜂窝网络内、蜂窝网络之间、或者移动设备和公共交换电话网络(PSTN)之间的数据和语音通信,与诸如GSM网络的一个或多个蜂窝网络进行通信。
移动设备还可以包括至少一个输入/输出端口1180、电源1182、卫星导航系统接收器1184(例如,全球定位系统(GPS)接收器)、惯性测量单元(IMU)1186(或者其一个或多个组件,例如磁力计、加速度计或陀螺仪或类似类型的传感器)、和/或物理连接器1190(其可以是USB端口、IEEE1394(火线)端口和/或RS-232端口)。所示出的组件1102不是必需的或者包括所有组件,这是因为可以删除任何组件并且可以增加其它组件。
云支持环境
图12示出了可以在其中实现所描述的实施例、技术和方案的适当的云支持环境1200的一般化示例。在示例性环境1200中,通过云1210(例如,图3的网络322)提供各种类型的服务(例如,计算服务)。例如,云1210可以包括计算机设备的集合,其可以是本地集中的,也可以是分布式的,并向经由诸如互联网之类的网络连接的各种类型的用户和设备提供基于云的服务。可以以不同方式使用实现环境1200来完成计算任务。例如,一些任务(例如,处理用户输入和呈现用户界面)可以在本地计算机设备(例如,可以对应于图3的计算机设备304的连接设备1230、1240、1250)上执行,而其它任务(例如,在后续处理中要使用的数据的存储)可以在云1210中执行。
在示例性环境1200中,云1210向具有各种屏幕功能的连接设备1230、1240、1250提供服务。连接设备1230表示具有计算机屏幕1235(例如,中型屏幕)的设备。例如,连接设备1230可以是个人计算机,比如台式计算机、膝上型计算机、笔记本、上网本等等。连接设备1240表示具有移动设备屏幕1245(例如,小尺寸屏幕)的设备。例如,连接设备1240可以是移动电话、智能电话、个人数字助理、平板计算机等等。
连接设备1250表示具有大屏幕1255的设备。例如,连接设备1250可以是电视屏幕(例如,智能电视)或者连接到电视的另一个设备(例如,机顶盒或游戏控制台)等等。
连接设备1230、1240、1250中的一个或多个可以包括触摸屏功能。触摸屏可以以不同方式接受输入。例如,当物体(例如,指尖或笔)扭曲或中断穿过表面的电流时,电容式触摸屏检测到触摸输入。再举一个例子,当来自光学传感器的光束被中断时,触摸屏可以使用光学传感器来检测触摸输入。对于要由某些触摸屏检测的输入而言,不需要与屏幕表面的物理接触。在示例环境1200中也可以使用没有屏幕能力的设备。例如,云1210可以为没有显示器的一个或多个计算机(例如,服务器计算机)提供服务。
云1210可以通过服务提供商1220、或者通过其它在线服务提供商(没有示出)来提供服务。例如,可以将云服务定制为特定连接设备(例如,连接设备1230、1240、1250)的屏幕尺寸、显示能力和/或触摸屏能力。
在示例性环境1200中,云1210至少部分地使用服务提供商1220向各种连接的设备1230、1240、1250提供本文所描述的技术和解决方案。例如,服务提供商1220可以提供各种基于云的服务的集中式解决方案。服务提供商1220可以管理用户和/或设备(例如,连接的设备1230、1240、1250和/或它们各自的用户)的服务订阅。
示例性实现
虽然为了方便呈现,以特定的顺序次序描述了所公开的方法中的一些的操作,但是应当理解,这种描述方式涵盖重新排列,除非下面阐述的特定语言需要特定的排序。例如,在某些情况下,可以对顺序描述的操作进行重新排列或同时执行。此外,为了简单起见,附图可能没有示出所公开方法可以与其它方法结合使用的各种方式。
所公开的方法中的任何方法可以实现为存储在一个或多个计算机可读存储介质上并在计算机设备(即,任何可用的计算机设备,其包括智能电话或包括计算硬件的其它移动设备)上执行的计算机可执行指令或计算机程序产品。计算机可读存储介质是可在计算环境(诸如DVD或CD、易失性存储器(例如,DRAM或SRAM)或非易失性存储器(例如,闪存或硬盘驱动器)之类的一个或多个光学介质盘)内访问的有形介质。通过示例的方式并参考图10,计算机可读存储介质包括存储器1020和1025、以及存贮设备1040。通过示例的方式并参考图10,计算机可读存储介质包括存储器和存贮设备1020、1022和1024。术语计算机可读存储介质不包括信号和载波。另外,术语计算机可读存储介质不包括通信连接,例如1070、1060、1062和1064。
用于实现所公开的技术的任何计算机可执行指令以及在所公开的实施例的实现期间创建和使用的任何数据,可以存储在一个或多个计算机可读存储介质上。计算机可执行指令可以是例如专用软件应用程序或经由网络浏览器或其它软件应用程序(例如,远程计算应用程序)访问或下载的软件应用程序的一部分。例如,可以在单个本地计算机(例如,任何适当的商用计算机)上或者在使用一个或多个网络计算机的网络环境中(例如,经由互联网、广域网、局域网、客户端-服务器网络(例如,云计算网络)或其他此类网络)执行这样的软件。
为清楚起见,仅描述了基于软件的实现的某些选择方面。省略了本领域公知的其它细节。例如,应当理解,所公开的技术并不限于任何特定的计算机语言或程序。例如,所公开的技术可以通过用C++、Java、Perl、JavaScript、Adobe Flash或任何其它适当的编程语言编写的软件来实现。同样,所公开的技术并不限于任何特定的计算机或硬件类型。适当计算机和硬件的某些细节是众所周知的,并且不需要在本公开内容中详细阐述。
此外,可以通过适当的通信装置来上传、下载或远程访问基于软件的实施例中的任何一个(例如,其包括用于使计算机执行所公开的方法中的任何方法的计算机可执行指令)。这种适当的通信装置例如包括互联网、万维网、内联网、软件应用、电缆(其包括光纤光缆)、磁通信、电磁通信(其包括RF、微波和红外通信)、电子通信、或者其它此类通信方式。
所公开的方法、装置和系统不应被解释为以任何方式进行限制。相反,本公开内容仅针对于各种公开的实施例的所有新颖和非显而易见的特征和方面、以及彼此的各种组合和子组合。所公开的方法、装置和系统并不限于任何特定的方面或特征或者其组合,所公开的实施例也不要求存在任何一个或多个特定优点或者要解决的问题。
来自任何示例的技术可以与其它示例中的任何一个或多个示例所描述的技术进行组合。鉴于可以应用所公开技术的原理的许多可能的实施例,应当认识到,所示出的实施例只是所公开技术的示例,并且不应当被视为对所公开技术的范围的限制。

Claims (15)

1.一种用于控制向用户呈现的数据的计算机设备,所述计算机设备包括:
处理单元;以及
存储器;
所述计算机设备经由计算机可执行指令被配置为:执行用于控制要针对多个活动和多个导航助记符显示的数据的操作,每个活动表示用户使用加载在存储器中并在所述处理单元上执行的软件应用程序对内容执行的动作,所述操作包括:
接收活动记录选择标准;
根据所述活动记录选择标准,从存储多个活动记录的数据结构中选择多个活动记录,所述多个活动记录中的每一个活动记录包括应用程序标识符和内容标识符;
从存储多个导航助记符记录的数据结构中选择一个或多个导航助记符记录,其中,所述一个或多个导航助记符记录中的每一个导航助记符记录包括:
资源标识符,其指示与多个所选择的活动记录相关联的信息;以及
相关性标识符,其指示所述导航助记符记录与多个所选择的活动记录中的至少一个活动记录的相关性水平,其中,对所述一个或多个导航助记符记录的所述选择是基于所述一个或多个导航助记符记录的各自相关性水平的;以及
呈现用于输出到缓冲器的显示,其中所述显示包括:针对所选择的一个或多个导航助记符记录中的每一个导航助记符记录,与多个所选择的活动记录相关联的信息以及与所选择的一个或多个导航助记符记录相关联的信息。
2.根据权利要求1所述的计算机设备,所述操作还包括:
通过接口接收来自应用程序的调用以创建导航助记符记录;
创建所述导航助记符记录;以及
将所述创建的导航助记符记录存储在存储多个导航助记符记录的数据结构中。
3.根据权利要求1所述的计算机设备,所述操作还包括:
从导航助记符馈送服务接收导航助记符记录;以及
在存储所述多个导航助记符记录的所述数据结构中,存储来自所述导航助记符馈送服务的所述导航助记符记录。
4.根据权利要求1所述的计算机设备,所述操作还包括:
监测操作系统shell上的用户活动;
基于所述用户活动,创建导航助记符记录;以及
将所述创建的导航助记符记录存储在存储多个导航助记符记录的所述数据结构中。
5.根据权利要求1所述的计算机设备,其中,所述多个存储的导航助记符记录中的导航助记符记录包括由硬件传感器确定的位置。
6.根据权利要求1所述的计算机设备,所述操作还包括:
接收用于创建导航助记符的用户命令;以及
响应所述用户命令,创建导航助记符记录。
7.根据权利要求1所述的计算机设备,所述操作还包括:
接收指定活动记录和导航助记符记录之间的关联的用户输入;以及
存储所述关联。
8.根据权利要求1所述的计算机设备,其中,所述活动记录选择标准是第一记录选择标准,所述操作还包括:
接收指定导航助记符记录作为第二记录选择标准的用户输入;
根据所述第二记录选择标准,从所述数据结构中选择一个或多个活动记录;以及
呈现用于输出到缓冲器的显示,其中所述显示包括与所选择的活动记录相关联的信息和与所述指定的导航助记符相关联的信息。
9.根据权利要求1所述的计算机设备,其中,所述导航助记符与时间相关联,并且不基于用户活动来创建。
10.根据权利要求1所述的计算机设备,还包括:
接收选择与具有显示信息的活动记录相关联的激活信息的用户输入;
执行所述激活信息以恢复与所述活动记录相关联的所述活动。
11.根据权利要求1所述的计算机设备,所述操作还包括:
从用户接收针对与一个或多个导航助记符具有指定关系的活动记录的查询;
识别与所述查询的所述导航助记符中的每一个导航助记符相对应的导航助记符记录;
确定与所述导航助记符记录具有所述指定关系的一个或多个活动记录;以及
呈现用于输出到缓冲器的显示,其中所述显示包括与所述确定的活动记录相关联的信息。
12.根据权利要求11所述的计算机设备,其中,所述关系是时间关系。
13.根据权利要求1所述的计算机设备,其中,所述多个活动中的至少一个与软件应用程序相关联,其中所述软件应用程序是文字处理器、网络浏览器、演示文稿创作程序、音乐播放器、视频播放器、照片查看器、照片编辑器、通信程序、或者电子表格程序。
14.一种计算机可读存储介质,其存储用于在计算机设备上执行的计算机可执行指令,以执行用于控制向用户显示的数据的操作,所述操作包括:
从与用户相关联的多个计算机设备接收活动记录,每个活动记录包括应用程序标识符和内容标识符;
从所述多个计算机设备中的每一个计算机设备接收导航助记符信息,所述导航助记符信息包括导航助记符记录或者可用于生成导航助记符记录的信息;
针对与所述多个计算机设备上的用户活动不直接相关联的所述多个导航助记符信息,存储多个导航助记符记录,其中,所述导航助记符记录中的每一个导航助记符记录包括:
资源标识符,其指示与所述活动记录中的至少一个活动记录相关联的信息;以及
相关性标识符,其指示所述导航助记符记录与所述活动记录中的至少一个活动记录的相关性水平;
基于所述相关性标识符,针对与所述多个计算机设备上的用户活动不直接相关联的满足用户的相关性标准的导航助记符信息,确定所述导航助记符记录的一个或多个导航助记符记录;以及
将所述确定的一个或多个导航助记符记录发送给所述多个计算机设备中的一个或多个计算机设备。
15.一种由计算机设备实现的、用于创建可用于控制向用户显示的信息的活动记录和导航助记符记录的方法,所述方法包括:
经由指令在所述计算机设备上的执行,调用生成活动记录的方法,所述活动记录生成调用包括包含内容标识符和应用程序标识符的自变量,其中,所述活动记录包括用户使用加载在存储器中并在所述计算机设备的处理单元上执行的软件应用程序对内容执行的动作;以及
调用生成导航助记符记录的方法,所述导航助记符记录生成调用包括包含资源标识符和相关性标识符的自变量,其中:
所述导航助记符记录与所述活动记录相关联;
针对所述导航助记符记录的所述资源标识符指示与所述活动记录相关联的信息;并且
针对所述导航助记符记录的所述相关性标识符指示所述导航助记符记录与所述活动记录的相关性水平,其中,所述导航助记符记录与所述活动记录的关联性是基于所述相关性水平的;以及
呈现用于输出到缓冲器的显示,其中所述显示包括与所述活动记录相关联的信息以及与所述导航助记符记录相关联的信息。
CN201880022925.2A 2017-03-29 2018-03-22 使用导航助记符控制显示的活动信息 Active CN110476162B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762478540P 2017-03-29 2017-03-29
US62/478,540 2017-03-29
US15/661,981 US10732796B2 (en) 2017-03-29 2017-07-27 Control of displayed activity information using navigational mnemonics
US15/661,981 2017-07-27
PCT/US2018/023672 WO2018183062A1 (en) 2017-03-29 2018-03-22 Control of displayed activity information using navigational mnemonics

Publications (2)

Publication Number Publication Date
CN110476162A CN110476162A (zh) 2019-11-19
CN110476162B true CN110476162B (zh) 2023-03-28

Family

ID=63670594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880022925.2A Active CN110476162B (zh) 2017-03-29 2018-03-22 使用导航助记符控制显示的活动信息

Country Status (4)

Country Link
US (1) US10732796B2 (zh)
EP (1) EP3602425A1 (zh)
CN (1) CN110476162B (zh)
WO (1) WO2018183062A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11030150B1 (en) * 2017-05-01 2021-06-08 NortonLifeLock Inc. Systems and methods for classifying electronic files
US10269351B2 (en) * 2017-05-16 2019-04-23 Google Llc Systems, methods, and apparatuses for resuming dialog sessions via automated assistant
US11580088B2 (en) 2017-08-11 2023-02-14 Microsoft Technology Licensing, Llc Creation, management, and transfer of interaction representation sets
CN112764638B (zh) * 2021-01-22 2022-06-07 维沃移动通信有限公司 显示控制方法、电子设备和可读存储介质
US20230206152A1 (en) * 2021-12-28 2023-06-29 Microsoft Technology Licensing, Llc Determining task significance through task graph structures

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1599432A (zh) * 2003-05-28 2005-03-23 汤姆森许可贸易公司 用于选择与标识符关联的文件的导航方法和设备
CN101401401A (zh) * 2006-03-08 2009-04-01 索尼爱立信移动通讯有限公司 组织移动无线终端中的事件记录的方法和系统
CN103155604A (zh) * 2010-08-13 2013-06-12 因特伟特公司 用于在使用全球文本站点平台来访问内容之时提供有状态体验的方法和系统
CN103348693A (zh) * 2011-01-05 2013-10-09 联合视频制品公司 在交互式媒体指南应用中在内容中导航的系统和方法

Family Cites Families (163)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463774A (en) 1993-06-28 1995-10-31 Digital Equipment Corporation Object oriented computer architecture using directory objects
EP0733972B1 (en) 1995-03-22 2003-07-09 Sun Microsystems, Inc. Method and apparatus for managing relationships among objects in a distributed object environment
US6253252B1 (en) 1996-07-11 2001-06-26 Andrew Schofield Method and apparatus for asynchronously calling and implementing objects
US6018743A (en) * 1996-10-04 2000-01-25 International Business Machines Corporation Framework for object-oriented interface to record file data
US5943496A (en) 1997-05-17 1999-08-24 Intertop Corporation Methods for developing and instantiating object classes using a java virtual machine extension
US6085205A (en) 1997-11-12 2000-07-04 Ricoh Company Limited Calendar incorporating document retrieval interface
US6044374A (en) 1997-11-14 2000-03-28 Informatica Corporation Method and apparatus for sharing metadata between multiple data marts through object references
US6093216A (en) 1998-05-29 2000-07-25 Intel Corporation Method of run-time tracking of object references in Java programs
US6633984B2 (en) 1999-01-22 2003-10-14 Sun Microsystems, Inc. Techniques for permitting access across a context barrier on a small footprint device using an entry point object
US6826760B1 (en) 1999-06-16 2004-11-30 Microsoft Corporation Methods of factoring operating system functions, methods of converting operating systems, and related apparatus
US6957395B1 (en) 2000-01-04 2005-10-18 Apple Computer, Inc. Computer interface having a single window mode of operation
US6993723B1 (en) 2000-04-17 2006-01-31 Accenture Llp Listing activities in a graphical user interface in a collaborative work tool Architecture
US7747782B2 (en) 2000-04-26 2010-06-29 Novarra, Inc. System and method for providing and displaying information content
US6772216B1 (en) 2000-05-19 2004-08-03 Sun Microsystems, Inc. Interaction protocol for managing cross company processes among network-distributed applications
US8161081B2 (en) 2001-03-16 2012-04-17 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
US8566849B2 (en) 2000-12-14 2013-10-22 Borland Software Corporation Name service object clustering
US20020174134A1 (en) 2001-05-21 2002-11-21 Gene Goykhman Computer-user activity tracking system and method
US7970240B1 (en) * 2001-12-17 2011-06-28 Google Inc. Method and apparatus for archiving and visualizing digital images
US7203909B1 (en) * 2002-04-04 2007-04-10 Microsoft Corporation System and methods for constructing personalized context-sensitive portal pages or views by analyzing patterns of users' information access activities
US7809384B2 (en) 2002-11-05 2010-10-05 Microsoft Corporation User-input scheduling of synchronization operation on a mobile device based on user activity
US7506355B2 (en) 2002-11-22 2009-03-17 Microsoft Corporation Tracking end-user content viewing and navigation
US20040153445A1 (en) 2003-02-04 2004-08-05 Horvitz Eric J. Systems and methods for constructing and using models of memorability in computing and communications applications
US7051042B2 (en) 2003-05-01 2006-05-23 Oracle International Corporation Techniques for transferring a serialized image of XML data
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US7627814B1 (en) 2004-01-14 2009-12-01 Microsoft Corporation Hierarchical bit stream markup compilation and rendering
US20050166143A1 (en) 2004-01-22 2005-07-28 David Howell System and method for collection and conversion of document sets and related metadata to a plurality of document/metadata subsets
US20050234986A1 (en) 2004-04-09 2005-10-20 Microsoft Corporation Systems and methods for fragment-based serialization
US20050235206A1 (en) 2004-04-15 2005-10-20 Udo Arend User interface for a quick activity window
JP4709213B2 (ja) 2004-06-23 2011-06-22 オラクル・インターナショナル・コーポレイション 変換を使用したクエリの効率的な評価
US7702730B2 (en) 2004-09-03 2010-04-20 Open Text Corporation Systems and methods for collaboration
US7451432B2 (en) 2004-10-01 2008-11-11 Microsoft Corporation Transformation of componentized and extensible workflow to a declarative format
US7647632B1 (en) 2005-01-04 2010-01-12 Arcsight, Inc. Object reference in a system
US7802205B2 (en) * 2005-01-07 2010-09-21 At&T Intellectual Property I, L.P. Graphical chronological path presentation
US7716317B2 (en) 2005-01-10 2010-05-11 Samsung Electronics Co., Ltd. Method and system for presenting a single view of content in a home network
US20060224583A1 (en) * 2005-03-31 2006-10-05 Google, Inc. Systems and methods for analyzing a user's web history
US7890513B2 (en) 2005-06-20 2011-02-15 Microsoft Corporation Providing community-based media item ratings to users
US7693817B2 (en) * 2005-06-29 2010-04-06 Microsoft Corporation Sensing, storing, indexing, and retrieving data leveraging measures of user activity, attention, and interest
US8571999B2 (en) 2005-11-14 2013-10-29 C. S. Lee Crawford Method of conducting operations for a social network application including activity list generation
US20070143123A1 (en) * 2005-12-06 2007-06-21 Arkiva, Inc. System, method and service for recording household assets
US20070299631A1 (en) 2006-06-27 2007-12-27 Microsoft Corporation Logging user actions within activity context
US7761393B2 (en) 2006-06-27 2010-07-20 Microsoft Corporation Creating and managing activity-centric workflow
US20070297590A1 (en) 2006-06-27 2007-12-27 Microsoft Corporation Managing activity-centric environments via profiles
US8364514B2 (en) 2006-06-27 2013-01-29 Microsoft Corporation Monitoring group activities
US7620610B2 (en) 2006-06-27 2009-11-17 Microsoft Corporation Resource availability for user activities across devices
US20080046218A1 (en) * 2006-08-16 2008-02-21 Microsoft Corporation Visual summarization of activity data of a computing session
US8121585B2 (en) 2006-08-25 2012-02-21 International Business Machines Corporation Technique for synchronizing data with a mobile device based on a synchronization context
US7941789B2 (en) 2006-09-29 2011-05-10 Sap Ag Common performance trace mechanism
US8037457B2 (en) 2006-09-29 2011-10-11 Sap Ag Method and system for generating and displaying function call tracker charts
US7881990B2 (en) 2006-11-30 2011-02-01 Intuit Inc. Automatic time tracking based on user interface events
US20080215240A1 (en) 2006-12-18 2008-09-04 Damian Howard Integrating User Interfaces
US8732161B2 (en) * 2007-04-27 2014-05-20 The Regents Of The University Of California Event based organization and access of digital photos
US20080276179A1 (en) 2007-05-05 2008-11-06 Intapp Inc. Monitoring and Aggregating User Activities in Heterogeneous Systems
US9317110B2 (en) 2007-05-29 2016-04-19 Cfph, Llc Game with hand motion control
US9542394B2 (en) 2007-06-14 2017-01-10 Excalibur Ip, Llc Method and system for media-based event generation
US8037046B2 (en) 2007-06-29 2011-10-11 Microsoft Corporation Collecting and presenting temporal-based action information
US20090043646A1 (en) 2007-08-06 2009-02-12 International Business Machines Corporation System and Method for the Automated Capture and Clustering of User Activities
US9256654B2 (en) 2007-12-07 2016-02-09 Microsoft Technology Licensing, Llc Dynamic schema content server
US8353012B2 (en) 2008-02-26 2013-01-08 Alejandro Emilio Del Real Internet-based group website technology for content management and exchange (system and methods)
US20090228427A1 (en) 2008-03-06 2009-09-10 Microsoft Corporation Managing document work sets
US20090241048A1 (en) 2008-03-21 2009-09-24 Augustine Nancy L Systems and methods for displaying a data modification timeline
US20090313304A1 (en) 2008-06-13 2009-12-17 Rodney Goodger Systems and Methods for Capturing, Organizing, and Sharing Data
US20100235306A1 (en) 2008-08-11 2010-09-16 Seth Wagoner Adaptive timelog system
US20100070527A1 (en) 2008-09-18 2010-03-18 Tianlong Chen System and method for managing video, image and activity data
US20100162225A1 (en) 2008-12-19 2010-06-24 International Business Machines Corporation Cross-product refactoring apparatus and method
US20100250322A1 (en) 2009-03-27 2010-09-30 Michael Roy Norwood Simplified user interface and method for computerized task management systems
US8612435B2 (en) 2009-07-16 2013-12-17 Yahoo! Inc. Activity based users' interests modeling for determining content relevance
US9544379B2 (en) 2009-08-03 2017-01-10 Wolfram K. Gauglitz Systems and methods for event networking and media sharing
US8538484B2 (en) 2009-08-14 2013-09-17 Google Inc. Providing a user with feedback regarding power consumption in battery-operated electronic devices
US8341175B2 (en) * 2009-09-16 2012-12-25 Microsoft Corporation Automatically finding contextually related items of a task
US9754240B2 (en) 2009-11-20 2017-09-05 Palo Alto Research Center Incorporated Method for quickly recovering from task interruption
EP2343651A1 (en) 2009-12-15 2011-07-13 Accenture Global Services Limited Monitoring and tracking application usage
US20110289117A1 (en) 2010-05-19 2011-11-24 International Business Machines Corporation Systems and methods for user controllable, automated recording and searching of computer activity
US20120084248A1 (en) 2010-09-30 2012-04-05 Microsoft Corporation Providing suggestions based on user intent
US8819726B2 (en) 2010-10-14 2014-08-26 Cyandia, Inc. Methods, apparatus, and systems for presenting television programming and related information
US8738489B2 (en) 2010-10-27 2014-05-27 Oracle International Corporation Managing schedules in a financial close management system
GB2500537A (en) 2010-12-03 2013-09-25 Titus Inc Method and system of hierarchical metadata management and application
US9336380B2 (en) 2010-12-15 2016-05-10 Microsoft Technology Licensing Llc Applying activity actions to frequent activities
US20120159515A1 (en) 2010-12-16 2012-06-21 Microsoft Corporation Sharing object representations
US9098612B2 (en) 2010-12-30 2015-08-04 Qwest Communications International Inc. End-to-end application tracking framework
US10204327B2 (en) 2011-02-05 2019-02-12 Visa International Service Association Merchant-consumer bridging platform apparatuses, methods and systems
US20120246551A1 (en) 2011-03-21 2012-09-27 Ncr Corporation Updating serialized objects
US8930300B2 (en) 2011-03-31 2015-01-06 Qualcomm Incorporated Systems, methods, and apparatuses for classifying user activity using temporal combining in a mobile device
US8630994B2 (en) 2011-04-07 2014-01-14 Evan Greene System for multiple tasks on a display
CN102739708B (zh) 2011-04-07 2015-02-04 腾讯科技(深圳)有限公司 一种基于云平台访问第三方应用的系统及方法
US9727124B2 (en) 2011-04-19 2017-08-08 Apple Inc. Power saving application update in a portable electronic device
US8874525B2 (en) 2011-04-19 2014-10-28 Autodesk, Inc. Hierarchical display and navigation of document revision histories
US8789014B2 (en) 2011-05-13 2014-07-22 Microsoft Corporation Managing a working set in an integrated development environment
US8346810B2 (en) 2011-05-13 2013-01-01 Simplivity Corporation Reference count propagation
US9317390B2 (en) 2011-06-03 2016-04-19 Microsoft Technology Licensing, Llc Collecting, aggregating, and presenting activity data
US20120331407A1 (en) 2011-06-21 2012-12-27 Google Inc. Temporal Task-Based Tab Management
US9384464B2 (en) 2011-07-05 2016-07-05 AutoDocs, L.L.C. Web based template reporting system
WO2013009337A2 (en) 2011-07-08 2013-01-17 Arnold Goldberg Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
US8949873B1 (en) 2011-07-31 2015-02-03 Google Inc. Systems and methods for sharing media content viewing history
US20130067346A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Content User Experience
US9191355B2 (en) 2011-09-12 2015-11-17 Crytek Gmbh Computer-implemented method for posting messages about future events to users of a social network, computer system and computer-readable medium thereof
US10127563B2 (en) 2011-09-15 2018-11-13 Stephan HEATH System and method for providing sports and sporting events related social/geo/promo link promotional data sets for end user display of interactive ad links, promotions and sale of products, goods, gambling and/or services integrated with 3D spatial geomapping, company and local information for selected worldwide locations and social networking
US9613321B2 (en) 2011-09-23 2017-04-04 Sam David Molyneux System and method for establishing a dynamic meta-knowledge network
WO2013048986A1 (en) 2011-09-26 2013-04-04 Knoa Software, Inc. Method, system and program product for allocation and/or prioritization of electronic resources
WO2013048456A1 (en) 2011-09-30 2013-04-04 Hewlett-Packard Development Company, L.P. Extending a conversation across applications
US9600834B2 (en) 2011-10-26 2017-03-21 Yahoo! Inc. Aggregating data from multiple devices belonging to one user for directed ad targeting
US8745057B1 (en) * 2011-11-28 2014-06-03 Google Inc. Creating and organizing events in an activity stream
US20130139113A1 (en) 2011-11-30 2013-05-30 Microsoft Corporation Quick action for performing frequent tasks on a mobile device
US8782218B1 (en) 2011-12-22 2014-07-15 Emc Corporation Activity stream based alert processing for information technology infrastructure
EP2608041B1 (en) 2011-12-23 2015-05-20 Deutsche Telekom AG Monitoring user activity on smart mobile devices
KR101712250B1 (ko) 2012-01-19 2017-03-03 나이키 이노베이트 씨.브이. 다중 액티비티 플랫폼 및 인터페이스
US9235603B2 (en) 2012-03-27 2016-01-12 Verizon Patent And Licensing Inc. Activity based search
US8950009B2 (en) 2012-03-30 2015-02-03 Commvault Systems, Inc. Information management of data associated with multiple cloud services
US9054919B2 (en) 2012-04-05 2015-06-09 Box, Inc. Device pinning capability for enterprise cloud service and storage accounts
US9098357B2 (en) 2012-04-11 2015-08-04 Nokia Technologies Oy Method and apparatus for activity management across multiple devices
US9307006B2 (en) 2012-04-11 2016-04-05 Salesforce.Com, Inc. System and method for synchronizing data objects in a cloud based social networking environment
US20130311447A1 (en) 2012-05-15 2013-11-21 Microsoft Corporation Scenario based insights into structure data
CN103457905B (zh) 2012-05-28 2015-09-09 腾讯科技(深圳)有限公司 数据同步方法、系统及设备
US20140012574A1 (en) 2012-06-21 2014-01-09 Maluuba Inc. Interactive timeline for presenting and organizing tasks
US9729673B2 (en) 2012-06-21 2017-08-08 Calgary Scientific Inc. Method and system for providing synchronized views of multiple applications for display on a remote computing device
US9720495B1 (en) 2012-06-22 2017-08-01 Google Inc. Aggregating online activities
JP6125628B2 (ja) 2012-06-22 2017-05-10 グーグル インコーポレイテッド オンラインアクティビティの集約
DE102012212769A1 (de) 2012-07-20 2014-01-23 Robert Bosch Gmbh Wiederverschliessbarer Ausguss für einen Beutel aus elastischer Folie
US9342209B1 (en) 2012-08-23 2016-05-17 Audible, Inc. Compilation and presentation of user activity information
US20140068443A1 (en) * 2012-08-28 2014-03-06 Private Group Networks, Inc. Method and system for creating mnemonics for locations-of-interests
US9363325B2 (en) 2012-08-29 2016-06-07 Yammer, Inc. Method for generating social network activity streams
US9776078B2 (en) 2012-10-02 2017-10-03 Razer (Asia-Pacific) Pte. Ltd. Application state backup and restoration across multiple devices
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9141188B2 (en) * 2012-10-05 2015-09-22 Elwha Llc Presenting an augmented view in response to acquisition of data inferring user activity
US20140108585A1 (en) 2012-10-15 2014-04-17 InVisioneer, Inc. Multimedia content management system
EP2915053A2 (en) 2012-10-31 2015-09-09 O'Malley, Matt System and method for dynamically monitoring, analyzing, managing, and alerting packet data traffic and applications
US20140122697A1 (en) 2012-11-01 2014-05-01 Google Inc. Providing content to linked devices associated with a user
US9824363B1 (en) 2012-11-16 2017-11-21 Lu Wang Method and system for electronically engaging customers
US20140207962A1 (en) 2013-01-21 2014-07-24 Disney Enterprises, Inc. Aggregation of User Activity Data Into a User Activity Stream
US20140229391A1 (en) 2013-02-08 2014-08-14 XTime, Inc. Predictive service timeline
US9100337B1 (en) 2013-02-20 2015-08-04 Google Inc. Enabling cookies for a website
US9779063B1 (en) 2013-03-15 2017-10-03 Not Invented Here LLC Document processor program having document-type dependent interface
US20140325070A1 (en) 2013-04-24 2014-10-30 Zynga Inc. Usage consumption for an invitee of a cloud system
US9565584B2 (en) 2013-06-24 2017-02-07 Cisco Technology, Inc. Human mobility rule-based device location tracking
US9195703B1 (en) * 2013-06-27 2015-11-24 Google Inc. Providing context-relevant information to users
US9125015B2 (en) 2013-06-28 2015-09-01 Facebook, Inc. User activity tracking system and device
US10021169B2 (en) 2013-09-20 2018-07-10 Nuance Communications, Inc. Mobile application daily user engagement scores and user profiles
US9635398B2 (en) 2013-11-01 2017-04-25 Adobe Systems Incorporated Real-time tracking collection for video experiences
US20150235258A1 (en) 2014-02-20 2015-08-20 Turn Inc. Cross-device reporting and analytics
US20150235275A1 (en) 2014-02-20 2015-08-20 Turn Inc. Cross-device profile data management and targeting
US20150256423A1 (en) 2014-03-10 2015-09-10 Charles Carey Stearns Data collection, aggregation, and analysis for parental monitoring
WO2015137620A1 (en) 2014-03-12 2015-09-17 Samsung Electronics Co., Ltd. Method and apparatus for providing calendar displaying work history of document
US20150286694A1 (en) 2014-04-08 2015-10-08 International Business Machines Corporation Integrating a mobile payment application with other applications utilizing analytic analysis
US20150294634A1 (en) * 2014-04-15 2015-10-15 Edward K. Y. Jung Life Experience Memorialization with Alternative Observational Opportunity Provisioning
EP3146495A4 (en) 2014-05-20 2017-11-08 Google LLC Generating activity summaries
US9720888B1 (en) 2014-05-22 2017-08-01 Amazon Technologies, Inc. Distributed browsing architecture for the delivery of graphics commands to user devices for assembling a plurality of layers of a content page
US10313264B2 (en) 2014-05-28 2019-06-04 Apple Inc. Sharing account data between different interfaces to a service
CN105208434A (zh) 2014-06-11 2015-12-30 阿里巴巴集团控股有限公司 媒体投影方法、媒体投影设备、控制终端以及云端服务器
US9753904B2 (en) 2014-07-25 2017-09-05 Qualcomm Incorporated Fast rendering of websites containing dynamic content and stale content
US9851901B2 (en) 2014-09-26 2017-12-26 Western Digital Technologies, Inc. Transfer of object memory references in a data storage device
US9753816B2 (en) 2014-12-05 2017-09-05 Commvault Systems, Inc. Synchronization based on filtered browsing
US10025702B1 (en) 2014-12-10 2018-07-17 Amazon Technologies, Inc. Browser capable of saving and restoring content item state
US20160239896A1 (en) 2015-02-18 2016-08-18 Paul Shiu-Chang Chay Mobile Website Real Property Search and Map Display System and Method
US9866508B2 (en) 2015-04-02 2018-01-09 Dropbox, Inc. Aggregating and presenting recent activities for synchronized online content management systems
US9743368B2 (en) 2015-04-10 2017-08-22 Time Warner Cable Enterprises Llc Methods and apparatus for synchronized viewing experience across multiple devices
US10394953B2 (en) 2015-07-17 2019-08-27 Facebook, Inc. Meme detection in digital chatter analysis
US10089609B2 (en) 2015-12-14 2018-10-02 Visa International Service Association System and methods for online/offline synchronization
US9537952B1 (en) 2016-01-29 2017-01-03 Dropbox, Inc. Apparent cloud access for hosted content items
US10860988B2 (en) 2016-04-11 2020-12-08 Samsung Electronics Co., Ltd. Managing data items contributed by a plurality of applications
US11320982B2 (en) 2016-05-18 2022-05-03 Apple Inc. Devices, methods, and graphical user interfaces for messaging
US10467230B2 (en) 2017-02-24 2019-11-05 Microsoft Technology Licensing, Llc Collection and control of user activity information and activity user interface
US10735449B2 (en) 2017-07-11 2020-08-04 Viaforensics, Llc Methods and apparatuses for improved mobile app security testing via bridged native and web user interface interaction
US11580088B2 (en) 2017-08-11 2023-02-14 Microsoft Technology Licensing, Llc Creation, management, and transfer of interaction representation sets
US20190050378A1 (en) 2017-08-11 2019-02-14 Microsoft Technology Licensing, Llc Serializable and serialized interaction representations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1599432A (zh) * 2003-05-28 2005-03-23 汤姆森许可贸易公司 用于选择与标识符关联的文件的导航方法和设备
CN101401401A (zh) * 2006-03-08 2009-04-01 索尼爱立信移动通讯有限公司 组织移动无线终端中的事件记录的方法和系统
CN103155604A (zh) * 2010-08-13 2013-06-12 因特伟特公司 用于在使用全球文本站点平台来访问内容之时提供有状态体验的方法和系统
CN103348693A (zh) * 2011-01-05 2013-10-09 联合视频制品公司 在交互式媒体指南应用中在内容中导航的系统和方法

Also Published As

Publication number Publication date
US20180284958A1 (en) 2018-10-04
WO2018183062A1 (en) 2018-10-04
US10732796B2 (en) 2020-08-04
EP3602425A1 (en) 2020-02-05
CN110476162A (zh) 2019-11-19

Similar Documents

Publication Publication Date Title
US10671245B2 (en) Collection and control of user activity set data and activity set user interface
US10467230B2 (en) Collection and control of user activity information and activity user interface
CN110476162B (zh) 使用导航助记符控制显示的活动信息
CN110521187B (zh) 活动馈送服务
US20190050378A1 (en) Serializable and serialized interaction representations
US11580088B2 (en) Creation, management, and transfer of interaction representation sets
US9338242B1 (en) Processes for generating content sharing recommendations
US9483518B2 (en) Queryless search based on context
US8799300B2 (en) Bookmarking segments of content
US20090327953A1 (en) Unified navigation model between multiple applications
US20150120816A1 (en) Tracking use of content of an online library
US20130007667A1 (en) People centric, cross service, content discovery system
US20170192625A1 (en) Data managing and providing method and system for the same
US20150188971A1 (en) Data stream monitoring
US10853220B2 (en) Determining user engagement with software applications
US10579645B2 (en) Arranging and displaying content from a social media feed based on relational metadata
CN114450680A (zh) 内容项目模块布置
US20220245520A1 (en) Systems and Methods for Generating and Providing Suggested Actions
CN109116718B (zh) 设置闹钟的方法及设备
KR20160059980A (ko) 제공된 콘텐트를 위한 참조 정보 관리 장치 및 방법
JP2005346492A (ja) コンテンツ共有システム及びコンテンツコンテナ作成方法
WO2014111781A1 (en) System and methods of cloud based file sharing
CN105765985B (zh) 统一内容表示
US20180367848A1 (en) Method and system for auto-viewing of contents
US20170048341A1 (en) Application usage monitoring and presentation

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