CN107710190A - 使用去耦合的呈现资源来呈现内容 - Google Patents
使用去耦合的呈现资源来呈现内容 Download PDFInfo
- Publication number
- CN107710190A CN107710190A CN201680039035.3A CN201680039035A CN107710190A CN 107710190 A CN107710190 A CN 107710190A CN 201680039035 A CN201680039035 A CN 201680039035A CN 107710190 A CN107710190 A CN 107710190A
- Authority
- CN
- China
- Prior art keywords
- fragment
- content
- presentation
- code
- identifier
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/117—Tagging; Marking up; Designating a block; Setting of attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/197—Version control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
描述了一种用于呈现文档内容的设施。在应用中,所述设施接收用于将特定的文档内容具体化的请求。在另外的应用中,响应于接收到所述请求,所述设施使得所述文档内容被取回,并且使得呈现代码呈现所取回的文档内容;该呈现代码既不是所述应用原生的,也不链接到要执行的应用中。
Description
背景技术
存在多种类型的电子文档,例如:主要包含文本的文字处理文档;主要包含被组织为网格的数字和公式的电子表格;被组织为一系列幻灯片的幻灯片文档,其基于它们在一定距离之外可辨认的典型需求而具有最少内容空间;其中文本与结合特定配置的形状相关联的商业图;等等。通常用户使用不同的单一应用来执行关于每种类型的电子文档的各种动作。例如,倾向于使用文字处理应用来创建、编辑、和呈现文字处理文档,而倾向于使用分别的电子表格应用来创建、编辑、和呈现电子表格应用。
发明内容
提供了该发明内容以用简化形式引入在以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用来限制所要求保护的主题的范围。
描述了一种用于呈现文档内容的设施。在应用中,所述设施接收用于将特定的文档内容具体化的请求。在所述应用中另外地,响应于接收到所述请求,所述设施使得所述文档内容被取回,并且使得呈现代码呈现所取回的文档内容;该呈现代码既不是所述应用原生的,也不链接到要执行的应用中。
附图说明
图1是示出了其中所述设施在一些实施例中操作的环境的网络图。
图2是示出了组件中的一些组件的框图,所述组件通常被并入在所述设施在其上操作的计算机系统和其他设备中的至少一些中。
图3-5是示出了对并入经共享的文档片段的文档的编辑和显示的显示图。
图6是流程图,其示出了通常由一些实施例中的设施执行以便将文档片段并入到文档中并且调节其并入的模式的步骤。
图7是流程图,其示出了通常由一些实施例中的设施执行以便将包含共享片段的文档具体化的步骤。
图8是表格图,其示出了由一些实施例中的设施用来存储关于片段的信息的片段目录表的样本内容。
图9是表格图,其示出了由一些实施例中的设施用来存储关于片段版本的信息的片段版本表的样本内容。
图10是表格图,其示出了由一些实施例中的设施用来存储关于片段版本实例的信息的片段版本实例表格的样本内容。
图11是表格图,其示出了由一些实施例中的设施用来存储片段版本实例的片段版本实例内容表的样本内容。
图12是流程图,其示出了通常由所述设施执行以便取回内容片段的步骤,所述步骤包括选择所述内容片段的呈现片段以及使用所选择的呈现片段来呈现所述内容片段。
图13是表格图,其示出了在一些实施例中由所述设施使用以基于内容片段的类型来选择内容片段的呈现片段的内容片段类型映射表的样本内容。
图14是流程图,其示出了在一些实施例中通常由所述设施执行以基于来自作者的输入来创作内容片段的步骤。
图15是数据结构图,其示出了内容片段的版本与它们所引用的呈现片段的版本之间的关系。
图16是显示图,其示出了呈现在图15中在第一有效时间处所示出的内容片段的呈现结果。
图17是显示图,其示出了在图15中在第二有效时间处所示出的内容片段的样本呈现结果。
图18是显示图,其示出了在图15中在第三有效时间处所示出的内容片段的样本呈现结果。
图19是显示图,其示出了在图15中在第四有效时间处所示出的内容片段的样本呈现结果。
图20是数据结构图,其示出了引用其他呈现片段版本的呈现片段版本。
图21是显示图,其示出了针对在图20中在第一时间处所示出的内容片段的呈现结果。
图22是显示图,其示出了针对在图20中在第二时间处所示出的内容片段在欧洲地理区域中所生成的呈现结果。
图23是流程图,其示出了在一些实施例中通常由所述设施执行以便将对第二内容片段的引用添加至第一内容片段的步骤。
图24是数据结构图,其示出了将一个内容片段并入到另一内容片段中的片段引用,所述片段引用指定用于在进行引用的内容片段内呈现所引用的内容片段的呈现片段。
具体实施方式
概述
发明人已经标识了利用常规方法来呈现电子文档的内容的显著缺点。特别地,用于显示或者以其他方式呈现具有特定类型的电子文档的内容的代码通常作为用于创建和编辑具有该类型的文档的单一应用的代码的一部分而被包括。发明人已经确定将呈现代码作为单一应用的一部分来包括倾向于损害呈现代码的开发,这是因为开发呈现代码的开发者必须与开发应用的其他代码的开发者紧密地协作。该协作对开发呈现代码的开发者和开发应用的其他代码的开发者都要求了额外的努力,这将延误开发。
同样,发明人已经意识到,常规应用关于如何呈现文档作者所创作的内容对文档作者几乎没有或没有提供控制。
发明人还已经意识到,常规应用经历频繁的版本发布;许多这样的版本发布改变用于存储文档的文件格式;并且应用供应商的更新过程通常涉及用最新版本的应用来替代第二新版本的应用,这使得在任何给定的时间,仅仅最新版本的应用被安装。发明人已经意识到,该过程常常使得用户无法显示较旧的文档。在有可能显示较旧的文档的情况下,所述文档以不同于创建它的应用的版本最初呈现它的方式而被频繁地呈现。
为了克服这些缺点,发明人已经想到并实践了一种软件和/或硬件设施,其用于使用从作者执行以便创建和编辑文档的代码去耦合的呈现资源来呈现内容(“所述设施”)。这些呈现资源中的每个呈现资源包含用于呈现具有特定类型的呈现内容的代码。呈现资源的代码可以是以多种语言中的任何语言开发的,并且可以经由解译、编译、组合等来执行。所述设施是可扩展的,这在于可以随着时间添加新的呈现资源和呈现资源版本以使得文档能够以新的方式来显示,同时所有较旧的文档继续像他们一直以来的那样被呈现。
在一些实施例中,文档或文档的一部分的作者可以指定要使用哪个呈现资源来呈现文档或其部分,而无论文档或其部分是孤立地呈现的还是在其被并入在内的另一文档的上下文中呈现的。在一些实施例中,将第二文档或其部分并入第一文档的作者可以指定要使用哪个呈现资源来在第一文档的上下文中呈现第二文档或其部分。在一些实施例中,其中,针对特定的内容,呈现资源既不针对该内容被指定也不针对其并入文档而被指定,所述设施使用规则来选择内容的呈现资源,例如通过选择针对内容的类型而指定的默认呈现资源。
在一些实施例中,呈现资源是分版本的,这使得在不同的时间点处和/或由不同的开发者创建一个呈现资源的后续版本。在一些实施例中,在作者指定呈现资源的情况下,作者可以指定呈现资源的特定版本或者指定用于选择呈现资源的特定版本的规则。在一些实施例中,在作者不这样做的情况下,所述设施自动地选择呈现资源的版本,例如,具有最新日期的呈现资源的版本,或者在具有某些批准状态的资源的版本中具有最新日期的呈现资源的版本。在一些实施例中,所述设施自动地选择是在文档版本被存储时最新创建的版本的呈现资源的版本;这具有以下优点,包括:(a)该呈现资源版本一定能够以无论其所存储的形式来处理文档版本的呈现;以及(b)这样的呈现与文档的该版本被创建时的呈现是一致的。
在一些实施例中,所述设施运营使得呈现资源的开发者能够让它们对作者和其他人可用的市场。在一些实施例中,所述设施使得通过该市场来获得呈现资源的人们为呈现资源而付费;并且在各种实施例中,获利被支付给呈现资源的开发者和/或所述设施运营者。
在一些实施例中,所述设施使用被称为“片段”的构造来存储内容和呈现资源两者,所述片段是由所述设施分别地表示的存储的单元。文档由被称为“根片段”的单个内容片段组成,其可以直接包含内容以及包含引用其他内容片段的片段引用。被根片段所引用的那些片段自身可以直接包含内容以及对其他片段的片段引用等。当文档被打开时,所述设施通常通过取回根片段、取回被根片段中的片段引用所引用的其他片段、取回被那些片段中的片段引用所引用的另外的片段等等来收集并且合成其内容。在一些实施例中,就其可以被编辑或呈现应用作为根片段来打开的意义而言,任何片段都可以被视为文档。
在一些实施例中,所述设施还将每个呈现资源存储在片段中。在一些实施例中,所述设施使得作者能够在内容片段内指定用于呈现内容片段的呈现片段。例如,针对数据表格内容片段,作者可以在内容片段内指定要使用生成条形图的特定呈现片段来呈现的内容片段。在一些实施例中,所述设施使得作者能够在对内容片段的片段引用中指定要用来呈现内容片段的呈现片段。例如,包含数据表格片段的报告片段的作者可以在包含数据表格内容片段的片段引用内指定:当数据表格内容片段由该引用而并入到报告片段中时,数据表格内容片段将由产生线图的特定的呈现片段来呈现。在先前的两个示例被组合的情况下,在一些实施例中,所述设施优选在片段引用中所指定的呈现片段,尽管不同的呈现片段在内容片段内被指定。
在一些实施例中,所述设施将构成用户的文档的片段和呈现片段两者存储在基于云的服务中,其中它们可以从几乎任何位置被访问。在一些实施例中,该基于云的服务使用被称作“擦除编码”的技术,其中它将文档作者所定义的片段解构或“粉碎”成多个较小的组成片段或“碎片”,所述设施将它们中的每个存储在不同地理位置处的不同数据中心的多个存储设备上以提供灾难和断电存活能力。当所述基于云的服务接收到针对片段的请求时,其取回并组合这些碎片以重建所述片段。
在一些实施例中,所述设施存储片段的新版本以反映对所述片段执行的每个编辑动作,每个动作由执行所述编辑动作的日期和时间来标识。例如,在一些实施例中,所述设施针对被插入(例如,通过键击或文本块粘贴)在片段中的每个字符或字符的分组并且针对被删除(例如,通过退格键按压或者选择和删除操作)的每个字符或字符的分组来创建新的片段版本。在一些实施例中,每个片段版本标识进行由所述片段版本所反映的编辑动作的作者。在一些实施例中,在被写之后,这些片段版本无法被更改,并且被称为是“不可改变的”。
在一些实施例中,随着时间,所述设施删除片段的版本中的一些版本从而将两个或更多个编辑动作拆解为片段的未删除的版本。在一些实施例中,在这样做时,所述设施仅仅删除全部反映由相同作者所进行的编辑动作的以及同样反映相同作者所进行的编辑动作的在未删除的片段版本紧接着之前的连续的片段版本。
在一些实施例中,在内容从片段感知的源文档被并入的情况下,所述设施确保被并入的内容精确地对应于一个或多个完整片段;也就是说,在所选择的内容的跨度仅为源文档中的片段的一部分的情况下,所述设施将源文档中的该片段分成两个片段,第一个仅包含来自所选择的原始片段的内容,第二个则包含来自未被选择的原始片段的内容,从而第一个可以被并入到目标文档中而第二个则不能。在内容从片段未知的源文档被并入的情况下,所述设施创建新的片段以包含所并入的内容。
响应于所述并入操作,所述设施在目标文档中在内容被并入所述目标文档的位置处创建片段引用以表示在所述目标文档中并入的内容。在一些实施例中,片段引用包含多个成分,例如当前片段ID成分和/或起源成分。所创建的片段引用的当前片段ID成分例如通过包含可以用于取回该片段的该片段的片段ID来标识所述引用所引用的片段。在被所述设施使用的情况下,起源成分在片段引用状态中保存所并入的内容所源自的片段的片段ID,这可以充当用于改变其中所并入的内容在所述片段引用的整个寿命期间在目标文档中被使用的模式的基础,以及用于跟踪片段的出处的基础。在一些实施例中,所述设施将片段ID的经排序的列表存储在起源成分中以反映所引用片段从中分流的一系列片段。
在各种实施例中,在用户执行并入操作时,用户可以通过以下方式来指定所并入的内容在目标文档中的初始模式:例如在拖拽交互期间保持某一键盘按键按下,使用各种控制键组合将所并入的内容粘贴到目标文档中,响应于并入操作对由所述设施显示的上下文菜单或对话作出响应等。在一些实施例中,每种模式具有两种特性:(1)片段的内容在并入文档或片段的上下文中是否是可编辑的(“在上下文中可编辑”),以及(2)如何选择所引用片段的版本以用于在并入文档或片段时包括(“版本选择”)。在一些实施例中,以下类型的版本选择选项是可用的:(a)“最新”——具有最近事件的片段版本通过引用而被并入;(b)“指定时间”——与特定时间相关联的片段的特定版本通过引用而被并入(例如,在一些实施例中,任意指定的时间使得选择所述片段中其时间是不晚于指定的时间的最新片段版本);(c)“特殊”——用来指定选择片段的哪个版本以用于并入的特殊规则。特殊规则的示例是由合格的批准机构所批准的最新文档,或者是实施特定作者进行的编辑的最早版本。
在各种实施例中,所述设施支持以下并入模式中的一些或全部:实时模式、跟随模式、可分流模式、固定模式、特殊可分流模式、以及特殊跟随模式。
实时模式(1)是在上下文中可编辑的,并且(2)使用“最新”版本选择。因此,在实时模式中,作者可以改变片段的内容,这引起片段的新版本被创建以反映每个这样的改变。这些改变将出现在任何其他包含片段中,所述包含片段并入了相同片段并且其版本选择选项以利用选择该版本的选择规则选择了该版本(或者是(a)最新或者是(b)特殊)而结束。实时模式通常用于被包括以既修订所引用的片段又反映对其他片段的修订的引用。通过使用最新版本的选择选项,实时模式中的引用并入最新版本的片段,而无论其内容如何或者其反映哪个作者的修订。在选择实时模式的情况下,所述设施用作为起源成分的相同片段ID来填充片段引用的当前片段ID成分。片段引用的当前成分标识其内容要被取回以用于包括在目标文档中的片段。
跟随模式(1)在上下文中是不可编辑的,并且(2)使用最新版本选择。在跟随模式中,片段的最新版本始终被并入,但是无法在包含跟随模式引用的文档或片段的上下文中进行编辑。跟随模式通常被用于以集中的方式并入由一个或多个其他作者所保存的动态内容。
可分流模式(1)在上下文中是不可编辑的,并且(2)使用指定时间的版本选择。在可分流模式中,片段可以在指定的时间在来自片段状态的引用的上下文中进行编辑。执行这样的编辑将引用从可分流模式转换至实时模式;反映出新的片段ID的第一版本中的编辑;将新的片段ID存储在引用的上下文中;并且将原始的片段ID存储在引用的起源成分中。可分流模式通常在片段的特定状态要作为将不会影响并入有原始片段的文档或片段的一组新的编辑的基础的情况下被使用。类似地,可分流的以及所产生的实时引用不受可分流引用版本选择时间之后对原始片段的编辑的影响。
固定模式(1)在上下文中是不可编辑的,并且(2)使用指定时间的版本选择。在片段引用处于固定模式时,所并入的内容不能通过用户编辑包含固定引用的文档或片段(因为在上下文中不可编辑排除了由这样的作者进行编辑)或者通过用户在不同的包含文档或片段的上下文中编辑片段(因为这样的编辑将在新的片段版本中被反映,所述新的片段版本将不被该引用的指定时间选择逻辑所选择)来改变。在选择了固定模式的情况下,所述设施用原始片段的片段ID来填充片段引用的当前成分。固定模式通常用于保持引用文档中的片段的特定状态。
特殊可分流模式(1)在上下文中是不可编辑的,并且(2)指定特殊版本选择规则。在任何给定时间,所并入片段将示出特殊版本选择规则在该时刻所选择的源片段的版本的内容。当作者在上下文中编辑片段时,进行在上文中所描述的分流过程。特殊可分流模式例如可以用于使用演进模板,该演进模板的编辑受到作为创建新内容的实例的基础的定期批准。
特殊跟随模式(1)在上下文中是不可编辑的,并且(2)指定特殊版本选择规则。因此,特殊跟随引用示出在任何给定时间满足版本选择规则的片段的版本,其在上下文中是不可编辑的。该模式例如可以用于将由其作者定期发布的集中创作的内容拉入到文档或片段中,以反映出自从最后发布以来所进行的所有编辑。
用户可以在随后的任何时间通过以下方式经由各种用户接口技术来改变所并入的内容的模式:例如通过在所并入的内容上右键点击并且从所产生的上下文菜单中选择项目,选择所并入的内容并且选出菜单栏的菜单项目,与鼠标光标在所并入的内容上方悬停时所显示的专用控件进行交互,等等。在一些实施例中,所述设施并入机构方(authority)的系统或者与其交互操作,以及访问控制和其他内容管控措施对特定用户在各种环境中可以关于特定文档或片段采取的动作进行限制,包括改变现有片段引用的模式。
在一些实施例中,在取回以固定模式并入的内容的指定时间的片段版本时,所述设施通知用户原始片段的版本是否比只读片段更为新从而使得用户能够将模式切换至实时,或者保持在固定模式但是用对应于最新版本的时间来替换针对引用中的版本所指定的时间。
在一些实施例中,所述设施保存有关将片段并入到文档中的指标从而能够对各种“热片段”测量进行报告,其跨组织或用户的另一分组(在文档的分组或类别等中)标识被并入到最全面的文档中的片段,或者已经在最近一段时间期间被并入到最多文档中的片段。
通过以在上文中所描述的方式中的一些或全部方式来行为,所述设施不会妨碍呈现资源的开发,并且使得内容的作者能够对如何呈现该内容来施以控制。
硬件
图1是示出了其中所述设施在一些实施例中操作的环境的网络图。该网络图示出了各自由不同用户使用的客户端110。所述客户端中的每个客户端执行软件,所述软件使得其用户能够创建、修订、和呈现电子文档。客户端上的软件还使得客户端能够取回并合成远程存储的文档内容,包括文档片段。特别地,互联网120或者一个或多个其他网络将所述客户端中的每个客户端连接至多个不同的数据中心,例如数据中心131、141、和151,所述数据中心在一些实施例中在地理上分布从而在数据完整性方面和连续可用性方面提供灾害和断电存活能力。在地理上分布所述数据中心还有助于使得与各个地理位置的客户端的通信延迟最小化。所述数据中心中的每个数据中心包含服务器,例如服务器132、142、和152。服务器访问包含文档内容(其包括文档片段)的存储设备,并且执行软件以对来自客户端和其他服务器的用于存储和取回文档内容的请求进行响应,所述文档内容同样包括文档片段。在各种实施例中,所述设施使用对用于取回和组合客户端与服务器之间的文档片段的责任的各种不同的分布。
尽管关于在上文中所描述的环境对各个实施例进行了描述,但是本领域技术人员将理解的是,所述设施可以在多种其他环境中实现,包括单个、单一计算机系统,以及以各种方式连接的计算机系统和类似设备的各种其他组合。在各种实施例中,各种计算系统或其他设备可以用作客户端,包括台式计算机系统、膝上型计算机系统、汽车计算机系统、平板计算机系统、智能电话、个人数字助理、电视、相机等。
图2是示出了组件中的一些组件的框图,所述组件通常被包含在所述设施在其上操作的计算机系统和其他设备中的至少一些中。在各种实施例中,这些计算机系统和其他设备200可以包括服务器计算机系统、台式计算机系统、膝上计算机系统、上网本、移动电话、个人数字助理、电视、相机、汽车计算机、电子媒体播放机等。在各种实施例中,所述计算机系统和设备包括以下中的每个中的零个或多个:用于执行计算机程序的中央处理单元(“CPU”)201;用于在程序和数据被使用时对其进行存储的计算机存储器202,所述程序和数据包括所述设施和相关联的数据、包括内核的操作系统、以及设备驱动器;持久性存储设备203,例如用于持久地存储程序和数据的硬盘或闪存驱动器;计算机可读媒体驱动器204,例如软盘、CD-ROM、或DVD驱动器,其用于读取存储在计算机可读介质上的程序和数据;以及用于将计算机系统连接至其他计算机系统从而例如经由互联网或其他网络及其联网硬件来发送和/或接收数据的网络连接205,所述联网硬件例如交换机、路由器、中继器、电缆和光纤、光发射器和接收器、无线电发射机和接收机等。尽管如在上文中所描述的那样配置的计算机系统通常用于支持所述设施的操作,但是本领域技术人员将理解的是,所述设施可以使用各种类型和配置以及具有各种组件的设备来实现。
片段管理
用户可以通过以下操作将预先存在的内容并入到目标文档中,例如:在源文档内选择该内容,接着执行交互以用于将所选择的内容传输至目标文档中的特定位置。在各种实施例中,这样的交互可以是例如:将所选择的内容置于剪切板上,接着将其粘贴到目标文档的目标位置处;将所选择的内容从源文档拖拽至目标文档中的目标位置;等等。
图3-5是示出了对并入经共享的文档片段的文档的编辑和显示的显示图。图3是示出了在经共享的文档片段被并入之前的时刻的样本目标文档的显示图。目标文档300包括文本301。该文本可以直接被目标文档的根片段包含,或者可以被由目标文档的根片段内的片段引用所标识的片段包含。
图4是示出了在经共享的文档片段被并入之后的时刻紧接着的样本目标文档的显示图。在该时刻,除了包含文本401之外,目标文档400还包含从源文档(未示出)传输的所并入的内容310。所并入的内容构成了公司信头,包括公司标志的图像411以及公司的文本地址412。
在用户以固定模式并入信头内容的情况下,所述信头内容将在目标文档中保持不变,除非并且直到所述并入被改变至不同模式为止。在用户以可分流模式并入所述信头内容的情况下,用户可以在目标文档的上下文中改变信头内容;这样的改变将不会影响源文档中的信头内容,并且对源文档中的信头内容的任何改变将不会反映在目标文档中。在用户以实时模式并入所述信头内容的情况下,用户可以受制于任何可应用的许可而在目标文档的上下文中改变信头内容,并且这样做将会改变源文档以及以实时模式并入信头内容的任何其他文档中的信头内容。类似地,经由源文档或者以实时模式并入信头内容的任何其他文档而对所述信头内容的改变将会反映在目标文档中。
图5是示出样本目标文档的显示图,其中经共享的文档片段以实时模式并入到目标文档之后,内容例如被另一用户在源文档的上下文中改变。可以看到的是,此时在目标文档500中,信头内容510包含新的公司标志511以及新的公司地址512,两者都在源文档的上下文中被替换,并且根据目标文档以实时模式对该内容的并入而反映在所述目标文档中。
图6是流程图,其示出了通常由一些实施例中的设施执行以便将文档片段并入到文档中并且调节其并入的模式的步骤。在步骤601中,所述设施接收用于将片段添加至目标文档的用户交互。在各种实施例中,这样的交互可以是例如:将所选择的内容复制到剪贴板上,接着将它粘贴到目标文档中的目标位置处;将所选择的内容从源文档拖拽至目标文档中的目标位置;等等。在用户选择内容以添加至不完全对应于整个现有片段的目标文档时,所述设施例如通过细分出现在源文档中的片段来创建所选择内容与其完全对应的一个或多个片段。在一些情况下,这涉及在源文档中改变和/或增加片段引用,以及在一个或多个其他文档中以实时模式并入相同内容。
在步骤602中,所述设施在目标文档中创建片段引用。在步骤603中,所述设施用添加至文档的片段的片段ID来填充片段引用的起源成分及其当前成分两者。在步骤604中,所述设施接收指定用于将片段并入目标文档中的模式的用户交互。在一些实施例中,单一交互或相关的一系列交互都可以将片段添加至文档并且指定模式。如果在步骤604中所接收的用户动作指定实时模式,则所述设施在步骤605中继续;如果其指定跟随模式,在所述设施在步骤606中继续;如果其指定了可分流模式,则所述设施在步骤607中继续;如果其指定了固定模式,则所述设施在步骤612中继续。如果其指定了特殊可分流模式,则所述设施在步骤613中继续;并且如果其指定了特殊跟随模式,则所述设施在步骤614中继续。
在步骤605中,在指定了实时模式的情况下,所述设施针对引用将上下文中的编辑设置为是,并且将版本选择设置为最新。在步骤605之后,所述设施在步骤604中继续以允许用户随后指定针对该片段的新模式。在步骤606中,在指定了跟随模式的情况下,所述设施针对引用将上下文中的编辑设置为否(no),并且将版本选择设置为最新。在步骤606之后,所述设施在步骤604中继续。在步骤607中,在指定了可分流模式的情况下,所述设施针对引用将上下文中的编辑设置为是(yes),并且将版本选择设置为当前时间或者用户所选择的较早时间。在步骤608中,如果用户选择在引用的上下文中对片段进行编辑,则所述设施在步骤609中继续,否则所述设施在步骤604中继续。在步骤609中,所述设施创建反映对所添加的片段应用步骤608的编辑的新片段。所述新片段具有不同于所添加的片段的片段ID。在步骤610,所述设施用新片段的片段ID来填充片段引用的当前成分。在步骤611中,所述设施将引用的模式改变至实时。在步骤611之后,所述设施在步骤605中继续。在步骤612中,在指定了固定模式的情况下,所述设施针对引用将上下文中的编辑设置为否,并且将版本选择设置为当前时间或者用户所选择的较早时间。在步骤612之后,所述设施在步骤604中继续。在步骤613中,在指定了特殊可分流模式的情况下,所述设施将上下文中的编辑设置为是,并且将版本选择设置为版本选择规则,例如经由额外的用户交互所指定的版本选择规则、默认版本选择规则、推测的版本选择规则等。在步骤613之后,所述设施在步骤608中继续。在步骤614中,在指定了特殊跟随模式的情况下,所述设施将上下文中的编辑设置为否,并且以类似于步骤613的方式将版本选择设置为版本选择规则。在步骤614之后,所述设施在步骤604中继续。
本领域技术人员将理解的是,在图6以及下文中所讨论的流程图中的每个流程图中所示出的步骤可以以多种方式来改变。例如,可以重新安排步骤的顺序;可以并行地执行一些步骤;可以省略所示出的步骤,或者可以包括其他步骤;可以将所示出的步骤划分为子步骤,或者可以将所示出的多个步骤组合为单个步骤,等等。
图7是流程图,其示出了通常由一些实施例中的设施执行以便将包含共享片段的文档具体化的步骤。在各种实施例中,所述设施在文档被打开时,在文档需要被显示时,在用户尝试将其添加至文档时等执行这些步骤。在各种实施例中,所述设施对这些步骤的执行以各种方式分布在客户端与服务器之间。在步骤701中,所述设施例如通过取回其根片段来取回文档。所述设施针对在文档中出现的每个片段引用而循环进行步骤702-704,所述片段引用包括从一个片段到另一个的转移片段引用。在步骤703中,所述设施取回使用在片段引用的当前成分中所包含的片段ID的片段的内容。该取回受制于在所述片段引用的条件成分中所包含的任何版本选择条件;也就是说,所述取回是关于指定所包含的任何版本选择条件的片段的最新版本来执行的,或者是在没有版本选择条件的情况下关于片段的最新版本来执行的。在各种实施例中,所述设施使用各种形式的片段版本选择逻辑。在一些实施例中,取回片段的过程指示与片段相关联的许可(包括片段是否可以由当前用户来编辑),其中所述设施使用所述许可来指示和控制用户是否可以在文档的上下文中对所述片段进行编辑。在下文中结合图8-11更加详细地讨论了片段取回。在步骤704中,所述设施基于片段引用的模式使得所述片段在上下文中是可编辑的。在步骤705中,如果还有额外的片段引用要处理,则所述设施在步骤702中继续以处理下一个片段引用,否则所述设施在步骤706中继续。在步骤706中,所述设施使用在步骤703中所取回的片段内容来将文档具体化。在步骤706之后,这些步骤结束。在一些实施例中(未示出),不同于循环地执行在图7中所示出的过程,所述设施将其作为树形图的递归下降来执行,其中,透镜(lens)充当内容节点的父节点,并且当文档被具体化时修改渲染行为。
图8是表格图,其示出了由一些实施例中的设施用来存储关于片段的信息的片段目录表的样本内容。在一些实施例中,所述片段目录表以及在图9-11中所描述的其他表格被在数据中心中在能够由执行作为所述设施的一部分的服务器软件的服务器访问的存储设备上。在一些实施例中,这些表格中的一些或全部被存储在多个数据中心中以便为它们所存储的数据提供生存能力以及所在地的测量。片段目录表800由例如行801-802的行所组成,每一行对应于不同片段。每一行被划分为以下的列:片段ID列811,其包含标识该行所对应的片段的片段ID;由…创建列812,其包含标识创建了该片段的用户的信息;创建时间列813,其具有指示该片段被创建的时间的内容;以及访问许可列814,其指定该片段可以被各种用户访问的方式。例如,行801指示具有片段ID 894645的片段是由用户vision在9/6/2002 14:19:01创建的,并且可以被所有用户读和写。在一些实施例中,所述设施采用地理上不变的时间(例如,以格林威治标准时间表达的时间)以便协调位于不同时区的服务器和客户端。在服务器接收针对片段ID 894645的取回请求的情况下,其使用行801来确定针对该片段的访问许可。
尽管图8以及在下文中所讨论的表格图中的每个表格图都示出了其内容和组织被设计为使得它们更易于由人类读者所理解的表格,但是本领域技术人员将理解的是,由所述设施用来存储该信息的实际的数据结构可以不同于所示出的表格,这在于它们例如可以以不同的方式来组织;可以包含比所示出的更多或更少的信息;可以被压缩、加密、和/或索引;可以包含比所示出的多很多的数量的行,等等。
图9是表格图,其示出了由一些实施例中的设施用来存储关于片段版本的信息的片段版本表的样本内容。特别地,所述设施使用片段版本表来标识现存片段的不同版本及其时间顺序。在一些实施例中,所述设施仅保存每个片段的单个版本,在该情况下,片段版本表不是必需的,并且片段ID被所述设施所保存的其他表格中的片段版本ID所替代。片段版本表900由例如行901-903的行组成,每一行对应于不同的片段版本。行中的每一行被划分为以下的列:片段版本ID列911,其包含该行所对应于的片段版本的片段版本ID,其唯一地标识该片段版本;片段ID列912,其包含标识该片段版本所对应的片段的片段ID;以及更新时间列,其指示片段版本最后被更新的时间。例如,行901指示具有片段版本ID 65489151的片段版本对应于具有片段ID 894645的片段,并且在9/15/2002 9:17:12最后被更新。在服务器接收针对片段ID 894645的取回请求的情况下,其使用行901和902来标识针对该片段ID所存在的两个片段版本。这两行也可以用于确定哪个片段版本是较新的。
在一些实施例中,在使用片段版本的情况下,一些片段版本是可写的,这使得作者至少在并没有被任何固定片段引用所引用的片段版本的情况下可以在内容被创建之后的时间对其进行改变。然而,在一些实施例中,每个片段版本都是只读的,并且对现有片段版本所包含的内容的任何修订都使得所述设施创建新的片段版本。在各种实施例中,新的片段版本的创建以各种粒度水平进行,包括针对每个编辑会话的新的片段版本,针对每次键击的新的片段版本,或者处于其间的某一水平,例如每五秒、每分钟、每15分钟等。
图10是表格图,其示出了由一些实施例中的设施用来存储关于片段版本实例的信息的片段版本实例表格的样本内容。特别地,所述设施针对特定的片段版本使用片段版本示例目录表来标识存储在不同服务器上的片段版本的实例,以使得所述设施可以选择片段版本中的一个片段版本来取回,并且使得如果片段版本在可能的情况下在实施例中进行改变,则它的每个实例可以被改变或无效。片段版本实例目录表1000由例如行1001-1008的行组成,每一行对应于片段版本与片段版本的实例存储于其上的服务器的不同组合。每一行被划分为以下列:片段版本ID列1011,其包含标识片段版本的片段版本ID;以及服务器ID列1012,其标识片段版本的实例存储于其上的服务器。例如,行1001指示具有片段版本ID12345498的片段版本具有存储在具有服务器ID 9103的服务器上的实例。在各种实施例中,所述设施使用各种其他方法来标识其中存储片段版本的实例的位置,例如通过使用数据中心ID、存储设备ID等。
图11是表格图,其示出了由一些实施例中的设施用来存储片段版本实例的片段版本实例内容表的样本内容。片段版本实例内容表1100由例如行1101-1103的行组成,每一行对应于全部存储在特定服务器上的片段版本实例。片段版本实例内容表1100特别地被存储在具有服务器ID 9103的服务器上。行中的每一行被划分为以下的列:片段版本ID列1111,其包含标识该行所对应的片段版本的片段版本ID;更新时间列1112,其指示片段版本实例最后被更新的时间;以及片段内容列1113,其包含片段版本实例的内容。例如,行1101指示具有片段版本ID 91285817和更新时间1/16/1987 16:02:54的片段版本实例包含特定的图像数据。片段1113包含所述设施响应于片段取回请求而返回的数据。
在一些实施例中,不同于如在图11中所示的将每个片段版本实例作为单个实体来存储,所述设施采用“擦除编码”技术,在该技术中其将每个片段版本实例的内容作为任何数量的较小的碎片来分布,所述碎片可以被存储在服务器的任何布置上。
去耦合的呈现资源
图12是流程图,其示出了通常由所述设施执行以便取回内容片段的步骤,所述步骤包括选择所述内容片段的呈现片段以及使用所选择的呈现片段来呈现所述内容片段。在一些实施例中,所取回的内容片段是由另一内容片段中的片段引用所引用的内容片段。在步骤1201中,所述设施取回由片段引用所引用的内容片段。在一些实施例中,这涉及选择和取回如在上文中所讨论的、在一些情况下对片段引用的模式敏感的内容片段的特定版本。在步骤1202中,如果片段引用指定用于在呈现所引用的内容片段时使用的呈现片段,则所述设施继续至步骤1203,否则所述设施在步骤1204中继续。在步骤1203中,所述设施取回由片段引用所指定的呈现片段。在一些实施例中,所述设施在步骤1203中(并且在下文中所讨论的步骤1205和1206中)采用在下文中进一步描述的呈现片段版本选择逻辑来选择针对取回所指定的呈现片段的特定版本。在一些实施例中,除了指定呈现片段,片段引用还指定用于选择呈现片段的版本的基础,例如选择最新的呈现片段,或者选择某一指定时间后的最新的呈现片段。在步骤1203之后,所述设施在步骤1207中继续。在步骤1204中,如果在步骤1201中取回的所引用的内容片段指定呈现片段,则所述设施在步骤1205中继续,否则所述设施在步骤1206中继续。在步骤1205中,所述设施取回由所引用的内容片段所指定的呈现片段。在步骤1205之后,所述设施在步骤1207中继续。在步骤1206中,所述设施取回基于所引用的内容片段的类型的呈现片段。例如,在一些实施例中,所述设施针对文本内容片段取回一个呈现片段,并且针对数字表格内容片段取回另一个呈现片段。在步骤1207中,所述设施使用在步骤1203、1205、或1206中所取回的呈现片段来呈现在步骤1201中所取回的所引用的内容片段。在步骤1207之后,这些步骤结束。
图13是表格图,其示出了在一些实施例中由所述设施使用以基于内容片段的类型来选择内容片段的呈现片段的内容片段类型映射表的样本内容。表格1300由例如行1301-1303的行组成,每一行对应于不同的呈现片段。在一些实施例中,在内容片段类型映射表中列出了能够使用的所有呈现片段;在一些实施例中,仅仅列出了可用的呈现片的合适的子集。特别地,每一行针对其所对应的呈现片段而在列1311中指定要用于呈现的内容片段的类型。例如,行1301在列1312中指示具有片段ID 569349的呈现片段旨在呈现文本内容片段。行1301还在列1313中指示该呈现片段将用作针对该类型的内容片段的默认呈现片段,即该呈现片段将用于文本内容片段,其中针对所述文本内容片段的呈现片段没有在内容片段本身或者在用于并入内容片段的片段引用中列出。在各种实施例中,所述设施使用各种其他方案来从针对内容片段的类型所列出的呈现片段中选择合适的呈现片段。
在一些实施例中,所述设施使用内容片段类型映射表或类似表格的内容,以作为向在指定内容片段的呈现片段或者引用内容片段的片段引用的过程中的用户显示针对该内容片段的类型的内容片段可用的呈现片段的基础。例如,在作者在插入对文本内容片段的片段的引用的情况下,所述设施可以呈现关于具有片段ID 569349和443870的呈现片段中的每个呈现片段的信息,例如文本描述。
图14是流程图,其示出了在一些实施例中通常由所述设施执行以基于来自作者的输入来创作内容片段的步骤。在步骤1401中,所述设施从作者处接收内容。在步骤1402处,所述设施从作者处接收对要用于呈现内容的呈现片段的选择,至少在没有被由并入该内容片段的片段引用所指定的不同的呈现片段覆写的情况下。在步骤1403中,所述设施将在步骤1402中所选择的呈现片段的片段ID与在步骤1401中所接收的内容一起存储在内容片段中。在步骤1403之后,这些步骤结束。
图15是数据结构图,其示出了内容片段的版本与它们所引用的呈现片段的版本之间的关系。内容片段具有三个版本1510、1520、和1530。所示出的内容片段的版本中的每个版本具有内容、时间戳、以及对呈现片段的引用。例如,内容片段版本1510具有文本内容1511、时间戳1512、以及对呈现片段的应用1513。由内容片段版本1510所引用的呈现片段具有两个示出的版本,呈现片段版本1550和1560。这些呈现片段版本中的每个呈现片段版本具有呈现代码和时间戳。例如,呈现片段版本1550具有呈现代码1551和时间戳1552。为了便于理解,代替实际的呈现代码1551而示出了描述该代码的效果的叙述性概要:代码以从左到右的顺序在文本内容片段中流动文本。同一呈现片段的版本1560以相反的方向流动文本,并且具有较晚的时间戳。因为引用1513和1523被示出为向下指向呈现片段版本1550,所以这些引用指定使用该呈现片段的最新版本;因为引用1533指向呈现片段版本1550的左侧,所以该引用指定使用呈现片段的该特定版本,即使有较新的版本可用。因此,应用1513和1523类似于对内容片段的实时引用,而引用1533类似于对内容片段的固定引用。
在图15中所示出的呈现片段的规格能够在不同的时间产生不同的呈现结果。在各种实施例中,这在特定时间接收到实时具体化请求时发生,或者在针对内容片段的具体化请求指定特定的有效时间时发生,或者在内容片段在用户可以用来显示在多个有效时间处的内容片段的时间线查看器中显示的情况下发生。
图16是显示图,其示出了呈现在图15中在7/21/13 19:02:11与9/15/13 16:12:10之间的有效时间处所示出的内容片段的呈现结果。显示1600包含来自内容片段版本1510的内容1511,其通过呈现片段版本1550中的呈现代码1551而从左到右显示。
图17是显示图,其示出了呈现在图15中在9/15/13 16:12:10与11/5/13 9:22:00之间的时间处所示出的内容片段的呈现结果。可以看到,显示1700包含来自内容片段版本1510的内容1511,其通过呈现片段版本1560中的呈现代码1561而从右到左显示。
图18是显示图,其示出了呈现在图15中在11/5/13 9:22:00与12/1/13 15:11:19之间的时间处所示出的内容片段的呈现结果。可以看到,显示1800包含来自内容片段版本1520的内容1521,其通过呈现片段版本1560中的呈现代码1561而从右到左显示。
图19是显示图,其示出了呈现在图15中在时间12/1/13 15:11:19之后所示出的内容片段的呈现结果。可以看到,显示1900包含由内容片段版本1530所包含的内容1531,其通过呈现片段版本1550中的呈现代码1551而从左到右显示。
在一些实施例中,呈现片段可以另一个呈现片段以将所引用的呈现片段中的代码并入在进行引用的呈现片段中。同样,在一些实施例中,呈现片段的代码可以包含用于在两个或更多个其他呈现片段或其引用的呈现片段版本中进行选择的逻辑。
图20是数据结构图,其示出了引用其他呈现片段版本的呈现片段版本。内容片段的版本2010包含表格内容2011,以及对第一呈现片段的引用2016。第一呈现片段具有两个版本,呈现片段版本2020和2030。呈现片段版本2020包含用于基于表格中的数值来绘制图的条形的呈现代码2021,以及用于将这些数字渲染为针对图的条形的标签的呈现代码2022。呈现代码2022包括对第二呈现片段的版本2040的引用2026。呈现片段版本2040包含用于使用作为千位数与百位数之间的分隔符的逗号来渲染数字的呈现代码2041。
图21是显示图,其示出了针对在图20中在呈现片段版本2030被创建之前所示出的内容片段的呈现结果。在此时,使用呈现片段版本2020。其呈现代码2021在显示2100中的正确的高度处绘制条形2111、2112、和2113。其呈现代码2022通过执行呈现片段版本2040中的呈现代码2041来渲染数字2121、2122、和2123。执行呈现代码2041使得数字2121和2123在千位数与百位数之间具有逗号分隔符。
图22是显示图,其示出了针对在图20中在呈现片段版本2030被创建之前所示出的内容片段在欧洲地理区域中所生成的呈现结果。因为内容片段版本2010中的引用2016指向呈现片段版本202的顶部,因此其指定对应的呈现片段的最新版本,该最新版本现在是呈现片段版本2030。其呈现代码2031在显示2200中的合适的高度处绘制条形2211、2212、和2213。此外,其呈现代码2032基于区域而差别地渲染数字2221、2222、和2223。在这里,在区域是东欧的情况下,呈现代码2032跟随对呈现片段版本2050的引用2037,该呈现片段版本2050的呈现代码2051将数字2221和2223渲染为具有作为千位分隔符的句号。另一方面,在图20中所示出的内容片段是在呈现片段版本2030在美国地区被创建之后呈现的情况下,呈现代码2032跟随对呈现片段版本2040的引用2036,该呈现片段版本2040的呈现代码2041使用逗号千位分隔符,如在图21中所示出的。
图23是流程图,其示出了在一些实施例中通常由所述设施执行以便将对第二内容片段的引用添加至第一内容片段的步骤。在步骤2301中,所述设施从作者处接收在第一内容片段的上下文中对第二内容片段的选择。在步骤2302中,所述设施从作者处接收对将片段引用添加至第一内容片段的引用模式的选择。在步骤2303中,所述设施从作者处接收对要用于在第一内容片段的上下文中呈现第二内容片段的呈现片段的选择。在步骤2304中,所述设施创建片段引用,所述片段引用包括在步骤2302中所选择的引用模式,在步骤2301中所选择的第二内容片段的片段ID,以及在步骤2303中所选择的经选择的呈现片段的片段ID。在步骤2304之后,这些步骤结束。
图24是数据结构图,其示出了将一个内容片段并入到另一内容片段中的片段引用,所述片段引用指定用于在进行引用的内容片段内呈现所引用的内容片段的呈现片段。进行引用的内容片段2410包括原生内容2411,以及片段引用2416。片段引用包含实时引用模式2417,引用所引用的内容片段2420的指针或片段ID 2418,以及引用所选择的呈现片段2430的引用或片段ID 2419。因此,所引用的呈现片段2430中的呈现代码2431用于在显示进行引用的内容片段2410时呈现所引用的内容片段2420中的内容2421。因此,将呈现片段指定为片段引用2416的一部分,作者基于进行引用的内容片段2410的类型来覆写任何默认呈现片段选择。同样,如果所引用的内容片段2420本身指定了呈现片段是真的,则由所引用的内容片段2420所指定的呈现片段也将由对呈现片段2430的内容引用2416中的规格覆写。
在一些实施例中,相比于如在上文中结合图24所讨论的用由对该内容片段的片段引用所指定的不同的呈现片段来覆写由内容片段所指定的呈现片段,所述设施用在该内容片段内所指定的不同的呈现片段来覆写在对内容片段的片段引用中所指定的呈现片段。
在一些实施例中,所述设施提供了用于呈现内容片段的计算机系统。所述设施包括:请求子系统,其被配置为接收每个用于呈现内容片段的请求,由所述请求子系统接收的所述请求每个指定标识所述内容片段的片段标识符;片段取回子系统,其被配置为针对由所述请求子系统所接收的每个请求,从片段存储取回所述内容片段的内容,所述内容片段是由所述请求所指定的所述片段标识符所标识的;访问子系统,其被配置为针对由所述请求子系统所接收的每个请求,访问与所述内容片段相关联的片段标识符,所述内容片段是由所述请求所指定的所述片段标识符所标识的;所述片段取回子系统还被配置为,针对由所述请求子系统所接收的每个请求,从所述片段存储取回呈现片段的内容,所述呈现片段是由针对所述请求由所述访问子系统所访问的所述片段标识符所标识的;以及调用子系统,其被配置为,针对由所述请求子系统所接收的每个请求,调用由所述片段取回子系统针对所述请求所取回的所述呈现片段的内容中的代码,以呈现所述内容片段的内容,所述内容片段是由所述请求所指定的所述片段标识符所标识的。这些子系统中的每个子系统是计算机相关的实体,包括硬件、硬件与软件的组合、软件、或者在计算机上执行的软件中的一个。
在一些实施例中,所述设施提供一种计算机可读介质,其具有为了呈现文档内容而被配置为使得计算系统执行以下操作的内容:在应用中:接收用于将特定的文档内容具体化的请求;响应于接收到所述请求:使得所述文档内容被取回;并且使得既不是所述应用原生的也不链接到所述应用中的呈现代码被执行以呈现所取回的文档内容。
在一些实施例中,所述设施提供一种用于呈现文档内容的计算系统中的方法。所述方法包括:在应用中:接收用于将特定的文档内容具体化的请求;响应于接收到所述请求:使得所述文档内容被取回;并且使得既不是所述应用原生的也不链接到所述应用中的呈现代码被执行以呈现所取回的文档内容。
在一些实施例中,所述设施提供一种存储与文档相关联的片段并入引用数据结构的计算机可读介质。所述数据结构包括:第一片段标识符,其标识要被并入到所述文档中的内容片段;以及第二片段标识符,其标识呈现片段,所述呈现片段包含要被执行以在所述文档的上下文中呈现所述内容片段的内容的代码,这使得所述数据结构的内容能够用于:取回由所述第一片段标识符所标识的所述内容片段,取回由所述第二片段标识符所标识的所述呈现片段,并且执行所述呈现片段中的代码以呈现所述内容片段的内容。
结论
本领域技术人员将理解的是,在上文中所描述的设施可以以各种方式进行直接适配或扩展。尽管前述描述对特定实施例进行了参考,但是本发明的范围仅仅由以下的权利要求和其中所引用的元素来限定。
Claims (15)
1.一种用于呈现内容片段的计算机系统,包括:
请求子系统,其被配置为接收每个用于呈现内容片段的请求,由所述请求子系统接收的所述请求每个指定标识所述内容片段的片段标识符;
片段取回子系统,其被配置为针对由所述请求子系统所接收的每个请求,从片段存储取回所述内容片段的内容,所述内容片段是由所述请求所指定的所述片段标识符所标识的;
访问子系统,其被配置为针对由所述请求子系统所接收的每个请求,访问与所述内容片段相关联的片段标识符,所述内容片段是由所述请求所指定的所述片段标识符所标识的;
所述片段取回子系统还被配置为,针对由所述请求子系统所接收的每个请求,从所述片段存储取回呈现片段的内容,所述呈现片段是由针对所述请求由所述访问子系统所访问的所述片段标识符所标识的;以及
调用子系统,其被配置为,针对由所述请求子系统所接收的每个请求,调用由所述片段取回子系统针对所述请求所取回的所述呈现片段的内容中的代码,以呈现所述内容片段的内容,所述内容片段是由所述请求所指定的所述片段标识符所标识的。
2.根据权利要求1所述的计算机系统,其中,由所述片段取回子系统所取回的至少一个呈现片段的代码是由与针对所述片段取回子系统、访问子系统、以及调用子系统的代码不同的实体开发的。
3.一种存储与文档相关联的片段并入引用数据结构的计算机可读介质,所述数据结构包括:
第一片段标识符,其标识要被并入到所述文档中的内容片段;以及
第二片段标识符,其标识呈现片段,所述呈现片段包含要被执行以在所述文档的上下文中呈现所述内容片段的内容的代码,
这使得所述数据结构的内容能够用于:取回由所述第一片段标识符所标识的所述内容片段,取回由所述第二片段标识符所标识的所述呈现片段,并且执行所述呈现片段中的代码以呈现所述内容片段的内容。
4.一种计算机可读介质,其具有为了呈现文档内容而被配置为使得计算系统执行以下操作的内容:
在应用中:
接收用于将特定的文档内容具体化的请求;
响应于接收到所述请求:
使得所述文档内容被取回;并且
使得既不是所述应用原生的也不链接到所述应用中的呈现代码被执行以呈现所取回的文档内容。
5.根据权利要求4所述的计算机可读介质,其中,使得所述文档内容被取回包括呼用具有标识包含所述文档内容的存储单元的标识符的所选择的界面,
所述计算机可读介质具有还使得计算系统呼用所选择的界面的内容,所选择的界面具有标识包含所述呈现代码的所使用的存储单元的标识符。
6.根据权利要求4所述的计算机可读介质,具有还使得计算系统执行以下操作的内容:
访问标识所述呈现代码的标识符,所述标识符以从以下中选择的方式与所述文档内容相关联:结合所述文档内容而被存储,被存储在引用所述文档内容的并入引用中,以及从所述文档内容的内容类型而被映射至;以及
使用所访问的标识符来取回所述呈现代码。
7.根据权利要求6所述的计算机可读介质,其中,使用所访问的标识符来取回所述呈现代码包括:
选择与所访问的标识符相关联的多个呈现代码版本中的一个呈现代码版本;以及
取回所选择的呈现代码版本。
8.根据权利要求7所述的计算机可读介质,其中,与所访问的标识符相关联的所述多个呈现代码版本被排序,
并且其中,选择与所访问的标识符相关联的多个呈现代码版本中的一个呈现代码版本包括选择与所访问的标识符相关联的多个呈现代码版本中在所述呈现代码版本的排序中最新的一个呈现代码版本。
9.根据权利要求7所述的计算机可读介质,其中,所述文档内容是在创作时间处创作的,
并且其中,选择与所访问的标识符相关联的多个呈现代码版本中的一个呈现代码版本包括选择与所访问的标识符相关联的所述多个呈现代码版本中当前在所述文档内容的所述创作时间处的一个呈现代码版本。
10.根据权利要求4所述的计算机可读介质,具有还使得计算系统从商店购买使得被执行的呈现代码的内容。
11.根据权利要求7所述的计算机可读介质,其中,选择与所访问的标识符相关联的多个呈现代码版本中的一个呈现代码版本包括使用与所述文档内容相关联的逻辑来选择呈现代码版本。
12.根据权利要求1所述的计算机系统,其中,由所述片段取回子系统所取回的至少一个呈现片段的所述代码具有从脚本代码、经解译的代码、以及经编译的代码中选择的代码的类型。
13.根据权利要求1所述的计算机系统,其中,从由所述片段取回子系统所存储的所述片段取回片段内容包括从被实现为基于云的服务的片段存储取回片段内容。
14.根据权利要求1所述的计算机系统,还包括检测子系统,其被配置为,针对其内容由所述片段取回子系统取回的每个呈现片段,检测所述呈现片段的内容是否包括指定标识另外的呈现片段的片段标识符的引用,并且其中,所述片段取回子系统还被配置为,针对其内容由所述检测子系统检测为包括指定标识另外的呈现片段的片段标识符的引用,从所述片段存储取回所述另外的呈现片段,
并且其中,所述调用系统还被配置为,针对每个另外的呈现片段,调用所述另外的呈现片段的内容中的代码以作为调用其内容包含对所述另外的呈现片段的所检测的引用的所述呈现片段的内容中的代码的一部分。
15.根据权利要求3所述的计算机可读介质,所述数据结构还包括:
指定模式的信息,所述模式能够用于在由所述第二片段标识符所标识的多个呈现片段版本中选择要取回的呈现片段版本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111002268.5A CN113705193A (zh) | 2015-06-29 | 2016-06-28 | 使用去耦合的呈现资源来呈现内容 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/754,587 | 2015-06-29 | ||
US14/754,587 US10021187B2 (en) | 2015-06-29 | 2015-06-29 | Presenting content using decoupled presentation resources |
PCT/US2016/039694 WO2017003972A1 (en) | 2015-06-29 | 2016-06-28 | Presenting content using decoupled presentation resources |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111002268.5A Division CN113705193A (zh) | 2015-06-29 | 2016-06-28 | 使用去耦合的呈现资源来呈现内容 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107710190A true CN107710190A (zh) | 2018-02-16 |
CN107710190B CN107710190B (zh) | 2021-09-07 |
Family
ID=56369232
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680039035.3A Active CN107710190B (zh) | 2015-06-29 | 2016-06-28 | 使用去耦合的呈现资源来呈现内容 |
CN202111002268.5A Pending CN113705193A (zh) | 2015-06-29 | 2016-06-28 | 使用去耦合的呈现资源来呈现内容 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111002268.5A Pending CN113705193A (zh) | 2015-06-29 | 2016-06-28 | 使用去耦合的呈现资源来呈现内容 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10021187B2 (zh) |
EP (1) | EP3314458A1 (zh) |
CN (2) | CN107710190B (zh) |
WO (1) | WO2017003972A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597896A (zh) * | 2018-10-19 | 2019-04-09 | 上海星佑网络科技有限公司 | 信息引用方法和装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160378735A1 (en) * | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Metamorphic documents |
US10275430B2 (en) * | 2015-06-29 | 2019-04-30 | Microsoft Technology Licensing, Llc | Multimodal sharing of content between documents |
US11250211B2 (en) * | 2019-08-16 | 2022-02-15 | Hcl Technologies Limited | Generating a version associated with a section in a document |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6507857B1 (en) * | 1999-03-12 | 2003-01-14 | Sun Microsystems, Inc. | Extending the capabilities of an XSL style sheet to include components for content transformation |
US20050091225A1 (en) * | 2003-10-23 | 2005-04-28 | Mckee Timothy P. | System and a method for presenting related items to a user |
US7134073B1 (en) * | 2000-06-15 | 2006-11-07 | International Business Machines Corporation | Apparatus and method for enabling composite style sheet application to multi-part electronic documents |
WO2008095872A2 (en) * | 2007-02-06 | 2008-08-14 | International Business Machines Corporation | Chaining configuration sets in a content management system |
CN101446971A (zh) * | 2008-12-17 | 2009-06-03 | 腾讯科技(深圳)有限公司 | 构建内容管理系统的方法及装置 |
US20130061273A1 (en) * | 2002-05-10 | 2013-03-07 | Richard Reisman | Method and apparatus for browsing using alternative linkbases |
US20130159846A1 (en) * | 2007-09-21 | 2013-06-20 | International Business Machines Corporation | Profiling content creation and retrieval in a content management system |
WO2013116048A1 (en) * | 2012-01-30 | 2013-08-08 | Microsoft Corporation | Extension activation for related documents |
CN103809946A (zh) * | 2012-11-09 | 2014-05-21 | 镇江华扬信息科技有限公司 | 一种基于xml和中间件的异构数据库集成的方法 |
CN104199911A (zh) * | 2014-08-28 | 2014-12-10 | 天脉聚源(北京)教育科技有限公司 | Ppt演示文稿的保存方法和装置 |
CN104428810A (zh) * | 2012-07-13 | 2015-03-18 | 谷歌公司 | 集合中的内容项之间的导航 |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6538673B1 (en) * | 1999-08-23 | 2003-03-25 | Divine Technology Ventures | Method for extracting digests, reformatting, and automatic monitoring of structured online documents based on visual programming of document tree navigation and transformation |
US7072904B2 (en) | 2002-12-02 | 2006-07-04 | Microsoft Corporation | Deletion and compaction using versioned nodes |
US7284235B2 (en) | 2003-10-15 | 2007-10-16 | Microsoft Corp | Creation of content versions using content layers |
US7565645B2 (en) | 2005-01-18 | 2009-07-21 | Lenovo (Singapore) Pte Ltd. | Method and apparatus for marking code for data versioning |
US7953696B2 (en) | 2005-09-09 | 2011-05-31 | Microsoft Corporation | Real-time synchronization of XML data between applications |
US9380096B2 (en) * | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US9432433B2 (en) * | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US8762493B1 (en) | 2006-06-22 | 2014-06-24 | Google Inc. | Hierarchical spatial data structure and 3D index data versioning for generating packet data |
US8639214B1 (en) * | 2007-10-26 | 2014-01-28 | Iwao Fujisaki | Communication device |
US7996359B2 (en) | 2008-06-16 | 2011-08-09 | International Business Machines Corporation | Managing multi-node multi-version systems |
US8307010B2 (en) | 2008-09-26 | 2012-11-06 | Microsoft Corporation | Data feature tracking through hierarchical node sets |
US20110213655A1 (en) * | 2009-01-24 | 2011-09-01 | Kontera Technologies, Inc. | Hybrid contextual advertising and related content analysis and display techniques |
CN102025760B (zh) * | 2009-09-21 | 2015-11-25 | 华为技术有限公司 | Http的媒体传输方法及装置 |
US20110096828A1 (en) * | 2009-09-22 | 2011-04-28 | Qualcomm Incorporated | Enhanced block-request streaming using scalable encoding |
US20110128288A1 (en) * | 2009-12-02 | 2011-06-02 | David Petrou | Region of Interest Selector for Visual Queries |
US8782605B2 (en) | 2010-05-28 | 2014-07-15 | Salesforce.Com, Inc. | Methods and systems for presenting different versions of an application |
US20110302195A1 (en) | 2010-06-08 | 2011-12-08 | International Business Machines Corporation | Multi-Versioning Mechanism for Update of Hierarchically Structured Documents Based on Record Storage |
US8683430B2 (en) | 2011-01-07 | 2014-03-25 | International Business Machines Corporation | Synchronizing development code and deployed executable versioning within distributed systems |
US8666981B2 (en) | 2011-02-28 | 2014-03-04 | International Business Machines Corporation | Bottom-up optimistic latching method for index trees |
US9098470B2 (en) | 2011-05-23 | 2015-08-04 | Microsoft Technology Licensing, Llc | Versioned and hierarchical data structures and distributed transactions |
US9417754B2 (en) * | 2011-08-05 | 2016-08-16 | P4tents1, LLC | User interface system, method, and computer program product |
US8527480B1 (en) | 2011-12-28 | 2013-09-03 | Emc Corporation | Method and system for managing versioned structured documents in a database |
US8949281B2 (en) | 2012-03-31 | 2015-02-03 | Emc Corporation | System and method of hierarchical data containers |
EP3022639B1 (en) * | 2013-07-16 | 2018-10-31 | Pinterest, Inc. | Object based contextual menu controls |
US9870349B2 (en) * | 2013-09-20 | 2018-01-16 | Yottaa Inc. | Systems and methods for managing loading priority or sequencing of fragments of a web object |
US9516081B2 (en) * | 2013-09-20 | 2016-12-06 | Amazon Technologies, Inc. | Reduced latency electronic content system |
US10104082B2 (en) * | 2013-11-06 | 2018-10-16 | William P. Jones | Aggregated information access and control using a personal unifying taxonomy |
US10515110B2 (en) * | 2013-11-12 | 2019-12-24 | Pinterest, Inc. | Image based search |
EP3193261B1 (en) * | 2014-03-18 | 2020-11-04 | smartwork solutions GmbH | Method and system for editing virtual documents |
US20160092959A1 (en) * | 2014-09-26 | 2016-03-31 | Real Data Guru, Inc. | Tag Based Property Platform & Method |
US20160048934A1 (en) * | 2014-09-26 | 2016-02-18 | Real Data Guru, Inc. | Property Scoring System & Method |
US10269055B2 (en) * | 2015-05-12 | 2019-04-23 | Pinterest, Inc. | Matching user provided representations of items with sellers of those items |
US10263877B1 (en) * | 2016-08-12 | 2019-04-16 | Pinterest, Inc. | Generating collections of sets based on user provided annotations |
US10803237B2 (en) * | 2016-09-28 | 2020-10-13 | Netsuite, Inc. | Systems and methods for data entry into a region of a display |
US10484503B1 (en) * | 2017-03-10 | 2019-11-19 | Pinterest, Inc. | Reminder options for viewed items |
US10395373B1 (en) * | 2017-04-03 | 2019-08-27 | Pinterest, Inc. | Image feature detection |
US20180260481A1 (en) * | 2018-04-01 | 2018-09-13 | Yogesh Rathod | Displaying search result associated identified or extracted unique identity associated structured contents or structured website |
-
2015
- 2015-06-29 US US14/754,587 patent/US10021187B2/en active Active
-
2016
- 2016-06-28 CN CN201680039035.3A patent/CN107710190B/zh active Active
- 2016-06-28 CN CN202111002268.5A patent/CN113705193A/zh active Pending
- 2016-06-28 EP EP16736348.0A patent/EP3314458A1/en not_active Withdrawn
- 2016-06-28 WO PCT/US2016/039694 patent/WO2017003972A1/en active Application Filing
-
2018
- 2018-06-07 US US16/002,887 patent/US10721305B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6507857B1 (en) * | 1999-03-12 | 2003-01-14 | Sun Microsystems, Inc. | Extending the capabilities of an XSL style sheet to include components for content transformation |
US7134073B1 (en) * | 2000-06-15 | 2006-11-07 | International Business Machines Corporation | Apparatus and method for enabling composite style sheet application to multi-part electronic documents |
US20130061273A1 (en) * | 2002-05-10 | 2013-03-07 | Richard Reisman | Method and apparatus for browsing using alternative linkbases |
US20050091225A1 (en) * | 2003-10-23 | 2005-04-28 | Mckee Timothy P. | System and a method for presenting related items to a user |
WO2008095872A2 (en) * | 2007-02-06 | 2008-08-14 | International Business Machines Corporation | Chaining configuration sets in a content management system |
US20130159846A1 (en) * | 2007-09-21 | 2013-06-20 | International Business Machines Corporation | Profiling content creation and retrieval in a content management system |
CN101446971A (zh) * | 2008-12-17 | 2009-06-03 | 腾讯科技(深圳)有限公司 | 构建内容管理系统的方法及装置 |
WO2013116048A1 (en) * | 2012-01-30 | 2013-08-08 | Microsoft Corporation | Extension activation for related documents |
CN104428810A (zh) * | 2012-07-13 | 2015-03-18 | 谷歌公司 | 集合中的内容项之间的导航 |
CN103809946A (zh) * | 2012-11-09 | 2014-05-21 | 镇江华扬信息科技有限公司 | 一种基于xml和中间件的异构数据库集成的方法 |
CN104199911A (zh) * | 2014-08-28 | 2014-12-10 | 天脉聚源(北京)教育科技有限公司 | Ppt演示文稿的保存方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597896A (zh) * | 2018-10-19 | 2019-04-09 | 上海星佑网络科技有限公司 | 信息引用方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US10721305B2 (en) | 2020-07-21 |
CN113705193A (zh) | 2021-11-26 |
CN107710190B (zh) | 2021-09-07 |
US20160381139A1 (en) | 2016-12-29 |
US10021187B2 (en) | 2018-07-10 |
EP3314458A1 (en) | 2018-05-02 |
WO2017003972A1 (en) | 2017-01-05 |
US20180288157A1 (en) | 2018-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9785903B2 (en) | Metadata-configurable systems and methods for network services | |
CN110045953B (zh) | 生成业务规则表达式的方法及计算装置 | |
CN107851090A (zh) | 可视化文档修订 | |
CN108369577B (zh) | 在电子文档之间共享内容 | |
CN107710189B (zh) | 文档间的内容多模式共享 | |
CN107851089A (zh) | 变形文档 | |
US10185707B2 (en) | Aggregate visualizations of activities performed with respect to portions of electronic documents | |
CN107710202A (zh) | 与旧有工具集成的云原生文档 | |
US10721305B2 (en) | Presenting content using decoupled presentation resources | |
WO2017003976A1 (en) | Centrally maintaining and analyzing comments on documents | |
CN114741667A (zh) | 一种文档展示方法、装置和计算机可读存储介质 | |
CN113886339B (zh) | 外链文件的选取方法、装置、网盘及存储介质 | |
US10204080B2 (en) | Rich formatting for a data label associated with a data point | |
US10977428B2 (en) | Content transformations | |
JP5661449B2 (ja) | ファイル名作成装置 | |
JP6855720B2 (ja) | 情報処理装置及び情報処理プログラム | |
CN113434530A (zh) | 一种表单管理方法、装置、电子设备及介质 | |
KR20230135014A (ko) | 반려동물을 주제로 한 창작물 거래 시스템 |
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 |