CN106796581A - 用于内容数据的布局的基于用户意图的生成 - Google Patents

用于内容数据的布局的基于用户意图的生成 Download PDF

Info

Publication number
CN106796581A
CN106796581A CN201580053260.8A CN201580053260A CN106796581A CN 106796581 A CN106796581 A CN 106796581A CN 201580053260 A CN201580053260 A CN 201580053260A CN 106796581 A CN106796581 A CN 106796581A
Authority
CN
China
Prior art keywords
content
data
layout
author
intent
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.)
Pending
Application number
CN201580053260.8A
Other languages
English (en)
Inventor
D·B·李
K·法鲁基
I·图马诺夫
N·G·弗利尔
Z·拉加比
C·H·普拉特里
J·M·哈伯斯塔姆
B·巴拉贝
D·M·泰勒
L·M·米尔森
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 CN106796581A publication Critical patent/CN106796581A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/106Display of layout of documents; Previewing
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本文描述了基于用户意图的内容创作的技术。在内容创作期间,可以与内容数据一起获得意图数据。意图数据可以直接从作者获得或从与内容数据相关的文档推断。意图数据指示关于如何在不使用显式的格式化指令的情况下展现内容数据的作者的意图。可以基于意图数据生成用于内容数据的布局。可以利用附加数据来生成布局,所述附加数据诸如显示设备的能力和内容消费者的偏好。

Description

