CN101438272A - 用于处理格式化数据的系统 - Google Patents

用于处理格式化数据的系统 Download PDF

Info

Publication number
CN101438272A
CN101438272A CNA2007800142602A CN200780014260A CN101438272A CN 101438272 A CN101438272 A CN 101438272A CN A2007800142602 A CNA2007800142602 A CN A2007800142602A CN 200780014260 A CN200780014260 A CN 200780014260A CN 101438272 A CN101438272 A CN 101438272A
Authority
CN
China
Prior art keywords
string
metadata
constraint
translation
assembly
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2007800142602A
Other languages
English (en)
Inventor
J·M·马蒂
D·阿斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101438272A publication Critical patent/CN101438272A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

提供了用于生成供各个处理组件处理的元数据的系统和方法。元数据编译器组件可用于根据源数据生成包括对应于评估准则的一个或多个约束以及一个或多个锚点的元数据。元数据优化器和仲裁器可用于对元数据标准化。各种处理组件可用于使用元数据对串执行操作。

Description

用于处理格式化数据的系统
背景
一般而言,在软件开发期间本地化计算机系统的资源涉及将对应于一个市场的源数据变换成对应于一不同市场的目标数据。例如,本地化可涉及将一种语言的源数据翻译成另一语言的目标数据。本地化也可涉及在同一语言的市场之间变换数据,诸如将针对儿童的对应于日语的源数据变换成针对成人的对应于日语的目标数据。资源一般被定义为可由一个以上的程序或可在程序中一个以上的位置使用的数据或代码项目,诸如对话框。资源的一个示例是用于向计算机用户警告出错状况的出错消息串。另外,出错消息可包含在消息显示之前要用其值替换的一个或多个占位符。
各种假设可与资源相关联。例如,诸如“File<PH>notfound(文件<PH>未找到)”(其中“<PH>”是要用文件名替换的占位符的示例)的出错消息的作者可假设文件名将在稍后提供,且消息的读者理解术语“file(文件)”的含义。为了在各个市场中使用出错消息,这些消息可能需要被翻译成若干语言。在典型的开发环境中,可使用词对词的翻译来本地化资源。然而,得到的翻译可能不会捕捉与资源相关联的上下文数据。例如,资源中的词语,诸如词语“file(文件)”可能具有一个以上的含义,因此需要使用该词语的上下文来生成正确的翻译。另外,功能项目,诸如占位符,需要在目标数据中提供对应于在源数据中提供的功能的功能。例如,示例出错消息中的“<PH>”需要起到在出错消息的任何变换中以文件名来替换它的作用。
在本地化期间捕捉上下文和功能信息的一种方法涉及将与源资源相关联的各个假设针对目标资源进行比较以确保目标资源遵循每个假设。例如,与源资源相关联的一个假设可以是无效字符为‘*’和‘\’。例如,与同一资源相关联的另一假设可以是无效字符为‘%’和‘\’。为了使使用这些假设的目标资源有效,确认引擎首先检查目标串既不包含‘*’也不包含‘\’。接着,确认引擎可检查目标串不包含‘%’和‘\’。然而,检查每一个别假设是低效的。此外,个别假设可能与其他个别假设不兼容,或冗余。
可使用资源的伪本地化来确保假设被正确捕捉,使得它们可被保存在目标中。伪本地化的过程一般涉及生成源串的随机伪翻译。然后可用一般称之为确认的过程来测试伪翻译,以确保来自源串的假设被保存在伪翻译中。然而,为测试目的执行源串的伪本地化的典型工具不使用与用于确认目标翻译的工具相同的确认技术。因此,所本地化的软件未像如果能按照同一方式确认伪本地化资源时所可能地彻底测试。
概述
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征,也不旨在用于帮助确定所要求保护的主题的范围。
一般而言,本发明针对用于处理和确认格式化数据的系统和方法。更具体地,根据本发明,来自用户界面或数据存储的源数据可被编译成元数据并用于处理串。例如,元数据可被投影到串上,用于确认串,用于协助串的翻译,用于更正串,以及用于显示所标记的串等。
根据一个方面,提供了用于处理源数据的系统。该系统包括可用于获取源数据并将源数据编译成元数据的至少一个编译器组件。元数据可包括对应于评估准则的一个或多个约束以及用于将约束投影到串上的一个或多个锚点。该系统也包括可用于从至少一个编译器组件获取元数据并标准化元数据的优化组件。另外,可在系统中包括一个或多个处理组件,它们可用于根据标准化的元数据对串执行操作。
根据另一方面,提供了用于处理源数据的系统。该系统包括至少一个编译器组件、优化组件和翻译组件。编译器组件可获取源数据并将源数据编译成元数据。元数据可包括对应于评估准则的一个或多个约束以及用于将约束投影到串上的一个或多个锚点。优化组件从至少一个编译器组件获取元数据并对元数据标准化。元数据和串由翻译组件获取作为输入。翻译组件使用元数据来翻译串。
根据另一方面,提供了一种具有用于处理源数据的计算机可读组件的计算机可读介质。各组件包括至少一个编译器组件、优化组件和一个或多个处理组件。该至少一个编译器组件获取源数据并生成元数据。元数据可包括对应于评估准则的一个或多个约束以及用于将约束投影到串上的一个或多个锚点。优化组件对元数据标准化。一个或多个处理组件可根据一个或多个约束处理串。
附图说明
当结合附图参考以下详细描述时,可以更容易领会并更好地理解本发明的上述方面和许多附加优点,附图中:
图1是根据本发明的一方面包括元数据编译器、元数据优化器和仲裁器以及多个处理组件的说明性操作环境的框图;
图2是根据本发明的一方面示出多个元数据编译器、元数据优化器和仲裁器以及多个处理组件的图1的操作环境的框图;
图3是根据本发明的一方面示出创作用户界面、多个元数据编译器、元数据优化器和仲裁器、投影组件以及确认组件对元数据的处理和确认的图1的操作环境的框图;
图4是根据本发明的一方面示出经由创作用户界面、多个元数据编译器、元数据优化器和仲裁器、翻译用户界面和多个处理组件对串本地化的图1的操作环境的框图;
图5A-5D是根据本发明的一方面描绘根据相应的锚点针对各个串施加约束的框图;
图6是根据本发明的一方面示出由图3的操作环境实现的源数据处理例程的流程图;
图7是根据本发明的一方面示出由图4的操作环境实现的目标数据处理例程的流程图;
图8是根据本发明的一方面示出由元数据优化器和仲裁器实现的标准化子例程的流程图;
图9是根据本发明的一方面描绘两个资源的资源中立化、翻译和资源注入的框图;
图10是根据本发明的一方面示出用于生成测试数据的模糊例程的流程图;
图11是根据本发明的一方面示出由元数据编译器实现的正则表达式转换例程的流程图;
图12是根据本发明的一方面包括评论显示部分、输入串显示部分、建议值显示部分和翻译显示部分的用户界面的框图;以及
图13-15是根据本发明的一方面形成的包括源串显示部分、目标串显示部分、源元数据显示部分和目标元数据显示部分的用户界面的框图。
详细描述
一般而言,本发明针对用于处理和确认格式化数据的系统和方法。更具体地,根据本发明,源数据被编译成包括一个或多个约束和一个或多个对应的锚点的元数据。这一个或多个约束对应于可用于确认串的本地化版本的评估准则。各种处理组件可消费编译后的元数据。例如,元数据可被投影到串上,用于确认串,用于协助串的翻译,用于更正串,以及用于显示所标记的串等。虽然将参考说明性用户界面和操作系统来描述本发明,但相关领域的技术人员将会认识到所公开的各实施例本质上是说明性的,且不应被解释为是限制性的。
现在参考图1,说明性操作环境100包括元数据编译器104和元数据优化器和仲裁器106,后者可用于生成供各个处理和翻译组件消费的标准化的元数据。元数据编译器104可用于将源数据102编译成元数据。在说明性实施例中,源数据102可包括源串。例如,源数据102可包括以下串:“This is a string.(这是串。)”此外,源数据102可包括规则。例如,源数据102可包括以下规则:"{MaxLen(最大长度)=25}"。将在以下更详细描述规则。源数据102还可包括资源信息。资源信息可用于指定资源的属性,诸如相应的平台、资源的相应用途和资源的相应语言。例如,资源信息可用于指定对应于源或目标串的具体平台。另外,元数据编译器104可通过分析源数据102来推断限制。例如,编译器组件104可通过解析源串来推断占位符。或者,源串中的占位符可基于相应的资源信息来推断。
在说明性实施例中,由元数据编译器104生成的编译后的元数据可包括对应于评估准则的一个或多个约束以及用于将这一个或多个约束映射到串的一个或多个锚点。元数据优化器和仲裁器106获取编译后的元数据并使用编译后的元数据生成标准化的元数据。将在以下更详细讨论标准化过程。在说明性实施例中,编译后的元数据和标准化的元数据均可对应于抽象元数据。抽象元数据对应于还未针对串放置的元数据。一旦元数据被编译并被标准化之后,元数据可由操作环境100中的一个或多个处理组件使用。处理组件一般消费元数据并可执行其他任务。第一组处理组件108、110、112和114可用于操纵串和/或相应的元数据,而第二组处理组件116、118、120和122可用于翻译串。
在第一组处理组件内,投影组件110可根据相应的锚点利用元数据将一个或多个约束投影到串上。另外,确认组件108可利用元数据来针对元数据中所包括的一个或多个约束确认串。确认串涉及评估与对应于串的约束相关联的准则。如果对应于约束的准则得到满足,则约束评估为“真”。相反地,如果对应于约束的准则未得到满足,则约束评估为“假”。在替换实施例中,约束评估为严重性级别。例如,约束可评估为警告或错误。更正组件112可利用元数据来修改串,使得包括在元数据中的相应的约束得到满足。另外,显示组件114可显示根据相应的元数据标记的串。
说明性操作环境100也可包括可用于基于编译后的元数据翻译串的多个处理组件。在说明性实施例中,翻译组件可按元数据的指示翻译串的全部或部分。或者,翻译组件可生成违背元数据中所包括的一个或多个约束的建议的翻译。在这种情况下,可标记所建议的翻译中违背约束的部分。以此方式标记所建议的翻译可向用户信令所建议的翻译中需要修改以便满足约束的部分。标记将在以下更详细讨论。例如,元数据可包括锁定串的一个或多个部分并防止这些部分被翻译的一个或多个约束。在另一示例中,元数据可包括防止串中相应的占位符被翻译的一组约束。翻译组件也可从数据存储中检索翻译,并使得翻译根据相应的元数据来标记。继续参考图1,操作环境100可包括可用于根据相应的元数据翻译串的自动翻译组件116。如本领域的技术人员所理解地,自动翻译涉及将串与包括相应翻译的串的数据库进行匹配。此外,操作环境100可包括可根据相应的元数据翻译串的机器翻译组件118。如本领域的技术人员可以理解地,机器翻译涉及使用计算机硬件或软件来将文本从一种语言翻译成另一种。此外,操作环境100可包括可根据相应的元数据翻译串的人工翻译组件120。如本领域的技术人员可以理解地,人工翻译一般涉及使用人来从一种语言翻译成另一种。此外,操作环境100可包括可用于提供要用于测试目的的串的伪翻译的伪本地化组件122。将在以下更详细描述伪本地化。尽管说明性操作环境100被示为具有所有以上处理组件,但相关领域的技术人员可以理解,操作环境100可变化处理组件的数目。在说明性实施例中,可按照工作流不可知的方式消费元数据。
在说明性实施例中,编译后的元数据可用于保存通信的意图、上下文和格式,同时允许事务中的实际数据根据相应的市场或场所来适当转换。例如,元数据可用于在串被翻译后保存与源串相关联的假设。在一个方面中,编译器104所生成的约束是声明性的,且因此描述了相应的限制或假设是什么,但没有描述如何履行。因为约束是声明性的,对约束的消费则更灵活。在说明性实施例中,约束可通过锚定来组合以构建更“复杂”的约束。
在另一方面中,对约束归类。在说明性实施例中,约束可根据严重性级别来归类。例如,未得到满足的约束可发出错误或警告。在另一实施例中,约束可根据约束是对码点还是字符操作来归类。例如,功能约束可对码点操作,而术语约束可对字符操作。具体地,表示术语“file(文件)”的串可与一热键相关联,使得在功能级上串显现为“fil&e”。术语约束可对串“file”中的字符操作,且因此不会看到“&”,而功能约束可对码点操作,且能够检测“&”。此外,约束可根据它是正的还是负的来归类。例如,正约束可指定串的相应部分应如何显现,而负约束可指定串的相应部分不应如何显现。此外,约束可根据约束检查计数、元素还是序列来归类。例如,计数约束可限制串或子串的长度。检查元素的约束可基于相应元素的值来确认。元素可对应于字符或码点。另外,约束可以是大小写敏感或大小写不敏感的。同样地,约束可以是文化敏感或文化不敏感的。约束也可以是正则表达式。检查序列的约束可基于诸如子串的相应序列的值来确认。在又一方面中,约束是实例不可知的。例如,对于对应于英语的串的约束可按照与对于对应于西班牙语的串的约束相同的方式来确认。或者,约束可以是语言专用的。在又一方面中,约束可被投影到串实例上。在约束之间也可能存在依赖性,例如使得一个约束的评估的结果可与另一约束的评估结果对应。
现在参考图2,图1的说明性操作环境100可包括可用于将源数据编译成元数据的多个元数据编译器104。在说明性实施例中,多个元数据编译器104并行操作,使得来自若干源的源数据102可被编译成元数据。元数据编译器104也可顺序操作,使得每一编译器104执行不同的编译功能。此外,在说明性实施例中,若干不同的元数据编译器104版本可在说明性操作环境100中操作。例如,负责输入源数据的用户可能渐渐习惯于对应于版本1.0元数据编译器的界面。用户可继续使用版本1.0的编译器,即使版本2.0的编译器可供他人使用。如图2中所示,元数据优化器和仲裁器106可从元数据编译器104中的每一个获取编译后的元数据,并对元数据标准化。标准化可涉及合并冗余的约束以及解决约束之间的不兼容性,使得处理组件108、110、112、114、116、118、120和122接收一致的一组的元数据。将在以下更详细讨论标准化过程。
现在参考图3,将描述操作环境100各个组件用于处理和确认元数据的交互。在说明性实施例中,创作用户界面302可获取供一个或多个元数据编译器104编译的用户输入。用户输入可对应于源数据102,且可包括一个或多个处理属性。如上所述,一个或多个元数据编译器104获取用户输入作为源数据,并将用户输入编译为元数据。用户输入可针对元数据编译器104中的任何一个或多个。例如,元数据编译器104可接受特定类型的源数据102,诸如仅包括源串的源数据或包括源串和规则的源数据。此外,通过检查用户输入,元数据编译器104可推断附加的约束。
仍参考图3,在说明性实施例中,元数据优化器和仲裁器106获取抽象元数据并生成标准化的抽象元数据。如将在以下更详细描述地,元数据优化器和仲裁器106过滤来自一个或多个编译器104的元数据以移除冗余约束和/或不兼容约束。投影组件110获取抽象元数据,并将元数据投影到目标串上。如上所述,在说明性实施例中,元数据包括对应于评估准则的一个或多个约束,以及可映射到目标串的一个或多个锚点。投影元数据涉及根据相应的锚点将一个或多个约束施加到目标串上。为验证的目的,目标串可以是源串。
确认组件108获取投影后的元数据,并针对一个或多个约束来确认串。在替换实施例中,确认组件108可针对抽象元数据来确认串。针对元数据来确认串涉及确定串是否满足对应于包括在元数据中的约束的评估准则。在说明性实施例中,如果任何相应的评估准则未得到满足,则串未被确认。在替换实施例中,如果任何相应的评估准则未得到满足且导致错误的生成,则串未被确认。例如,某些失败的评估准则可能导致警告的生成,这可阻止确认串。创作用户界面302可从确认组件108获取确认过程的结果,并向用户显示经确认的串。在说明性实施例中,根据相应的约束来标记串。例如,可标记串来向用户显示串的哪些部分满足约束而哪些部分不满足约束。此外,可标记串来向用户警告错误的位置。例如,可标记源串中的句法错误。在说明性实施例中,串可被自动更正,使得它满足相应的约束。在替换实施例中,可向用户显示所建议的修改以供选择。将在以下更详细讨论串的标记和显示过程。
现在参考图4,将描述操作环境100各个组件用于本地化串的交互。在说明性实施例中,创作用户界面302可获取供一个或多个元数据编译器104编译的用户输入。如上所述,元数据优化器和仲裁器106从一个或多个元数据编译器获取抽象元数据,并生成标准化的抽象元数据。投影组件110获取抽象元数据和包括来自翻译用户界面402的目标串的用户输入,并将元数据投影到目标串上。在说明性实施例中,目标串是用户期望确认和翻译的串。确认组件108针对投影后的元数据确认目标串。在替换实施例中,确认组件108可获取抽象元数据和目标串,并使用抽象元数据来确认目标串。此外,确认组件108可检查源串和相应的目标串,并检查在两个串上存在同一组保证。
翻译组件404获取确认过程的结果,并翻译经确认的目标串。更正组件112可获取翻译后的结果,并可修改翻译,使其满足相关联的元数据。此外,翻译用户界面402可获取更正后的结果并向用户显示更正后的翻译。翻译用户界面402可使用相关联的元数据来显示串以标记串的部分。将在以下更详细讨论标记串供向用户显示。
在说明性实施例中,翻译用户界面402可从确认组件108获取确认结果。此外,翻译用户界面402可显示标记后的串,使得用户可修改串,以使串满足相关联的约束。此外,可向用户呈现所建议的可选修改,使得用户可选择要应用哪些修改。例如,所建议的可选择修改可作为自动补完来呈现。在说明性实施例中,翻译用户界面402可从翻译组件404获取翻译后的结果。此外,翻译用户界面402可采用对应于相关联的元数据的标记来向用户显示翻译后的串。用户可修改翻译后的串,以使其满足相关联的约束。在说明性实施例中,翻译组件404可对应于自动翻译组件116、机器翻译组件118或人工翻译组件120。此外,翻译组件404可利用伪本地化技术来提供伪本地化的串。将在以下更详细讨论伪本地化技术。在说明性实施例中,系统的组件可以是分布式的。例如,用户界面302和402可存在于客户机上,而一个或多个编译器组件104可存在于服务器上。或者,用户界面302和402和一个或多个编译器组件104可存在于同一机器上。
现在参考图5A,在说明性实施例500中,元数据包括对应于评估准则的一个或多个约束502、504、506、508、510、512和514。约束可包括可用于将一个或多个约束502、504、506、508、510、512和514投影到串524上的一个或多个锚点520、518、516和522。在说明性实施例中,串524可对应于诸如“CALCULATOR.EXE(计算器)”的文件名。约束1.1和1.2(502和504)可用于评估串524中锚点520与522之间的部分。约束2.1、2.2和2.3(506、508和510)可用于评估串524中位于锚点520与518之间的部分。约束3.1和3.2(512和514)可用于评估串524中位于锚点516与522之间的部分。
在说明性实施例中,多个约束可置于锚点之间。另外,约束是可组合的,因此允许初始一小组约束表示大量概念或假设。例如,存在可用于锁定串的一部分的若干规则,同时可使用单个约束来实现锁。因此,每一规则当被编译时可使用该单个锁约束来实现锁。此外,说明性元数据可用于处理在诸如ASCII字符集或Unicode字符集的任何字符集中编码的串。
可在串524的元素之前或之后放置这一个或多个锚点520、518、516和522。例如,锚点520被放置在元素“C”501之前。类似地,锚点518被放置在元素“R”503之后且元素“.”505之前,而锚点516被放置在元素“.”505之后且元素“E”507之前。同样地,锚点522被放置在元素“E”509之后。在说明性实施例中,串中的元素对应于字符,诸如Unicode字符。或者,串中的元素可对应于码点,诸如Unicode码点。
在说明性实施例中,任何锚点可被松锚定或硬锚定到串中任何元素之前或之后的点。硬锚定到串上的点的锚点被固定于该点。相反地,松锚定的锚点可在串上点的范围内移动。例如,约束可被锚定到开头锚点和结尾锚点。如果在松开头锚点和松结尾锚点之间找到的任何序列可满足相应的评估准则,则锚定到这两个锚点的约束评估为“真”。相反地,如果在硬开头锚点开始并在硬结尾锚点结束的序列满足相应的评估准则,则锚定到该开头锚点和该结尾锚点的约束评估为“真”。此外,如果串524内的任何序列满足约束,则未锚定的约束评估为“真”。此外,约束可按照一种方式锚定到一个锚点,并按另一方式锚定到另一锚点。对于本申请中的术语而言,将约束描述为硬锚定到锚点等效于将约束描述为锚定到硬锚点。类似地,将约束描述为松锚定到锚点等效于将约束描述为锚定到松锚点。各种类型的锚定的示例将在以下提供。
在说明性实施例中,一个或多个约束502、504、506、508、510、512和514在运行时被投影到串524上。此外,可在运行时评估这一个或多个约束502、504、506、508、510、512和514。编译来自源数据的一个或多个约束502、504、506、508、510、512和514以及一个或多个锚点520、518、516和522与投影和确认约束相比是更计算密集的。从而,允许在运行时针对串投影和确认约束而不要求重新编译提供对串的更高效处理。在说明性实施例中,这一个或多个约束502、504、506、508、510、512和514不能在串实际无效的情况下按照确认串的方式被投影到该串上。
现在参考图5B,在说明性实施例550中,可使用约束552、556、558、560和562来确认串525。例如,串525可以是计算机系统中必须遵循指定的约束552、556、558、560和562才能有效的文件名的代表。在确认串525之前,可使用锚点516、518、520和522将约束552、556、558、560和562施加到串525上。例如,投影组件110可根据锚点516、518、520和522将约束552、556、558、560和562施加到串525上。在说明性实施例中,约束552、556、558、560和562可使用以下过程被投影到串上:
(1)将串的开头标识为锚点520。
(2)将串的结尾标识为锚点522。
(3)添加要求串包含元素“.”(点)的序列的约束552。
(4)将点的开头标识为锚点518。
(5)将点的结尾标识为锚点516。
(6)添加锚定到锚点520和518、要求子串具有至多8个元素的约束556。
(7)添加锚定到锚点520和518、要求子串具有至少1个元素的约束556。
(8)添加锚定到锚点520和518、包含文件名的无效元素(星号、点、空格等)的列表的约束560。
(9)添加锚定到锚点516和518、要求子串为元素“exe”(大小写不敏感)的序列的约束562。
以此方式,可使用简单的一小组约束来构建“复杂”约束。在说明性实施例中,用户可通过将对应于每一约束的规则输入到创作用户界面302中并通过图3所示的说明性操作环境100来运行约束来构建上述“复杂”文件名约束。在另一实施例中,用户可简单地将串输入到创作用户界面302中,一个或多个元数据编译器104将该串解释为文件名并使用它来生成图5B中所述的一组约束。在又一实施例中,用户可输入表示文件名和一组属性的源串,这组属性指示一个或多个元数据编译器104生成对应于文件名的一组约束。在又一实施例中,用户可输入表示文件名和规则的源串,诸如{FILENAME(文件名)},它将编译为约束552、556、558、560和562。
图5B中所示的示例性约束552、556、558、560和562可用于确认串525。例如,确认组件108可利用约束552、556、558、560和562来确认串525。如上所述,所投影的约束552、556、558、560和562可被硬锚定、松锚定或不锚定至串525。在说明性实施例中,用于施加约束的锚定的类型由相应的评估准则确定。约束552是可不锚定至串525的约束的示例。不锚定至串525的约束必须与锚点520在其左侧距结尾离开至少0字符,并且必须与锚点522在其右侧离开头至少0字符。因此,如果串525的某一部分满足约束,则未锚定的约束评估为“真”。在说明性实施例中,因为串中在锚点518和516之间的部分满足约束552,约束552评估为“真”。
未锚定的约束等效于松锚定至串525的开头且松锚定至串525的结尾的约束。松锚定的约束允许在串中满足约束的部分与其锚点之间存在或插入元素。例如,要求在锚点520和518之间包含序列“CUL”的约束可被松锚定至锚点520并松锚定至锚点518。对该示例性约束的每一端的松锚定允许串525在即使在约束的开头和锚点520之间存在序列“CAL”且在约束的结尾和锚点518之间存在序列“AT”的情况下也满足该约束。
在说明性实施例中,约束556是硬锚定至锚点520且硬锚定至锚点518的约束的示例。将约束硬锚定至锚点禁止元素出现在锚点与约束之间。当在锚点520与518之间包含8个或以下元素时,约束556得到满足。因为在锚点520与518之间包含的序列正好包含8个字符,该约束得到满足。如果该约束未被硬锚定至锚点520和518,则在锚点和约束之间可能存在其他元素,因此在其中在锚点520与518之间的序列包含8个以上的元素的情况中,可满足该约束。约束558是可被硬锚定至锚点520且可被硬锚定至锚点518的约束的示例。当在锚点520与518之间包含一个或多个元素时,约束558得到满足。因为在锚点520与518之间包含的序列包含8个字符,且1<8,约束558得到满足。在替换实施例中,约束558可被硬锚定至锚点520且松锚定至锚点518。
继续参考图5B,约束560被硬锚定至锚点520且硬锚定至锚点518。如果锚点520与518之间的序列中的每一元素不等于星号、句点或空格,则约束560评估为“真”。因为在锚点520与518之间的序列中没有出现受限的项目,所以约束评估为“真”。约束562被硬锚定至锚点516且硬锚定至锚点522。此外,如果锚点516与522之间的序列等于序列“EXE”(大小写不敏感),则约束562评估为“真”。因为锚点516与522之间的序列等于“EXE”,所以约束562评估为“真”。尽管在图5中未示出,但要求串525以序列“.EXE”结束的约束可被硬锚定至锚点522,且或者在开头不锚定或者松锚定至锚点520。相反地,要求串525以序列“CAL”开始的约束可被硬锚定至锚点520,且或者在结尾不锚定或者松锚定至锚点522。
在说明性实施例中,在串上同一点处可存在多种类型的锚点。例如,锚点522可对应于松锚点和硬锚点。在说明性实施例中,约束552可被松锚定至锚点522,而约束562可被硬锚定至锚点522。
在说明性实施例中,图5B描绘了可如何修改来自图5A的串524,使其满足示例性约束552、556、558、560和562。例如,串524可由更正组件112修改,使得约束552、556、558、560和562得到满足。可在创作用户界面302或翻译用户界面402根据串上的标记来修改串524。此外,串525(“CALCULAT.EXE”)可以是用户将串524(“CALCULATOR.EXE”)输入到翻译用户界面402并针对约束552、556、558、560和562来确认和更正串524的结果。约束可被配置成它们是大小写敏感或大小写不敏感的。例如,约束562可被配置成大小写敏感的,且仅匹配序列“EXE”。或者,约束562可被配置成大小写不敏感的,且将与组合拼为“exe”的大写和小写字符的任何组合匹配。
现在参考图5C,可使用约束552、556、558、560和562来试图确认串524。在说明性实施例中,用户可将串524输入到翻译用户界面402中,并使用约束552、556、558、560和562来试图确定串524是否是有效文件名。尽管约束552、558、560和562评估为“真”,但约束556评估为“假”,因此串524不是有效的。在说明性实施例中,不可能按照使无效的串有效的方式针对串施加一组约束。因此,用户可指导针对要确认的串施加约束。这允许编译在运行时之前进行,而施加和确认可在运行时执行。在典型的环境中,编译比施加和确认在计算上要昂贵得多,因此可通过在运行时之前执行编译来实现显著的效率。
现在参考图5D,若干约束596、590、586、574、576、578和584可被投影到示例性串572上,并协助处理串572。在说明性实施例中,约束596将串572中第一冒号594之前的部分限于最大255个元素。以类似方式,约束590将串572中第三冒号592之后且第四冒号582之前的部分限于最大10个元素。类似地,约束586将串572中第四冒号582之后的部分限于最大35个元素。因为每一子串包含少于相关联约束所指定的约束的最大数目,每一最大长度约束596、590和586得到满足。约束574、578和584禁止各个相关联子串中的任何元素包含“:”(冒号)。因为没有子串包含冒号,约束574、578和584得到满足。约束576和588是防止相应的序列被本地化的锁约束。因此,锁576防止子串“:12:03:”被本地化,而锁588防止第四冒号582被本地化。
尽管图5A-5D描绘了英语的串,它是从左往右书写的,但可以理解,本发明可处理并翻译使用任何语言的资源。例如,本发明知道从右往左的语言,诸如阿拉伯语和希伯来语,并对其适当工作。在说明性实施例中,与显示视图相对地,本发明对存储器中串的内部描述进行操作,以便适当处理使用任何语言的串。
在说明性实施例中,可使用规则来生成元数据。例如,除源串以外,用户可使用创作用户界面302来输入规则。在说明性实施例中,可将规则编译成包括对应于评估准则的一个或多个约束和一个或多个相应的锚点的元数据。此外,可使用元数据来确认串。可使用若干不同类型的规则来生成约束。例如,规则集(或指令集)可包括对应于固定占位符、编号占位符、转义字符、转义占位符字符、无效字符、有效字符、与可用于开始或结束串的序列有关的限制、以及与必须在串中出现的序列有关的限制的规则。此外,规则集可包括拆分规则和子串规则。
在说明性实施例中,占位符可具有特殊含义,且类似于在显示之前需要由其值来替换的变量。占位符一般不由翻译组件404翻译。例如,一组约束可用于防止相应的占位符被翻译。在说明性实施例中,固定占位符对应于特定类型。例如,固定占位符可由序列,诸如‘%s’或‘%d’表示。此外,在显示固定占位符之前,可用由固定占位符所指定的类型的值来替换它。例如,可用串来替换类型‘%s’的固定占位符,而可用整数来替换类型‘%d’的固定占位符。在说明性实施例中,源串中的固定占位符不能与源串中的另一占位符交换。此外,固定占位符以源串中出现的相同次序出现在翻译中。因为固定占位符的次序在翻译中得到保留,固定占位符出现的次数也隐式保留了。
在说明性实施例中,编号占位符对应于索引。此外,编号占位符可在源串中交换和重复。此外,编号占位符可在翻译中以任何次序存在。例如,编号占位符‘{0}’在源串中可出现在编号占位符‘{1}’之前,但在翻译中可出现在编号占位符‘{1}’之后。在说明性实施例中,固定占位符和编号占位符可在相应占位符应出现的任何位置由用户插入到串中。然而,在实际中,如果目标串中固定占位符的计数不同于相应的源串中固定占位符的计数,则目标串不是有效的。
在说明性实施例中,规则可指示要转义的字符或字符序列。例如,字符‘\’在串内可能具有特殊含义,因此应被转义,诸如通过在字符前加另一‘\’。在说明性实施例中,创建转义字符约束的句法是{EscapeChars(转义字符),′x=yy′}形式的,其中‘x’是不能存在于串中的字符的序列,而‘yy’是应代替‘x’使用的字符的序列。此外,在说明性实施例中,如果‘yy’为空,则相应的‘x’参数不能存在于串中。类似规则可指示要在除由特定的一组约束覆盖的区域内(诸如由占位符定义的一组约束)以外的串或子串内转义的字符或字符序列。该规则可防止用户在串中意外添加占位符。
在说明性实施例中,规则可对应于强制串或子串仅包含一组字符的约束。字符可被定义为正则表达式范围、一组字符或代码页。相反地,规则可对应于强制串或子串不包含一组字符的约束。例如,图5B的约束560可由这样的规则生成。规则也可对应于验证串以指定值开始、包含指定值、以指定值结束的约束。例如,在说明性实施例中,图5B的约束552和562可分别从对应于验证串是否包含或以指定字符序列结束的约束的规则编译。
在另一说明性实施例中,也可使用拆分规则来根据指定参数将串分成子串。拆分规则保护串中由参数覆盖的区段,并要求这些区段在相应的翻译中存在。此外,串中未由参数覆盖的区段可用作子串。此外,所找到的子串可在其他规则中用作子串参数。其他规则可依赖于拆分规则,因此拆分规则可在使用子串参数的任何规则之前处理。
在另一说明性实施例中,也可使用子串规则来根据指定参数将串分成子串。子串规则保护串中未由参数覆盖的区段,并要求这些区段在相应的翻译中存在。此外,串中由参数覆盖的区段可用作子串。以类似于拆分规则的方式,所找到的子串在其他规则中可用作子串参数。其他规则可依赖于子串规则,因此子串规则可在使用子串参数的任何规则之前处理。
在说明性实施例中,子串和位置参数可与规则一起使用以生成具有相应锚点的约束。位置参数实质上向用户展示了串中的锚点。此外,用户可指定参数是大小写敏感、大小写不敏感还是正则表达式。此外,可在规则内组合多种类型的参数。此外,可由数字值或串值来表示文化参数。
在说明性实施例中,位置参数可用于指定串中约束施加的部分。位置参数可使用以下句法:(s+|e-)x..(s+|e-)y。在该示例性句法中,‘x’指定串内的开头位置,而‘y’指定结尾位置。此外,‘s+’和‘e-’是可任选修饰符,它指定位置是自串的开头起或自结尾起且该位置锚定于该地点。参数可对串中字符之间的虚拟分隔符操作。例如,参数‘s+0’指示串中第一字符之前的位置。相反地,参数‘e-0’指示串中最后字符之后的位置。为了指定覆盖串中第一字符的位置,可使用参数‘s+0..s+1’。作为具有位置参数的规则的示例,规则{ValidStrings(有效串)=s+0..s+2,"He"}创建了其中前两个字符必须为‘He’的相应的串上的约束。
在说明性实施例中,子串参数可用于指定已根据划分串的规则生成的子串。例如,{split(拆分)}规则和{Substring(子串)}规则可用于将串分成子串。子串可使用基为0的索引编号,从原始未划分的串的开头起计算。子串参数可使用句法s‘x-y’,其中x是第一子串,而-y是可任选的且描述子串的范围。此外,通过使用与非负数相对的文字字符‘x’,‘x’由原始串中找到的最后一个子串替换。或者,通过使用子串参数“s′*′”,规则应用于所有子串。作为可如何使用子串参数的示例,如果用户将串“Excel files|*.xls|All Files|*.*”以及规则{Split="|"}和{Lock(锁)=s′1′,s′3′}输入到创作用户界面302,则串将在‘|’字符上拆分。此外,由拆分规则生成的第一和第三子串——‘|*.xls|’和‘|*.*’根据锁定指令将该不会被本地化。
图6是根据本发明的一方面示出可由图3所示的说明性操作环境100实现的源数据处理例程600的流程图。在框602,一个或多个元数据编译器104获取源数据。在说明性实施例中,源数据是来自创作用户界面302的用户输入形式的。此外,源数据可包括源串。此外,源数据可包括属性,诸如指令、附加资源信息和/或推断的限制。在说明性实施例中,外观(facade)组件可基于源数据的特征指导源数据从创作用户界面302前往适当的源数据编译器。在框604,源数据被编译成元数据。在说明性实施例中,元数据可包括对应于评估准则的一个或多个约束以及可用于将约束投影到串上的一个或多个锚点。
在框604,元数据优化器和仲裁器106对元数据标准化。图8是根据本发明的一方面由元数据优化器和仲裁器106实现的标准化子例程800的流程图。在框802,元数据优化器和仲裁器106获取抽象元数据。在说明性实施例中,抽象元数据可从一个或多个元数据编译器104获取。在框804,元数据优化器和仲裁器106将冗余约束缩减成单个等效约束。例如,如果目标串上的一个约束指定20个元素的最大长度,而目标串上的另一约束指定最大长度10,则元数据优化器和仲裁器106可将这两个约束缩减为指定最大长度为10的单个等效约束。元数据优化器和仲裁器可进行这种缩减,因为包含少于10个元素的任何较短的串也将包含少于20个的元素。
在框806,元数据优化器和仲裁器执行冲突解决。冲突解决可包括解决多个约束之间的不兼容性。例如,一个约束可指定最大长度10,而另一约束指定最小长度20。显然,没有单个串可同时满足这些约束,因此约束是不兼容的。元数据优化器和仲裁器106可解决不兼容性。在说明性实施例中,优化器106通过简单地挑选一个约束并丢弃另一个来解决冲突。此外,元数据优化器和仲裁器106可提供正丢弃不兼容约束的警告。或者,用户或管理员可决定要保留哪个约束。在说明性实施例中,不兼容性可基于与源或目标串相关联的其他属性解决。不兼容和/或冗余约束可由多个元数据编译器104生成或可由单个元数据编译器104生成。在说明性实施例中,元数据优化器和仲裁器106对于输入不作假设。例如,优化器106不假设来自单个编译器的元数据会没有不兼容或冗余的约束。在框808,子例程800返回至例程600。
回到图6,在框608,投影组件110将元数据投影到串上。串可以是由用户在翻译用户界面402输入的目标串。此外,元数据可以是从元数据优化器和仲裁器106获取的标准化、抽象元数据。在说明性实施例中,将元数据投影到串上涉及根据相应的一个或多个锚点将约束及其相关联的评估准则施加到串上。例如,如图5B中所示,约束552、556、558、560和562可使用锚点520、518、516和522投影到串“CALCULAT.EXE”525上。
在框610,确认组件108针对投影后的元数据确认串。在说明性实施例中,确认约束涉及评估串中约束所映射的部分以确定所映射的部分是否满足对应于约束的评估准则。例如,通过确定串中锚点520与518之间的部分是否具有8个以下的元素来评估图5B中的约束556。因为串中映射约束556的部分(“CALCULAT”)具有8个以下的元素,因此约束评估为“真”。在说明性实施例中,确认组件108继续处理与串相关联的其他约束,直到评估了所有约束。此外,在说明性实施例中,如果所有相关联的约束评估为“真”则串有效。如果任何约束评估为“假”,则串不是有效的。然而,如果某些约束未得到满足,串可能有效。例如,如果失败的约束生成警告消息而非错误消息,则相应的串仍可以是有效的。
在框612,可向用户显示经确认的串以及用于确认串的元数据。在说明性实施例中,串和组合的元数据可在创作用户界面302上显示。此外,元数据可用于标记串,使得用户可确定串的哪些部分有效而哪些部分不是有效的。将在以下关于图12-15更详细讨论对串的标记和显示。在框614,例程600终止。
图7是根据本发明的一方面示出可由图4所示的说明性操作环境100实现的目标数据处理例程700的流程图。在框702,投影组件110获取目标数据和元数据。在说明性实施例中,投影组件110可从翻译用户界面402获取目标数据。此外,目标数据可包括目标串。此外,目标数据可包括对应于串的属性。在说明性实施例中,投影组件110可从元数据优化器和仲裁器106获取标准化的抽象元数据。或者,投影组件110可从数据存储获取元数据。
在框704,投影组件110将元数据投影到目标串。在图5B-5D中描绘了具有投影后的元数据的串的示例。在框706,确认组件108确认目标串。在说明性实施例中,在框702获取的元数据可包括可用于确认特定类型的串(诸如文件名)的约束,且目标数据可包括要确认遵循该特定类型的串的要求的串。
继续参考图7,在框708,翻译组件404翻译目标。锁约束可被映射到目标串的一个或多个部分,且因此限制对串的一个或多个部分进行翻译。例如,占位符限制可防止目标串中的相应占位符被翻译。在说明性实施例中,串可从任何源语言翻译成任何目标语言。此外,翻译组件404可执行串的伪本地化。将在以下更详细讨论伪本地化。在框710,可更正翻译后的目标。例如,翻译后的目标串可能不满足包括在投影后的元数据中的约束。不满足相关联的约束的串可被修改,以使修改后的串满足约束。例如,可通过删除“OR”来修改来自图5A的串524以遵循图5B中所示的约束552、556、558、560和562。在框712,向用户显示翻译和相关联的元数据。在说明性实施例中,可在翻译用户界面402上显示翻译。此外,可使用相关联的元数据来标记串。对串的标记将在以下更详细讨论。在框714,例程700终止。
图9是描绘在翻译之前将数据从一个或多个资源转换成资源中立格式的框图900。在说明性实施例中,串“FOO{0}”可与资源A902相关联。此外,来自“FOO{0}”的子串“{0}”可与占位符限制相关联。占位符限制可防止串内的相关联占位符被翻译。串“FOO%1”可与资源B904相关联。此外,来自“FOO%1”的子串“%1”可与占位符限制相关联。在说明性实施例中,资源A902可与一个特定平台相关联,而资源B可与不同的平台相关联。
框906描绘了将串“FOO{0}”和“FOO%1”转换成资源中立格式。在说明性实施例中,相应的占位符“{0}”和“%1”可被转换成资源中立形式(例如,“<PH\>”)。在框906与908之间,可执行串的伪翻译以生成串“
Figure A200780014260D00221
<PH\>”,这在框908描绘。占位符限制可防止占位符(“<PH\>”)被伪本地化。在框910,串“f
Figure A200780014260D00231
<PH\>”可被转回资源相关形式“f
Figure A200780014260D00232
{0}”,这是依赖于资源A的。类似地,在框912,串“f
Figure A200780014260D00233
<PH\>”可被转回资源相关形式“f
Figure A200780014260D00234
{0}”,这是依赖于资源B的。通过在翻译或对串执行其他动作之前将资源相关串转换成资源中立格式,可使得翻译或处理代码更简单,因为代码仅需处理单个资源中立格式的数据。在说明性实施例中,资源中立化可用于翻译仅在锁定部分上不同的串。此外,占位符和转义字符是资源相关的,且可被变换成资源中立形式。
图10是根据本发明的一方面示出由翻译组件404实现的模糊例程1000的流程图。在框1002,翻译组件404获取已被投影到串上的元数据。在框1004,可对串执行资源格式中立化。如上关于图9所述,资源格式中立化可用于将串中资源相关部分转换成单一的资源中立格式。在框1006,生成随机内容。随机内容可表示投影后元数据中所包括的串的翻译后版本。
在框1008,在框1002获取的元数据被投影到随机内容上。此外,在框1010,投影后的元数据可用于修改随机内容,使得随机内容满足所投影的约束。投影后的元数据可包括占位符和转义字符,它们被插入到随机内容中使得随机内容满足所投影的约束。在框1012,被插入随机内容使得随机内容可满足所投影的约束的任何资源中立约束被转换成资源相关形式。可使用模糊例程1000来生成满足与源串相关联的元数据的随机内容。以此方式,模糊例程1000可创建可用于测试目的的串的各种伪翻译。在框1014,例程1000终止。
图11是根据本发明的一方面示出由元数据编译器104实现的正则表达式转换例程11000的流程图。在说明性实施例中,可将正则表达式转换成包括对应于评估准则的一个或多个约束和一个或多个相应的锚点的元数据。将正则表达式转换成元数据可简化元数据标准化和翻译过程。在框1102,一个或多个元数据编译器104从创作用户界面302获取正则表达式和源串。例如,元数据编译器104可从创作用户界面302获取诸如“This is aa file(这是aa文件)”的源串和诸如{Regex(正则表达式)="a{2}"}的正则表达式。正则表达式在本领域中公知,且一个或多个元数据编译器104可用于处理任何正则表达式。在框1104,一个或多个元数据编译器104可解析正则表达式,使得包括一个或多个约束和一个或多个相应的锚点的元数据可从正则表达式得到。
继续参考图11,在框1106,针对源串匹配元数据表达式。在框1108,约束可被投影到源串上。使用示例正则表达式{Regex="a{2}"}和示例源串“This isaa file”,可对源中两个连续的‘a’字符的首次出现施加锁定约束。因此,可对源串“This is aa file”中的‘aa’施加锁定约束。在另一示例中,一个或多个元数据编译器104可获取要针对示例性源串“This is abbc file(这是abbc文件)”匹配的示例性正则表达式{Regex="a[abc]{3}"}。可解析该示例性正则表达式以创建对‘a’的首次出现继之以为‘a’、‘b’或‘c’中任何一个的三个字母的锁定约束,加上对后续的三个字符必须是‘a’、‘b’或‘c’的有效字符约束。另外,长度为3的最大长度约束和长度为3的最小长度约束将覆盖同一区段。将得到的约束与示例性源串“This is abbc file”匹配将创建对‘a’的锁定约束和对源串‘bbc’部分的有效字符约束、最大长度约束和最小长度约束。在示例性实施例中,因为源串满足所有约束,源串有效。在框1110,例程1100终止。
回来参考图5D,在说明性实施例中,拆分规则可用于正则表达式参数以生成某些所示约束。例如,如果用户想要生成使得仅翻译串572的文本区段的约束,则用户可使用正则表达式来拆分串。可使用诸如{Split=r":[0-9:]*:?"}的示例性拆分规则来执行拆分。规则中的‘r’参数可指示以下是正则表达式。此外,一个或多个元数据编译器104将正则表达式转换成锁定约束576和588。此外,拆分规则生成子串“FLY FROM BOTTOM(从底下飞)”、“FLY(飞)”和“FROM BOTTOM(从底下)”。
如上所述,由拆分规则生成的子串在其他指令中可用作参数。因此,除以上拆分规则以外,在说明性实施例中,用户可使用根据拆分规则生成的子串输入其他规则作为参数。例如,为了生成约束574、578和584,用户可输入{InvalidChars(无效字符)=s′0-2′,":"}形式的规则。‘s’参数可指示该指令将生成子串0、1和2的约束,这些子串由以上拆分规则生成。因此,将上述拆分规则与无效字符规则组合,用户可限制串“FLY FROM BOTTOM”、“FLY”和“FROM BOTTOM”包含序列“:”,如由约束574、578和584所指示。此外,用户可使用根据拆分规则生成的子串作为规则中的参数以限制最大长度。例如,{MaxLen=s′0′,255}形式的规则可用于生成约束596。同样地,诸如{MaxLen=s′1′,10}的示例性规则可生成约束590,而诸如{MaxLen=s′2′,35}的示例性规则可生成约束586。
图6-11示出了可根据本发明的各个方面执行的各种方法。然而,可理解,本发明可执行与说明性附图所示相比或多或少的方法。此外,在各个附图中示出的方法可包括与说明性附图中所示相比或多或少的元素。
现在参考图12,将描述用于显示串1214以及相关联评论1202、建议值1228和1236以及翻译1244的说明性用户界面1200。在说明性实施例中,评论显示部分1206可用于获取并显示与串1214相关联的评论。评论可对应于属性。评论也可对应于一个或多个元数据编译器104可编译成约束的规则。例如,用户可将{MaxLen=17}形式的规则1204输入到评论显示部分1206,以指示最大长度约束对整个串操作并将有效串限于包含不超过17个元素。可通过将相应的规则输入到显示1200的评论显示部分1206来对串1214施加占位符、转义字符、有效和无效字符、子串、拆分和其他类型的约束。或者,元数据编译器104可通过分析串1214来推断约束。在说明性实施例中,评论也可包括资源信息。另外,可标记评论显示部分1206中的句法错误。此外,如果相应的串不能针对规则确认,则可标记规则。例如,在规则{MaxLen=17}1204中对数字“17”下划线,因为相应的串1214包含多于17个字符。
输入串显示部分1280可用于获取并显示串1214。在说明性实施例中,串的值1212被显示为“The saving of file %1!s!is %2!d! % complete (文件%1!s!的保存完成了%2!d!%)”1214。另外,可标记串1214以向用户警告串1214上的任何约束。例如,使词语“file(文件)”1216斜体以指示file受到术语约束。此外,“%1!s!”1218被下划线以指示占位符。如上所述,占位符防止串的相应部分被翻译。同样地,“%2!d!”也被下划线以指示占位符。如将在以下更详细讨论地,输入串显示部分1280中的占位符1218和1220在翻译显示部分1286中可不被翻译。
可用箭头1222标记百分号(“%”)以指示转义字符约束。然而,可使用任何类型的标记来标记与串1214相关联的任何约束。例如,可使用突出显示、彩色编码、下划线、粗体、斜体、特殊字符、阴影、箭头或任何其他技术来标记串1214。另外,可在资源中立级上编辑串。例如,串1214可被转换成资源中立格式并向用户显示供编辑。此外,串可按照对应于任何资源的格式显示和编辑。例如,对应于示例性资源A的串可被转换成资源中立格式,然后资源注入,使得串按照对应于示例性资源B的格式显示并可编辑。
可使用所建议值1226的显示部分1282和1284来显示输入串1214的所建议的修改1228和1236。例如,显示部分1282可建议百分号(“%”)1224被转义1234,因为某一资源将百分号1224解释为特殊字符。通过使百分号1234转义,资源将不会给予百分号其特殊含义。类似地,显示部分1284可建议百分号1224由词语“percent(百分)”1238替换。用户可选择一个或多个所建议的值1228和1236用于翻译。所建议的值1228和1236可具有比输入串1214或多或少的占位符。另外,所建议的值1228和1236中的元数据可使用各种标记技术在视觉上进行指示。所建议的值1228和1236可由翻译存储器、机器翻译或通过其他翻译技术来生成。此外,建议可随用户输入出现在显示1200上作为自动补完。
在说明性实施例中,输入串显示部分1280和所建议值显示部分1282和1284可与指示置信度级别1208和翻译可用性1210的图形相关联。例如,输入串1214可与指示机器翻译有多难的图形1290相关联。此外,图形1254可指示串可被翻译的语言的数目。例如,图形1254可指示翻译存储器具有特定输入串1214的0个相关联的翻译。每一建议值显示部分1282和1284也可与指示相应的相关联的建议值1228和1236机器翻译有多难的图形1292和1294相关联。图形1292在视觉上指示所建议的值“Saving file %1!s!.%2!d! %%complete.(保存文件%1!s!.%2!d!%%完成。)”1228以2种语言可用1252,而图形1294在视觉上指示所建议的值“Saving file %1!s!.%2!d! percentcomplete.(保存文件保存文件%1!s!.百分之%2!d!完成)”1236以15种语言可用1250。说明性用户界面1200也具有在视觉上指示哪一所建议的值以最多语言可用的图形1248。另外,翻译可用性图形1210和/或置信度级别图形1208可对应于特定的一个或多个市场。
在说明性实施例中,源串1214的翻译1244或所建议的值1228或1236可在翻译显示部分1286中提供。在说明性实施例中,翻译可以是示例(伪)翻译1242,它例如是使用以上关于图10描述的模糊技术来产生的。另外,翻译可以是翻译成任何语言的。一般,将不翻译占位符1220和1218。此外,占位符可与串的功能部分相关联。在说明性实施例中,翻译1244可以是首先生成随机内容然后根据包括一个或多个约束和一个或多个相应的锚点的元数据更正随机内容的模糊技术的结果。例如,占位符1220和1218可被放置在随机内容中以满足与相应的源串1214的元数据相关联的约束。
拼写检查可被并入显示1200内并建议对拼错的词语的更正。此外,在鼠标指针悬停在术语上时可描述术语。此外,所建议的值1228和1236与输入串1214之间的差异可被标记以向用户提供差异的快速视觉指示。另外,可提供可如何使用输入串的指示。此外,可标记术语以指示它们由某些组织或组核准。显示1200可被配置成使用户可开启或关闭功能部件。可使用标记来指示已在源串1214中替换的任何术语。如果串的某一部分与低置信度级别相关联,则该部分可用标记来指示。另外,可标记翻译1244中的功能问题,且可显示更正功能问题的建议。
现在参考图13-15,将描述用于将源语言的源串1504翻译成目标语言的目标串1516的说明性用户界面1300。如在覆盖图上所示,在高级别上,具有投影后的元数据1520的项目可被输入到输入串显示部分1502,元数据可被投影到目标串上,并被确认1522,且目标串1516可作为具有投影后的元数据1524的项目显示在翻译显示部分1512上。图13-15描绘了用户可利用来生成满足与相应的源串1504相关联的元数据的目标串1516的示例性迭代过程。
现在参考图13,表示投影后的元数据1526和1550的表可分别与源串1504和目标串1516相关联。表1526的列1536可指示元数据的类型,列1538可指示来自串的哪些数据是与元数据相关联的,且列1540可指示元数据中与串有关的位置。源串1504中的每一约束可由所显示的投影后的元数据表1526中的行表示。例如,行1528可指示可在源串1504的位置8与12之间找到具有相关联的标识“7”的术语约束。术语约束可对应于术语“file”1506。源串中的术语约束可映射到目标串中的等效术语。继续该示例,行1530可指示可在源串1504上的位置13与16之间找到由“{0}”表示的索引占位符1508。类似地,行1532可指示可在源串1510上的位置18与21之间找到由“{1}”表示的索引占位符1508。行1534可指示‘{’字符和‘}’字符受到转义字符约束,且可在源串1504内的任何位置找到。另外,行1534可指示特殊字符“{”可由序列“{{”转义,而特殊字符“}”可由序列“}}”转义。因为源串1504中的特殊字符“{”和“}”不是转义的,所以源串1504不包含任何转义字符,除了串内的占位符。除了显示约束在串上的位置,可显示与约束相关联的锚定的一个或多个类型。例如,占位符“{0}”1508和“{1}”1510可被松锚定至串1504的开头和结尾。可显示占位符1508和1510被松锚定至串的开头和结尾的指示。相反,转义字符1534可被硬锚定至串1504的开头和结尾。可显示转义字符约束1534被硬锚定至串的开头和结尾的指示。
仍参考图13,根据与源串1504相关联的元数据1526,各种标记可用作指示符。例如,可在源串1504中使用粗体字体以指示术语“file”1506受到术语约束。同样地,可使用粗体来标记第一索引占位符“{0}”1508和第二索引占位符“{1}”1510。然而,可使用任何类型的标记在视觉上向用户警告与串相关联的元数据。例如,斜体和其他类型的字体、较大或较小字体、彩色编码、显示上的外来字符、突出显示、下划线和阴影均可用于在视觉上衬托串中与元数据相关联的部分。
属性表1512和1514可分别与源1504和目标1516串相关联。属性表1512和1514除串的用途以外还可指示相关联的资源或平台。例如,串可在对话框中使用。此外,属性表1512和1514可指示平台的标识以及相关联的串的语言。如上所述,可使用资源中立化将串从一个平台上的语言翻译成另一平台上的不同语言。通过使用资源中立化,中立化的串可被翻译一次,然后串中资源中立的部分可被转换成资源相关的部分,使得可在若干不同资源上使用单一的翻译。因此,与若干资源相关串相对,仅翻译一个资源中立串。
可使用表1542来显示从表1526中显示的投影后的元数据拉出的抽象元数据。抽象元数据可针对进行确认的串进行放置。因为抽象元数据不与串相关联,表1542可不包括位置列1540。表1544可显示与翻译有关的信息。例如,可显示术语提供者和相关联的标识。列1546可显示相应术语1506的源和目标语言。另外,列1548可显示相应术语1506的源和目标值。也可显示源串1504中的其他术语所建议的翻译。从而,表1544可协助用户正确翻译术语。
如图13中所示,用户可通过将“Die Dat(该数据)”1516键入目标串显示部分1512来开始翻译源串1504的过程。“Dat”1552可用粗体标记,因为它可被识别为表1544中所显示的“file”1506的翻译的开头。另外,用户可利用表1550来确定哪些约束得到满足而哪些未得到满足。例如,表1550显示从源串收集到的元数据及其在目标串1516上的相应位置1540。因为,短语“Die Dat”1516不满足表1550中所示的约束的要求,位置列1540对每一相应约束显示“未找到”消息。此外,表1550可显示警告和出错消息1554、1556和1558。例如,行1554可显示指示所要求的术语“Datei(文件)”未被完整输入的警告消息。此外,行1556和1558可显示指示占位符“{0}”1508和“{1}”1510缺少的出错消息。使用这些警告和出错消息,用户可开始更正翻译1516。或者,可将所建议的更正显示为自动补完供用户选择。
如图14中所示,用户可继续输入源串1504的翻译1516。例如,用户可输入所需术语“file”1506的翻译1518。所翻译的术语1518可在目标串显示部分1512上的位置4和9之间标识,如行1576中所示。此外,索引占位符“{0}”1508可在目标串显示部分1512上的位置10和13之间标识,如行1578中所示。此外,可标识索引占位符“{1}”1570的开头。在说明性实施例中,因为索引占位符“{1}”1510未被正确输入,占位符在行1580中被标为“未找到”。或者,因为术语1570中的字符“{”是非转义的,且所需占位符缺少,可显示如行1574中所示的错误,指示术语1570无效。
仍参考图14,根据与目标串1516相关联的元数据1550,各种标记可用作指示符。例如,可使用粗体字体来指示在目标串1504中需要术语“Datei”1518。同样地,可使用粗体字体来标记第一索引占位符“{0}”1508。此外,当完全输入时可对应于约束的项目,诸如项目1570,也可用粗体字体标记。可使用任何类型的标记在视觉上向用户警告与串相关联的元数据。例如,斜体和其他类型的字体、较大或较小字体、彩色编码、显示上的外来字符、突出显示、下划线和阴影均可用于在视觉上衬托串中与元数据相关联的部分。
为了协助生成有效目标串1516,出错消息1572和1574可向用户警告串中不满足相关联元数据的部分。例如,行1572可向用户指示目标串1516缺少了占位符“{1}”1510。此外,行1574可向用户通知非转义的转义字符。因为转义字符具有特殊含义,它们可转义或对应于约束。用户可利用元数据1550和出错消息1572和1574来生成有效目标串1516。
图15描绘了其中有效目标串1516被输入目标串显示部分1512的说明性实施例。如上所述,目标串1516的项目1518、1508和1510可对应于约束且可用粗体标记。此外,可在列1540中描绘每一相应的项目的位置。例如,列1540指示可在目标串显示部分1512上的位置4与9之间找到所需术语“Datei”1518。同样,可在位置10与13之间找到索引占位符“{0}”1508,而可在位置28与31之间找到索引占位符“{1}”。另外,表1550中无出错和警告消息可指示已在目标串显示部分1512中输入了有效目标串1516。此外,如果标识了任何转义字符,则可在行1582列1540中提供转义字符的位置。
尽管示出和描述了本发明的各说明性实施例,但可以理解,可在其中作出各种改变而不背离本发明的精神和范围。

Claims (20)

1.一种用于处理源数据(102)的系统(100),包括:
可用于获取源数据并将所述源数据编译成元数据的至少一个编译器组件(104),其中所述元数据包括一个或多个约束(502),其中所述一个或多个约束对应于评估准则以及可映射到串的一个或多个锚点(516-522);
优化组件(106),可用于从所述至少一个编译器组件获取元数据并对所述元数据标准化;以及
一个或多个处理组件(108-122),可用于根据所述标准化的元数据对串执行操作。
2.如权利要求1所述的系统,其特征在于,所述一个或多个处理组件包括投影组件(110),可用于根据所述相应的锚点将所述一个或多个约束投影到所述串上。
3.如权利要求1所述的系统,其特征在于,所述一个或多个处理组件包括可用于针对所述一个或多个约束确认所述串的确认组件(108)。
4.如权利要求3所述的系统,其特征在于,所述确认组件获取投影后的元数据,并生成经确认的结果,其中所述确认组件使所述经确认的结果被显示。
5.如权利要求1所述的系统,其特征在于,所述一个或多个处理组件包括可用于修改所述串使得所述一个或多个约束得到满足的更正组件(112)。
6.如权利要求1所述的系统,其特征在于,所述一个或多个处理组件包括可用于根据所述一个或多个约束标记所述串的标记组件以及可用于在显示器上显示所标记的串的显示组件(114)。
7.如权利要求1所述的系统,其特征在于,所述系统还包括可用于生成所述串的翻译使得所翻译的串可满足所述一个或多个约束的翻译组件(404)。
8.如权利要求1所述的系统,其特征在于,标准化所述元数据包括合并重复约束以及解决冲突的约束之间的不兼容性。
9.一种用于处理源数据的系统(100),包括:
可用于获取源数据(102)并将所述源数据编译成元数据的至少一个编译器组件(104),其中所述元数据包括一个或多个约束(502),其中所述一个或多个约束对应于评估准则以及可映射到串的一个或多个锚点(516-522);
优化组件(106),可用于从所述至少一个编译器组件获取元数据并对所述元数据标准化;以及
翻译组件(404),可用于获取元数据和串作为输入并利用所述元数据来翻译所述串。
10.如权利要求9所述的系统,其特征在于,所述系统还包括投影组件(110),其中所述投影组件从翻译显示获取用户输入并从所述优化组件获取元数据,并生成投影后的元数据。
11.如权利要求9所述的系统,其特征在于,所述系统还包括确认组件(108),且其中所述确认组件获取投影后的元数据,并针对所述投影后的元数据确认所述串。
12.如权利要求9所述的系统,其特征在于,所述系统还包括更正组件(112),且其中所述更正组件从所述翻译组件获取翻译并使用元数据来修改所述翻译,且其中所述更正组件使所述修改后的翻译被显示。
13.一种具有用于处理源数据的计算机可读组件的计算机可读介质,所述计算机可读组件包括:
可用于获取源数据(102)并生成元数据的至少一个编译器组件(104),其中所述元数据包括一个或多个约束(502),其中所述一个或多个约束对应于评估准则以及可映射到串的一个或多个锚点(516-522);
优化组件(106),可用于对元数据标准化;以及
一个或多个处理组件(108-122),可用于根据所述一个或多个约束处理所述串。
14.如权利要求13所述的计算机可读介质,其特征在于,所述一个或多个处理组件包括投影组件(110),可用于根据所述相应的锚点将所述一个或多个约束投影到所述串上。
15.如权利要求13所述的计算机可读介质,其特征在于,所述一个或多个处理组件包括可用于针对所述一个或多个约束确认所述串的确认组件(108)。
16.如权利要求15所述的计算机可读介质,其特征在于,所述确认组件从所述优化组件获取抽象元数据,且其中所述确认组件使用所述抽象元数据确认所述串。
17.如权利要求13所述的计算机可读介质,其特征在于,所述一个或多个处理组件包括可用于更正所述串使得所述一个或多个约束得到满足的更正组件(112)。
18.如权利要求13所述的计算机可读介质,其特征在于,所述一个或多个处理组件包括可用于根据所述一个或多个约束标记所述串的标记组件以及可用于向用户显示所标记的串的显示组件(114)。
19.如权利要求13所述的计算机可读介质,其特征在于,所述计算机可读介质还包括可用于根据所述一个或多个约束翻译所述串的翻译组件(404)。
20.如权利要求19所述的计算机可读介质,其特征在于,所述翻译组件从确认组件(108)获取经确认的数据,且其中所述翻译组件生成翻译供向用户显示。
CNA2007800142602A 2006-04-21 2007-04-23 用于处理格式化数据的系统 Pending CN101438272A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/409,146 2006-04-21
US11/409,146 US7827155B2 (en) 2006-04-21 2006-04-21 System for processing formatted data

Publications (1)

Publication Number Publication Date
CN101438272A true CN101438272A (zh) 2009-05-20

Family

ID=38625679

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007800142602A Pending CN101438272A (zh) 2006-04-21 2007-04-23 用于处理格式化数据的系统

Country Status (4)

Country Link
US (1) US7827155B2 (zh)
KR (1) KR20090009806A (zh)
CN (1) CN101438272A (zh)
WO (1) WO2007124177A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653531A (zh) * 2014-11-12 2016-06-08 中兴通讯股份有限公司 数据提取方法及装置

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7665063B1 (en) 2004-05-26 2010-02-16 Pegasystems, Inc. Integration of declarative rule-based processing with procedural programming
US8924335B1 (en) 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US20090132232A1 (en) * 2006-03-30 2009-05-21 Pegasystems Inc. Methods and apparatus for implementing multilingual software applications
US8549492B2 (en) * 2006-04-21 2013-10-01 Microsoft Corporation Machine declarative language for formatted data processing
US8250525B2 (en) 2007-03-02 2012-08-21 Pegasystems Inc. Proactive performance management for multi-user enterprise software systems
US20090037830A1 (en) * 2007-08-03 2009-02-05 International Business Machines Corporation Software solution for localization of software applications using automatically generated placeholders
US7975217B2 (en) * 2007-12-21 2011-07-05 Google Inc. Embedding metadata with displayable content and applications thereof
US8843435B1 (en) 2009-03-12 2014-09-23 Pegasystems Inc. Techniques for dynamic data processing
US8468492B1 (en) 2009-03-30 2013-06-18 Pegasystems, Inc. System and method for creation and modification of software applications
US20110071899A1 (en) * 2009-07-08 2011-03-24 Niel Robertson Creating, Managing and Optimizing Online Advertising
JP5375413B2 (ja) * 2009-07-30 2013-12-25 富士通株式会社 データ変換装置、データ変換方法、およびデータ変換プログラム
US8495570B2 (en) * 2010-12-23 2013-07-23 Microsoft Corporation Resource deployment based on conditions
US8880487B1 (en) 2011-02-18 2014-11-04 Pegasystems Inc. Systems and methods for distributed rules processing
US20130055117A1 (en) * 2011-08-31 2013-02-28 Microsoft Corporation User interface validation assistant
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
WO2014058821A2 (en) * 2012-10-08 2014-04-17 Bantivoglio John Method and system for managing metadata
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
US11327640B2 (en) 2015-06-05 2022-05-10 Apple Inc. Providing complications on an electronic device
US10572571B2 (en) * 2015-06-05 2020-02-25 Apple Inc. API for specifying display of complication on an electronic watch
US10175866B2 (en) 2015-06-05 2019-01-08 Apple Inc. Providing complications on an electronic watch
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
US11327774B2 (en) * 2018-12-27 2022-05-10 Microsoft Technology Licensing, Llc Personalization of resource strings in a computing device
US11366818B2 (en) * 2019-11-21 2022-06-21 International Business Machines Corporation Context-aware dynamic content assist
US11740995B2 (en) * 2020-05-07 2023-08-29 Sap Se Source quality check service
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods
CN113609821B (zh) * 2021-06-30 2023-07-18 北京新氧科技有限公司 一种正则表达式转换方法、装置、设备及存储介质

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US699373A (en) * 1900-01-05 1902-05-06 Orion E Dyson Soft-tread horseshoe.
US5251130A (en) 1991-04-18 1993-10-05 International Business Machines Corporation Method and apparatus for facilitating contextual language translation within an interactive software application
US5152130A (en) * 1991-09-12 1992-10-06 Mcgrew James D Line splicing machine
US6278967B1 (en) * 1992-08-31 2001-08-21 Logovista Corporation Automated system for generating natural language translations that are domain-specific, grammar rule-based, and/or based on part-of-speech analysis
US5678039A (en) * 1994-09-30 1997-10-14 Borland International, Inc. System and methods for translating software into localized versions
JPH0981569A (ja) * 1995-09-12 1997-03-28 Hitachi Ltd 多カ国対応サービス提供システム
US5970490A (en) * 1996-11-05 1999-10-19 Xerox Corporation Integration platform for heterogeneous databases
US6092036A (en) * 1998-06-02 2000-07-18 Davox Corporation Multi-lingual data processing system and system and method for translating text used in computer software utilizing an embedded translator
US6275978B1 (en) * 1998-11-04 2001-08-14 Agilent Technologies, Inc. System and method for term localization differentiation using a resource bundle generator
US6492995B1 (en) * 1999-04-26 2002-12-10 International Business Machines Corporation Method and system for enabling localization support on web applications
US6735759B1 (en) * 1999-07-28 2004-05-11 International Business Machines Corporation Editing system for translating displayed user language using a wrapper class
US6393389B1 (en) * 1999-09-23 2002-05-21 Xerox Corporation Using ranked translation choices to obtain sequences indicating meaning of multi-token expressions
US7020618B1 (en) * 1999-10-25 2006-03-28 Ward Richard E Method and system for customer service process management
US7031956B1 (en) * 2000-02-16 2006-04-18 Verizon Laboratories Inc. System and method for synchronizing and/or updating an existing relational database with supplemental XML data
US6629313B1 (en) * 2000-06-29 2003-09-30 Microsoft Corporation In-line database access statements without a pre-compiler
US7860706B2 (en) * 2001-03-16 2010-12-28 Eli Abir Knowledge system method and appparatus
US6904563B2 (en) * 2001-04-05 2005-06-07 International Business Machines Corporation Editing platforms for remote user interface translation
US6954746B1 (en) * 2001-06-01 2005-10-11 Oracle International Corporation Block corruption analysis and fixing tool
KR20030000055A (ko) 2001-06-22 2003-01-06 황채환 전자석식 풍력 발전장치
KR100408523B1 (ko) * 2001-07-09 2003-12-06 삼성전자주식회사 메타데이터를 이용한 자동 화면 조정 장치 및 그 방법
US6993473B2 (en) 2001-08-31 2006-01-31 Equality Translation Services Productivity tool for language translators
US7174533B2 (en) * 2002-03-14 2007-02-06 Sun Microsystems, Inc. Method, system, and program for translating a class schema in a source language to a target language
EP1496701A4 (en) * 2002-04-12 2009-01-14 Mitsubishi Electric Corp METADATA EDITING DEVICE, METADATA REPRODUCTION DEVICE, METADATA DISTRIBUTION APPARATUS, METADA SEARCHING DEVICE, METADATA REPRODUCTION STATUS DISPLAYING DEVICE AND METADATA DISTRIBUTION METHOD
US8463617B2 (en) * 2002-06-03 2013-06-11 Hewlett-Packard Development Company, L.P. Network subscriber usage recording system
US7353165B2 (en) * 2002-06-28 2008-04-01 Microsoft Corporation Example based machine translation system
US20050125419A1 (en) * 2002-09-03 2005-06-09 Fujitsu Limited Search processing system, its search server, client, search processing method, program, and recording medium
US8301884B2 (en) * 2002-09-16 2012-10-30 Samsung Electronics Co., Ltd. Method of managing metadata
US20040078781A1 (en) * 2002-10-16 2004-04-22 Novy Ronald Stephen Algorithm for creating and translating cross-platform compatible software
GB0226778D0 (en) * 2002-11-18 2002-12-24 Hewlett Packard Co Using semantic web technology to enhance current business-to-business integration approaches
US7152073B2 (en) * 2003-01-30 2006-12-19 Decode Genetics Ehf. Method and system for defining sets by querying relational data using a set definition language
US20050050030A1 (en) * 2003-01-30 2005-03-03 Decode Genetics Ehf. Set definition language for relational data
US7424410B2 (en) * 2003-04-28 2008-09-09 The Mathworks, Inc. Applying constraints to block diagram models
US7139752B2 (en) * 2003-05-30 2006-11-21 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, and providing multiple document views derived from different document tokenizations
US7146361B2 (en) * 2003-05-30 2006-12-05 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, including a search operator functioning as a Weighted AND (WAND)
GB2424103A (en) * 2003-11-21 2006-09-13 Agency Science Tech & Res Method and system for validating the content of technical documents
WO2005106705A2 (en) * 2004-04-26 2005-11-10 John Francis Glosson Method, system, and software for embedding metadata objects concomitantly with linguistic content
US7386690B2 (en) * 2004-04-29 2008-06-10 International Business Machines Corporation Method and apparatus for hardware awareness of data types
US7269718B2 (en) * 2004-04-29 2007-09-11 International Business Machines Corporation Method and apparatus for verifying data types to be used for instructions and casting data types if needed
US7328374B2 (en) * 2004-04-29 2008-02-05 International Business Machines Corporation Method and apparatus for implementing assertions in hardware
US7895473B2 (en) * 2004-04-29 2011-02-22 International Business Machines Corporation Method and apparatus for identifying access states for variables
US20050251706A1 (en) * 2004-04-29 2005-11-10 International Business Machines Corporation Method and apparatus for data-aware hardware operations
US7313575B2 (en) * 2004-06-14 2007-12-25 Hewlett-Packard Development Company, L.P. Data services handler
US9286275B2 (en) * 2004-08-23 2016-03-15 Oracle America, Inc. System and method for automatically generating XML schema for validating XML input documents
GB0421297D0 (en) * 2004-09-24 2004-10-27 Univ Abertay Dundee Computer games localisation
US20060235715A1 (en) * 2005-01-14 2006-10-19 Abrams Carl E Sharable multi-tenant reference data utility and methods of operation of same
US20060235714A1 (en) * 2005-01-14 2006-10-19 Adinolfi Ronald E Enabling flexible scalable delivery of on demand datasets
US20060247944A1 (en) * 2005-01-14 2006-11-02 Calusinski Edward P Jr Enabling value enhancement of reference data by employing scalable cleansing and evolutionarily tracked source data tags
US20060235831A1 (en) * 2005-01-14 2006-10-19 Adinolfi Ronald E Multi-source multi-tenant entitlement enforcing data repository and method of operation
US7536640B2 (en) * 2005-01-28 2009-05-19 Oracle International Corporation Advanced translation context via web pages embedded with resource information
US7587415B2 (en) * 2005-03-14 2009-09-08 Microsoft Corporation Single-pass translation of flat-file documents into XML format including validation, ambiguity resolution, and acknowledgement generation
US20080177640A1 (en) * 2005-05-09 2008-07-24 Salih Burak Gokturk System and method for using image analysis and search in e-commerce
US7987087B2 (en) * 2005-06-15 2011-07-26 Xerox Corporation Method and system for improved software localization
US7853621B2 (en) * 2005-11-23 2010-12-14 Oracle International Corp. Integrating medical data and images in a database management system
US7983910B2 (en) * 2006-03-03 2011-07-19 International Business Machines Corporation Communicating across voice and text channels with emotion preservation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653531A (zh) * 2014-11-12 2016-06-08 中兴通讯股份有限公司 数据提取方法及装置
CN105653531B (zh) * 2014-11-12 2020-02-07 中兴通讯股份有限公司 数据提取方法及装置

Also Published As

Publication number Publication date
US7827155B2 (en) 2010-11-02
KR20090009806A (ko) 2009-01-23
US20070260584A1 (en) 2007-11-08
WO2007124177A2 (en) 2007-11-01
WO2007124177A3 (en) 2007-12-21

Similar Documents

Publication Publication Date Title
CN101438272A (zh) 用于处理格式化数据的系统
US7711546B2 (en) User interface for machine aided authoring and translation
JP5049280B2 (ja) ローカリゼーションデータの拡張可能xmlフォーマットおよびオブジェクトモデル
CN1967476B (zh) 在集成开发环境中进行伪翻译的方法和系统
US8171462B2 (en) User declarative language for formatted data processing
CN101694603B (zh) 基于Unicode的跨平台蒙古文显示及智能输入方法
WO2007013418A1 (ja) 複数自然言語のソフトウェア説明書生成システム
Garvin On machine translation: selected papers
CN100545841C (zh) 用于从非结构化描述生成结构化表示的系统和方法
US8549492B2 (en) Machine declarative language for formatted data processing
CA2360067A1 (en) Any-to-any component computing system
CN102053958A (zh) 上下文准确匹配
de Almeida Ferreira et al. RSL-PL: A linguistic pattern language for documenting software requirements
Kugler et al. Translator’s workbench: Tools and terminology for translation and text processing
US20070250528A1 (en) Methods for processing formatted data
Fischbach et al. Towards causality extraction from requirements
Zaki-Ismail et al. RCM-extractor: an automated NLP-based approach for extracting a semi formal representation model from natural language requirements
CN109344393B (zh) 一种主干语句的提取方法及系统
Lester iobes: A Library for Span-Level Processing
DeRespinis et al. The IBM style guide: conventions for writers and editors
CN113076133A (zh) 基于深度学习的Java程序内部注释的生成方法及系统
García et al. Improving understanding of dynamically typed software developed by agile practitioners
Georgiades et al. A novel software tool for supporting and automating the requirements engineering process with the use of natural language
Busemann Ten years after: An update on TG/2 (and friends)
Fraternali et al. Almost rerere: An approach for automating conflict resolution from similar resolved conflicts

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090520