專利名稱:關(guān)系模型的智能編輯的制作方法
關(guān)系模型的智能編輯背景計(jì)算機(jī)已經(jīng)被高度集成在勞動(dòng)力、家庭和移動(dòng)設(shè)備中。計(jì)算機(jī)可以快速且高效地 處理大量信息。被設(shè)計(jì)成在計(jì)算機(jī)系統(tǒng)上運(yùn)行的軟件應(yīng)用程序允許用戶執(zhí)行包括商業(yè)應(yīng)用 程序、學(xué)校作業(yè)、娛樂等各種各樣的功能。軟件應(yīng)用程序通常被設(shè)計(jì)成執(zhí)行特定任務(wù),諸如 用于起草文檔的文字處理器應(yīng)用程序或用于發(fā)送、接收或組織電子郵件的電子郵件程序。在某些情況下,軟件應(yīng)用程序可用于生成和操縱模型。例如,企業(yè)和其他實(shí)體可以 使用模型來描述過程和系統(tǒng)。模型也可以按各種形式表示不同類型的信息。在某些情況下, 模型可以按流程圖的形式表示數(shù)據(jù)。在其他情況下,模型可以按處理流程、流程圖、過程圖 和/或控制圖的形式表示數(shù)據(jù)。在其他情況下,模型可用于示出系統(tǒng)中的資源之間的組織 關(guān)系。這些模型通常被稱為組織圖。更寬泛地,模型可用于示出不同對象之間的任何類型 的關(guān)系信息。通常,模型具有描述在該模型中使用的術(shù)語的相關(guān)聯(lián)的模式。模式可擔(dān)當(dāng)一種圖 例,允許用戶或軟件應(yīng)用程序咨詢該模式以便確定在該模型中使用的術(shù)語或符號的預(yù)期含 義。某些模式可以包括用戶可定義標(biāo)簽(例如可擴(kuò)展標(biāo)記語言(XML)標(biāo)簽)以及對應(yīng)于模 型中的各種元素的元數(shù)據(jù)。元數(shù)據(jù)可用于描述諸如對象的外觀和感覺、其布局以及甚至其 內(nèi)容等對象特性。由此,計(jì)算機(jī)運(yùn)行的軟件應(yīng)用呈現(xiàn)可用于生成和操縱模型。簡要概述此處描述的實(shí)施例涉及驗(yàn)證要對模型內(nèi)的目標(biāo)對象執(zhí)行的編輯的有效性并且建 議一個(gè)或多個(gè)有效編輯。在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)執(zhí)行一種用于驗(yàn)證要對模型內(nèi)的至 少一個(gè)目標(biāo)對象執(zhí)行的編輯的有效性的方法。計(jì)算機(jī)系統(tǒng)接收指示要對模型內(nèi)的目標(biāo)對象 執(zhí)行的編輯的用戶姿勢。該模型基于包括定義模型內(nèi)包括目標(biāo)對象的對象之間的關(guān)系的約 束的底層模式。計(jì)算機(jī)系統(tǒng)確定底層模式中的至少一個(gè)約束與所指示的對目標(biāo)對象的編輯 相關(guān)聯(lián)?;谠摯_定,計(jì)算機(jī)系統(tǒng)確定該編輯是有效的。有效編輯符合與所指示的對目標(biāo) 對象的編輯相關(guān)聯(lián)的約束。在另一實(shí)施例中,計(jì)算機(jī)系統(tǒng)基于所指示的對應(yīng)于模型對象的用戶姿勢來建議有 效模型編輯。計(jì)算機(jī)系統(tǒng)接收指示要對模型內(nèi)的目標(biāo)對象執(zhí)行的編輯的用戶姿勢。該模型 基于包括定義對象之間的關(guān)系的一個(gè)或多個(gè)約束的底層模式。計(jì)算機(jī)系統(tǒng)確定底層模式中 的至少一個(gè)約束與所指示的對目標(biāo)對象的編輯相關(guān)聯(lián)。最后,計(jì)算機(jī)系統(tǒng)向計(jì)算機(jī)用戶提 供有效模型編輯的指示。提供本概述是為了以簡化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概 念。本概述不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定 所要求保護(hù)的主題的范圍。附圖簡述為了進(jìn)一步闡明本發(fā)明的實(shí)施例的以上和其它優(yōu)點(diǎn)和特征,將參考附圖來呈現(xiàn)本 發(fā)明的各實(shí)施例的更具體的描述。可以理解,這些附圖只描繪本發(fā)明的典型實(shí)施例,因此將 不被認(rèn)為是對其范圍的限制。將通過使用附圖用附加特征和細(xì)節(jié)來描述和說明這些實(shí)施例,附圖中
圖1示出了本發(fā)明的各實(shí)施例可在其中操作的計(jì)算機(jī)體系結(jié)構(gòu),包括驗(yàn)證要對模 型執(zhí)行的編輯的有效性并基于所指示的用戶姿勢來建議有效模型編輯。 圖2示出了用于驗(yàn)證要對模型內(nèi)的至少一個(gè)目標(biāo)對象執(zhí)行的編輯的有效性的示 例方法的流程圖。圖3示出了用于基于所指示的對應(yīng)于模型對象的用戶姿勢來建議有效模型編輯 的示例方法的流程圖。圖4A-4D示出了其中基于用戶姿勢來編輯模型中的端點(diǎn)之間的連接的本發(fā)明的 實(shí)施例。詳細(xì)描述此處所描述的實(shí)施例涉及驗(yàn)證要對模型內(nèi)的目標(biāo)對象執(zhí)行的編輯的有效性以及 建議一個(gè)或多個(gè)有效編輯。在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)執(zhí)行一種用于驗(yàn)證要對模型內(nèi)的 至少一個(gè)目標(biāo)對象執(zhí)行的編輯的有效性的方法。計(jì)算機(jī)系統(tǒng)接收指示要對模型內(nèi)的目標(biāo)對 象執(zhí)行的編輯的用戶姿勢。該模型基于包括定義模型中包括目標(biāo)對象的對象之間的關(guān)系的 約束的底層模式。計(jì)算機(jī)系統(tǒng)確定底層模式中的至少一個(gè)約束與所指示的對目標(biāo)對象的編 輯相關(guān)聯(lián)?;谠摯_定,計(jì)算機(jī)系統(tǒng)確定編輯是有效的。有效編輯符合與所指示的對目標(biāo) 對象的編輯相關(guān)聯(lián)的約束。在另一實(shí)施例中,計(jì)算機(jī)系統(tǒng)基于所指示的對應(yīng)于模型對象的用戶姿勢來建議有 效模型編輯。計(jì)算機(jī)系統(tǒng)接收指示要對模型內(nèi)的目標(biāo)對象執(zhí)行的編輯的用戶姿勢。該模型 基于包括定義對象之間的關(guān)系的一個(gè)或多個(gè)約束的底層模式。計(jì)算機(jī)系統(tǒng)確定底層模式中 的至少一個(gè)約束與所指示的對目標(biāo)對象的編輯相關(guān)聯(lián)。最后,計(jì)算機(jī)系統(tǒng)向計(jì)算機(jī)用戶提 供有效模型編輯的指示。本發(fā)明的各實(shí)施例可以包括或利用含有計(jì)算機(jī)硬件的專用或通用計(jì)算機(jī),這將在 以下做出進(jìn)一步討論。本發(fā)明范圍內(nèi)的各實(shí)施例還包括用于承載或儲存計(jì)算機(jī)可執(zhí)行指令 和/或數(shù)據(jù)結(jié)構(gòu)的物理和其他計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算機(jī)可讀介質(zhì)可以是可由通用或 專用計(jì)算機(jī)系統(tǒng)訪問的任何可用介質(zhì)。存儲計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是物理 存儲介質(zhì)。攜帶計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限 制,本發(fā)明的各實(shí)施例可包括至少兩種完全不同的計(jì)算機(jī)可讀介質(zhì)物理存儲介質(zhì)和傳輸 介質(zhì)。物理存儲介質(zhì)包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲、磁盤存儲或其他磁 存儲設(shè)備、或可用于存儲計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通 用或?qū)S糜?jì)算機(jī)訪問的任何其他介質(zhì)。“網(wǎng)絡(luò)”被定義為允許在計(jì)算機(jī)系統(tǒng)和/或模塊和/或其他電子設(shè)備之間傳輸電子 數(shù)據(jù)的一個(gè)或多個(gè)數(shù)據(jù)鏈路。當(dāng)信息通過網(wǎng)絡(luò)或另一通信連接(硬連線、無線或硬連線或 無線的組合)傳輸或提供給計(jì)算機(jī)時(shí),該計(jì)算機(jī)將該連接適當(dāng)?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì) 可包括可用于攜帶或傳輸計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置并可由 通用或?qū)S糜?jì)算機(jī)訪問的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路。上述的組合也應(yīng)被包括在計(jì)算機(jī)可讀介質(zhì) 的范圍內(nèi)。然而,應(yīng)當(dāng)理解,在到達(dá)各種計(jì)算機(jī)系統(tǒng)組件之后,計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼裝置可從傳輸介質(zhì)自動(dòng)轉(zhuǎn)移到物理存儲介質(zhì)。例如,通過網(wǎng)絡(luò)或數(shù)據(jù)鏈路 接收到的計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩存在網(wǎng)絡(luò)接口卡內(nèi)的RAM中,然后最終被傳 送到計(jì)算機(jī)系統(tǒng)RAM和/或計(jì)算機(jī)系統(tǒng)處的較不易失的物理存儲介質(zhì)。由此,應(yīng)當(dāng)理解,物 理存儲介質(zhì)可被包括在同樣(或甚至主要)利用傳輸介質(zhì)的計(jì)算機(jī)系統(tǒng)組件中。計(jì)算機(jī)可執(zhí)行指令例如包括,使通用計(jì)算機(jī)、專用計(jì)算機(jī)、或?qū)S锰幚碓O(shè)備執(zhí)行某 一功能或某組功能的指令和數(shù)據(jù)。計(jì)算機(jī)可執(zhí)行指令可以是例如二進(jìn)制代碼、諸如匯編語 言等中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本 主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述特征或動(dòng)作。相反,上述特 征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式而公開的。
圖1示出了其中可以采用本發(fā)明的原理的計(jì)算機(jī)體系結(jié)構(gòu)100。計(jì)算機(jī)體系結(jié)構(gòu) 100包括計(jì)算機(jī)系統(tǒng)101。在某些實(shí)施例中,計(jì)算機(jī)系統(tǒng)101可以包括系統(tǒng)存儲器155和處 理器156。如以上所解釋的,存儲器155可以是任何類型的計(jì)算機(jī)存儲器,包括RAM、R0M、固 態(tài)、磁或其他存儲器。類似地,處理器156可以是任何類型的處理器、微控制器、狀態(tài)機(jī)或處 理信息和/或控制計(jì)算機(jī)系統(tǒng)功能的其他裝置。計(jì)算機(jī)系統(tǒng)101也可以包括姿勢接收模塊110。在某些實(shí)施例中,姿勢接收模塊 110可以被配置成從用戶105處接收用戶姿勢106。用戶105可以是能夠與計(jì)算機(jī)系統(tǒng)交 互的任何類型的計(jì)算機(jī)用戶。用戶姿勢106可以是能夠由計(jì)算機(jī)系統(tǒng)解釋的任何類型的輸 入。例如,用戶姿勢可以包括鼠標(biāo)點(diǎn)擊、鍵盤輸入、拖放、點(diǎn)擊和拖拽、鼠標(biāo)懸停、經(jīng)由觸摸屏 的觸摸輸入或由照相機(jī)或攝像機(jī)捕捉的任何類型的用戶或?qū)ο笠苿?dòng)。姿勢接收模塊110可 以被配置成接收用戶姿勢106并將其解釋為預(yù)期命令。例如,如果用戶輸入拖放姿勢,則姿 勢接收模塊110可以將姿勢解釋為用戶選擇項(xiàng)目并將該項(xiàng)目移動(dòng)到項(xiàng)目在該處被“放下” 的位置。當(dāng)然,許多其他姿勢/命令組合是可能的。另外地或另選地,用戶106可以定義姿 勢接收模塊110要如何解釋某些姿勢。經(jīng)解釋的姿勢的產(chǎn)物是所指示的編輯111。例如,如果用戶輸入姿勢106,則姿勢 接收模塊110可以將該姿勢解釋為特定命令。該命令可以指定要對對象執(zhí)行的編輯(例如 所指示的編輯111)。例如,在某些情況下,計(jì)算機(jī)系統(tǒng)101可以被配置成編輯模型。此處所 使用的術(shù)語模型可以包括允許向用戶呈現(xiàn)信息的任何類型的框架或結(jié)構(gòu)。這一框架可用于 組織信息。例如,模型可用于示出系統(tǒng)中的資源之間的組織關(guān)系。這些模型通常被稱為組 織圖表或組織圖。組織圖通常以分層、自頂向下結(jié)構(gòu)來呈現(xiàn)信息。模型也可用于示出處理 流程。這些模型通常被稱為流程圖、處理流程、流程圖表、過程圖或控制圖。這些模型示出 過程能夠在其通向完成的途中采用的各種路線。也可以使用能夠以各種形式顯示的、具有 鏈接各種類型的信息的某種類型的關(guān)系信息的其他模型。在某些情況下,模型可以使用模式來定義由模型表示的不同信息之間的關(guān)系。例 如,組織圖可開始于“總裁”字段并結(jié)束于“兼職”字段,其間的每一個(gè)字段都鏈接到其他字 段。例如,“總裁”可鏈接到“副總裁”,“副總裁”可鏈接到“1級經(jīng)理”,“1級經(jīng)理”可鏈接 至IJ“兼職”字段。每一個(gè)鏈接被定義為關(guān)系,并且每一個(gè)關(guān)系作為對應(yīng)于該模型的模式內(nèi)的 約束來存儲。模式可以繼續(xù)定義每一個(gè)字段中可包括哪些類型的信息。例如,“總裁”標(biāo)簽 在模式中可用于指定與公司總裁相關(guān)聯(lián)的信息?!翱偛谩睒?biāo)簽可以允許與“兼職”標(biāo)簽所允 許的不同的信息。諸如姓名、地址、個(gè)人簡歷、履歷、董事會成員等的信息對于總裁都是可用的,而較少的信息對兼職員工可用。使用模式和約束來定義信息和信息字段之間的關(guān)系的這個(gè)示例僅僅是對模型、模 式和約束的許多類型的可能的使用的一個(gè)示例。許多其他變型是可能的。提供該示例是為 了示出模型、模式和約束之間的相互關(guān)系。如上所述,姿勢接收模塊110可以接收用戶姿勢106、將姿勢解釋為用于編輯模型 的命令并輸出所指示的編輯111。所指示的編輯111可以包括能夠編輯項(xiàng)目的任何類型的 命令。例如,所指示的編輯111可以包括剪切、復(fù)制、粘貼、上色、重新成形、畫線、移動(dòng)、重新 鏈接、重新連接、刪除、添加或旨在更改包括模型的對象的任何其他命令。在某些實(shí)施例中, 模型140基于底層模式135和相應(yīng)的約束137。在這種情況下,底層模式135和/或約束 137可以包括對可對模型140執(zhí)行哪些編輯的限制。由此,編輯確認(rèn)器120可以被配置成通 過對照模型135和約束137的限制來檢查所指示的編輯來確認(rèn)所指示的編輯111。例如,在某些情況下,用戶105可能期望基于模式135和約束137來編輯模型140。 在其他情況下,用戶105可能期望基于所選模式和相應(yīng)的約束來創(chuàng)建模型。在某些情況下, 用戶105可以從其中每一個(gè)模式具有相應(yīng)的約束的一組底層模式136中選擇底層模式135 和相應(yīng)的約束137。在其他情況下,用戶可以從一組模型141中選擇要編輯的模型。在這種 情況下,所選模型將具有來自該組底層模式136的對應(yīng)的模式和約束。由此,無論用戶是選 擇模型還是僅選擇模式,約束關(guān)聯(lián)模塊125都可以接收模型和/或模式,并確定是否有任一 個(gè)相應(yīng)的約束與所指示的編輯111相關(guān)聯(lián)。約束關(guān)聯(lián)模塊125可以被配置成確定約束是否以各種方式與所指示的編輯相關(guān) 聯(lián)。例如,用戶105可帶著將用線來連接對象的目的將對象拖到另一對象上,以指定這些對 象具有某種類型的關(guān)系。約束關(guān)聯(lián)模塊125可以標(biāo)識這兩個(gè)對象并且訪問約束以確定約束 是否允許這兩個(gè)對象被示為連接的并具有某種類型的關(guān)系。約束關(guān)聯(lián)和編輯有效性確定將 在下文中更詳細(xì)地解釋。編輯確認(rèn)器120可以被配置成與編輯執(zhí)行模塊130通信。在某些實(shí)施例中,一旦 編輯被編輯確認(rèn)器聲明為有效,編輯執(zhí)行模塊130就執(zhí)行所指示的編輯。應(yīng)該注意,被聲 明為無效的編輯可以被保留,并且甚至可以按將該編輯標(biāo)識為無效的作標(biāo)記的形式呈現(xiàn)給 用戶。在還有一些其他情況下,可能期望基于約束137來向用戶105提供關(guān)于可允許哪些 編輯的提示。由此,即使編輯確認(rèn)器120已經(jīng)確定所指示的編輯是有效的(例如有效判定 122),確認(rèn)器120也可以包括指示其他可允許的編輯的一個(gè)或多個(gè)提示。由此,編輯確認(rèn)器 120可以輸出以下判定帶有提示的有效(121)、有效(122)、帶有提示的無效(123)和無效 (124)。由此,在提供提示的情況下,用戶105可以指示編輯執(zhí)行模塊130執(zhí)行所提供的編 輯作為對所指示的編輯的補(bǔ)充或替換。由此,編輯執(zhí)行模塊130基于一個(gè)或多個(gè)所指示的 和/或所提供的編輯來編輯和/或創(chuàng)建模塊,以產(chǎn)生經(jīng)編輯的模型145。在某些情況下,編 輯確認(rèn)器120、約束關(guān)聯(lián)模塊125和編輯執(zhí)行模塊130的組合可以被稱為編輯器115。圖2示出了用于驗(yàn)證要對模型內(nèi)的至少一個(gè)目標(biāo)對象執(zhí)行的編輯的有效性的方 法200的流程圖。圖4A-4D示出了基于用戶姿勢的模型編輯的示例。現(xiàn)在將頻繁地參考環(huán) 境100的組件和數(shù)據(jù)以及圖4A-4D的模型編輯示例來描述方法200。方法200包括接收指示要對模型內(nèi)的至少一個(gè)目標(biāo)對象執(zhí)行的編輯的用戶姿勢 的動(dòng)作,該模型基于包括定義模型中包括目標(biāo)對象的對象之間的關(guān)系的一個(gè)或多個(gè)約束的底層模式(動(dòng)作210)。例如,姿勢接收模塊110可以接收指示要對模型140內(nèi)的至少一個(gè) 目標(biāo)對象執(zhí)行所指示的編輯111的用戶姿勢106,模型140基于底層模式135和定義模型 140中包括目標(biāo)對象的對象之間的關(guān)系的對應(yīng)的約束137。如上所述,姿勢接收模塊110可 以從用戶105處接收任何類型的用戶姿勢。在某些情況下,模塊110被配置成解釋姿勢,并 且標(biāo)識由姿勢指示的編輯。例如,諸如雙擊目標(biāo)對象或?qū)⒛繕?biāo)對象拖放到另一對象上的姿勢可以指示不同的 編輯。在某些實(shí)施例中,雙擊目標(biāo)對象可以自動(dòng)復(fù)制對象,創(chuàng)建新的相同對象。另一方面, 將目標(biāo)對象拖拉到另一對象上可以指示將要用線或其他連接符來將目標(biāo)對象連接到另一 對象。如可以理解的,這些和其他姿勢中各自可以基于姿勢接收模塊110的默認(rèn)配置或基 于模塊110的用戶定制配置來不同地解釋。方法200還包括確定底層模式中的至少一個(gè)約束與所指示的對目標(biāo)對象的編輯 相關(guān)聯(lián)的動(dòng)作(動(dòng)作220)。例如,約束關(guān)聯(lián)模塊125可以確定對應(yīng)于底層模式135的至少 一個(gè)約束137與所指示的對目標(biāo)對象的編輯111相關(guān)聯(lián)。在某些實(shí)施例中,圖4A的模型對 象431A可以是目標(biāo)對象。例如,圖4A描繪了姿勢401A,其中用戶(例如用戶105)在所選 對象430A和對象431A(該范例中的目標(biāo)對象)之間畫線405A。每一個(gè)模型對象可以具有表示對象上可以放置連接符的位置的端點(diǎn)。連接符 425A-D將對象連接到其他對象。在某些情況下,連接表示由模型的底層模式和對應(yīng)的約束 定義的對象之間的關(guān)系。由此,如圖4A-4D所示,非匹配端點(diǎn)415A-D表示對象中不能連接 到所選對象的部分,而匹配端點(diǎn)410A-D表示對象中可以連接到目標(biāo)對象的部分,基于模型 的約束來準(zhǔn)許連接。由此,如圖4A所示,用戶可以輸入在對象430A和431A之間畫線405A的姿勢。姿 勢由姿勢接收模塊110接收,并且它確定姿勢指示要用連接符(例如連接符425A)來連接 兩個(gè)對象。約束關(guān)聯(lián)模塊125可以確定在匹配端點(diǎn)410A處用連接符來連接兩個(gè)對象的所 指示編輯是約束137所準(zhǔn)許的。由此,結(jié)果420A將對象430A和431A示為在匹配端點(diǎn)410A 處由連接符425A連接。最后,基于確定底層模式中的至少一個(gè)約束與所指示的對目標(biāo)對象的編輯相關(guān) 聯(lián),方法200包括確定編輯有效的動(dòng)作,該有效編輯符合與所指示的對目標(biāo)對象的編輯相 關(guān)聯(lián)的至少一個(gè)約束(動(dòng)作230)。例如,基于約束關(guān)聯(lián)模塊125確定底層模式135的至少 一個(gè)約束137與所指示的對對象431A的編輯111相關(guān)聯(lián),編輯確認(rèn)器120可以確定所指示 編輯111是有效的,因?yàn)樵摼庉嫹吓c所指示的對對象431A的編輯111相關(guān)聯(lián)的至少一個(gè) 約束137。由此,在上述示例中,由于約束137指示在匹配端點(diǎn)410A之間存在關(guān)系,并且由 于用戶姿勢被確定為對于該模型是有效的(有效判定122),因此所指示的在匹配端點(diǎn)410A 之間畫連接符的編輯可以由編輯執(zhí)行模塊130執(zhí)行(可選動(dòng)作240)。對應(yīng)于底層模式的至 少一個(gè)約束的端點(diǎn)可以在用戶顯示器中突出顯示。在某些實(shí)施例中,模型140可以在視覺 建模應(yīng)用程序中顯示、編輯和/或創(chuàng)建。圖3示出了用于基于所指示的對應(yīng)于模型對象的用戶姿勢來建議一個(gè)或多個(gè)有 效模型編輯的方法300的流程圖。現(xiàn)在將頻繁地參考環(huán)境100的組件和數(shù)據(jù)以及圖4A-4D 的模型編輯示例來描述方法300。方法300包括接收指示要對模型中的至少一個(gè)目標(biāo)對象執(zhí)行的編輯的用戶姿勢的動(dòng)作,該模型基于包括定義對象之間的關(guān)系的一個(gè)或多個(gè)約束的底層模式(動(dòng)作310)。 例如,姿勢接收模塊110可以接收用戶姿勢106并且指示要對模型140中的至少一個(gè)目標(biāo) 對象(例如對象431B)執(zhí)行所指示的編輯111,模型140基于包括定義模型中的對象之間的 關(guān)系的約束137的底層模式135。方法300還包括確定底層模式中的至少一個(gè)約束與所指示的對目標(biāo)對象的編輯相關(guān)聯(lián)的動(dòng)作(動(dòng)作320)。例如,約束關(guān)聯(lián)模塊125可以確定底層模式135中的至少一個(gè) 約束137與所指示的對目標(biāo)對象(例如對象431B)的編輯相關(guān)聯(lián)。由此,評估底層域模型 中對應(yīng)于所選對象和/或目標(biāo)對象的約束。編輯器確認(rèn)器120基于對約束的評估來做出關(guān) 于所指示的編輯111的有效性的判定一具體地,模型的約束中的任一個(gè)是否適用于所指示 的編輯111?;诖_定底層模式中的至少一個(gè)約束與所指示的對目標(biāo)對象的編輯相關(guān)聯(lián),方法 300可任選地包括基于與要對目標(biāo)對象執(zhí)行的所指示的編輯相關(guān)聯(lián)的約束,確定對應(yīng)于用 戶姿勢的模型編輯是無效的的動(dòng)作(可選動(dòng)作330)。例如,基于確定底層模式135中的至 少一個(gè)約束137與所指示的對目標(biāo)對象(例如對象431B)的編輯相關(guān)聯(lián),編輯確認(rèn)器120 可以基于與要對目標(biāo)對象執(zhí)行的所指示的編輯111相關(guān)聯(lián)的約束137來確定對應(yīng)于用戶姿 勢106的所指示的編輯111是無效的。所指示的編輯111可以出于多種原因而被聲明為無效(無效判定124)。例如,所 選對象(例如對象430B)可能不具有與目標(biāo)對象(例如對象431B)匹配的端點(diǎn),如圖4B所 示。此外,約束137可以指示所選對象430B和431B在它們之間不具有或不被允許具有關(guān) 系。例如,模型可以包括具有多個(gè)步驟的處理流程圖,其中每一個(gè)步驟必須連續(xù)地完成。用 戶可以輸入指示對第一過程框的選擇的姿勢以及要由連接符將該第一框連接到第三過程 框的指示(例如,用戶將第一框拖到第三框上)。在這種情況下,約束關(guān)聯(lián)模塊會確定存在 與該編輯相關(guān)聯(lián)的約束并且編輯確認(rèn)器會返回基于約束的無效判定。注意,這僅是由模型 的約束和底層模式確定的無效編輯的一個(gè)示例,并且許多其他不同的且更加復(fù)雜的示例也 是可能的。最后,基于無效性判定,方法300包括向計(jì)算機(jī)用戶提供至少一個(gè)有效模型編輯 的指示的動(dòng)作(動(dòng)作340)。例如,基于無效性判定124,編輯確認(rèn)器120可以向計(jì)算機(jī)用戶 105提供至少一個(gè)有效模型編輯的指示(例如提示121和123)。如圖4B所示,用戶可以輸 入姿勢401B,即在所選對象430B和目標(biāo)對象431B之間的用戶畫的線405B。在這種情況下, 不存在端點(diǎn),因?yàn)檫€沒有確定這兩個(gè)對象之間的潛在關(guān)系。在接收到基于姿勢401B的所指 示的編輯111之后,編輯確認(rèn)器可以基于約束125來提供可以連接這兩個(gè)對象以及進(jìn)一步 地應(yīng)連接對象的哪些部分的指示。由此,在結(jié)果420B中,匹配端點(diǎn)410B和411B由連接符 425B連接,其中端點(diǎn)41IB基于關(guān)于對象410B和41IB的約束來生成。在某些情況下,編輯確認(rèn)器可以基于所指示的編輯111來提供有效模型編輯的提 示或指示,即使當(dāng)該編輯被確定為有效時(shí)。由此,編輯確認(rèn)器120可以將四個(gè)不同的判定發(fā) 送給編輯執(zhí)行模塊130 有效和提示121、有效122、無效和提示123以及無效124。在某些 情況下,編輯確認(rèn)器120可以響應(yīng)于所指示的編輯111并且依照底層模式的約束來提供多 個(gè)有效模型編輯。如圖4C所示,模型可以具有帶有多個(gè)端點(diǎn)的多個(gè)對象。在某些實(shí)施例中,在姿勢401C下,用戶可以將所選模型對象430C拖拽到一組模型對象435C的框線的區(qū)域內(nèi),并將其放在該區(qū)域內(nèi)的某個(gè)地方(拖放姿勢406C)。編輯確認(rèn)器可以基于每一個(gè)模型(在存在 不止一個(gè)模型的情況下)的每一個(gè)對象的關(guān)于可能的端點(diǎn)匹配的約束來作出判定。由此, 在結(jié)果420C中,匹配端點(diǎn)410C經(jīng)由連接符425C來連接,而非匹配端點(diǎn)415C不連接。在其 中不止一個(gè)端點(diǎn)根據(jù)其對應(yīng)的約束而匹配的某些情況下,可以向用戶提示選項(xiàng)框以確定是 連接到一個(gè)框,一些框還是所有匹配的框。此外,在某些實(shí)施例中,丟棄不具有與所選對象 430C匹配的端點(diǎn)的對象或者以其他方式將其從視圖中移除,由此使得用戶能夠?qū)W⒂谂c所 選對象430C相關(guān)聯(lián)的那些對象。在圖4D中,示出了姿勢4IOD下的另一種情況,其中用戶選擇所選對象430D并且 將其拖放到視覺模型編輯程序內(nèi)的開放空間中。在某些實(shí)施例中,用戶105選擇了要與一 個(gè)或多個(gè)對象(例如模型)中的其他端點(diǎn)匹配的端點(diǎn)(例如端點(diǎn)412D)??梢韵蛴脩麸@示 具有匹配端點(diǎn)450D的一組對象模板,以允許用戶在具有根據(jù)每一個(gè)對象的底層模式的約 束而對應(yīng)于端點(diǎn)412的端點(diǎn)的對象模板之間進(jìn)行選擇。由此,在該示例中,用戶可以從各自 具有至少一個(gè)匹配端點(diǎn)的對象模板451D、452D和453D中進(jìn)行選擇。如結(jié)果420D所示,用 戶105可以選擇對象模板453D,該模板的匹配端點(diǎn)(例如匹配端點(diǎn)410D)由連接符425D連 接。不連接對象的非匹配端點(diǎn)415D。類似于上述情況,用戶可任選地選擇具有匹配端點(diǎn)的 多個(gè)對象。此外,用戶可以執(zhí)行指示要對所選對象執(zhí)行的其他編輯的姿勢。如果基于底層 模式的約束確定這些姿勢有效,則可以類似地處理和執(zhí)行這些姿勢。在某些情況下,編輯確認(rèn)器120提供包括在功能上基本上類似于無效模型編輯的 有效模型編輯的提示。由此,如果用戶試圖修改對象或創(chuàng)建兩個(gè)對象之間的關(guān)系,并且姿勢 導(dǎo)致無效編輯,則編輯確認(rèn)器120可以確定類似于該姿勢所指示的編輯的其他編輯。在某些實(shí)施例中,當(dāng)確定所指示的編輯111是無效的時(shí)候,編輯執(zhí)行模塊130可以 阻止執(zhí)行模型編輯。另外地或另選地,編輯執(zhí)行模塊130可以創(chuàng)建對應(yīng)于底層模式的約束 的新的模型對象。用戶可選擇要?jiǎng)?chuàng)建的新模型對象的類型。在某些實(shí)施例中,可以按文本 形式描述作為提示提供的所顯示的模型編輯。在其他情況下,所顯示的有效模型編輯可以 包括指示對模型的所建議的編輯的效果的疊加圖像。由此,用戶將能夠根據(jù)疊加圖像來確 定是否執(zhí)行編輯。由此,用戶可以執(zhí)行指示要對一個(gè)或多個(gè)模型執(zhí)行的編輯的姿勢。編輯的有效性 可以在應(yīng)用它們之前確定,以確保用戶以基于模型的底層模式的約束的有效方式來編輯模 型。此外,當(dāng)用戶指示無效編輯時(shí),可以提供提示以使得用戶能夠指示要對模型執(zhí)行的有效編輯。本發(fā)明可具體化為其它具體形式而不背離其精神或本質(zhì)特征。所述實(shí)施例在所有 方面都應(yīng)被認(rèn)為僅是說明性而非限制性的。從而,本發(fā)明的范圍由所附權(quán)利要求書而非前 述描述指示。落入權(quán)利要求書的等效方式的含義和范圍內(nèi)的所有改變應(yīng)被權(quán)利要求書的范 圍所涵蓋。
權(quán)利要求
一種在計(jì)算機(jī)系統(tǒng)上用于驗(yàn)證要對模型內(nèi)的至少一個(gè)目標(biāo)對象執(zhí)行的編輯的有效性的方法,所述方法包括接收指示要對模型內(nèi)的至少一個(gè)目標(biāo)對象執(zhí)行的編輯的用戶姿勢的動(dòng)作,所述模型基于包括定義所述模型中的包括所述目標(biāo)對象的對象之間的關(guān)系的一個(gè)或多個(gè)約束的底層模式;確定所述底層模式中的至少一個(gè)約束與所指示的對所述目標(biāo)對象的編輯相關(guān)聯(lián)的動(dòng)作;基于所述確定,確定所述編輯是有效的的動(dòng)作,所述有效編輯符合與所指示的對所述目標(biāo)對象的編輯相關(guān)聯(lián)的至少一個(gè)約束。
2.如權(quán)利要求1所述的方法,其特征在于,還包括在視覺建模應(yīng)用程序中顯示所述模 型的動(dòng)作。
3.如權(quán)利要求1所述的方法,其特征在于,還包括響應(yīng)于確定所述編輯有效來執(zhí)行所 指示的編輯的動(dòng)作。
4.一種在計(jì)算機(jī)系統(tǒng)上用于基于對應(yīng)于模型對象的所指示的用戶姿勢來建議一個(gè)或 多個(gè)有效模型編輯的方法,所述方法包括接收指示要對模型內(nèi)的至少一個(gè)目標(biāo)對象執(zhí)行的編輯的用戶姿勢的動(dòng)作,所述模型基 于包括定義對象之間的關(guān)系的一個(gè)或多個(gè)約束的底層模式;確定所述底層模式中的至少一個(gè)約束與所指示的對所述目標(biāo)對象的編輯相關(guān)聯(lián)的動(dòng) 作;以及向計(jì)算機(jī)用戶提供至少一個(gè)有效模型編輯的指示的動(dòng)作。
5.如權(quán)利要求4所述的方法,其特征在于,還包括基于所述確定,基于與要對所述目標(biāo)對象執(zhí)行的所指示的編輯相關(guān)聯(lián)的約束來確定對 應(yīng)于所述用戶姿勢的模型編輯無效的動(dòng)作;并且其中所述向計(jì)算機(jī)用戶提供至少一個(gè)有效模型編輯的指示的動(dòng)作基于所述無效性判定。
6.如權(quán)利要求4所述的方法,其特征在于,還包括基于所述確定,基于與要對所述目標(biāo)對象執(zhí)行的所指示的編輯相關(guān)聯(lián)的約束來確定對 應(yīng)于所述用戶姿勢的模型編輯有效的動(dòng)作;并且其中向計(jì)算機(jī)用戶提供至少一個(gè)有效模型編輯的指示的動(dòng)作基于所述有效性判定。
7.如權(quán)利要求4所述的方法,其特征在于,所述有效模型編輯在功能上基本上類似于 所述無效模型編輯。
8.如權(quán)利要求4所述的方法,其特征在于,還包括基于所述無效性判定,阻止執(zhí)行所述 模型編輯的動(dòng)作。
9.如權(quán)利要求4所述的方法,其特征在于,還包括響應(yīng)于所述無效性判定并基于所述 用戶姿勢,生成符合與所述目標(biāo)對象相關(guān)聯(lián)的約束的一個(gè)或多個(gè)有效編輯的動(dòng)作。
10.如權(quán)利要求4所述的方法,其特征在于,使用連接符將模型對象連接到其他模型對 象,所述連接符連接到每個(gè)對象中的端點(diǎn)。
11.如權(quán)利要求10所述的方法,其特征在于,每一個(gè)端點(diǎn)都對應(yīng)于所述底層模式的至 少一個(gè)約束。
12.如權(quán)利要求11所述的方法,其特征在于,所述有效編輯包括在所述目標(biāo)對象的端 點(diǎn)和另一對象的端點(diǎn)之間建立連接符。
13.如權(quán)利要求11所述的方法,其特征在于,對應(yīng)于所述底層模式的至少一個(gè)約束的 端點(diǎn)在用戶顯示器中被突出顯示。
14.如權(quán)利要求4所述的方法,其特征在于,多個(gè)有效模型編輯是響應(yīng)于所指示的用戶 姿勢并且根據(jù)所述底層模式的約束來提供的。
15.如權(quán)利要求14所述的方法,其特征在于,還包括顯示一選擇列表以供所述用戶從 中選擇,所述列表中的每一個(gè)選擇包括所述多個(gè)有效模型編輯中的至少一個(gè)。
16.如權(quán)利要求4所述的方法,其特征在于,還包括響應(yīng)于所述無效性判定并響應(yīng)于所 指示的編輯,創(chuàng)建對應(yīng)于所述底層模式的約束的新模型對象的動(dòng)作。
17.如權(quán)利要求16所述的方法,其特征在于,還包括允許用戶選擇要?jiǎng)?chuàng)建的新模型對 象的類型。
18.一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括其上具有計(jì)算機(jī)可執(zhí)行指令的一 種或多種計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在由計(jì)算系統(tǒng)的一個(gè)或多個(gè)處理器執(zhí)行 時(shí)使得所述計(jì)算系統(tǒng)執(zhí)行一種用于基于對應(yīng)于模型對象的所指示的用戶姿勢來建議一個(gè) 或多個(gè)有效模型編輯的方法,所述方法包括接收指示對模型中的對象的選擇的用戶姿勢的動(dòng)作,所述模型基于包括定義所述模型 中的對象之間的關(guān)系的一個(gè)或多個(gè)約束的底層模式;評估所述底層域模型中的對應(yīng)于所選對象的約束的動(dòng)作;基于所選對象和所述約束評估來確定對應(yīng)于所選對象的一個(gè)或多個(gè)有效模型編輯的 動(dòng)作;以及向用戶顯示所述一個(gè)或多個(gè)有效模型編輯的動(dòng)作。
19.如權(quán)利要求18所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所顯示的有效模型編輯以文 本形式描述。
20.如權(quán)利要求18所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所顯示的有效模型編輯包括 指示對所述模型的編輯的效果的疊加圖像。
全文摘要
在一個(gè)實(shí)施例中,接收指示要對模型內(nèi)的目標(biāo)對象執(zhí)行的編輯的用戶姿勢。該模型基于包括定義模型中包括目標(biāo)對象的對象之間的關(guān)系的約束的底層模式。計(jì)算機(jī)系統(tǒng)確定底層模式中的至少一個(gè)約束與所指示的對目標(biāo)對象的編輯相關(guān)聯(lián)并且確定該編輯是有效的。該有效編輯符合與所指示的對該目標(biāo)對象的編輯相關(guān)聯(lián)的約束。在另一實(shí)施例中,計(jì)算機(jī)系統(tǒng)接收指示編輯的用戶姿勢、確定底層模式中的約束與所指示的編輯相關(guān)聯(lián),并且將有效模型編輯的指示提供給計(jì)算機(jī)用戶。
文檔編號G06F17/00GK101809564SQ200880109393
公開日2010年8月18日 申請日期2008年9月26日 優(yōu)先權(quán)日2007年9月28日
發(fā)明者F·沃斯, J·R·弗林, K·E·林, L·莫利科內(nèi), S·M·丹頓, W·A·曼尼斯 申請人:微軟公司