用于内容数据的布局的基于用户意图的生成
背景技术
消费者可用的显示设备的增加的多样性对内容作者造成了许多挑战。例如,在一些场景中,作者可以撰写被优化用于在竖排模式下显示在移动电话上的文档,其可能不适合于当以横向模式使用设备时的展现。当使用桌面监视器、虚拟现实显示设备、可穿戴式显示设备、80”屏幕、视频或打印页面显示时,这样的文档的可读性和外观可能进一步受损。
在另一个层面上,可用显示设备的增长的多样性与通常用于生成文档的静态格式化指令形成对比。例如,作者通常受限于提供特定的格式化指令,例如“将这两个字设置为18pt黑体字”、“将此文本放置到距页面顶部一英寸的3/4”或“放置这两个图像并排排列,两者之间有48pt的间距”。这样的静态格式化指令可能仅适用于几种显示格式,并且这种指令通常不预期或适应其他显示格式。当以不期望的格式显示这样的内容时,可能以与作者原本想到的或预期的完全不同的方式来展现内容。另外,在小屏幕上显示这样的内容可能将图像或文本的大小减小到其可能不可读的点。
此外,通过仅依赖于特定格式化指令,可能不能完全表达作者的意图中的一些意图。例如,手动生成的布局可能受到作者对格式化指令的了解的限制。可能存在可用于展现内容的大量格式化选项,但是可能未被利用,因为它们对于作者是未知的或者因为作者没有足够的时间来添加这种显式格式化。因此,内容可能不会以与作者的意愿一致的方式展现。
正是针对这些和其它考虑,展现了在此所做的公开。
发明内容
本文描述了基于作者的意图的内容创作的技术。一般地描述,在一些方面,可以获得并利用意图数据来生成用于内容数据的布局。意图数据可以指示关于如何展现内容数据的作者的意图,并且可以利用包含在内容数据中的多个内容元素之间的各种关系来描述。基于意图数据,可以针对内容数据生成布局。例如,可以通过选择可以满足作者的意图的一个或多个候选模板来生成布局。内容数据可以通过候选模板来置换。可以根据一组启发式规则对每个模板进行评分,并且可以选择具有最高分数的模板作为生成的布局。
根据另外的方面,还可以在生成布局时获得和利用其他信息,诸如描述显示设备的设备能力的数据和/或消费者偏好。然后可以使用所生成的布局来向作者或其他用户展现内容数据。作者可以进一步提供反馈以请求调整或重新生成所生成的布局。反馈可以包括覆盖布局中使用的意图解释的覆盖反馈和/或改变或添加对于内容数据的更多意图数据的意图反馈。
应当意识到,上述主题可以实现为计算机控制的装置、计算机过程、计算***或实现为例如计算机可读存储介质的制品。这些特征和其它各个特征将从以下的具体实施方式的阅读和相关联的附图的阅览中变得显而易见。
提供该发明内容以便以简化的形式来引入下面的具体实施方式中进一步描述的概念的选择。该发明内容不旨在确定所要求保护的主题的关键特征或主要特征,也不旨在该发明内容用于限定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任意部分所提到的任意或全部缺点的实现方式。
附图说明
图1是提供本文所公开的一种用于提供基于用户意图来生成用于内容数据的布局的内容创作服务的机制的概述描述的***图。
图2是示出了用于基于作者意图的内容创作的本文所展现的方法和技术的另外方面的框图。
图3是示出了包含在核心内容数据模型中和布局就绪视图模型中的多个数据元素的数据结构图。
图4示出了可以用于生成用于内容数据的布局的示例世界方案。
图5A和5B示出了两个示例布局和示例布局中的每一个的组件。
图6是示出了用于内容创作的过程的各方面的流程图。
图7是示出了用于基于作者意图生成用于内容数据的布局的方法的各方面的流程图。
图8A示出了在生成布局期间所使用的模板的示例。
图8B示出了用于利用算法生成用于布局生成的模板的示例。
图9A示出了可由作者用来输入内容数据并指定作者意图的用户界面。
图9B示出了根据在此展现的方法和技术的各方面的基于作者意图生成的布局中所展现的内容数据的呈现视图。
图9C示出了根据本文所展现的方法和技术的各方面的以基于作者意图生成的不同布局中所展现的内容数据的另一呈现视图。
图10是示出了用于基于作者意图和作者反馈的内容创作的本文所展现的方法和技术的各方面的框图。
图11是示出了用于处理关于基于作者意图生成的布局的用户反馈的方法的各方面的流程图。
图12示出了根据本文所提出的方法和技术的各方面,基于用户反馈生成的修改后布局中所展现的内容数据的呈现视图。
图13是示出了可用于实现在创作体验期间提供上下文相关内容的动态展现的一个或多个配置的一个说明性操作环境的框图。
图14是示出了在创作体验期间提供上下文相关内容的动态展现的方法的各方面的流程图。
图15示出了用于接收创作的内容并显示由图14的方法生成的建议的内容的示例用户界面。
图16是示出了在此展现的用于基于用户输入生成用于创作的样本内容的方法和技术的各方面的框图。
图17是示出了用于基于用户输入来生成用于创作的样本内容的方法的各方面的流程图。
图18示出了作者可以利用以输入内容数据的第一用户界面和接收基于输入的内容数据所生成的样本内容的第二用户界面。
图19是示出了能够实现本文所提出的方法和技术的各方面的计算***的说明性计算机硬件和软件架构的计算机架构图。
图20是示出了能够实现本文给出的方法和技术的各方面的分布式计算环境的图。
图21是示出了能够实现本文给出的方法和技术的各方面的计算设备的计算设备架构的计算机架构图。
具体实施方式
以下具体实施方式针对用于基于用户意图的内容创作的概念和技术。一般地描述,这里公开的技术可以用于提供服务以生成由作者提供或选择的用于内容数据的布局。内容数据可以包括各种内容数据元素,诸如文本、图像、视频、音频等。作者可以进一步指定他/她关于如何展现内容数据的意图。作者的意图可以被描述为包含在内容数据中的内容元素之间的各种关系。
本文描述的技术可以利用作者指定的意图来生成用于内容数据的布局。如本文所使用的术语,内容数据的“布局”可以包括用于展现内容数据的宏级方案,用于内容数据的一组内容数据元素的中间级安排方案,以及针对内容数据元素中的每个的微级方案。在其他方面,当生成布局时,还可以考虑在其上显示内容数据的显示设备的能力。在生成布局时也可以考虑其他因素,例如消费者对创作的内容的偏好。通过利用这里描述的技术,可以在尊重内容作者的意图的同时,动态地在各种不同的显示设备上恰当地布置内容数据。
根据其他方面,本文描述的技术提供在创作体验期间上下文相关内容的动态展现。在一些配置中,当用户关于主题写作时,分析创作的内容以识别可用于识别、检索建议的内容并向用户展现建议的内容的一个或多个关键词。可以从诸如搜索引擎、与用户相关联的数据存储库、社交媒体资源或其他本地或远程文件之类的一个或多个资源接收所建议的内容。本文描述的技术还可能基于光标位置从创作的内容中选择关键词。结果,所建议的内容可以随着光标移动到创作的内容中的新位置而改变。另外,本文描述的技术提供允许选择和取消选择一个或多个关键词的用户界面控件,其允许用户通过切换一个或多个控件来定制建议的内容。本公开的其他方面还在与本申请同时提交的题为“INFERRING LAYOUTINTENT”的美国专利申请No.14/503,216中提供。
根据另外的方面,本文描述的技术基于用户输入来生成样本创作内容。一般地描述,样本内容(例如主题的概要)可以从用户提供的一个或多个关键词的上下文解释生成。使用一个或多个关键词,***从一个或多个资源检索内容数据。内容数据被解析并用于生成内容数据的结构。然后该结构用于生成可以展现给用户的样本内容。所展现的信息可以提供一种用于快速启动关于感兴趣的特定主题的创作项目的方式。
虽然本文所描述的主题是在与计算机***上的操作***和应用程序的执行相结合而执行的程序模块的一般上下文中展现的,但是本领域技术人员将认识到,可以与其它类型的程序模块相结合来执行其它实现方式。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。而且,本领域技术人员将意识到,本文所描述的主题可以利用其它计算机***配置来实现,所述其它计算机***配置包括手持式设备、多处理器***、基于微处理器的或可编程的消费电子设备、微型计算机、大型计算机,等等。
在下面的具体实施方式中,参考了附图,附图构成其部分,并且其中通过示例显示出具体的配置或示例。现在参考附图,其中,示出了用于基于用户意图的内容创作的计算***、计算机可读存储介质和计算机实现的方法的各方面,其中相似的标记在多幅图中表示相似的元件。如参考图19-21在下面进一步详述的,存在能够实施本文所描述的功能和技术的多个应用和服务。
图1是提供本文所公开的一种用于提供基于用户意图生成用于内容数据的布局的内容创作服务的机制的概述描述的***图。如图1所示,***100可以包括支持内容创作的一个或多个服务器计算机104。服务器计算机104可以包括web服务器、应用服务器、网络工具、专用计算机硬件设备、个人计算机(“PC”)或这些的任何组合和/或本领域已知的其他计算设备。
服务器计算机104可以执行多个模块以便提供内容创作服务。例如,如图1所示,服务器计算机104可以包括用于收集和/或生成内容数据114的内容收集/生成模块106。作为示例而非限制,内容数据114可以包括各种内容数据元素,诸如文本、图像、视频、音频、推特(tweet)、图表、图形、表格、不透明web数据和/或可以在内容创作中利用的任何数据元素。内容数据元素可以通过用户计算设备130从作者102处获得作为作者输入112。为了说明的目的,作者输入112在这里也可以被称为内容数据,其中从内容资源检索的内容数据包括对所识别的实体的描述。用户计算设备130可以是个人计算机(“PC”)、桌面工作站、膝上型计算机或平板计算机、笔记本、个人数字助理(“PDA”)、电子书阅读器、智能电话、游戏控制台、机顶盒、消费电子设备、服务器计算机或能够连接到网络124并与内容收集/生成模块106通信的任何其他计算设备。网络124可以是局域网(“LAN”)、广域网(“WAN”)、因特网或本领域已知的将用户计算设备130连接到内容收集/生成模块106的任何其它网络拓扑。
当提供内容数据元素时,作者102可以通过由内容收集/生成模块106展现给作者102的用户界面来键入文本、上传图像或上传包含内容数据元素的现有文件。作者102还可以通过用户界面提供其他数据,例如用于内容数据元素的元数据。可替代地或者另外地,作者102可通过利用由布局生成服务暴露的应用编程接口(“API”)通过用户计算设备130提交内容元素和/或与其相关联的任何其它数据。
根据另外的方面,还可以从各种内容资源126获得内容数据元素。内容资源126可以包括用户计算设备130本地可访问的内容数据存储库128A和/或服务器计算机104本地可访问的内容数据存储库128B中的本地内容。内容资源126还可以包括通过网络124可访问的内容存储库128C-128N上的远程内容。例如,远程内容可以包括作者的社交媒体账户中的内容,诸如帖子、已经由作者写的博客、已经在作者账户下保存的音频、图像和/或视频等。远程内容还可以包括公开可用的内容。
除了内容数据114之外,内容收集/生成模块106还可以获得作者102的关于如何向消费者展现内容数据114的意图。例如,作者102可能想要比其周围内容数据更突出地展现一个图像。作者102可以进一步想要比其他文本更显著地展现某个文本块。作者102的意图可以被获得作为描述内容数据114中的内容元素中的两个或更多个之间的关系的意图数据116。意图数据116还可以指示内容数据114的预期用途,诸如被发布作为在线发布的博客文章、要在报纸上打印的文章、展现给消费者的视频、要回放给消费者的音频以及其它。在其它示例中,作者102可能想要多个内容放在一起,例如,作者102可能需要将文本块识别为引用语。在此类场景中,***可以处理从某人而不是原作者或讲话者所重复的文本或语音取得的一组词。应当注意,意图可以通过高级描述来传达,并且意图数据116可以不包含特定的格式化指令。关于内容数据114和意图数据116的附加细节将在下面关于图3来提供。
一旦获得内容数据114和意图数据116,服务器计算机104可以采用布局生成引擎108来基于意图数据116来生成内容数据114的布局。如上面简要讨论的,用于内容数据的布局可以包括用于展现内容数据的宏级方案、用于内容数据的一组内容数据元素的布置的中间级方案,以及用于格式化内容数据元素中的每个的微级方案。用于展现内容数据的宏级方案可以包括内容数据的高级结构、内容数据的整体颜色方案、要将内容传达给消费者的情态、高阶交互模型和/或可以在宏级应用于内容数据的其它设计元素。宏级方案的示例可以是世界方案,将参考图3-图5对此进行详细讨论。
中间级布置方案可以包括一组内容数据元素的布置和/或设计。为了示出中间级方案的各方面,考虑具有将内容数据组织成一个或多个部分的高级结构的示例宏级方案,其中每个部分包含一个或多个内容数据元素。在这样的示例中,安排的中间级方案可以包括用于部分中的每一个的各种设计方面,诸如每个部分中的数据元素的布置,要应用于部分中的每一个的颜色方案、待应用的不同情态等等。关于中间级方案的进一步细节将在下面关于图5进行讨论。
如上所概述,布局可以包括针对内容数据114中的内容数据元素的每一个的微级方案。在一些配置中,微级方案可以根据内容数据元素的类型而变化。例如,对于文本内容数据元素,微级方案可以包括用于文本的字体设计,诸如字体大小、字体颜色、字样等等。用于文本内容数据元素的微级方案还可以包括行和段落间距、文本对齐、项目符号或编号等。对于图像内容数据元素,微级方案可以包括图像的大小、位置、纵横比和/或图像的其他方面。本文所描述的技术还可以处理微级内容的组合,诸如带标题的图像。将关于图5描述关于内容数据元素和微级方案的附加细节。应当理解,上述宏级方案、中间级方案和微级方案仅用于说明,并且不应被解释为限制。附加的布局方案可以包含在除了本文所描述的布局之外的布局中,并且并非所描述的每个方案都可用于生成的布局。
一旦生成布局,定义布局的数据和内容数据可以被传送作为输出,为了说明的目的,这里将其称为“内容和布局数据122”。关于布局生成引擎108以及内容和布局数据122的附加细节在下面关于图2-图9提供。内容和布局数据122然后可以被发送到呈现设备110并且被展现给内容的消费者132以供消费或展现给作者102以用于测试和/或审阅目的。呈现设备110可以是PC、桌面型工作站、膝上型计算机或平板电脑、笔记本、PDA、电子书阅读器、智能电话、可佩戴式计算设备(诸如智能手表、智能眼镜、虚拟现实头戴式显示器)、游戏控制台、机顶盒、消费电子设备、服务器计算机或具有与其相关联的显示器并且能够根据内容和布局数据122呈现内容的任何其他计算设备。如果内容数据114的输出格式是打印页面,则呈现设备110还可以包括打印机。此外,内容数据114可以包括音频信号,并且在该情况下,呈现设备110还可以包括音频呈现设备,诸如MP3播放器。
可以理解,内容和布局数据122的示例是为了说明的目的而提供的,并且不被解释为限制。如可以理解的,来自任何资源的任何信息、范例、过程或数据结构可以与本文描述的技术一起使用以处理可以用作处理的数据或输出(例如,内容和布局数据122)的任何类型的数据。另外,虽然本文描述的技术涉及“内容”或“布局数据”的处理,但是应当理解,“内容”和/或“布局数据”可以是任何形式的媒体的一部分、与任何形式的媒体结合使用,所述媒体例如视频、静像或定义2D或3D显示环境的任何其它形式的数据。例如,通过本文描述的技术生成、处理或获得的任何数据可以适应任何2D或3D显示环境,诸如由谷歌眼镜(GOOGLEGLASS)或OCULUS RIFT使用的显示环境。还可以理解,通过本文所描述的技术获得、处理或生成的任何数据可以是其他形式,诸如具有仅音频格式的那些数据,或具有与视觉或非视觉数据相关的音频分量的格式。因此,使用本文所描述的技术处理的数据可以包括描述布局和/或内容的转录和/或翻译。
根据另外的方面,布局生成引擎108还能够获得用于生成布局的附加数据,诸如呈现设备的设备能力118、消费者偏好120和/或潜在的其他数据。设备能力118可以包括呈现设备110的各种规范,诸如分辨率、取向、存储器约束、图形能力、浏览器能力等。设备能力118还可以包括静态性/动态性,例如与使用数字显示器的通常动态体验不同的打印页面。消费者偏好120可以包括消费者132可以据此较喜欢要展现内容的各种特征和/或风格,诸如内容的整体结构、颜色方案、背景、动画风格和其它。消费者偏好120可以由消费者132通过呈现设备110或通过消费者132可访问的任何其他计算设备提供给布局生成引擎108。
当生成布局时,布局生成引擎108还可以考虑上述附加数据。然而,应当注意,在布局生成引擎108的各种类型的输入之间可能存在冲突。例如,意图数据116和消费者偏好120可能本质上是矛盾的。在这种场景中,需要根据各种规则和所涉及的具体情形来解决冲突。例如,内容数据114可以包含作者可能想要确保所生成的布局匹配其公司风格和意图的优质内容/工作产品,并且因此给予消费者偏好120很小的权重。相反,当例如消费者具有与颜色选择、字体大小和动画样式有关的可访问性关注时,可以给消费者偏好120更高的权重。如下所述,在一些场景中,可以从包含相关内容数据而不是由作者102指定的现有格式化文档中推断出意图数据116,并且可以通过将更多权重分配给消费者偏好120而分配给不是意图数据116来生成这样的场景中的布局。
应当理解,上述内容收集/生成模块106和布局生成引擎108的各种功能可以被实现为提供给作者102用于内容创作以及提供给消费者132用于内容消费的Web服务。例如,作者102可以通过web浏览器访问这些功能以生成用于内容的布局。内容还可以是消费者132通过其中在所生成的布局中展现内容的web浏览器可访问的。
应进一步理解,虽然上文描述了内容收集/生成模块106和布局生成引擎108在服务器计算机104上执行,但是这些模块中的任何模块或其一部分可以在用户计算设备130和/或呈现设备110上执行。例如,内容收集/生成模块106和布局生成引擎108的功能可以被实现为在作者102操作的用户计算设备130上运行的软件应用。在另一示例中,内容收集/生成模块106的一些功能(诸如从作者102获得作者输入112和/或从内容资源126检索内容)可以实现为在用户计算设备130上执行的客户端软件应用。客户端软件应用可以将所获得的内容数据114和意图数据116发送到布局生成引擎108以用于布局生成。
类似地,布局生成引擎108的一些功能可以被实现为可以在呈现设备110上执行的客户端软件应用。例如,客户端软件应用可以包括和实现诸如所生成的布局的简单调整的功能,而不联系服务器计算机104。该客户端软件应用可以被进一步配置为收集诸如设备能力118和消费者偏好120之类的数据,并且发送给布局生成引擎108以用于布局生成或主要布局修改。
现在转向图2,其中示出了说明本文展现的用于基于用户意图的内容创作的方法和技术的另外方面的框图。如图2所示,内容收集/生成模块106可以包括内容/意图引入模块204,其可以用于从作者102获得内容数据114、他/她对内容数据114的意图数据116以及由作者102提供的其他数据。在一些方面,内容/意图引入模块204可以通过如上所述的用户界面从作者102获取数据,其中作者102可以键入文本、上传图像、提供用于内容数据114的元数据,指定他/她对内容数据114的意图,和/或执行其他操作以传达相关信息。例如,用户可以通过从计算机生成的选择的列表中选择项目来指定意图或相关信息,其中所述选择是基于当前理解关系的。
除了直接从作者102获得内容数据114和/或意图数据116之外,还可以从各种内容资源126获得内容数据114和/或意图数据116。内容收集模块206可以用于收集来自内容资源126的内容/意图。然后可以将收集的内容/意图发送到内容/意图引入模块204,以与由作者102直接提供的内容/意图组合。
根据另外的方面,内容收集/生成模块106还可以包括扩充模块208,用于提供附加功能以增强内容创作服务。例如,扩充模块208可以基于在创作过程期间由作者102提供的内容数据114向作者102提供内容建议。扩充模块208还可以生成样本内容作为作者102开始创作过程的起点。可以通过内容收集模块206来收集建议的内容和/或样本内容。可以通过内容/意图引入模块204将建议的内容和/或所生成的样本数据展现给作者102,其中作者102可以对建议的内容和/或所生成的样本数据进行进一步选择。关于扩充模块208的附加细节将在下面关于图13-图18给出。
然后可以将所收集和/或生成的内容数据114和意图数据116提供为输出,并且该输出可以由布局生成引擎108消费用于布局生成。在图2所示的示例中,内容数据114和意图数据116可以被组织为核心内容数据模型212并且存储在内容和类同数据存储库210中。如下面详述的,类同数据存储库210可以是内容之间的类同度或关系的存储库。类同数据存储库210可以包括各种项目,诸如层级、聚类、强调、概要、列表和/或相关内容。关于核心内容数据模型212的细节将在下面结合图3提供。布局生成引擎108可以从内容和类同数据存储库210检索核心内容数据模型212,并且基于核心内容数据模型212生成布局。
根据一些方面,当生成布局时,布局生成引擎108还可以针对各种布局资源来查阅布局资源数据存储库214。布局资源数据存储库214可以包含用于宏级方案、中间级方案和/或微级方案的各种模板。例如,布局资源数据存储库214可以存储可以用作用于展现内容数据的宏级方案的一个或多个世界方案。布局资源数据存储库214还可以包含可以用于生成中间级方案的模板的一个或多个对象,如将关于图8B详细讨论的。布局资源数据存储库214还可以包含对用户意图的各种解释。例如,对于对图像进行强调的用户意图,解释可以包括将图像尺寸增大为大于其旁边的图像,将图像放置在页面或屏幕中使得其距周围内容有大的空间,调整图像大小以便当展现时占据整个屏幕,和/或其他可能的解释。解释可以具有与其相关联的一个或多个规则。规则可以描述不同解释之间的关系、可以采用特定解释的条件、当采用解释时的建议的格式化命令,等等。布局资源数据存储库214还可以包括可应用于内容数据114的其他资源,诸如颜色方案和动画方案。关于布局的生成的附加细节将在下面参照图6-图8给出。
如图2所示,所生成的布局以及内容数据然后可以被输出为布局就绪视图模型216并且存储在布局就绪视图模型数据存储库218中。从布局就绪视图模型数据存储库218,呈现设备110可以获得并呈现布局就绪视图模型216以将生成的布局中的内容数据展现给消费者132或作者102。关于布局就绪视图模型216的其他方面在下面参考图3来提供。
根据另外的方面,可以采用反馈模块220来从作者102获得关于所展现的布局的反馈224。取决于反馈的性质,反馈可以被发送到布局生成引擎108以调整生成的布局,或者它可以被发送到内容收集/生成模块106以实现布局的重新生成。作为示例而非限制,作者102可以提供改变他/她最初提供的意图的意图反馈,并且这种意图反馈可以通过内容/意图引入模块204来获取,并且用于修改用于生成布局的核心内容数据模型212。可选地或另外地,作者102可以通过例如请求要展现的替代布局,指出所生成的布局存在何种问题,提供对布局的不满意部分的示例解决方案或甚至提供要用于某些内容数据元素的特定格式化命令来提供用于细化所生成的布局的反馈。关于反馈处理的进一步细节将在下面关于图10-图12给出。
图3示出了包含在核心内容数据模型212中的详细数据元素。如图3所示,内容和类同数据存储库210可以包含一个或多个核心内容数据模型212A-212N,这里可以单独地称为核心内容数据模型212或统称为核心内容数据模型212。核心内容数据模型212中的每个可以对应于作为一个输出展现的创作的内容。如图3所示,核心内容数据模型212可以包括规范化内容数据114、意图数据116,内容关联数据308、元数据310和潜在的其他数据。规范化内容数据114可以包括不具有与其相关联的任何格式化的内容数据元素。例如,如果规范化内容数据114的内容数据元素包括文本块,则内容数据元素可以仅包括文本中所包括的字符的美国信息交换标准代码(“ASCII”)码。
核心内容数据模型212还可以包括描述作者102关于应如何展现内容数据114的意图的意图数据116。意图可以包括作者的显式或隐式意图,并且可以由作者102通过指示关系或选择内容数据114中所包含的内容数据元素的展现选择来传达,而不是提供特定/直接格式化命令。作者102的意图可以包括语义意图和展现意图。语义意图的示例可以包括但不限于顺序、组、比较之前/之后、视觉堆栈、增加的强调、层级和其它。展现意图的示例可以包括诸如紧凑或松散的间隔、外观,诸如没有动画、适度动画或主动动画的现代、传统或专业的动画级别、定时、一次一起显示这些项目中的全部的展现和/或其他。定义意图的数据在本文中可被称为意图数据116。
通过利用意图,作者102可以避免提供特定格式化指令,并且因此允许内容数据114以适合于不同呈现设备的各种布置而动态展现,而不偏离作者102的原始意图。为了便于作者102传达他/她的意图,可以设计和提供各种关系给作者102以供选择。例如,可以设计关系“强调”以允许作者102表达诸如“强调该文本”或“该元素比该其他元素更重要”的意图。基于这样的意图,可以例如通过调整大小、加下划线、改变颜色和/或可以将文本或元素与其他元素区分开的任何其他方式来适当地格式化相应的文本或元素。表I示出了可以被作者102用来描述他/她的意图的示例关系的列表。
表I
应当注意,作者102可能不需要提供上述所有不同类型的意图。相反,作者102可以从模板中预定义的意图数据116开始,并且然后在必要时细化和/或调整他/她的意图。如下面将更详细地描述的,意图数据116还可以从除作者102之外的其他来源获得。例如,意图数据116可以从从内容资源126检索的内容数据的结构或格式化信息导出。当从内容资源126检索文章时,文章的结构可以指示文章的标题,以及每个部分的标题应当比文章的其他部分被给予更多强调。类似地,意图数据116还可以从与内容数据114相关的其他内容或文档推断,诸如其中可以检索内容数据114的、由作者102提供的文档,或者具有与作者102想要的风格类似的风格的文档。基于所导出或推断的意图数据116,作者102可进一步进行调整或添加以传达他/她对内容数据114的意图。
根据另外的方面,核心内容数据模型212还可以包括描述内容数据114中的内容数据元素之间的关系和/或可以与内容数据114相关的其他内容的内容关联数据308。例如,规范化内容数据114可以包括具有2400×3200的原始分辨率的图像。当在具有低分辨率显示器的智能电话设备上展现这种高分辨率图像时,可以不需要将原始图像发送到智能电话。相反,原始图像可以被下采样以生成具有较低分辨率的图像以被发送到智能电话。在这种场景中,内容关联数据308可以用于指示原始图像具有与其相关联的较低分辨率的图像,并且可以在适当时使用。类似地,当对该图像进行缩小时,该图像可能变得过小而不可见。在这种场景中,可使用裁剪来集中于图像的被作者视为重要的区域。
此外,如将关于图13-15详细讨论的,可以从内容资源126探索和检索与内容数据114相关的内容。内容关联数据308还可以用于描述所检索到的内容与内容数据114之间的关系。应当注意,在内容数据114的生命周期期间,可以连续地识别和/或检索相关内容,并且因此可以周期性地更新内容关联数据308以反映新识别的相关内容。
根据内容数据114,内容数据元素中的一些可以具有与其相关联的元数据。这样的元数据可以存储在核心内容数据模型212的元数据310中。例如,元数据310可以包括内容数据114中所包含的图片的元数据,诸如拍摄图片的位置、图片被拍摄的时间、和/或图片的大小。虽然元数据310可能不是由作者102直接指定的意图,但是它在导出或推断作者102的意图和/或在生成内容数据114的布局时可能是有用的。将意识到,除了这里描述的那些之外,附加数据元素可以包含在核心内容数据模型212中,并且不是描述的每个数据元素都可供创作的内容使用。
图3进一步示出了存储在布局就绪视图模型数据存储库218中的布局就绪视图模型216A-216N(其在本文中可以被单独地称为布局就绪视图模型216或统称为布局就绪视图模型216)和可以包含在布局就绪视图模型216中的数据元素。布局就绪视图模型216可以由布局生成引擎108基于内容和类同数据存储库210中的核心内容数据模型212生成。当生成布局就绪视图模型216时,布局生成引擎108可以将意图数据116变换成可以一起定义内容数据114的布局的各种格式化配置。这些格式化配置和内容数据114可以存储在布局就绪视图模型216中并且准备就绪以由呈现设备110呈现。
具体来说,图3中所示的布局就绪视图模型216包括要展现的规范化的内容数据114,以及内容数据114的布局304。如上所述,用于内容数据的布局可以包括用于展现内容数据的宏级方案、用于内容数据的一组内容数据元素的中间级布置方案,以及用于内容数据元素中的每个的微级方案。图3中所示的布局304包括可以用作布局304的宏级方案的世界方案312。世界配置312可以指定布局304的总体结构,并且描述高阶交互假设、布局约束、和/或潜在的其他约束/假设。图4示出了可以在内容数据114的布局304中使用的若干示例世界方案。在表II中提供了图4所示的世界方案中的每一个的详细描述。应当理解,表II中展现的世界方案仅用于说明,并且不应被解释为限制。除了本文描述的那些之外,可以设计和利用附加的世界方案。
表II
如图4所示,示例世界方案中的每个可以包括一个或多个部分404(其在本文中可以单独称为部分404或统称为部分404)。部分404可以用作中间级方案以将内容数据元素布置为组,其中每个组填充一个或几个页面或屏幕。一个示例部分可以包括被缩放以利用一些标题文本被叠加在图像的两个不同区域上的一些题目文本来填充整个屏幕的单个图像。另一示例部分可以包括分割成三列的大文本块,其围绕具有其中的视频缩略图的16×9纵横比视频回放微件。这些部分可以被设计为一般化和多用途的,使得在建立各种各样的世界方案期间,可以将整屏幕的内容的部分用作构建块。在一些配置中,所述部分可以一次包括屏幕,但是它们也可以以任何逻辑方式延伸超过屏幕。例如,观看30个密切相关的图像,它们可以被示为聚类在一起,但是滚动离开屏幕。在这样的配置中,聚类的末尾可以包括在下一内容之前的空白空间。下面将参照图8A和8B详细讨论用于部分404的布置方案的生成。
如上所述,世界方案可以存储在布局资源数据存储库214中。另外或可选地,世界方案可以存储在布局生成引擎108可访问的任何数据存储设备中。应当进一步理解,第三方也可以构建可以并入到***中的、存储在布局资源数据存储库214中和/或由布局生成引擎108利用的世界方案。
返回参考图3,布局304还可以包括部分布置314A-314C,其每一个可以描述世界配置312的对应部分404的布置或设计。由于每个部分404通常可以包括一个或多个内容数据元素,所以这些内容数据元素的格式化可以用作布局的微级方案。这样的微级方案可以在包含于布局304中的元素格式配置316A-316C中进行描述。
应当注意,布局就绪视图模型216的上述数据元素仅用于说明。除了本文所描述的那些之外,附加数据元素可以包含在核心内容数据模型212中,并且并非所描述的每个数据元素都可用于创作的内容。例如,包含在世界方案312中的部分404本身也可以包括世界方案312,并且因此导致嵌套的世界方案或“世界内世界”方案。类似地,部分404可以嵌套在另一个部分中,从而创建嵌套的部分布置。在这种场景中,布局就绪视图模型216中所包含的数据元素可以包含比图3所示的更多的信息。还应当注意,根据嵌套思想,大量的世界方案和/或部分布置可以被创建并用于生成用于内容数据114的布局304。
还应当意识到,世界方案、部分布置和元素格式配置到宏级方案、中间级方案和微级方案的映射仅是说明性的,并且不应被解释为限制。可以采用构建宏级方案、中间级方案和微级方案的各种其他方式。例如,在嵌套的世界方案中,中间级方案可以被构建为包括嵌套在另一世界方案内的世界方案,其可以包括高级结构以及嵌套的世界方案的部分布置。可替代地,嵌套的世界方案可以被认为是宏级方案,并且嵌套的世界的部分可以被认为是中间级方案。
可以利用图5A和5B中所示的示例布局进一步解释布局304、世界方案312、部分404以及该部分中所包含的内容数据元素。图5A示出了利用包含部分502的全景世界方案的示例布局。在部分502内,存在若干内容数据元素504:部分标题、文本块1、文本块2、图像1、题目1、图像2、题目2、图像3和题目3。这些内容数据元素504被布置在三列中:第一列是用于部分标题;第三列用于图像3及其题目3;并且第二列用于剩余的内容数据元素504。在第二列中,内容数据元素504还可以被布置成两个子列,每个子列保存文本块和图像以及图像题目。可以在对应于部分502的部分布置314中指定部分502的这种设计。此外,部分布置314还可以指定部分502的其他方面,诸如页边距、每个列/子列的宽度、每列内的内容数据元素504的相对位置、部分的动画等。此外,内容数据元素504中的每个可以具有其自己的格式配置,诸如大小、颜色、字体类型等。每个单独的内容数据元素504的格式配置可以存储在元素格式配置316中。
当选择不同的方案用于展现内容数据元素504时,部分布置314和元素格式配置316可以是不同的,并且可以适用于所选择的世界方案。图5B示出了在垂直世界方案中展现图5A所示的内容数据元素504的布局。在图5B所示的布局中,内容数据元素504也被分组在一个部分512中,并且它们被布置成行而不是列。其他布置,诸如页边距、行间距、部分512的动画也可以不同于部分502的布置。类似地,在垂直世界方案中,元素504中的每个可以被不同地格式化,并且因此布局304中所包含的元素格式配置316也可以不同。
应当理解,图5A和图5B中所示的布局仅仅是说明性的,并且可以利用布置内容数据元素504的其他方式。例如,在图5A所示的全景世界方案的部分502中所包含的内容数据元素504可以布局在图5B所示的垂直世界方案中的不同部分512中。不是部分502和512中的每一个都可以有部分标题。在图5A中所示的部分502中所包含的内容数据元素504也可以被组织在一个列中,而不是多个列或子列中。另外,内容数据元素504可以利用各种其他世界方案和/或这些世界方案的组合来布局。
现在转到图6,下面示出和描述了用于内容创作的例程600的各方面。应当理解,本文公开的方法的操作不一定以任何特定顺序展现,并且以替换顺序执行操作中的一些或全部是可能的并且是可预期的。为了便于描述和说明,以展示的顺序展现操作。在不脱离所附权利要求的范围的情况下,可以添加、省略和/或同时执行操作。
还应当理解的是,所图示的方法可以在任何时候结束,而无需全部执行。方法的一些或全部的操作和/或基本上等同的操作,可以通过包含在计算机存储介质上的如下文所定义的计算机可读指令的执行来实施。如在说明书和权利要求书中所使用的术语“计算机可读指令”及其变体在此扩展地用来包含例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令可以实现在各种***配置中,包括单处理器或多处理器***、微型计算机、大型计算机、个人计算机、手持式计算设备、基于微处理器的、可编程的消费电子设备、其组合以及类似物。
因此,应当意识到,本文所描述的逻辑操作可以实现为(1)运行于计算***上的计算机实现的动作或程序模块的序列,和/或(2)实现为计算***内的互连的机器逻辑电路或电路模块。实现方式是取决于计算***的性能和其它要求的选择问题。因此,本文所描述的逻辑操作可以多样地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以利用软件、固件、专用数字逻辑及其任意组合来实现。
如下面将结合图19-图21更详细地描述的,例程600的操作在此被描述为至少部分地由诸如内容收集/生成模块106和布局生成引擎108之类的应用来实现。尽管以下图示涉及内容收集/生成模块106和布局生成引擎108,但是可以理解,例程600的操作也可以以许多其他方式来实现。例如,例程600可以由实现内容收集/生成模块106和布局生成引擎108的功能的一个模块来实现。另外,例程600的操作中的一个或多个可以替代地或附加地至少部分地由图19中所示的web浏览器应用1910或结合图20的应用服务2024工作的另一应用来实现。
参考图6,例程600开始于操作602,其中获得内容数据114。如上面关于图1和图2所讨论的,内容数据114可以由作者102,例如通过用户界面或通过内容收集/生成模块106暴露的API来提供。另外,可以由内容收集/生成模块106从各种内容资源126来检索内容数据114。
从操作602,例程600进行到操作604,其中可以获得内容数据114的意图数据116。如上所述,意图数据116描述了关于如何在不使用特定格式化指令的情况下将内容数据114展现给消费者的作者102的意图。意图数据116可以通过描述内容数据114中的内容元素中的两个或更多个之间的关系和/或通过指定内容数据元素的展现选择来描述意图。意图数据116还可以指示内容数据114的预期用途。与内容数据114类似,可以通过用户界面或通过内容收集/生成模块106所暴露的API从作者102获得意图数据116。另外或可替代地,意图数据116或意图数据116的至少一部分可从模板获得或从内容数据114导出,例如通过内容数据114的底层结构。
接下来,在操作606,确定是否已经接收到用于生成布局304的指令。如果未接收到用于生成布局304的指令,则例程600可返回到操作602以获得更多内容数据114或返回到操作604以获得更多意图数据116。如果在操作606确定已经接收到用于生成布局304的指令,则例程600进行到操作608,其中可以基于所获得的意图数据116针对内容数据114来生成布局304。
如上所述,布局304可以由布局生成引擎108基于包含内容数据114和意图数据116的核心内容数据模型212来生成。可以生成布局304以适合内容数据114并且还满足作者102的意图。布局304可以包括多级配置,其可以包含宏级方案、中间级方案和微级方案。根据一种机制,宏级方案可以是可以指定布局的总体结构、描述高阶交互假设、布局约束和/或潜在的其他约束/假设的世界方案。
世界方案可以包括将内容数据元素布置为组的一个或多个部分,其中每个组对应于一个部分并填充一个或几个页面或屏幕。世界方案的部分还可以包括其他世界方案,从而形成嵌套的世界方案。应当理解,不同部分的布置在风格和配置方面可以是类似的,以形成内容的一致展现。然而,这些布置也可以不同。例如,一个部分中的内容结构、页边距、颜色方案、样式、背景可以与另一部分不同。在嵌套的世界方案中,嵌套在一个部分中的世界方案也可能不同于嵌套在另一个部分中的世界方案。如果存在嵌套的世界方案,则可以将部分布置与嵌套的世界方案一起用作布局的中间级方案。此外,内容数据元素中的每个可以具有其自己的格式配置,并且元素格式配置可以用作微级方案。
如上所述,布局生成引擎108可以访问在生成布局304时可以利用的其他信息。例如,可以从呈现设备110获得设备能力118,其描述呈现设备的各方面110,诸如分辨率、取向、存储器约束、图形能力、浏览器能力等。类似地,布局生成引擎108还可以被提供有消费者偏好120以指示消费者132可能较喜欢内容将按此展现的特征和/或风格,诸如内容的整体结构、颜色方案、背景、动画样式和其他。附加信息可以便于布局生成引擎108以满足作者102和消费者132的意图/偏好并且适合于呈现设备110的方式来生成用于内容数据114的布局304。所生成的布局304以及内容数据114可以作为布局就绪视图模型216输出。下面将参照图7提供关于本文公开的用于生成用于内容数据114的布局304的一个机制的附加细节。
从操作608,例程600进行到操作610,其中布局就绪视图模型216可以被发送到呈现设备,使得生成的布局304被展现。从操作610,例程600进行到操作612,在操作612,例程结束。
图7示出了例示用于基于用户意图数据116生成用于内容数据114的布局304的方法的各方面的例程700。将结合图8A和图8B描述图7,其中图示出在生成布局304期间使用的模板的示例。在一些实现方式中,例程700可以由上面关于图1和图2描述的布局生成引擎108执行。然而,应当意识到,例程700也可能由图1和图2中所示的操作环境中的其他***和/或模块来执行。
例程700开始于操作702处,其中可以选择可用于展现内容数据114的多个内容模板。内容模板可以包括对应于宏级方案的模板,诸如用于世界方案的模板,和/或对应于中间级方案和微级方案的模板,诸如世界方案的部分的模板,以及包含在部分中的内容数据元素的模板。模板中的一些可以进一步包括多个子模板,其中子模板中的每个可以被认为是一个模板,并且可以被改变或替换为单个单元。这样,在操作702中选择的模板可以具有各种尺寸、比例和/或样式,并且取决于内容数据的量,所选模板的数量可以是数千、数万或甚至数百万量级。
内容模板的选择可以基于在布局生成引擎108处可用的数据(包括核心内容数据模型212)和/或任何附加信息(诸如设备能力118和消费者偏好120)。在一些实现方式中,在布局生成引擎108处可用的数据(例如意图数据116和/或设备能力118)可以被转换为一个或多个格式化约束,并且布局生成引擎108可以选择满足格式化约束的内容模板。例如,当展现两个图像且第一图像比第二图像更强调时,如意图数据116所指示的,本文中的技术可以选择具有在比第二图像更大的观看区域中展现第一图像的布置的模板。类似地,当设备能力118指示目标呈现设备110是具有小屏幕尺寸的智能电话时,可以选择适合于在较小屏幕中展现内容的模板。
此外,对于一组内容数据元素,可以选择多于一个模板。图8A示出了可以被选择以展现图像元素和文本块元素的示例模板802A-802C。如图8所示,所有三个模板802A-802C能够布局图像和文本块,但是在布局的图像和文本块的位置、取向和其他方面彼此不同。
所选择的模板可以例如由设计者或通过从现有资源检索被预先生成,并且存储在布局资源数据存储库214中,其中布局生成引擎108可以选择并检索模板。根据模板的类型,还可以以编程方式生成模板。图8B示出了这种类型的模板。在图8B中示出了三种纸牌扇面型的模板802D-802F。虽然这三个模板在视觉上彼此不同,但它们都遵循某种算法表示。具体地,模板802D-802F可以用公式表示为α/N,其中α是扇面布局所跨越的度数,并且N是扇面布局中的元素的数量。对于模板802D,N=3;对于模板802E,N=7;而对于模板802F,N=11。基于该公式,可以在需要时生成任意数量N的模板,而不预先存储所有可能的模板,从而节省存储空间并增加布局生成方法的灵活性。也可以以类似的方式生成其他类型的模板,例如N元素的网格和对象的正弦波。可以意识到,提供这些示例是为了说明的目的,而不应解释为限制,因为可以使用任何其它用于处理内容布局的算法。
从操作702,例程700进行到操作704,其中可以通过在操作702中选择的模板来对内容数据114进行置换。例如,可以将图像和文本块放入模板802A、802B和802C中的每个。当需要时,可以稍微修改模板以适应内容数据元素。例如,模板中的一个或多个对象可以被调整大小、移位、旋转或以其他方式调整以适合其中包含的内容数据元素。可替代地,模板本身可以灵活以适应内容。例如,被图像垂直地跟随的文本段落可以被描述而使得图像开始于紧邻文本下方,但是对于不同量的文本,模板可以不同地放置图像。用于内容数据114中的所有内容数据元素的模板可共同形成候选布局304。由于对于每组内容数据元素可存在多个所选模板,所以这些模板的组合可产生多个候选布局304。
从操作704,例程700进行到操作706,其中针对候选布局304中的每一个计算分数。在候选布局304由多个模板组成的情况下,候选布局304的分数可以通过首先计算每个模板的分数,然后组合分数以生成候选布局304的最终分数来计算。
在一些实现方式中,根据一组启发式规则来计算模板的分数,所述启发式规则可以是一般规则、世界特定规则和样式特定规则的加权集合。作为示例而非限制,启发式规则可以包括可读性规则、拥挤/接近规则、适合纵横比或视口规则、语义匹配规则和/或潜在的其他规则。可读性规则可以度量例如文本是否具有足够的对比度以在其背景的上下文中被读取。拥挤/接近规则可以度量对象是否如意图数据116、设备能力118或消费者偏好120所要求的那样彼此靠近或远离。适合纵横比规则可以度量图像或文本如何良好地适合于指定的布局。语义匹配规则可以度量模板的视觉结果是否表示语义表达并匹配内容数据114的元数据中的语义提示。
可以基于上述规则中的每一个来计算中间分数,并且然后对其进行归一化和加权以生成模板的分数。可以根据布局生成引擎108的各种输入(包括意图数据116、设备能力118、消费者偏好120和其他因素)的相对重要性将权重分配给相应的中间分数。例如,基于适合纵横比规则计算的分数可以指示模板将如何良好地满足设备能力118。这样,如果满足设备能力118比满足消费者偏好120更重要,则可以将较高的权重分配给基于适合纵横比规则计算的分数。
类似地,候选布局304中所包含的模板的分数也可在计算候选布局304的最终分数之前被归一化、加权或以其它方式处理。从操作706,例程700进行到操作708,其中具有最高分数的候选布局304可以被选择为用于内容数据114的布局304,并且与用于呈现的内容数据114一起存储在布局就绪视图模型216中。从操作708,例程700进行到操作710,在操作710中例程700终止。
应当意识到,在图7中描述的布局生成过程可以自动地执行并且没有人为干预。另外,可以在获得意图数据116之后选择在布局304中所包含的模板。将这样的数据驱动模板/布局选择机制与其中作者102在预选模板中填充内容数据116的方法相比较,前者可以提供更准确的模板/布局以展现内容数据114。这是因为,作者102在预先选择模板时可能并且通常不具有可以适合内容数据114的所有潜在模板的知识。另外,内容数据114可以随着作者102继续创作过程而改变。预先选择的模板可能不适合于更新的内容数据114。另一方面,数据驱动模板/布局选择机制可以随着内容数据114通过利用布局生成引擎108可用的可能的所有模板资源而改变来动态地更新布局。这样的过程还可以对作者102透明,并且因此不需要来自作者102的布局设计的知识。此外,由于布局304是基于用户意图而不是特定格式化指令来选择的,所以由例程700生成的布局304能够动态地适应各种输出格式和呈现设备,同时仍然满足作者的意图。
图9A示出了创作用户界面900A,创作用户界面900A可以被作者102用来输入内容数据114、指定用户意图数据116和/或请求针对输入内容数据114生成的布局304。创作用户界面900A可以包括编辑字段902,其中作者102可以输入各种内容数据元素,诸如键入文本、上传图像等。在一些实现方式中,编辑字段902可以包括标题字段914,其中作者102可以指定内容数据114的标题,和/或内容数据114的一部分的标题。
创作用户界面900A还可以包括用户界面控件字段904,其中可以提供各种用户界面控件以促进用于内容数据114的布局生成。如图9A所示,用户界面控件字段904可以包括用于将作者意图指定给内容数据114的一组用户界面控件906,诸如用于添加强调的用户界面控件、指定内容数据元素之间的序列的用户界面控件、用于指定内容数据元素之间的层级的用户界面控件,和/或其他用户界面控件。
例如,作者102可以通过添加强调来指定他/她的意图。图9A示出了添加到文本和图像的强调920A-920D。将低强调920A添加到文本“spring mountain”,表示应该向该文本添加少量强调。类似地,向图像916添加低强调920B。分配给文本“I like the most”的中等强调920C表示应该将中等量强调添加到该文本,并且分配给图像918的高强调920D表示应当向图像918添加大量的强调。在一些实现方式中,具有与其相关联的意图的内容数据元素可以在编辑字段902中被不同地格式化,以便用信号通知所分配的意图。如图9A所示,星号、括号或其他符号可以附加到添加了强调的内容数据元素,并且星号的数量可以指示已经分配的强调的量。
如下面在图9B和9C中将示出的,为了实现强调920A-920D,布局生成引擎108可以选择格式配置,诸如用于文本的粗体字体、加下划线、放大字体,以及选择格式配置,例如,针对图像的放大的图像尺寸。应当注意,在创作用户界面900A中可以不使用这些格式配置来格式化相对应的内容数据元素,以便避免作者102给出这些内容数据元素的格式将是在所生成的布局304中所使用的格式的印象。换句话说,具有与其相关联的意图的内容数据元素被格式化或展现的方式可以不同于这些内容数据元素将在所生成的布局304中展现的方式。然而,在其他实现中,可以以将在所生成的布局304中采用的方式在编辑字段902中格式化具有相关联的意图的内容数据元素。
用户界面控件字段904还可以包括用于指定内容数据114的布局304的宏级方案的一组用户界面控件908。如上所述,宏级方案可以包括世界方案,其可以由布局生成引擎108基于意图数据116和其他附加信息来选择。可替代地或者另外地,作者102可通过创作用户界面900A来针对布局304选择世界方案。类似地,创作用户界面900A可进一步提供允许作者102指定其他类型的宏级方案的用户界面控件,诸如风格、整体颜色方案等。
一旦作者102完成编辑,或者在编辑期间的任何时间,他/她可以选择用户界面控件912以请求针对所提供的内容数据114生成布局304,并在所生成的布局304中预览所呈现的内容数据114。图9B和9C示出了两个不同布局304中的呈现的内容数据114。在预览期间的任何时间,作者102可以选择用户界面控件910以返回到编辑用户界面900A。
应当理解,图9A中所示的用户界面控件仅用于说明,并且不应被解释为限制。除了本文所示的那些以外,附加的用户界面控件/字段可以包括在创作用户界面900A中,并且不是示出的所有用户界面控件和/或字段都需要包括在创作用户界面中。此外,创作用户界面中的用户界面控件/字段可以以与所示的不同的方式来布置或设计。
现在参考图9B和图9C,其中示出了编辑字段902中示出的内容数据114的两个呈现视图。具体地,图9B示出了呈现的视图900B,其中内容数据114在基于垂直世界方案构建的布局304中展现。在呈现的视图900B中,内容数据元素可以被组织为垂直世界方案的一个部分。可以使用大的字体大小来格式化标题字段914中的文本,以使得部分标题更突出。强调920A通过对文本“spring mountain”加下划线作为解释的强调922A来实现,并且强调920C通过使文本“I like the most”为粗体和斜体作为解释的强调922C来实现。关于图像,强调920B已经被解释为对图像916调整尺寸以具有比图像924更大的尺寸,作为解释的强调922B。同样地,强调920D已经被解释为布置图像918以取屏幕的整个底部,作为解释的强调922D。
图9C示出了呈现的视图900C,其中内容数据114是在基于全景世界方案构建的布局304中展现的。如图9C所示,呈现的视图900C可以以列和子列布置内容数据114。添加到文本“spring mountain”和图像916和918的强调以与图9B所示的类似的方式实现。然而,对于文本“I like the most”,图9C中所示的布局304可将其放置在文本和图像918之间的空间中,作为解释的强调922C,并且进一步添加阴影效果以强调其重要性。可以看出,可以使用不同的布局304来不同地展现相同的内容数据114。在这些布局304中,可以选择或指定不同的世界方案312,并且部分布置314和元素格式配置316可以不同。此外,根据布局304的世界配置312、部分布置314和元素格式配置316,相同的意图数据116可以在不同的布局304中被变换为不同的格式配置。
图10示出了用于基于用户意图的内容创作的本文所展现的方法和技术的另外方面。具体地,图10示出了提供关于处理作者反馈224的更多细节的框图。如上简要提及的,可以采用反馈模块220来从作者102获得关于生成的布局304的反馈224。反馈模块220可以包括用于处理反馈224的覆盖模块1004,其可以覆盖由作者102最初提供的意图数据116的解释。这种覆盖反馈224可以直接提供给布局生成引擎108并由布局生成引擎108利用,以生成新的布局304或调整已经生成的布局304。
由作者102提供的覆盖反馈224可以包括描述布局的不令人满意的部分和/或在不包括特定格式化指令的情况下应如何修改所述部分的高级反馈。例如,作者102可以在反馈224中指出所生成的布局304出了什么问题。使用图9B中所示的布局作为示例,作者102可以提供反馈224,指示该部分的标题应当更显著。在一些场景中,作者102可以进一步向布局的令人不满意的部分提供示例解决方案。例如,内容数据114可以是公司文档,例如报告或演示,并且作者102可以提供反馈224,指示布局304应该具有与公司徽标中使用的颜色方案一致的颜色方案。作者102可以进一步提供公司标志图像的副本,其可以由布局生成引擎108用来生成或选择布局304的适当颜色方案。应当注意,作者102还可以提供高级反馈224以请求要生成和展现的替代布局304。
在一些场景中,高级反馈可能不足以传达作者102想要递送的信息。在其他场景中,基于高级反馈224的调整或重新生成的布局304可能仍然不能令作者102满意。在任一种情况下,作者102可以提供详细反馈224,其可以包括所涉及的内容数据元素中的至少一些的特定格式化指令。例如,作者102可以在反馈224中指定某一字体大小和颜色应当用于文本块,或者特定页边距应当用于布局304中。
应当意识到,上述示例仅以说明的方式而提供,并且不应被解释为限制。可以由作者102提供各种其他高级或详细反馈224以改进或调整所生成的布局304。还应当意识到,反馈224可以由作者102以多次迭代来提供。例如,如果在当前迭代中基于高级反馈224的调整布局304仍然不令人满意,则可以在下一次迭代中提供详细反馈224。
在一些实现方式中,反馈224可以由作者102通过由反馈模块1004展现的用户界面来提供。用户界面可以提供各种用户界面控件,其可以允许作者102指定布局或呈现内容中的在反馈中引用的部分。例如,作者102可以在用户界面中绘制圆圈以指定布局304的不令人满意的部分。可替代地或者另外地,作者102可能仅需要轻敲或点击相关部分。此外,可以利用本领域中已知的允许作者102上传文件、指定格式化指令和/或执行其他操作的各种机制来促进作者102提供反馈224。应当理解,用于提供反馈224的用户界面可以是与创作用户界面分离的用户界面,诸如图9A所示的创作用户界面900A,或者可以被集成为创作用户界面的一部分。
反馈模块220还可以包括用于处理反馈224的意图改变模块1002,反馈224被转换或可以被转换为意图数据116。意图改变模块1002可以允许作者102提供修改他/她的初始指定意图或添加更多意图数据的意图反馈224。在一些场景中,高级反馈224也可以被转换或表达为意图反馈224。意图反馈224可以被提供给内容/意图引入模块204,以被包括在核心内容数据模型212的意图数据116中。意图反馈224可以由作者102通过创作用户界面提供,或者由覆盖模块1004提供给内容/意图引入模块204。
图11示出了说明用于处理关于基于用户意图数据116生成的布局304的用户反馈224的方法的方面的例程1100。在一些实现方式中,例程1100可以由上文关于图1、图2和图10所描述的反馈模块220执行。然而,应当意识到,例程1100也可以由在图1、图2和图10所示的操作环境中的其他***和/或模块执行。
例程1100在操作1102开始,其中可以获得关于所生成的布局304的反馈224。例程1100然后进行到操作1104,其中可以确定反馈224是否是覆盖反馈,即覆盖用户意图的解释的反馈。例如,布局生成引擎108可以解释“词A比其周围的文本更重要”的用户意图,以将文本A格式化为粗体,并且将其周围的文本格式化为规则字体。关于文本A的覆盖反馈将请求布局生成引擎108不对文本A使用这样的格式。
这种覆盖反馈可以是高级反馈,其中作者102可以指示对文本A添加的强调是不够的。在这种场景中,布局生成引擎108可以利用该反馈来覆盖对用户意图的先前解释,并通过例如进一步放大字体大小、对文本A加下划线和/或使用不同的字体来改变文本A的格式。可替代地,覆盖反馈可以是详细反馈,其中作者102可以指定文本A的特定格式,诸如使用12点Arial Black字体。布局生成引擎108可以利用详细反馈中提供的特定格式化指令来替换文本A的先前格式。
如果在操作1104确定反馈224是覆盖反馈224,则例程1100进行到操作1106,其中可以覆盖先前的意图解释。根据反馈224的性质,如果反馈224是高级反馈,则可以生成新的解释,或者可以利用反馈224中指定的特定格式。
接下来在操作1108中,可以确定反馈224是否在生成布局304时会引起任何冲突。例如,作者102可以提供详细反馈以请求用于图像A的特定尺寸。然而,这种指定的图像大小可以禁止图像A与另一图像B并排展现,如先前由作者102提供的用户意图数据116中所指示的。如果存在冲突,则例程1100进行到操作1112,其中可以请求作者102修改反馈224或意图数据116。如果作者102愿意修改反馈224或意图数据116,则例程1100返回到操作1102。
如果在操作1108确定没有冲突,则例程1100进行到操作1110,其中可以基于覆盖反馈224来重新生成或调整布局304。在一些实现方式中,作者反馈224可以由布局生成引擎108进一步存储和分析。该分析可以便于布局生成引擎108来改进未来创作过程中作者意图的解释。从操作1110或者从确定作者102没有提供修改的反馈224的操作1112,例程1110进行到操作1116,在操作1116例程1110结束。
如果在操作1104中,确定反馈224不是其中作者102可以修改或添加意图数据116的覆盖反馈,例如意图反馈,则例程1100进行到操作1114,其中布局生成引擎108可以基于反馈224来更新布局304,诸如通过根据上面关于图7描述的方法重新生成布局304。从操作1114,例程1100进行到操作1116,在操作1116例程1110结束。
应当理解,图11中所示的方法仅仅是说明性的,并且不应被解释为限制性的。可以使用处理反馈224的各种其他方式。例如,当在操作1108中检测到冲突时,不是请求作者102修改反馈224,布局生成引擎108可以尝试解决冲突并且在请求修改的反馈之前向作者102提供一个或多个解决方案。例如,可以通过稍微改变受影响的用于其他内容数据元素的意图数据116和/或通过稍微修改作者102提供的反馈224来解决冲突。作者102可以选择所提出的解决方案之一或如果他/她对解决方案不满意,则提供修改的反馈224。
图12示出了作为呈现视图900B的修改版本的呈现视图1200。在该示例中,根据关于呈现视图900B中展现的布局的用户反馈224来进行修改。具体地,反馈224包括请求更加显著地展现部分瓦片1204的高级反馈,指定使文本“spring mountain”为粗体的详细反馈,以及还有更加强调文本“I like the most!”的意图反馈。基于反馈224,布局生成引擎108可以采用装饰字体(例如Algerian字体)来展现部分标题;文本1206已经按照反馈224中所请求的被设置为粗体;并且文本1208已经被加下划线并且在它所属的文本块和图像922D之间重新定位。如上所述,如果作者102对更新的呈现视图1200仍然不满意,则他/她可以提供进一步的反馈224以请求对所生成的布局304的更多改变。
如上所概述,本文描述了用于在创作体验期间提供上下文相关内容的动态展现的技术。一般来说,当用户关于主题写作时,分析从用户接收的创作内容以识别可用于识别、检索建议的内容并向用户展现建议的内容的一个或多个关键词。可以从诸如搜索引擎、与用户相关联的数据存储库、社交媒体资源或其他本地或远程文件之类的一个或多个内容资源接收建议的内容。本文所描述的技术还基于光标位置从创作的内容中选择关键词。结果,建议的内容可以随着光标移动到创作的内容中的新位置而改变。另外,本文描述的技术提供允许选择和取消选择一个或多个关键词的用户界面控件,其允许用户通过切换一个或多个控件来定制建议的内容。本文公开的技术和概念可以用于帮助诸如博主的用户关于一个或多个感兴趣的主题进行写作。
图13是示出了可用于实现用于在创作体验期间提供上下文相关内容的动态展现的一个或多个配置的一个说明性操作环境的***图。可以意识到,***1300包括图1中描绘的***100的多个组件。另外,图13示出了***1300,其包括用于接收来自用户计算设备130的输入112(这里也称为“作者输入112”或“内容数据”)的内容/意图引入模块204。***1300还包括用于根据输入112确定一个或多个关键词的内容建议模块1302。内容建议模块1302还被配置为识别并检索建议的内容1304。为了说明的目的,建议的内容1304在本文中也被称为“附加内容数据”。内容建议模块1302还被配置为在作者输入112被修改时识别并检索新的建议的内容1304。内容收集模块206与一个或多个内容资源126、内容建议模块1302和内容/意图引入模块204通信,以将建议的内容1304传送到用户计算设备130。***1300还可以包括用于处理和解释图像的图像分析模块1305。另外,***1300还可以包括如本文所述的用于处理、生成和显示数据的群集检测模块1307。如下面将详细描述的,这些模块协同操作以基于对输入112的改变来动态地识别和显示建议的内容1304。
在一些配置中,输入112可从内容/意图引入模块204传送到内容建议模块1302,在内容建议模块1302中输入112被处理以识别一个或多个关键词。如下面将更详细地描述的,可以通过使用在文本输入字段的特定区域周围定义的窗口来选择一个或多个关键词。在一些配置中,窗口相对于文本输入应用的光标的位置定位在文本输入字段中。然后,内容建议模块1302将所选关键词传送到内容收集模块206,以从一个或多个内容资源126检索建议的内容1304。在一些说明性示例中,内容资源126可以包括搜索引擎、与用户相关联的数据存储库、社交媒体资源或其他本地或远程文件。建议的内容1304和所选关键词中的一个或多个可以从内容建议模块1302传送到内容/意图引入模块204。内容/意图引入模块204可以传送建议的内容1304和所选择的关键词中的一个或多个到用户计算设备130以供显示给作者102。另外,可以将意图数据116、可以包括建议的内容1304的内容数据114传送到布局引擎108以用于进一步处理。
现在转到图14,在下面示出和描述用于在创作体验期间提供上下文相关内容的动态展现的例程1400的各方面。应当理解,本文公开的方法的操作不一定以任何特定顺序展现,并且以替换顺序执行操作中的一些或全部是可能的并且是可预期的。为了便于描述和说明,以示出的顺序展现操作。在不脱离所附权利要求的范围的情况下,可以添加、省略和/或同时执行操作。
如图14所示,例程1400开始于操作1402,其中内容/意图引入模块204获得输入112,这里也称为“输入数据”或“创作的内容”。一般地描述,输入112可以包括诸如文本、图像、图形和/或可以用于创作材料的任何其他数据的任何内容。在一些配置中,当输入112被输入到编辑界面时,输入112可以被同时传送到内容/意图引入模块204。输入112还可以被传送到内容建议模块1302,在内容建议模块1302中,可以在从用户计算设备130接收到输入112时来分析输入112。
在一些配置中,输入112还可以包括定义光标或指针的位置的数据。可以意识到,文本编辑应用可以利用光标来指示当前编辑点。光标可以重新定位到文本的不同位置以向一个或多个期望的编辑点提供添加或编辑。如下面更详细描述的,为了便于在此描述的技术,定义光标相对于其他输入数据(例如文本字符或图像)的位置的数据可以包括在输入112中。如下面将更详细地描述的,光标或指针相对于任何输入内容(诸如文本或图像)的位置可以用于识别输入112的特征,诸如,关键词或上下文相关的元数据。
接下来,在操作1404,内容建议模块1302分析输入112以识别一个或多个特征。一般地描述,特征可以是可以用于从输入112得出上下文的任何类型的信息。在一些配置中,特征可以包括从输入112选择的一个或多个关键词。可以意识到,一个或多个关键词可以通过使用多种不同的算法和技术来识别。例如,如果输入112包括文本段落,则一种或多种技术可以确定某些类型的词可以具有比文本中的其他词更高的优先级。例如,名词或动词可以具有比连词更高的优先级。在其他示例中,可以与用户的简档或可用性历史相关联的词可以具有比其他词更高的优先级。诸如词类型的优先级的一个或多个因素可以用于选择一个或多个关键词。
操作1404还可以分析其他类型的输入数据,例如图像,以确定一个或多个特征。例如,可以分析图像的元数据以提取一个或多个关键词。另外,诸如面部或对象识别技术的其他技术可以用于识别图像的特征,并且这样的技术可以生成描述特征的一个或多个上下文相关的关键词。可以意识到,包括在输入112中的其他形式的媒体,例如视频数据或定义3D环境的数据,也可以被分析以确定特征和/或关键词。
接下来,在操作1406中,内容建议模块1302可以分析光标位置以识别或强调一个或多个特征。可以意识到,编辑界面的光标可以指示当前编辑位置。例如,在用于编辑文本的界面中,光标的位置标识当接收到输入时将***文本或其他对象的位置。还可以意识到,光标可以随着用户添加文本或其他内容而移动。通过使用光标位置来强调特征或关键词,可以在用户添加内容时选择新的特征或关键词。因此,从用户体验的角度来看,向用户显示的建议的内容可以随着内容被添加或者随光标被移动而动态地更新。
可以意识到,操作1406可以与操作1404结合使用,其中光标位置用于强调所选择的关键词。可替代地,操作1406可用于代替操作1404,在操作1404中基于光标位置来选择输入112的关键词和其他特征。还可以意识到,其他可视指示符的位置可以与光标一起使用或替代光标使用。例如,一个或多个关键词的选择或对所选关键词的强调可以基于指针的位置或任何其他用户控制的输入(例如触摸姿势)的位置。操作1406的附加细节和示例在下面更详细地描述并且在图15中示出。
接下来,在操作1408中,***1300基于所识别的特征和/或关键词从一个或多个内容资源126检索建议的内容1304。如上所概述,可以从诸如搜索引擎、与用户相关联的数据存储库、社交媒体资源或其他本地或远程文件之类的一个或多个资源接收建议的内容1304。在一些说明性示例中,可以从个人数据存储检索建议的内容1304,诸如存储在本地设备中的文件或存储在基于服务器的存储服务(例如,GOOGLE DRIVE或DROPBOX)中的文件。在其他说明性示例中,可以从诸如BING或GOOGLE的搜索引擎和/或诸如FACEBOOK、LINKEDIN的一个或多个社交网络和/或任何其他在线服务检索建议的内容1304。本地或基于网络的数据库还可以用作内容资源126。可以意识到,用于利用关键词或特征的已知技术可以用于识别建议的内容1304,对建议的内容1304排序和检索建议的内容1304。在一些配置中,特征可以包括图像数据。在这样的配置中,图像数据可以被传送到一个或多个资源以识别和检索建议的内容1304。这样的配置可以利用已知的图像分析技术来识别和检索建议的内容1304。
接下来,在操作1410中,***1300可以展现建议的内容1304。可以意识到,建议的内容1304的展现可以利用用于显示建议的内容1304或者将建议的内容1304传送给另一计算设备或模块的一种或多种技术。例如,在一些配置中,建议的内容1304可以从内容/意图引入模块204传送到用户计算设备130以显示给作者102。操作1410的附加细节和示例在下面更详细地描述且示出在图15中。
接下来,在操作1412中,***1300可以接收用于选择或取消选择特征和/或关键词的命令。一般地描述,显示建议的内容1304的用户界面还可以显示用于从一个或多个内容资源126检索建议的内容1304的所选关键词或特征。在一些配置中,所选关键词或特征可以被布置在控件(例如,按钮)中,其允许用户切换各个特征或各个关键词的使用。
例如,如果输入112包括通过使用上述技术描述到具有山和湖泊的风景的公园的旅行的文本,则所选择的关键词可以是“公园”、“湖泊”和“山”。假定所选择的关键词用于检索建议的内容1304,在该说明性示例中,***1300可以检索并展现具有与所选关键词相关的元数据的用户的ONEDRIVE或另一网络可访问存储位置中的图像。在该说明性示例中,还假设展现图像的用户界面可以包括“公园”按钮、“湖”按钮和“山”按钮。通过致动每个按钮,可以选择和取消选择各个关键词。因此,通过使用按钮,***1300可以在每个关键词被选择或取消选择时修改建议的内容1304的展现。提供该示例仅用于说明目的,并且不被解释为限制,因为可以使用用于选择和取消选择特征和/或关键词的任何技术。操作1412的附加细节和示例在下面更详细地描述并且在图15中示出。
接下来,在操作1414中,***1300可以从建议的内容1304接收对一个或多个对象的选择,并且将所选内容与输入112组合。一般来说,建议的内容1304可以包括多个对象,例如,图像、文本的部分和/或其他类型的数据。在一个说明性示例中,建议的内容1304可以包括可以在输入112(例如,创作的内容)的显示旁边的用户界面上显示的多个图像。通过使用一个或多个图形用户界面特征,用户可以从建议的内容1304中选择图像中的一个并将所选择的图像***到创作的内容中。在另一示例中,建议的内容1304可以包括文本的部分,该文本的部分可以被选择并放置到创作的内容中。操作1414的附加细节和示例在下面更详细地描述并且在图15中示出。
接下来,在操作1416中,***1300可以获得作者的意图。上面提供了用于获得和处理意图数据116的技术的细节。操作1416可以以类似于图6中所示的例程600的一个或多个操作的方式来配置。如所描述的,存在多种用于处理和传达作者的意图的技术。
接下来,在操作1418中,可以包括建议的内容1304的意图数据116和内容数据114从内容/意图引入模块204传送到布局引擎108,其中所传送的数据以如上所述的方式进行处理。一旦意图数据116和/或内容数据114被传送到布局引擎108,则例程1400在操作1420处终止。
现在参考图15,在下面示出和描述用于接收输入112并显示建议的内容1304A-1304I(在本文统称为并且一般地称为“建议的内容1304”)的输入界面1500。如图所示,界面1500包括用于显示建议的内容1304的内容建议部分1504。此外,界面1500配置有用于接收和显示输入112的编辑部分1505。在一些配置中,由于创作的内容通过用户而输入在编辑部分1505中,所以处理创作的内容以识别一个或多个关键词以识别和显示建议的内容1304。
如上所述,在一些配置中,对诸如关键词的特征的选择可以基于光标1506的位置。在一些配置中,光标1506周围的预定义区域可以用于确定一个或多个所选关键词。为了说明的目的,光标1506周围的预定义区域在这里可以被称为“窗口1508”,其在图15中用虚线表示。因此,当用户输入创作的内容时,窗口1508可以跟随光标,从而向当前编辑位置附近的词提供焦点。本文公开的技术和其他技术可以用于在窗口1508内选择关键词,并且所选择的关键词可以用于获得建议的内容1304。
界面1500还允许用户从内容建议部分1504中选择一个或多个项目,并将所选择的项目***到编辑部分1505中。图15中所示的示例示出了修改的示例,其中三个图像1304A、1304D和1304I被选择并被定位到编辑部分1505中。可以意识到,所选内容的选择和定位可以通过一种或多种已知技术来实现,包括用于允许用户拖放图像或其他内容到期望位置的用户界面特征。
也如上所概述,界面1500可以用建议的内容1304来显示所选择的关键词,例如所选择的特征。参考上述说明性示例,图15示出示例的界面,示出“公园”按钮、“湖”按钮和“山”按钮。通过致动每个按钮,可以选择和取消选择单个关键词。因此,通过使用按钮,***1300可以在每个关键词被选择或取消选择时修改建议的内容1304的展现。如果用户例如致动“山”按钮,则可以去除山的图像或用其他图像替换。
在一些配置中,上述技术可以利用从输入112得出的上下文数据来识别输入的主题,并且基于输入的主题,***识别并检索关于与输入的主题相关的附加主题的内容。在这样的配置中,可以分析输入112,并且***可以生成上下文数据。已知的技术可以用于分析输入112以识别诸如人、地点或事物的对象。描述所识别的主题的数据可以用于识别可以展现给用户的一个或多个相关对象。通过在输入112的输入期间向作者提供附加主题,作者可以及时获得关于可能未被预期的内容的信息。
在一个说明性示例中,作者102可以提供描述伦敦和柏林的历史的输入。在处理这种类型的输入时,内容建议模块1302可以识别和/或生成指示作者102正在关于某个主题(例如,欧洲国家的首都)进行写作的上下文数据。使用上下文数据,***然后可以进一步识别相关主题,诸如其他欧洲国家的首都,诸如罗马或贝尔格莱德。然后可以检索与相关对象相关联的建议的内容,例如图片、文本或其他形式的媒体,并展现给作者102。例如,可以在内容建议部分1504中展现与罗马或贝尔格莱德相关的图片、文本或其他媒体。这样的技术可以通过在用户创作文档时提供上下文相关的话题来增强作者的用户体验。
除了识别相关对象,在一些配置中,上述技术可以利用从输入112得出的上下文数据来确定可用于检索建议的内容1304的查询的类型。在这样的配置中,可以分析输入112,并且内容建议模块1302可以生成查询以从内容资源126检索上下文相关的数据。
在一个说明性的示例中,作者102可以以陈述“Brad Pitt与他的孩子做许多活动”的句子的形式提供输入112。从这种类型的输入,***可以处理输入112并识别特定的话题。例如,内容建议模块1302可以解释该样本输入,并确定它与Brad Pitt的个人生活相关。内容建议模块1302然后可以基于Brad Pitt的个人生活(例如爱好,活动等)来展现建议的内容1304。这样的技术允许内容建议模块1302检索与作者的内容上下文相关的建议的内容1304。例如,通过使用本文所描述的技术,关于Brad Pitt的个人生活的样本输入可能不产生关于Brad Pitt的电影或职业的建议的内容1304。
在另一个说明性的示例中,考虑其中作者正在写关于“在他们的新林肯中开车”的概要的输入112。当通过***获得这样的输入时,本文描述的技术可以用于生成指示作者正在描述汽车而不是前总统的上下文数据。相反,如果输入112包括语句,例如“Lincoln出生于2月12日”,则***可以分析该输入并生成指示作者正在写关于前总统的上下文数据。上下文数据可以用于构建检索与作者的内容上下文相关的建议的内容1304的查询。
如上所概述,用于检索建议的内容1304的关键词可以基于光标位置。在一些配置中,除了使用光标位置之外,选择关键词的过程可以基于作者提供作为输入112的内容的结构。一般地描述,输入112可以包括一个或多个元素,诸如换行符、部分标头、标题或其他格式化特征。本文描述的技术可以解释输入的这些元素以选择用于获得建议的内容1304的一个或多个关键词。
在一个说明性的示例中,考虑包括标题、部分标题和多个段落的输入。在本示例中,第一段落描述了巴黎的特定网站,而第二段落描述了伦敦的特定网站。如果作者当前正在第二段落中输入文本,则基于诸如换行符的文档元素,***可以确定第二段落中的关键词比第一段落中的关键词更相关。因此,在该示例中,用于检索建议的内容1304的所选关键词可以更加集中于与伦敦和伦敦的网站相关的关键词。可以意识到,在一些实现方式中,这样的技术可以涉及生成输入的树结构。树结构可以基于输入的一个或多个元素,诸如标题、部分标题、换行符、格式化指示符或其他特性。使用光标的位置,或者甚至不使用光标的位置,可以基于树结构(例如,输入112的结构)来选择关键词。在不使用光标的位置的配置中,关键词可以是基于树的最近输入的元素、关键词之间的间隔或考虑树的结构的任何其它技术来选择。
如上所述,本文描述了用于基于用户输入来生成样本创作的内容的技术。一般地描述,样本内容(例如主题的概要)可以从用户提供的一个或多个关键词的上下文解释中生成。使用一个或多个关键词,***从一个或多个资源检索内容数据。内容数据被解析并用于生成内容数据的结构。然后该结构用于生成可以展现给用户的样本内容。所展现的信息可以提供一种用于快速启动关于感兴趣的特定主题的创作项目的方式。
本文公开的技术和概念可以用于帮助用户(例如,学生、业余博主)关于一个或多个感兴趣的主题进行写作。在一些说明性的示例中,本文所公开的技术可以解释诸如使用一个或两个关键词的最小输入来编译信息并且从一个或多个资源(诸如Wiki、来自YOUTUBE的视频、来自BING NEWS的新闻文章或来自其他资源的其他内容)来构建结构化概要。传送给用户的输出可以包括建议的内容的结构,诸如标题、部分标题和样本句子。输出的结构可以来自信号资源,诸如来自WIKIPEDIA的文章,或者该结构可以是来自许多资源的信息的聚合,包括来自一个或多个用户的输入。另外,可以确定和处理描述关系类型的数据以创建结构。
图16是示出了可用于实现用于基于用户输入来生成样本创作的内容的一个或多个配置的一个说明性操作环境的***图。可以意识到,***1600包括图1中描绘的***100的多个组件,其细节在上面描述。另外,图16示出了***1600包括用于将输入数据和样本内容与计算设备(例如用户计算设备130)通信的内容/意图引入模块204。***1600还包括冷启动模块1606用于处理输入数据以确定一个或多个内容资源126并从内容资源126接收相关内容1604。此外,冷启动模块1606处理相关内容1604以确定样本内容1610的结构。如将详细说明的,这些模块协同操作以基于诸如一个或多个关键词1602的输入来生成样本内容1610并将样本内容1610递送到用户计算机设备130。
在一些配置中,用户计算设备130提供传送到内容/意图引入模块204的一个或多个关键词1602,并且内容/意图引入模块204将一个或多个关键词1602传送到冷启动模块1606。冷启动模块1606然后处理关键词1602以确定实体类型。冷启动模块1606然后利用关键词1602和/或定义实体类型的数据来选择一个或多个内容资源126。然后,内容收集模块206将一个或多个查询传递到所选择的内容资源126,以获得相关内容1604。如上所概述,所选的内容资源126的示例可以包括Wiki站点、文章的数据库、视频的数据库或包含可搜索信息的其他资源。一旦内容收集模块206获得相关内容1604,则将相关内容1604传送到冷启动模块1606,在冷启动模块1606中,相关内容1604被处理以确定用于输出(例如,样本内容1610)的结构。内容/意图引入模块204可以将样本内容1610传送到用户计算设备130以展现给作者102。另外,内容/意图引入模块204可以将内容数据114和意图数据116传送到布局引擎108,用于进一步处理,这在上文进行了说明并在图6中示出。
现在转到图17,以下示出并描述了用于基于用户输入生成样本内容1610的例程1700的各方面。应当理解,本文公开的方法的操作不一定以任何特定顺序展现,并且以替换顺序执行操作中的一些或全部是可能的并且是可预期的。为了便于描述和说明,以示出的顺序展现操作。在不脱离所附权利要求的范围的情况下,可以添加、省略和/或同时执行操作。
如图17所示,例程1700开始于操作1702,其中内容/意图引入模块204获得输入,该输入可以是一个或多个关键词1602的形式。在一些配置中,一个或多个关键词1602由内容/意图引入模块204接收并传送到冷启动模块1606以用于进一步处理。在一个说明性的示例中,在操作1702,输入可以包括单个关键词,诸如“内布拉斯加(Nebraska)”。可以理解,输入可以包括多于一个关键词。然而,本文展现的技术可以基于一个或两个关键词来提供相关内容数据114。还可以意识到,输入可以是其他形式。例如,用户可以提供一个或多个图像作为输入。可以分析一个或多个图像或任何其他接收到的数据以生成一个或多个关键词,或者图像或其他数据可以用作搜索标准。
接下来,在操作1704中,冷启动模块1606处理输入(例如,一个或多个关键词1602)以检测一个或多个实体。一般来说,为了检测实体,冷启动模块1606解释输入并确定一个或多个关键词1602的上下文含义。在一些配置中,一个或多个关键词1606的解释可涉及识别实体类型的过程。实体类型例如可以是州、城市、人或与人、地点、对象或主体相关联的任何类别的信息。提供这些示例是为了说明的目的,而不应解释为限制。参考本示例,在输入是关键词“内布拉斯加”的情况下,冷启动模块1606可以在操作1704中确定关键词与被表征为“州”的实体类型相关联。在操作1704中识别一个或多个实体之后,如下所述,定义实体类型的数据和一个或多个关键词1602可以用于识别一个或多个内容资源。
在一些配置中,一个或多个内容资源126可以用于检测和标识实体类型和/或实体。在这样的配置中,关键词1602可以被传送到一个或多个内容资源126,例如BING、GOOGLE、***(WIKIPEDIA)或被配置为接收输入并基于输入来生成内容的任何其他内容资源。可以意识到,从一个或多个内容资源126接收的任何内容可以被解释和处理以识别实体和/或实体类型。还可以意识到,来自一个资源的结果可以用于识别实体和/或实体类型。此外,可以意识到,可以聚合来自多个资源的结果以识别实体和/或实体类型。
接下来,在操作1706中,冷启动模块1606基于实体类型和/或一个或多个关键词1602来识别内容资源126。在一些配置中,冷启动模块1606可以存储将实体类型关联到一个或多个资源的数据。例如,如果实体类型是诸如城市或州的位置,则冷启动模块1606可以将该实体类型与诸如WIKIPEDIA、在线百科全书或另一内容资源的特定内容资源相关联。可以意识到,提供这些示例内容资源仅用于说明目的,而不应被解释为限制。在本示例中,实体类型“位置”可以用关键词“Nebraska”标识,并且利用该实体类型,内容收集模块206可以将WIKIPEDIA识别为所选内容资源126之一。在识别一个或多个所选内容资源126时,描述所选内容资源126的标识的数据可以被传送到内容收集模块206。
接下来,在操作1708中,内容收集模块206使用所选内容资源126的标识从所选内容资源126获得相关内容1604。在操作1708中,例如,内容收集模块206可以引导查询到所选内容资源126以获得相关内容1604。为了说明的目的,相关内容1604在这里也被称为“内容数据”。在一个说明性示例中,针对所选内容资源126的查询可以包括描述实体类型和/或关键词1602的数据。可以意识到,传送到内容资源126的查询可以是任何形式,并且查询可以包括伴随或替换一个或多个关键词1602和/或实体类型的信息或数据。在一个说明性示例中,对内容资源126的查询可以是指向所选内容资源126的URL。URL可以包括一个或多个关键词1602和/或实体类型和/或与关键词1602相关的其他上下文信息。
响应于查询,所选内容资源126可以将相关内容1604返回到内容收集模块206。在当前示例中,基于关键词“Nebraska”和实体类型,内容资源126(在该示例中是WIKIPEDIA)可以以Web页面的形式返回相关内容1604。可以意识到,相关内容1604可以是任何格式,例如标记文档、WORD文档或数据库文件。一旦接收到相关内容1604,内容收集模块206可以将相关内容1604传送到冷启动模块1606,在冷启动模块1606中相关内容1604被进一步处理。
接下来,在操作1710中,冷启动模块1606可以通过分析相关内容1604的结构元素来生成样本内容1610的结构。一般地描述,可以从任何所接收内容的分析所导出的相关内容1604和/或其他上下文信息的结构被用于生成样本内容1610的结构。例如,相关内容1604中的标题或标头标签可以用于标识具有提高的优先级的文本,例如指示主题、子主题或需要部分标题的文本。这样的文本可以与样本内容1610中的一个或多个结构元素(例如,部分标题)相关联。在其他示例中,增加的字体大小或粗体文本可以用于标识具有提高的优先级的文本。可以意识到,任何接收到的内容(诸如相关内容1604)内的任何数据类型或格式化指示符可以用作识别样本内容1610的结构元素的基础。为了说明的目的,样本内容1610在本文中称为“样本内容数据”。
除了诸如标题或部分标题的结构元素的识别之外,本文公开的技术可以识别和利用来自相关内容1604和/或任何接收内容的样本句子。一般来说,样本句子可用于通过提供一个或多个主题或部分的初始内容来帮助作者启动撰写。例如,在一些配置中,当识别出主题或子主题时,冷启动模块1606可以提取与主题或子主题相关的一个或两个简单句子,诸如在标头或标题之后的句子。结果,在操作1710中生成的样本内容1610和/或内容数据114可以包括具有标题、部分标题和样本句子的结构。
除了分析相关内容1604的结构元素以确定样本内容1610的结构的结构之外,内容可以由冷启动模块1606生成。生成的内容,例如标题、部分标题和/或样本句子可以用于补充从相关内容1604获得的上述结构元素和样本句子。可替代地,所生成的内容可以单独使用或与其他收集的信息结合使用。可以意识到,所生成的内容可以从搜索查询、存储的数据、历史使用信息或由***1600获得的其他数据中导出。
参考涉及“内布拉斯加”查询的当前示例,相关内容1604可以是从WIKIPEDIA返回的Web页面的形式。标签、定义数据类型的数据、格式化数据和/或Web页面的其他元数据可以用作确定样本内容1610的结构的基础。在该示例中,生成的样本内容1610可以将输入“内布拉斯加”布置作为标题。此外,在该示例中,假定相关内容1604包含粗体标题中的多个词:概要(Synopsis)、关于内布拉斯加的新闻(News on Nebraska)、地理(Geography)和经济(Economy)。另外,在该示例中,假定相关内容1604包含在每个加粗体标题之后的几个句子。给定相关内容1604的该示例结构,所生成的样本内容1610可以具有这样的结构:具有标题(内布拉斯加)、部分标题(Synopsis、News on Nebraska、Geography和Economy)和样本句子。本示例的其他细节和操作1710的其它细节在下面提供并且在图18中示出。
如可以意识到的,尽管结构元素(例如标签、数据类型和其他信息)可以用于确定样本内容1610的结构,但是可以使用用于识别结构和相关信息的任何方法。例如,如果相关内容1604是图像或视频的形式,则任何图形展现的文本和使呈现的文本突出显示的其他可视指示符的格式可以被解释为标识一个或多个结构元素。
再次返回到图17,例程1700在操作1712处进行,其中***1700生成意图数据116。在上面的描述中提供了用于处理意图数据的技术的细节,意图数据也被称为“用户意图”。也如上所概述的,在一些配置中,在本文中也被称为“意图”或“指示意图的数据”的意图数据116可以强调或优先化文本的某些主题或部分。另外,意图数据116还可以指示内容的预期用途,诸如被发布为在线公布的博客文章、要在报纸中印出的文章、展现给消费者的待发布视频以及其他用途。如上所述,意图可以影响由布局生成引擎108产生的输出的生成。还如上所述,意图可以从多个源中导出。例如,意图可以基于对样本内容1610和/或相关内容1604的结构的解释。
在一些配置中,一种类型的意图可以基于与一个或多个词或短语相关联的优先级。例如,参考涉及“内布拉斯加”查询的当前示例,与标题相关联的文本可以具有比与部分标题相关联的文本更高的优先级。类似地,在另一示例中,部分标题可以具有比样本句子更高的优先级。如上所概述,定义一个或多个优先级的数据(例如意图)可以由布局引擎108使用以用于进一步处理模型。如上文所述,在包括图10的描述的许多部分中,意图数据116可以用其它方式来处理。例如,作者可以提供到来自源的格式化内容分离成内容存储库和类同库(其捕获意图)的方式的改变。
接下来,在操作1714中,意图数据116和内容数据114可以从内容/意图引入模块204传送到布局引擎108。如上所述,布局引擎108可以多种不同的方式处理意图数据116和/或内容数据114,其细节在上面提供。除了与布局引擎108进行数据通信之外,可以使用一个或多个界面在显示设备上向用户展现内容数据114。一旦将意图数据116和/或内容数据114传送到布局引擎108,例程1700在操作1716处终止。
如上所概述,参考操作1710,本文描述的技术可以生成样本内容1610。在一些配置中,冷启动模块1606可以分析相关内容1604以导出与相关内容1604相关的上下文信息。在一个说明性的示例中,对相关内容1604的分析可以识别一个或多个实体,诸如人、地点或对象。另外,对相关内容1604的分析可以识别具有与所识别的实体的一个或多个关联的相关实体。例如,相关内容1604的上下文分析可以识别第一实体,诸如人,以及相关实体,诸如该人的配偶。根据该信息,冷启动模块1606可以生成附加内容,诸如部分标头、标题、样本句子或描述任何所识别的实体和/或相关实体的任何其它内容。
在一个说明性的示例中,如果用户输入包含字符串“Brad Pitt”的输入,则冷启动模块1606可以将演员(actor)识别为一个实体。此外,冷启动模块1606可以分析相关内容1604并识别相关实体,诸如家庭成员。基于导出的上下文信息,冷启动模块1606可以生成附加的部分标题,例如关于配偶、每个孩子或其他家庭成员的部分标题。另外,冷启动模块1606可以生成另外的样本句子。可以意识到,冷启动模块1606可以聚合和/或修改检索到的内容。因此,可以生成新的结构元素和/或内容。
在操作1710的一些配置中,冷启动模块1606可以被配置为对从相关内容1606导出的结构进行随机化。例如,参考涉及内布拉斯加查询的上述示例,涉及概要、城市&州的现有结构可能改变成不同的结构。例如,可以重新布置、重新编写或以其它方式修改部分标头,以在每次使用相同输入时不同地显现。可以意识到,考虑到输出将被用作创作工具,使输出的结构随机化的过程可能是有益的。这样的特征允许***1700适应大量用户,而无需针对每个用户创建具有相同结构的样本数据。
现在参考图18,下面示出和描述了用于接收输入的输入界面1800。如图18所示,输入界面1800配置有用于接收诸如文本输入的输入的字段1802。可以意识到,字段1802可以被配置为接收和编辑文本和其他形式的数据。另外,输入界面1800可以被配置为向内容/意图引入模块204传送文本和其他形式的数据。输入界面1800还可以配置有一个或多个控件,例如“生成”按钮1804。当生成按钮1804被调用时,来自字段1802的数据或文本可以从界面1800传送到内容/意图引入模块204以进行处理。
图18还示出了被配置为显示数据或信息(诸如样本内容1610)的显示界面1801。当应用于涉及“内布拉斯加”查询的当前示例时,显示界面1800被配置为显示在操作1710中生成的样本内容1610。如图所示,显示界面1801显示标题1806、部分标题(1808A-1808D)和相关样本句子(1810A-1810C)的列表。显示界面1801可以被配置为与内容/意图引入模块204进行文本和其他形式的数据通信。另外,显示界面1801可以被配置为显示图像1812,其可以由样本内容1610或任何其他资源或模块来提供。另外,显示界面1801可以被配置为允许用户编辑所显示的内容,诸如文本或图像。例如,用户可以编辑标题、一个或多个部分标题、一个或多个样本句子或一个或多个图像。
图19示出了能够执行程序组件的计算机的示例性的计算机架构1900的附加的细节,所述程序组件如本文所描述的用于提供用于基于用户意图生成用于内容数据的布局的内容创作服务。因此,图19所示的计算机架构1900可以图示出服务器计算机、移动电话、PDA、智能电话、桌面型计算机、上网本计算机、平板式计算机和/或膝上型计算机的架构。计算机架构1900可用于执行本文展现的软件组件的任意方面。
图19所示的计算机架构1900包括中央处理单元1902(“CPU”)、包括随机存取存储器1906(“RAM”)和只读存储器(“ROM”)1908的***存储器1904以及将存储器1904与CPU1902耦合的***总线1910。包含了例如在启动期间帮助在计算机架构1900内的元件之间传输信息的基本例程的基本输入/输出***存储在ROM 1908中。计算机架构1900还可以包括大容量存储设备1912,其用于存储操作***1918,以及一个或多个应用程序,其包括但不限于布局生成引擎108、内容收集/生成模块106和web浏览器应用1910。
大容量存储设备1912通过与总线1910连接的大容量存储控制器(未示出)来与CPU1902连接。大容量存储设备1912及其相关联的计算机可读介质提供了用于计算机架构1900的非易失性存储。虽然在本文所包含的计算机可读介质的描述是指大容量存储设备,如固态驱动器、硬盘或CD-ROM驱动器,但是本领域技术人员应当意识到计算机可读介质可以是能够由计算机架构1900访问的任何可用的计算机存储介质或通信介质。
通信介质可包括计算机可读指令、数据结构、程序模块、或调制数据信号中的其它数据如载波或其他传输机制,并且包括任何输送介质。术语“调制数据信号”是指其一个或多个特性以将信息编码到信号中的方式进行设定或改变的信号。通过示例而不是限制的方式,通信介质可以包括诸如有线网或直接连线连接的有线介质以及诸如声波、RF、红外和其他无线介质的无线介质。上述任意的组合也应当包含在计算机可读介质的范围内。
通过举例而不是限制的方式,计算机存储介质可以包括以用于诸如计算机可读指令、数据结构、程序模块或其它数据的信息的存储的任何方法或技术实现的易失性和非易失性的、可移动和非可移动的介质。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪速存储器或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、BLU-RAY或其它光学存储、磁盒、磁带、磁盘存储或其它磁存储设备、或者能够用于存储所需的信息且能够由计算机架构1900访问的任何其它介质。为了权利要求的目的,短语“计算机存储介质”或“计算机可读存储介质”及其变化形式本身不包含波、信号和/或其它暂态的和/或无形的通信介质。
根据各个配置,计算机架构1900可以通过网络1056和/或另一网络(未示出)利用到远程计算机的逻辑连接而操作于网络环境中。计算机架构1900可以通过与总线1910连接的网络接口单元1914而连接到网络1056。应当意识到,网络接口单元1914可以用来连接到其它类型的网络以及远程计算机***。计算机架构1900还可以包括用于接收和处理来自包括键盘、鼠标或电子指示笔(图8中未示出)的多个其它设备的输入的输入/输出控制器1916。类似地,输入/输出控制器1916可以提供输出给显示屏、打印机或其它类型的输出设备(图8中未示出)。
应当意识到,本文所描述的软件组件在加载到CPU 1902中且执行时可以将CPU1902和整个计算机架构1900从通用计算***变换成经定制而促进本文展现的功能的专用计算***。CPU 1902可以由任意数量的晶体管或其它离散电路元件构成,这些晶体管和离散电路元件可以单独地或者统一地设想任意数量的状态。更具体地,CPU 1902可以响应于包含在本文公开的软件模块内的可执行指令而作为有限状态机来操作。这些计算机可执行指令可以通过指定CPU 1902如何在状态之间转变而变换CPU 1902,从而变换构成CPU 1902的晶体管或其它离散硬件元件。
对本文展现的软件模块进行编码也可以变换本文展现的计算机可读介质的物理结构。在本说明书的不同的实现方式中,物理结构的具体的变换可以取决于各种因素。这些因素的示例可以包括但不限于用来实现计算机可读介质的技术,计算机可读介质是表征为主存储还是辅存储,等等。例如,如果计算机可读介质实现为基于半导体的存储器,则本文公开的软件可以通过变换半导体存储器的物理状态而编码到计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器、或其它离散电路元件的状态。软件还可以变换这些组件的物理状态从而在其中存储数据。
作为另一示例,本文所公开的计算机可读介质可以利用磁或光技术来实现。在这些实现方式中,当软件编码到其中时,本文所展现的软件可以变换磁或光介质的物理状态。这些变换可以包括改变在给定的磁介质内的特定位置的磁特性。这些变换还可以包括改变在给定的光介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。物理介质的其它变换是可能的,不偏离本说明书的范围和主旨,提供了上述示例仅为了利于该论述。
根据上述,应当意识到,许多类型的物理变换可以发生在计算机架构1900内从而存储和执行本文展现的软件组件。还应当意识到,计算机架构1900可以包括其它类型的计算设备,包括手持式计算机、嵌入式计算机***、个人数字助理以及本领域技术人员所知的其它类型的计算设备。还可想到,计算机架构1900可以不包括图19所示的全部组件,可以包括图19中未明确示出的其它组件,或者可以使用完全不同于图19所示的架构。
图20描绘了能够执行本文所述的用于提供基于用户意图的内容创作以及其它方面的软件组件的示例性的分布式计算环境2000。因此,图20所示的分布式计算环境2000能够用于执行本文展现的软件组件的任意方面。例如,分布式计算环境2000可用于执行内容收集/生成模块106、布局生成引擎108和/或本文所述的其它软件组件的各方面。
根据各个实现方式,分布式计算环境2000包括操作于网络2004上、与网络2004通信或者作为网络2004的部分而操作的计算环境2002。网络2004可以是或者可以包括网络124,如上文参考图19所说明的。网络2004还可以包括各种接入网络。一个或多个客户端设备2006A-2006N(下文统一地和/或一般地称为“客户端2006”)能够经由网络2004和/或其它连接(图20中未示出)与计算环境2002通信。客户端2006可以包括用户计算设备130和/或呈现设备110。在一个图示的配置中,客户端2006包括计算设备2006A,诸如膝上型计算机、桌面型计算机或其它计算设备;片式或平板式计算设备(“平板计算设备”)2006B;移动计算设备2006C,如移动电话、智能电话或其它移动计算设备;服务器计算机2006D;和/或其它设备2006N。应当理解的是,任意数量的客户端2006能够与计算环境2002通信。本文参考图19和图21描述了和图示出客户端2006的两个示例的计算架构。应当理解的是,图示的客户端2006和本文所图示和描述的计算架构是示例性的,而不应解释为以任何方式限制。
在图示的配置中,计算环境2002包括应用服务器2008、数据存储装置2010以及一个或多个网络接口2012。根据各个实现方式,应用服务器2008的功能可以由作为网络2004的部分执行或者与网络2004通信的一个或多个服务器计算机来提供。应用服务器2008能够托管各种服务、虚拟机、端口和/或其它资源。在图示的配置中,应用服务器2008托管了用于托管应用或其它功能的一个或多个虚拟机2014。根据各个实现方式,虚拟机2014托管了用于基于用户意图的内容创作的一个或多个应用和/或软件模块。应当理解的是,该配置是示例性的,而不应解释为以任何方式限制。应用服务器2008还托管或提供对一个或多个端口、链接页面、Web站点和/或其它信息(“Web端口”)2016的接入。
根据各个实现方式,应用服务器2008还包括一个或多个邮箱服务2018和一个或多个消息传递服务2020。邮箱服务2018可以包括电子邮件(“email”)服务。邮箱服务2018还可以包括各种个人信息管理(“PIM”)服务,包括但不限于日历服务、通讯录管理服务、协作服务和/或其它服务。消息传递服务2020可以包括但不限于即时消息传递服务、聊天服务、论坛服务和/或其它通信服务。
应用服务器2008还可以包括一个或多个社交联网服务2022。社交联网服务2022可以包括各种社交联网服务,包含但不限于用于共享或张贴状态更新、即时消息、链接、照片、视频和/或其它信息的服务;用于评论或显示对文章、产品、博客或其它资源的兴趣的服务;和/或其它服务。在一些配置中,社交联网服务2022由如下提供或包含如下:FACEBOOK社交联网服务、LINKEDIN专业联网服务、MYSPACE社交联网服务、FOURSQUARE地理联网服务、YAMMER办公同事联网服务,等等。在其它配置中,社交联网服务2022由可能或可能没有明确地表明为社交联网提供商的其它服务、站点和/或提供商来提供。例如,一些web网站允许用户在各种活动和/或上下文中经由电子邮件、聊天服务和/或其它手段彼此交互,例如,阅读出版物、评论商品或服务、发布、协作、游戏等。这些服务的示例包括但不限于来自华盛顿埃德蒙顿的微软公司的WINDOWS LIVE服务和XBOX LIVE服务。其它服务是可能的且可想到。
社交联网服务2022还可以包括评论、发博客和/或微博服务。这些服务的示例包括但不限于,YELP评论服务、KUDZU审阅服务、YAMMER企业微博服务、TWITTER消息传递服务、GOOGLE BUZZ服务和/或其它服务。应当意识到,上述服务列表不是穷尽的,而且为了简要起见在此没有提到过多的附加的和/或可替代的社交联网服务2022。因此,上述配置是示例性的,而不应解释为以任何方式进行限制。根据各个实现方式,社交联网服务2022可以托管用于提供本文所述的用于优化媒体的视觉角度的功能的一个或多个应用和/或软件模块。例如,应用服务器2008中的任意一个可以传送或利于本文所述的功能和特征。例如,运行于电话或任何其它客户端2006上的社交联网应用、邮箱客户端、消息传递客户端或浏览器可以与联网服务2022通信且促进上文结合图3所描述的功能(即使是部分地)。
如图20所示,应用服务器2008还能够托管其它服务、应用、端口和/或其它资源(“其它资源”)2024。其它资源2024可以包括但不限于图像处理功能。因此,应当意识到计算环境2002能够提供本文所提供的公开的概念和技术与各种邮箱、消息传递、社交联网和/或其它服务或资源的整合。
如上所述,计算环境2002可以包括数据存储装置2010。根据各个实现方式,数据存储2010的功能由操作于网络2004上或者与网络2004通信的一个或多个数据库来提供。数据存储2010的功能还能够由被配置成托管用于计算环境2002的数据的一个或多个服务器计算机来提供。数据存储装置2010可以包括、托管或提供一个或多个真实的或虚拟的数据存储数据存储2026A-2026N(下文统一地和/或一般地称为“数据存储2026”)。数据存储2026被配置成托管由内容创建应用813所使用或创建的数据和/或其它数据。虽然图20中未示出,但是数据存储2026还能够托管或存储图像、数据结构、推荐引擎执行的算法、和/或内容创建程序或另一模块(例如,程序模块108)所使用的其它数据。数据存储2026的方面可以与例如ONEDRIVE、DROPBOX或GOOGLEDRIVE的服务相关联。
计算环境2002能够与网络接口2012通信或者由网络接口2012访问。网络接口2012可以包括用于支持包括但不限于客户端2006和应用服务器2008在内的两个或更多个计算设备之间的通信的各种类型的网络硬件和软件。应当意识到,网络接口2012还可以用来连接到其它类型的网络和/或计算机***。
应当理解的是,本文所描述的分布式计算环境2000能够为本文所描述的软件元件的任意方面提供能够被配置成执行本文公开的软件组件的任意方面的任意数量的虚拟计算资源和/或其它分布式计算功能。根据本文公开的概念和技术的各个实现方式,分布式计算环境2000将在本文描述为服务的软件功能提供给客户端2006。应当理解的是,客户端2006可以包括真实的或虚拟的机器,包括但不限于服务器计算机、web服务器、个人计算机、移动计算设备、智能电话和/或其它设备。因此,本文所公开的概念和技术的各种配置使得被配置成访问分布式计算环境2000的任何设备能够使用本文所描述的用于优化媒体的视觉角度以及其它方面的功能。在一个具体的示例中,如上文所概述的,本文所述的技术可以至少部分地通过与图20的应用服务器2008协作的图19的web浏览器应用1910来实现。
现在转到图21,能够执行本文所描述的用于优化媒体的视觉角度的各种软件组件的计算设备的示例性的计算设备架构2100。计算设备架构2100能应用于部分地由于形状因数、无线连接能力和/或电池供电操作而促进移动计算的计算设备。在一些配置中,计算设备包括但不限于移动电话、平板式设备、片式设备、便携式视频游戏设备等。计算设备架构2100能应用于图20所示的任意客户端2006。此外,计算设备架构2100的方面可以应用于传统的桌面型计算机、便携式计算机(例如,膝上型设备、笔记本设备、超级便携式设备和上网本)、服务器计算机和其它计算机***,如本文参考图19所描述的。例如,下文所公开的单触摸和多触摸方面可应用于使用触摸屏的桌面型计算机或某种其它触摸使能设备,诸如触摸使能跟踪垫或触摸使能鼠标。
图21所示的计算设备架构2100包括处理器2102、存储器组件2104、网络连接组件2106、传感器组件2108、输入/输出组件2110和电力组件2112。在图示的配置中,处理器2102与存储器组件2104、网络连接组件2106、传感器组件2108、输入/输出(“I/O”)组件2110和电力组件2112通信。虽然没有示出图21所示的各个组件之间的连接,但是该组件能够交互而实施设备功能。在一些配置中,组件被配置成经由一个或多个总线(未示出)通信。
处理器2102包括中央处理器(“CPU”),其被配置成处理数据,执行一个或多个应用程序的计算机可执行指令,并且与计算设备架构2100的其它组件通信从而实施本文所描述的各种功能。处理器2102可以用来执行本文所呈现的软件组件的方面,尤其是那些至少部分地使用触摸使能输入的方面。
在一些配置中,处理器2102包括图形处理单元(“GPU”),其被配置成加速CPU所执行的操作,包括但不限于,通过执行通用科学和/或工程计算应用所实施的操作,以及诸如高分辨率视频(例如,720P,1080P和更大分辨率)、视频游戏、三维(“3D”)建模应用等图形密集计算应用。在一些配置中,处理器2102被配置成与分立的GPU(未示出)通信。在任何情况下,CPU和GPU可以依照协同处理的CPU/GPU计算模型来配置,其中应用的顺序的部分在CPU上执行,并且计算密集部分由GPU来加速。
在一些配置中,连同下文所描述的其它组件中的一个或多个一起,处理器2102是片上***(“SoC”)或者包含在SoC中。例如,SoC可以包括处理器2102、GPU、网络连接组件2106中的一个或多个以及传感器组件2108中的一个或多个。在一些配置中,处理器2102部分地利用封装上封装“PoP”集成电路封装技术来制作。而且,处理器2102可以是单核或多核处理器。
处理器2102可以依照自英国剑桥的ARM HOLDINGS许可使用的ARM架构来创建。可替代地,处理器2102可依照x86架构来创建,例如可从加利福尼亚山景城的因特尔公司以及其它获得。在一些配置中,处理器2102是可从加利福尼亚的圣地牙哥的QUALCOMM得到的SNAPDRAGON SoC、可从加利福尼亚的圣塔克拉拉的NVIDIA得到的TEGRA SoC、可从韩国首尔的三星公司得到的HUMMINGBIRD SoC、可从德克萨斯州的达拉斯的德州仪器得到的OpenMultimedia Application Platform("OMAP")SoC、上述SoC中的任一个的定制版本或专有SoC。
存储器组件2104包括随机存取存储器(“RAM”)2114、只读存储器(“ROM”)2116、集成存储存储器(“集成存储”)2118和可移除存储存储器(“可移除存储”)2120。在一些配置中,RAM 2114或其部分、ROM 2118或其部分和/或RAM 2114和ROM 2118的某种组合集成到处理器2102中。在一些配置中,ROM 2118被配置成存储固件、操作***或其部分(例如,操作***内核)和/或从集成存储2118或可移除存储2120装载操作***内核的引导加载程序。
集成存储2118可以包括固态存储器、硬盘或固态存储器和硬盘的组合。集成存储2118可以钎焊到或以其它方式连接到逻辑板上,处理器2102以及本文所描述的其它组件也可以连接到该逻辑板上。因此,集成存储2118集成到计算设备中。集成存储2118被配置成存储本文所描述的操作***或其部分、应用程序、数据和其它软件组件。
可移除存储2120可以包括固态存储器、硬盘或固态存储器和硬盘的组合。在一些配置中,可移除存储2120被提供以取代集成存储2118。在其它配置中,可移除存储2120被提供作为附加的可选存储。在一些配置中,可移除存储2120与集成存储2118逻辑地组合而使得总可用存储可用作为总组合存储容量。在一些配置中,向用户显示集成存储2118和可移除存储2120的总组合容量,而不是集成存储2118和可移除存储2120的单独的存储容量。
可移除存储2120被配置成***可移除存储存储器槽(未示出)或其它机构,可移除存储2120***可移除存储存储器槽或其它机构且紧固到其上以利于可移除存储2120能够借以与诸如处理器2102的计算设备的其它组件通信的连接。可移除存储2120可以嵌入各种存储器卡形式中,包括但不限于,PC卡、CompactFlash卡、记忆棒、安全数字(“SD”)、迷你SD(miniSD)、微型SD(microSD)、通用集成电路板(“UICC”)(例如,订阅者身份模块(“SIM”)或通用SIM(“USIM”))、专有形式,等等。
可以理解的是,存储器组件2104中的一个或多个能够存储操作***。根据各个配置,操作***包括但不限于来自塞班公司的SYMBIAN OS、来自华盛顿雷德蒙顿的微软公司的WINDOWS MOBILE OS、来自微软公司的WINDOWS PHONE OS、来自微软公司的WINDOWS、来自加利福尼亚的帕罗奥图的惠普公司的PALM WEBOS、来自加拿大多伦多的Research inMotion Limited of Waterloo的BLACKBERRY OS、来自加利福尼亚的库比蒂诺的苹果公司的IOS以及来自加利福尼亚的山景城的谷歌公司的ANDROID OS。可想到其它操作***。
网络连接组件2106包括无线广域网组件(“WWAN组件”)2122、无线局域网组件(“WLAN组件”)2124以及无线个域网组件(“WPAN组件”)2126。网络连接组件2106利于从和向网络2156或另一网络的通信,网络可以是WWAN、WLAN或WPAN。虽然仅示出了网络2156,但是网络连接组件1006可促进与多个网络的同时通信,包括图20的网络2004。例如,网络连接组件2106可以促进经由WWAN、WLAN或WPAN中的一个或多个与多个网络的同时通信。
网络2156可以是或者可以包括WWAN,诸如使用一个或多个移动远程通信技术来经由WWAN组件2122提供语音和/或数据服务给使用计算设备架构2100的计算设备的移动远程通信网络。移动远程通信技术可以包括但不限于全球移动通信***(“GSM”)、码分多址(“CDMA”)ONE、CDMA2000、通用移动远程通信***(“UMTS”)、长期演进(“LTE”)和世界微波接入互操作(“WiMAX”)。而且,网络2156可以使用各种信道接入方法(其可以或者可以不由上述标准来使用),包括但不限于,时分多址(“TDMA”)、频分多址(“FDMA”)、CDMA、宽带CDMA(“W-CDMA”)、正交频分多路复用(“OFDM”)、空分多址(“SDMA”)和类似方法。数据通信可以利用如下来提供:通用分组无线电服务(“GPRS”)、全局演进增强数据率(“EDGE”)、高速分组接入(“HSPA”)协议系列(包括高速下行链路分组接入(“HSDPA”)、增强上行链路(“EUL”)或另外称为高速上行链路分组接入(“HSUPA”)、演进的HSPA(“HSPA+”))、LTE、以及其它各种当前和未来的无线数据访问标准。网络2156可被配置成利用上述技术的任意组合来提供语音和/或数据通信。网络2156可被配置成或适于依照未来一代的技术来提供语音和/或数据通信。
在一些配置中,WWAN组件2122被配置成提供到网络2156的双重多模式连接。例如,WWAN组件2122可以被配置成提供到网络2156的连接,其中网络2156经由GSM和UMTS技术,或者经由技术的某种其它组合来提供服务。可替代地,多个WWAN组件2122可用来实施该功能,和/或提供附加功能来支持其它非兼容技术(即,不能得到单个WWAN组件支持)。WWAN组件2122可促进到多个网络(例如,UMTS网络和LTE网络)的类似的连接。
网络2156可以是依照电气与电子工程师协会(“IEEE”)802.11标准中的一个或多个而操作的WLAN,所述标准诸如IEEE 802.11a、802.11b、802.11g、802.11n和/或未来的802.11标准(在本文统称为WI-FI)。还可以想到草稿802.11标准。在一些配置中,WLAN利用一个或多个无线WI-FI接入点来实现。在一些配置中,无线WI-FI接入点中的一个或多个是能够与WWAN连接的、充当WI-FI热点的另一计算设备。WLAN组件2124被配置成经由WI-FI接入点与网络2156连接。这些连接可经由各种加密技术来确保,加密技术包括但不限于WI-FI保护接入(“WPA”)、WPA2、有线等价隐私(“WEP”)和类似技术。
网络2156可以是依照红外数据联盟(“IrDA”)、BLUETOOTH、无线通用串行总线(“USB”)、Z-Wave、ZIGBEE或某其它短程无线技术来操作的WPAN。在一些配置中,WPAN组件2126被配置成促进与诸如***设备、计算机或其它计算设备的其它设备经由WPAN的通信。
传感器组件2108包括磁力计2128、环境光传感器2130、接近传感器2132、加速度计2134、陀螺仪2136和全球定位***传感器(“GPS传感器”)2138。可想到,诸如但不限于温度传感器或震动检测传感器的其它传感器也可以包含在计算设备架构2100中。
磁力计2128可以被配置成测量磁场的强度和方向。在一些配置中,磁力计2128提供对存储在存储器组件2104中的一个内的罗盘应用程序的测量从而为用户提供参考系内的精确的方向,包括主要方向,北、南、东和西。可以对包括罗盘组件的导航应用程序提供类似的测量。可想到通过磁力计2128所获得的测量的其它用途。
环境光传感器2130被配置成测量环境光。在一些配置中,环境光传感器2130提供对存储在存储器组件2104中的一个内的应用程序的测量从而自动地调节显示器(下面所述)的亮度从而补偿低光照环境和高光照环境。可想到通过环境光传感器2130所获得的测量的其它用途。
接近传感器2132被配置成在不直接接触的情况下检测靠近计算设备的物体或事物的存在。在一些配置中,接近传感器2132检测用户的身体(例如,用户的面部)的存在且提供该信息给存储在存储器组件2104中之一内的、使用接近信息来使能或禁用计算设备的某功能的应用程序。例如,电话应用程序可以响应于接收到接近信息而自动禁用触摸屏(下面说明),使得用户的面部不会在通话期间不利地结束通话或使能/禁用电话应用程序内的其它功能。接近传感器2128所检测到的接近的其它用途可被想到。
加速度计2134被配置成测量正确的加速度。在一些配置中,来自加速度计2134的输出由应用程序用作控制应用程序的某功能的输入机制。例如,应用程序可以是视频游戏,其中人物、其部分或对象响应于经由加速度计2134接收到的输入而移动或以其它方式***纵。在一些配置中,来自加速度计2134的输出提供给应用程序以便用于在横向模式与纵向模式之间切换、计算坐标加速度,或者检测落差。可以想到加速度计2134的其它用途。
陀螺仪2136被配置成测量和维持方位。在一些配置中,来自陀螺仪2136的输出由应用程序用作控制应用程序的某功能的输入机制。例如,陀螺仪2136能够用于视频游戏应用或某其它应用的3D环境内的移动的精确识别。在一些配置中,应用程序使用来自陀螺仪2136和加速度计2134的输出来增强应用程序的某种功能的控制。可想到陀螺仪2136的其它用途。
GPS传感器2138被配置成接收来自GPS卫星的信号以用于计算位置。通过GPS传感器2138计算的位置可由需要或受益于位置信息的任何应用程序使用。例如,通过GPS传感器2138计算的位置可用于导航应用程序以提供从该位置到目的地的方向或者从目的地到该位置的方向。而且,GPS传感器2138可以用于将位置信息提供给基于外部位置的服务,诸如E911服务。GPS传感器2138可以使用网络连接组件2106中的一个或多个获得经由WI-FI、WIMAX和/或蜂窝三角测量技术所生成的位置信息以辅助GPS传感器2138获得位置锁定。GPS传感器2138还可用于辅助GPS(“A-GPS”)***。
I/O组件2110包括显示器2140、触摸屏2142、数据I/O接口组件(“数据I/O”)2144、音频I/O接口组件(“音频I/O”)2146、视频I/O接口组件(“视频I/O”)2148和照相机2150。在一些配置中,显示器2140和触摸屏2142组合。在一些配置中,数据I/O组件2144、音频I/O组件2146和视频I/O组件2148中的两个或更多个被组合。I/O组件2110可以包括被配置为支持下面所描述的各种接口的分立的处理器,或者可以包括内置于处理器2102中的处理功能。
显示器2140是被配置成以视觉形式呈现信息的输出设备。特别地,显示器2140可以呈现图形用户接口(“GUI”)元件、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传递数据、因特网内容、设备状况、时间、日期、日历数据、偏好、地图信息、位置信息以及任何其它能够以视觉形式呈现的信息。在一些配置中,显示器2140是使用了任何有源或无源矩阵技术以及任何背光技术(如果使用)的液晶显示器(“LCD”)。在一些配置中,显示器2140是有机发光二极管(“OLED”)显示器。可想到其它显示器类型。
还可以意识到,音频I/O组件2146可以被配置为传送其他形式的输出,诸如仅音频输出。如上所述,本文描述的***可以生成与布局和内容相关的输出,其可以包括描述布局和/或内容的其他数据的转录和/或翻译。
触摸屏2142,在本文中称为“触摸使能屏幕”,是被配置成检测触摸的存在和位置的输入设备。触摸屏2142可以是电阻触摸屏、电容触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、分散信号触摸屏、声脉冲识别触摸屏,或者可以使用任何其它触摸屏技术。在一些配置中,触摸屏2142作为透明层包含到显示器2140之上以使用户能够使用一个或多个触摸来与呈现在显示器2140上的对象或其它信息交互。在其它配置中,触摸屏2142是并入未包含显示器2140的计算设备的表面上的触摸板。例如,计算设备可以具有并入显示器2140上的触摸屏和与显示器2140相对的表面上的触摸板。
在一些配置中,触摸屏2142是单触摸式触摸屏。在其它配置中,触摸屏2142是多触摸式触摸屏。在一些配置中,触摸屏2142被配置成检测离散的触摸、单触摸姿势和/或多触摸姿势。为方便,这些在本文统称为姿势。现在将描述多个姿势。应当理解的是,这些姿势是示例性的,而不旨在限制随附权利要求的范围。而且,所描述的姿势、附加姿势和/或可替代姿势以软件来实现而与触摸屏2142一起使用。因此,开发者可以创建特定于特定的应用程序的姿势。
在一些配置中,触摸屏2142支持轻敲姿势,其中用户对呈现在显示器2140上的项轻敲触摸屏2142一次。轻敲姿势可由于各种原因而使用,包括但不限于,打开或发动用户所轻敲的无论什么。在一些配置中,触摸屏2142支持双轻敲姿势,其中用户对呈现在显示器2140上的项轻敲触摸屏2142两次。双轻敲姿势可由于各种原因而使用,包括但不限于在阶段中缩小或放大。在一些配置中,触摸屏2142支持轻敲且保持姿势,其中用户轻敲触摸屏2142且保持接触至少预定义时间。轻敲且保持姿势可由于各种原因而使用,包括但不限于,打开上下文特定菜单。
在一些配置中,触摸屏2142支持平移姿势,其中用户将手指放在触摸屏2142上且在触摸屏2142上移动手指的同时保持与触摸屏2142接触。平移姿势可由于各种原因而使用,包括但不限于,在受控速率下移过屏幕、图像或菜单。还可以设想多手指平移姿势。在一些配置中,触摸屏2142支持轻弹姿势,其中用户沿用户想要屏幕移动的方向划动手指。轻弹姿势可由于各种原因而使用,包括但不限于,水平地或者垂直地滚动通过菜单或页。在一些配置中,触摸屏2142支持捏合与伸展姿势,其中用户在触摸屏2142上用两个手指(例如,拇指和食指)做出捏合运动或者移动使两个手指分开。捏合与伸展姿势可由于各种原因而使用,包括但不限于,逐渐地缩小或放大网站、地图或图片。
虽然已经参考用于执行姿势的一个或多个手指的使用描述了上述姿势,但是诸如足趾的其它附件或诸如指示笔的对象也可用于与触摸屏2142交互。因此,上述姿势应当理解为示例性的,而不应解释为以任何方式限制。
数据I/O接口组件2144被配置成利于向计算设备输入数据以及从计算设备输出数据。在一些配置中,数据I/O接口组件2144包括连接器,该连接器被配置成提供计算设备与计算机***之间的有线连接,例如用于同步操作的目的。连接器可以是专用连接器或标准化的连接器,如USB、微型USB、迷你型USB或类似物。在一些配置中,连接器是用于将计算设备与诸如对接站的另一设备、音频设备(例如,数字音乐播放器)或视频设备对接的对接连接器。
音频I/O接口组件2146被配置成提供音频输入和/或输出能力给计算设备。在一些配置中,音频I/O接口组件2144包括被配置成采集音频信号的麦克风。在一些配置中,音频I/O接口组件2144包括被配置成提供用于耳机或其它外部扬声器的连接的耳机插口。在一些配置中,音频接口组件2146包括用于音频信号的输出的扬声器。在一些配置中,音频I/O接口组件2144包括光缆音频出口。
视频I/O接口组件2148被配置成提供视频输入和/或输出能力给计算设备。在一些配置中,视频I/O接口组件2148包括视频连接器,该视频连接器被配置成接收来自另一设备(例如,诸如DVD或BLURAY播放器的视频媒体播放器)的视频作为输入或者将视频作为输出发送到另一设备(例如,监控器、电视机或某其它外部显示器)。在一些配置中,视频I/O接口组件2148包括高清多媒体接口(“HDMI”)、迷你型HDMI、微型HDMI、显示端口或用于输入/输出视频内容的专用连接器。在一些配置中,视频I/O接口组件2148或其部分与音频I/O接口组件2146或其部分组合。
照相机2150可以被配置成捕获静像和/或视频。照相机2150可以使用电荷耦合器件(“CCD”)或互补金属氧化物半导体(“CMOS”)图像传感器来捕获图像。在一些配置中,照相机2150包括辅助在低光照环境下拍摄图片的闪光灯。用于照相机2150的设置可实现为硬件或软件按钮。
虽然没有示出,一个或多个硬件按钮也可以包含在计算设备架构2100中。硬件按钮可用于控制计算设备的某操作方面。硬件按钮可以是专用按钮或多用途按钮。硬件按钮可以是机械或基于传感器的。
图示的电力组件2112包括一个或多个电池2152,电池能够连接到电池计量仪2154。电池2152可以是可再充电的或一次性的。可再充电电池类型包括但不限于锂聚合物、锂离子、镍镉和镍金属氢化物。电池2152中的每一个可以由一个或多个单元制成。
电池计量仪2154可以被配置成测量诸如电流、电压和温度的电池参数。在一些配置中,电池计量仪2154被配置成测量电池的放电速率、温度、寿命和其它因素的效应以在一定误差百分比内预测剩余寿命。在一些配置中,电池计量仪2154提供测量给应用程序,应用程序被配置成使用测量来向用户呈现有用的电力管理数据。电力管理数据可以包括所使用的电池百分比、电池剩余百分比、电池状态、剩余时间、剩余容量(例如,以瓦特小时数计)、消耗的电流和电压中的一项或多项。
电力组件2112还可以包括电力连接器,电力连接器可以与上述I/O组件2110中的一个或多个组合。电力组件2112可以经由电力I/O组件与外部电力***或充电装备相接。
本文展现的公开可以从以下条款来考虑:
条款1:一种用于基于意图来生成用于内容数据的布局的计算机实现的示例,所述方法包括:获得内容数据,所述内容数据包括多个内容元素;获得指示关于如何展现所述内容数据的意图的意图数据,所述意图数据描述所述多个内容元素中的两个或更多个内容元素当中的一个或多个关系;基于所述意图数据来生成用于所述内容数据的布局。
条款2:如条款1的示例,其中所述布局包括用于使所述内容数据结构化的宏级方案,并且其中所述宏级方案包括定义所述内容数据的宏级结构化的世界配置。
条款3:如条款1和2的示例,其中,所述布局还包括用于布置所述多个内容元素中的一个或多个的中间级方案,以及用于格式化所述多个内容元素中的每一个的微级方案。
条款4:如条款1-3的示例,其中所述世界配置是全景世界配置、垂直世界配置、深度世界配置、画布世界配置、窄小(nutshell)世界配置、活页卡片世界配置或时间线世界配置中的一种。
条款5:如条款1-4的示例,其中所述一个或多个部分布置中的一个根据世界配置来配置。
条款6:如条款1-5的示例,其中基于所述意图数据生成用于所述内容数据的所述布局包括:基于所述意图数据选择所述内容数据的一个或多个内容模板;通过所述一个或多个内容模板对所述多个内容元素进行置换,以生成多个候选布局;基于一个或多个启发式规则来计算所述候选布局中的每一个的分数;以及选择具有最高分数的候选布局作为用于所述内容数据的布局。
条款7:如条款1-6的示例,其中基于所述意图数据选择用于所述内容数据的一个或多个内容模板包括:将所述意图数据转换成一个或多个格式化约束;以及将满足所述格式化约束的一个或多个内容模板选择为所述一个或多个内容模板。
条款8:如条款1-7的示例,其中所述内容数据从包括用于接收所述内容数据的编辑区域的用户界面获得,并且其中所述内容数据以与所生成的布局不同的方式显示在所述编辑区域中。
条款9:如条款1-8的示例,其中所述用户界面还包括允许用户将所述意图数据分配给所述内容数据的一个或多个用户界面控件,并且其中以与所生成的布局不同的方式根据所述意图数据在所述编辑区域中显示所述内容数据。
条款10:如条款1-9的示例,还包括获得显示设备的能力,并且其中所述布局还基于所述显示设备的能力来生成。
条款11:一种其中存储有计算机可执行指令的计算机可读存储介质,当通过计算机执行时,所述计算机可执行指令使所述计算机:获得内容数据,所述内容数据包括多个内容元素;获得指示如何展现所述内容数据的意图的意图数据,所述意图数据包括描述所述多个内容元素中的两个或更多个内容元素当中的一个或多个关系的数据;基于所述意图数据来生成用于所述内容数据的多个候选布局;基于一个或多个启发式规则来计算所述多个候选布局中的每一个的分数;选择具有最高分数的布局;以及使用所选布局来传送所述内容数据。
条款12:如条款11的计算机可读存储介质,其中生成所述候选布局包括:基于所述意图数据来选择用于所述多个内容元素的一个或多个内容模板;以及通过一个或多个内容模板来置换多个内容元素以生成多个候选布局。
条款13:如条款11和12的计算机可读存储介质,其中所述一个或多个内容模板中的至少一个预存储在数据仓库内且从该数据仓库中选择。
条款14:如条款11-13的计算机可读存储介质,其中所述一个或多个内容模板中的至少一个是通过编程方式生成的。
条款15:如条款11-14的计算机可读存储介质,其中所述布局包括定义内容数据的宏级结构化的世界配置。
条款16:如条款11-15的计算机可读存储介质,其中所述世界配置包括一个或多个部分布置,并且其中所述一个或多个部分布置中的每一个包括一个或多个元素格式配置。
条款17:一种用于生成用于内容的布局的***,包括一个或多个计算设备,所述计算设备被配置为:获得内容数据,所述内容数据包括多个内容元素;获得指示如何展现所述内容数据的意图的意图数据,所述意图数据描述所述多个内容元素中的两个或更多个内容元素当中的一个或多个关系;基于所述意图数据中描述的关系导出所述内容数据的一个或多个格式化约束;基于所述意图数据生成满足所述内容数据的所述一个或多个格式化约束的多个布局;基于一组启发式规则来从所述多个布局中选择适合所述内容数据并最佳地满足所述意图数据的布局。
条款18:如条款17的***,还包括布局资源数据存储库,用于存储用于布局生成的多个内容模板,并且其中通过置换所述多个内容元素来生成所述多个布局,通过所述多个内容模板中的满足所述一个或多个格式化约束和意图数据的一个或多个内容模板来置换所述多个内容元素。
条款19:如条款17-18的***,其中选择适合所述内容数据并且最佳地满足所述意图数据的布局包括:基于所述一组启发式规则来计算所述多个布局中的每一个的分数;以及选择具有最高分数的布局作为所述内容数据的所选布局。
条款20:如条款17-19的***,其中所述一个或多个计算设备还被配置为获得所展现的内容数据的消费者的偏好,并且其中所述布局进一步基于所述消费者的偏好而生成。
基于上述,应当意识到在本文已经公开了用于提供基于用户意图的内容创作的概念和技术。虽然本文所展现的主题是以特定于计算机结构特征的语言、方法和变换动作、具体的计算机器和计算机可读介质来描述,但是应当理解,在随附的权利要求中限定的本发明不必局限于本文所描述的具体的特征、动作或媒介。相反,具体的特征、动作和媒介被公开作为实现权利要求的示例形式。
上述的主题仅以示例说明的方式来提供,而不应当解释为限制。可以在不遵照所图示和描述的示例的配置和应用且不背离本发明的范围和主旨的情况下对本文所描述的主题做出各种修改和改动,本发明的范围在下面的权利要求中进行了阐述。

