專利名稱:用于處理格式化數(shù)據(jù)的系統(tǒng)的制作方法
用于處理格式化數(shù)據(jù)的系統(tǒng)
背景
一般而言,在軟件開發(fā)期間本地化計(jì)算機(jī)系統(tǒng)的資源涉及將對(duì)應(yīng)于一個(gè)市 場(chǎng)的源數(shù)據(jù)變換成對(duì)應(yīng)于一不同市場(chǎng)的目標(biāo)數(shù)據(jù)。例如,本地化可涉及將一種 語(yǔ)言的源數(shù)據(jù)翻譯成另一語(yǔ)言的目標(biāo)數(shù)據(jù)。本地化也可涉及在同一語(yǔ)言的市場(chǎng) 之間變換數(shù)據(jù),諸如將針對(duì)兒童的對(duì)應(yīng)于日語(yǔ)的源數(shù)據(jù)變換成針對(duì)成人的對(duì)應(yīng) 于日語(yǔ)的目標(biāo)數(shù)據(jù)。資源一般被定義為可由一個(gè)以上的程序或可在程序中一個(gè) 以上的位置使用的數(shù)據(jù)或代碼項(xiàng)目,諸如對(duì)話框。資源的一個(gè)示例是用于向計(jì) 算機(jī)用戶警告出錯(cuò)狀況的出錯(cuò)消息串。另外,出錯(cuò)消息可包含在消息顯示之前 要用其值替換的一個(gè)或多個(gè)占位符。
各種假設(shè)可與資源相關(guān)聯(lián)。例如,諸如"File <PH〉 not found (文件〈PH〉 未找到)"(其中"<PH〉"是要用文件名替換的占位符的示例)的出錯(cuò)消息 的作者可假設(shè)文件名將在稍后提供,且消息的讀者理解術(shù)語(yǔ)"file (文件)" 的含義。為了在各個(gè)市場(chǎng)中使用出錯(cuò)消息,這些消息可能需要被翻譯成若干語(yǔ) 言。在典型的開發(fā)環(huán)境中,可使用詞對(duì)詞的翻譯來本地化資源。然而,得到的 翻譯可能不會(huì)捕捉與資源相關(guān)聯(lián)的上下文數(shù)據(jù)。例如,資源中的詞語(yǔ),諸如詞 語(yǔ)"file (文件)"可能具有一個(gè)以上的含義,因此需要使用該詞語(yǔ)的上下文 來生成正確的翻譯。另外,功能項(xiàng)目,諸如占位符,需要在目標(biāo)數(shù)據(jù)中提供對(duì) 應(yīng)于在源數(shù)據(jù)中提供的功能的功能。例如,示例出錯(cuò)消息中的"<PH>"需要 起到在出錯(cuò)消息的任何變換中以文件名來替換它的作用。
在本地化期間捕捉上下文和功能信息的一種方法涉及將與源資源相關(guān)聯(lián) 的各個(gè)假設(shè)針對(duì)目標(biāo)資源進(jìn)行比較以確保目標(biāo)資源遵循每個(gè)假設(shè)。例如,與源 資源相關(guān)聯(lián)的一個(gè)假設(shè)可以是無(wú)效字符為和'\'。例如,與同一資源相 關(guān)聯(lián)的另一假設(shè)可以是無(wú)效字符為和、'。為了使使用這些假設(shè)的目標(biāo) 資源有效,確認(rèn)引擎首先檢查目標(biāo)串既不包含也不包含V 。接著,確 認(rèn)引擎可檢查目標(biāo)串不包含和V 。然而,檢査每一個(gè)別假設(shè)是低效的。此外,個(gè)別假設(shè)可能與其他個(gè)別假設(shè)不兼容,或冗余。
可使用資源的偽本地化來確保假設(shè)被正確捕捉,使得它們可被保存在目標(biāo) 中。偽本地化的過程一般涉及生成源串的隨機(jī)偽翻譯。然后可用一般稱之為確 認(rèn)的過程來測(cè)試偽翻譯,以確保來自源串的假設(shè)被保存在偽翻譯中。然而,為 測(cè)試目的執(zhí)行源串的偽本地化的典型工具不使用與用于確認(rèn)目標(biāo)翻譯的工具 相同的確認(rèn)技術(shù)。因此,所本地化的軟件未像如果能按照同一方式確認(rèn)偽本地 化資源時(shí)所可能地徹底測(cè)試。
概述
提供本概述以便以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一 些概念。本概述并不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征,也不旨在用于幫 助確定所要求保護(hù)的主題的范圍。
一般而言,本發(fā)明針對(duì)用于處理和確認(rèn)格式化數(shù)據(jù)的系統(tǒng)和方法。更具體 地,根據(jù)本發(fā)明,來自用戶界面或數(shù)據(jù)存儲(chǔ)的源數(shù)據(jù)可被編譯成元數(shù)據(jù)并用于 處理串。例如,元數(shù)據(jù)可被投影到串上,用于確認(rèn)串,用于協(xié)助串的翻譯,用
于更正串,以及用于顯示所標(biāo)記的串等。
根據(jù)一個(gè)方面,提供了用于處理源數(shù)據(jù)的系統(tǒng)。該系統(tǒng)包括可用于獲取源 數(shù)據(jù)并將源數(shù)據(jù)編譯成元數(shù)據(jù)的至少一個(gè)編譯器組件。元數(shù)據(jù)可包括對(duì)應(yīng)于評(píng) 估準(zhǔn)則的一個(gè)或多個(gè)約束以及用于將約束投影到串上的一個(gè)或多個(gè)錨點(diǎn)。該系 統(tǒng)也包括可用于從至少一個(gè)編譯器組件獲取元數(shù)據(jù)并標(biāo)準(zhǔn)化元數(shù)據(jù)的優(yōu)化組 件。另外,可在系統(tǒng)中包括一個(gè)或多個(gè)處理組件,它們可用于根據(jù)標(biāo)準(zhǔn)化的元 數(shù)據(jù)對(duì)串執(zhí)行操作。
根據(jù)另一方面,提供了用于處理源數(shù)據(jù)的系統(tǒng)。該系統(tǒng)包括至少一個(gè)編譯 器組件、優(yōu)化組件和翻譯組件。編譯器組件可獲取源數(shù)據(jù)并將源數(shù)據(jù)編譯成元 數(shù)據(jù)。元數(shù)據(jù)可包括對(duì)應(yīng)于評(píng)估準(zhǔn)則的一個(gè)或多個(gè)約束以及用于將約束投影到 串上的一個(gè)或多個(gè)錨點(diǎn)。優(yōu)化組件從至少一個(gè)編譯器組件獲取元數(shù)據(jù)并對(duì)元數(shù) 據(jù)標(biāo)準(zhǔn)化。元數(shù)據(jù)和串由翻譯組件獲取作為輸入。翻譯組伴使用元數(shù)據(jù)來翻譯 串。
根據(jù)另一方面,提供了一種具有用于處理源數(shù)據(jù)的計(jì)算機(jī)可讀組件的計(jì)算 機(jī)可讀介質(zhì)。各組件包括至少一個(gè)編譯器組件、優(yōu)化組件和一個(gè)或多個(gè)處理組件。該至少一個(gè)編譯器組件獲取源數(shù)據(jù)并生成元數(shù)據(jù)。元數(shù)據(jù)可包括對(duì)應(yīng)于評(píng) 估準(zhǔn)則的一個(gè)或多個(gè)約束以及用于將約束投影到串上的一個(gè)或多個(gè)錨點(diǎn)。優(yōu)化 組件對(duì)元數(shù)據(jù)標(biāo)準(zhǔn)化。
一個(gè)或多個(gè)處理組件可根據(jù)一個(gè)或多個(gè)約束處理串。
當(dāng)結(jié)合附圖參考以下詳細(xì)描述時(shí),可以更容易領(lǐng)會(huì)并更好地理解本發(fā)明的 上述方面和許多附加優(yōu)點(diǎn),附圖中
圖1是根據(jù)本發(fā)明的一方面包括元數(shù)據(jù)編譯器、元數(shù)據(jù)優(yōu)化器和仲裁器以 及多個(gè)處理組件的說明性操作環(huán)境的框圖2是根據(jù)本發(fā)明的一方面示出多個(gè)元數(shù)據(jù)編譯器、元數(shù)據(jù)優(yōu)化器和仲裁 器以及多個(gè)處理組件的圖1的操作環(huán)境的框圖3是根據(jù)本發(fā)明的一方面示出創(chuàng)作用戶界面、多個(gè)元數(shù)據(jù)編譯器、元數(shù) 據(jù)優(yōu)化器和仲裁器、投影組件以及確認(rèn)組件對(duì)元數(shù)據(jù)的處理和確認(rèn)的圖1的操 作環(huán)境的框圖4是根據(jù)本發(fā)明的一方面示出經(jīng)由創(chuàng)作用戶界面、多個(gè)元數(shù)據(jù)編譯器、 元數(shù)據(jù)優(yōu)化器和仲裁器、翻譯用戶界面和多個(gè)處理組件對(duì)串本地化的圖1的操 作環(huán)境的框圖5A-5D是根據(jù)本發(fā)明的一方面描繪根據(jù)相應(yīng)的錨點(diǎn)針對(duì)各個(gè)串施加約 束的框圖6是根據(jù)本發(fā)明的一方面示出由圖3的操作環(huán)境實(shí)現(xiàn)的源數(shù)據(jù)處理例程 的流程圖7是根據(jù)本發(fā)明的一方面示出由圖4的操作環(huán)境實(shí)現(xiàn)的目標(biāo)數(shù)據(jù)處理例 程的流程圖8是根據(jù)本發(fā)明的一方面示出由元數(shù)據(jù)優(yōu)化器和仲裁器實(shí)現(xiàn)的標(biāo)準(zhǔn)化 子例程的流程圖9是根據(jù)本發(fā)明的一方面描繪兩個(gè)資源的資源中立化、翻譯和資源注入 的框圖10是根據(jù)本發(fā)明的一方面示出用于生成測(cè)試數(shù)據(jù)的模糊例程的流程
圖11是根據(jù)本發(fā)明的一方面示出由元數(shù)據(jù)編譯器實(shí)現(xiàn)的正則表達(dá)式轉(zhuǎn)換例程的流程圖12是根據(jù)本發(fā)明的一方面包括評(píng)論顯示部分、輸入串顯示部分、建議 值顯示部分和翻譯顯示部分的用戶界面的框圖;以及
圖13-15是根據(jù)本發(fā)明的一方面形成的包括源串顯示部分、目標(biāo)串顯示部 分、源元數(shù)據(jù)顯示部分和目標(biāo)元數(shù)據(jù)顯示部分的用戶界面的框圖。
詳細(xì)描述
一般而言,本發(fā)明針對(duì)用于處理和確認(rèn)格式化數(shù)據(jù)的系統(tǒng)和方法。更具體 地,根據(jù)本發(fā)明,源數(shù)據(jù)被編譯成包括一個(gè)或多個(gè)約束和一個(gè)或多個(gè)對(duì)應(yīng)的錨 點(diǎn)的元數(shù)據(jù)。這一個(gè)或多個(gè)約束對(duì)應(yīng)于可用于確認(rèn)串的本地化版本的評(píng)估準(zhǔn) 則。各種處理組件可消費(fèi)編譯后的元數(shù)據(jù)。例如,元數(shù)據(jù)可被投影到串上,用 于確認(rèn)串,用于協(xié)助串的翻譯,用于更正串,以及用于顯示所標(biāo)記的串等。雖 然將參考說明性用戶界面和操作系統(tǒng)來描述本發(fā)明,但相關(guān)領(lǐng)域的技術(shù)人員將 會(huì)認(rèn)識(shí)到所公開的各實(shí)施例本質(zhì)上是說明性的,且不應(yīng)被解釋為是限制性的。
現(xiàn)在參考圖1,說明性操作環(huán)境100包括元數(shù)據(jù)編譯器104和元數(shù)據(jù)優(yōu)化 器和仲裁器106,后者可用于生成供各個(gè)處理和翻譯組件消費(fèi)的標(biāo)準(zhǔn)化的元數(shù) 據(jù)。元數(shù)據(jù)編譯器104可用于將源數(shù)據(jù)102編譯成元數(shù)據(jù)。在說明性實(shí)施例中, 源數(shù)據(jù)102可包括源串。例如,源數(shù)據(jù)102可包括以下串"This is a string.
(這是串。)"此外,源數(shù)據(jù)102可包括規(guī)則。例如,源數(shù)據(jù)102可包括以下 規(guī)則"{MaxLen (最大長(zhǎng)度)=25}"。將在以下更詳細(xì)描述規(guī)則。源數(shù)據(jù)102 還可包括資源信息。資源信息可用于指定資源的屬性,諸如相應(yīng)的平臺(tái)、資源 的相應(yīng)用途和資源的相應(yīng)語(yǔ)言。例如,資源信息可用于指定對(duì)應(yīng)于源或目標(biāo)串 的具體平臺(tái)。另外,元數(shù)據(jù)編譯器104可通過分析源數(shù)據(jù)102來推斷限制。例 如,編譯器組件104可通過解析源串來推斷占位符?;蛘撸创械恼嘉环?基于相應(yīng)的資源信息來推斷。
在說明性實(shí)施例中,由元數(shù)據(jù)編譯器104生成的編譯后的元數(shù)據(jù)可包括對(duì) 應(yīng)于評(píng)估準(zhǔn)則的一個(gè)或多個(gè)約束以及用于將這一個(gè)或多個(gè)約束映射到串的一 個(gè)或多個(gè)錨點(diǎn)。元數(shù)據(jù)優(yōu)化器和仲裁器106獲取編譯后的元數(shù)據(jù)并使用編譯后 的元數(shù)據(jù)生成標(biāo)準(zhǔn)化的元數(shù)據(jù)。將在以下更詳細(xì)討論標(biāo)準(zhǔn)化過程。在說明性實(shí) 施例中,編譯后的元數(shù)據(jù)和標(biāo)準(zhǔn)化的元數(shù)據(jù)均可對(duì)應(yīng)于抽象元數(shù)據(jù)。抽象元數(shù)據(jù)對(duì)應(yīng)于還未針對(duì)串放置的元數(shù)據(jù)。 一旦元數(shù)據(jù)被編譯并被標(biāo)準(zhǔn)化之后,元數(shù) 據(jù)可由操作環(huán)境100中的一個(gè)或多個(gè)處理組件使用。處理組件一般消費(fèi)元數(shù)據(jù)
并可執(zhí)行其他任務(wù)。第一組處理組件108、 110、 112和114可用于操縱串和/ 或相應(yīng)的元數(shù)據(jù),而第二組處理組件116、 118、 120和122可用于翻譯串。
在第一組處理組件內(nèi),投影組件110可根據(jù)相應(yīng)的錨點(diǎn)利用元數(shù)據(jù)將一個(gè) 或多個(gè)約束投影到串上。另外,確認(rèn)組件108可利用元數(shù)據(jù)來針對(duì)元數(shù)據(jù)中所 包括的一個(gè)或多個(gè)約束確認(rèn)串。確認(rèn)串涉及評(píng)估與對(duì)應(yīng)于串的約束相關(guān)聯(lián)的準(zhǔn) 則。如果對(duì)應(yīng)于約束的準(zhǔn)則得到滿足,則約束評(píng)估為"真"。相反地,如果對(duì) 應(yīng)于約束的準(zhǔn)則未得到滿足,則約束評(píng)估為"假"。在替換實(shí)施例中,約束評(píng) 估為嚴(yán)重性級(jí)別。例如,約束可評(píng)估為警告或錯(cuò)誤。更正組件112可利用元數(shù) 據(jù)來修改串,使得包括在元數(shù)據(jù)中的相應(yīng)的約束得到滿足。另外,顯示組件114 可顯示根據(jù)相應(yīng)的元數(shù)據(jù)標(biāo)記的串。
說明性操作環(huán)境100也可包括可用于基于編譯后的元數(shù)據(jù)翻譯串的多個(gè) 處理組件。在說明性實(shí)施例中,翻譯組件可按元數(shù)據(jù)的指示翻譯串的全部或部 分。或者,翻譯組件可生成違背元數(shù)據(jù)中所包括的一個(gè)或多個(gè)約束的建議的翻 譯。在這種情況下,可標(biāo)記所建議的翻譯中違背約束的部分。以此方式標(biāo)記所 建議的翻譯可向用戶信令所建議的翻譯中需要修改以便滿足約束的部分。標(biāo)記 將在以下更詳細(xì)討論。例如,元數(shù)據(jù)可包括鎖定串的一個(gè)或多個(gè)部分并防止這 些部分被翻譯的一個(gè)或多個(gè)約束。在另一示例中,元數(shù)據(jù)可包括防止串中相應(yīng) 的占位符被翻譯的一組約束。翻譯組件也可從數(shù)據(jù)存儲(chǔ)中檢索翻譯,并使得翻 譯根據(jù)相應(yīng)的元數(shù)據(jù)來標(biāo)記。繼續(xù)參考圖l,操作環(huán)境IOO可包括可用于根據(jù) 相應(yīng)的元數(shù)據(jù)翻譯串的自動(dòng)翻譯組件116。如本領(lǐng)域的技術(shù)人員所理解地,自 動(dòng)翻譯涉及將串與包括相應(yīng)翻譯的串的數(shù)據(jù)庫(kù)進(jìn)行匹配。此外,操作環(huán)境IOO 可包括可根據(jù)相應(yīng)的元數(shù)據(jù)翻譯串的機(jī)器翻譯組件118。如本領(lǐng)域的技術(shù)人員 可以理解地,機(jī)器翻譯涉及使用計(jì)算機(jī)硬件或軟件來將文本從一種語(yǔ)言翻譯成 另一種。此外,操作環(huán)境IOO可包括可根據(jù)相應(yīng)的元數(shù)據(jù)翻譯串的人工翻譯組 件120。如本領(lǐng)域的技術(shù)人員可以理解地,人工翻譯一般涉及使用人來從一種 語(yǔ)言翻譯成另一種。此外,操作環(huán)境IOO可包括可用于提供要用于測(cè)試目的的 串的偽翻譯的偽本地化組件122。將在以下更詳細(xì)描述偽本地化。盡管說明性操作環(huán)境100被示為具有所有以上處理組件,但相關(guān)領(lǐng)域的技術(shù)人員可以理解,
操作環(huán)境100可變化處理組件的數(shù)目。在說明性實(shí)施例中,可按照工作流不可
知的方式消費(fèi)元數(shù)據(jù)。
在說明性實(shí)施例中,編譯后的元數(shù)據(jù)可用于保存通信的意圖、上下文和格 式,同時(shí)允許事務(wù)中的實(shí)際數(shù)據(jù)根據(jù)相應(yīng)的市場(chǎng)或場(chǎng)所來適當(dāng)轉(zhuǎn)換。例如,元
數(shù)據(jù)可用于在串被翻譯后保存與源串相關(guān)聯(lián)的假設(shè)。在一個(gè)方面中,編譯器104 所生成的約束是聲明性的,且因此描述了相應(yīng)的限制或假設(shè)是什么,但沒有描 述如何履行。因?yàn)榧s束是聲明性的,對(duì)約束的消費(fèi)則更靈活。在說明性實(shí)施例 中,約束可通過錨定來組合以構(gòu)建更"復(fù)雜"的約束。
在另一方面中,對(duì)約束歸類。在說明性實(shí)施例中,約束可根據(jù)嚴(yán)重性級(jí)別 來歸類。例如,未得到滿足的約束可發(fā)出錯(cuò)誤或警告。在另一實(shí)施例中,約束 可根據(jù)約束是對(duì)碼點(diǎn)還是字符操作來歸類。例如,功能約束可對(duì)碼點(diǎn)操作,而 術(shù)語(yǔ)約束可對(duì)字符操作。具體地,表示術(shù)語(yǔ)"file (文件)"的串可與一熱鍵 相關(guān)聯(lián),使得在功能級(jí)上串顯現(xiàn)為"fil&e"。術(shù)語(yǔ)約束可對(duì)串"file"中的字 符操作,且因此不會(huì)看到"&",而功能約束可對(duì)碼點(diǎn)操作,且能夠檢測(cè)"&"。 此外,約束可根據(jù)它是正的還是負(fù)的來歸類。例如,正約束可指定串的相應(yīng)部 分應(yīng)如何顯現(xiàn),而負(fù)約束可指定串的相應(yīng)部分不應(yīng)如何顯現(xiàn)。此外,約束可根 據(jù)約束檢査計(jì)數(shù)、元素還是序列來歸類。例如,計(jì)數(shù)約束可限制串或子串的長(zhǎng) 度。檢査元素的約束可基于相應(yīng)元素的值來確認(rèn)。元素可對(duì)應(yīng)于字符或碼點(diǎn)。 另外,約束可以是大小寫敏感或大小寫不敏感的。同樣地,約束可以是文化敏 感或文化不敏感的。約束也可以是正則表達(dá)式。檢查序列的約束可基于諸如子 串的相應(yīng)序列的值來確認(rèn)。在又一方面中,約束是實(shí)例不可知的。例如,對(duì)于 對(duì)應(yīng)于英語(yǔ)的串的約束可按照與對(duì)于對(duì)應(yīng)于西班牙語(yǔ)的串的約束相同的方式 來確認(rèn)。或者,約束可以是語(yǔ)言專用的。在又一方面中,約束可被投影到串實(shí) 例上。在約束之間也可能存在依賴性,例如使得一個(gè)約束的評(píng)估的結(jié)果可與另 一約束的評(píng)估結(jié)果對(duì)應(yīng)。
現(xiàn)在參考圖2,圖1的說明性操作環(huán)境100可包括可用于將源數(shù)據(jù)編譯成 元數(shù)據(jù)的多個(gè)元數(shù)據(jù)編譯器104。在說明性實(shí)施例中,多個(gè)元數(shù)據(jù)編譯器104 并行操作,使得來自若干源的源數(shù)據(jù)102可被編譯成元數(shù)據(jù)。元數(shù)據(jù)編譯器104也可順序操作,使得每一編譯器104執(zhí)行不同的編譯功能。此外,在說明性實(shí)
施例中,若干不同的元數(shù)據(jù)編譯器104版本可在說明性操作環(huán)境100中操作。 例如,負(fù)責(zé)輸入源數(shù)據(jù)的用戶可能漸漸習(xí)慣于對(duì)應(yīng)于版本l.O元數(shù)據(jù)編譯器的 界面。用戶可繼續(xù)使用版本1.0的編譯器,即使版本2.0的編譯器可供他人使 用。如圖2中所示,元數(shù)據(jù)優(yōu)化器和仲裁器106可從元數(shù)據(jù)編譯器104中的每 一個(gè)獲取編譯后的元數(shù)據(jù),并對(duì)元數(shù)據(jù)標(biāo)準(zhǔn)化。標(biāo)準(zhǔn)化可涉及合并冗余的約束 以及解決約束之間的不兼容性,使得處理組件108、 110、 112、 114、 116、 118、 120和122接收一致的一組的元數(shù)據(jù)。將在以下更詳細(xì)討論標(biāo)準(zhǔn)化過程。
現(xiàn)在參考圖3,將描述操作環(huán)境100各個(gè)組件用于處理和確認(rèn)元數(shù)據(jù)的交 互。在說明性實(shí)施例中,創(chuàng)作用戶界面302可獲取供一個(gè)或多個(gè)元數(shù)據(jù)編譯器 104編譯的用戶輸入。用戶輸入可對(duì)應(yīng)于源數(shù)據(jù)102,且可包括一個(gè)或多個(gè)處 理屬性。如上所述, 一個(gè)或多個(gè)元數(shù)據(jù)編譯器104獲取用戶輸入作為源數(shù)據(jù), 并將用戶輸入編譯為元數(shù)據(jù)。用戶輸入可針對(duì)元數(shù)據(jù)編譯器104中的任何一個(gè) 或多個(gè)。例如,元數(shù)據(jù)編譯器104可接受特定類型的源數(shù)據(jù)102,諸如僅包括 源串的源數(shù)據(jù)或包括源串和規(guī)則的源數(shù)據(jù)。此外,通過檢查用戶輸入,元數(shù)據(jù) 編譯器104可推斷附加的約束。
仍參考圖3,在說明性實(shí)施例中,元數(shù)據(jù)優(yōu)化器和仲裁器106獲取抽象元 數(shù)據(jù)并生成標(biāo)準(zhǔn)化的抽象元數(shù)據(jù)。如將在以下更詳細(xì)描述地,元數(shù)據(jù)優(yōu)化器和 仲裁器106過濾來自 一個(gè)或多個(gè)編譯器104的元數(shù)據(jù)以移除冗余約束和/或不兼 容約束。投影組件110獲取抽象元數(shù)據(jù),并將元數(shù)據(jù)投影到目標(biāo)串上。如上所 述,在說明性實(shí)施例中,元數(shù)據(jù)包括對(duì)應(yīng)于評(píng)估準(zhǔn)則的一個(gè)或多個(gè)約束,以及 可映射到目標(biāo)串的一個(gè)或多個(gè)錨點(diǎn)。投影元數(shù)據(jù)涉及根據(jù)相應(yīng)的錨點(diǎn)將一個(gè)或 多個(gè)約束施加到目標(biāo)串上。為驗(yàn)證的目的,目標(biāo)串可以是源串。
確認(rèn)組件108獲取投影后的元數(shù)據(jù),并針對(duì)一個(gè)或多個(gè)約束來確認(rèn)串。在 替換實(shí)施例中,確認(rèn)組件108可針對(duì)抽象元數(shù)據(jù)來確認(rèn)串。針對(duì)元數(shù)據(jù)來確認(rèn) 串涉及確定串是否滿足對(duì)應(yīng)于包括在元數(shù)據(jù)中的約束的評(píng)估準(zhǔn)則。在說明性實(shí) 施例中,如果任何相應(yīng)的評(píng)估準(zhǔn)則未得到滿足,則串未被確認(rèn)。在替換實(shí)施例 中,如果任何相應(yīng)的評(píng)估準(zhǔn)則未得到滿足且導(dǎo)致錯(cuò)誤的生成,則串未被確認(rèn)。 例如,某些失敗的評(píng)估準(zhǔn)則可能導(dǎo)致警告的生成,這可阻止確認(rèn)串。創(chuàng)作用戶
11界面302可從確認(rèn)組件108獲取確認(rèn)過程的結(jié)果,并向用戶顯示經(jīng)確認(rèn)的串。 在說明性實(shí)施例中,根據(jù)相應(yīng)的約束來標(biāo)記串。例如,可標(biāo)記串來向用戶顯示 串的哪些部分滿足約束而哪些部分不滿足約束。此外,可標(biāo)記串來向用戶警告 錯(cuò)誤的位置。例如,可標(biāo)記源串中的句法錯(cuò)誤。在說明性實(shí)施例中,串可被自 動(dòng)更正,使得它滿足相應(yīng)的約束。在替換實(shí)施例中,可向用戶顯示所建議的修 改以供選擇。將在以下更詳細(xì)討論串的標(biāo)記和顯示過程。
現(xiàn)在參考圖4,將描述操作環(huán)境100各個(gè)組件用于本地化串的交互。在說 明性實(shí)施例中,創(chuàng)作用戶界面302可獲取供一個(gè)或多個(gè)元數(shù)據(jù)編譯器104編譯 的用戶輸入。如上所述,元數(shù)據(jù)優(yōu)化器和仲裁器106從一個(gè)或多個(gè)元數(shù)據(jù)編譯 器獲取抽象元數(shù)據(jù),并生成標(biāo)準(zhǔn)化的抽象元數(shù)據(jù)。投影組件110獲取抽象元數(shù) 據(jù)和包括來自翻譯用戶界面402的目標(biāo)串的用戶輸入,并將元數(shù)據(jù)投影到目標(biāo) 串上。在說明性實(shí)施例中,目標(biāo)串是用戶期望確認(rèn)和翻譯的串。確認(rèn)組件108 針對(duì)投影后的元數(shù)據(jù)確認(rèn)目標(biāo)串。在替換實(shí)施例中,確認(rèn)組件108可獲取抽象 元數(shù)據(jù)和目標(biāo)串,并使用抽象元數(shù)據(jù)來確認(rèn)目標(biāo)串。此外,確認(rèn)組件108可檢 查源串和相應(yīng)的目標(biāo)串,并檢查在兩個(gè)串上存在同一組保證。
翻譯組件404獲取確認(rèn)過程的結(jié)果,并翻譯經(jīng)確認(rèn)的目標(biāo)串。更正組件 112可獲取翻譯后的結(jié)果,并可修改翻譯,使其滿足相關(guān)聯(lián)的元數(shù)據(jù)。此外, 翻譯用戶界面402可獲取更正后的結(jié)果并向用戶顯示更正后的翻譯。翻譯用戶 界面402可使用相關(guān)聯(lián)的元數(shù)據(jù)來顯示串以標(biāo)記串的部分。將在以下更詳細(xì)討 論標(biāo)記串供向用戶顯示。
在說明性實(shí)施例中,翻譯用戶界面402可從確認(rèn)組件108獲取確認(rèn)結(jié)果。 此外,翻譯用戶界面402可顯示標(biāo)記后的串,使得用戶可修改串,以使串滿足 相關(guān)聯(lián)的約束。此外,可向用戶呈現(xiàn)所建議的可選修改,使得用戶可選擇要應(yīng) 用哪些修改。例如,所建議的可選擇修改可作為自動(dòng)補(bǔ)完來呈現(xiàn)。在說明性實(shí) 施例中,翻譯用戶界面402可從翻譯組件404獲取翻譯后的結(jié)果。此外,翻譯 用戶界面402可采用對(duì)應(yīng)于相關(guān)聯(lián)的元數(shù)據(jù)的標(biāo)記來向用戶顯示翻譯后的串。 用戶可修改翻譯后的串,以使其滿足相關(guān)聯(lián)的約束。在說明性實(shí)施例中,翻譯 組件404可對(duì)應(yīng)于自動(dòng)翻譯組件116、機(jī)器翻譯組件118或人工翻譯組件120。 此外,翻譯組件404可利用偽本地化技術(shù)來提供偽本地化的串。將在以下更詳細(xì)討論偽本地化技術(shù)。在說明性實(shí)施例中,系統(tǒng)的組件可以是分布式的。例如,
用戶界面302和402可存在于客戶機(jī)上,而一個(gè)或多個(gè)編譯器組件104可存在 于服務(wù)器上?;蛘?,用戶界面302和402和一個(gè)或多個(gè)編譯器組件104可存在
于同一機(jī)器上。
現(xiàn)在參考圖5A,在說明性實(shí)施例500中,元數(shù)據(jù)包括對(duì)應(yīng)于評(píng)估準(zhǔn)則的 一個(gè)或多個(gè)約束502、 504、 506、 508、 510、 512和514。約束可包括可用于將 一個(gè)或多個(gè)約束502、 504、 506、 508、 510、 512和514投影到串524上的一 個(gè)或多個(gè)錨點(diǎn)520、 518、 516和522。在說明性實(shí)施例中,串524可對(duì)應(yīng)于諸 如"CALCULATOR.EXE (計(jì)算器)"的文件名。約束1.1和1.2 (502和504) 可用于評(píng)估串524中錨點(diǎn)520與522之間的部分。約束2.1、 2.2禾n 2.3 (506、 508和510)可用于評(píng)估串524中位于錨點(diǎn)520與518之間的部分。約束3.1 和3.2 (512和514)可用于評(píng)估串524中位于錨點(diǎn)516與522之間的部分。
在說明性實(shí)施例中,多個(gè)約束可置于錨點(diǎn)之間。另外,約束是可組合的, 因此允許初始一小組約束表示大量概念或假設(shè)。例如,存在可用于鎖定串的一 部分的若干規(guī)則,同時(shí)可使用單個(gè)約束來實(shí)現(xiàn)鎖。因此,每一規(guī)則當(dāng)被編譯時(shí) 可使用該單個(gè)鎖約束來實(shí)現(xiàn)鎖。此外,說明性元數(shù)據(jù)可用于處理在諸如ASCII 字符集或UniC0de字符集的任何字符集中編碼的串。
可在串524的元素之前或之后放置這一個(gè)或多個(gè)錨點(diǎn)520、 518、 516和 522。例如,錨點(diǎn)520被放置在元素"C" 501之前。類似地,錨點(diǎn)518被放置 在元素"R" 503之后且元素"."505之前,而錨點(diǎn)516被放置在元素"."505 之后且元素"E" 507之前。同樣地,錨點(diǎn)522被放置在元素"E" 509之后。 在說明性實(shí)施例中,串中的元素對(duì)應(yīng)于字符,諸如Unicode字符?;蛘撸?的元素可對(duì)應(yīng)于碼點(diǎn),諸如Unicode碼點(diǎn)。
在說明性實(shí)施例中,任何錨點(diǎn)可被松錨定或硬錨定到串中任何元素之前或 之后的點(diǎn)。硬錨定到串上的點(diǎn)的錨點(diǎn)被固定于該點(diǎn)。相反地,松錨定的錨點(diǎn)可 在串上點(diǎn)的范圍內(nèi)移動(dòng)。例如,約束可被錨定到開頭錨點(diǎn)和結(jié)尾錨點(diǎn)。如果在 松開頭錨點(diǎn)和松結(jié)尾錨點(diǎn)之間找到的任何序列可滿足相應(yīng)的評(píng)估準(zhǔn)則,則錨定 到這兩個(gè)錨點(diǎn)的約束評(píng)估為"真"。相反地,如果在硬開頭錨點(diǎn)開始并在硬結(jié) 尾錨點(diǎn)結(jié)束的序列滿足相應(yīng)的評(píng)估準(zhǔn)則,則錨定到該開頭錨點(diǎn)和該結(jié)尾錨點(diǎn)的約束評(píng)估為"真"。此外,如果串524內(nèi)的任何序列滿足約束,則未錨定的約
束評(píng)估為"真"。此外,約束可按照一種方式錨定到一個(gè)錨點(diǎn),并按另一方式 錨定到另一錨點(diǎn)。對(duì)于本申請(qǐng)中的術(shù)語(yǔ)而言,將約束描述為硬錨定到錨點(diǎn)等效 于將約束描述為錨定到硬錨點(diǎn)。類似地,將約束描述為松錨定到錨點(diǎn)等效于將 約束描述為錨定到松錨點(diǎn)。各種類型的錨定的示例將在以下提供。
在說明性實(shí)施例中, 一個(gè)或多個(gè)約束502、 504、 506、 508、 510、 512和 514在運(yùn)行時(shí)被投影到串524上。此外,可在運(yùn)行時(shí)評(píng)估這一個(gè)或多個(gè)約束502、 504、 506、 508、 510、 512和514。編譯來自源數(shù)據(jù)的一個(gè)或多個(gè)約束502、 504、 506、 508、 510、 512和514以及一個(gè)或多個(gè)錨點(diǎn)520、 518、 516和522與投影 和確認(rèn)約束相比是更計(jì)算密集的。從而,允許在運(yùn)行時(shí)針對(duì)串投影和確認(rèn)約束 而不要求重新編譯提供對(duì)串的更高效處理。在說明性實(shí)施例中,這一個(gè)或多個(gè) 約束502、 504、 506、 508、 510、 512和514不能在串實(shí)際無(wú)效的情況下按照 確認(rèn)串的方式被投影到該串上。
現(xiàn)在參考圖5B,在說明性實(shí)施例550中,可使用約束552、 556、 558、 560和562來確認(rèn)串525。例如,串525可以是計(jì)算機(jī)系統(tǒng)中必須遵循指定的 約束552、 556、 558、 560和562才能有效的文件名的代表。在確認(rèn)串525之 前,可使用錨點(diǎn)516、 518、 520和522將約束552、 556、 558、 560和562施 加到串525上。例如,投影組件110可根據(jù)錨點(diǎn)516、 518、 520和522將約束 552、 556、 558、 560和562施加到串525上。在說明性實(shí)施例中,約束552、 556、 558、 560和562可使用以下過程被投影到串上
(1) 將串的開頭標(biāo)識(shí)為錨點(diǎn)520。
(2) 將串的結(jié)尾標(biāo)識(shí)為錨點(diǎn)522。
(3) 添加要求串包含元素"."(點(diǎn))的序列的約束552。
(4) 將點(diǎn)的開頭標(biāo)識(shí)為錨點(diǎn)518。
(5) 將點(diǎn)的結(jié)尾標(biāo)識(shí)為錨點(diǎn)516。
(6) 添加錨定到錨點(diǎn)520和518、要求子串具有至多8個(gè)元素的約束556。
(7) 添加錨定到錨點(diǎn)520和518、要求子串具有至少1個(gè)元素的約束556。
(8) 添加錨定到錨點(diǎn)520和518、包含文件名的無(wú)效元素(星號(hào)、點(diǎn)、 空格等)的列表的約束560。
14(9)添加錨定到錨點(diǎn)516和518、要求子串為元素"exe"(大小寫不敏 感)的序列的約束562。
以此方式,可使用簡(jiǎn)單的一小組約束來構(gòu)建"復(fù)雜"約束。在說明性實(shí)施 例中,用戶可通過將對(duì)應(yīng)于每一約束的規(guī)則輸入到創(chuàng)作用戶界面302中并通過 圖3所示的說明性操作環(huán)境100來運(yùn)行約束來構(gòu)建上述"復(fù)雜"文件名約束。 在另一實(shí)施例中,用戶可簡(jiǎn)單地將串輸入到創(chuàng)作用戶界面302中, 一個(gè)或多個(gè) 元數(shù)據(jù)編譯器104將該串解釋為文件名并使用它來生成圖5B中所述的一組約 束。在又一實(shí)施例中,用戶可輸入表示文件名和一組屬性的源串,這組屬性指 示一個(gè)或多個(gè)元數(shù)據(jù)編譯器104生成對(duì)應(yīng)于文件名的一組約束。在又一實(shí)施例 中,用戶可輸入表示文件名和規(guī)則的源串,諸如{FILENAME (文件名)},它 將編譯為約束552、 556、 558、 560和562。
圖5B中所示的示例性約束552、 556、 558、 560和562可用于確認(rèn)串525。 例如,確認(rèn)組件108可利用約束552、 556、 558、 560和562來確認(rèn)串525。如 上所述,所投影的約束552、 556、 558、 560和562可被硬錨定、松錨定或不 錨定至串525。在說明性實(shí)施例中,用于施加約束的錨定的類型由相應(yīng)的評(píng)估 準(zhǔn)則確定。約束552是可不錨定至串525的約束的示例。不錨定至串525的約 束必須與錨點(diǎn)520在其左側(cè)距結(jié)尾離開至少0字符,并且必須與錨點(diǎn)522在其 右側(cè)離開頭至少O字符。因此,如果串525的某一部分滿足約束,則未錨定的 約束評(píng)估為"真"。在說明性實(shí)施例中,因?yàn)榇性阱^點(diǎn)518和516之間的部 分滿足約束552,約束552評(píng)估為"真"。
未錨定的約束等效于松錨定至串525的開頭且松錨定至串525的結(jié)尾的約 束。松錨定的約束允許在串中滿足約束的部分與其錨點(diǎn)之間存在或插入元素。 例如,要求在錨點(diǎn)520和518之間包含序列"CUL"的約束可被松錨定至錨點(diǎn) 520并松錨定至錨點(diǎn)518。對(duì)該示例性約束的每一端的松錨定允許串525在即 使在約束的開頭和錨點(diǎn)520之間存在序列"CAL"且在約束的結(jié)尾和錨點(diǎn)518 之間存在序列"AT"的情況下也滿足該約束。
在說明性實(shí)施例中,約束556是硬錨定至錨點(diǎn)520且硬錨定至錨點(diǎn)518 的約束的示例。將約束硬錐定至錨點(diǎn)禁止元素出現(xiàn)在錨點(diǎn)與約束之間。當(dāng)在錨 點(diǎn)520與518之間包含8個(gè)或以下元素時(shí),約束556得到滿足。因?yàn)樵阱^點(diǎn)520與518之間包含的序列正好包含8個(gè)字符,該約束得到滿足。如果該約束未被 硬錨定至錨點(diǎn)520和518,則在錨點(diǎn)和約束之間可能存在其他元素,因此在其 中在錨點(diǎn)520與518之間的序列包含8個(gè)以上的元素的情況中,可滿足該約束。 約束558是可被硬錨定至錨點(diǎn)520且可被硬錨定至錨點(diǎn)518的約束的示例。當(dāng) 在錨點(diǎn)520與518之間包含一個(gè)或多個(gè)元素時(shí),約束558得到滿足。因?yàn)樵阱^ 點(diǎn)520與518之間包含的序列包含8個(gè)字符,且1<8,約束558得到滿足。在 替換實(shí)施例中,約束558可被硬錨定至錨點(diǎn)520且松錨定至錨點(diǎn)518。
繼續(xù)參考圖5B,約束560被硬錨定至錨點(diǎn)520且硬錨定至錨點(diǎn)518。如 果錨點(diǎn)520與518之間的序列中的每一元素不等于星號(hào)、句點(diǎn)或空格,則約束 560評(píng)估為"真"。因?yàn)樵阱^點(diǎn)520與518之間的序列中沒有出現(xiàn)受限的項(xiàng)目, 所以約束評(píng)估為"真"。約束562被硬錨定至錨點(diǎn)516且硬錨定至錨點(diǎn)522。 此外,如果錨點(diǎn)516與522之間的序列等于序列"EXE"(大小寫不敏感), 則約束562評(píng)估為"真"。因?yàn)殄^點(diǎn)516與522之間的序列等于"EXE",所 以約束562評(píng)估為"真"。盡管在圖5中未示出,但要求串525以序列".EXE" 結(jié)束的約束可被硬錨定至錨點(diǎn)522,且或者在開頭不錨定或者松錨定至錨點(diǎn) 520。相反地,要求串525以序列"CAL"開始的約束可被硬錨定至錨點(diǎn)520, 且或者在結(jié)尾不錨定或者松錨定至錨點(diǎn)522。
在說明性實(shí)施例中,在串上同一點(diǎn)處可存在多種類型的錨點(diǎn)。例如,錨點(diǎn) 522可對(duì)應(yīng)于松錨點(diǎn)和硬錨點(diǎn)。在說明性實(shí)施例中,約束552可被松錨定至錨 點(diǎn)522,而約束562可被硬錨定至錨點(diǎn)522。
在說明性實(shí)施例中,圖5B描繪了可如何修改來自圖5A的串524,使其 滿足示例性約束552、 556、 558、 560和562。例如,串524可由更正組件112 修改,使得約束552、 556、 558、 560和562得到滿足??稍趧?chuàng)作用戶界面302 或翻譯用戶界面402根據(jù)串上的標(biāo)記來修改串524 。此外,串525 ("CALCULAT.EXE")可以是用戶將串524 ( "CALCULATOR.EXE")輸 入到翻譯用戶界面402并針對(duì)約束552、 556、 558、 560和562來確認(rèn)和更正 串524的結(jié)果。約束可被配置成它們是大小寫敏感或大小寫不敏感的。例如, 約束562可被配置成大小寫敏感的,且僅匹配序列"EXE"?;蛘撸s束562 可被配置成大小寫不敏感的,且將與組合拼為"exe"的大寫和小寫字符的任何組合匹配。
現(xiàn)在參考圖5C,可使用約束552、 556、 558、 560和562來試圖確認(rèn)串 524。在說明性實(shí)施例中,用戶可將串524輸入到翻譯用戶界面402中,并使 用約束552、 556、 558、 560和562來試圖確定串524是否是有效文件名。盡 管約束552、 558、 560和562評(píng)估為"真",但約束556評(píng)估為"假",因此 串524不是有效的。在說明性實(shí)施例中,不可能按照使無(wú)效的串有效的方式針 對(duì)串施加一組約束。因此,用戶可指導(dǎo)針對(duì)要確認(rèn)的串施加約束。這允許編譯 在運(yùn)行時(shí)之前進(jìn)行,而施加和確認(rèn)可在運(yùn)行時(shí)執(zhí)行。在典型的環(huán)境中,編譯比 施加和確認(rèn)在計(jì)算上要昂貴得多,因此可通過在運(yùn)行時(shí)之前執(zhí)行編譯來實(shí)現(xiàn)顯 著的效率。
現(xiàn)在參考圖5D,若干約束596、 5卯、586、 574、 576、 578和584可被投
影到示例性串572上,并協(xié)助處理串572。在說明性實(shí)施例中,約束596將串 572中第一冒號(hào)594之前的部分限于最大255個(gè)元素。以類似方式,約束5卯 將串572中第三冒號(hào)592之后且第四冒號(hào)582之前的部分限于最大10個(gè)元素。 類似地,約束586將串572中第四冒號(hào)582之后的部分限于最大35個(gè)元素。 因?yàn)槊恳蛔哟儆谙嚓P(guān)聯(lián)約束所指定的約束的最大數(shù)目,每一最大長(zhǎng)度約 束596、 590和586得到滿足。約束574、 578和584禁止各個(gè)相關(guān)聯(lián)子串中的 任何元素包含""(冒號(hào))。因?yàn)闆]有子串包含冒號(hào),約束574、 578和584 得到滿足。約束576和588是防止相應(yīng)的序列被本地化的鎖約束。因此,鎖576 防止子串":12:03:"被本地化,而鎖588防止第四冒號(hào)582被本地化。
盡管圖5A-5D描繪了英語(yǔ)的串,它是從左往右書寫的,但可以理解,本 發(fā)明可處理并翻譯使用任何語(yǔ)言的資源。例如,本發(fā)明知道從右往左的語(yǔ)言, 諸如阿拉伯語(yǔ)和希伯來語(yǔ),并對(duì)其適當(dāng)工作。在說明性實(shí)施例中,與顯示視圖 相對(duì)地,本發(fā)明對(duì)存儲(chǔ)器中串的內(nèi)部描述進(jìn)行操作,以便適當(dāng)處理使用任何語(yǔ) 言的串。
在說明性實(shí)施例中,可使用規(guī)則來生成元數(shù)據(jù)。例如,除源串以外,用戶 可使用創(chuàng)作用戶界面302來輸入規(guī)則。在說明性實(shí)施例中,可將規(guī)則編譯成包 括對(duì)應(yīng)于評(píng)估準(zhǔn)則的一個(gè)或多個(gè)約束和一個(gè)或多個(gè)相應(yīng)的錨點(diǎn)的元數(shù)據(jù)。此 外,可使用元數(shù)據(jù)來確認(rèn)串。可使用若干不同類型的規(guī)則來生成約束。例如,規(guī)則集(或指令集)可包括對(duì)應(yīng)于固定占位符、編號(hào)占位符、轉(zhuǎn)義字符、轉(zhuǎn)義 占位符字符、無(wú)效字符、有效字符、與可用于開始或結(jié)束串的序列有關(guān)的限制、 以及與必須在串中出現(xiàn)的序列有關(guān)的限制的規(guī)則。此外,規(guī)則集可包括拆分規(guī) 則和子串規(guī)則。
在說明性實(shí)施例中,占位符可具有特殊含義,且類似于在顯示之前需要由 其值來替換的變量。占位符一般不由翻譯組件404翻譯。例如, 一組約束可用 于防止相應(yīng)的占位符被翻譯。在說明性實(shí)施例中,固定占位符對(duì)應(yīng)于特定類型。 例如,固定占位符可由序列,諸如'%S'或'%d'表示。此外,在顯示固定 占位符之前,可用由固定占位符所指定的類型的值來替換它。例如,可用串來 替換類型'%S'的固定占位符,而可用整數(shù)來替換類型'%d'的固定占位符。 在說明性實(shí)施例中,源串中的固定占位符不能與源串中的另一占位符交換。此 外,固定占位符以源串中出現(xiàn)的相同次序出現(xiàn)在翻譯中。因?yàn)楣潭ㄕ嘉环拇?序在翻譯中得到保留,固定占位符出現(xiàn)的次數(shù)也隱式保留了。
在說明性實(shí)施例中,編號(hào)占位符對(duì)應(yīng)于索引。此外,編號(hào)占位符可在源串 中交換和重復(fù)。此外,編號(hào)占位符可在翻譯中以任何次序存在。例如,編號(hào)占 位符"0},在源串中可出現(xiàn)在編號(hào)占位符之前,但在翻譯中可出現(xiàn)在 編號(hào)占位符之后。在說明性實(shí)施例中,固定占位符和編號(hào)占位符可在 相應(yīng)占位符應(yīng)出現(xiàn)的任何位置由用戶插入到串中。然而,在實(shí)際中,如果目標(biāo) 串中固定占位符的計(jì)數(shù)不同于相應(yīng)的源串中固定占位符的計(jì)數(shù),則目標(biāo)串不是 有效的。
在說明性實(shí)施例中,規(guī)則可指示要轉(zhuǎn)義的字符或字符序列。例如,字符 V在串內(nèi)可能具有特殊含義,因此應(yīng)被轉(zhuǎn)義,諸如通過在字符前加另一 V 。
在說明性實(shí)施例中,創(chuàng)建轉(zhuǎn)義字符約束的句法是(EscapeChars (轉(zhuǎn)義字符), 'x-yy')形式的,其中'x'是不能存在于串中的字符的序列,而'yy'是應(yīng)代 替'x,使用的字符的序列。此外,在說明性實(shí)施例中,如果'yy'為空,則 相應(yīng)的、'參數(shù)不能存在于串中。類似規(guī)則可指示要在除由特定的一組約束 覆蓋的區(qū)域內(nèi)(諸如由占位符定義的一組約束)以外的串或子串內(nèi)轉(zhuǎn)義的字符 或字符序列。該規(guī)則可防止用戶在串中意外添加占位符。
在說明性實(shí)施例中,規(guī)則可對(duì)應(yīng)于強(qiáng)制串或子串僅包含一組字符的約束。字符可被定義為正則表達(dá)式范圍、 一組字符或代碼頁(yè)。相反地,規(guī)則可對(duì)應(yīng)于
強(qiáng)制串或子串不包含一組字符的約束。例如,圖5B的約束560可由這樣的規(guī) 則生成。規(guī)則也可對(duì)應(yīng)于驗(yàn)證串以指定值開始、包含指定值、以指定值結(jié)束的 約束。例如,在說明性實(shí)施例中,圖5B的約束552和562可分別從對(duì)應(yīng)于驗(yàn)
證串是否包含或以指定字符序列結(jié)束的約束的規(guī)則編譯。
在另一說明性實(shí)施例中,也可使用拆分規(guī)則來根據(jù)指定參數(shù)將串分成子 串。拆分規(guī)則保護(hù)串中由參數(shù)覆蓋的區(qū)段,并要求這些區(qū)段在相應(yīng)的翻譯中存 在。此外,串中未由參數(shù)覆蓋的區(qū)段可用作子串。此外,所找到的子串可在其 他規(guī)則中用作子串參數(shù)。其他規(guī)則可依賴于拆分規(guī)則,因此拆分規(guī)則可在使用 子串參數(shù)的任何規(guī)則之前處理。
在另一說明性實(shí)施例中,也可使用子串規(guī)則來根據(jù)指定參數(shù)將串分成子 串。子串規(guī)則保護(hù)串中未由參數(shù)覆蓋的區(qū)段,并要求這些區(qū)段在相應(yīng)的翻譯中 存在。此外,串中由參數(shù)覆蓋的區(qū)段可用作子串。以類似于拆分規(guī)則的方式, 所找到的子串在其他規(guī)則中可用作子串參數(shù)。其他規(guī)則可依賴于子串規(guī)則,因 此子串規(guī)則可在使用子串參數(shù)的任何規(guī)則之前處理。
在說明性實(shí)施例中,子串和位置參數(shù)可與規(guī)則一起使用以生成具有相應(yīng)錨 點(diǎn)的約束。位置參數(shù)實(shí)質(zhì)上向用戶展示了串中的錨點(diǎn)。此外,用戶可指定參數(shù) 是大小寫敏感、大小寫不敏感還是正則表達(dá)式。此外,可在規(guī)則內(nèi)組合多種類 型的參數(shù)。此外,可由數(shù)字值或串值來表示文化參數(shù)。
在說明性實(shí)施例中,位置參數(shù)可用于指定串中約束施加的部分。位置參數(shù) 可使用以下句法(s+|e-)x..(s+|e-)y。在該示例性句法中,'x,指定串內(nèi)的開頭 位置,而'y'指定結(jié)尾位置。此外,'s+'和'e-'是可任選修飾符,它指定 位置是自串的開頭起或自結(jié)尾起且該位置錨定于該地點(diǎn)。參數(shù)可對(duì)串中字符之 間的虛擬分隔符操作。例如,參數(shù)'s+0'指示串中第一字符之前的位置。相 反地,參數(shù)'e-0'指示串中最后字符之后的位置。為了指定覆蓋串中第一字符 的位置,可使用參數(shù)'s+0.,s+l'。作為具有位置參數(shù)的規(guī)則的示例,規(guī)則 {ValidStrings (有效串)=s+0..s+2, "He"}創(chuàng)建了其中前兩個(gè)字符必須為'He, 的相應(yīng)的串上的約束。
在說明性實(shí)施例中,子串參數(shù)可用于指定己根據(jù)劃分串的規(guī)則生成的子
19串。例如,{split (拆分)}規(guī)則和(Substring (子串))規(guī)則可用于將串分成子 串。子串可使用基為O的索引編號(hào),從原始未劃分的串的開頭起計(jì)算。子串參 數(shù)可使用句法s 、-y,,其中x是第一子串,而-y是可任選的且描述子串的范 圍。此外,通過使用與非負(fù)數(shù)相對(duì)的文字字符'x',、'由原始串中找到的 最后一個(gè)子串替換。或者,通過使用子串參數(shù)"s'*'",規(guī)則應(yīng)用于所有子串。 作為可如何使用子串參數(shù)的示例,如果用戶將串"Excel files|*.xls|All Files|*.*" 以及規(guī)則(SplitH和(Lock (鎖)=5'1',3'3'}輸入到創(chuàng)作用戶界面302,則串將 在T字符上拆分。此外,由拆分規(guī)則生成的第一和第三子串——1氣xlsl' 和'|*.*'根據(jù)鎖定指令將該不會(huì)被本地化。
圖6是根據(jù)本發(fā)明的一方面示出可由圖3所示的說明性操作環(huán)境100實(shí)現(xiàn) 的源數(shù)據(jù)處理例程600的流程圖。在框602, 一個(gè)或多個(gè)元數(shù)據(jù)編譯器104獲 取源數(shù)據(jù)。在說明性實(shí)施例中,源數(shù)據(jù)是來自創(chuàng)作用戶界面302的用戶輸入形 式的。此外,源數(shù)據(jù)可包括源串。此外,源數(shù)據(jù)可包括屬性,諸如指令、附加 資源信息和/或推斷的限制。在說明性實(shí)施例中,外觀(facade)組件可基于源 數(shù)據(jù)的特征指導(dǎo)源數(shù)據(jù)從創(chuàng)作用戶界面302前往適當(dāng)?shù)脑磾?shù)據(jù)編譯器。在框 604,源數(shù)據(jù)被編譯成元數(shù)據(jù)。在說明性實(shí)施例中,元數(shù)據(jù)可包括對(duì)應(yīng)于評(píng)估 準(zhǔn)則的一個(gè)或多個(gè)約束以及可用于將約束投影到串上的一個(gè)或多個(gè)錨點(diǎn)。
在框604,元數(shù)據(jù)優(yōu)化器和仲裁器106對(duì)元數(shù)據(jù)標(biāo)準(zhǔn)化。圖8是根據(jù)本發(fā) 明的一方面由元數(shù)據(jù)優(yōu)化器和仲裁器106實(shí)現(xiàn)的標(biāo)準(zhǔn)化子例程800的流程圖。 在框802,元數(shù)據(jù)優(yōu)化器和仲裁器106獲取抽象元數(shù)據(jù)。在說明性實(shí)施例中, 抽象元數(shù)據(jù)可從一個(gè)或多個(gè)元數(shù)據(jù)編譯器104獲取。在框804,元數(shù)據(jù)優(yōu)化器 和仲裁器106將冗余約束縮減成單個(gè)等效約束。例如,如果目標(biāo)串上的一個(gè)約 束指定20個(gè)元素的最大長(zhǎng)度,而目標(biāo)串上的另一約束指定最大長(zhǎng)度10,則元 數(shù)據(jù)優(yōu)化器和仲裁器106可將這兩個(gè)約束縮減為指定最大長(zhǎng)度為10的單個(gè)等 效約束。元數(shù)據(jù)優(yōu)化器和仲裁器可進(jìn)行這種縮減,因?yàn)榘儆?0個(gè)元素的 任何較短的串也將包含少于20個(gè)的元素。
在框806,元數(shù)據(jù)優(yōu)化器和仲裁器執(zhí)行沖突解決。沖突解決可包括解決多 個(gè)約束之間的不兼容性。例如, 一個(gè)約束可指定最大長(zhǎng)度10,而另一約束指定 最小長(zhǎng)度20。顯然,沒有單個(gè)串可同時(shí)滿足這些約束,因此約束是不兼容的。元數(shù)據(jù)優(yōu)化器和仲裁器106可解決不兼容性。在說明性實(shí)施例中,優(yōu)化器106
通過簡(jiǎn)單地挑選一個(gè)約束并丟棄另一個(gè)來解決沖突。此外,元數(shù)據(jù)優(yōu)化器和仲
裁器106可提供正丟棄不兼容約束的警告?;蛘撸脩艋蚬芾韱T可決定要保留 哪個(gè)約束。在說明性實(shí)施例中,不兼容性可基于與源或目標(biāo)串相關(guān)聯(lián)的其他屬 性解決。不兼容和/或冗余約束可由多個(gè)元數(shù)據(jù)編譯器104生成或可由單個(gè)元數(shù) 據(jù)編譯器104生成。在說明性實(shí)施例中,元數(shù)據(jù)優(yōu)化器和仲裁器106對(duì)于輸入 不作假設(shè)。例如,優(yōu)化器106不假設(shè)來自單個(gè)編譯器的元數(shù)據(jù)會(huì)沒有不兼容或 冗余的約束。在框808,子例程800返回至例程600。
回到圖6,在框608,投影組件110將元數(shù)據(jù)投影到串上。串可以是由用 戶在翻譯用戶界面402輸入的目標(biāo)串。此外,元數(shù)據(jù)可以是從元數(shù)據(jù)優(yōu)化器和 仲裁器106獲取的標(biāo)準(zhǔn)化、抽象元數(shù)據(jù)。在說明性實(shí)施例中,將元數(shù)據(jù)投影到 串上涉及根據(jù)相應(yīng)的一個(gè)或多個(gè)錨點(diǎn)將約束及其相關(guān)聯(lián)的評(píng)估準(zhǔn)則施加到串 上。例如,如圖5B中所示,約束552、 556、 558、 560和562可使用錨點(diǎn)520、 518、 516和522投影到串"CALCULAT.EXE" 525上。
在框610,確認(rèn)組件108針對(duì)投影后的元數(shù)據(jù)確認(rèn)串。在說明性實(shí)施例中, 確認(rèn)約束涉及評(píng)估串中約束所映射的部分以確定所映射的部分是否滿足對(duì)應(yīng) 于約束的評(píng)估準(zhǔn)則。例如,通過確定串中錨點(diǎn)520與518之間的部分是否具有 8個(gè)以下的元素來評(píng)估圖5B中的約束556。因?yàn)榇杏成浼s束556的部分 ("CALCULAT")具有8個(gè)以下的元素,因此約束評(píng)估為"真"。在說明 性實(shí)施例中,確認(rèn)組件108繼續(xù)處理與串相關(guān)聯(lián)的其他約束,直到評(píng)估了所有 約束。此外,在說明性實(shí)施例中,如果所有相關(guān)聯(lián)的約束評(píng)估為"真"則串有 效。如果任何約束評(píng)估為"假",則串不是有效的。然而,如果某些約束未得 到滿足,串可能有效。例如,如果失敗的約束生成警告消息而非錯(cuò)誤消息,則 相應(yīng)的串仍可以是有效的。
在框612,可向用戶顯示經(jīng)確認(rèn)的串以及用于確認(rèn)串的元數(shù)據(jù)。在說明性 實(shí)施例中,串和組合的元數(shù)據(jù)可在創(chuàng)作用戶界面302上顯示。此外,元數(shù)據(jù)可 用于標(biāo)記串,使得用戶可確定串的哪些部分有效而哪些部分不是有效的。將在 以下關(guān)于圖12-15更詳細(xì)討論對(duì)串的標(biāo)記和顯示。在框614,例程600終止。
圖7是根據(jù)本發(fā)明的一方面示出可由圖4所示的說明性操作環(huán)境100實(shí)現(xiàn)的目標(biāo)數(shù)據(jù)處理例程700的流程圖。在框702,投影組件110獲取目標(biāo)數(shù)據(jù)和 元數(shù)據(jù)。在說明性實(shí)施例中,投影組件110可從翻譯用戶界面402獲取目標(biāo)數(shù) 據(jù)。此外,目標(biāo)數(shù)據(jù)可包括目標(biāo)串。此外,目標(biāo)數(shù)據(jù)可包括對(duì)應(yīng)于串的屬性。 在說明性實(shí)施例中,投影組件110可從元數(shù)據(jù)優(yōu)化器和仲裁器106獲取標(biāo)準(zhǔn)化 的抽象元數(shù)據(jù)?;蛘?,投影組件110可從數(shù)據(jù)存儲(chǔ)獲取元數(shù)據(jù)。
在框704,投影組件110將元數(shù)據(jù)投影到目標(biāo)串。在圖5B-5D中描繪了具 有投影后的元數(shù)據(jù)的串的示例。在框706,確認(rèn)組件108確認(rèn)目標(biāo)串。在說明 性實(shí)施例中,在框702獲取的元數(shù)據(jù)可包括可用于確認(rèn)特定類型的串(諸如文 件名)的約束,且目標(biāo)數(shù)據(jù)可包括要確認(rèn)遵循該特定類型的串的要求的串。
繼續(xù)參考圖7,在框708,翻譯組件404翻譯目標(biāo)。鎖約束可被映射到目 標(biāo)串的一個(gè)或多個(gè)部分,且因此限制對(duì)串的一個(gè)或多個(gè)部分進(jìn)行翻譯。例如,
占位符限制可防止目標(biāo)串中的相應(yīng)占位符被翻譯。在說明性實(shí)施例中,串可從 任何源語(yǔ)言翻譯成任何目標(biāo)語(yǔ)言。此外,翻譯組件404可執(zhí)行串的偽本地化。 將在以下更詳細(xì)討論偽本地化。在框710,可更正翻譯后的目標(biāo)。例如,翻譯 后的目標(biāo)串可能不滿足包括在投影后的元數(shù)據(jù)中的約束。不滿足相關(guān)聯(lián)的約束
的串可被修改,以使修改后的串滿足約束。例如,可通過刪除"OR"來修改 來自圖5A的串524以遵循圖5B中所示的約束552、 556、 558、 560和562。 在框712,向用戶顯示翻譯和相關(guān)聯(lián)的元數(shù)據(jù)。在說明性實(shí)施例中,可在翻譯 用戶界面402上顯示翻譯。此外,可使用相關(guān)聯(lián)的元數(shù)據(jù)來標(biāo)記串。對(duì)串的標(biāo) 記將在以下更詳細(xì)討論。在框714,例程700終止。
圖9是描繪在翻譯之前將數(shù)據(jù)從一個(gè)或多個(gè)資源轉(zhuǎn)換成資源中立格式的 框圖900。在說明性實(shí)施例中,串"FOO{0}"可與資源A902相關(guān)聯(lián)。此外, 來自"FOO{0},,的子串"{0}"可與占位符限制相關(guān)聯(lián)。占位符限制可防止串 內(nèi)的相關(guān)聯(lián)占位符被翻譯。串"F00%1"可與資源B 904相關(guān)聯(lián)。此外,來 自"FOO%l"的子串"%1"可與占位符限制相關(guān)聯(lián)。在說明性實(shí)施例中,資 源A 902可與一個(gè)特定平臺(tái)相關(guān)聯(lián),而資源B可與不同的平臺(tái)相關(guān)聯(lián)。
框卯6描繪了將串"FOO {0}"和"FOO %1"轉(zhuǎn)換成資源中立格式。在 說明性實(shí)施例中,相應(yīng)的占位符"{0}"和"%1"可被轉(zhuǎn)換成資源中立形式(例 如,"<PH\〉")。在框906與908之間,可執(zhí)行串的偽翻譯以生成串<PH\>",這在框908描繪。占位符限制可防止占位符("<PH\>")被偽本
地化。在框910,串"/ 66<PH\>"可被轉(zhuǎn)回資源相關(guān)形式"/ 66{0}",這
是依賴于資源A的。類似地,在框912,串"/ 6(3 <PH\>"可被轉(zhuǎn)回資源相 關(guān)形式"/ 06 {0}",這是依賴于資源B的。通過在翻譯或?qū)Υ畧?zhí)行其他動(dòng) 作之前將資源相關(guān)串轉(zhuǎn)換成資源中立格式,可使得翻譯或處理代碼更簡(jiǎn)單,因 為代碼僅需處理單個(gè)資源中立格式的數(shù)據(jù)。在說明性實(shí)施例中,資源中立化可 用于翻譯僅在鎖定部分上不同的串。此外,占位符和轉(zhuǎn)義字符是資源相關(guān)的, 且可被變換成資源中立形式。
圖10是根據(jù)本發(fā)明的一方面示出由翻譯組件404實(shí)現(xiàn)的模糊例程1000 的流程圖。在框1002,翻譯組件404獲取己被投影到串上的元數(shù)據(jù)。在框1004, 可對(duì)串執(zhí)行資源格式中立化。如上關(guān)于圖9所述,資源格式中立化可用于將串 中資源相關(guān)部分轉(zhuǎn)換成單一的資源中立格式。在框1006,生成隨機(jī)內(nèi)容。隨機(jī) 內(nèi)容可表示投影后元數(shù)據(jù)中所包括的串的翻譯后版本。
在框1008,在框1002獲取的元數(shù)據(jù)被投影到隨機(jī)內(nèi)容上。此外,在框1010, 投影后的元數(shù)據(jù)可用于修改隨機(jī)內(nèi)容,使得隨機(jī)內(nèi)容滿足所投影的約束。投影 后的元數(shù)據(jù)可包括占位符和轉(zhuǎn)義字符,它們被插入到隨機(jī)內(nèi)容中使得隨機(jī)內(nèi)容 滿足所投影的約束。在框1012,被插入隨機(jī)內(nèi)容使得隨機(jī)內(nèi)容可滿足所投影的 約束的任何資源中立約束被轉(zhuǎn)換成資源相關(guān)形式??墒褂媚:?000來生 成滿足與源串相關(guān)聯(lián)的元數(shù)據(jù)的隨機(jī)內(nèi)容。以此方式,模糊例程1000可創(chuàng)建 可用于測(cè)試目的的串的各種偽翻譯。在框1014,例程1000終止。
圖11是根據(jù)本發(fā)明的一方面示出由元數(shù)據(jù)編譯器104實(shí)現(xiàn)的正則表達(dá)式 轉(zhuǎn)換例程11000的流程圖。在說明性實(shí)施例中,可將正則表達(dá)式轉(zhuǎn)換成包括對(duì) 應(yīng)于評(píng)估準(zhǔn)則的一個(gè)或多個(gè)約束和一個(gè)或多個(gè)相應(yīng)的錨點(diǎn)的元數(shù)據(jù)。將正則表 達(dá)式轉(zhuǎn)換成元數(shù)據(jù)可簡(jiǎn)化元數(shù)據(jù)標(biāo)準(zhǔn)化和翻譯過程。在框1102, 一個(gè)或多個(gè)元 數(shù)據(jù)編譯器104從創(chuàng)作用戶界面302獲取正則表達(dá)式和源串。例如,元數(shù)據(jù)編 譯器104可從創(chuàng)作用戶界面302獲取諸如"This is aa file (這是aa文件)"的 源串和諸如(Regex (正則表達(dá)式)='、{2}"}的正則表達(dá)式。正則表達(dá)式在本領(lǐng) 域中公知,且一個(gè)或多個(gè)元數(shù)據(jù)編譯器104可用于處理任何正則表達(dá)式。在框 1104, 一個(gè)或多個(gè)元數(shù)據(jù)編譯器104可解析正則表達(dá)式,使得包括一個(gè)或多個(gè)
23約束和一個(gè)或多個(gè)相應(yīng)的錨點(diǎn)的元數(shù)據(jù)可從正則表達(dá)式得到。
繼續(xù)參考圖ll,在框1106,針對(duì)源串匹配元數(shù)據(jù)表達(dá)式。在框1108,約 束可被投影到源串上。使用示例正則表達(dá)式(Regex-"a口V')和示例源串"This is aafile",可對(duì)源中兩個(gè)連續(xù)的'a,字符的首次出現(xiàn)施加鎖定約束。因此,可 對(duì)源串"This is aa file"中的'aa,施加鎖定約束。在另一示例中, 一個(gè)或多 個(gè)元數(shù)據(jù)編譯器104可獲取要針對(duì)示例性源串"This is abbe file (這是abbe文 件)"匹配的示例性正則表達(dá)式(Regex^"a[abcK3r)??山馕鲈撌纠哉齽t表 達(dá)式以創(chuàng)建對(duì)'a,的首次出現(xiàn)繼之以為'a, 、 'b,或'c,中任何一個(gè)的三 個(gè)字母的鎖定約束,加上對(duì)后續(xù)的三個(gè)字符必須是'a' 、 'b,或'c'的有 效字符約束。另外,長(zhǎng)度為3的最大長(zhǎng)度約束和長(zhǎng)度為3的最小長(zhǎng)度約束將覆 蓋同一區(qū)段。將得到的約束與示例性源串"This is abbe file"匹配將創(chuàng)建對(duì)、' 的鎖定約束和對(duì)源串'bbc'部分的有效字符約束、最大長(zhǎng)度約束和最小長(zhǎng)度 約束。在示例性實(shí)施例中,因?yàn)樵创疂M足所有約束,源串有效。在框lllO,例 程1100終止。
回來參考圖5D,在說明性實(shí)施例中,拆分規(guī)則可用于正則表達(dá)式參數(shù)以 生成某些所示約束。例如,如果用戶想要生成使得僅翻譯串572的文本區(qū)段的 約束,則用戶可使用正則表達(dá)式來拆分串。可使用諸如(Split-r":[0-9:;r: "的 示例性拆分規(guī)則來執(zhí)行拆分。規(guī)則中的'r'參數(shù)可指示以下是正則表達(dá)式。 此外, 一個(gè)或多個(gè)元數(shù)據(jù)編譯器104將正則表達(dá)式轉(zhuǎn)換成鎖定約束576和588。 此外,拆分規(guī)則生成子串"FLY FROM BOTTOM (從底下飛)"、"FLY (飛)" 和"FROM BOTTOM (從底下)"。
如上所述,由拆分規(guī)則生成的子串在其他指令中可用作參數(shù)。因此,除以 上拆分規(guī)則以外,在說明性實(shí)施例中,用戶可使用根據(jù)拆分規(guī)則生成的子串輸 入其他規(guī)則作為參數(shù)。例如,為了生成約束574、 578和584,用戶可輸入 {InvalidChars (無(wú)效字符)=s'0-2', ":"}形式的規(guī)則。's'參數(shù)可指示該指令將 生成子串0、 l和2的約束,這些子串由以上拆分規(guī)則生成。因此,將上述拆 分規(guī)則與無(wú)效字符規(guī)則組合,用戶可限制串"FLYFROMBOTTOM"、 "FLY" 和"FROM BOTTOM"包含序列"",如由約束574、 578和584所指示。此 外,用戶可使用根據(jù)拆分規(guī)則生成的子串作為規(guī)則中的參數(shù)以限制最大長(zhǎng)度。例如,{MaxLen=s'0', 255}形式的規(guī)則可用于生成約束596。同樣地,諸如 {MaxLen=s'r, 10}的示例性規(guī)則可生成約束590,而諸如(MaxLei^s'2', 35}的示 例性規(guī)則可生成約束586。
圖6-ll示出了可根據(jù)本發(fā)明的各個(gè)方面執(zhí)行的各種方法。然而,可理解, 本發(fā)明可執(zhí)行與說明性附圖所示相比或多或少的方法。此外,在各個(gè)附圖中示 出的方法可包括與說明性附圖中所示相比或多或少的元素。
現(xiàn)在參考圖12,將描述用于顯示串1214以及相關(guān)聯(lián)評(píng)論1202、建議值 1228和1236以及翻譯1244的說明性用戶界面1200。在說明性實(shí)施例中,評(píng) 論顯示部分1206可用于獲取并顯示與串1214相關(guān)聯(lián)的評(píng)論。評(píng)論可對(duì)應(yīng)于屬 性。評(píng)論也可對(duì)應(yīng)于一個(gè)或多個(gè)元數(shù)據(jù)編譯器104可編譯成約束的規(guī)則。例如, 用戶可將(MaxLei^17)形式的規(guī)則1204輸入到評(píng)論顯示部分1206,以指示最 大長(zhǎng)度約束對(duì)整個(gè)串操作并將有效串限于包含不超過17個(gè)元素??赏ㄟ^將相 應(yīng)的規(guī)則輸入到顯示1200的評(píng)論顯示部分1206來對(duì)串1214施加占位符、轉(zhuǎn) 義字符、有效和無(wú)效字符、子串、拆分和其他類型的約束?;蛘?,元數(shù)據(jù)編譯 器104可通過分析串1214來推斷約束。在說明性實(shí)施例中,評(píng)論也可包括資 源信息。另外,可標(biāo)記評(píng)論顯示部分1206中的句法錯(cuò)誤。此外,如果相應(yīng)的 串不能針對(duì)規(guī)則確認(rèn),則可標(biāo)記規(guī)則。例如,在規(guī)則(MaxLer^17) 1204中對(duì) 數(shù)字"17"下劃線,因?yàn)橄鄳?yīng)的串1214包含多于17個(gè)字符。
輸入串顯示部分1280可用于獲取并顯示串1214。在說明性實(shí)施例中,串 的值1212被顯示為"The saving of,e %l!s! is %2!d! % complete (jtY他!s! 的保存完成了%2!(1!% ) " 1214。另外,可標(biāo)記串1214以向用戶警告串1214 上的任何約束。例如,使詞語(yǔ)",/e D^伴J " 1216斜體以指示受到術(shù)語(yǔ) 約束。此外,"%l!s!" 1218被下劃線以指示占位符。如上所述,占位符防止 串的相應(yīng)部分被翻譯。同樣地,"%2!d!"也被下劃線以指示占位符。如將在 以下更詳細(xì)討論地,輸入串顯示部分1280中的占位符1218和1220在翻譯顯 示部分1286中可不被翻譯。
可用箭頭1222標(biāo)記百分號(hào)("%")以指示轉(zhuǎn)義字符約束。然而,可使 用任何類型的標(biāo)記來標(biāo)記與串1214相關(guān)聯(lián)的任何約束。例如,可使用突出顯 示、彩色編碼、下劃線、粗體、斜體、特殊字符、陰影、箭頭或任何其他技術(shù)來標(biāo)記串1214。另外,可在資源中立級(jí)上編輯串。例如,串1214可被轉(zhuǎn)換成 資源中立格式并向用戶顯示供編輯。此外,串可按照對(duì)應(yīng)于任何資源的格式顯 示和編輯。例如,對(duì)應(yīng)于示例性資源A的串可被轉(zhuǎn)換成資源中立格式,然后資 源注入,使得串按照對(duì)應(yīng)于示例性資源B的格式顯示并可編輯。
可使用所建議值1226的顯示部分1282和1284來顯示輸入串1214的所建 議的修改1228禾tl 1236。例如,顯示部分1282可建議百分號(hào)("%" ) 1224 被轉(zhuǎn)義1234,因?yàn)槟骋毁Y源將百分號(hào)1224解釋為特殊字符。通過使百分號(hào)1234 轉(zhuǎn)義,資源將不會(huì)給予百分號(hào)其特殊含義。類似地,顯示部分1284可建議百 分號(hào)1224由詞語(yǔ)"percent (百分)"1238替換。用戶可選擇一個(gè)或多個(gè)所建議 的值1228和1236用于翻譯。所建議的值1228和1236可具有比輸入串1214 或多或少的占位符。另外,所建議的值1228和1236中的元數(shù)據(jù)可使用各種標(biāo) 記技術(shù)在視覺上進(jìn)行指示。所建議的值1228和1236可由翻譯存儲(chǔ)器、機(jī)器翻 譯或通過其他翻譯技術(shù)來生成。此外,建議可隨用戶輸入出現(xiàn)在顯示1200上 作為自動(dòng)補(bǔ)完。
在說明性實(shí)施例中,輸入串顯示部分1280和所建議值顯示部分1282和 1284可與指示置信度級(jí)別1208和翻譯可用性1210的圖形相關(guān)聯(lián)。例如,輸入 串1214可與指示機(jī)器翻譯有多難的圖形1290相關(guān)聯(lián)。此外,圖形1254可指 示串可被翻譯的語(yǔ)言的數(shù)目。例如,圖形1254可指示翻譯存儲(chǔ)器具有特定輸 入串1214的0個(gè)相關(guān)聯(lián)的翻譯。每一建議值顯示部分1282和1284也可與指 示相應(yīng)的相關(guān)聯(lián)的建議值1228和1236機(jī)器翻譯有多難的圖形1292和1294相 關(guān)聯(lián)。圖形1292在視覺上指示所建議的值"Saving/ /e %l!s!. %2!d! %% complete.(保存文/,/ol!s!. %2!d! %%完成。)"1228以2種語(yǔ)言可用1252, 而圖形1294在視覺上指示所建議的值"Saving %l!s!. %2!d! percent complete.(保存文件保存1!s!.百分之y。2!d!完成)"1236以15種語(yǔ)言 可用1250。說明性用戶界面1200也具有在視覺上指示哪一所建議的值以最多 語(yǔ)言可用的圖形1248。另外,翻譯可用性圖形1210和/或置信度級(jí)別圖形1208 可對(duì)應(yīng)于特定的一個(gè)或多個(gè)市場(chǎng)。
在說明性實(shí)施例中,源串1214的翻譯1244或所建議的值1228或1236 可在翻譯顯示部分1286中提供。在說明性實(shí)施例中,翻譯可以是示例(偽)翻譯1242,它例如是使用以上關(guān)于圖IO描述的模糊技術(shù)來產(chǎn)生的。另外,翻 譯可以是翻譯成任何語(yǔ)言的。 一般,將不翻譯占位符1220和1218。此外,占 位符可與串的功能部分相關(guān)聯(lián)。在說明性實(shí)施例中,翻譯1244可以是首先生 成隨機(jī)內(nèi)容然后根據(jù)包括一個(gè)或多個(gè)約束和一個(gè)或多個(gè)相應(yīng)的錨點(diǎn)的元數(shù)據(jù) 更正隨機(jī)內(nèi)容的模糊技術(shù)的結(jié)果。例如,占位符1220和1218可被放置在隨機(jī) 內(nèi)容中以滿足與相應(yīng)的源串1214的元數(shù)據(jù)相關(guān)聯(lián)的約束。
拼寫檢查可被并入顯示1200內(nèi)并建議對(duì)拼錯(cuò)的詞語(yǔ)的更正。此外,在鼠 標(biāo)指針懸停在術(shù)語(yǔ)上時(shí)可描述術(shù)語(yǔ)。此外,所建議的值1228和1236與輸入串 1214之間的差異可被標(biāo)記以向用戶提供差異的快速視覺指示。另外,可提供可 如何使用輸入串的指示。此外,可標(biāo)記術(shù)語(yǔ)以指示它們由某些組織或組核準(zhǔn)。 顯示1200可被配置成使用戶可開啟或關(guān)閉功能部件??墒褂脴?biāo)記來指示已在 源串1214中替換的任何術(shù)語(yǔ)。如果串的某一部分與低置信度級(jí)別相關(guān)聯(lián),則 該部分可用標(biāo)記來指示。另外,可標(biāo)記翻譯1244中的功能問題,且可顯示更 正功能問題的建議。
現(xiàn)在參考圖13-15,將描述用于將源語(yǔ)言的源串1504翻譯成目標(biāo)語(yǔ)言的目 標(biāo)串1516的說明性用戶界面1300。如在覆蓋圖上所示,在高級(jí)別上,具有投 影后的元數(shù)據(jù)1520的項(xiàng)目可被輸入到輸入串顯示部分1502,元數(shù)據(jù)可被投影 到目標(biāo)串上,并被確認(rèn)1522,且目標(biāo)串1516可作為具有投影后的元數(shù)據(jù)1524 的項(xiàng)目顯示在翻譯顯示部分1512上。圖13-15描繪了用戶可利用來生成滿足 與相應(yīng)的源串1504相關(guān)聯(lián)的元數(shù)據(jù)的目標(biāo)串1516的示例性迭代過程。
現(xiàn)在參考圖13,表示投影后的元數(shù)據(jù)1526和1550的表可分別與源串1504 和目標(biāo)串1516相關(guān)聯(lián)。表1526的列1536可指示元數(shù)據(jù)的類型,列1538可指 示來自串的哪些數(shù)據(jù)是與元數(shù)據(jù)相關(guān)聯(lián)的,且列1540可指示元數(shù)據(jù)中與串有 關(guān)的位置。源串1504中的每一約束可由所顯示的投影后的元數(shù)據(jù)表1526中的 行表示。例如,行1528可指示可在源串1504的位置8與12之間找到具有相 關(guān)聯(lián)的標(biāo)識(shí)"7"的術(shù)語(yǔ)約束。術(shù)語(yǔ)約束可對(duì)應(yīng)于術(shù)語(yǔ)"file" 1506。源串中 的術(shù)語(yǔ)約束可映射到目標(biāo)串中的等效術(shù)語(yǔ)。繼續(xù)該示例,行1530可指示可在 源串1504上的位置13與16之間找到由"{0}"表示的索引占位符1508。類似 地,行1532可指示可在源串1510上的位置18與21之間找到由"{1}"表示的索引占位符1508。行1534可指示字符和字符受到轉(zhuǎn)義字符約束, 且可在源串1504內(nèi)的任何位置找到。另外,行1534可指示特殊字符"{"可 由序列"{{"轉(zhuǎn)義,而特殊字符"}"可由序列"}}"轉(zhuǎn)義。因?yàn)樵创?504中 的特殊字符"{"和"}"不是轉(zhuǎn)義的,所以源串1504不包含任何轉(zhuǎn)義字符, 除了串內(nèi)的占位符。除了顯示約束在串上的位置,可顯示與約束相關(guān)聯(lián)的錨定 的一個(gè)或多個(gè)類型。例如,占位符"{0}" 1508和"{1}" 1510可被松錨定至 串1504的開頭和結(jié)尾??娠@示占位符1508和1510被松錨定至串的開頭和結(jié) 尾的指示。相反,轉(zhuǎn)義字符1534可被硬錨定至串1504的開頭和結(jié)尾。可顯示 轉(zhuǎn)義字符約束1534被硬錨定至串的開頭和結(jié)尾的指示。
仍參考圖13,根據(jù)與源串1504相關(guān)聯(lián)的元數(shù)據(jù)1526,各種標(biāo)記可用作指 示符。例如,可在源串1504中使用粗體字體以指示術(shù)語(yǔ)"file" 1506受到術(shù)語(yǔ) 約束。同樣地,可使用粗體來標(biāo)記第一索引占位符"{0}" 1508和第二索引占 位符"{1}" 1510。然而,可使用任何類型的標(biāo)記在視覺上向用戶警告與串相 關(guān)聯(lián)的元數(shù)據(jù)。例如,斜體和其他類型的字體、較大或較小字體、彩色編碼、 顯示上的外來字符、突出顯示、下劃線和陰影均可用于在視覺上襯托串中與元 數(shù)據(jù)相關(guān)聯(lián)的部分。
屬性表1512和1514可分別與源1504和目標(biāo)1516串相關(guān)聯(lián)。屬性表1512 和1514除串的用途以外還可指示相關(guān)聯(lián)的資源或平臺(tái)。例如,串可在對(duì)話框 中使用。此外,屬性表1512和1514可指示平臺(tái)的標(biāo)識(shí)以及相關(guān)聯(lián)的串的語(yǔ)言。 如上所述,可使用資源中立化將串從一個(gè)平臺(tái)上的語(yǔ)言翻譯成另一平臺(tái)上的不 同語(yǔ)言。通過使用資源中立化,中立化的串可被翻譯一次,然后串中資源中立 的部分可被轉(zhuǎn)換成資源相關(guān)的部分,使得可在若干不同資源上使用單一的翻 譯。因此,與若干資源相關(guān)串相對(duì),僅翻譯一個(gè)資源中立串。
可使用表1542來顯示從表1526中顯示的投影后的元數(shù)據(jù)拉出的抽象元數(shù) 據(jù)。抽象元數(shù)據(jù)可針對(duì)進(jìn)行確認(rèn)的串進(jìn)行放置。因?yàn)槌橄笤獢?shù)據(jù)不與串相關(guān)聯(lián), 表1542可不包括位置列1540。表1544可顯示與翻譯有關(guān)的信息。例如,可顯 示術(shù)語(yǔ)提供者和相關(guān)聯(lián)的標(biāo)識(shí)。列1546可顯示相應(yīng)術(shù)語(yǔ)1506的源和目標(biāo)語(yǔ)言。 另外,列1548可顯示相應(yīng)術(shù)語(yǔ)1506的源和目標(biāo)值。也可顯示源串1504中的 其他術(shù)語(yǔ)所建議的翻譯。從而,表1544可協(xié)助用戶正確翻譯術(shù)語(yǔ)。如圖13中所示,用戶可通過將"DieDat (該數(shù)據(jù))"1516鍵入目標(biāo)串顯 示部分1512來開始翻譯源串1504的過程。"Dat" 1552可用粗體標(biāo)記,因?yàn)樗?可被識(shí)別為表1544中所顯示的"file" 1506的翻譯的開頭。另夕卜,用戶可利用 表1550來確定哪些約束得到滿足而哪些未得到滿足。例如,表1550顯示從源 串收集到的元數(shù)據(jù)及其在目標(biāo)串i516上的相應(yīng)位置1540。因?yàn)?,短語(yǔ)"DieDat" 1516不滿足表1550中所示的約束的要求,位置列1540對(duì)每一相應(yīng)約束顯示"未 找到"消息。此外,表1550可顯示警告和出錯(cuò)消息1554、 1556和1558。例如, 行1554可顯示指示所要求的術(shù)語(yǔ)"Datei (文件)"未被完整輸入的警告消息。 此外,行1556和1558可顯示指示占位符"{0}" 1508和"{1}" 1510缺少的 出錯(cuò)消息。使用這些警告和出錯(cuò)消息,用戶可開始更正翻譯1516?;蛘?,可將 所建議的更正顯示為自動(dòng)補(bǔ)完供用戶選擇。
如圖14中所示,用戶可繼續(xù)輸入源串1504的翻譯1516。例如,用戶可 輸入所需術(shù)語(yǔ)"file" 1506的翻譯1518。所翻譯的術(shù)語(yǔ)1518可在目標(biāo)串顯示 部分1512上的位置4和9之間標(biāo)識(shí),如行1576中所示。此外,索引占位符 "{0}"1508可在目標(biāo)串顯示部分1512上的位置10和13之間標(biāo)識(shí),如行1578 中所示。此外,可標(biāo)識(shí)索引占位符"{1}" 1570的開頭。在說明性實(shí)施例中, 因?yàn)樗饕嘉环?{1}" 1510未被正確輸入,占位符在行1580中被標(biāo)為"未找 到"?;蛘?,因?yàn)樾g(shù)語(yǔ)1570中的字符"{"是非轉(zhuǎn)義的,且所需占位符缺少, 可顯示如行1574中所示的錯(cuò)誤,指示術(shù)語(yǔ)1570無(wú)效。
仍參考圖14,根據(jù)與目標(biāo)串1516相關(guān)聯(lián)的元數(shù)據(jù)1550,各種標(biāo)記可用作 指示符。例如,可使用粗體字體來指示在目標(biāo)串1504中需要術(shù)語(yǔ)"Datei"1518。 同樣地,可使用粗體字體來標(biāo)記第一索引占位符"{0}" 1508。此外,當(dāng)完全 輸入時(shí)可對(duì)應(yīng)于約束的項(xiàng)目,諸如項(xiàng)目1570,也可用粗體字體標(biāo)記??墒褂萌?何類型的標(biāo)記在視覺上向用戶警告與串相關(guān)聯(lián)的元數(shù)據(jù)。例如,斜體和其他類 型的字體、較大或較小字體、彩色編碼、顯示上的外來字符、突出顯示、下劃 線和陰影均可用于在視覺上襯托串中與元數(shù)據(jù)相關(guān)聯(lián)的部分。
為了協(xié)助生成有效目標(biāo)串1516,出錯(cuò)消息1572和1574可向用戶警告串 中不滿足相關(guān)聯(lián)元數(shù)據(jù)的部分。例如,行1572可向用戶指示目標(biāo)串1516缺少 了占位符"{1}" 1510。此外,行1574可向用戶通知非轉(zhuǎn)義的轉(zhuǎn)義字符。因?yàn)檗D(zhuǎn)義字符具有特殊含義,它們可轉(zhuǎn)義或?qū)?yīng)于約束。用戶可利用元數(shù)據(jù)1550 和出錯(cuò)消息1572和1574來生成有效目標(biāo)串1516。
圖15描繪了其中有效目標(biāo)串1516被輸入目標(biāo)串顯示部分1512的說明性 實(shí)施例。如上所述,目標(biāo)串1516的項(xiàng)目1518、 1508和1510可對(duì)應(yīng)于約束且 可用粗體標(biāo)記。此外,可在列1540中描繪每一相應(yīng)的項(xiàng)目的位置。例如,列 1540指示可在目標(biāo)串顯示部分1512上的位置4與9之間找到所需術(shù)語(yǔ)"Datei" 1518。同樣,可在位置10與13之間找到索引占位符"{0}" 1508,而可在位 置28與31之間找到索引占位符"{1}"。另外,表1550中無(wú)出錯(cuò)和警告消息 可指示已在目標(biāo)串顯示部分1512中輸入了有效目標(biāo)串1516。此外,如果標(biāo)識(shí) 了任何轉(zhuǎn)義字符,則可在行1582列1540中提供轉(zhuǎn)義字符的位置。
盡管示出和描述了本發(fā)明的各說明性實(shí)施例,但可以理解,可在其中作出 各種改變而不背離本發(fā)明的精神和范圍。
權(quán)利要求
1. 一種用于處理源數(shù)據(jù)(102)的系統(tǒng)(100),包括可用于獲取源數(shù)據(jù)并將所述源數(shù)據(jù)編譯成元數(shù)據(jù)的至少一個(gè)編譯器組件(104),其中所述元數(shù)據(jù)包括一個(gè)或多個(gè)約束(502),其中所述一個(gè)或多個(gè)約束對(duì)應(yīng)于評(píng)估準(zhǔn)則以及可映射到串的一個(gè)或多個(gè)錨點(diǎn)(516-522);優(yōu)化組件(106),可用于從所述至少一個(gè)編譯器組件獲取元數(shù)據(jù)并對(duì)所述元數(shù)據(jù)標(biāo)準(zhǔn)化;以及一個(gè)或多個(gè)處理組件(108-122),可用于根據(jù)所述標(biāo)準(zhǔn)化的元數(shù)據(jù)對(duì)串執(zhí)行操作。
2. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述一個(gè)或多個(gè)處理組件包括 投影組件(110),可用于根據(jù)所述相應(yīng)的錨點(diǎn)將所述一個(gè)或多個(gè)約束投影到 所述串上。
3. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述一個(gè)或多個(gè)處理組件包括 可用于針對(duì)所述一個(gè)或多個(gè)約束確認(rèn)所述串的確認(rèn)組件(108)。
4. 如權(quán)利要求3所述的系統(tǒng),其特征在于,所述確認(rèn)組件獲取投影后的元 數(shù)據(jù),并生成經(jīng)確認(rèn)的結(jié)果,其中所述確認(rèn)組件使所述經(jīng)確認(rèn)的結(jié)果被顯示。
5. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述一個(gè)或多個(gè)處理組件包括 可用于修改所述串使得所述一個(gè)或多個(gè)約束得到滿足的更正組件(112)。
6. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述一個(gè)或多個(gè)處理組件包括 可用于根據(jù)所述一個(gè)或多個(gè)約束標(biāo)記所述串的標(biāo)記組件以及可用于在顯示器 上顯示所標(biāo)記的串的顯示組件(114)。
7. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括可用于生成所 述串的翻譯使得所翻譯的串可滿足所述一個(gè)或多個(gè)約束的翻譯組件(404)。
8. 如權(quán)利要求1所述的系統(tǒng),其特征在于,標(biāo)準(zhǔn)化所述元數(shù)據(jù)包括合并重 復(fù)約束以及解決沖突的約束之間的不兼容性。
9. 一種用于處理源數(shù)據(jù)的系統(tǒng)(100),包括可用于獲取源數(shù)據(jù)(102)并將所述源數(shù)據(jù)編譯成元數(shù)據(jù)的至少一個(gè)編譯 器組件(104),其中所述元數(shù)據(jù)包括一個(gè)或多個(gè)約束(502),其中所述一個(gè) 或多個(gè)約束對(duì)應(yīng)于評(píng)估準(zhǔn)則以及可映射到串的一個(gè)或多個(gè)錨點(diǎn)(516-522);優(yōu)化組件(106),可用于從所述至少一個(gè)編譯器組件獲取元數(shù)據(jù)并對(duì)所 述元數(shù)據(jù)標(biāo)準(zhǔn)化;以及翻譯組件(404),可用于獲取元數(shù)據(jù)和串作為輸入并利用所述元數(shù)據(jù)來 翻譯所述串。
10. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括投影組件 (110),其中所述投影組件從翻譯顯示獲取用戶輸入并從所述優(yōu)化組件獲取元數(shù)據(jù),并生成投影后的元數(shù)據(jù)。
11. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括確認(rèn)組件 (108),且其中所述確認(rèn)組件獲取投影后的元數(shù)據(jù),并針對(duì)所述投影后的元數(shù)據(jù)確認(rèn)所述串。
12. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括更正組件 (112),且其中所述更正組件從所述翻譯組件獲取翻譯并使用元數(shù)據(jù)來修改所述翻譯,且其中所述更正組件使所述修改后的翻譯被顯示。
13. —種具有用于處理源數(shù)據(jù)的計(jì)算機(jī)可讀組件的計(jì)算機(jī)可讀介質(zhì),所 述計(jì)算機(jī)可讀組件包括可用于獲取源數(shù)據(jù)(102)并生成元數(shù)據(jù)的至少一個(gè)編譯器組件(104), 其中所述元數(shù)據(jù)包括一個(gè)或多個(gè)約束(502),其中所述一個(gè)或多個(gè)約束對(duì)應(yīng) 于評(píng)估準(zhǔn)則以及可映射到串的一個(gè)或多個(gè)錨點(diǎn)(516-522);優(yōu)化組件(106),可用于對(duì)元數(shù)據(jù)標(biāo)準(zhǔn)化;以及一個(gè)或多個(gè)處理組件(108-122),可用于根據(jù)所述一個(gè)或多個(gè)約束處理 所述串。
14. 如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述一個(gè)或 多個(gè)處理組件包括投影組件(110),可用于根據(jù)所述相應(yīng)的錨點(diǎn)將所述一個(gè) 或多個(gè)約束投影到所述串上。
15. 如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述一個(gè)或 多個(gè)處理組件包括可用于針對(duì)所述一個(gè)或多個(gè)約束確認(rèn)所述串的確認(rèn)組件(108)。
16. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述確認(rèn)組 件從所述優(yōu)化組件獲取抽象元數(shù)據(jù),且其中所述確認(rèn)組件使用所述抽象元數(shù)據(jù)確認(rèn)所述串。
17. 如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述一個(gè)或多個(gè)處理組件包括可用于更正所述串使得所述一個(gè)或多個(gè)約束得到滿足的更正組件(112)。
18. 如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述一個(gè)或 多個(gè)處理組件包括可用于根據(jù)所述一個(gè)或多個(gè)約束標(biāo)記所述串的標(biāo)記組件以 及可用于向用戶顯示所標(biāo)記的串的顯示組件(114)。
19. 如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī) 可讀介質(zhì)還包括可用于根據(jù)所述一個(gè)或多個(gè)約束翻譯所述串的翻譯組件(404)。
20. 如權(quán)利要求19所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述翻譯組 件從確認(rèn)組件(108)獲取經(jīng)確認(rèn)的數(shù)據(jù),且其中所述翻譯組件生成翻譯供向 用戶顯示。
全文摘要
提供了用于生成供各個(gè)處理組件處理的元數(shù)據(jù)的系統(tǒng)和方法。元數(shù)據(jù)編譯器組件可用于根據(jù)源數(shù)據(jù)生成包括對(duì)應(yīng)于評(píng)估準(zhǔn)則的一個(gè)或多個(gè)約束以及一個(gè)或多個(gè)錨點(diǎn)的元數(shù)據(jù)。元數(shù)據(jù)優(yōu)化器和仲裁器可用于對(duì)元數(shù)據(jù)標(biāo)準(zhǔn)化。各種處理組件可用于使用元數(shù)據(jù)對(duì)串執(zhí)行操作。
文檔編號(hào)G06F17/00GK101438272SQ200780014260
公開日2009年5月20日 申請(qǐng)日期2007年4月23日 優(yōu)先權(quán)日2006年4月21日
發(fā)明者D·阿斯, J·M·馬蒂 申請(qǐng)人:微軟公司