详细描述
此处所描述的实施例涉及验证要对模型内的目标对象执行的编辑的有效性以及建议一个或多个有效编辑。在一个实施例中,计算机系统执行一种用于验证要对模型内的至少一个目标对象执行的编辑的有效性的方法。计算机系统接收指示要对模型内的目标对象执行的编辑的用户姿势。该模型基于包括定义模型中包括目标对象的对象之间的关系的约束的底层模式。计算机系统确定底层模式中的至少一个约束与所指示的对目标对象的编辑相关联。基于该确定,计算机系统确定编辑是有效的。有效编辑符合与所指示的对目标对象的编辑相关联的约束。
在另一实施例中,计算机系统基于所指示的对应于模型对象的用户姿势来建议有效模型编辑。计算机系统接收指示要对模型内的目标对象执行的编辑的用户姿势。该模型基于包括定义对象之间的关系的一个或多个约束的底层模式。计算机系统确定底层模式中的至少一个约束与所指示的对目标对象的编辑相关联。最后,计算机系统向计算机用户提供有效模型编辑的指示。
本发明的各实施例可以包括或利用含有计算机硬件的专用或通用计算机,这将在以下做出进一步讨论。本发明范围内的各实施例还包括用于承载或储存计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不同的计算机可读介质:物理存储介质和传输介质。
物理存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带或传输计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
然而,应当理解,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动转移到物理存储介质。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口卡内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的较不易失的物理存储介质。由此,应当理解,物理存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令例如包括,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言等中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
图1示出了其中可以采用本发明的原理的计算机体系结构100。计算机体系结构100包括计算机系统101。在某些实施例中,计算机系统101可以包括系统存储器155和处理器156。如以上所解释的,存储器155可以是任何类型的计算机存储器,包括RAM、ROM、固态、磁或其他存储器。类似地,处理器156可以是任何类型的处理器、微控制器、状态机或处理信息和/或控制计算机系统功能的其他装置。
计算机系统101也可以包括姿势接收模块110。在某些实施例中,姿势接收模块110可以被配置成从用户105处接收用户姿势106。用户105可以是能够与计算机系统交互的任何类型的计算机用户。用户姿势106可以是能够由计算机系统解释的任何类型的输入。例如,用户姿势可以包括鼠标点击、键盘输入、拖放、点击和拖拽、鼠标悬停、经由触摸屏的触摸输入或由照相机或摄像机捕捉的任何类型的用户或对象移动。姿势接收模块110可以被配置成接收用户姿势106并将其解释为预期命令。例如,如果用户输入拖放姿势,则姿势接收模块110可以将姿势解释为用户选择项目并将该项目移动到项目在该处被“放下”的位置。当然,许多其他姿势/命令组合是可能的。另外地或另选地,用户106可以定义姿势接收模块110要如何解释某些姿势。
经解释的姿势的产物是所指示的编辑111。例如,如果用户输入姿势106,则姿势接收模块110可以将该姿势解释为特定命令。该命令可以指定要对对象执行的编辑(例如所指示的编辑111)。例如,在某些情况下,计算机系统101可以被配置成编辑模型。此处所使用的术语模型可以包括允许向用户呈现信息的任何类型的框架或结构。这一框架可用于组织信息。例如,模型可用于示出系统中的资源之间的组织关系。这些模型通常被称为组织图表或组织图。组织图通常以分层、自顶向下结构来呈现信息。模型也可用于示出处理流程。这些模型通常被称为流程图、处理流程、流程图表、过程图或控制图。这些模型示出过程能够在其通向完成的途中采用的各种路线。也可以使用能够以各种形式显示的、具有链接各种类型的信息的某种类型的关系信息的其他模型。
在某些情况下,模型可以使用模式来定义由模型表示的不同信息之间的关系。例如,组织图可开始于“总裁”字段并结束于“兼职”字段,其间的每一个字段都链接到其他字段。例如,“总裁”可链接到“副总裁”,“副总裁”可链接到“1级经理”,“1级经理”可链接到“兼职”字段。每一个链接被定义为关系,并且每一个关系作为对应于该模型的模式内的约束来存储。模式可以继续定义每一个字段中可包括哪些类型的信息。例如,“总裁”标签在模式中可用于指定与公司总裁相关联的信息。“总裁”标签可以允许与“兼职”标签所允许的不同的信息。诸如姓名、地址、个人简历、履历、董事会成员等的信息对于总裁都是可用的,而较少的信息对兼职员工可用。
使用模式和约束来定义信息和信息字段之间的关系的这个示例仅仅是对模型、模式和约束的许多类型的可能的使用的一个示例。许多其他变型是可能的。提供该示例是为了示出模型、模式和约束之间的相互关系。
如上所述,姿势接收模块110可以接收用户姿势106、将姿势解释为用于编辑模型的命令并输出所指示的编辑111。所指示的编辑111可以包括能够编辑项目的任何类型的命令。例如,所指示的编辑111可以包括剪切、复制、粘贴、上色、重新成形、画线、移动、重新链接、重新连接、删除、添加或旨在更改包括模型的对象的任何其他命令。在某些实施例中,模型140基于底层模式135和相应的约束137。在这种情况下,底层模式135和/或约束137可以包括对可对模型140执行哪些编辑的限制。由此,编辑确认器120可以被配置成通过对照模型135和约束137的限制来检查所指示的编辑来确认所指示的编辑111。
例如,在某些情况下,用户105可能期望基于模式135和约束137来编辑模型140。在其他情况下,用户105可能期望基于所选模式和相应的约束来创建模型。在某些情况下,用户105可以从其中每一个模式具有相应的约束的一组底层模式136中选择底层模式135和相应的约束137。在其他情况下,用户可以从一组模型141中选择要编辑的模型。在这种情况下,所选模型将具有来自该组底层模式136的对应的模式和约束。由此,无论用户是选择模型还是仅选择模式,约束关联模块125都可以接收模型和/或模式,并确定是否有任一个相应的约束与所指示的编辑111相关联。
约束关联模块125可以被配置成确定约束是否以各种方式与所指示的编辑相关联。例如,用户105可带着将用线来连接对象的目的将对象拖到另一对象上,以指定这些对象具有某种类型的关系。约束关联模块125可以标识这两个对象并且访问约束以确定约束是否允许这两个对象被示为连接的并具有某种类型的关系。约束关联和编辑有效性确定将在下文中更详细地解释。
编辑确认器120可以被配置成与编辑执行模块130通信。在某些实施例中,一旦编辑被编辑确认器声明为有效,编辑执行模块130就执行所指示的编辑。应该注意,被声明为无效的编辑可以被保留,并且甚至可以按将该编辑标识为无效的作标记的形式呈现给用户。在还有一些其他情况下,可能期望基于约束137来向用户105提供关于可允许哪些编辑的提示。由此,即使编辑确认器120已经确定所指示的编辑是有效的(例如有效判定122),确认器120也可以包括指示其他可允许的编辑的一个或多个提示。由此,编辑确认器120可以输出以下判定:带有提示的有效(121)、有效(122)、带有提示的无效(123)和无效(124)。由此,在提供提示的情况下,用户105可以指示编辑执行模块130执行所提供的编辑作为对所指示的编辑的补充或替换。由此,编辑执行模块130基于一个或多个所指示的和/或所提供的编辑来编辑和/或创建模块,以产生经编辑的模型145。在某些情况下,编辑确认器120、约束关联模块125和编辑执行模块130的组合可以被称为编辑器115。
图2示出了用于验证要对模型内的至少一个目标对象执行的编辑的有效性的方法200的流程图。图4A-4D示出了基于用户姿势的模型编辑的示例。现在将频繁地参考环境100的组件和数据以及图4A-4D的模型编辑示例来描述方法200。
方法200包括接收指示要对模型内的至少一个目标对象执行的编辑的用户姿势的动作,该模型基于包括定义模型中包括目标对象的对象之间的关系的一个或多个约束的底层模式(动作210)。例如,姿势接收模块110可以接收指示要对模型140内的至少一个目标对象执行所指示的编辑111的用户姿势106,模型140基于底层模式135和定义模型140中包括目标对象的对象之间的关系的对应的约束137。如上所述,姿势接收模块110可以从用户105处接收任何类型的用户姿势。在某些情况下,模块110被配置成解释姿势,并且标识由姿势指示的编辑。
例如,诸如双击目标对象或将目标对象拖放到另一对象上的姿势可以指示不同的编辑。在某些实施例中,双击目标对象可以自动复制对象,创建新的相同对象。另一方面,将目标对象拖拉到另一对象上可以指示将要用线或其他连接符来将目标对象连接到另一对象。如可以理解的,这些和其他姿势中各自可以基于姿势接收模块110的默认配置或基于模块110的用户定制配置来不同地解释。
方法200还包括确定底层模式中的至少一个约束与所指示的对目标对象的编辑相关联的动作(动作220)。例如,约束关联模块125可以确定对应于底层模式135的至少一个约束137与所指示的对目标对象的编辑111相关联。在某些实施例中,图4A的模型对象431A可以是目标对象。例如,图4A描绘了姿势401A,其中用户(例如用户105)在所选对象430A和对象431A(该范例中的目标对象)之间画线405A。
每一个模型对象可以具有表示对象上可以放置连接符的位置的端点。连接符425A-D将对象连接到其他对象。在某些情况下,连接表示由模型的底层模式和对应的约束定义的对象之间的关系。由此,如图4A-4D所示,非匹配端点415A-D表示对象中不能连接到所选对象的部分,而匹配端点410A-D表示对象中可以连接到目标对象的部分,基于模型的约束来准许连接。
由此,如图4A所示,用户可以输入在对象430A和431A之间画线405A的姿势。姿势由姿势接收模块110接收,并且它确定姿势指示要用连接符(例如连接符425A)来连接两个对象。约束关联模块125可以确定在匹配端点410A处用连接符来连接两个对象的所指示编辑是约束137所准许的。由此,结果420A将对象430A和431A示为在匹配端点410A处由连接符425A连接。
最后,基于确定底层模式中的至少一个约束与所指示的对目标对象的编辑相关联,方法200包括确定编辑有效的动作,该有效编辑符合与所指示的对目标对象的编辑相关联的至少一个约束(动作230)。例如,基于约束关联模块125确定底层模式135的至少一个约束137与所指示的对对象431A的编辑111相关联,编辑确认器120可以确定所指示编辑111是有效的,因为该编辑符合与所指示的对对象431A的编辑111相关联的至少一个约束137。由此,在上述示例中,由于约束137指示在匹配端点410A之间存在关系,并且由于用户姿势被确定为对于该模型是有效的(有效判定122),因此所指示的在匹配端点410A之间画连接符的编辑可以由编辑执行模块130执行(可选动作240)。对应于底层模式的至少一个约束的端点可以在用户显示器中突出显示。在某些实施例中,模型140可以在视觉建模应用程序中显示、编辑和/或创建。
图3示出了用于基于所指示的对应于模型对象的用户姿势来建议一个或多个有效模型编辑的方法300的流程图。现在将频繁地参考环境100的组件和数据以及图4A-4D的模型编辑示例来描述方法300。
方法300包括接收指示要对模型中的至少一个目标对象执行的编辑的用户姿势的动作,该模型基于包括定义对象之间的关系的一个或多个约束的底层模式(动作310)。例如,姿势接收模块110可以接收用户姿势106并且指示要对模型140中的至少一个目标对象(例如对象431B)执行所指示的编辑111,模型140基于包括定义模型中的对象之间的关系的约束137的底层模式135。
方法300还包括确定底层模式中的至少一个约束与所指示的对目标对象的编辑相关联的动作(动作320)。例如,约束关联模块125可以确定底层模式135中的至少一个约束137与所指示的对目标对象(例如对象431B)的编辑相关联。由此,评估底层域模型中对应于所选对象和/或目标对象的约束。编辑器确认器120基于对约束的评估来做出关于所指示的编辑111的有效性的判定一具体地,模型的约束中的任一个是否适用于所指示的编辑111。
基于确定底层模式中的至少一个约束与所指示的对目标对象的编辑相关联,方法300可任选地包括基于与要对目标对象执行的所指示的编辑相关联的约束,确定对应于用户姿势的模型编辑是无效的的动作(可选动作330)。例如,基于确定底层模式135中的至少一个约束137与所指示的对目标对象(例如对象431B)的编辑相关联,编辑确认器120可以基于与要对目标对象执行的所指示的编辑111相关联的约束137来确定对应于用户姿势106的所指示的编辑111是无效的。
所指示的编辑111可以出于多种原因而被声明为无效(无效判定124)。例如,所选对象(例如对象430B)可能不具有与目标对象(例如对象431B)匹配的端点,如图4B所示。此外,约束137可以指示所选对象430B和431B在它们之间不具有或不被允许具有关系。例如,模型可以包括具有多个步骤的处理流程图,其中每一个步骤必须连续地完成。用户可以输入指示对第一过程框的选择的姿势以及要由连接符将该第一框连接到第三过程框的指示(例如,用户将第一框拖到第三框上)。在这种情况下,约束关联模块会确定存在与该编辑相关联的约束并且编辑确认器会返回基于约束的无效判定。注意,这仅是由模型的约束和底层模式确定的无效编辑的一个示例,并且许多其他不同的且更加复杂的示例也是可能的。
最后,基于无效性判定,方法300包括向计算机用户提供至少一个有效模型编辑的指示的动作(动作340)。例如,基于无效性判定124,编辑确认器120可以向计算机用户105提供至少一个有效模型编辑的指示(例如提示121和123)。如图4B所示,用户可以输入姿势401B,即在所选对象430B和目标对象431B之间的用户画的线405B。在这种情况下,不存在端点,因为还没有确定这两个对象之间的潜在关系。在接收到基于姿势401B的所指示的编辑111之后,编辑确认器可以基于约束125来提供可以连接这两个对象以及进一步地应连接对象的哪些部分的指示。由此,在结果420B中,匹配端点410B和411B由连接符425B连接,其中端点411B基于关于对象410B和411B的约束来生成。
在某些情况下,编辑确认器可以基于所指示的编辑111来提供有效模型编辑的提示或指示,即使当该编辑被确定为有效时。由此,编辑确认器120可以将四个不同的判定发送给编辑执行模块130:有效和提示121、有效122、无效和提示123以及无效124。在某些情况下,编辑确认器120可以响应于所指示的编辑111并且依照底层模式的约束来提供多个有效模型编辑。
如图4C所示,模型可以具有带有多个端点的多个对象。在某些实施例中,在姿势401C下,用户可以将所选模型对象430C拖拽到一组模型对象435C的框线的区域内,并将其放在该区域内的某个地方(拖放姿势406C)。编辑确认器可以基于每一个模型(在存在不止一个模型的情况下)的每一个对象的关于可能的端点匹配的约束来作出判定。由此,在结果420C中,匹配端点410C经由连接符425C来连接,而非匹配端点415C不连接。在其中不止一个端点根据其对应的约束而匹配的某些情况下,可以向用户提示选项框以确定是连接到一个框,一些框还是所有匹配的框。此外,在某些实施例中,丢弃不具有与所选对象430C匹配的端点的对象或者以其他方式将其从视图中移除,由此使得用户能够专注于与所选对象430C相关联的那些对象。
在图4D中,示出了姿势410D下的另一种情况,其中用户选择所选对象430D并且将其拖放到视觉模型编辑程序内的开放空间中。在某些实施例中,用户105选择了要与一个或多个对象(例如模型)中的其他端点匹配的端点(例如端点412D)。可以向用户显示具有匹配端点450D的一组对象模板,以允许用户在具有根据每一个对象的底层模式的约束而对应于端点412的端点的对象模板之间进行选择。由此,在该示例中,用户可以从各自具有至少一个匹配端点的对象模板451D、452D和453D中进行选择。如结果420D所示,用户105可以选择对象模板453D,该模板的匹配端点(例如匹配端点410D)由连接符425D连接。不连接对象的非匹配端点415D。类似于上述情况,用户可任选地选择具有匹配端点的多个对象。此外,用户可以执行指示要对所选对象执行的其他编辑的姿势。如果基于底层模式的约束确定这些姿势有效,则可以类似地处理和执行这些姿势。
在某些情况下,编辑确认器120提供包括在功能上基本上类似于无效模型编辑的有效模型编辑的提示。由此,如果用户试图修改对象或创建两个对象之间的关系,并且姿势导致无效编辑,则编辑确认器120可以确定类似于该姿势所指示的编辑的其他编辑。
在某些实施例中,当确定所指示的编辑111是无效的时候,编辑执行模块130可以阻止执行模型编辑。另外地或另选地,编辑执行模块130可以创建对应于底层模式的约束的新的模型对象。用户可选择要创建的新模型对象的类型。在某些实施例中,可以按文本形式描述作为提示提供的所显示的模型编辑。在其他情况下,所显示的有效模型编辑可以包括指示对模型的所建议的编辑的效果的叠加图像。由此,用户将能够根据叠加图像来确定是否执行编辑。
由此,用户可以执行指示要对一个或多个模型执行的编辑的姿势。编辑的有效性可以在应用它们之前确定,以确保用户以基于模型的底层模式的约束的有效方式来编辑模型。此外,当用户指示无效编辑时,可以提供提示以使得用户能够指示要对模型执行的有效编辑。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的所有改变应被权利要求书的范围所涵盖。