Claims (13)

1.一种用于生成准确地反映用户意图并且动态地适合于各种显示设备的用于内容数据的布局的计算机实现的方法,所述方法包括:
获得内容数据,所述内容数据包括多个内容元素;
获得指示关于如何展现所述内容数据的意图的意图数据,所述意图数据描述所述多个内容元素中的两个或更多个内容元素当中的一个或多个关系;
获得所述显示设备的能力;以及
基于所述意图数据和所述显示设备的能力来生成用于所述内容数据的布局。
2.根据权利要求1所述的方法,其中,所述布局包括用于使所述内容数据结构化的宏级方案,并且其中,所述宏级方案包括定义所述内容数据的宏级结构化的世界配置。
3.根据权利要求2所述的方法,其中,所述布局还包括用于布置所述多个内容元素中的一个或多个内容元素的中间级方案,以及用于格式化所述多个内容元素中的每一个内容元素的微级方案。
4.根据权利要求2所述的方法,其中,所述世界配置是全景世界配置、垂直世界配置、深度世界配置、画布世界配置、窄小世界配置、活页卡片世界配置或时间线世界配置中的一种。
5.根据权利要求4所述的方法,其中,一个或多个部分布置中的一个部分布置是根据世界配置来配置的。
6.根据权利要求1所述的方法,其中,基于所述意图数据来生成用于所述内容数据的所述布局包括:
基于所述意图数据来选择用于所述内容数据的一个或多个内容模板;
通过所述一个或多个内容模板对所述多个内容元素进行置换,以生成多个候选布局;
基于一个或多个启发式规则来计算所述候选布局中的每一个候选布局的分数;以及
选择具有最高分数的候选布局作为所述用于所述内容数据的布局。
7.根据权利要求6所述的方法,其中,基于所述意图数据来选择用于所述内容数据的一个或多个内容模板包括:
将所述意图数据转换成一个或多个格式化约束;以及
将满足所述格式化约束的一个或多个内容模板选择为所述一个或多个内容模板。
8.根据权利要求1所述的方法,其中,所述内容数据是从包括用于接收所述内容数据的编辑区域的用户界面获得的,并且其中,所述内容数据是以与所生成的布局不同的方式显示在所述编辑区域中的。
9.根据权利要求8所述的方法,其中,所述用户界面还包括允许用户将所述意图数据分配给所述内容数据的一个或多个用户界面控件,并且其中,所述内容数据是以与所生成的布局不同的方式根据所述意图数据显示在所述编辑区域中的。
10.一种用于生成用于内容的布局的***,包括一个或多个计算设备,所述一个或多个计算设备被配置为:
获得内容数据,所述内容数据包括多个内容元素;
获得指示关于如何展现所述内容数据的意图的意图数据,所述意图数据描述所述多个内容元素中的两个或更多个内容元素当中的一个或多个关系;
基于所述意图数据中描述的关系来导出所述内容数据的一个或多个格式化约束;
基于所述意图数据来生成满足所述内容数据的所述一个或多个格式化约束的多个布局;
基于一组启发式规则来从所述多个布局中选择适合所述内容数据并且最佳地满足所述意图数据的布局。
11.根据权利要求10所述的***,还包括布局资源数据存储库,用于存储用于布局生成的多个内容模板,并且其中,所述多个布局是通过置换所述多个内容元素来生成的,其中,通过所述多个内容模板中的满足所述一个或多个格式化约束和所述意图数据的一个或多个内容模板来置换所述多个内容元素。
12.根据权利要求10所述的***,其中,选择适合所述内容数据并且最佳地满足所述意图数据的布局包括:
基于所述一组启发式规则来计算所述多个布局中的每一个布局的分数;以及
选择具有最高分数的布局作为用于所述内容数据的所选布局。
13.根据权利要求10所述的***,其中,所述一个或多个计算设备还被配置为获得所展现的内容数据的消费者的偏好,并且其中,所述布局进一步是基于所述消费者的偏好而生成的。
CN201580053260.8A 2014-09-30 2015-09-29 用于内容数据的布局的基于用户意图的生成 Pending CN106796581A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/503,211 2014-09-30
US14/503,211 US20160092405A1 (en) 2014-09-30 2014-09-30 Intent Based Authoring
PCT/US2015/052758 WO2016053919A1 (en) 2014-09-30 2015-09-29 User-intent based generation of layout for content data

