平码五不中公式规律
  • / 35
  • 下载费用:30 金币  

文档编辑的智能冲突检测和语义表达.pdf

关 键 ?#21097;?/dt>
文档 编辑 智能 冲突 检测 语义 表达
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201580036035.3

申请日:

2015.06.26

公开号:

CN106663089A

公开日:

2017.05.10

当前法律状态:

实审

?#34892;?#24615;:

审中

法?#19978;?#24773;: 实质审查的生效IPC(主分类):G06F 17/22申请日:20150626|||公开
IPC分类号: G06F17/22; G06F17/24 主分类号: G06F17/22
申请人: 微软技术许可有限责任公司
发明人: A·C·卡帕迪亚; T·塞维尔?#36164;? P·A·奥特考特; M·布内斯库; R·扬德尔
地址: 美国华盛顿州
优先权: 2014.06.30 US 14/319,997
专利代理机构: 永新专利商标代理有限公司 72002 代理人: 王英;刘瑜
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201580036035.3

授权公告号:

|||

法律状态公告日:

2017.06.06|||2017.05.10

法律状态类型:

实质审查的生效|||公开

摘要

一种智能冲突检测系统。该系统在可能引起冲突的编辑的、允许多个用户同时地对同一文档进行工作的大规模服务中提供编辑的语义表达和历史感知的冲突检测。当提交时,将对文档的一个版本的改变与从获取了文档之后所创建的对文档的所有版本进行比较。基于被编辑的数据的特性,将对文档的编辑表达为在动作和该动作的目标方面描述改变的意图。将当前的编辑的意图与在源自于同一源文档的先前版本中进行的编辑的历史意图进行比较,允许系统能够智能地评估这些编辑是否有冲突。历史感知语义分析使得更少?#24503;?#22320;提示用户解决冲突,这改善了用户体验。

权利要求书

1.一种用于检测对存储在数据系统中的文档的冲突的编辑的方法,所述方法包括以下
的操作:
提供存储在所述数据系统中的文档的单个版本的多个副本,所述文档具有包含内容的
字段;
接收在所述文档的第一副本中进行的对来自所述文档的字段的内容的编辑,在所述第
一副本中进行的所述编辑被表达为第一意图;
将在所述第一副本中进行的所述编辑与所述文档中的对应的字段进行合并;
在接收了所述第一编辑之后,接收在所述文档的第二副本中对由先前的编辑所修改的
同一字段的所述内容进行的编辑,在所述第二副本中进行的所述编辑被表达为第二意图;
以及
如果所述第二意图与所述第一意图不冲突,则将所述第二副本中的所述经编辑的内容
与所述文档进行合并。
2.根据权利要求1所述的方法,其中,所述意图包括动词和槽,所述动词与编辑动作相
对应,而所述槽包含与所述编辑相对应的值。
3.根据权利要求1所述的方法,其中,所述文档具有版本标识符,所述方法还包括以下
的操作:将所述文档的所述版本标识符与每个副本进行关联,以作为获取所述副本时的基
线版本。
4.根据权利要求3所述的方法,还包括以下的操作:更新所述文档的所述版本标识符以
指示当对所述副本中的一个副本的编辑与所述文档合并时,所述文档已经改变了。
5.根据权利要求1所述的方法,还包括以下的操作:将与所述文档合并了的每个编辑存
储在与所述文档相关联的修订历史中。
6.根据权利要求5所述的方法,还包括以下的操作:将所提交的所述编辑同存储在所述
修订历史中的、与从中获得所述副本的所述文档的版本相比更新的所述文档的版本相关联
的每个编辑进行比较,以确定所提交的所述编辑是否是冲突的编辑。
7.根据权利要求6所述的方法,还包括以下的操作:
选择存储在所述修订历史中的、与从中获得所述副本的所述文档的版本相比更新的所
述文档的版本相关联的编辑,;以及
当针对字段的编辑的意图与针对该字段的所选定的编辑中的任何一个编辑的意图不
兼容时,确定存在冲突。
8.一种用于检测对文档的冲突的编辑的系统,所述系统包括:
用于存储文档的存储系统;
由包括处理器和存储器的计算设备执行的冲突检测引擎,所述冲突引擎用于:
提供包含结构化数据的文档的副本;以及
从所述文档的副本中接收对结构化数据项的编辑,基于所述结构化数据项的特性将所
述编辑表达为意图,所述意图包括与编辑动作相对应的动?#21097;?br />
将所述编辑的所述意图与从所述副本被获取以来对对应的结构化数据项的改变进行
比较;
确定所述编辑是否与在所述文档的当前版本中?#20174;?#30340;对所述结构化数据项的所述改
变相冲突;
当不存在冲突时,更新所述结构化数据项以?#20174;?#25152;述编辑;
当存在冲突时,提示解决所述冲突、接收所述冲突的解决方案、并且应用所述解决方
案。
9.根据权利要求8所述的系统,其中,所述冲突检测引擎还用于:将所述文档的当前版
本号与每个副本进行关联,以作为获取所述副本时的基线版本号。
10.根据权利要求9所述的系统,其中,所述冲突检测引擎还用于:
当所述文档的所述当前版本标识符与所述副本的所述基线版本标识符的比较指示自
从获取所述副本以来所述文档没有发生过改变时,接受所述编辑。
11.根据权利要求9所述的系统,还包括用于存储与对所述文档的改变相对应的历史记
录的历史存储,并且其中,所述冲突检测引擎还用于:
从所述历史存储中取回自从获取所述副本以来所发生的针对所述文档的历史记录;以

将所述编辑的所述意图与所取回的历史记录进行比较,以确定所述编辑是否与在所述
文档的所述当前版本中?#20174;?#30340;对所述结构化数据项的任何改变相冲突。
12.根据权利要求11所述的系统,其中,所述冲突检测引擎还用于:只有当所述文档的
所述当前版本标识符与所述副本的所述基线版本标识符的比较指示自从获取所述副本以
来所述文档已经发生了改变时,才取回历史记录。
13.根据权利要求11所述的系统,其中,所述冲突检测引擎还用于:从所述历史存储中
修整关联于与所述文档的任何当前获取的副本相关联的最早的基线版本标识符之前的、所
述文档的任何版本标识符的历史记录。
14.根据权利要求8所述的系统,其中,所述冲突检测引擎基于所述副本中的所述结构
化数据项与所述文档的最新版本中的所述结构化数据项之间的差异,来确定所述编辑的所
述意图。
15.一种包含计算机可执行指令的计算机可读介?#21097;?#20854;中当由计算机执行时,所述计算
机可执行指令执行一种用于检测对文档中的结构化数据的冲突的编辑的方法,所述文档具
有版本标识符,所述方法包括以下的操作:
接收对文档的副本中的结构化数据项的编辑,所述副本具有与在所述副本被获取时所
述文档的版本标识符相对应的基线版本标识符;
将所述文档的所述当前版本标识符与所提交的所述副本的基线版本标识符进行比较,
以确定自从所述副本被获取以来所述文档是否进行了更新;
当自从所述副本被获取以来所述文档进行了更新时,将与所述编辑相关联的意图与自
从所述副本被获取以来针对所述结构化数据项的修改的历史进行比较,以确定所述编辑是
否与在所述文档的最新版本中?#20174;?#30340;、自从所述副本被获取以来在所述历史中对所述结构
化数据项的修改中的任何一个修改相冲突,所述意图包括动词和槽,所述动词对应于编辑
动作,而所述槽包含与所述编辑相对应的值;
如果与所述编辑相关联的所述意图同自从所述副本被获取以来对所述结构化数据项
的修改中的任何一个修改都不冲突,则:
更新所述结构化数据项以?#20174;?#25152;述编辑;
更新所述文档的所述版本标识符;以及
将所述编辑作为与所述版本标识符相关联的修改而添加?#20102;?#36848;历史中;以及
如果与所述编辑相关联的所述意图同自从所述副本被获取以来对所述结构化数据项
的修改中的任何一个修改相冲突,则:
提示解决所述冲突;
接收关于所述冲突的解决方案;以及
基于所述解决方案来更新所述结构化数据项。

