当前位置: 首页 > 专利查询>微软公司专利>正文

语义编程语言和语言对象模型制造技术

技术编号:2920905 阅读:274 留言:0更新日期:2012-04-11 18:40
提供一种用于对自然语言软件应用程序进行编程的软件开发工具。该软件开发工具包括编程语言和编译器。编程语言具有用于便于自然语言编程的一组编程构造。编译器适用于采用包含所述一组编程构造的实例的软件程序,并产生软件应用程序。

【技术实现步骤摘要】

本专利技术涉及用于对自然语言的语义进行建模的方法。更为具体地,本专利技术涉及适合于对自然语言的语义进行建模用于软件应用程序开发的一组类型。
技术介绍
自然语言是由人类创造的语言(与计算机语言或其它人工语言不同),它包括全部习惯用语、话语或文本的假设和暗示。在自然语言处理的环境中,命令和控制系统处理自然语言话语或文本,并试图识别和解释该话语或文本,以导出可使用的解释。传统上,用于提供自然语言命令和控制的一种技术涉及对预先编码的命令的静态识别。例如,商业上可获得的语音一文本程序允许用户使用简单的命令发起预先编码的操作,例如save file(保存文件)。然而,除非使用了正确的命令,否则这种程序一般不能处理这些命令。换言之,编码成识别命令save file(保存文件)的应用程序不能正确地理解store file(存储文件)。类似地,问/答类型的应用程序一般包括预先编码的短语或术语,以便便于搜索和检索类型的功能。然而,为了成功,传统的实施方式要求在话语或文本中使用特殊的搜索项,因此不能充分地考虑人类语言的丰富性。对自然语言应用程序编程极其困难。一般地,编程者知道如何以计算机语言编码,但是几乎没有图解语句结构和/或进行语言分析的经验。而且,将为英语编码的自然语言软件应用程序扩展到对其它语言起作用不仅要求对软件应用程序重新编码,还要求对任何相关的语言分析引擎重新编码。这使得对自然语言应用程序进行编程变得极其困难,并可能代价非常高。
技术实现思路
在一个方面中,提供一种用于对自然语言软件应用程序进行编程的软件开发工具。该软件开发工具包括编程语言和编译器。该编程语言具有用于便于自然语言编程的一组编程构造。该编译器适用于采用包含所述一组编程构造的实例的软件程序以及产生软件应用程序。在一个可选的方面中,提供一种创建允许自然语言的软件应用程序的方法。从用于便于自然语言编程的一组编程构造中创建程序。该程序描述了依赖于自然语言输入的软件应用程序中的特征。该程序被编译成软件应用程序。在另一方面中,语言对象模型适用于对自然语言的语义元素进行建模。语言对象模型包括语言表达式的一组类型和类,设计这些类型来对语言表达式建模。在一个实施例中,该组类型中的每个类型对应于话语的语言上有含义的元素。在另一个方面中,计算机可读介质存储用于对自然语言建模的计算机可读数据结构。一组类型适用于将类表示为抽象对象。类表示分类化的语言表达式,可对应于自然语言话语的语义上有意义的部分。在另一个方面中,一种用于产生自然语言输入的语义解释的框架包括解释器和一组类型。该解释器适用于作为客户端应用程序和一个或多个分析引擎之间的中介,用以产生对客户端应用程序有效的自然语言输入的解释。该组类型适用于定义解释器与所述一个或多个分析引擎之间的交互。在另一个方面中,提供了用于将自然语言输入的解释例示成客户端应用程序的自然语言特征的框架。用与客户端应用程序相关联的说明模式来初始化解释器。解释器适用于接收自然语言输入,并与一个或多个自然语言分析引擎通信,以产生自然语言输入的解释。解释器适用于在客户端应用程序中例示出一个或多个解释。在另一个方面中,提供一种用于对计算机上的自然语言输入的语义进行建模的词汇语义结构。选择一组词汇语义类别来对自然语言输入的内容建模。一种方法将自然语言输入的内容关联到该组词汇语义类别中的一个或多个类别。在不同的实施例中,词汇语义结构跨语言、跨语言类别、跨应用程序、以及跨适用于产生某种类型的语法类别的系统,将自然语言输入规格化。在另一个方面中,提供一种用于创建允许自然语言的软件应用程序的方法。从用于便于自然语言编程的一组编程构造中创建程序。该程序描述了依赖于自然语言输入的软件应用程序中的特征。该程序被编译成软件应用程序。在另一个方面中,提供一种用于开发允许自然语言的软件应用程序的系统。可解析的类型定义语言元素的抽象表示和自然语言输入的语言元素之间的相互关系。解析语义定义用于解析允许自然语言的软件应用程序中的可解析的类型的实例的有效性的程序规则。在另一个方面中,提供一种用于确定允许自然语言的软件程序中的可解析的类型的实例的有效性的方法。汇编了列出自然语言输入的推荐的解释的推荐解释列表。每个推荐的解释具有一个或多个命令,以及映射到可解析的类型的非命令元素。与每个推荐的解释相关联的实例的有效性在允许自然语言的软件应用程序中确定。附图说明图1是可实施本专利技术的实施例的计算系统环境的示意图。图2是根据本专利技术的实施例的自然语言系统的简化框图。图3是图2的分析引擎与虚框示出的语言对象模型的简化框图。图4是根据本专利技术的实施例的执行发送邮件命令的处理的简化流程图。图5是根据本专利技术的实施例的类型解析的简化流程图。图6是根据本专利技术的实施例的命令解析的简化流程图。图7是根据本专利技术的实施例的构架解析的简化流程图。图8是根据本专利技术的实施例的约束子句解析的简化流程图。图9是根据本专利技术的实施例的实体解析的简化流程图。图10是根据本专利技术的实施例的智能系统的简化框图。图11是根据本专利技术的实施例的词汇语义结构的简化概念框图。具体实施例方式A.综述本专利技术是用于产生自然语言应用程序的语言对象模型(LOM)、语义框架、以及语义编程语言(SPL)。LOM与所使用的自然语言或所涉及的应用程序域(domain)无关地对语义话语进行建模。语义框架包括作为自然语言分析引擎和客户端应用程序之间的中介的运行时间(runtime)组件(解释器),以及定义了系统的所有组件之间的交互作用的性质的一组类型。SPL提供编程框架,用于与LOM和适用于对LOM起作用的自然语言分析引擎进行接口。SPL还可用于与其它语言对象模型接口。除了若干子过程和数据结构之外,本专利技术包括全过程和架构。为了更佳地理解本专利技术,介绍可用于本专利技术的一个示例性的环境。然而,应理解也可在各种其它系统和环境中使用本专利技术。B.示例性操作环境图1说明了可实施本专利技术的适用的计算系统环境100的例子。计算系统环境100仅仅是适用的计算环境的一个例子,不是对本专利技术的使用和功能范围的任何限制。不应把计算环境100解释成对示例性操作环境100中例示出的任一组件或其组合具有任何依赖性或要求。本专利技术可与各种其它的通用或专用计算系统环境或配置一起操作。可适用于与本专利技术一起使用的已知的计算系统、环境和/或配置的例子包括但不限于个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机、大型机、电话系统、包括上述系统或设备中的任意设备的分布式计算环境等等。可在计算机执行的诸如程序模块之类的计算机可执行指令的上下文环境中描述本专利技术。一般地,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。本专利技术还可在分布式计算环境中实施,分布式计算环境中,由通过通信网络链接的远地处理设备执行任务。在分布式计算环境中,程序模块可位于包含存储器存储设备的本地和远地计算机存储介质中。参考图1,用于实施本专利技术的示例性系统包括采用计算机110形式的通用计算设备。计算机110的组件可包括但不限于处理单元120、系统存储器130、将包括系统存储器的各种系统组件耦合到处理单元120的系统总线121。系统总线本文档来自技高网...

【技术保护点】
一种适用于对自然语言的语义元素建模的语言对象模型,其特征在于,该语言对象模型包括:用于对自然语言的语义进行建模的一组类型,该组类型与任一特定的自然语言无关。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:DJ帕金森DJ希泊尔伦MJB欧尔森MV加尔家格诺RC沙哈尼张素琴
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1