Publications (1)

Publication Number Publication Date
CN106796581A true CN106796581A (zh) 2017-05-31

Family

ID=54293374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580053260.8A Pending CN106796581A (zh) 2014-09-30 2015-09-29 用于内容数据的布局的基于用户意图的生成

Country Status (5)

Country Link
US (1) US20160092405A1 (zh)
EP (1) EP3201745A1 (zh)
KR (1) KR20170066374A (zh)
CN (1) CN106796581A (zh)
WO (1) WO2016053919A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107609053A (zh) * 2017-08-23 2018-01-19 北京奇虎科技有限公司 一种网页展示方法和装置
CN114073089A (zh) * 2019-06-28 2022-02-18 杜比实验室特许公司 高动态范围的视频内容类型元数据

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9595298B2 (en) 2012-07-18 2017-03-14 Microsoft Technology Licensing, Llc Transforming data to create layouts
US9626768B2 (en) 2014-09-30 2017-04-18 Microsoft Technology Licensing, Llc Optimizing a visual perspective of media
US10282069B2 (en) 2014-09-30 2019-05-07 Microsoft Technology Licensing, Llc Dynamic presentation of suggested content
US10146856B2 (en) * 2014-10-10 2018-12-04 Wriber Inc. Computer-implemented method and system for creating scalable content
USD816116S1 (en) * 2015-11-24 2018-04-24 Ayori Selassie Computer display with graphical user interface
US10685070B2 (en) 2016-06-30 2020-06-16 Facebook, Inc. Dynamic creative optimization for effectively delivering content
US10419376B2 (en) * 2016-12-19 2019-09-17 Google Llc Staggered notification by affinity to promote positive discussion
US10922713B2 (en) 2017-01-03 2021-02-16 Facebook, Inc. Dynamic creative optimization rule engine for effective content delivery
US10572908B2 (en) * 2017-01-03 2020-02-25 Facebook, Inc. Preview of content items for dynamic creative optimization
US10380228B2 (en) * 2017-02-10 2019-08-13 Microsoft Technology Licensing, Llc Output generation based on semantic expressions
US10303744B2 (en) * 2017-04-24 2019-05-28 Thyssenkrupp Elevator Ag Systems and methods for generating and configuring content of elevator destination dispatch kiosks
US10732937B2 (en) * 2017-10-31 2020-08-04 Fujitsu Limited Programming by voice
WO2019092506A1 (en) * 2017-11-13 2019-05-16 Wetransfer B.V. Semantic slide autolayouts
CN109584376B (zh) * 2018-12-03 2023-04-07 广东工业大学 基于vr技术的构图教学方法、装置、设备以及存储介质
KR102170306B1 (ko) * 2019-03-20 2020-10-26 주식회사 위즈위그 레이아웃 템플릿 기반 통합 사이트 관리 시스템 및 방법
CA3231830A1 (en) 2019-08-05 2021-02-11 Ai21 Labs Systems and methods of controllable natural language generation
US11829723B2 (en) 2019-10-17 2023-11-28 Microsoft Technology Licensing, Llc System for predicting document reuse
KR102185978B1 (ko) * 2020-01-30 2020-12-03 김혜진 신문칼럼 구독을 이용한 온라인 독해력 및 논술 교육 서비스 제공 시스템
KR102533597B1 (ko) * 2020-12-18 2023-05-17 (주) 리아모어소프트 사용자 맞춤 레이아웃 디자인 장치 및 방법
US11748555B2 (en) * 2021-01-22 2023-09-05 Bao Tran Systems and methods for machine content generation
US11790165B2 (en) * 2021-01-26 2023-10-17 Microsoft Technology Licensing, Llc Content element recommendation system
US20230359325A1 (en) * 2022-05-05 2023-11-09 Adobe Inc. User interface for editing of a composite document through intelligently zoomed previews

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5911146A (en) * 1996-05-03 1999-06-08 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Apparatus and method for automatic yellow pages pagination and layout
US20050125725A1 (en) * 2003-12-05 2005-06-09 Gatt Jeffrey D. System and method for facilitating creation of a group activity publication
US9015578B2 (en) * 2006-01-24 2015-04-21 Microsoft Technology Licensing, Llc Dynamic optimization of available display space
JP5892746B2 (ja) * 2010-09-29 2016-03-23 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 個別化コンテンツ・レイアウトのための方法、システム、およびプログラム(個別化コンテンツ・レイアウトのためのシステムおよび方法)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107609053A (zh) * 2017-08-23 2018-01-19 北京奇虎科技有限公司 一种网页展示方法和装置
CN114073089A (zh) * 2019-06-28 2022-02-18 杜比实验室特许公司 高动态范围的视频内容类型元数据
CN114073089B (zh) * 2019-06-28 2024-02-09 杜比实验室特许公司 生成数字视频比特流和回放视频内容的方法和介质

Also Published As

Publication number Publication date
EP3201745A1 (en) 2017-08-09
WO2016053919A1 (en) 2016-04-07
US20160092405A1 (en) 2016-03-31
KR20170066374A (ko) 2017-06-14

Similar Documents

Publication Publication Date Title
CN106796581A (zh) 用于内容数据的布局的基于用户意图的生成
CN106796582B (zh) 建议内容的动态呈现
CN107077460A (zh) 结构化样本创作内容
CN106796518A (zh) 基于意图的反馈
JP6293142B2 (ja) データを消費型コンテンツに変換するときにバリエーションを生じさせること
CN104350493B (zh) 将数据变换成可消费的内容
WO2018148123A1 (en) Output generation based on semantic expressions
US20140025650A1 (en) Abstract relational model for transforming data into consumable content
TW201610815A (zh) 字元安排的強化解讀

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170531