说明书

文档编辑的智能冲突检测和语义表达

背景技术

共享的数据系统允许用户访问文档的副本并离线地进行工作。最终,用户需要将
已经发生改变的文档返回至系统。当该文档被提交时,将改变与驻留在系统中的所存储的
版本进行合并。通常而言,这样的系统通过用经改变的内容(即,值设置)替换所存储的内
容,来合并文档。由单个用户对于文档的标题和摘要的改变可以安全地与所存储的版本进
行合并。类似地,当第一用户提交具有经修改的标题的文档并?#19994;?#20108;用户提交具有经修改
的摘要的文档时,不存在问题。然而,当多个用户访问同一文档并且分别地进行修改时,场
景变得更加复杂。第一用户提交具有标题改变的文档的经编辑版本是没有问题的,但当第
二用户尝试提交同一文档的也包含标题改变的版本时,将出现冲突。第二用户必须决定保
留哪个标题改变。

共享数据系统中的传统的冲突检测和解决方案通常使用基本内容比较?#35789;?#21035;所
提交的第一文档和所提交的第二文档之间的冲突的改变,特别是在值设置系统中。在字段
值中缺少精确的匹配不始终意味着存在冲突,但每次第二文档中的经改变内容与第一文档
中的经改变内容不同时,基本内容比较都将提?#38236;?#20108;用户解决冲突。用户必须解决的每个
冲突都花费时间,并且给用户提供了无意中保存或者丢弃错误数据的机会。当用户尝试决
定如何解决冲突时,还可能体验不确定性和挫折。已经关于这些和其他考虑来而进行了本
发明。尽管已经讨论了相对具体的问题,但应当理解的是,在本文中所公开的实施例不应当
限于解决在背景技术中所标识的具体的问题。

发明内容

提供了该概要以用简化的形式引入将在以下的详?#35813;?#36848;中进一步描述的概念的
选择。该概要不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在用于帮助确
定所要求保护的主题的?#27573;А?br />

智能冲突检测系统的实施例包括用于处理写请求和读请求的分离的层。日志
(journal)利用一种?#26234;?#26041;案来服务写请求(例如,对文档的写入)。存储利用另一种?#26234;?#26041;
案来服务读请求(即,?#20801;?#22270;的读取),其中该?#26234;?#26041;案可以与日志?#26234;?#26041;案相同或不同。日
志以接收到对文档的编辑的顺序而顺序地向文档应用这些编辑。换句话说,日志用于防止
对同一文档的同时的更新。

冲突检测层负责确定对由用户所提交的文档的一个版本的编辑是否与从服务中
读取了该文档之后所创建的对该文档的另一个版本的编辑相冲突。将对文档的编辑表达为
用于描述该文档将如何被改变的意图,而不是明确地指定所得出的内容。冲突检测层针对
包含在该文档的中间版本(即,与源版本相比较新的版本)中的对应的编辑的意图来对编辑
的意图进行评估。可以从历史记录中获得关于先前编辑的信息。一些实施例可以可选地包
括一组冲突关系。这些冲突关系指示意图是彼此兼容的,还是彼此不兼容的。实施例可以将
冲突关系定义为一组冲突规则,冲突检测层可以应用该组冲突规则来确定所提交的编辑是
否与先前的编辑相冲突。

在操作时,智能冲突检测允许用户获得文档的副本以供离线使用。副本与在获得
该副本时从其得到副本的文档的版本(即,该文档的当前版本)相关联。用户可以修改文档
的离线副本。在与正在被修改的数据相对应的意图方面来表达对副本的编辑。意图通常包
括旨在实现该意图的动词(即,动作)。意图还可以具有存储动作的任何参数的一个或多个
槽(slot)。例如,数字数据类型可以具有以指定的量来调整?#26723;?#24847;图,该意图使用动词“递
增?#20445;?#20854;中槽用于接受待增加至当前字段?#26723;?#25968;字。

一旦用户完成对副本的编辑,就将对副本的编辑接收回系统中。当提交编辑时,可
以将与经编辑的副本相关联的基线版本同该文档的当前版本进行比较。如果与该文档的源
版本相比,存储中的该文档的版本较新(即,存在中间版本),则针对在基线版本之后的该文
档的每个版本的编辑来评估对该副本的编辑。冲突检查操作主要聚焦于:针对对在基线版
本之后的该文档的每个版本中的对应的数据的编辑的意图而对与对副本的编辑相关联的
意图的语义评估;然而,针对没有或不能在意图方面来表达的编辑,冲突检查操作可以采用
其他冲突检查技术,例如,内容相等/不?#21462;?#30830;定两个编辑是否冲突可以基于一组冲突关系。
冲突关系指示意图是彼此兼容的还是彼此不兼容的。实施例可?#20801;?#29992;可以由冲突检测层所
应用的一组规则来定义冲突关系。

如果针?#20801;?#20110;改变的集合的任何编辑而检测到冲突,则系统的实施例可以自动地
拒绝改变的整个集合。可替代地,可?#20801;?#29992;相关联的意图将不冲突的编辑与文档的所存储
的版本进行合并、更新所存储的文档的版本标识符、并且存储对该文档的编辑的记录。在其
他实施例中,可以提示用户解决该冲突,并且给用户机会来作为集合或以每个编辑为基础
接受或者拒绝这些改变。

附图说明

通过参照以下的附图,本公开的进一步的特征、方面、和优点将变得更好地理解,
在附图中,元素不?#21069;?#27604;例的以便更加清楚地示出?#38468;冢?#20854;中,几个视图通篇中的相同的附
图标记指示相同的元件:

图1示出了针对智能冲突检测系统的一个实施例的系统架构;

图2是由智能冲突检测系统所采用的智能冲突检测方法的一个实施例的高?#35835;?#31243;
图;

图3A和图3B共同地示出了根据智能冲突检测系统的一个实施例的针对涉及不会
引起冲突的对设置值字段进行编辑的场景的流程图;

图4A到图4C共同地示出了根据智能冲突检测系统的一个实施例的针对涉及引起
冲突的对设置值字段进行编辑的场景的流程图;

图5A到图5D共同地示出了根据智能冲突检测系统的一个实施例的针对不会引起
冲突的图4A-C的场景的替代的版本的流程图;

图6A和图6B共同地示出了根据智能冲突检测系统的一个实施例的针对涉及不会
引起冲突的对计数值字段进行编辑的场景的流程图;

图7是示出了利用其可?#20801;?#36341;本发明的实施例的计算设备的物理组件的一个实施
例的框图;以及

图8A和图8B是利用其可?#20801;?#36341;本发明的实施例的移动计算设备的简化框图。

具体实施方式

在下文中参照形成了本文的一部分并且示出了具体的示例?#20801;?#26045;例的附图来更
加全面地描述各种实施例。然而,实施例可以以许多不同的形式?#35789;迪鄭?#24182;?#20063;?#24212;当被解释
为限于在本文中所阐述的实施例;相反,提供了这些实施例?#20801;?#24471;该公开将是透彻的和完
整的,并且将会向本领域技术人员完全传达实施例的?#27573;А?#23454;施例可以被实践为方法、系
统、或设备。从而,实施例可以采取?#24067;?#23454;现、完全软件实现、或者组合了软件和?#24067;?#26041;面的
实现的形式。因此,以下详?#35813;?#36848;将不被理解为限制意义。

本文描述并在附图中示出了智能冲突检测系统的实施例。该系统在可能引起冲突
的编辑的、允许多个用户同时地对同一文档进行工作的大规模服务中提供编辑的语义表达
和历史感知的冲突检测。当提交时,将对文档的一个版本的改变与对从大规模服务中读取
了经编辑的文档之后所创建的文档的所有版本的改变进行比较。基于被编辑的数据的特
性,将对文档的编辑表达为在动作和该动作的目标方面来描述改变的意图。将当前的编辑
的意图与在源自于同一源文档的先前版本中进行的编辑的历史意图进行比较,允许系统能
够智能地评估这些编辑是否有冲突。历史感知语义分析使得更少?#24503;?#22320;提示用户解决冲
突,这改善了用户体验。

图1示出了针对智能冲突检测系统的一个实施例的系统架构。智能冲突检测系统
100可?#20801;且源?#20648;可以由多个用户102访问和操纵的信息的服务或应用?#35789;迪?#30340;。该智能冲
突检测系统的实施例适合于与大规模(即,大数据)服务或者较小的多用户服务或应用一同
使用,其中,多个用户可以同时地访问和操纵同一文档。用户可以经由诸如但不限于互联
网、广域网、局域网及其组合之类的网络106,从多种?#31361;?#31471;设备104a-d来访问该服务。合适
的?#31361;?#31471;设备的示例包括但不限于:台式计算机104a、膝上?#22270;?#31639;机104b、平板计算机
104c、移动电话104d、个人数?#31181;?#29702;、智能手表、和智能电器(例如,智能电视)。

智能冲突检测系统包括提供至服务的进入点的前端层108。在各种实施例中,服务
可以提供?#31361;?#31471;设备可通过诸如浏览器之类的用户代理来访问的基于网络的用户接口。在
一些实施例中,用户代理可?#20801;?#25552;供用户接口并且处理与服务的通信的专用?#31361;?#31471;应用。

智能冲突检测系统的实施例包括用于处理事务的事务性对象模型110,例如但不
限于:写请求和读请求,以允许用户针对服务而对文档和视图进行读、查看(即,?#20801;?、创
建、复制、删除、操纵(即,编辑或修改)、共享、协作、或保存(即,写)。术语“文档”宽泛地包含
由该服务所处理的任何数据对象。文档可以包括结构化的数据、非结构化的数据、元数据、
或其组合。文档还可以与外部数据或者元数据相关联,所述外部数据或元数据例如,由服务
使用?#20801;?#21035;和追踪该文档的数据。作为示例,对于基于办公或者生产力应用的服务而言,文
档可以包括但不限于:文字处理文档、?#22987;?#39033;、任务项、日历项、联系人项、演示、电子表格、
或者数据库。术语“视图”宽泛地包含基于向用户呈现文档所使用的一般属性?#26723;?#25991;档的任
何索引、分组、或者分类。作为示例,视图可以允许根据任务所有者或者根据任务与其相关
联的项目来?#20801;?#20219;务项的集合。

智能冲突检测系统适合于在这样一种系统中使用:其中,多个用户具有对文档的
非排他性访?#21097;?#24182;且可以对文档进行改变,所述改变不会同时地?#20174;?#22312;由其他用户访问或
者操纵的该文档的副本中,并且其中,对文档的冲突的编辑是可能的。一个示例是允许多个
用户在同一时间访问和操纵一个文档的大规模服务。当用户访问文档时,大规模服务给每
个用户提供源文档的分别的离线副本。当对经编辑的副本进行保存(即,提交包含编辑的写
请求)时,将用户对于离线副本进行的任何改变与文档的当前版本进行合并。

除了仅仅允许用户同时地和独立地对同一文档进行编辑之外,大规模服务还通常
保存文档的多个复本,以用于高效的访问和可扩展性。必须将对文档的改变传播?#20102;?#26377;的
复本。直到已经同步了该文档的所有复本为止,在系统内存在该文档的多个版本。取决于向
用户提供哪些复本源副本,该用户可能无法访问文档的最新的版本。

在所示出的实施例中,在大规模服务的上下文中将智能冲突检测系统描述为更加
复杂的场景中的一个场景中的智能冲突检测系统的效用的一个示例;然而,智能冲突检测
系统的使用并不限于大规模服务。在大规模服务内,写请求112和读请求114由分别的层来
处理的。日志116利用一种?#26234;?#26041;案来服务写请求(例如,对文档的写入)。存储118利用另一
种?#26234;?#26041;案来服务读请求(即,?#20801;?#22270;的读取),其中,该?#26234;?#26041;案可以与日志?#26234;?#26041;案相同
或不同。在所示出的实施例中,将日志和存储表示为通过对应的应用程序接口(API)(日志
API 120和存储API 122)来访问的虚拟化存储资源(例如,云存储)。

日志包括用于存储文档的至少一个基于文档的?#26234;?24。基于分配给单个资源或
查询的数据的最大分组来设置每个?#26234;?#30340;大小。随着由大规模服务所处理的数据的量的增
加,可以线性地扩展日志并?#20197;黽有?#30340;?#26234;?#26080;论日志?#26234;?#30340;数量是多少,智能冲突检测系
统将与任何给定的文档相关联的所?#34892;?#35831;求都保存在同一日志?#26234;?#20013;。使单个日志?#26234;?#19982;
每一个文档相关联允许保存针对每个文档的事务性编辑队列。

存储包括用于存储文档的至少一个基于视图的?#26234;?26。通过视图来对存储进行
?#26234;?#20801;许由多个用户在同一时刻对文档进行高效地访问。如果文档与多于一个视图相关
联,则每一个视图通常保存其自己的该文档的副本(即,复本)。同日志一样,可以线性地扩
展存储并?#20197;黽有?#30340;?#26234;创?#29702;额外的文档或者视图。

当用户执行诸如创建文档、修改文档、或者删除文档之类的动作时,将写请求传送
至智能冲突检测系统。在接收到写请求之后,智能冲突检测系统首先将写请求保存至日?#23613;?br />在将写请求保存至日志之后,对文档的改变被认为是要接受的,但是在写请求中所?#20174;?#30340;
改变通常不是对所有用户都可见的,直到它们被合并至存储为止。当日志包括多个?#26234;?#26102;,
智能冲突检测系统可以确定指示写请求应当被写入的?#26234;?#30340;?#26234;?#26631;识符。在各种实施例
中,?#26234;?#26631;识符可?#20801;?#22522;于与写请求相关联的文档的文档标识符的。

智能冲突检测系统将日志用作暂存区域(staging area)以保存写请求直到它们
被合并到合适的视图中为止。当检测对文档的冲突编辑时也可?#20801;?#29992;该日?#23613;?#20026;了实现这
些功能,可扩展的最终一致性系统的实施例可以在接收到写请求之后,将该写请求保存至
日志至少两次。可以将该写请求的一个副本保存成运行记录128,其充当标识还没有与存储
完全融合的写请求的动作项。无法将写请求复制到存储可?#20801;欠智?#25110;者日志与存储之间的
通信信道(例如,互联网)暂时无法访问(例如,资源?#25910;?#25110;停机)的结果。可以将该写请求的
另一个副本保存为历史记录130。可以出于诸如检测对文档的冲突编辑或维护审计日志之
类的目的来使用历史记录。

改变提交层132负责将写请求从日志传播至存储。文档写从日志流动至存储部分,
因此不存在复杂的同?#20132;?#21046;。在各种实施例中,该可扩展最终一致性系统可以当在日志中
创建运行记录时首次尝试将其复制到存储。一旦已经成功地复制了运行记录,就将该运行
记录从该日志中删除。

一致性?#25351;?#23618;134负责该改变提交层的循环操作并最后提供最终一致性。一致性
?#25351;?#23618;提示改变提交层通读由日志所保存的现有的记录并且将任何运行记录复制至存储。
在各种实施例中,该改变提交层以最老的运行记录开始,按照编辑被该可扩展最终一致性
系统所接收的顺序来对文档进行事务性编辑。该一致性?#25351;?#23618;可以基于各种?#24405;?#30340;发生
和/或定期地(例如,每N?#31181;印?#23567;时、或天)发起改变提交层的操作。可以用?#21019;?#21457;改变提交
层的操作的?#24405;?#30340;示例包括但不限于:系统启动、错误?#25351;础?#20197;及接收写请求。

冲突检测层136负责确定在写请求中提交的对文档的一个版本的编辑是否与对自
从该文档从大规模服务中被读取(即,获取(sourced))以来所创建的该文档的另一个版本
的编辑相冲突。将对文档的编辑表达为描述将如何改变该文档的意图,而不是明确地指定
所得出的内容。冲突检测层针对包含在该文档的中间版本(即,与从大规模服务中所读取的
版本相比较新的版本)中的对应的编辑的意图来对编辑的意图进行评估。可以从历史记录
中获得关于先前的编辑的信息。

一些实施例可以可选地包括一组冲突关系138。冲突关系指示意图是彼此兼容的
还是彼此不兼容的。实施例可以将冲突关系定义为一组冲突规则,冲突检测层可以应用该
组冲突规则来确定对文档的编辑是否与先前的编辑相冲突。

尽管已经描述了大规模服务的具体的实施例,但智能冲突检测系统不限于使用包
括图1的示例性大规模服务在内的任何特定的大规模服务。此外,智能冲突检测系统不限于
包含文档的多个副本的存储模?#31361;?#32773;对任何特定的同?#20132;?#21046;的使用,所述特定的同?#20132;?#21046;
例如由日?#23613;?#23384;储、改变提交层、或者一致性?#25351;?#23618;的组合所提供的那些同?#20132;?#21046;。该智能
冲突检测系统适合于与存储每个文档的单个副本的服务或者系统一起使用。

图2是由智能冲突检测系统所采用的智能冲突检测方法的一个实施例的高?#35835;?#31243;
图。该智能冲突检测方法200开始于文档读取操作202,其中,将源文档的副本提供给用户。
关于源文档而离线地获得副本,并且在将改变?#20174;?#22312;源文档中之前,用户通常必须采取一
些动作来保存修改。例如,可能要求用户使用基于网络的表格来提交文档,或者要求用户经
由用户接口来发起文档保存功能。多个用户可以获得同一文档的副本。对一个副本的修改
不影响其他现有的副本。

版本控制操作204将副本与在获得该副本时从其获得该副本的文档的版本(即,该
文档的当前版本)相关联。从其获得该副本的文档的版本可以被称为该副本的基线版本。在
一些实施例中,将版本关联与副本存储在一起,例如存储为作为元数据或者文档属性值。可
替代地,可以将与副本相对应的标识符链接至基线版本或者由系统存储,例如,与文档一
起、在数据库中、或者使用另一个合适的数据存储对象。

可?#20801;?#29992;版本标识符来指定当前文档版本?#31361;?#32447;版本。版本标识符可以由形成标
识符的一个或多个数?#21482;?#23383;母组件组成,所述标识符可以递增或者以其他方式顺序地更
新,以区分文档的不同版本。字母数字版本的标识符的示例包括但不限于:“1A”、“1B”、…、
“4D”等,以及“1.2.2.2”、“1.2.2.1”、…、“3.1.2.313”?#21462;?#22312;各种实施例中,版本标识符可以
是或者可以包括但不限于以下中的一项或多项:日期戳、时间戳、日期/时间戳、散列、校验
和、全局唯一标识符、或者其他参考值。

用户可以修改文档的离线副本。编辑可以涉及但不限于该副本中或者与该副本相
关联的结构化数据或字段(例如,元数据)的改变。编辑表达操作206可以在与正在修改的数
据相对应的意图方面来表达对副本的编辑。

意图通常包括旨在实现该意图的动词(即,动作)。意图还具有将动作的参数作为
槽值?#21019;?#20648;的一个或多个槽。表1示出了针对各种数据类型的代表性意图。在表1中所示出
的数据类型、动词、槽、和动作不旨在是限制性的。槽对于一些意图而?#20801;?#21487;选的,一些意图
被定义为没有槽。例如,递增动作可以总是以一的大小来增加值,并且将不需要该意图具有
槽。可替代地,递增动作可以默?#31995;?#23558;值增加一的大小,除非槽包含针对值增加而设置不同
的大小的不同的值。在一些实施例中,槽还可以保存复合值。例如,向集合添加?#31245;?#30340;意图
可以接受经限制的?#31245;?#30340;列表。可以对该列表进行解析,并且智能冲突检测系统使用与该
意图相关联的动词来对该列表中的每个值进行分别地处理。其他实施例可以将槽限制为单
个值。例如,向集合添加多个?#31245;?#30340;编辑可以引起生成对应数量的分别的意图,每个?#31245;?#19968;
个意图。

意图表达操作意味着什么而不是操作做什?#30784;?#21442;考表1中的文本数据类型,两个意
图均替代整个文本,但用于实现不同的目标。对编辑的对象进行区分允许更有意义的冲突
检测,并产生更好的结果。以下的示例展示了基于意图的编辑所提供的智能的重要性,将文
本值从“与?#31361;?#20250;面”改变成“状态报告会议”是改变该文本的含义的内容改变。相反,将文
本值从“Meett with th client from one to three pm(下午一点到三点与?#31361;?#20250;面)”改
变成“Meet with the client(1PM-3PM)(与?#31361;?#20250;面(下午1点到3点))”是涉及?#25105;?#30340;拼写
错误校正和时间格?#20132;?#30340;编辑性改变,但不改变含义。在语义上,编辑性改变与所接受的内
容改变相冲突。换句话说,尝试对原始内容进行?#25105;?#30340;编辑而同时另外的某人改变整个含
义产生了冲突。然而,内容改变不与所接受的编辑性改变相冲突,这是因为编辑性改变实质
上不改变原始值。换句话说,对于冲突检测目的而言,当另一个用户在同一时间进行内容改
变时,由一个用户进行的编辑性改变可以被视为是非?#24405;?#36825;是因为面?#20801;?#36136;性改变而言,
编辑性改变是无关的。

表1

根据数据类型的示例性意图





一旦用户完成对于副本进行编辑,写操作208就将这些编辑接收到系统中。由于多
个用户可以同时地并且独立地访问和修改同一个文档,因此可能发生对该文档的冲突编
辑。通常,写操作以编辑被接收的顺序来对其进行处理。换句话说,在没有任何冲突的情况
下,接受所提交的对字段的第一编辑,而针对冲突的编辑来筛查对该字段的随后的编辑,该
冲突的编辑必须例如由提交这些编辑的用户或者具有解决冲突的权利和/或责任的授权的
用户手动地解决。一些冲突可以在没有用户?#31245;?#30340;情况下基于一组规则而自动地解决。例
如,如果两个同级别的员工对同一字段创建了冲突编辑,则可以拒绝较后的编辑;然而,如
果经理的编辑与?#31995;图?#21035;员工的编辑相冲突,则解决方案可以自动地接受经理的编辑。

当编辑被提交时,版本检查操作210可以将经编辑的副本的基线版本与文档的当
前版本进行比较。版本检查可以基于与该副本相关联的基线版本标识符和该文档版本标识
符的等同/不?#21462;?#20363;如,文档版本号大于基线版本号指示自从获取了该副本以来该文档已经
发生了改变,或者在版本标识符序列(或系列)中比基线版本标识符更晚出现的文档版本标
识符可以对应于该文档的较晚(即,较新)的版本,其可以指示自从获取该副本以来该文档
已经进行了更新。对文档进行保存可以对应于在一些系统中提交包含编辑的写请求。

该方法的实施例可?#20801;?#29992;版本检查的结果作为初步(即,阈值)测试,以确定是否
应当针对冲突而筛选这些编辑。副本的基线版本和文档的当前版本的相等指示自从该副本
被获取以来该文档还没有发生过改变。换句话说,版本相等指示正在提交的编辑是所提交
的第一编辑。通常而言,可以接受所提交的第一编辑而不用担心冲突编辑。

在一些实施例中,版本检查操作不涉及对版本标识符的任何直接比较。替代地,版
本检查识别副本的基线版本,该基线版本产生被提交以用于在取回相关的文档修订历史记
录时使用的编辑。

与获取的文档的版本相比,如果存储中的文档的版本较新,或者版本检查操作不
涉及版本比较,则修订历史收集操作212收集已经与基线版本之后的文档合并了的编辑相
对应的信息。在一个示例中,可以从在本文中所描述的大规模服务的日志中所保存的历史
记录(即,写请求)中获得修订历史。类似类型的修订记录可以由其他系统?#21019;?#20648;。无论版本
比较是否作为版本检查的一部分而被执行,该修订历史收集操作都可以发出针对具有相比
于由版本检查操作所识别的基线版本较新的版本号的历史记录的查询。该方法的实现可以
以版本比较操作和修订历史收集操作的相对效率为条件。

一旦已经取回了相关的修订历史,则冲突检查操作214针对对基线版本之后的文
档的每个版本的编辑而评估对副本的编辑。实施例可以以从最早的版本开始并且在最新的
版本之前的版本顺序来对所述编辑进行评估。冲突检查操作主要聚焦于:针对对在基线版
本之后的该文档的每个版本中的对应的数据的编辑的意图而对与对副本的编辑相关联的
意图的语义评估;然而,针对不能在意图方面来表达的编辑,冲突检查操作可以采用其他冲
突检查技术,例如,内容相等/不?#21462;?#22914;果针对所提交的改变中的任何编辑而检测到冲突,则
系统的实施例可以自动地拒绝改变的整个集合。可替代地,可以将不冲突的编辑与所存储
的版本进行合并,并且仅仅拒绝冲突的编辑。在其他实施例中,可以提示用户解决该冲突,
并且给用户机会来作为集合或以每个编辑为基础接受或者拒绝这些改变。

确定两个编辑是否冲突可以基于一组冲突关系。冲突关系指示意图是彼此兼容的
还是彼此不兼容的。实施例可?#20801;?#29992;可以由冲突检测层所应用的一组规则来定义冲突关
系。

某些冲突关系可?#20801;?#20840;?#36136;?#29992;的。基于设置动词的值(例如,设置或者清除)的意
图通常与其他意图是全局不兼容的,这是因为该动作将替代或者清除目标字段的内容。基
于限制性动词(例如,锁定)的意图与其他意图是全局不兼容的,这是因为该动作将阻止对
目标字段进行改变。类似地,基于许可动词(例如,解锁)与其他意图是全局兼容的,这是因
为该动作允许对目标字段进行改变。

意图的兼容性或者不兼容性可?#20801;?#20197;动词或者动词与槽的组合为条件的。一些冲
突关系可以仅仅考虑与意图相关联的动词。基于与算数运算(例如,递增或者递减)相关联
的动词的意图应当很少冲突或者决不会冲突,无论槽值是什?#30784;?#22312;合并以设置用于递增或
递减的大小期间,可?#20801;?#29992;槽值,但是可以进行冲突确定而不需要知道槽值。

其他冲突关系可以考虑与意图相关联的动词或者动词和槽值二者。与对值进行替
代的意图相反,对值进行修改的意图(与进行替代相比)(例如,设置操纵意图)。使用相同的
值修改动词的意图(例如,两个编辑均使用动词“添加?#34987;?#32773;两个编辑均使用动词“移除”)可
?#20801;?#37325;复的,但应当很少冲突或者决不会冲突。例如,添加值“蓝色”的意图和添加值?#22885;?#33394;”
的意图是不冲突的。类似地,移除值“蓝色”的两个意图将是重复的,但不冲突。针对于诸如
这些之类的情况的冲突关系可以在进行冲突确定时可选地忽略槽值(例如,颜色)。对于使
用相反的值修改动词的意图而言,槽值将变得与冲突确定有关(例如,一个使用动词“添
加?#20445;?#32780;另一个使用动词“移除”)。例如,添加值“蓝色”的意图和移除值“蓝色”的意图将是冲
突的,而添加值“蓝色”的意图和移除值“红色”的意图将是不冲突的。

合并操作216对其中没有编辑与先前的编辑相冲突的编辑的集合、不与先前编辑
相冲突的个体的编辑、或者由用户使用相关联的意图可选地保留到文档中的冲突编辑进行
合并。版本更新操作218对文档的版本标识符进行更新。例如,可以将版本标识符递增。

历史管理操作220将编辑的记?#21363;?#20648;在与文档相关联的修订历史中。在各种实施
例中,所述编辑可以个体地存储,或者作为改变的集合?#21019;?#20648;。可以将在解决操作期间所丢
弃的冲突的编辑从记录中排除或者标记为已丢弃。

图3A和图3B共同地示出了根据智能冲突检测系统的一个实施例的针对涉及不引
起冲突的对设置值字段的编辑的多用户文档编辑场景的流程图。在该流程的开?#21363;Γ?#22312;存
储118中保存的文档302处于由文档版本标识符304所表示的版本1。该文档的作者字段306
?#21069;?#21547;具有一个?#31245;?Alice)的集合的设置值字段。两个用户Bob 308b和Chris 308c独立
地访问310该文档。每个用户具有利用其进行工作的该文档的分别的副本312b、312c。在访
问该文档的时刻,该文档的版本标识符与作为基线版本314的副本相关联。在该场景中,Bob
和Chris两者都获得该文档的版本1的副本。

Bob对作者字段进行编辑316以将他自己添加为作者。将该编辑表达为由动词“添
加”和槽值“Bob”组成的意图318以描述将?#31245;?Bob)添加至集合。Bob是提交320对该文档的
他的副本的编辑的第一人。当该编辑被提交时,智能冲突检测系统的实施例可以执行版本
检查322,该版本检查322将与所提交的编辑相关联的副本的基线版本同由存储所保存的该
文档的当前版本进行比较。由于比较324确定该文档的存储版本与副本的基线版本相同,因
此不存在与该编辑的冲突,并且智能冲突检测系统可以将该编辑与存储中的该文档进行合
并326。在Bob的副本的情况下,通过将Bob添加?#20102;?#36848;集合中而用Bob的编辑328来更新存储
文档的作者字段。智能冲突检测系统还可?#20801;?#23384;储文档的版本标识符递增330(或者以其他
方式更新)至版本3,以便指示该文档已经与提供给Bob的源版本发生了改变。额外地,将Bob
的编辑添加至可以在日志116中所存储的修订历史332。

Chris也同时地对作者字段进行编辑316,以将Bob和David添加为作者。可以将该
编辑表达为一对意图318,一个意图将Bob添加至作者集合,而另一个意图将David添加至作
者集合,如在所示出的流程中所示。现在转到图3B,Chris在Bob之后提交320对该文档的他
的副本的编辑。当执行版本检查322时,智能冲突检测系统确定由存储所保存的该文档包含
有提供给Chris的副本中所没有包括的改变,这是因为存储版本更高324。从而,智能冲突检
测系统执行修订历史分析334,其针对在修订历史332中出现的自从获取了Chris的副本以
来所创建的该文档的所有历史版本336,来评估该编辑的意图。在该场景中,唯一的中间版
本是存储中的文档的当前版本,即版本3。修订历史分析的实施例针对所提交的改变的意
图,对在中间版本中所?#20174;?#30340;改变的历史意图338进行评估,以提供超出该文档的中间版本
的内容的有意义的冲突检测。

使用传统的冲突检查,Chris的改变将被认为是冲突的编辑,这是因为由Bob和
Chris所编辑的作者字段的内容是不相同的。替代地,通过根据意图而在语义上对编辑进行
评估,智能冲突检测系统确定Bob和Chris二者对作者字段的所有改变都是对所述集合的添
加。确定由Chris将Bob添加为作者是由Bob进行的相同的改变的重复,并?#20063;?#20135;生冲突340。
同样,Chris的添加David的编辑不与Bob将其自己添加为作者的编辑发生冲突342。应当理
解的是,智能冲突检测系统可以以各种方式?#21019;?#29702;重复的编辑,例如,当Bob已经是该集合
的?#31245;?#26102;,又向该集合添加Bob。例如,可以忽略重复编辑(即,可以不进行合并尝试),或者
可以对合并规则进行配置,?#20801;?#24471;重复的编辑不会产生具有冗余的?#31245;?#30340;集合(即,Bob不
会出?#33267;?#27425;)。

因此,智能冲突检测系统接受Chris的编辑328,将它们合并326到该文档的当前版
本,并且将存储文档的版本标识符递增330(或者以其他方式更新)至版本4,以指示该文档
与Bob所提交的版本发生了改变。将Chris的编辑添加?#21015;?#35746;历史332。

图4A到图4C共同地示出了根据智能冲突检测系统的一个实施例的针对涉及引起
冲突的对设置值字段的编辑的多用户文档编辑场景的流程图。该流程的大部分类似于结合
图3A和图3B所描述的内容,除了Chris在Bob之前提交对他的副本的编辑,以及Chris的编辑
将Eve(而不是Bob)添加至作者字段之外。由于Chris的副本的基线版本与存储中的该文档
的当前版本相同,因此没有冲突发生。Chris的编辑被接受,并且被合并至该文档以创建该
文档的版本3。

在该场景中,流程不同在于:在Bob提交对该文档的他的副本的编辑之前,Fred访
问该文档的版本3。现在转到图4B,Fred不认为Eve是作者,并且将Eve从作者列表中删除。将
Fred的编辑表达为由动词“删除”和槽值“Eve”组成的意图318,以描述从所述集合中移除成
员(Eve)。Fred在Bob之前提交320对该文档的他的副本的编辑。同样,由于Fred的副本的基
线版本与存储中的该文档的当前版本相同(即,不存在中间版本),因此没有冲突发生。尽管
Fred的编辑具有与Chris的编辑相反的意图,但由于Chris的编辑被包括在提供给Fred的该
文档的版本之中并?#20063;?#23384;在中间版本,因此不存在冲突。从而,Fred的编辑被接受,并且被
合并至该文档以创建版本4。

与此同时,Bob一直在编辑该文档的他的副本,并且他的编辑包括将Eve添加至作
者字段中。现在转到图4C,当Bob提交对他的副本的编辑时,Chris的版本(版本3)和Fred的
版本(版本4)两者都是相对于Bob的基线版本(版本1)的该文档的中间版本。从而,修订历史
分析通过将Bob的编辑的意图与Chris所进行的编辑(即,所接受的第一编辑)进行比较而开
始。由Bob和Chris两者所进行的编辑的意图是将Eve添加为作者,因此不存在冲突340。接
着,修订历史分析将Bob的编辑的意图与Fred所进行的编辑(即,所接受的第二编辑)进行比
较。移除作为作者的Eve的Fred的编辑与将Eve添加为作者的Bob的编辑具有相反的意图。换
句话说,这些编辑是不兼容的。由于Fred的编辑是在Bob获得该文档的副本之后才被接受的
(即,其在相对于Bob的副本的基线版本的中间版本中出现),因此相反的意图触发了冲突
344。随着智能冲突检测系统向Bob示出该冲突,并且提示346他解决该冲突,流程继续。将
Bob对于该冲突的解决方案348应用至存储中的文档,无论是覆盖Fred的编辑、是将Eve添加
为作者、还是从作者字段中省略Eve(如Fred所最后修改的)。如果Bob的编辑包括其他改变,
则将创建该文档的新版本。相反,如果Bob的唯一的编辑是将Eve添加为作者,并且Bob通过
尊重Fred将Eve从作者中删除(例如,Fred可以具有监督权力)而解决了该冲突,则没有任何
内容需要合并并且将不会创建新的版本。

图5A到图5D共同地示出了根据智能冲突检测系统的一个实施例的针对不会引起
冲突的先前的场景的替代的版本的流程图。到将Fred的编辑合并至版本2为止,流程是相同
的,Fred的编辑移除作为作者的Eve以生成版本3。随后,Fred决定应当将Eve列为作者(例
如,Eve可以针对她作为作者的情况而向Fred进行辩护并获胜)。作为结果,Fred再一次访问
310该文档。这次,Fred的副本312f的基线版本314是版本3,该版本没有将Eve包括为作者。
转到图5C,Fred将Eve添加为作者,并且将他的编辑316表达为由动词“添加”和槽值“Eve”组
成的意图318,以描述向所述集合添加?#31245;?Eve)。再一次,Fred在Bob之前提交320对他的副
本的编辑,并且由于Fred的副本的基线版本与存储中的该文档的当前版本相同(即,不存在
中间版本),因此没有冲突发生。将该文档更新至版本4,并且将Eve包括为作者集合中的成
员。

与此同时,Bob 308b一直对文档的他的副本312b和他的编辑316进行编辑,其中,
他的编辑包括将Eve添加至作者字段的意图318。现在转到图5D,当Bob提交对他的副本320
的编辑时,Chris的版本(版本2)和Fred的两个版本(版本3和4)都是相对于Bob的基线版本
(版本1)的该文档的中间版本。在Bob的编辑和Chris的编辑之间不存在冲突340。Bob的编辑
潜在地与Fred的将Eve从作者中移除的第一编辑发生冲突344;然而,Fred的将Eve?#25351;?#25104;作
者的第二编辑是最新的编辑,并且优先于较早的冲突编辑。来自版本4的编辑?#34892;?#22320;解决
350了与来自版本3的编辑的潜在的冲突。尽管在所示出的流程中,Fred进行了两次编辑,但
不是必须由进行了潜在的冲突的编辑的同一用户来进行该解决编辑。从而,接受了Bob的编
辑而没有冲突解决提示。

图6A和图6B共同地示出了根据智能冲突检测系统的一个实施例的针对涉及引起
冲突的对计数值字段的编辑的多用户文档编辑场景的流程图。一般流跟踪图3A和图3B的流
程。主要差别在于对计数值字段606的编辑316的对待,其中该计数值字段606被示出为具有
为六的开始值。在该场景中,计数值字段跟踪总项目销售。Bob 308b是将对他的副本312b的
编辑提交320?#26009;?#30446;销售总数的第一人,该编辑被表达为以2(即,槽值)对计数值进行递增
(即,动词)的意图。应当注意的是,在一些实施例中,Bob可以已经输入了值八,并且通过确
定源值与由Bob所输入的值之间的差而将该改变转换成意图318。在其他实施例中,可以给
Bob呈现输入对该?#26723;?#25913;变的机会,并且将计算总项目销售并且结果用于填充总项目销售
字段。由于Bob的副本的基线版本与存储中的该文档的当前版本(版本1)相同,因此没有冲
突发生。通过按2来递增总项目销售字?#25105;?#23558;总项目销售字段的?#24403;?#25104;八来对Bob的编辑进
行合并,并且所述合并产生该文档304的版本2。

随后,Chris 308c提交对项目销售总数的编辑316,该编辑316被表达为以按一来
递增计数?#26723;?#24847;图318。文档304的版本2充当相对于Chris的副本的基线版本的中间版本。
所示出的流程示出:由于中间版本的存在而执行的修订历史分析334,其确定不存在冲突
(340)。从而,通过按一来递增总项目销售字?#25105;?#23558;总销售量字段606的?#24403;?#25104;九,来对
Chris的编辑进行合并326。对Chris的编辑进行合并引起该文档304的版本3的创建。

该智能冲突检测系统的实施例的操作可以不同而仍然产生没有冲突的期望的结
果。例如,当处理某些数据类型(例如,计数值数据类型)时,该智能冲突检测系统的实施例
可以采用不需要完整的修订历史分析的一些规则。

与限于值设置的编辑相比,该场景还示出了使用意图的语义表达如何允许智能冲
突检测系统接受具有相反的效果的编辑(例如,一个对值进行递增,另一个对值进行递减),
而不触发冲突。例如,在图6A和图6B的流程中,对计数值进行递增(例如,指示已售的项目)
的意图之前或者之后的对计数值进行递减(例如,指示返回的项目)的意图将不会产生冲
突。相比之下,对于被表达为最终?#26723;?#21516;时的编辑进行比较的传统的冲突检测系统需要冲
突解决方案。Bob的编辑将在项目销售总数中设置值八,而Chris的编辑将针对项目销售总
数设?#31859;?#32456;值七。由于针对项目销售总数的值是不同的,因此常规冲突检测系统不能解决
Chris的编辑与Bob的编辑,并且将提示Chris进行解决。

该申请的主题可以以多种系统、设备、和其他?#30772;防词迪只?#32773;被实践为方法。实施
例可以被实现为?#24067;?#36719;件、计算机可读介质或者其组合。在本文中所描述的实施例和功能
可以经由多种计算系统来操作,所述计算系统包括但不限于:台式计算机系统、有线和无线
计算系统、移动计算系统(例如,移动电话、上网本、平板或板式计算机、笔记本计算机、以及
膝上?#22270;?#31639;机)、手持式设备、多处理器系统、基于微处理器的或可编程的消费型电?#30828;?#21697;、
小?#22270;?#31639;机、以及大?#22270;?#31639;机。

各种类型的用户界面和信息可以经由板载计算设备?#20801;?#22120;或者经由与一个或多
个计算设备相关联的远程?#20801;镜?#20803;来?#20801;尽?#20363;如,各种类型的用户界面和信息可以在各种
类型的用户界面和信息所透射到的墙面上?#20801;?#24182;且与这样的墙面进行交互被投射在其上。
与本发明实施例可以利用其实践的多种计算系统的交互包括:键击输入、触摸屏输入、语音
或其他音频输入、在相关联的计算设备装备有用于捕捉和解译用户?#36136;?#30340;检测(例如,相
机)功能以用于控制计算设备的功能等的情况下的?#36136;?#36755;入。

图7和图8以及相关联的描述提供了对其中可?#20801;?#36341;本发明的实施例的多种操作
环境的讨论。然而,所图示和讨论的设备和系统是出于示例和说明的目的,而不限于可以用
于实践在本文中所述的本发明的实施例的大量计算设备配置。

图7是示出了利用其可?#20801;?#36341;本发明的实施例的计算设备700的物理组件(即,硬
件)的框图。在下文中所描述的计算设备组件可?#20801;?#29992;于实施计算设备,其包括但不限于:
个人计算机、平板计算机、平面计算机和智能电话、或者在文本中所讨论的任何其他计算设
备。在基本配置中,计算设备700可以包括系统存储器704以及至少一个处理单元702。取决
于计算设备的配置和类型,系统存储器704可以包括但不限于:?#36164;?#24615;存储(例如,随机存取
存储器)、?#19988;资?#24615;存储(例如,只读存储器)、?#20102;?#23384;储器、或者这样的存储器的任何组合。
系统存储器704可以包括操作系统705和适用于运行软件应用720的一个或多个程序模块
706,例如智能冲突检测系统100的组件。例如,操作系统705可?#20801;?#29992;于控制计算设备700的
操作。此外,本发明的实施例可结合图形库、其他操作系统或任何其他应用程序?#35789;?#36341;,并
?#20063;?#23616;限于任何特定的应用或系统。由虚线708内的那些组件示出了该基本配置。计算设备
700可以具有额外的特征或功能。例如,计算设备700还可以包括诸如例如?#25490;獺?#20809;盘或磁带
之类的额外的数据存储设备(可移动的和/或不可移动的)。由可移动存储设备709和不可移
动存储设备710示出了这样额外的存储。

如上所述,可以将多个程序模块和数据文件存储在系统存储器704中。当在处理单
元702上执行时,软件应用720可以执行包括但不限于智能冲突检测方法200的一个或多个
阶段的过程。可以根据本发明的实施例而使用的其他程序模块可以包括以下应用,例如电
子?#22987;?#21450;联系人应用、文字处理应用、电子表格应用、数据库应用、幻?#30772;?#28436;示应用、画图或
计算机辅助应用程序?#21462;?br />

此外,可以在包括分立电子元件的电路、包含逻辑门的封装或集成的电?#26377;?#29255;、利
用微处理器的电路、或者在包含电子元件或微处理器的单个芯片上实现本发明的实施例。
例如,可以经由其中所示出的每个或许多组件可以集成在单个集成电路上的片上系统
(SOC)?#35789;?#36341;本发明的实施例。这样的SOC设备可以包括一个或多个处理单元、图形单元、通
信单元、系统虚拟化单元、以及各种应用功能,其全部作为单个集成电路而被集成(或“烧”)
到芯片基底上。当经由SOC进行操作时,可以经由在单个集成电路(芯片)上与计算设备700
的其他组件集成的专用逻辑来对在本文中所描述的关于应用720的功能进行操作。还可以
使用能够执行逻辑操作(例如AND、OR和NOT)的其他技术?#35789;?#36341;本发明的实施例,所述其他
技术包括但不限于机械、光学、流体、和量子技术。另外,可以在通用计算机内或在任何其他
任何电路或系统中实践本发明的实施例。

计算设备700还可以具有一个或多个输入设备712,例如键盘、鼠标、?#30465;?#35821;音输入
设备、触摸输入设备?#21462;?#36824;可以包括输出设备714,例如?#20801;?#22120;、扬声器、打印机?#21462;?#21069;述设备
是示例并且也可?#20801;?#29992;其他设备。计算设备700可以包括允许与其他计算设备718进行通信
的一个或多个通信连接716。合适的通信连接716的示例包括但不限于:RF发射机、接收机
和/或收发机电路;通用串行总线(USB)、并行和/或串行端口。

如在本文中所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储
介质可以包括以任何用于存储信息(例如,计算机可读指示、数据结构、或程序模块)的方法
或技术?#35789;迪?#30340;?#36164;?#24615;的和?#19988;资?#24615;的、可移动的和不可移动的介质。系统存储器704、可
移动存储设备709、和不可移动存储设备710都是计算机存储介质的示例(即,存储器存储)。
计算机存储介质可以包括RAM、ROM、电可擦只读存储器(EEPROM)、?#20102;?#23384;储器或其他存储器
技术、CD-ROM、数字通用盘(DVD)或其他光存储、盒式磁带、磁带、?#25490;?#23384;储器或其他磁存储
设备、或者可用于存储信息且可以由计算机设备700访问的任何其他?#30772;貳?#20219;何这样的计算
机存储介质都可?#20801;?#35745;算设备700的一部分。

图8A和8B图示了利用其可?#20801;?#36341;本发明的实施例的移动计算设备800。合适的移
动计算设备的示例包括但不限于:移动电话、智能电话、平板计算机、平面计算机、以及膝上
?#22270;?#31639;机。在基本配置中,移动计算设备800是具有输入元件和输出元件两者的手持式计算
机。移动计算设备800通常包括?#20801;?#22120;805以及允许用户将信息输入到移动计算设备800中
的一个或多个输入按钮810。移动计算设备800的?#20801;?#22120;805也可以充当输入设备(例如,触
摸?#26009;允?#22120;)。如果被包括在内,则可选的侧输入元件815允许进一步的用户输入。侧输入元
815可?#20801;?#26059;转开关、按钮、或任何其他类型的手动输入元件。在可替代的实施例中,移动计
算设备800可包含更多或更少的输入元件。例如,在一些实施例中,?#20801;?#22120;805可以不是触摸
屏。在另一个可替代的实施例中,移动计算设备800是诸如蜂窝电话之类的便携式电话系
统。移动计算设备800还可以包括可选的小键盘835。可选的小键盘835可?#20801;?#29289;理小键盘或
者是在触摸?#26009;允?#22120;上生成的“软”小键盘。在各种实施例中,输出元件包括用于示出图形
用户界面(GUI)的?#20801;?#22120;805、视觉指示器820(例如,发光二极管)、和/或音频换能器825(例
如,扬声器)。在一些实施例中,移动计算设备800包含用来向用户提供触觉反馈的振动换能
器。在另一个实施例中,移动计算设备800包含用于向外?#21487;?#22791;发送信号或者从外?#21487;?#22791;接
收信号的输入和/或输出端口,例如音频输入端(例如,麦克风插孔)、音频输出端(如耳机插
孔)、以及视频输出端(例如,HDMI端口)。

图8B是示出了移动计算设备的一个实施例的架构的框图。即,移动计算设备800可
以包含用于实现一些实施例的系统(即,架构)802。在一个实施例中,系统802被实现为能够
运行一个或多个应用(例如浏览器、电子?#22987;?#26085;历、联系人管理器、消息传送?#31361;?#31471;、游戏、
以及媒体?#31361;?#31471;/播放器)的“智能电话”。在一些实施例中,将系统802集成为诸如集成的个
人数?#31181;?#29702;(PDA)和无线电话之类的计算设备。

一个或多个应用程序865可被加载到存储器862中,并且在操作系统864上运行或
者结合操作系统864运行。应用程序的示例包括电?#23433;?#21495;程序、电子?#22987;?#31243;序、个人信息管
理(PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传?#32479;?#24207;?#21462;?#31995;统802
还包括存储器862内的?#19988;资?#24615;存储区868。?#19988;资?#24615;存储区868可以用于存储如果系统802
?#31995;?#32780;不应该丢失的?#20013;?#30340;信息。应用程序865可?#20801;?#29992;?#19988;资?#24615;存储区868中的信息并将
信息存储在?#19988;资?#24615;存储区868中,所述信息例如由电子?#22987;?#24212;用等所使用的电子?#22987;?#25110;
其他消息。同?#25509;?#29992;(未示出)也驻留在系统802上并且被编程为与驻留在主机计算机上的
对应的同?#25509;?#29992;进行交互,以保持存储在?#19988;资?#24615;存储区域868中的信息与存储在主机计
算机处的对应的信息相同步。应当理解的是,包括在本文中所描述的软件应用720在内的其
他应用也可被加载到存储器862中并且在移动计算设备800上运行。

系统802具有可以被实现为一个或多个电池的电源870。电源870还可以包括外置
电源,例如交流的(AC)适配器或给电池供电或充电的加电对接托架。

系统802还可以包括执行发送和接收射频通信的功能的无线电设备872。无线电设
备872经由通信载波或服务供应商?#21019;?#25104;系统802与外部世界之间的无线连通性。来往无线
电设备872的传输是在操作系统864的控制下进行的。换句话说,可以将由无线电设备872所
接收的通信经由操作系统864散播至应用程序865,反之亦然。

视觉指示符820可以用于提供视觉通知和/或音?#21040;?#21475;874可以用于经由音频换能
器825产生能够听到的通知。在所示出的实施例中,视觉指示符820是发光二极管(LED),而
音频换能器825是扬声器。这些设备可直接地耦合至电源870,使得当被激活时,即使处理器
860和其他组件可以关闭以节省电池电量,这些设备也能保持通电并?#20013;?#30001;通知机制所指
示的一段时间。LED可被编程为无限期地保持通电,直到用户采取动作来指示该设备的通电
状态为止。音?#21040;?#21475;874用于向用户提供能够听到的信号并且从用户处接收能够听到的信
号。例如,除了耦合至音频换能器825之外,音?#21040;?#21475;874还可耦合至麦克风以接收能够听到
的输入,例如,促进电话会话。根据本发明的实施例,麦克风还可以充当音频传感器?#28304;?#36827;
对通知的控制,如在下文中描述的。系统802还可以包括支持用于记录静止的图像、视频流
等的板载相机830的操作的视?#21040;?#21475;876。

实现系统802的移动计算设备800可以具有额外的特征或功能。例如,移动计算设
备800还可以包括额外的数据存储设备(可移动的和/或不可移动的),例如?#25490;獺?#20809;盘、或磁
带。由?#19988;资?#24615;存储区868示出了这样额外的存储设备。

如在上文中所描述的,可以将由移动计算设备800所生成或捕获的数据/信息以及
经由系统802所存储的数据/信息本地地存储在移动计算设备800上,或者可以将数据存储
在可以经由无线电设备872或经由移动计算设备800和与移动计算设备800相关联的单独的
计算设备(例如,分布式计算网络(例如,互联网)中的服务器计算机)之间的有线连接由设
备来访问的任何数量的存储介质上。应当理解的是,可以经由移动计算设备800、经由无线
电872、或经由分布式计算网络来访问这样的数据/信息。类似地,根据公知的数据/信息传
输和存储方式(包括电子?#22987;?#21644;协同数据/信息共享系统),这样的数据/信息可以容易地在
计算设备之间传输以供存储和使用。

在该公开中所提供的一个或多个实施例的描述或图示旨在向本领域技术人员提
供对主题的完整?#27573;?#30340;完全彻底和完整的公开,而不旨在以任何方?#36739;?#21046;或约束所要求保
护的发明的?#27573;А?#22312;该公开中所提供的实施例、示例、和?#38468;?#34987;认为足?#28304;?#36798;所有物,并且
使得本领域技术人员能够制造并使用所要求保护的发明的最佳模式。被认为是对本领域技
术人员公知的对结构、资源、操作、和行为的描述可?#20801;?#31616;要的或者被省略,以避免使得该
申请的主题的较少人知道的或者独特的方面难以理解。所要求保护的发明不应该被解释为
限于在该申请中所提供的任何实施例、示例、或?#38468;凇?#26080;论是共同地还是单独地示出或描
述,(结构上和方法上两者的)各种特征旨在选择性地包括或省略,以产生具有特定组的特
征的实施例。此外,可以以任何顺序或者同时地执行所示出或描述的功能和行为中的任何
一个或全部。在已经提供有本申请的描述和图示之后,本领域技术人员可以预想落入在该
申请中所实施的一般的发明概念的更宽泛的方面的精神内的变型、修改和替代实施例,而
不脱离所要求保护的发明的更宽泛的?#27573;А?br />

关于本文
本文标题:文档编辑的智能冲突检测和语义表达.pdf
链接地址:http://www.pqiex.tw/p-6091629.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 腾讯欢乐斗地主 谁有河北彩票站微信号 股票涨跌幅怎么算公式 内蒙古十一选五开奖倒汁时 海南环岛赛赛程 河南十一选五开奖结果 海南环岛赛车福彩规则 北京pk10高手赌法 长期 60万股票融资可以融到多少钱 辽宁11选5直选遗漏