JP5014584B2 - Semantic programming language and language object model - Google Patents

Semantic programming language and language object model Download PDF

Info

Publication number
JP5014584B2
JP5014584B2 JP2005123724A JP2005123724A JP5014584B2 JP 5014584 B2 JP5014584 B2 JP 5014584B2 JP 2005123724 A JP2005123724 A JP 2005123724A JP 2005123724 A JP2005123724 A JP 2005123724A JP 5014584 B2 JP5014584 B2 JP 5014584B2
Authority
JP
Japan
Prior art keywords
constraint
constraints
type
semantic
natural language
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.)
Expired - Fee Related
Application number
JP2005123724A
Other languages
Japanese (ja)
Other versions
JP2005332380A (en
Inventor
ジェイ.パーキンソン デビッド
ジェイ.シポロン ドミニク
ジェイ.ビー.オルセン マリ
ブイ.カルカーニョ マイケル
シー.シャハニ ラビ
チン チャン ス
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
Priority claimed from US10/830,988 external-priority patent/US7761858B2/en
Priority claimed from US10/943,091 external-priority patent/US7689410B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005332380A publication Critical patent/JP2005332380A/en
Application granted granted Critical
Publication of JP5014584B2 publication Critical patent/JP5014584B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、自然言語の意味論(意味)をモデル化するシステムおよび方法に関する。より具体的には、本発明は、自然言語入力の内容をモデル化するための語彙意味論構造に関する。   The present invention relates to a system and method for modeling the semantics (meaning) of natural language. More specifically, the present invention relates to a lexical semantic structure for modeling the content of natural language input.

自然言語とは、発話または文章の慣用句、仮定、および含意のすべてを含む、(コンピュータ言語または他の人工言語とは違い)人々により生み出されたような言語のことである。自然言語処理という状況では、コマンドおよび制御システムは、自然言語の発話または文章を処理し、さらにその発話または文章を認識して、解釈し、使用できる解釈を導き出そうとする。   A natural language is a language as produced by people (as opposed to a computer language or other artificial language) that contains all idioms, assumptions, and implications of speech or text. In the context of natural language processing, the command and control system processes natural language utterances or sentences, and also recognizes and interprets the utterances or sentences and attempts to derive an interpretation that can be used.

従来、自然言語コマンドおよび制御を実現する一手法は、事前符号化されたコマンドの静的認識を伴う。例えば、ユーザは、市販の音声テキスト変換プログラムを利用することで、「save file」などの単純なコマンドを使用して事前符号化されたオペレーションを起動することができる。しかし、このようなプログラムは、通常、正確なコマンドが使用されない限り、そのようなコマンドを処理することができない。言い換えると、「store file(ファイルを保存する)」は、コマンド「save file」を認識するようにコーディングされたアプリケーションにより適切に理解されない場合があるということである。   Traditionally, one approach to realizing natural language commands and control involves static recognition of pre-encoded commands. For example, a user can invoke a pre-encoded operation using a simple command such as “save file” by utilizing a commercially available speech to text conversion program. However, such programs usually cannot process such commands unless the correct command is used. In other words, a “store file” may not be properly understood by an application that is coded to recognize the command “save file”.

同様に、質問/回答型のアプリケーションは、検索および取り出し型の機能を使いやすくするために事前符号化された語句または用語を含むのが普通である。しかし、従来の実装では、成功させるために発話または文章内で特定の検索語を使用する必要があり、その結果として、人間の話し言葉の豊富な内容を十分に扱い切れない。   Similarly, question / answer applications typically include pre-encoded phrases or terms to facilitate the use of search and retrieval functions. However, traditional implementations require the use of specific search terms in utterances or sentences to succeed, and as a result, the rich content of human spoken words is not fully handled.

自然言語アプリケーションのプログラミングは、極めて難しい。通常、プログラマは、コンピュータ言語でコーディングする方法を知っているが、文の構造を図式化すること、および/または言語解析を実行することについてはほとんど経験がない。このような経験不足が、自然言語アプリケーションのプログラミングを困難にしているのである。さらに、英語用にコーディングされている自然言語ソフトウェアアプリケーションを他の言語と連携するよう拡張するには、ソフトウェアアプリケーションのコーディングし直しだけでなく、関連する言語解析エンジンのコーディングし直しも必要である。このため、自然言語アプリケーションのプログラミングは極めて困難になり、また非常に費用のかかる作業となる。   Programming natural language applications is extremely difficult. Typically, a programmer knows how to code in a computer language, but has little experience in diagramming the structure of a sentence and / or performing linguistic analysis. This lack of experience makes it difficult to program natural language applications. Furthermore, extending a natural language software application coded for English to work with other languages requires not only recoding of the software application but also recoding of the associated language analysis engine. This makes programming of natural language applications extremely difficult and very expensive.

一態様では、自然言語ソフトウェアアプリケーションをプログラミングするためのソフトウェア開発ツールが実現される。ソフトウェア開発ツールは、プログラミング言語およびコンパイラを含む。プログラミング言語は、自然言語プログラミングを手助けする一組のプログラミング構文を備える。コンパイラは、一組のプログラミング構文の複数のインスタンスを含むソフトウェアプログラムを受け取って、1つのソフトウェアアプリケーションを生成するように適合されている。   In one aspect, a software development tool for programming a natural language software application is implemented. Software development tools include programming languages and compilers. A programming language comprises a set of programming syntax that aids natural language programming. The compiler is adapted to receive a software program that includes multiple instances of a set of programming syntax and generate a software application.

他の態様では、自然言語対応ソフトウェアアプリケーションを作成する方法が実現される。プログラムは、自然言語プログラミングを手助けする一組のプログラミング構文から作成される。このプログラムは、自然言語入力に依存する特徴をソフトウェアアプリケーション内に記述する。プログラムは、コンパイルされて1つのソフトウェアアプリケーションとなる。   In another aspect, a method for creating a natural language compatible software application is implemented. Programs are created from a set of programming constructs that help natural language programming. This program describes features in the software application that depend on natural language input. The program is compiled into one software application.

他の態様では、言語オブジェクトモデルは、自然言語の意味論的要素をモデル化するように適合される。言語オブジェクトモデルは、言語表現の一組の型とクラスを含み、型はそれらの言語表現をモデル化するように設計されている。一実施形態では、その一組の型の中のそれぞれの型は、発話の意味論的に意味のある要素に対応する。   In other aspects, the language object model is adapted to model the semantic elements of natural language. A language object model includes a set of types and classes of linguistic expressions, which are designed to model those linguistic expressions. In one embodiment, each type in the set of types corresponds to a semantically meaningful element of utterance.

他の態様では、コンピュータ可読媒体に、自然言語をモデル化するために利用されるコンピュータ可読データ構造を格納する。一組の型は、クラスを抽象オブジェクトとして表現するように適合される。クラスは、自然言語発話の意味論的に意味のある部分に対応しうる、カテゴリ化された言語表現を表す。   In another aspect, a computer readable medium stores a computer readable data structure that is utilized to model a natural language. A set of types is adapted to represent a class as an abstract object. A class represents a categorized language expression that can correspond to a semantically meaningful part of a natural language utterance.

他の態様では、自然言語入力の意味論的解釈を生成するためのフレームワークは、インタプリタと一組の型を含む。インタプリタは、クライアントアプリケーションと1つまたは複数の解析エンジンとの間に介在し、クライアントアプリケーションにとって有効な、自然言語入力の複数の解釈を出力するように適合されている。インタプリタと1つまたは複数の解析エンジンとの間の相互作用を定義するように一組の型が適合されている。   In another aspect, a framework for generating a semantic interpretation of natural language input includes an interpreter and a set of types. The interpreter is interposed between the client application and one or more analysis engines and is adapted to output multiple interpretations of natural language input that are valid for the client application. A set of types is adapted to define the interaction between the interpreter and one or more analysis engines.

他の態様では、クライアントアプリケーションの自然言語機能への自然言語入力の解釈をインスタンス化するフレームワークが実現される。インタプリタは、クライアントアプリケーションに関連付けられた宣言スキーマ(declarative schema)により初期化される。インタプリタは、自然言語入力を受け取り、1つまたは複数の自然言語解析エンジンと通信し、自然言語入力の解釈を出力するように適合されている。インタプリタは、クライアントアプリケーションにおいて解釈の1つまたは複数をインスタンス化するように適合されている。   In another aspect, a framework for instantiating the interpretation of natural language input to the natural language function of the client application is implemented. The interpreter is initialized with a declarative schema associated with the client application. The interpreter is adapted to receive natural language input, communicate with one or more natural language analysis engines, and output an interpretation of the natural language input. The interpreter is adapted to instantiate one or more of the interpretations in the client application.

他の態様では、コンピュータ上の自然言語入力の意味をモデル化する語彙意味論構造(lexical semantic structure、語彙意味構造)が実現される。自然言語入力の内容をモデル化するために、一組の語彙意味論カテゴリが選択される。方法論により、自然言語入力の内容を一組の語彙意味論カテゴリのうちの1つまたは複数のカテゴリに関連付ける。別の実施形態では、語彙意味論構造により、複数の言語にまたがって、複数の言語カテゴリにまたがって、複数のアプリケーションにまたがって、および何らかの型の統語的カテゴリを出力するように適合された複数のシステムにまたがって、自然言語入力を正規化する。   In another aspect, a lexical semantic structure that models the meaning of natural language input on a computer is implemented. A set of lexical semantic categories is selected to model the content of the natural language input. A methodology associates the contents of a natural language input with one or more categories of a set of lexical semantic categories. In another embodiment, a plurality of lexical semantic structures adapted to output multiple types of syntactic categories across multiple languages, across multiple language categories, across multiple applications, and Normalize natural language input across multiple systems.

他の態様では、自然言語対応ソフトウェアアプリケーションを作成する方法が実現される。プログラムは、自然言語プログラミングを手助けする一組のプログラミング構文から作成される。このプログラムは、自然言語入力に依存する特徴をソフトウェアアプリケーション内に記述する。プログラムは、コンパイルされて1つのソフトウェアアプリケーションとなる。   In another aspect, a method for creating a natural language compatible software application is implemented. Programs are created from a set of programming constructs that help natural language programming. This program describes features in the software application that depend on natural language input. The program is compiled into one software application.

他の態様では、自然言語対応ソフトウェアアプリケーションを開発するシステムが実現される。解決可能な型により、言語要素の抽象表現および自然言語入力の言語要素間の相互関係を定義する。解決意味論(Resolution semantics)では、自然言語対応ソフトウェアアプリケーションで解決可能な型のインスタンスが有効かどうかを決定する手続き規則を定義する。   In another aspect, a system for developing a natural language compatible software application is implemented. A resolvable type defines an abstract representation of language elements and the interrelationships between language elements of natural language input. Resolution semantics define procedural rules that determine whether an instance of a type that can be resolved by a natural language software application is valid.

他の態様では、自然言語対応ソフトウェアプログラムで解決可能な型のインスタンス化が有効化どうかを決定する方法が実現される。自然言語入力の提案解釈リスト提案解釈がまとめられる。それぞれの提案解釈は、解決可能な型にマッピングされた1つまたは複数のコマンドおよび任意選択による非コマンド要素を持つ。それぞれの提案解釈に関連付けられたインスタンス化が有効化どうかは、その自然言語対応ソフトウェアアプリケーションで決定される。   In another aspect, a method for determining whether instantiation of a resolvable type in a natural language enabled software program is enabled is implemented. Proposal interpretation list of natural language input Proposal interpretation is summarized. Each proposed interpretation has one or more commands mapped to resolvable types and optional non-command elements. Whether the instantiation associated with each proposed interpretation is valid is determined by the natural language-enabled software application.

A.概要
本発明は、言語オブジェクトモデル(LOM)、意味論的フレームワーク(semantic framework)、および自然言語アプリケーションを作成するための意味論的プログラミング言語(semantic programming language)(SPL)である。LOMは、使用される自然言語または関係するアプリケーション領域とは無関係に意味論的発話(semantic utterances)をモデル化する。意味論的フレームワークは、(複数の)自然言語解析エンジンとクライアントアプリケーションとの間に介在するランタイムコンポーネント(インタプリタ)、およびシステムのすべてのコンポーネント間の相互作用の性質を定義する一組の型を含む。SPLは、LOMおよびLOMで動作するように適合されている自然言語解析エンジンとインターフェースするためのプログラミングフレームワークを提供する。SPLは、さらに、他の言語オブジェクトモデルとインターフェースする場合にも使用することができる。
A. Overview The present invention is a language object model (LOM), a semantic framework, and a semantic programming language (SPL) for creating natural language applications. LOM models semantic utterances regardless of the natural language or application area involved. The semantic framework defines a set of types that define the nature of the interaction between the runtime component (interpreter) between the natural language analysis engine (s) and the client application, and all the components of the system. Including. SPL provides a programming framework for interfacing with LOMs and natural language analysis engines that are adapted to work with LOMs. SPL can also be used when interfacing with other language object models.

本発明は、多数のサブプロセスおよびデータ構造体に加えて、プロセスおよびアーキテクチャ全体を含む。本発明をさらによく理解できるようにするために、本発明で使用することができる1つの環境例を導入する。しかし、本発明は、他の広範にわたるシステムおよび環境でも使用できることは理解されるであろう。   The present invention includes the entire process and architecture in addition to a number of sub-processes and data structures. In order to provide a better understanding of the present invention, one example environment that can be used with the present invention is introduced. However, it will be appreciated that the present invention may be used with a wide variety of other systems and environments.

B.例示されている動作環境
図1は、本発明を実装できる好適なコンピューティングシステム環境100の一実施例の図である。コンピューティングシステム環境100は、適当なコンピューティング環境の一例にすぎず、本発明の用途または機能性の範囲に関する制限を示唆する意図はない。コンピューティング環境100は、動作環境例100に例示されている1つのコンポーネントまたはその組合せに関係する何らかの依存関係または要求条件がその環境にあるものと解釈すべきでない。
B. Illustrated Operating Environment FIG. 1 is a diagram of one embodiment of a suitable computing system environment 100 on which the invention may be implemented. The computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment 100 be interpreted as having any dependency or requirement relating to the one component illustrated in the example operating environment 100 or a combination thereof.

本発明は、他の数多くの汎用または専用コンピューティングシステム環境または構成で動作する。本発明とともに使用するのに適していると思われるよく知られているコンピューティングシステム、環境、および/または構成の例として、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、電話システム、上記システムまたはデバイスを含む分散コンピューティング環境などがある。   The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations that may be suitable for use with the present invention include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiple Processor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, telephone systems, distributed computing environments including such systems or devices, and the like.

本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的背景状況において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また、本発明は、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールをメモリ記憶デバイスなどのローカルとリモートの両方のコンピュータ記憶媒体に配置できる。   The present invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in both local and remote computer storage media such as memory storage devices.

図1を参照すると、本発明を実装するシステムの実施例は、汎用コンピューティングデバイスをコンピュータ110の形で備えている。コンピュータ110が備えるコンポーネントとしては、処理ユニット120、システムメモリ130、およびシステムメモリを備える様々なシステムコンポーネントを処理ユニット120に結合するシステムバス121などがある。システムバス121は、メモリバスまたはメモリコントローラ、周辺機器バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含む数種類のバス構造のうちのいずれでもよい。例えば、このようなアーキテクチャとしては、限定はしないが、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびMezzanineバスとも呼ばれるPeripheral Component Interconnect(PCI)バスがある。   With reference to FIG. 1, an exemplary system for implementing the invention includes a general purpose computing device in the form of a computer 110. Components included in the computer 110 include a processing unit 120, a system memory 130, and a system bus 121 that couples various system components including the system memory to the processing unit 120. The system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral device bus, and a local bus using any of a variety of bus architectures. For example, such architectures include, but are not limited to, the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MCA) bus, the Enhanced ISA (EISA) bus, the Video Electronics Standards AS, and the Electronic Electronics Standards AS bus, There is a Peripheral Component Interconnect (PCI) bus also called.

コンピュータ110は通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110によってアクセスされることができる媒体であればどのような媒体でも使用可能であり、揮発性および不揮発性媒体、取り外し可能および取り外し不可能媒体を含む。例えば、コンピュータ可読媒体は、限定はしないが、コンピュータ記憶媒体および通信媒体を含むことができる。「コンピュータ記憶媒体」という語句は、コンピュータ可読命令、データ構造体、プログラムモジュール、またはその他のデータなどの情報を格納する方法または技術で実装される揮発性および不揮発性、取り外し可能および取り外し不可能媒体を含むことを意図されている。コンピュータ記憶媒体としては、限定はしないが、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD−ROM、デジタル多目的ディスク(DVD)またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶デバイス、または所望の情報を格納するために使用することができ、しかもコンピュータ110によりアクセスできるその他の媒体がある。通信媒体は、通常、コンピュータ可読命令、データ構造体、プログラムモジュール、または搬送波もしくはその他のトランスポートメカニズムなどの変調データ信号によるその他のデータを具現するものであり、任意の情報配信媒体を含む。「変調データ信号」という用語は、信号内の情報を符号化する方法によりその特性のうち1つまたは複数が設定または変更された信号を意味する。例えば(限定ではない)、通信媒体としては、有線ネットワークまたは直接配線接続などの有線媒体、ならびに、音響、RF、赤外線、およびその他の無線媒体などの無線媒体がある。上記のいずれの組合せもコンピュータ可読媒体の範囲に収まらなければならない。   Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. For example, computer readable media can include, but is not limited to, computer storage media and communication media. The phrase “computer storage medium” refers to volatile and non-volatile, removable and non-removable media implemented in a method or technique for storing information such as computer readable instructions, data structures, program modules, or other data. Is intended to include Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital multipurpose disc (DVD) or other optical disc storage device, magnetic cassette, magnetic tape, magnetic disc There are storage devices or other magnetic storage devices or other media that can be used to store desired information and that can be accessed by computer 110. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. For example (but not limited to), communication media includes wired media such as wired networks or direct wired connections, and wireless media such as acoustic, RF, infrared, and other wireless media. Any combination of the above must fall within the scope of computer-readable media.

システムメモリ130は、読み取り専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を備える。起動時などにコンピュータ110内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム133(BIOS)は、通常、ROM 131に格納される。通常、RAM 132は、処理ユニット120に直接アクセス可能な、および/または処理ユニット120によって現在操作されているデータおよび/またはプログラムモジュールを格納する。例えば(限定ではない)、図1は、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137を例示している。   The system memory 130 includes computer storage media in the form of volatile and / or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input / output system 133 (BIOS) including basic routines that help information transfer between elements in the computer 110 at startup or the like is usually stored in the ROM 131. Typically, RAM 132 stores data and / or program modules that are directly accessible to and / or currently operated on by processing unit 120. For example (but not limited to), FIG. 1 illustrates operating system 134, application program 135, other program modules 136, and program data 137.

コンピュータ110はさらに、その他の取り外し可能/取り外し不可能な揮発性/不揮発性コンピュータ記憶媒体を備えることもできる。例えば、図1は、取り外し不可能な不揮発性磁気媒体の読み書きを行うハードディスクドライブ141、取り外し可能な不揮発性磁気ディスク152の読み書きを行う磁気ディスクドライブ151、およびCD−ROMまたはその他の光媒体などの取り外し可能な不揮発性光ディスク156の読み書きを行う光ディスクドライブ155を例示している。動作環境の実施例で使用できる他の取り外し可能/取り外し不可能な揮発性/不揮発性コンピュータ記憶媒体としては、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタル多目的ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどがある。ハードディスクドライブ141は、通常、インターフェース140などの取り外し不可能なメモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、通常、インターフェース150などの取り外し可能なメモリインターフェースによりシステムバス121に接続される。   The computer 110 may further comprise other removable / non-removable volatile / nonvolatile computer storage media. For example, FIG. 1 illustrates a hard disk drive 141 that reads and writes a non-removable non-volatile magnetic medium, a magnetic disk drive 151 that reads and writes a non-removable non-volatile magnetic disk 152, and a CD-ROM or other optical medium. An optical disk drive 155 that reads from and writes to a removable nonvolatile optical disk 156 is illustrated. Other removable / non-removable volatile / nonvolatile computer storage media that can be used in embodiments of the operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital multipurpose discs, digital video tapes, solids There are state RAM, solid state ROM, and the like. The hard disk drive 141 is usually connected to the system bus 121 via a non-removable memory interface such as the interface 140, and the magnetic disk drive 151 and the optical disk drive 155 are usually connected to the system by a removable memory interface such as the interface 150. Connected to the bus 121.

図1に例示されている上記のドライブおよび関連コンピュータ記憶媒体は、コンピュータ110用のコンピュータ可読命令、データ構造体、プログラムモジュール、およびその他のデータを格納する機能を備える。例えば、図1では、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147を格納するとして例示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137と同じである場合もあれば異なる場合もあることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147に対しては、ここで、異なる番号を割り当てて、最低でも、それらが異なるコピーであることを示している。   The above-described drives and associated computer storage media illustrated in FIG. 1 have the ability to store computer-readable instructions, data structures, program modules, and other data for computer 110. For example, in FIG. 1, the hard disk drive 141 is illustrated as storing an operating system 144, application programs 145, other program modules 146, and program data 147. Note that these components can either be the same as or different from operating system 134, application programs 135, other program modules 136, and program data 137. Different numbers are assigned to the operating system 144, application program 145, other program modules 146, and program data 147 to indicate that they are at least different copies.

ユーザは、キーボード162、マイク163などの入力デバイス、およびマウス、トラックボール、またはタッチパッドなどのポインティングデバイス161を介してコンピュータ110にコマンドおよび情報を入力できる。他の入力デバイス(図に示されていない)としては、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらの入力デバイスやその他の入力デバイスは、システムバスに結合されているユーザ入力インターフェース160を介して処理ユニット120に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインターフェースおよびバス構造により接続することもできる。モニタ191またはその他の種類の表示デバイスも、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタのほかに、コンピュータはさらにスピーカ197およびプリンタ196などの他の周辺出力デバイスも備えることができ、これらは出力周辺インターフェース190を介して接続することができる。   A user may enter commands and information into the computer 110 through input devices such as a keyboard 162 and a microphone 163 and pointing devices 161 such as a mouse, trackball or touch pad. Other input devices (not shown) include joysticks, game pads, satellite dish, scanners, and the like. These and other input devices are often connected to the processing unit 120 via a user input interface 160 coupled to the system bus, but may be a parallel port, a game port, or a universal serial bus (USB). Other interfaces and bus structures can also be connected. A monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190. In addition to the monitor, the computer can further include other peripheral output devices such as speakers 197 and printer 196, which can be connected via an output peripheral interface 190.

コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の共通ネットワークノードとすることができ、通常は、コンピュータ110に関して説明されている要素の多くまたはすべてを含む。図1に示されている論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。   Computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer 180. Remote computer 180 can be a personal computer, handheld device, server, router, network PC, peer device, or other common network node, and typically includes many or all of the elements described with respect to computer 110. . The logical connections shown in FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173, but can also include other networks. Such networking environments are common in offices, enterprise-wide computer networks, intranets, and the Internet.

LANネットワーキング環境で使用される場合、コンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN 171に接続される。WANネットワーキング環境で使用される場合、コンピュータ110は、通常、インターネットなどのWAN 173上で通信を確立するためモデム172またはその他の手段を備える。モデム172は、内蔵でも外付けでもよいが、ユーザ入力インターフェース160またはその他の適切なメカニズムを介してシステムバス121に接続されうる。ネットワーク接続環境では、コンピュータ110またはその一部に関して示されているプログラムモジュールは、リモートメモリ記憶デバイスに格納されうる。例えば(限定しない)、図1には、リモートアプリケーションプログラム185がリモートコンピュータ180上に常駐するように例示されている。図に示されているネットワーク接続は実施例であり、コンピュータ間の通信リンクを確立するのに他の手段が使用可能であることは理解されるであろう。   When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over a WAN 173 such as the Internet. The modem 172 may be internal or external, but may be connected to the system bus 121 via the user input interface 160 or other suitable mechanism. In a networked environment, program modules illustrated for computer 110 or a portion thereof may be stored on a remote memory storage device. For example (but not limited to), FIG. 1 illustrates the remote application program 185 resident on the remote computer 180. It will be appreciated that the network connections shown are examples and other means can be used to establish a communications link between the computers.

C.SPLフレームワークの概要
SPLフレームワークは、ランタイムコンポーネント(インタプリタ)および一組の型からなる。ランタイムコンポーネントは、クライアントアプリケーションと1つまたは複数の自然言語解析エンジンとの間に介在する。この一組の型により、システム内のすべての要素間の相互作用を定義する。SPLフレームワークを使用するアプリケーションでは、実行時にインタプリタインスタンスが作成され、自然言語入力に依存する、クライアントアプリケーション内の機能の意味論的モデルを記述する宣言スキーマにより初期化される。この宣言スキーマは、アプリケーションコードとともに開発者により作成され、開発者により作成され、LOM内の型から派生した多数の意味論的モデリング型の間の関係を記述する。これらの意味論的モデリング型は、宣言スキーマ内では参照されておらず、インタプリタによりインスタンス化された場合に、実行時文脈駆動制約(runtime−context−driven constraints)をそれらの型のインスタンス化に課す手続きコードを含むことができる。
C. SPL Framework Overview The SPL framework consists of a runtime component (interpreter) and a set of types. The runtime component intervenes between the client application and one or more natural language analysis engines. This set of types defines the interaction between all elements in the system. In an application that uses the SPL framework, an interpreter instance is created at runtime and is initialized with a declarative schema that describes a semantic model of the functionality in the client application that relies on natural language input. This declarative schema is created by the developer along with the application code and describes the relationship between a number of semantic modeling types created by the developer and derived from the types in the LOM. These semantic modeling types are not referenced in the declarative schema and, when instantiated by the interpreter, impose runtime-context-drive constraints on the instantiation of those types. Procedure code can be included.

図2は、本発明の一実施形態による意味論的フレームワークのブロック図である。意味論的フレームワーク200は、SPLクライアントアプリケーション202、SPLインタプリタアプリケーション204、および複数の解析エンジン206を備える。一般に、SPLクライアントアプリケーション202はテキスト入力を受け付け、テキスト入力は、ユーザによって(キーボードまたはその他の入力デバイスなどを介して)直接入力することができるか、または音声認識システム208またはテキスト認識システム210から受け取ることができる。   FIG. 2 is a block diagram of a semantic framework according to one embodiment of the present invention. The semantic framework 200 comprises an SPL client application 202, an SPL interpreter application 204, and a plurality of analysis engines 206. In general, the SPL client application 202 accepts text input, which can be entered directly by the user (such as through a keyboard or other input device) or received from the speech recognition system 208 or the text recognition system 210. be able to.

音声認識システム208は、オーディオ入力を受け取り、オーディオ入力を表すテキスト出力を生成するシステムである。テキスト認識システム210は、手書きまたはスキャンされた入力を受け取り、その手書きまたはスキャンされた入力を表すテキスト出力を生成するシステムである。一実施形態では、音声認識システム208および手書き文字認識システム210は、クライアントアプリケーション202に組み込まれている。   The speech recognition system 208 is a system that receives audio input and generates a text output that represents the audio input. Text recognition system 210 is a system that receives handwritten or scanned input and generates a text output that represents the handwritten or scanned input. In one embodiment, the speech recognition system 208 and handwritten character recognition system 210 are incorporated into the client application 202.

フレームワーク200では、テキスト入力212文字列は、SPLクライアントアプリケーション202に入力される。テキスト入力212Aは、音声認識システム208から出力されたテキストを参照する。テキスト入力212Bは、手書き文字認識システム210から出力されたテキストを参照する。テキスト入力212Cは、キーボード、メモリバッファ、またはその他の入力ソースなどからのその他のテキスト入力を表す。これ以降、参照番号212は、ソースとは無関係に、受け取ったテキスト入力に適用される。   In the framework 200, the text input 212 character string is input to the SPL client application 202. The text input 212A refers to the text output from the speech recognition system 208. The text input 212B refers to the text output from the handwritten character recognition system 210. Text input 212C represents other text input, such as from a keyboard, memory buffer, or other input source. From now on, the reference number 212 applies to the received text input regardless of the source.

SPLクライアントアプリケーション202は、SPLクライアントアプリケーションのテキスト入力212およびアプリケーションスキーマ214をSPLインタプリタアプリケーション204に受け渡す。SPLインタプリタアプリケーション204は、テキスト入力212およびアプリケーションスキーマ214を複数の自然言語解析エンジン206(ボックス「解析エンジン1」から「解析エンジンN」として示されている)に渡すが、それぞれ、発話を言語オブジェクトモデル(LOM)216にマッピングするように設計されている。解析エンジン206はいくつでも採用でき、それぞれのエンジン206は、テキスト入力212をLOM 216およびアプリケーションスキーマ214にマッピングするために独自の解析戦略を使用することができる。   The SPL client application 202 passes the SPL client application text input 212 and application schema 214 to the SPL interpreter application 204. SPL interpreter application 204 passes text input 212 and application schema 214 to a plurality of natural language analysis engines 206 (shown as boxes “Analysis Engine 1” to “Analysis Engine N”), each of which speaks a language object. Designed to map to model (LOM) 216. Any number of parsing engines 206 can be employed, and each engine 206 can use its own parsing strategy to map text input 212 to LOM 216 and application schema 214.

一般に、それぞれの解析エンジン206はそのパラダイムをテキスト入力212に適用し、テキスト入力212をLOM 216にマッピングして、SPLインタプリタアプリケーション204に返される、複数の潜在的解釈218を出力する。SPLインタプリタアプリケーション204は、1つまたは複数の実際の解釈220を識別して、それらの実際の解釈220を、その後1つまたは複数の実際の解釈220に基づいて動作することが可能なSPLクライアントアプリケーション202に返す。   In general, each parsing engine 206 applies that paradigm to the text input 212, maps the text input 212 to the LOM 216, and outputs a plurality of potential interpretations 218 that are returned to the SPL interpreter application 204. SPL interpreter application 204 is capable of identifying one or more actual interpretations 220 and then operating those actual interpretations 220 based on the one or more actual interpretations 220. Return to 202.

一実施形態では、解析エンジン206は、可能な解釈218を1つだけ導出するが、ほとんどの意味論的発話では、複数の解釈が可能であり、これは、発話の文脈に関してインタプリタ204またはクライアントアプリケーション202により解決可能である。この場合、文脈は、SPLクライアントアプリケーション202およびそれがサポートするオブジェクトの領域である。SPLインタプリタ204は、SPLクライアントアプリケーション202から宣言スキーマ214を受け取った後、宣言スキーマ214と突き合わせて潜在的解釈218を解決しようと試みる。SPLインタプリタアプリケーション204は、宣言スキーマ214と突き合わせて解決できない潜在的解釈218を破棄することができる。残りの解釈(宣言スキーマ214と突き合わせて解決できる解釈)が、実際の解釈220である。SPLインタプリタ204は、クライアントアプリケーション202で実際の解釈オブジェクト220を呼び出すことによりSPLクライアントアプリケーション202の宣言スキーマ214に応じて複数の実際の解釈220のそれぞれをインスタンス化しようと試みる。   In one embodiment, analysis engine 206 derives only one possible interpretation 218, but for most semantic utterances, multiple interpretations are possible, which may be interpreted by interpreter 204 or client application in terms of utterance context. 202 can solve the problem. In this case, the context is the area of the SPL client application 202 and the objects it supports. After receiving the declaration schema 214 from the SPL client application 202, the SPL interpreter 204 attempts to resolve the potential interpretation 218 against the declaration schema 214. The SPL interpreter application 204 can discard potential interpretations 218 that cannot be resolved against the declaration schema 214. The remaining interpretation (interpretation that can be resolved against the declaration schema 214) is the actual interpretation 220. The SPL interpreter 204 attempts to instantiate each of the plurality of actual interpretations 220 according to the declaration schema 214 of the SPL client application 202 by calling the actual interpretation object 220 in the client application 202.

フレームワーク200の実装および構成に応じて、SPLクライアントアプリケーション202からSPLインタプリタアプリケーション204に制御222が渡され、SPLインタプリタアプリケーション204にさらに処理を実行させるよう命令することができる。同様に、インタプリタアプリケーション204は、制御224を解析エンジンに渡して、LOM 216に関してテキスト入力212の処理をさらに行うようにできる。したがって、意味論的フレームワーク200は、テキスト入力を繰り返し処理し、SPLクライアントアプリケーション202の領域内で定義されているタイプに対応する実際の解釈に到達するようにできる。   Depending on the implementation and configuration of the framework 200, control 222 may be passed from the SPL client application 202 to the SPL interpreter application 204 to instruct the SPL interpreter application 204 to perform further processing. Similarly, interpreter application 204 can pass control 224 to the analysis engine for further processing of text input 212 with respect to LOM 216. Thus, the semantic framework 200 can iteratively process text input to arrive at an actual interpretation corresponding to the type defined in the domain of the SPL client application 202.

一般に、SPLクライアントアプリケーション202、インタプリタ204、および解析エンジン206は、単一コンピュータ内に配置することができる。他の実施形態では、アプリケーション202、インタプリタ204、およびエンジン206は、ネットワーク上の別のサーバなどの異なるシステム上に配置することができる。   In general, the SPL client application 202, interpreter 204, and analysis engine 206 can be located within a single computer. In other embodiments, the application 202, interpreter 204, and engine 206 can be located on different systems, such as another server on the network.

SPLインタプリタ204は、クライアントアプリケーション202と解析エンジン206との間に介在する機能として使用される。SPLプログラミング言語は、開発者にとって直観的に理解できることを意図されている。一実施形態では、言語はC#の上に構築されているため、構文は開発者にとっては馴染みやすいであろう。しかし、SPLは、LOM意味論的構造を表現し、言語解析を実行するように適合されており、C#で直接、または他のオブジェクト指向プログラミング言語で、実装することが可能である。   The SPL interpreter 204 is used as a function interposed between the client application 202 and the analysis engine 206. The SPL programming language is intended to be intuitive for developers. In one embodiment, the syntax will be familiar to developers because the language is built on top of C #. However, SPL is adapted to express LOM semantic structures and perform linguistic analysis, and can be implemented directly in C # or in other object-oriented programming languages.

すでに述べたように、SPLフレームワークは、(複数の)自然言語解析エンジン206と、開発者により作成され、LOMで定義されている型から派生された一組の型との間に介在するランタイムコンポーネント(SPLインタプリタ204)を含む。この一組の型により、フレームワークのすべてのコンポーネント間の相互作用の性質を定義する。   As already mentioned, the SPL framework is a runtime intervening between the natural language analysis engine (s) 206 and a set of types derived from the types created by the developer and defined in the LOM. The component (SPL interpreter 204) is included. This set of types defines the nature of the interaction between all components of the framework.

SPLフレームワークでは、自然言語解析エンジンを利用するが、自然言語解析エンジンを含んではいない。これは、複数の解析エンジンが必要ならば同時に使用できるように設計されているのである。例えば、特定の種類の自然言語入力では一方のいくつかのエンジンのほうが他方のエンジンよりも都合がよい場合があるため、複数の解析エンジンを採用したいこともありえる。複数のエンジンの複数の出力を組み合わせると、パフォーマンスおよび動作全体が改善されることがある。   The SPL framework uses a natural language analysis engine, but does not include a natural language analysis engine. This is designed so that multiple analysis engines can be used simultaneously if necessary. For example, for certain types of natural language input, one engine may be more convenient than the other, so it may be desirable to employ multiple analysis engines. Combining multiple outputs of multiple engines may improve overall performance and operation.

所定の自然言語入力212に対し、解析エンジン206は、宣言スキーマ214で記述されている型のシステムで表現された言語的に可能な解釈218をインタプリタ204に供給することが予期される。解析エンジン206は、一般的に、実際の型ではなく、宣言スキーマ214による意味論的型の記述にアクセスする。実際のオブジェクトを出力するのではなく、実際の解釈220を構築する命令の集まりである潜在的解釈(218)を出力する。解析エンジン206により出力される潜在的解釈218は、インタプリタ204が解釈のインスタンスを作成するのに成功した場合のみ実際の解釈220となり、その場合、これは関連する型の手続きコードを実行することを含む。インタプリタ204は、宣言スキーマ214と突き合わせて可能な解釈218を解決しようと試み、特定の実装に応じて、クライアントアプリケーション202で解決に成功した解釈をインスタンス化し、さらに処理を行う。   For a given natural language input 212, parsing engine 206 is expected to provide interpreter 204 with a linguistically possible interpretation 218 expressed in a system of the type described in declarative schema 214. The parsing engine 206 typically has access to the semantic type description by the declarative schema 214 rather than the actual type. Rather than outputting an actual object, a potential interpretation (218), which is a collection of instructions that build the actual interpretation 220, is output. The potential interpretation 218 output by the parsing engine 206 is the actual interpretation 220 only if the interpreter 204 succeeds in creating an instance of the interpretation, in which case it will execute the associated type of procedural code. Including. The interpreter 204 attempts to resolve a possible interpretation 218 against the declaration schema 214, instantiates an interpretation that was successfully resolved by the client application 202, and performs further processing, depending on the particular implementation.

クライアントアプリケーション202、インタプリタ204、および解析エンジン206(テキスト入力212、宣言スキーマ214、潜在的解釈218、実際の解釈220、および制御フロー222および224を含む)の間を行ったり来たりすることにより、コンフリクトおよび/または曖昧さが分離される。フレームワークおよびLOMの連携により、プログラマは、言語解析ではなくアプリケーション領域に自由に関心を持つことができる。   By going back and forth between the client application 202, interpreter 204, and analysis engine 206 (including text input 212, declaration schema 214, potential interpretation 218, actual interpretation 220, and control flows 222 and 224), Conflicts and / or ambiguities are separated. The collaboration between the framework and the LOM allows programmers to be free to be interested in application areas rather than language analysis.

一般に、宣言スキーマは、XMLコード、Microsoft .NET属性、またはMicrosoft .NET属性および解決可能な型自体とすることができる。代替として、「リフレクション」を使用して型からスキーマ情報が推論されるように解決可能な型をコーディングすることもできる。リフレクションとは、クラスまたはオブジェクトに対し、どのようなメソッド、フィールド、コンストラクタなどが定義されているかを決定する機能のことである。リフレクションにより、動的プログラムを作成することが可能になる。   In general, the declarative schema is XML code, Microsoft. NET attribute, or Microsoft. It can be a NET attribute and a resolvable type itself. Alternatively, a resolvable type can be coded such that “reflection” is used to infer schema information from the type. Reflection is a function that determines what methods, fields, constructors, etc. are defined for a class or object. Reflection makes it possible to create a dynamic program.

フレームワークが導入されているのだから、開発者が自分のアプリケーション特有の一組の型の派生元となりうる基礎の言語オブジェクトモデルを理解することが重要である。言語オブジェクトモデルは、自然言語アプリケーション開発目的に有用であるだけでなく、どのような目的であっても自然言語意味解析システムを直接対話形式で操作するために使用することができる。   Since a framework has been introduced, it is important for developers to understand the underlying language object model from which a set of types specific to their application can be derived. The language object model is not only useful for natural language application development purposes, but can also be used to directly operate the natural language semantic analysis system for any purpose.

D.言語オブジェクトモデル(LOM)
D1.概要
本発明の言語オブジェクトモデル(LOM)は、アプリケーション領域またはさらには言語と無関係な、一組の型で構成される。本発明は、言語表現の一組の型とクラスを含み、型はそれらの言語表現をモデル化するように設計されている。これらの型は、LOMの宣言要素である。
D. Language object model (LOM)
D1. Overview The language object model (LOM) of the present invention is composed of a set of types that are independent of the application domain or even the language. The present invention includes a set of types and classes of linguistic expressions, which are designed to model those linguistic expressions. These types are LOM declaration elements.

本発明のアプリケーションを実装できる方法はいくつもあり、また特定の実装の詳細は本明細書で取り上げている実施例と異なる場合があることは理解されるであろう。しかし、以下で述べる実施例は、説明を目的としており、制限することを意図していると決して解釈すべきではない。適宜、本発明の用途の広さと堅牢さをさらに説明するため、他の方法またはフレームワークの変更形態を示すこともある。   It will be appreciated that there are a number of ways in which the application of the present invention can be implemented, and that specific implementation details may differ from the examples discussed herein. However, the examples described below are for purposes of illustration and should in no way be construed as limiting. Where appropriate, other method or framework variations may be presented to further illustrate the breadth and robustness of the present invention.

一般に、LOMでは、領域に依存しない方法で発話(話の内容または書いた内容)の意味論をモデル化する。「領域」という用語は、本明細書では、自然言語処理要求を発したSPLクライアントアプリケーションを指す。本明細書で使用されているように、「意味(論)」という用語は、話されたまたは書かれた単語の意味または意義を指す。「発話」という用語は、言語エンジンが意味論的に解析しようと試みる、ソフトウェアエンジンにより検出された有限な音または音列および/または書かれた単語または語句を指す。本明細書で使用されているような「構文」という用語は、単語、語句、表現、およびその他の認識可能構文要素を形成するために言語内の記号を組み合わせる方法を定義する文法または構造物規則を指す。   In general, LOM models the semantics of an utterance (the content of a story or written content) in a region-independent manner. The term “region” as used herein refers to an SPL client application that has issued a natural language processing request. As used herein, the term “meaning” refers to the meaning or significance of a spoken or written word. The term “speech” refers to finite sounds or strings and / or written words or phrases detected by the software engine that the language engine attempts to parse semantically. The term “syntax” as used herein is a grammar or structure rule that defines how to combine symbols in a language to form words, phrases, expressions, and other recognizable syntax elements. Point to.

LOM型は、発話の要素を言語表現のクラスにマッピングするためにソフトウェアアプリケーションによりアクセス可能である。わかりやすくするため、以下の説明では、LOM型から言語表現のクラスへのマッピングを主に取りあげる。しかし、マッピングはLOM型から言語表現のクラスへの、またその逆の方向への、全二重(双方向)マッピングであることは理解されるであろう。このマッピングの両方の方向が、様々なタスクについて重要である。さらに、LOM自体は言語独立であり、異なる言語をモデル化する際にLOMに対しコード変更を加える必要がないことも理解されるであろう。その代わりに、そのような言語特有のコード変更は、クライアントアプリケーションではなく、解析エンジンで行われる。   The LOM type is accessible by software applications to map utterance elements to linguistic expression classes. For the sake of clarity, in the following description, the mapping from the LOM type to the language expression class is mainly taken up. However, it will be understood that the mapping is a full-duplex (bidirectional) mapping from the LOM type to the class of language representation and vice versa. Both directions of this mapping are important for various tasks. It will further be appreciated that the LOM itself is language independent and that no code changes need be made to the LOM when modeling different languages. Instead, such language-specific code changes are made in the analysis engine, not in the client application.

一般に、LOMでは、言語を一組の組み立てブロックとして抽象的に規定する。SPLアプリケーションは、この組み立てブロックフレームを使用して、領域依存の形で語彙意味論構造および解析エンジンにアクセスする。最後に、LOMは、動作にアプリケーションスキーマを必要としないことも理解されるであろう。LOMは、発話をモデル化するために使用することができ、解析エンジンは、アプリケーションスキーマに無関係のLOMマッピングを実現できる。したがって、LOMは、解析エンジンの内側にあるとみなすことができ、LOMは、自然言語を意味論的に表現するための一手段である。解析エンジンでは、所定の発話に対して正しいLOM表現はどのようであるかを決定し、発話をLOMに効果的にマッピングする。   In general, LOM abstractly defines a language as a set of assembly blocks. SPL applications use this building block frame to access the lexical semantic structure and analysis engine in a domain-dependent manner. Finally, it will also be appreciated that LOM does not require an application schema for operation. LOM can be used to model utterances and the analysis engine can implement LOM mapping independent of application schema. Thus, the LOM can be regarded as being inside the analysis engine, and the LOM is a means for semantically expressing natural language. The analysis engine determines what the correct LOM representation is for a given utterance and effectively maps the utterance to the LOM.

図3は、本発明の一実施形態による図2のシステムの解析コンポーネント300の簡略化されたブロック図である。解析エンジン302は、フロー制御304、アプリケーションスキーマ306、およびテキスト入力308を受け取る。LOM 310を使用することで、解析エンジン302は、テキスト入力308をアプリケーションスキーマ306にマッピングし、1つまたは複数の潜在的解釈312を出力するが、これは、SPLインタプリタまたは、アプリケーションスキーマ306の送り元のクライアントアプリケーションにより解決できる。   FIG. 3 is a simplified block diagram of the analysis component 300 of the system of FIG. 2 according to one embodiment of the invention. Analysis engine 302 receives flow control 304, application schema 306, and text input 308. Using the LOM 310, the parsing engine 302 maps the text input 308 to the application schema 306 and outputs one or more potential interpretations 312, which are sent to the SPL interpreter or application schema 306. It can be solved by the original client application.

一般に、可能な解釈312は、LOMオブジェクトとして表される、特定の型の単なるオブジェクトにすぎない。解析エンジン302は、さらに、LOMオブジェクトをアプリケーションスキーマの対応するオブジェクトにマッピングしてから、可能な解釈を、実装に応じてインタプリタまたはクライアントアプリケーションに返す。   In general, the possible interpretations 312 are merely specific types of objects, represented as LOM objects. The parsing engine 302 further maps the LOM object to a corresponding object in the application schema and then returns possible interpretations to the interpreter or client application, depending on the implementation.

LOMの構造を詳細に説明する前に、ここで意味論的プログラミング言語により使用される基本型を少なくともおおざっぱに説明しておくと都合がよい。一般に、意味論的プログラミング言語は、様々な意味論的オブジェクトモデルに対し作用するが、LOMの構造で動作するように特に最適化されている。このときに、LOMは、プログラミングの理解しやすさ(アプリケーション開発者の観点から)と言語対象範囲(つまり、コマンドおよび制御、質問回答などのアプリケーションシナリオに必要なモデル要素)との間の最もよい妥協を実現する特定の意味論的オブジェクトモデルである。   Before describing the structure of the LOM in detail, it is convenient to at least roughly describe the basic types used by the semantic programming language. In general, semantic programming languages operate on a variety of semantic object models, but are specifically optimized to work with LOM structures. At this time, LOM is the best between programming comprehension (from the application developer's perspective) and language scope (ie, model elements required for application scenarios such as command and control, question answering). A specific semantic object model that achieves compromise.

D2.意味論的プログラミング言語の型
意味論的プログラミング言語(これ以降、「SPL」と呼ぶ)は、ソフトウェアアプリケーション開発者が自然言語プログラムを実装することを支援することを意図されている。ほとんどの開発者は意味解析または言語学の専門家ではないため、SPLは、非言語学者開発者が非常に直観的な方法で自然言語意味論を取り扱えるようにフレームワークおよびプログラミング言語を備えている。
D2. Types of Semantic Programming Languages Semantic programming languages (hereinafter referred to as “SPL”) are intended to help software application developers implement natural language programs. Since most developers are not semantic analysis or linguistics specialists, SPL has a framework and programming language to allow non-linguistic developers to handle natural language semantics in a very intuitive way. .

SPLおよび随伴するコンパイラは、LOMに対する自然言語クライアントアプリケーションのプログラミングを容易にする。SPLは、言語フレームワークの基礎的内容の多くを隠し、フレームワークを対話形式で適切に操作するコードを開発者が簡単に作成できるようにしている。   SPL and accompanying compilers facilitate the programming of natural language client applications for LOM. SPL hides much of the basic content of the language framework, allowing developers to easily create code that interacts with the framework appropriately.

SPLはフレームワークを使用する開発者向けの標準フロントエンドとすることができるが、SPLは必要ない。開発者は、様々なフレームワークインターフェースを実装する型を作成すること、様々なフレームワークインターフェースを実装する型から継承すること、およびアプリケーションスキーマをインタプリタに供給することにより、直接フレームワークをターゲットとすることができる。その代わりに、これは、例えばビジュアルフォームベースのデザインツールであるかのように、フレームワーク互換コードをオーサリングする他の手段などにより間接的に行うこともできる。   SPL can be a standard front end for developers using the framework, but SPL is not required. Developers target the framework directly by creating types that implement various framework interfaces, inheriting from types that implement various framework interfaces, and supplying the application schema to the interpreter be able to. Alternatively, this can be done indirectly, such as by other means of authoring framework compatible code, as if it were a visual form-based design tool.

一般に、LOMは、SPLのクラスライブラリとして実装される。これは、C Runtime LibraryおよびStandard Template Library(STL)が、例えば、ソフトウェア開発を手助けする、ワシントン州レッドモンドのMicrosoft Corporationにより作成された、Microsoft(登録商標)Visual C++(登録商標)の標準ライブラリを形成するのと類似の方法である。「Microsoft(登録商標)」および「Visual C++(登録商標)」という用語は、ワシントン州レッドモンドのMicrosoft Corporationが所有する商標である。   In general, the LOM is implemented as an SPL class library. This is a standard library of Microsoft (R) Visual C ++ (R) created by Microsoft Corporation of Redmond, Washington, for example, by C Runtime Library and Standard Template Library (STL) to assist in software development. It is a similar method to form. The terms “Microsoft®” and “Visual C ++ ®” are trademarks owned by Microsoft Corporation of Redmond, Washington.

SPLで意味論的に意味のある型は、入ってくる発話の意味論のモデリングおよび入ってくる発話が対応するアプリケーションコマンドのモデリングに関与する型である。意味論的に意味のある型は、SPL作成者が、そのアプリケーション領域から派生させ、そのアプリケーション領域に特化させることができる型である。SPLの意味論的に意味のある型は、Entities、Frames、Restrictions、Commands、およびDenoter Objectsである。SPLの関数型は、PhrasesとSlotsである。これらの型のそれぞれについて、以下で個別に説明する。   A semantically meaningful type in SPL is a type involved in the modeling of the semantics of the incoming utterance and the application command to which the incoming utterance corresponds. A semantically meaningful type is a type that an SPL author can derive from and specialize in that application area. The semantically meaningful types of SPL are Entities, Frames, Restrictions, Commands, and Denometer Objects. The function types of SPL are Phrases and Slots. Each of these types is described separately below.

一般に、SPLフレームワークの型は、クライアントアプリケーション、SPLインタプリタ、および1つまたは複数の自然言語解析エンジンの間の相互作用のすべての態様を定義する。「相互作用のすべての態様」という語句は、様々なコンポーネントが実装しなければならないインターフェース、様々なコンポーネントが継承する基本クラス、およびシステムのコンポーネント間で受け渡されるデータの型を指す。一実施形態では、フレームワークの型は、ワシントン州レッドモンドのMicrosoft(登録商標)Corporationにより作成されたフレームワークである、NET Frameworkの型として実装される。SPLの型は、複数の名前空間内に配列されるようにできる。一実施形態では、SPLの型は、複数の名前空間内に配列され、これらはすべて、例えばSystem.NaturalLanguageServicesまたはSystem.NaturalLanguage名前空間の部分名前空間である。本明細書で使用されているように、「名前空間」とは、名前(識別子)が定義されている文脈のことである。所定の名前空間内では、すべての名前は一意でなければならない。   In general, the type of SPL framework defines all aspects of the interaction between the client application, the SPL interpreter, and one or more natural language analysis engines. The phrase “all aspects of interaction” refers to the interfaces that various components must implement, the base classes that various components inherit, and the types of data passed between the components of the system. In one embodiment, the framework type is implemented as a NET Framework type, which is a framework created by Microsoft® Corporation of Redmond, Washington. SPL types can be arranged in multiple namespaces. In one embodiment, the SPL types are arranged in multiple namespaces, all of which are described, for example, in System. Natural Language Services or System. This is a partial namespace of the Natural Language namespace. As used herein, a “name space” is a context in which a name (identifier) is defined. Within a given namespace, all names must be unique.

わかりやすくするため、以下の説明では、SPLの型を紹介し、LOMを詳細に紹介し、そしてSPLの詳細説明に戻る。本文全体を通して、例を使用し、適宜発明をこれにより説明する。大部分、実施例は、単一の自然言語発話「Send mail to Bob」から派生している。この発話が与えられると、LOMに従って、SPLを使用して書かれたアプリケーションは、テキスト入力に基づいて解釈を生成することができる。その後、生成された解釈は、自然言語アプリケーションと突き合わせて解決され、それにより、命令の実際の解釈が識別され、実行されうる。   For clarity, the following description introduces SPL types, introduces LOM in detail, and returns to the detailed description of SPL. Throughout the text, examples are used to illustrate the invention accordingly. For the most part, the examples are derived from a single natural language utterance “Send mail to Bob”. Given this utterance, according to LOM, an application written using SPL can generate an interpretation based on the text input. The generated interpretation is then resolved against the natural language application so that the actual interpretation of the instruction can be identified and executed.

Entityは、型Entityのオブジェクトであり、エンティティがデータメンバ、プロパティ、およびメソッドを含むことができることを意味する。SPL Entitiesは、クラスEntityから派生した型を持つオブジェクトであり、主に、名詞句および形容詞句の意味論をモデル化するために使用される。SPL Entityは、「with」構文を使ってフレームまたは制約(両方とも後述)をホスティングすることができる。さらに、SPL Entityは、型「Denoter」(後述)の特権付きデータメンバを導入する、オプションの「Denoted By」句を含むことができる。「Denoted By」句により導入される、特権付きデータメンバは、SPLインタプリタにより、エンティティを実際の自然言語単語にマッピングするために使用されうる。   Entity is an object of type Entity, meaning that an entity can contain data members, properties, and methods. SPL Entity is an object with a type derived from class Entity and is mainly used to model the semantics of noun phrases and adjective phrases. SPL Entity can host frames or constraints (both described below) using the “with” syntax. In addition, the SPL Entity can include an optional “Denoted By” clause that introduces a privileged data member of type “Denoter” (described below). Privileged data members, introduced by the “Denoted By” clause, can be used by the SPL interpreter to map entities to actual natural language words.

Frameは、クラスであり、意味論イベントの意味論をモデル化し、その際に、意味論イベントを動詞または名詞として表現することができる。SPLフレームは、Frameから派生するクラスである。一般に、Framesは、Entitiesに適用することができるため、Frameは、「Denoted By」句を持つだけでなく、フレーム項を含む「スロット」のリスト(後述)も持つことができる。さらに、Framesは、「with」構文を介して制約をホスティングすることができる。一実施形態では、新しいFrame型を作成するために、開発者によりFrameに対する見出し語が定義されるようにできる。他の実施形態では、開発者は既存のフレームを継承し、所望の見出し語を継承から派生させる。他の実施形態では、開発者は、表記(denoters)の規定方法に似た方法で見出し語を規定することができる。   Frame is a class that models the semantics of a semantic event, and can express the semantic event as a verb or noun. The SPL frame is a class derived from Frame. In general, Frames can be applied to Entities, so that Frame can have not only a “Denoted By” clause but also a list of “slots” (described later) including frame terms. In addition, Frames can host constraints via a “with” syntax. In one embodiment, a headword for a Frame can be defined by the developer to create a new Frame type. In other embodiments, the developer inherits the existing frame and derives the desired headword from the inheritance. In other embodiments, the developer can define headwords in a manner similar to the manner of defining denoters.

Restrictionsは、一般に、斜格項(oblique arguments)、修飾語句、およびその他の意味論的要素をモデル化する。SPL制約は、クラスRestrictionから派生するクラスである。制約は、フレームのように、項を含むスロットのリストを持つ。さらに、SPL Restrictionsは、「with」構文を介して他のRestrictionsをホスティングすることができる。   Restrictions generally model obligatory arguments, modifiers, and other semantic elements. An SPL constraint is a class derived from the class Restriction. A constraint has a list of slots containing terms, like frames. In addition, SPL Restrictions can host other Restrictions via the “with” syntax.

SPLコマンドは、クラスCommandから派生するクラスである。コマンドは、純粋に領域依存であり、それらが、関連付けられる特定の自然言語アプリケーションに依存することを意味する。一般に、領域依存コマンドは、入力の意味論をモデル化することに対し何も役割を果たさず、したがって、コマンドはLOMにおいて何の役割も持たない。その代わりに、コマンドはアプリケーション内の作用をモデル化する。   The SPL command is a class derived from the class Command. Commands are purely domain dependent, meaning they depend on the specific natural language application with which they are associated. In general, domain-dependent commands play no role in modeling the input semantics, and thus the command has no role in the LOM. Instead, the commands model actions within the application.

さらに、コマンドは、オプションの「uses」句を持ち、これにより、型Frameの特権付きデータメンバを導入する。「uses」句は、領域独立入力と所望の領域依存作用との間の不可欠なリンクである。   In addition, the command has an optional “uses” clause, which introduces a privileged data member of type Frame. The “uses” phrase is an indispensable link between region independent input and the desired region dependent action.

Denoterオブジェクトは、型Denoterの構造体である。実際、SPLプログラム内の表記として使用される各単語からDenotersの対応するリストへマッピングする語彙が作成されるため、Denoterオブジェクトは、文字列リストを格納する必要はない。自然言語毎に1つのDenoterオブジェクト(ENGLISHフィールド、JAPANESEフィールドなど)がある。Denoterオブジェクトは、エンティティに対するローカライゼーションテーブルとして作用する。コマンドと同様、表記オブジェクトは純粋に領域依存である。しかし、Entityは、型Denoterのフィールドを持ち、これは、Entityが解析エンジンにより提案された理由を判別するためにDenoterオブジェクトを調べられるようにすることのみを目的として存在している。   A Denometer object is a structure of type Denota. In fact, since a vocabulary is created that maps each word used as a notation in the SPL program to a corresponding list in Denometers, the Dennoter object need not store a string list. There is one Denometer object (ENGLISH field, JAPANESE field, etc.) for each natural language. The Denometer object acts as a localization table for entities. Like commands, notation objects are purely domain dependent. However, Entity has a field of type Denota, which exists solely for the purpose of allowing the Entity to be examined to determine why the Entity has been proposed by the analysis engine.

SPLの関数型は、何らかのモデリング目的に使用される型であるが、特化させることはできない。さらに、他のクラスおよび型は、関数型から派生させることはできない。   The function type of SPL is a type used for some modeling purpose, but cannot be specialized. In addition, other classes and types cannot be derived from function types.

関数型「Phrase」は、何らかの意味論的オブジェクトの基礎となるテキスト文字列入力の一部に関する情報をカプセル化する。型Phraseを使用することで、ソフトウェア開発者は、元の入力文字列の意味論の内部構造化表現からその入力文字列に対しアドホックな操作および調査を実行することができる。   The function type “Phrase” encapsulates information about a part of the text string input that is the basis of some semantic object. By using the type Phrase, software developers can perform ad hoc operations and surveys on the input string from the internally structured representation of the semantics of the original input string.

一実施形態では、関数型「Slots」は、エンティティ、フレーム、制約、または表記オブジェクトを、場合によっては何らかの補助情報とともに保持する型「Slot」のオブジェクトである。例えば、相対句内のギャップに対応するスロットは、「backreferences」とマークされているエンティティを含む。他の実施形態では、Entity、Frame、または他の参照が、スロットが予期される場所に置かれる。さらに他の実施形態では、Slotオブジェクトは、補助情報とともに省略され、Entity、Frame、または他の参照は、直接使用される。   In one embodiment, the functional type “Slots” is an object of type “Slot” that holds entities, frames, constraints, or notation objects, possibly with some auxiliary information. For example, a slot corresponding to a gap in a relative phrase includes an entity that is marked “backreferences”. In other embodiments, an Entity, Frame, or other reference is placed where the slot is expected. In still other embodiments, the Slot object is omitted with the auxiliary information, and Entity, Frame, or other references are used directly.

D3.LOM型
SPL意味論モデル構造を定義する型を検討したので、LOMを詳細に説明することが可能になった。一般に、LOM型およびそれらの型によりモデル化された言語表現のクラスは、Entities、Frames、およびRestrictionsを含む。
D3. LOM type Since the type that defines the SPL semantic model structure was examined, it became possible to explain LOM in detail. In general, the LOM types and the classes of linguistic expressions modeled by those types include Entities, Frames, and Restrictions.

a.LOMエンティティ
LOMの観点から、SPLプログラマの仕事の大部分、たぶん過半数は領域エンティティ型の配列の設計およびそれらの型のそれぞれについての正しいローカライゼーション情報の収集を中心とするが、エンティティは直接的である。多くの場合、「見出し語」という語句は、エンティティの見出し語である。見出し語は、通常、エンティティモデルという語句の統語上の主要部(syntactic head)の辞書見出し語に対応する。辞書見出し語は、単語の異なる形態に対する正準表現を表す。例えば、「walks」、「walked」、および「walking」という用語は、「walk」という辞書見出し語を共有する。
a. LOM Entities From a LOM perspective, most of the work of SPL programmers, perhaps the majority is centered on the design of arrays of domain entity types and the collection of correct localization information for each of those types, but the entities are straightforward . In many cases, the phrase “headword” is an entity headword. The headword usually corresponds to the dictionary headword of the syntactic head of the phrase “entity model”. Dictionary headwords represent canonical representations for different forms of words. For example, the terms “walks”, “walked”, and “walking” share the dictionary entry “walk”.

使用される話し言葉に関係なく、すべての言語の一般的規則は、NPはLOMエンティティになるという規則である。エンティティの見出し語は、NPの主要部名詞の辞書見出し語である。   Regardless of the spoken language used, the general rule for all languages is that the NP becomes a LOM entity. The entity headword is a dictionary headword of the main part noun of the NP.

一般に、エンティティの調整は、「CoordinatedEntity」型を介してLOMで表現される。型CoordinatedEntityのインスタンス化を説明するコードスニペットが、表1に示されている。   In general, entity coordination is expressed in LOM via a “Coordinated Entity” type. A code snippet describing the instantiation of the type CoordinatedEntity is shown in Table 1.

表1:CoordinatedEntity   Table 1: CoordinatedEntity

Figure 0005014584
Figure 0005014584

調整に関するLOMのゴールは、意味論的に関係のない、括弧付けの曖昧さを最小限に抑えることである。したがって、例えば、「X and Y and Z」というテキスト入力は、「X AND Y AND Z」というフラットリストとして表され、右結合「X AND[Y AND Z]」と左結合「[X AND Y]AND Z」との間で曖昧さはない。しかし、真の括弧付けの曖昧さがある場合、LOMは曖昧さを保持する。例えば、「show cars with 4WD and ABS or AWD」という語句の場合、「4WD AND[ABS OR AND]」と「[4WD AND ABS]OR AWD」の両方の可能性がある。もちろん、この特定の場合に、第2の表現のみが、意味を持ちうるが、それは、LOMではなく、アプリケーションが決定する。 The goal of LOM for reconciliation is to minimize parenthesis ambiguities that are not semantically relevant. Thus, for example, a text input of “X and Y and Z” is represented as a flat list of “X AND Y AND Z”, with a right join “X AND [Y AND Z]” and a left join “[X AND Y]”. There is no ambiguity with "AND Z". However, if there is a true parenthesis ambiguity, the LOM retains the ambiguity. For example, in the case of the phrase “show cars with 4WD and ABS or AWD”, there is a possibility of both “4WD AND [ABS OR AND]” and “[4WD AND ABS] OR AWD”. Of course, in this particular case, only the second representation can be meaningful, but it is not the LOM but the application decides.

代名詞は、LOMでは、型「PronounEntity」のオブジェクトとしてモデル化される。本発明の一実施形態による代名詞のエンティティのインスタンス化の例を表2に示す。   Pronouns are modeled in LOM as objects of type “PronounEntity”. An example of pronoun entity instantiations according to one embodiment of the invention is shown in Table 2.

表2:PronounEntity   Table 2: PronounEntity

Figure 0005014584
Figure 0005014584

LOMは、PronounEntity内の「potentialAntecedents」フィールドを通じて前方照応解決のためのインターフェースを提供する。「前方照応」という用語は、同じEntityを参照する複数の単語または語句の間の関係を指す。potentialAntecedentsフィールドは、オプションにより、言語的に可能な先行詞であるすでに解決済みのEntityオブジェクトのリストで埋められる。このリストは、可能性の降順で順位付けられている。言語的呼応情報は、前方照応解決で最も重要なファクタであり、すべてのEntityに付属する型「AgreementInfo」のオブジェクトを通じてアプリケーション開発者によりアクセス可能である。struct AgreementInfoの例が表3に示されている。 LOM provides an interface for forward anaphora resolution through the “potentialAntecedents” field in PronounEntity. The term “forward anaphor” refers to a relationship between multiple words or phrases that refer to the same Entity. The potentialAntecedents field is optionally filled with a list of already resolved Entity objects that are linguistically possible antecedents. This list is ranked in descending order of likelihood. Linguistic responsive information is the most important factor in forward anaphoric resolution, and is accessible by application developers through objects of type “AgreementInfo” attached to all Entity. An example of struct AgreementInfo is shown in Table 3.

表3:STRUCT AgreementInfo   Table 3: STRUCT AgreementInfo

Figure 0005014584
Figure 0005014584

所定のエンティティに関して曖昧なところなく真であるAgreementInfoフィールドのみが、そのエンティティのAgreementInfoオブジェクトに関連付けられる。つまり、LOMでは、離接呼応特徴を表すことを試みない。例えば、用語「cat」では、「thirdPerson」および「singular」がそのAgreementInfoオブジェクトに関連付けられるであろう。「she is」という語句は、そのAgreementInfoオブジェクトの中の「thirdPerson」、「singular」、および「feminine」に関連付けられる。フランス語では、用語「vous」は、「secondPerson」という語に関連付けられる。スペイン語では、「perro」という用語は、「thirdperson」、「singular」、および「masculine」であり、それぞれ、与えられたエンティティperroに関して曖昧なところなく真であり、したがって、そのエンティティの呼応オブジェクトに関連付けられる。 Only the ElementInfo field that is unambiguously true for a given entity is associated with that entityInfo object for that entity. In other words, LOM does not attempt to represent the disjunctive response feature. For example, in the term “cat”, “thirdPerson” and “singular” would be associated with the AssetInfo object. The phrase “she is” is associated with “thirdPerson”, “singular”, and “feminine” in the AssetInfo object. In French, the term “vous” is associated with the word “secondPerson”. In Spanish, the term “perro” is “thirdperson,” “singular,” and “masculin”, each of which is unambiguously true with respect to a given entity perro, and thus is the entity's responsive object. Associated.

独立のNPsとして使用できる「this」および「that」などの指示詞は、型DemonstrativeEntityのオブジェクトになる。エンティティDemonstrativeEntityの例を表4に示す。   Directives such as “this” and “that” that can be used as independent NPs become objects of type DemonstrativeEntity. An example of the entity DemonstrativeEntity is shown in Table 4.

表4:DemonstrativeEntity   Table 4: DemonstrativeEntity

Figure 0005014584
Figure 0005014584

型「DemonstrativeEntity」のオブジェクトは、Entityから派生するので、AgreementInfoオブジェクトを継承し、したがって「this」および「that」のような単語を区別することができる。一般に、この継承により、システムは、英語、フランス語、ドイツ語、日本語、スペイン語、およびその他の多数の言語におけるそのような要素同士を正しく区別する能力を持ちうる。 Since an object of type “DemonstrativeEntity” is derived from Entity, it inherits the AssetInfo object and can therefore distinguish words such as “this” and “that”. In general, this inheritance allows the system to have the ability to correctly distinguish between such elements in English, French, German, Japanese, Spanish, and many other languages.

他の関係する型はNamedEntity型である。NamedEntityに対する構文は以下のとおりである。   Another related type is the NamedEntity type. The syntax for NamedEntity is:

namedentity OlapNamedEntity uses ExcelAddin.FuzzyOlapCubeRecognizer;
一般に、NamedEntity型は、NamedEntityRecognizerクラスから継承する別々に定義されたクラスに基づく。NamedEntityRecognizer型は、スキーマとともに渡されるので、解析エンジンは、それらを使用して、クライアントコード内にコールバックし、発話内のアプリケーションオブジェクト参照を動的に識別することができる。
namedentity OlapNamedEntity uses ExcelAddin.FuzzyOlapCubeRecognizer;
In general, the NamedEntity type is based on a separately defined class that inherits from the NamedEntityRecognizer class. Since NamedEntityRecognizer types are passed along with the schema, the parsing engine can use them to call back into the client code and dynamically identify application object references in the utterance.

b.LOMフレーム
一実装では、すべての言語について、句はLOM Framesとなるが、これは、必ずしもすべての実装について正しいわけではない。概念上、Frameは句から出るが、実際には入力内に句が存在している必要はない。フレームの見出し語は、その句の先頭にある動詞の辞書見出し語である。例えば、語句「Send mail to Bob」を解析すると、「send mail」はLOM Frameに関連付けられるが、ただし、「Send」は句の先頭の動詞の辞書見出しであり、したがってフレームの見出し語である。
b. LOM Frame In one implementation, for all languages, the phrase is LOM Frames, but this is not necessarily correct for all implementations. Conceptually, Frame comes out of a phrase, but in practice it doesn't have to be present in the input. The frame entry is the dictionary entry for the verb at the beginning of the phrase. For example, when parsing the phrase “Send mail to Bob”, “send mail” is associated with the LOM Frame, where “Send” is the dictionary heading of the first verb of the phrase and thus the heading of the frame.

Restrictionsは、既定の動作を定めるとして概念化することができることは理解されるであろう。しかし、このような動作は、必ずしも強制されない。機能は実装に依存する。   It will be appreciated that the Restrictions can be conceptualized as defining a default behavior. However, such an operation is not necessarily forced. The function depends on the implementation.

Slotsは、エンティティまたはフレームで埋めることができ、したがって既定のスロットは名詞句または節とすることができる。さらに、NPsは、空の代名詞(PRO)を主要語とすることができる。PROが他の節内の指示対象を指している場合、その節の主要語はNPエンティティの主要語と解釈される。PROが指示対象を持たない場合、何らかのエンティティとして解釈される(誰かまた何かなど)。   Slots can be filled with entities or frames, so the default slot can be a noun phrase or clause. Furthermore, NPs can have an empty pronoun (PRO) as the main word. If the PRO points to a referent in another section, the main word of that section is interpreted as the main word of the NP entity. If the PRO has no indication target, it is interpreted as some entity (someone or something).

一実施形態では、その節に含まれる主語があると仮定すると、その節の主題は「Doer」制約を埋める。主題がない場合、「Doer」制約はない。「Doer」は、事象への第1の関与部分を表し、意味論は行為者、動作主、主体、扇動者、または動詞によって指定された事象または状態の原因として大まかに記述される。節の一部がフレームの「Doer」制約にマッピングされる動詞節の例が以下の表5に示されている。   In one embodiment, assuming that there is a subject included in the clause, the subject of the clause fills the “Doer” constraint. If there is no subject, there is no “Doer” constraint. “Doer” represents the first part involved in the event, and the semantics are roughly described as the cause of the event or condition specified by the actor, actor, subject, instigator, or verb. An example of a verb clause where a portion of the clause is mapped to the “Doer” constraint of the frame is shown in Table 5 below.

表5:主語を持つ動詞節
Instant message opens.
Robin is on my buddies list.
Amazon offers wish list capabilities.
[PRO] open the file
Having a program associated with a file ensures easy opening.
下線の引いてある単語または語句は、Doerスロットにマッピングされる単語または語句である。これは、他動詞および自動詞の両方のフレームで真であり、他動詞および自動詞に対応する。
Table 5: Verb clauses with subject
Instant message opens.
Robin is on my buddies list.
Amazon offers wish list capabilities.
[PRO] open the file
Having a program associated with a file ensures easy opening.
The underlined word or phrase is the word or phrase that is mapped to the Doer slot. This is true for both transitive and intransitive frames and corresponds to transitive and intransitive verbs.

句内に目的語がある場合、その目的語はイベント内の第2の統語的関与部分を表す「DoneTo」制約と呼ばれるフレームの第2のスロットにマッピングされる。その意味論は動詞によって指定された事象または状態の影響を受ける目的語を指すと、大まかに理解できる。表6の下線付きの語句は、「DoneTo」制約にマッピングされる。   If there is an object in the phrase, that object is mapped to a second slot in the frame called the “DoneTo” constraint that represents the second syntactic part of the event. The semantics can be roughly understood when referring to objects that are affected by the event or state specified by the verb. The underlined phrases in Table 6 are mapped to the “DoneTo” constraint.

表6:「DoneTo」制約
Outlook has my buddies list.
Amazon offers wish list capabilities.
[PRO] open the file.
Preferences include having a program associated with a file.
一実装では、間接目的語は、作用の受益者(beneficiaries of the action)であると考えることができる。一実施形態では、間接目的語は、Beneficiary制約にマッピングすることができる。Beneficiary制約は、一般に、事象が代理によって実行された人を表現する動詞項(verbal arguments)をモデル化する。受益者スロットは、表7に含まれる下線付きの代名詞により簡単に説明される。
Table 6: “DoneTo” constraints
Outlook has my buddies list .
Amazon offers wish list capabilities .
[PRO] open the file .
Preferences include having a program associated with a file .
In one implementation, the indirect object can be considered to be a beneficiary of the action. In one embodiment, the indirect object can be mapped to a Beneficial constraint. Beneficial constraints generally model verbal arguments that represent the person whose event was performed by the surrogate. The beneficiary slots are briefly described by the underlined pronouns included in Table 7.

表7:受益者スロット
Open me a new file.
Play her some tunes
Beneficiary制約(または他の実施形態では、「スロット」)は、受益者として解釈される名詞句をモデル化するエンティティに設定することができる。表8は、受益者制約のコードブロックを例示している。
Table 7: Beneficiary slots
Open me a new file.
Play her some tunes
A Beneficial constraint (or “slot” in other embodiments) can be set on an entity that models a noun phrase that is interpreted as a beneficiary. Table 8 illustrates a beneficiary constraint code block.

表8:Beneficiary制約   Table 8: Beneficial constraints

Figure 0005014584
Figure 0005014584

受益者制約は、「受益者格」と呼ばれることもあり、特に、「for」前置詞句の単数目的語について英語での割り当てとオーバーラップする。一部のオーバーラップは、他の言語でも生じることがある。フレームに適用された場合、受益者制約は、以下の文から明白である。   The beneficiary constraint, sometimes referred to as the “beneficiary case”, specifically overlaps the assignment in English for the singular object of the “for” prepositional phrase. Some overlap may occur in other languages. When applied to a frame, the beneficiary constraint is clear from the following sentence.

I baked a cake for my mother.
PP [for]
一般に、受益者制約は、ほとんどの言語において動詞項をモデル化する。表9は、いくつかの言語例における受益者制約を例示している。
I baked a cake for my mother.
PP [for]
In general, beneficiary constraints model verb terms in most languages. Table 9 illustrates beneficiary constraints in some language examples.

表9:Beneficiary制約   Table 9: Beneficial constraints

Figure 0005014584
Figure 0005014584

一般に、制約は、主語、直接目的語、間接目的、斜格項、修飾語句などとすることができる。SPLでは、フレームは、任意の制約をとりうる(下記の例外がある)。しかし、LOMは、文法を使用して、2つの点で制約を優先する。まず第1に、斜格項は、動詞がメンバである語彙意味論構造クラスに関連付けられた制約型とすることができる(これについては、以下で詳述する)。第2に、斜格項は、個別動詞と変わった形で関連付けられることがある、つまり、項は、その節主要部との制約関係を持たない。これらの項は、既定の制約(後述)に割り当てられ、その語彙的主要部により識別される。   In general, a constraint can be a subject, a direct object, an indirect object, a graded term, a modifier, and the like. In SPL, a frame can have arbitrary constraints (with the following exceptions). However, LOM uses a grammar to prioritize constraints in two ways. First of all, it can be a constraint type associated with a lexical semantic structure class of which a verb is a member (this is described in detail below). Secondly, tones are sometimes associated in unusual ways with individual verbs, that is, the terms have no constraint relationship with their clause heads. These terms are assigned to predefined constraints (described below) and are identified by their lexical principals.

フレームの調整は、文脈に応じて2通りの方法で実行される。「最高レベル」の調整フレーム(つまり、母型動詞に由来する)は、CoordinatedEntity(上述)と並列の、型CoordinatedFrameのオブジェクトとして表される。参考例を以下の表10に示す。   Frame adjustment is performed in two ways depending on the context. The “highest level” adjustment frame (ie, derived from the mother verb) is represented as an object of type CoordinatedFrame in parallel with CoordinatedEntity (described above). Reference examples are shown in Table 10 below.

表10:CoordinatedFrame   Table 10: Coordinated Frame

Figure 0005014584
Figure 0005014584

一般に、エンティティ上に現れるフレーム(「with」構文を介して)は制約として振る舞う。後述のように、これは、接続詞は複数の制約をトリガすることにより表現されるが、離接的接続詞は、ホストエンティティをCoordinatedEntityに展開することにより表現されることを意味する。 In general, frames that appear on entities (via the “with” syntax) behave as constraints. As described below, this means that a conjunction is expressed by triggering multiple constraints, while a disjunctive conjunction is expressed by expanding a host entity to CoordinatedEntity.

すでに説明したように、一実施形態では、Framesは、自然言語の関係詞節をモデル化するためにエンティティに対する制約として使用されることができる。フレームが「with」キーワードを介してエンティティに付けられた場合、このフレームは、エンティティに制約を課し、これを「フレームベースの制約」と呼ぶ。大半のケースで、フレーム内の1つのスロットは、主要部名詞により束縛された自然言語のギャップに対応する。LOMでは、これは、スロットの1つのホストエンティティへの参照を受け取るフレームベースの制約に翻訳される。フレームベースの制約のスロットにホストエンティティへの参照を含めることを、「後方照応」と呼ぶことができる。そのような「後方照応」では他の手段ではツリー状のLOM表現への再入が可能なので、ギャップに対応するスロットでは、そのisBackreferenceフラグが真に設定される。(このフラグは、LOM表現を辿るプロセスのための単なる便宜として用意されている)。例えば、以下の表11では、フレームベースの制約は、「files that Billy opened yesterday」という語句と突き合わせて解決される。   As already explained, in one embodiment, Frames can be used as constraints on entities to model natural language relative clauses. If a frame is attached to an entity via the “with” keyword, this frame imposes a constraint on the entity, which is called a “frame-based constraint”. In most cases, one slot in the frame corresponds to a natural language gap bound by a main noun. In LOM, this translates into a frame-based constraint that accepts a reference to one host entity in the slot. Including a reference to the host entity in the slot of a frame-based constraint can be referred to as “backward adaptation”. In such “back-reading”, re-entry into the tree-like LOM representation is possible by other means, so that the isBackreference flag is set to true in the slot corresponding to the gap. (This flag is provided only as a convenience for the process of following the LOM representation). For example, in Table 11 below, the frame-based constraint is resolved against the phrase “files that Billy opened yesterday”.

表11:フレームベースの制約   Table 11: Frame-based constraints

Figure 0005014584
Figure 0005014584

表12では、フレームベースの制約は、「people who work at Company」という語句と突き合わせて解決される。 In Table 12, frame-based constraints are resolved against the phrase “people who work at Company”.

表12:フレームベースの制約   Table 12: Frame-based constraints

Figure 0005014584
Figure 0005014584

表13では、フレームベースの制約は、「people I have sent mail to」という語句と突き合わせて解決される。 In Table 13, the frame-based constraint is resolved against the phrase “people I have sent mail to”.

表13:フレームベースの制約   Table 13: Frame-based constraints

Figure 0005014584
Figure 0005014584

フレームベースの制約により導入される再入により、SPLの解決プロセスに困難が生じることに留意することが大切である。特に、エンティティは、すべての制約が完全に処理されるまで完全には解決されない(したがって、SPLでは、技術的には「存在」しない)。しかし、エンティティの制約の1つは、そのスロットの1つの中のエンティティ自体を受け取るフレームとすることができる。したがって、フレームを定義するコードによりエンティティオブジェクトを調査する必要があるという状況が発生するが、それでも、フレームの解決が終了した後のある時点までエンティティは未定義状態のままである。この問題については、以下のセクションE.4で詳述する。 It is important to note that the re-entry introduced by frame-based constraints creates difficulties in the SPL resolution process. In particular, an entity is not fully resolved until all constraints have been fully processed (and thus technically “not present” in SPL). However, one of the entity constraints can be a frame that receives the entity itself in one of its slots. Thus, a situation arises where the entity object needs to be examined by the code that defines the frame, but the entity still remains undefined until some point after resolution of the frame is finished. This issue is discussed in Section E. below. 4 will be described in detail.

他の実施形態では、Framesは、スロットを持たないが、その代わりに、上述のように「Doer」および「DoneTo」制約を使用する。このような場合、新しい制約は、フレームに基づいて定義されることができ、「Doer」および「DoneTo」の制約節は、その新しい制約に適用可能である。したがって、制約は、フレーム項を取り扱う代替手段を提示する。以下の説明では、簡単のため、そのような1つの実装のみを参照するが、いずれの実装も適用可能である。   In other embodiments, Frames does not have slots, but instead uses “Doer” and “DoneTo” constraints as described above. In such a case, a new constraint can be defined based on the frame, and the “Doer” and “DoneTo” constraint clauses are applicable to the new constraint. Thus, constraints present an alternative means of handling frame terms. In the following description, only one such implementation will be referred to for simplicity, but any implementation is applicable.

c.LOM制約
エンティティおよびフレームとは異なり、制約の調整は、CoordinatedEntityおよびCoordinatedFrameなどの「複合」型を使用して表されるわけではない。その代わりに、SPLの意味論を利用して制約接続詞を表すが、制約離接的接続詞は、エンティティまたはフレーム離接的接続詞に帰着される。
c. LOM Constraints Unlike entities and frames, constraint adjustments are not represented using “composite” types such as CoordinatedEntity and CoordinatedFrame. Instead, SPL semantics are used to represent constrained conjunctions, but constrained disjunctive conjunctions result in entity or frame disjunctive conjunctions.

SPLは、接続詞または交差意味論(intersection semantics)を、同じホスト上で順次トリガすることに成功する2つの制約節に割り当て、したがって、制約でモデル化された資料の言語的接続詞は、単に2つ以上の制約を順次トリガすることにより取り扱われる。その一方で、制約によりモデル化された資料の言語的離接的接続詞は、SPL意味論では都合のよい片割れを持たない。そこで、このような離接的接続詞は、制約(通常はホスト)の上の次のエンティティまたはフレームまで「バブルアップし」、そのレベルでCoordinatedEntityまたはCoordinatedFrameオブジェクトを引き起こす。   SPL assigns conjunctions or intersection semantics to two constraint clauses that succeed in triggering sequentially on the same host, so there are only two linguistic conjunctions of the material modeled with constraints. The above constraints are handled by triggering sequentially. On the other hand, linguistic disjunctive conjunctions of materials modeled by constraints do not have a convenient fragment in SPL semantics. Thus, such disjunctive conjunctions "bubble up" to the next entity or frame on the constraint (usually the host), causing a CoordinatedEntity or CoordinatedFrame object at that level.

例えば、「mail from Kim or to Robin」という語句の場合、1つのエンティティホスト「Entity(mail)」と2つの制約「Source(Entity(Kim))」および「Goal(Entity(Robin))」がある。これら2つの制約は、離接的接続詞「or」で調整されるため、離接的接続詞はホスト「Entity(mail)」までバブルアップし、その結果、表14に例示されているマッピングが得られる。   For example, in the case of the phrase “mail from Kim or to Robin”, there is one entity host “Entity (mail)” and two constraints “Source (Entity (Kim))” and “Goal (Entity (Robin))”. . Since these two constraints are coordinated by the disjunctive conjunction “or”, the disjunctive conjunction bubbles up to the host “Entity (mail)”, resulting in the mapping illustrated in Table 14 .

表14:制約調整   Table 14: Constraint adjustment

Figure 0005014584
Figure 0005014584

このコードは、Entity(mail)の2つのコピーを出力する。 This code outputs two copies of Entity (mail).

Accompaniment制約は、何らかのグループ内の1つまたは複数の追加メンバをモデル化する。多くの場合、随伴(accompaniment)は、接続詞により言い換えることができる。例えば、「customers along with their birthdates」という語句は、「customers and their birthdates」と言い換えることができる。reciprocal−event−denotingエンティティの場合、随伴制約は、事象への追加関与部をモデル化する。このような名詞語句は、対応するフレームを持つことが多い(例えば、「correspond」、「meet」、「chat」など)。随伴制約は、さらに、「correspondence with my manager」、「an appointment with Kim」、「meeting with Tim」(強調が追加される)、「a chat with Sue」などの名詞句内の前置詞句もモデル化する。本発明の一実施形態によるAccompaniment制約の構文の例が表15に例示されている。 Accompaniment constraints model one or more additional members in some group. In many cases, an accompaniment can be paraphrased by a conjunction. For example, the phrase “customers along with the birthdates” can be restated as “customers and theirirth birthdates”. In the case of a reciprocal-event-denoting entity, an adjoint constraint models an additional participant in the event. Such noun phrases often have a corresponding frame (eg, “correspond”, “meet”, “chat”, etc.). The adjoint constraints are also prefixed in noun phrases such as “correspondence with my manager ”, “an appointment with Kim ”, “meeting with Time ” (emphasis added), and “a chat with Sue ”. To do. An example of an Accompaniment constraint syntax according to one embodiment of the present invention is illustrated in Table 15.

表15:Accompaniment   Table 15: Accompaniment

Figure 0005014584
Figure 0005014584

Accompaniment制約も、Frameの文脈で追加のwhoまたはwhat関与部(additional who or what participants)をモデル化することができる。例えば、「chat with Robin」という語句は、語句「with Robin」を随伴制約とする「Chat」フレームを呼び出す。   Accompaniment constraints can also model additional who or what participants in the context of Frame. For example, the phrase “chat with Robin” invokes a “Chat” frame with the phrase “with Robin” as an adjoint constraint.

随伴制約は、さらに、ホストに随伴すると解釈される名詞句をモデル化するエンティティ内のスロットに割り当てられることができる。そうする代わりに、随伴制約を「who」または「what」スロットに設定することができる。   Adjoint constraints can also be assigned to slots in entities that model noun phrases that are interpreted as accompanying the host. Instead, an adjoint constraint can be set on a “who” or “what” slot.

いくつかの場合において、意味論的に接続詞と同等である、「with」のケースのリストをエンティティリストとしてコンパイルすることが望ましい場合がある。他の言語にも同等の随伴表現が存在する限り、必要に応じてそれらの表現に対するエンティティリストをコンパイルするのは有益と考えられる。   In some cases, it may be desirable to compile a list of “with” cases that are semantically equivalent to a conjunction as an entity list. As long as there are equivalent companion representations in other languages, it may be useful to compile entity lists for those representations as needed.

随伴としてモデル化することができる所有格に関して、それらをエンティティリストに含めることも望ましい場合がある。例えば、「email with attachments」は随伴スタイルの所有であるが、それに対して「email’s attachments」は所有者スタイルの所有である。いくつかの場合において、これらは言語的に補完し合う表現として処理することができる。さらに、「an email that has attachments」などの語句も、随伴制約としてモデル化することができる。   For those possessions that can be modeled as companions, it may also be desirable to include them in the entity list. For example, “email with attachments” is owned by the companion style, whereas “email's attachments” is owned by the owner style. In some cases, these can be treated as linguistic complementary expressions. Furthermore, phrases such as “an email that has attachments” can also be modeled as adjoint constraints.

主語相互関係(Subject reciprocals)も、随伴制約に畳み込むことができる。主語相互関係の例は、「John and Mary chatted」に対する「John chatted with Mary」である。語彙的には、これら2つの表現は容易に識別できる。同様に、「Merge File A with File B」に対する「Merge File A and File B」などの目的語相互関係(object reciprocals)も容易に識別可能である。このような主語および目的語相互関係をLOMにおける随伴正規化に組み込むことが望ましいと思われる。   Subject reciprocals can also be convolved with adjoint constraints. An example of the subject interrelationship is “John chatted with Mary” for “John and Mary chatted”. In lexical terms, these two expressions are easily distinguishable. Similarly, object reciprocals such as “Merge File A and File B” for “Merge File A with File B” can be easily identified. It would be desirable to incorporate such subject and object correlations into adjoint normalization in LOM.

随伴制約は、多くの言語に拡張され、特に「along with」または「together with」などの前置詞句に関して、拡張される。フランス語、ドイツ語、日本語、スペイン語、およびその他の言語では、類似の随伴制約を採用することができる。表16にこのような随伴を例示する。   Adjoint constraints are extended to many languages, especially with respect to prepositional phrases such as “along with” or “together with”. Similar adjoint constraints can be employed in French, German, Japanese, Spanish, and other languages. Table 16 illustrates such an entailment.

表16:随伴制約   Table 16: Adjoint constraints

Figure 0005014584
Figure 0005014584

表17に例示されているような割り当て制約では、一般的に、ホストエンティティが分配されるエンティティをモデル化するか、またはホストエンティティの代わりに存在または作成されたエンティティをモデル化する。   Allocation constraints, such as those illustrated in Table 17, generally model the entity to which the host entity is distributed, or the entity that exists or is created instead of the host entity.

表17:Allocation制約   Table 17: Allocation constraints

Figure 0005014584
Figure 0005014584

割り当て制約(allocation restriction)で、ホストエンティティが分配されるエンティティをモデル化する場合、そのような制約の一例は、「online profile for each fund」、「schools for linguistics」、または「application for a job」となるであろう。下線付きの部分は、割り当て制約を示している。割り当て制約で、ホストエンティティの代わりに存在するか、または作成されたエンティティをモデル化する場合、意味論的発話は「a cake for my mother」または「party for my manager」としてよいであろう。両方の場合において、割り当て制約は、特異性をエンティティに加える。表16は、割り当て制約の一実施形態を例示している。割り当て制約は、スロットを使用するホストに割り当てられるとして解釈される名詞句をモデル化するエンティティに設定することができる。 When modeling an entity to which a host entity is distributed with an allocation restriction, one example of such a constraint is “online profile for search funds ”, “stools for linguistics” , or “application for aj obj ”. It will be. The underlined part indicates the allocation constraint. If an assignment constraint models an entity that exists or is created instead of a host entity, the semantic utterance may be "a cake for my mother " or "party for my manager ". In both cases, the assignment constraint adds specificity to the entity. Table 16 illustrates one embodiment of allocation constraints. Assignment constraints can be set on entities that model noun phrases that are interpreted as being assigned to hosts that use the slot.

一般に、割り当て制約は、単数形だけでなく複数形のエンティティへの割り当てにも適用できる。割り当て制約は、英語のBeneficiaryと相補分布をなす。ただ1つのエンティティが割り当てのホストとなる。フレームのみが、特に、「for」前置詞句に対する単数形目的語で受益者のホストとなる。英語では、この前置詞は、様々な形で使用することができる。例えば、「packets for a specific destination」では、これは目的を示すが、「application for which you are enabling authorization checking」では、割り当ての種類である。同様に「tabs for taskpad views」、「checkbox for the type of service」、および「area code for Madison,WI」はすべて、割り当て制約を表す。ドイツ語では、とりわけ、「fur」が割り当てを表す。スペイン語では、対応する前置詞は、paraであり、「una escoba para la cocina」という語句は、割り当て制約を示す。 In general, assignment constraints can be applied to assignments to plural entities as well as singular. The allocation constraint has a complementary distribution with English Beneficity. Only one entity is the host of assignments. Only the frame is the beneficiary's host, especially the singular object for the “for” prepositional phrase. In English, this preposition can be used in various ways. For example, in “packets for a specific destination ”, this indicates the purpose, but in “application for which you are enabling authorization checking ”, it is the type of assignment. Similarly, “tabs for taskpad views ”, “checkbox for the type of service ”, and “area code for Madison, WI ” all represent allocation constraints. In German, among others, “fur” represents an assignment. In Spanish, the corresponding preposition is para, and the phrase “una escoba para la cocina ” indicates an assignment constraint.

Frame上の「AsBeing」制約は、フレームの目的語スロットに割り当てられたプロパティまたはキャパシティをモデル化する。形容詞句をモデル化する修飾語句のみが制約バージョンにマッピングされる。表18は、AsBeing制約の2つのコードサンプルを示している。   The “AsBeing” constraint on Frame models the property or capacity assigned to the object slot of the frame. Only modifiers that model adjective phrases are mapped to constraint versions. Table 18 shows two code samples for AsBeing constraints.

表18:AsBeing制約   Table 18: AsBeing constraints

Figure 0005014584
Figure 0005014584

一般に、LOMは発話の辞書見出し語の間の意味論的関係をモデル化する。「AsBeing」制約では、前置詞句「as」をモデル化しようと試みる。例えば、「Save the file as a text file」という語句は、「Save the file to a text file」という語句に類似している。「Set my status as busy」は、「Set my status to busy」に類似している。「AsBeing」制約は、フレームの目的語スロットに割り当てられたプロパティまたはキャパシティをモデル化する。ここで、AsBeing制約は、フレームの目的語スロットに割り当てられたプロパティである、「text file」への制約「as」をモデル化する。そうする代わりに、この機能を、Entityではなく、Denoterに適用することも可能であろう。表19は、英語、ドイツ語、日本語、およびスペイン語でのAsBeing目的語の例を示している。 In general, LOM models the semantic relationship between utterance dictionary entries. The “AsBeing” constraint attempts to model the preposition phrase “as”. For example, the phrase “Save the file as a text file” is similar to the phrase “Save the file to a text file”. “Set my status as busy” is similar to “Set my status to busy”. The “AsBeing” constraint models the property or capacity assigned to the object slot of the frame. Here, the AsBeing constraint models the constraint “as” to “text file”, which is a property assigned to the object slot of the frame. Instead, it could be possible to apply this functionality to Denoter instead of Entity. Table 19 shows examples of AsBeing objects in English, German, Japanese, and Spanish.

表19:AsBeingの例   Table 19: Examples of AsBeing

Figure 0005014584
Figure 0005014584

基数詞制約は、数量詞で表されるような基数をモデル化する制約である。スロットおよびフィールドは、数量詞の浮動小数点数値に設定することができる。「an」および「a」などの不定冠詞は、場合によっては、「1」としてモデル化されることもある。表20は、基数制約を例示している。   A radix constraint is a constraint that models a radix as represented by a quantifier. Slots and fields can be set to quantifier floating point values. Indefinite articles such as “an” and “a” are sometimes modeled as “1”. Table 20 illustrates cardinality constraints.

表20:Cardinal制約   Table 20: Cardinal constraints

Figure 0005014584
Figure 0005014584

さらに、いくつかの場合には、基数を時間単位(「3時間」など)でブロック化するのが望ましいことがある。特に時間単位に関して、時間量を導入するには、通常、「in 3 hours」、または「for 3 minutes」などの前置詞句を必要とするため、基数制約をブロック化してもTime型オブジェクトとコンフリクトすることはないであろう(少なくとも英語では)。表21は、基数制約にマッピングできる表現の例をいくつか例示している。 Furthermore, in some cases it may be desirable to block the radix in units of time (eg, “3 hours”). Introducing the amount of time, especially in terms of time units, usually requires a prepositional phrase such as “in 3 hours” or “for 3 minutes”, so even if the radix constraint is blocked, it conflicts with the Time type object. There will be nothing (at least in English). Table 21 illustrates some examples of expressions that can be mapped to radix constraints.

表22:基数制約を示す表現例   Table 22: Expression examples showing cardinality constraints

Figure 0005014584
Figure 0005014584

他の型の制約「Comparison」は、エンティティと他の明示的に示されるエンティティとの比較をモデル化する。Comparison制約の構文は表23に例示されている。   Another type of constraint “Comparison” models a comparison of an entity with other explicitly indicated entities. The syntax of the Comparison constraint is illustrated in Table 23.

表23:Comparison制約   Table 23: Comparison constraints

Figure 0005014584
Figure 0005014584

比較制約は、比較するエンティティの1つが明示的に参照されていない場合など、暗黙の比較には使用されない。例えば、「a bigger file」は、暗黙の比較を示唆しており、比較制約を呼び出さない。 Comparison constraints are not used for implicit comparisons, such as when one of the comparing entities is not explicitly referenced. For example, “a bigger file” suggests an implicit comparison and does not invoke a comparison constraint.

比較制約は、次元スロットに適用可能であり、その場合、次元は形容詞句をモデル化する修飾語句制約に設定される。この修飾語句制約は、通常、「程度」制約を持ち、程度フィールドは、例えば、「more」、「less」、または「same」に設定される。「refpoint」フィールドは、ホストエンティティと比較されるエンティティに設定される。   A comparison constraint can be applied to a dimension slot, where the dimension is set to a modifier phrase that models an adjective phrase. This modifier phrase constraint typically has a “degree” constraint, and the degree field is set to, for example, “more”, “less”, or “same”. The “refpoint” field is set to the entity to be compared with the host entity.

特定の実装によっては、比較クラスを明示的に規定する最上級は特別な注意を要することがある。例えば、「the tallest girl in the class」という語句では、「class」は比較のrefpointとして呼ばれるか、またはその代わりに、「class」は「girl」に関する場所として呼ばれる可能性がある。様々他の最上級表現も、特別な注意を要することがある。例えば、「my daughter is tall for her age」という語句とスペイン語の同等の語句「mi hija es alta para su edad」も、LOMの観点から類似の問題を生じる。   Depending on the specific implementation, the superlative who explicitly specifies the comparison class may require special attention. For example, in the phrase “the tallest girl in the class”, “class” may be referred to as a refpoint of a comparison, or alternatively, “class” may be referred to as a place for “girl”. Various other superlative expressions may also require special attention. For example, the phrase “my daugter is tall for herage” and the Spanish equivalent “mi hija es alta para su edad” also cause similar problems from a LOM perspective.

表24は、比較制約によってモデル化できる表現の例をいくつか例示している。   Table 24 illustrates some examples of representations that can be modeled by comparison constraints.

表24:Comparison制約によりモデル化される表現例   Table 24: Expression examples modeled by comparison constraints

Figure 0005014584
Figure 0005014584

条件節制約では、発話内で表現された条件をモデル化する。表25は、条件節制約構文を例示している。   Conditional constraints model the conditions expressed in the utterance. Table 25 illustrates the conditional clause constraint syntax.

表25:Conditional制約   Table 25: Conditional constraints

Figure 0005014584
Figure 0005014584

前の例のように、条件節制約は、(とりわけ)英語、フランス語、ドイツ語、日本語、およびスペイン語を含む、ほとんどの言語においてモデル化することができる。 As in the previous example, conditional constraints can be modeled in most languages including (among other things) English, French, German, Japanese, and Spanish.

既定の制約は、特定のクラスの構文をモデル化せず、単に、他のLOMオブジェクトによりまだ請求されたことのない基礎的言語解析の一部へのインターフェースを提供するだけである。表26は、本発明の可能な1つの実装に対する既定の制約構文の例を示している。   The default constraints do not model the syntax of a particular class, but merely provide an interface to some of the basic language analysis that has not yet been claimed by other LOM objects. Table 26 shows an example of a default constraint syntax for one possible implementation of the present invention.

表26:Default制約   Table 26: Default constraints

Figure 0005014584
Figure 0005014584

Default制約の他の可能な変更形態は、単一のEntityをそのスロットとして受け取る。Default制約のこの変更形態では、この単一のEntityと制約のホストとなるオブジェクトとの関係が可能になる。   Another possible variation of the Default constraint receives a single Entity as its slot. This modification of the Default constraint allows a relationship between this single Entity and the object that hosts the constraint.

一般に、制約はそれに関連付けられたパターンを持ちうることに留意することが重要である。そのようなパターン関連付けにより、どの言語構文を識別すべきかについてLOMコンシューマはLOMプロデューサ(解析エンジン)と通信することが可能である。単純な例は、文字列ベースのパターンであろう。例えば、Source制約の使用では、パターンは[“due to”+X]を持ち、これにより、解析エンジン(LOMプロデューサ)がそのパターンをSource制約にマッピングするようにすることも可能である。パターン関連付けを言語解析に適用することにより、プログラマ(作者)は、ユーザ入力に対し低レベルの推論を実行することを選択できる。他のLOM型とは異なり、Default制約で暗示される言語共通正規化(cross−linguistic normalization)はない。   It is important to note that in general a constraint can have a pattern associated with it. Such pattern association allows the LOM consumer to communicate with the LOM producer (analysis engine) as to which language syntax to identify. A simple example would be a string-based pattern. For example, in the use of a Source constraint, the pattern has ["due to" + X], which may cause the analysis engine (LOM producer) to map the pattern to the Source constraint. By applying pattern association to linguistic analysis, programmers can choose to perform low-level inferences on user input. Unlike other LOM types, there is no cross-linguistic normalization that is implied by the Default constraint.

実装によっては、完全構文解析結果から単純な文字列までの何でも公開できる単一インターフェース(例えば、「ILinguisticAnalysis」)を定義する必要がある場合がある。一般に、パターンは、発話の一部がILinguisticAnalysisを通じて公開可能な異なる複数の方法に対応することがある。好ましい一実施形態では、解析エンジンの種類毎に1つずつ、ある範囲の既定の制約がある。   Depending on the implementation, it may be necessary to define a single interface (e.g., "ILinguistic Analysis") that can expose anything from a fully parsed result to a simple string. In general, a pattern may correspond to a number of different ways in which part of the utterance can be published through ILlinguistic Analysis. In a preferred embodiment, there is a range of predefined constraints, one for each type of analysis engine.

Degree制約は、形容詞句をモデル化する修飾語句制約にのみ付く。表27は、程度制約とDegreeType列挙型の構文を例示している。   A Degree constraint only attaches to a modifier constraint that models an adjective phrase. Table 27 illustrates the degree constraints and the syntax of the DegreeType enumeration type.

表27:Degree制約   Table 27: Degree constraints

Figure 0005014584
Figure 0005014584

次に、DegreeType列挙型の値は、形容詞句の意味に対する可能な様々な修飾を表す。程度フィールドは、適切な値に設定される。 Next, the value of the DegreeType enumeration represents various possible modifications to the meaning of the adjective phrase. The degree field is set to an appropriate value.

場合によっては、節否定(clausal negation)と高型副詞(high−type adverb)の両方を同時に取り出すことによりDegreeTypeの低い値を認識することが望ましいこともある。例えば、表現「not very big」は、否定(not)と副詞(very)を介して表現されるDegreeTypeの低い値を指す。否定を無視すると、発話の解釈を誤ることになるであろう。表28は、程度制約を使用してモデル化できる表現の例をいくつか例示している。   In some cases, it may be desirable to recognize a low value of DegreeType by simultaneously taking out both clause negation and high-type adverb. For example, the expression “not very big” refers to a low value of DegreeType expressed via negation and adverb. If negation is neglected, the utterance will be misinterpreted. Table 28 illustrates some examples of representations that can be modeled using degree constraints.

表28:程度制約を含意する語句の例   Table 28: Examples of phrases that imply degree constraints

Figure 0005014584
Figure 0005014584

当業者であれば、他のDegree制約型が英語とドイツ語に存在し、そのような制約型は、さらに、ほとんどの言語にも存在することを理解するであろう。Degree制約には、ほとんどどのような言語でもアクセスできる。 One skilled in the art will appreciate that other Degree constraint types exist in English and German, and such constraint types also exist in most languages. Degree constraints can be accessed in almost any language.

Direction制約では、運動の方向または空間位置の向きをモデル化する。表29は、Direction制約およびその関連する列挙型の一例を示している。   The Direction constraint models the direction of motion or the direction of spatial position. Table 29 shows an example of Direction constraints and their associated enumeration types.

表29:Direction制約および関連する列挙型   Table 29: Direction constraints and associated enumerations

Figure 0005014584
Figure 0005014584

スロットのDirection型(「DirType」)フィールドは、適切な列挙値に設定することができる。場合によっては、他の列挙値が望ましいこともある。例えば、コマンド「turn」は明示されない方向を持つが、「turn」は方向を引数としてとることを予期しているように見える。したがって、実装に応じて、そのような表現を他の表現から区別できるように「Unspecified」に対する列挙値を指定することが望ましい場合がある。動詞で合成された値は、語彙エントリに新しいオブジェクト表現として格納することができる。Direction制約は、付く部位に関係なく、方向のオブジェクト(前置詞句)および方向副詞を含むことを理解することも重要である。表30は、Direction制約によってモデル化できる表現の例をいくつか示している。   The direction type ("DirType") field of the slot can be set to an appropriate enumeration value. In some cases, other enumerated values may be desirable. For example, the command “turn” has an unspecified direction, but “turn” appears to expect to take the direction as an argument. Therefore, depending on the implementation, it may be desirable to specify an enumerated value for “Unspecified” so that such an expression can be distinguished from other expressions. The value synthesized with the verb can be stored as a new object representation in the vocabulary entry. It is also important to understand that Direction constraints include directional objects (prepositional phrases) and directional adverbs, regardless of where they are attached. Table 30 shows some examples of representations that can be modeled by Direction constraints.

表30:Direction制約によりモデル化される語句の例   Table 30: Examples of phrases modeled by Direction constraints

Figure 0005014584
Figure 0005014584

当業者であれば、他のDirection制約型が英語とドイツ語に存在し、そのような制約型は、さらに、ほとんどの言語にも存在することを理解するであろう。 One skilled in the art will appreciate that other Direction constraint types exist in English and German, and such constraint types also exist in most languages.

Example制約では、エンティティ型、フレームまたは制約の見本をモデル化している。表31は、そのようなそれぞれのExapmle制約型に対する構文を例示する。   An Example constraint models a sample entity type, frame, or constraint. Table 31 illustrates the syntax for each such Example constraint type.

表31:Example制約   Table 31: Example constraints

Figure 0005014584
Figure 0005014584

いくつかの実装では、以下のような構造を付けるためにSimilarTo制約を用意することが望ましい場合がある。 In some implementations, it may be desirable to provide a SimilarTo constraint to provide the following structure.

I want to find vendors, for example Volt.
I want to find vendors, Volt, for example.
他の実施形態では、見本が一例である目的語(what)用に追加スロットを用意することが望ましい場合もある。例えば、「This program exemplifies solid coding techniques」という語句は、「solid coding techniques」という語句をモデル化するための付加スロットを必要とすることがある。一般に、Example制約は直喩をモデル化するとして理解できる。表32は、Example制約によってモデル化できる語句をいくつか示している。
I want to find vendors, for example Volt .
I want to find vendors, Volt, for example .
In other embodiments, it may be desirable to provide an additional slot for what is a sample. For example, the phrase “This program exemplifies solid coding techniques” may require an additional slot to model the phrase “solid coding techniques”. In general, the Example constraint can be understood as modeling a simile. Table 32 shows some terms that can be modeled by the Example constraint.

表32:Example制約によりモデル化される語句の例   Table 32: Examples of phrases modeled by Example constraints

Figure 0005014584
Figure 0005014584

当業者であれば、他のExample制約型が英語、ドイツ語、およびスペイン語に存在し、そのような制約型は、さらに、他の言語にも存在することを理解するであろう。Example制約には、ほとんどどのような言語でもアクセスできる。 One skilled in the art will appreciate that other example constraint types exist in English, German, and Spanish, and that such constraint types also exist in other languages. You can access the Example constraint in almost any language.

Extent制約は、空間内の範囲の何らかの概念の測定に関係するエンティティをモデル化する。表33は、Extent制約の構文を例示している。   Extent constraints model entities that are involved in measuring some concept of a range in space. Table 33 illustrates the extent constraint syntax.

表33:Extent制約   Table 33: Extent constraints

Figure 0005014584
Figure 0005014584

一般に、スロットの範囲フィールドは、範囲の測定をモデル化するEntityに設定される。一実施形態では、範囲前置詞句の目的語は、発話内の付く部位と無関係である。表34は、Extent制約によりモデル化することができる英語およびスペイン語の語の一例を示す。 In general, the slot range field is set to an Entity that models the range measurement. In one embodiment, the object of the range preposition phrase is independent of the place in the utterance. Table 34 shows an example of English and Spanish words that can be modeled by Extent constraints.

表34:Extent制約によりモデル化される語句の例   Table 34: Examples of phrases modeled by extent constraints

Figure 0005014584
Figure 0005014584

Goal制約は、EntityまたはFrameに関する(隠喩的のまたは物理的な)運動のゴールまたは状態変化の最終状態をモデル化する。表35は、本発明の一実施形態によるGoal制約の構文を例示している。   Goal constraints model the goal of a (metaphoric or physical) movement or the final state of a state change on an Entity or Frame. Table 35 illustrates the syntax of a Goal constraint according to one embodiment of the present invention.

表35:Goal制約   Table 35: Goal constraints

Figure 0005014584
Figure 0005014584

Goal制約は、1つまたは複数の列挙型値に関連付けることができる。フィールド「DirType」(上の表29で定義されている)は、例えば、適切な列挙型値に設定できる、Goal制約の列挙型値とすることができる。表36は、Goal制約によってモデル化できる語句をいくつか示している。 A Goal constraint can be associated with one or more enumerated values. The field “DirType” (defined in Table 29 above) can be, for example, a Goal enumerated value that can be set to an appropriate enumerated value. Table 36 shows some words that can be modeled by the Goal constraint.

表36:Goal制約によりモデル化される語句の例   Table 36: Examples of phrases modeled with Goal constraints

Figure 0005014584
Figure 0005014584

当業者であれば、他のGoal制約型がほとんどの言語に存在することを理解するであろう。Goal制約には、ほとんどの言語でアクセスできる。   One skilled in the art will appreciate that other Goal constraint types exist in most languages. Goal constraints are accessible in most languages.

Iteration制約は、作用の反復をモデル化する。表37は、Iteration制約の構文を例示している。   The Iteration constraint models an iteration of action. Table 37 illustrates the syntax of the iteration constraint.

表37:Iteration制約   Table 37: Iteration constraints

Figure 0005014584
Figure 0005014584

一実施形態では、Iteration制約は、時間制約のRecurrenceフィールドに組み込むことが可能である。一般に、型Countのフィールドは、作用が一定回数繰り返されることを示す(例えば、do[something]5 times)。型がこの値を持つ場合、フィールド「times」は反復回数を保持する。型が他の値を持つ場合、型は、特定の反復回数を表さない修飾語句をモデル化する。したがって、型がcountに設定されていない場合、これは、反復回数を保持し、そうでなければ、型は無視される。表38は、Iteration制約によってモデル化できるいくつかの語および語句を示している。 In one embodiment, the Iteration constraint can be incorporated into the Recurrence field of the time constraint. In general, a field of type Count indicates that the action is repeated a certain number of times (eg, do [something] 5 times ). If the type has this value, the field “times” holds the number of iterations. If the type has other values, the type models a modifier that does not represent a specific number of iterations. Thus, if the type is not set to count, this holds the number of iterations, otherwise the type is ignored. Table 38 shows some words and phrases that can be modeled by Iteration constraints.

表38:Iteration制約によりモデル化される語句の例   Table 38: Examples of phrases modeled by Iteration constraints

Figure 0005014584
Figure 0005014584

当業者であれば、他のIteration制約型がほとんどの言語に存在することを理解するであろう。Iteration制約には、ほとんどの言語でアクセスできる。   One skilled in the art will appreciate that other Iteration constraint types exist in most languages. Iteration constraints are accessible in most languages.

Location制約は、物理的場所または隠喩的な場所をモデル化する。表39は、Location制約の構文を例示している。   Location constraints model physical or metaphorical locations. Table 39 illustrates the location constraint syntax.

表39:Location制約   Table 39: Location constraints

Figure 0005014584
Figure 0005014584

表40は、Location制約によってモデル化できるいくつかの語および/または語句を示している。   Table 40 shows some words and / or phrases that can be modeled by Location constraints.

表40:Location制約によりモデル化される語/語句の例   Table 40: Examples of words / phrases modeled by Location constraints

Figure 0005014584
Figure 0005014584

当業者であれば、他のLocation制約型がほとんどの言語に存在することを理解するであろう。Location制約には、ほとんどの言語でアクセスできる。   One skilled in the art will appreciate that other Location constraint types exist in most languages. Location constraints are accessible in most languages.

Means制約では、EntityまたはFrameについて何かを遂行するための手段またはデバイスをモデル化する。Means制約の構文は表41に例示されている。   The Means constraint models a means or device for performing something about an Entity or Frame. The syntax of the Means constraint is illustrated in Table 41.

表41:Means制約   Table 41: Means constraints

Figure 0005014584
Figure 0005014584

当業者であれば、他のMeans制約型がほとんどの言語に存在することを理解するであろう。Means制約には、ほとんどの言語でアクセスできる。Means制約を使用してモデル化できる語/語句の例が表42に示されている。   One skilled in the art will appreciate that other Means constraint types exist in most languages. The Means constraint is accessible in most languages. Examples of words / phrases that can be modeled using Means constraints are shown in Table 42.

表42:Means制約によりモデル化される語/語句の例   Table 42: Examples of words / phrases modeled by Means constraint

Figure 0005014584
Figure 0005014584

Measure制約では、FrameまたはEntityに対するオブジェクトの重みまたは尺度をモデル化する。表43は、本発明の一実施形態によるMeasure制約の構文を例示している。   A Measurement constraint models the weight or measure of an object relative to a Frame or Entity. Table 43 illustrates the syntax of the Measurement constraint according to one embodiment of the present invention.

表43:Measure制約   Table 43: Measurement constraints

Figure 0005014584
Figure 0005014584

当業者であれば、他のMeasure制約型が様々な言語に存在することを理解するであろう。Measure制約には、ほとんどの言語でアクセスできる。表44は、Measure制約によってモデル化できるいくつかの語/語句を示している。   One skilled in the art will appreciate that other Measurement constraint types exist in various languages. Measurement constraints are accessible in most languages. Table 44 shows some words / phrases that can be modeled by a Measurement constraint.

表44:Measure制約によりモデル化される語/語句の例   Table 44: Examples of words / phrases modeled by Measurement constraints

Figure 0005014584
Figure 0005014584

Modifier制約は、言語表現の意味論的に首尾一貫しているクラスをモデル化しないという点で「catchall」(「ゴミ捨て場」)制約と考えることができる。代わりに、これは、「付属(adjuncthood)」の統合上の概念を捕捉する。一般に、Modifier制約は、Entity、Frame、またはRestrictionに関して形容詞句、名詞句、または副詞句をモデル化することができる。一実施形態では、修飾語句スロットは、単に、モデル化される統合的語句の見出し語から構成される構文表記オブジェクトに設定されるだけである。しかし、この実施形態は、LOMを使用するために必ず必要であるというわけではない。表45は、本発明の一実施形態によるModifier制約の構文を例示している。   A Modifier constraint can be considered a “catchall” (“trash dump”) constraint in that it does not model semantically consistent classes of linguistic expressions. Instead, it captures the “adjuncthood” integration concept. In general, a Modifier constraint can model an adjective phrase, noun phrase, or adverb phrase with respect to Entity, Frame, or Restriction. In one embodiment, the modifier slot is simply set to a syntax notation object consisting of the headwords of the integrated phrase being modeled. However, this embodiment is not absolutely necessary to use LOM. Table 45 illustrates the syntax of the Modifier constraint according to one embodiment of the present invention.

表45:Modifier制約   Table 45: Modifier constraints

Figure 0005014584
Figure 0005014584

一般に、Modifier制約では、任意の文脈において言語修飾語句のあるクラスをモデル化する。どのような言語修飾語句も修飾語句になりえるが、Modifier制約は、言語修飾語句の部分集合のみを示す主LOM表現であることを意図している。その部分集合は、ほとんどまたはすべての形容詞句、ほとんどまたはすべての名詞句修飾語句、およびいくつかの副詞句を含む。多くの副詞句、例えば、1つの大きな例として、時間表現には、他のより固有性の高い制約において主LOM表現が見つかる。   In general, a Modifier constraint models a class with language modifiers in an arbitrary context. Although any language modifier can be a modifier, the Modifier constraint is intended to be a main LOM expression that shows only a subset of language modifiers. The subset includes most or all adjective phrases, most or all noun phrase modifiers, and several adverb phrases. In many adverb phrases, for example, as one large example, the temporal representation finds the main LOM representation in other more specific constraints.

Modifier制約は、スロットはEntity、FrameまたはRestrictionではなく表記オブジェクトを含むという点でふつうと違う。Denoterオブジェクト文字列は、修飾語句の見出し語である。この配置をとる理由は、言語的修飾語句はそのホスト(修飾される構成要素)上で意味論的に1つの場所において機能し、したがってフレームと似ているが、実際には、ほとんどもっぱら制約として使用されることである。そのうえ、言語的修飾語句は、フレームが出現するかもしれない他の文脈内にほとんど現れることはない。面倒なフレームベースの制約構文(with MyLargeFrame<this>のような何か)およびそれぞれの所望の修飾語句クラスに対するフレーム型の定義を必要とせずに、修飾語句クラスに対しDenoterオブジェクトのみを指定し、暗黙の制約文法項(restriction argument)(制約が付くホストオブジェクトなど)を意味文法項(semantic argument)とみなすことで十分である。   The Modifier constraint is usually different in that a slot contains a notation object rather than an Entity, Frame or Restriction. The Denometer object character string is a headword of the modifier. The reason for this arrangement is that the linguistic modifier works semantically in one place on its host (the component being modified) and thus resembles a frame, but in practice, almost exclusively as a constraint Is to be used. Moreover, linguistic modifiers rarely appear in other contexts where a frame may appear. Specify only the Denometer object for a modifier class, without the need for a cumbersome frame-based constraint syntax (something like with MyMyFrameFrame <this>) and a frame type definition for each desired modifier class, It is sufficient to consider implicit constraint grammar terms (such as host objects with constraints) as semantic grammar terms.

関係詞節内の叙述形容詞は、その同じ形容詞の対応する限定用法と同じ方法で表される。したがって「a large file」と「a file that is large」は両方とも、Modifier<large>となる。 A narrative adjective within a relative clause is expressed in the same way as the corresponding restricted usage of that same adjective. Therefore, both “a large file ” and “a file that is large ” become Modifier <large>.

このような形容詞の取り扱いは、構文的に動詞と区別できない振る舞いをする形容詞を持つ日本語などの一部の言語については適切でない場合がある。名詞は言語共通で非常によく似ているが、名詞は、SPLエンティティにマッピングされる。動詞もまた言語共通で似ているが、動詞は、SPLフレームにマッピングされる。すると、形容詞は、名詞と動詞の中間にあり、形容詞は、言語共通で類似していない。   The handling of such adjectives may not be appropriate for some languages such as Japanese with adjectives that behave syntactically indistinguishable from verbs. Nouns are very common across languages, but nouns are mapped to SPL entities. Verbs are also similar across languages, but verbs are mapped to SPL frames. Then, an adjective is in the middle of a noun and a verb, and adjectives are not similar in common languages.

言語は、連続体上に存在すると考えることができる。連続体の一端では、形容詞は、実際には、韓国語などでのように、動詞と別の語彙カテゴリではない。この場合、形容詞は、状態自動詞にすぎない。日本語は、この点に関して韓国語に類似しており、形容詞は構文上動詞のように振る舞う(形態論的に異なるが)。英語およびラテン語起源の言語(ヨーロッパの言語)では、形容詞を動詞と異なるカテゴリとして取り扱う。アラビア語など、その範囲のもう一方の言語では、形容詞をあるクラスの名詞として取り扱う。アラビア語では、「red」に対する単語でなく、「a red one」のような何かを意味する名詞を使用し、「the book is red」は「the book is a−red−one」となる。   Language can be considered to exist on a continuum. At one end of the continuum, adjectives are not actually a separate vocabulary category from verbs, as in Korean. In this case, the adjective is only a state intransitive verb. Japanese is similar to Korean in this respect, and adjectives behave syntactically like verbs (although they differ morphologically). In English and Latin languages (European languages), adjectives are treated as a different category from verbs. In other languages, such as Arabic, adjectives are treated as a class of nouns. In Arabic, nouns that mean something like “a red one” are used instead of words for “red”, and “the book is red” becomes “the book is a-red-one”.

いくつかの実施形態では、母型節(matrix clauses)内の叙述形容詞の表現がありうる。例えば、「this file is personal」という語句は、「this file is text」と異なる取り扱いになる可能性がある。   In some embodiments, there can be a representation of narrative adjectives within the matrix clauses. For example, the phrase “this file is personal” may be treated differently than “this file is text”.

さらに、当業者であれば、他のModifier制約型が様々な言語に存在することを理解するであろう。Modifier制約には、ほとんどの言語でアクセスできる。   Moreover, those skilled in the art will appreciate that other modifier constraint types exist in various languages. Modifier constraints are accessible in most languages.

Named制約を使用すると、ホストエンティティの表記オブジェクト(denoter object)にアクセスできる。これにより、例えば、MyAliasおよびDL_MyAliasを単一のDLEntityに正規化することができ、しかも著者が2つの異なる制約に対しコーディングしなくて済む。表46は、本発明の一実施形態によるNamed制約の構文を例示している。   The Named constraint can be used to access the host entity's denotor object. This allows, for example, MyAlias and DL_MyAlias to be normalized to a single DLEntity, and the author does not have to code for two different constraints. Table 46 illustrates the syntax of Named constraints according to one embodiment of the present invention.

表46:Named制約   Table 46: Named constraints

Figure 0005014584
Figure 0005014584

一般に、Named制約は、名詞句名またはホストエンティティの表記オブジェクトに設定される。いくつかの実施形態では、Named制約を使用して、名前付きエンティティ属性に何らかのアクセスを行える。他の実施形態では、Named制約は、Modifier制約にマージされる。一般に、Named制約は、すでに存在している情報(ホストエンティティの表記オブジェクトなど)を必要に応じて提示することができる。 Generally, Named constraints are set on noun phrase names or host entity notation objects. In some embodiments, Named constraints can be used to provide some access to named entity attributes. In other embodiments, Named constraints are merged with Modifier constraints. In general, Named constraints can present information that already exists (such as host entity notation objects) as needed.

当業者であれば、他のNamed制約型が様々な言語に存在することを理解するであろう。Named制約には、ほとんどの言語でアクセスできる。   One skilled in the art will appreciate that other Named constraint types exist in various languages. Named constraints are accessible in most languages.

Negation制約では、意味論的否定または論理NOTをモデル化する。表47は、本発明の一実施形態によるNegation制約の構文の例を示している。   The Negation constraint models semantic negation or logical NOT. Table 47 shows an example of the syntax for Negation constraints according to one embodiment of the present invention.

表47:Negation制約   Table 47: Negation constraints

Figure 0005014584
Figure 0005014584

いくつかの実施形態では、Negation制約は、別の制約として提示されることができる。他の実施形態では、Negation制約は、「with Negation」節または「!」(Not演算子)のいずれかにより消費できる。 In some embodiments, the Negation constraint can be presented as another constraint. In other embodiments, a Negation constraint can be consumed by either a “with Negation” clause or a “!” (Not operator).

Ordinal制約では、位置の何らかの概念を順に表現する序数詞およびその他の修飾語句(「previous」など)をモデル化する。表48は、本発明の一実施形態によるOrdinal制約およびその列挙型の構文を例示している。   The Ordinal constraint models an ordinal and other modifiers (such as “previous”) that in turn represent some concept of position. Table 48 illustrates the Ordinal constraint and its enumerated syntax according to one embodiment of the present invention.

表48:Ordinal制約および列挙型   Table 48: Ordinal constraints and enumerations

Figure 0005014584
Figure 0005014584

一般に、距離フィールドは、参照点からの符号付き整数距離に設定することができる。その代わりに、firstと呼ばれる参照点フィールド(refPoint)は、非負距離を示さなければならない。距離値0は、firstをモデル化し、値1はsecondをモデル化し、というように続く。lastの参照点フィールドは、非正距離でなければならない。距離値0は、lastをモデル化し、値−1はnext−to−lastをモデル化し、というように続く。現在の参照点距離は、整数値を保持することができる。距離値0は、「current」ステータスをモデル化し、値1は「next」をモデル化し、値−1は「previous」をモデル化し、というように続く。 In general, the distance field can be set to a signed integer distance from the reference point. Instead, a reference point field called refPoint (refPoint) must indicate a non-negative distance. A distance value of 0 models first, a value of 1 models second, and so on. The last reference point field must be a non-positive distance. A distance value of 0 models last, a value of -1 models next-to-last, and so on. The current reference point distance can hold an integer value. A distance value of 0 models "current" status, a value of 1 models "next", a value of -1 models "previous", and so on.

表49は、Ordinal制約によってモデル化できる語句をいくつか示している。   Table 49 shows some terms that can be modeled by the Ordinal constraint.

表49:Ordinal制約によりモデル化された語句例   Table 49: Phrases modeled by the Ordinal constraint

Figure 0005014584
Figure 0005014584

当業者であれば、他のOrdinal制約型が様々な言語に存在することを理解するであろう。Ordinal制約には、ほとんどの言語でアクセスできる。   One skilled in the art will appreciate that other Ordinal constraint types exist in various languages. The Ordinal constraint is accessible in most languages.

Possessed制約では、プロパティ、属性、または所有をモデル化し、Possessor制約(後述)の補足として使用される。表50は、本発明の一実施形態によるPossessed制約に関連付けられた構文を例示している。   In a posted constraint, a property, attribute, or ownership is modeled and used as a supplement to a posted constraint (described later). Table 50 illustrates the syntax associated with a Posted constraint according to one embodiment of the present invention.

表50:Possessed制約   Table 50: Possible constraints

Figure 0005014584
Figure 0005014584

一般に、Possessed制約では、プロパティ、属性、または所有をモデル化する。例えば、「email with headers, schools with linguistics programs」などの語句は、Possessed制約によりモデル化することができる。いくつかの場合に、Possessed制約は、属性、プロパティ、または所有を「持つ(having)」と呼ぶことができる。表51は、Possessed制約を使用してモデル化できるいくつかの語および語句を示している。 In general, a Posted constraint models a property, attribute, or ownership. For example, phrases such as “email with headers , schools with linguistics programs ” can be modeled by a posted constraint. In some cases, a Posted constraint can be referred to as “having” an attribute, property, or ownership. Table 51 shows some words and phrases that can be modeled using the Posessed constraint.

表51:Possessed制約によりモデル化される語/語句の例   Table 51: Examples of words / phrases modeled by Posessed constraints

Figure 0005014584
Figure 0005014584

当業者であれば、他のPossessed制約型が様々な言語に存在することを理解するであろう。Possessed制約には、ほとんどの言語でアクセスできる。   Those skilled in the art will appreciate that other posted constraint types exist in various languages. The posted constraints are accessible in most languages.

Possessor制約は、Possessed制約を補完する。一般に、Possessor制約では、語彙名詞句により表現されようと、所有代名詞により表現されようと関係なく、エンティティの所有者をモデル化する。表52は、本発明の一実施形態によるPossessor制約の構文を例示している。   The Posessor constraint complements the Posessed constraint. In general, the Posessor constraint models the owner of an entity, whether expressed by a vocabulary noun phrase or by an owned pronoun. Table 52 illustrates the syntax of a possessor constraint according to one embodiment of the present invention.

表52:Possessor制約   Table 52: Posessor constraints

Figure 0005014584
Figure 0005014584

表53は、Possessor制約によってモデル化できるいくつかの語/語句を示している。 Table 53 shows some words / phrases that can be modeled by the Posessor constraint.

表53:Possessor制約によりモデル化される語/語句の例   Table 53: Examples of words / phrases modeled by possessor constraints

Figure 0005014584
Figure 0005014584

当業者であれば、他のPossessor制約型が様々な言語に存在することを理解するであろう。Possessor制約には、ほとんどの言語でアクセスできる。 One skilled in the art will appreciate that other possessor constraint types exist in various languages. Postessor constraints are accessible in most languages.

LOMでモデル化される他の制約は、Purpose制約である。Purpose制約では、Frameに関連付けられる予想される結果をモデル化する。表54は、Purpose制約によってモデル化できる語句/語の例をいくつか例示している。   Another constraint that is modeled by LOM is a Purpose constraint. A Purpose constraint models the expected result associated with a Frame. Table 54 illustrates some examples of phrases / words that can be modeled by Purpose constraints.

表54:Purpose制約によりモデル化される語/語句   Table 54: Words / phrases modeled by Purpose constraints

Figure 0005014584
Figure 0005014584

Reason制約では、フレームまたはエンティティに関連付けられた信念または作用に対する合理的動機をモデル化する。一実施形態では、ReasonおよびPurpose制約はスコープが重なり合うことがある。表55は、Reason制約によってモデル化できるいくつかの語/語句を示している。   Reason constraints model a rational motivation for beliefs or actions associated with a frame or entity. In one embodiment, Reason and Purpose constraints may overlap in scope. Table 55 shows some words / phrases that can be modeled by Reason constraints.

表55:Reason制約によりモデル化される語/語句   Table 55: Words / phrases modeled by Reason constraints

Figure 0005014584
Figure 0005014584

Reason制約およびPurpose制約の両方をモデル化できる言語はいくつもある。上記の語/語句の例は、網羅的リストとして使用することを意図しているのではなく、むしろ、制約によりモデル化される可能性のある語を例示することを意図している。 There are a number of languages that can model both Reason and Purchase constraints. The above word / phrase examples are not intended to be used as an exhaustive list, but rather to illustrate words that may be modeled by constraints.

SortOrder制約では、データの順序付けのスタイルおよび/または方法を記述する修飾語句をモデル化する。表56は、SortOrder制約および関連するOrderType列挙型の構文を例示している。   A SortOrder constraint models a modifier that describes the style and / or method of data ordering. Table 56 illustrates the SortOrder constraint and the associated OrderType enumeration syntax.

表56:SortOrder制約   Table 56: SortOrder constraints

Figure 0005014584
Figure 0005014584

一般に、フィールド型は、Default、Reverse、Alphabetic、Numeric、Increasing、Decreasingなどとすることができる。既定の型は、既定の順序、任意の順序などでモデル化する。Reverse型は逆順に(後方に)モデル化する。Alphabetic型はABC順に(アルファベット順で)モデル化する。Numeric型は数字で(数値順序で)モデル化する。Increasing型は、昇順でモデル化する。Decreasing型は、降順でモデル化する。 In general, the field type can be Default, Reverse, Alphabetic, Numeric, Incresing, Decreating, and the like. Default types are modeled in a default order, arbitrary order, etc. The Reverse type is modeled in reverse order (backward). The Alphabetic type is modeled in ABC order (in alphabetical order). The Numeric type is modeled numerically (in numerical order). The increasing type is modeled in ascending order. The Decreating type is modeled in descending order.

実施形態によっては、SortOrder制約を「アルファベット順リスト」のような物のエンティティに課すこともできる。さらに、「alphabetize」、「categorize」、「group」、「classify」、および「index」などの動詞も、SortOrder制約によりモデル化することができる。いくつかの場合において、「reverse alphabetical order」、「decreasing alphabetical order」などのような語句をモデル化するため2つのフィールドを備えることが望ましいこともある。さらに、2つの異なる言語に共通の異なる並べ替え順序もありうる。表56に示されている列挙型は英語ではふつうであるが、日本語はその言語にふつうである追加並べ替え順を持つことができる。表57は、SortOrder制約によってモデル化できるいくつかの語句/語の例を示している。   In some embodiments, a SortOrder constraint may be imposed on a physical entity such as an “alphabetical list”. In addition, verbs such as “alphabetize”, “categorize”, “group”, “classify”, and “index” can also be modeled by SortOrder constraints. In some cases, it may be desirable to have two fields to model a phrase such as “reverse alphabetical order”, “decreating alphabetic order”, and the like. In addition, there can be different sort orders common to two different languages. The enumerated types shown in Table 56 are common in English, but Japanese can have an additional sort order typical of that language. Table 57 shows some example phrases / words that can be modeled by SortOrder constraints.

表57:SortOrder制約によりモデル化される語/語句   Table 57: Words / phrases modeled by SortOrder constraint

Figure 0005014584
Figure 0005014584

Figure 0005014584
Figure 0005014584

Source制約では、オブジェクトのソースまたは発生元をモデル化する。Source制約の構文は表58に示されている。   Source constraints model the source or origin of an object. The syntax for the Source constraint is shown in Table 58.

表58:Source制約   Table 58: Source constraints

Figure 0005014584
Figure 0005014584

一般に、当業者であれば、様々なSource制約型が複数の言語用に存在しうることを理解するであろう。 In general, those skilled in the art will appreciate that various Source constraint types can exist for multiple languages.

StructureCriteria制約では、構造化された方法で1組のオブジェクト上で動作するという、Framesに関する、概念をモデル化する。StructureCriteria制約は、動作を進行させるための1つまたは複数の基準をモデル化する。StructureCriteria制約の構文は表59に示されている。   The StructureCriteria constraint models the concept of Frames that operates on a set of objects in a structured way. StructureCriteria constraints model one or more criteria for advancing an action. The syntax for StructureCriteria constraints is shown in Table 59.

表59:StructureCriteria制約   Table 59: StructureCriteria constraints

Figure 0005014584
Figure 0005014584

LOMのいくつかの実装では、「in pairs」、「5 at a time」などの語句をモデル化するため「増分」と呼ばれる制約を含めるのが望ましい場合がある。これらの種類の語句は、実装に応じて、モデル化する何らかの専用手段を備えるのに十分重要と思われるうまく正規化可能な数値基準を含む。表60は、StructureCriteria制約によってモデル化できるいくつかの語および語句を例示している。 In some implementations of LOM, it may be desirable to include a constraint called “increment” to model phrases such as “in pairs”, “5 at a time”, and the like. These types of phrases include well-normalizable numerical criteria that may be important enough to provide some dedicated means of modeling, depending on the implementation. Table 60 illustrates a number of words and phrases that can be modeled by StructureCriteria constraints.

表60:構造基準制約によりモデル化される語/語句   Table 60: Words / phrases modeled by structural criteria constraints

Figure 0005014584
Figure 0005014584

「Substitution」制約は、一方の語が他方の語の代替となる意味論的事象への関与部分をモデル化する。フランス語では、「a」が付加詞として「pour」の代わりになる例が考えられる。付加詞は、作用の状況を示すある種の副詞である。同様に、スペイン語では、「por」が付加詞として使用され、「para」は、選択された動詞とともに使用されうる。   The “Substation” constraint models the part involved in a semantic event where one word replaces the other. In French, “a” can be used as an addendum instead of “pour”. An adjunct is a kind of adverb that indicates the state of action. Similarly, in Spanish, “po” can be used as an addendum, and “para” can be used with the selected verb.

時間は、制約として取り扱うことができる。一般に、Time制約では、エンティティとして表現できる特定の時間単位または時点への参照を伴う時間修飾語句をモデル化する。例えば、「after July 23rd」および「after Thanksgiving」は、Time制約によりモデル化することができる。しかし、いくつかの実施形態では、「after my computer boots up」などの語句は、Time制約によりモデル化されない。同様に、「from 3:00 to 6:00」および「between morning and evening」などの時間の範囲は、Time制約によりモデル化することができる。しかし、「while the defrag utility is running」は、Time制約によりモデル化されえない。埋め込まれた節内容を伴う時間表現は、Conditional制約で取り扱われる。表61は、時間の構文および実装をLOM内の制約として例示している。 Time can be treated as a constraint. In general, a Time constraint models a time modifier with a reference to a specific time unit or time that can be expressed as an entity. For example, “after July 23 rd ” and “after Thanksgiving” can be modeled by Time constraints. However, in some embodiments, phrases such as “after my computer boots up” are not modeled by a Time constraint. Similarly, time ranges such as “from 3:00 to 6:00” and “between morning and evening” can be modeled by Time constraints. However, “while the defragability is running” cannot be modeled by Time constraints. Temporal expressions with embedded clause content are handled with Conditional constraints. Table 61 illustrates the time syntax and implementation as constraints within the LOM.

表61:Time制約   Table 61: Time constraints

Figure 0005014584
Figure 0005014584

Figure 0005014584
Figure 0005014584

Figure 0005014584
Figure 0005014584

Figure 0005014584
Figure 0005014584

Figure 0005014584
Figure 0005014584

Figure 0005014584
Figure 0005014584

Time制約では、必要に応じて1つまたは複数のフィールドおよび多数の補助データ型を使用する。フィールドは、開始時刻、終了時刻、「point or span」、持続時間、および反復を含むことができる。開始時刻フィールドは、「from 5:00」または「after tomorrow」などのタイムスパンの始点を表現する基準時間派生オブジェクトに設定される。開始時刻フィールドがヌルの場合、モデル化された時間修飾語句は、始点の明白な表現を含まない。   The Time constraint uses one or more fields and a number of auxiliary data types as needed. The fields can include start time, end time, “point or span”, duration, and repetition. The start time field is set to a reference time derived object that represents the start point of a time span such as “from 5:00” or “after tomorrow”. If the start time field is null, the modeled time modifier does not contain an explicit representation of the starting point.

終了時刻フィールドは、「to 6:00」または「until Friday」などのタイムスパンの終点を表現する基準時間派生オブジェクトに設定される。終了時刻フィールドがヌルの場合、モデル化された時間修飾語句は、終点の明白な表現を含まない。   The end time field is set to a reference time derived object that represents the end point of the time span, such as “to 6:00” or “until Friday”. If the end time field is null, the modeled time modifier does not contain an explicit representation of the end point.

点またはスパンフィールドは、始点および終点を明確に指定することにより表されるタイムスパンとは反対に、単一語句で表される単独の時点またはタイムスパンを表す基準時間派生オブジェクトに設定される。例えば、「tomorrow」に関して、「tomorrow」が同時線または24時間タイムスパン上の単一点かどうかは文脈および見る側の視点によって異なるという考え方である。LOMでは、語の曖昧さをなくそうとは試みない。点またはスパンフィールドがヌルの場合、モデル化された時間修飾語句は、単独の時点またはスパンの明白な表現を含まない。   The point or span field is set to a reference time derived object that represents a single point in time or time span represented by a single phrase, as opposed to a time span represented by explicitly specifying the start and end points. For example, with respect to “tomorrow”, the idea is that whether “tomorrow” is a single point on a simultaneous line or a 24-hour time span depends on the context and the viewing viewpoint. LOM does not attempt to eliminate word ambiguity. If the point or span field is null, the modeled time modifier does not contain an unambiguous representation of a single point in time or span.

持続時間フィールドは、特定の始点および終点を表すことなくタイムスパンの長さを表す持続時間オブジェクトに設定することができる。例えば、「for two hours」という語句は、持続時間フィールドによりモデル化することができる。ヌルの場合、モデル化された時間修飾語句は、持続時間の明白な表現を含まない。「from 4 pm to 6 pm」などのタイムスパンに内在する持続時間は、持続時間オブジェクトとしては表現されない。この場合、開始時刻と終了時刻に対して非ヌル値はないだろうが、持続時間はヌルとなる。   The duration field can be set to a duration object that represents the length of the time span without representing a specific start and end point. For example, the phrase “for two hours” can be modeled by a duration field. If null, the modeled time modifier does not contain an explicit representation of duration. A duration inherent in a time span such as “from 4 pm to 6 pm” is not represented as a duration object. In this case, there will be no non-null value for the start time and end time, but the duration will be null.

反復フィールドは、反復事象の出現から出現までの時間間隔を表す時間長オブジェクトに設定される。例えば、「daily」、「weekly」、「monthly」、毎月の第1月曜日などの語句例の場合、時間長オブジェクトとして表すことができる。ヌルの場合、モデル化された時間修飾語句は、反復として解釈されない。   The repetitive field is set to a time length object representing a time interval from the appearance of a repetitive event to the appearance. For example, in the case of phrases such as “daily”, “weekly”, “monthly”, and the first Monday of every month, they can be expressed as time length objects. If null, the modeled time modifier is not interpreted as an iteration.

一般に、Time制約では、多数の補助データ型を使用する。例えば、BaseTime連鎖は、RelativeTimeから派生した0個または複数のオブジェクトおよびAbsoluteTimeから発生したちょうど1つの「ルート」オブジェクトからなる、BaseTimeから派生されたオブジェクトである。これらは、各RelativeTime派生オブジェクトが連鎖内の次のオブジェクトへの参照を保持するため「連鎖」と呼ばれるが、ルートAbsoluteTime派生オブジェクトはそのような参照を保持しない。   In general, Time constraints use a number of auxiliary data types. For example, a BaseTime chain is an object derived from BaseTime that consists of zero or more objects derived from RelativeTime and exactly one “root” object originating from AbsoluteTime. These are called “chains” because each RelativeTime derived object holds a reference to the next object in the chain, but the root AbsoluteTime derived object does not hold such a reference.

NowAbsoluteTimeなどのAbsoluteTime派生型は連鎖内の他のオブジェクトへの参照を保持しない。例えば、NowAbsoluteTime派生型は、発話時の解析不可能な「now」を表す。LOMは、「now」を、例えば、2002年10月24日午後3時42分27秒に解決することを試みない。   AbsoluteTime derived types, such as NowAbsoluteTime, do not hold references to other objects in the chain. For example, the NowAbsoluteTime derived type represents “now” that cannot be analyzed at the time of utterance. LOM does not attempt to resolve “now”, for example, on October 24, 2002 at 3:42:27 pm.

AnalyzedAbsoluteTimeは、AbsoluteTime派生型であり、秒、時間、日、年などに関して解析できる時点またはタイムスパンを表す。例えば、AnalyzedAbsoluteTimeは、時点「now」を3時45分、2003年5月10日、水曜午前9時30分として表すために使用することができる。   AnalyzedAbsoluteTime is an AbsoluteTime derived type and represents a point in time or time span that can be analyzed for seconds, hours, days, years, etc. For example, AnalyzedAbsoluteTime can be used to represent the time “now” as 3:45 am, Wednesday, May 10, 2003, 9:30 am.

UnanalyzedAbsoluteTimeは、時点であることは知られているが、原子時間単位で解析できない、表現を表すAbsoluteTime派生型である。例えば、休日、春夏秋冬、および抽象的な時間概念は、このカテゴリに入る傾向がある。例えば、「Thanksgiving」、「Election Day」、「my birthday」、「summer」、および「this evening」はすべて、UnanalyzedAbsoluteTimeとしてモデル化される語句である。   Unanalyzed AbsoluteTime is an AbsoluteTime derived type that represents an expression that is known to be a point in time but cannot be analyzed in atomic time units. For example, holidays, spring, summer, autumn and winter, and abstract time concepts tend to fall into this category. For example, “Thanksgiving”, “Electration Day”, “my birthday”, “summer”, and “this evening” are all phrases that are modeled as UnalsizedAbsoluteTime.

OffsetRelativeTimeおよびSubsetRelativeTimeの2つのRelativeTime派生型が存在する。OffsetRelativeTimeは、参照されているBaseTime派生オブジェクトからの特定の時間の長さの正または負のオフセットを表す。例えば、「two days ago」という語句は、「[2 days back]OFFSET FROM[now]」とモデル化される。   There are two relative Time derived types, OffsetRelativeTime and SubsetRelativeTime. OffsetRelativeTime represents a positive or negative offset of a specific length of time from the referenced BaseTime derived object. For example, the phrase “two days ago” is modeled as “[2 days back] OFFSET FROM [now]”.

SubsetRelativeTimeは、参照BaseTime派生オブジェクトにより表現される囲むタイムスパンの部分集合であるとして解釈される時点またはタイムスパンを表すRelativeTime派生型である。例えば、「at 5:00 on my birthday」などの時間次元の表現は、「[hour:5 min:0]SUBSET OF[“my birthday”]」に相当する表現としてモデル化することができる。「5:00 on Wednesday」などの時間参照は、その語句が時間単位に分解できるため、単一のAnalyzedAbsoluteTimeオブジェクトにより捕捉できることに留意されたい。   A SubsetRelateTime is a RelativeTime derived type that represents a point in time or time span that is interpreted as being a subset of the surrounding time span represented by the reference BaseTime derived object. For example, a time dimension expression such as “at 5:00 on my birthday” can be modeled as an expression corresponding to “[hour: 5 min: 0] SUBSET OF [“ my birthday ”]”. Note that a temporal reference such as “5:00 on Wednesday” can be captured by a single Analyzed AbsoluteTime object because the phrase can be decomposed into time units.

いくつかの実施形態では、StartTimeおよびEndTimeフィールドの複数のペアを持つことが望ましい場合がある。例えば、「from Monday to Friday from 4:00 to 5:00」などの表現を捕捉するためには、両方の範囲を捕捉するのに開始および終了時刻フィールドの2つのペアがあるのが望ましい場合がある。実際、上記の表現については、Timeエンティティを持つことが望ましいであろう。さらに、以下の表現の間の並行関係から、Timeエンティティが望ましい場合のあることが示唆される。   In some embodiments, it may be desirable to have multiple pairs of StartTime and EndTime fields. For example, in order to capture an expression such as “from Monday to Friday from 4:00 to 5:00” it may be desirable to have two pairs of start and end time fields to capture both ranges. is there. In fact, for the above representation, it would be desirable to have a Time entity. In addition, the parallel relationship between the following expressions suggests that a Time entity may be desirable.

Move the meeting [from 4:00 to 5:00].
Move the file [from Folder1]Source [to Folder2]Goal.
さらに、SourcesおよびGoalsを取るすべての構造がStartTimeおよびEndTimeがそのような機能を持つことを許すわけではないため、EndTimeは通常のGoalsと区別されるべきである。例えば、「Run a meeting[from 4:00 to 5:00]」という表現をモデル化するように適合されている構造では、StartTimeおよびEndTimeが適切な機能を果たさない場合がある。
Move the meeting [from 4:00 to 5:00].
Move the file [from Folder1] Source [to Folder2] Goal .
In addition, EndTime should be distinguished from regular Goals because not all structures that take Sources and Goals allow StartTime and EndTime to have such functionality. For example, in a structure that is adapted to model the expression “Run a meeting [from 4:00 to 5:00]”, StartTime and EndTime may not function properly.

他の制約として、Topic制約がある。Entityオブジェクトに関して、Topic制約では、エンティティが何についてのエンティティであるか、またはエンティティが何に関わる、または関係しているのかを表現する項または修飾語句をモデル化する。Frameに関連付けられたTopic制約は、事象の主題また話題を表現する動詞項をモデル化する。一般に、Topic制約は、話題または主題をモデル化するEntityまたはFrameに設定されたSlotを持つ。その代わりに、Slotは文字列を取ることもできる。表62は、本発明の一実施形態によるTopic制約の構文を例示している。   Another constraint is a Topic constraint. With respect to Entity objects, Topic constraints model terms or modifiers that represent what an entity is about, what an entity is involved in, or related to. Topic constraints associated with Frame model verb terms that express the subject or topic of the event. In general, a Topic constraint has a Slot set to Entity or Frame that models a topic or subject. Alternatively, Slot can take a string. Table 62 illustrates the Topic constraint syntax according to one embodiment of the invention.

表62:Topic制約   Table 62: Topic constraints

Figure 0005014584
Figure 0005014584

場合によっては、異なる名前を持つTopic制約にラベルを付けることが望ましいことがある。特に、「topic」の厳しいオーバーロードが与えられている場合(少なくともLinguisticsのフィールド内で)、この制約に対し他のラベルを使用することが望ましい場合がある。例えば、他のいくつかのラベルは、「Concerning」、「Regarding」、「About」、「Subject」、「Theme」などを含むことも可能である。表63は、本発明の一実施形態によるTopic制約によりモデル化することができる語/語句のいくつかの例を示す。   In some cases, it may be desirable to label Topic constraints with different names. It may be desirable to use other labels for this constraint, especially if a severe overload of “topic” is given (at least in the Linguistics field). For example, some other labels may include “Concerning”, “Regarding”, “About”, “Subject”, “Theme”, and the like. Table 63 shows some examples of words / phrases that can be modeled by Topic constraints according to one embodiment of the invention.

表63:Topic制約によりモデル化される語/語句の例   Table 63: Examples of words / phrases modeled by Topic constraints

Figure 0005014584
Figure 0005014584

Quantifier制約では、「two−thirds of」などの名詞句数量詞および部分表現をモデル化する。一般に、Quantifier制約は、型またはパーセンテージフィールドを含むことができる。型フィールドは、浮動小数点数として格納される、通常は(必ずしもそうではないが)0から1までの範囲の、パーセンテージとすることができる。例えば、パーセンテージ型では、「one half of」、「75% of」、「200% increase」などをモデル化する。型フィールドは、さらに、正確なパーセンテージに対応しない数量詞をモデル化することもできる。「all」および「none」は、この「other」型に分類されない異なる「privileged」値として列挙される。パーセンテージフィールドは、型がPercentageの値を持つ場合に数量詞の意味に対応するパーセンテージを保持する。そうでなければ、パーセンテージフィールドは無視される。表64は、Quantifier制約と関連する列挙型の構文を例示している。   The Quantifier constraint models a noun phrase quantifier such as “two-thirds of” and a partial expression. In general, a Quantifier constraint can include a type or percentage field. The type field can be a percentage, usually (although not necessarily) ranging from 0 to 1, stored as a floating point number. For example, in the percentage type, “one half of”, “75% of”, “200% increase”, and the like are modeled. The type field can also model quantifiers that do not correspond to exact percentages. “All” and “none” are listed as different “privileged” values that do not fall into this “other” type. The percentage field holds the percentage corresponding to the meaning of the quantifier when the type has a value of Percentage. Otherwise, the percentage field is ignored. Table 64 illustrates the enumeration syntax associated with the Quantifier constraint.

表64:Quantifier制約   Table 64: Quantifier constraints

Figure 0005014584
Figure 0005014584

いくつかの実装では、否定の取り扱い方を変えるのが望ましい場合がある。「none」などの語を列挙するのではなく、否定を名詞句として処理するのが望ましいかもしれない。表65は、Quantifier制約によってモデル化できる語/語句の例をいくつか例示している。 In some implementations it may be desirable to change the way that negation is handled. Rather than listing words such as “none”, it may be desirable to treat negation as a noun phrase. Table 65 illustrates some examples of words / phrases that can be modeled by a Quantifier constraint.

表65:Quantifier制約によりモデル化される語/語句   Table 65: Words / phrases modeled by Quantifier constraints

Figure 0005014584
Figure 0005014584

当業者であれば、語および語句の例に関する上記の説明は、言語的モデリングに関する特定の制限を説明するのではなく、領域および言語独立性を説明することを意図していることを理解するであろう。一般に、LOMは言語をいくつでもモデル化できる。 One skilled in the art will understand that the above description of word and phrase examples is not intended to describe specific limitations on linguistic modeling, but rather to explain domain and language independence. I will. In general, LOM can model any number of languages.

D4.フレームのクラス:語彙意味論構造
以下の説明は、語彙意味論構造(LSS)と呼ばれる、LOMオブジェクトプロデューサ(解析エンジン)の可能な実装の一態様に関係する。この特定の態様は、LOMと連動して開発されているが、LOMオブジェクトを出力するために他の数多くの実装を使用することもできる。LSSは、さらに、LOMの型に対する設計プロセスでも使用された。
D4. Frame Class: Lexical Semantic Structure The following description relates to one aspect of a possible implementation of a LOM object producer (analysis engine), called the lexical semantic structure (LSS). This particular aspect has been developed in conjunction with LOM, but many other implementations can be used to output a LOM object. LSS was also used in the design process for LOM types.

語彙意味論構造(LSS)は、複数の言語にまたがり、複数の言語カテゴリにまたがる自然言語入力の正規化に関して、言語共通の振る舞いおよび子言語取得に関する一般化に基づいている。LSSは、自然言語の要素を語彙意味論クラスにマッピングするための方法を提供する。このような用途の1つは、言語オブジェクトモデル(LOM)への自然言語入力(言語的発話)を表す語彙意味論構造をマッピングすることを含むことも可能である。   Lexical Semantic Structure (LSS) is based on common language behavior and child language acquisition generalization for natural language input normalization across multiple languages and across multiple language categories. LSS provides a method for mapping natural language elements to lexical semantic classes. One such application can also include mapping lexical semantic structures that represent natural language input (linguistic utterances) to a language object model (LOM).

LSSは、一組の語彙意味論カテゴリ、および自然言語入力をその一組の語彙意味論カテゴリのうちの1つまたは複数に割り当てる方法を含む。その一組の語彙意味論カテゴリのそれぞれのカテゴリは、自然言語入力の要素を統語的カテゴリおよび意味役割のインベントリにマッピングすることを暗示する。より具体的には、それぞれのカテゴリは、1つまたは複数の統語的カテゴリを1つまたは複数の意味役割にマッピングすることを暗示する。本明細書で使用されているように、「統語的カテゴリ」という用語は、文の構造要素を指す(例えば、主語、目的語、前置詞句、節補語、修飾語句など)。「意味役割」という語句は、特定の発話内の特定の統語的カテゴリの関数の識別を指す−例えば、主語は一般に役割「who」(動作主、主体、行為者、または作用の原因など)を割り当てられ、直接目的語は「what」(患者、被影響者、完了先(done−to)、または作用の効果など)であり、修飾語句は様々な役割(ソース、ゴール、時間など)である。上に示した実施例は、説明のために用意されているのであって、網羅的であることを意図していないことは理解されるであろう。最後に、本明細書で使用されているように、「正規化する」または「正規化」という語は、特定の統語表示から意味役割を抽出するプロセスを指す。   The LSS includes a set of lexical semantic categories and a method for assigning natural language input to one or more of the set of lexical semantic categories. Each category in the set of lexical semantic categories implies mapping natural language input elements to syntactic categories and semantic role inventory. More specifically, each category implies mapping one or more syntactic categories to one or more semantic roles. As used herein, the term “syntactic category” refers to a structural element of a sentence (eg, subject, object, prepositional phrase, clause complement, modifier, etc.). The phrase “semantic role” refers to the identification of a function of a particular syntactic category within a particular utterance—for example, the subject generally refers to the role “who” (such as an actor, subject, actor, or cause of action). Assigned and direct object is “what” (such as patient, affected, done-to, or effect of action), and modifiers are various roles (source, goal, time, etc.) . It will be appreciated that the embodiments shown above are provided for purposes of illustration and are not intended to be exhaustive. Finally, as used herein, the term “normalize” or “normalize” refers to the process of extracting semantic roles from a particular syntactic representation.

インベントリおよび意味論は、言語共通の振る舞いおよび子言語取得から派生し、自然言語の語彙意味論的特徴がいくつかのプロパティを共有しているという一般化に基づく。言語的係留(linguistic anchoring)および意味論的詳細に関して、LSSは、世界知識に基づいて言語から意味論的推論に移行する人工知能システムと、見かけの同義語間の区別をモデル化するよりキメの細かい語彙解析フレームワークとの間に置かれる。つまり、すべての言語は、既定のようにマッピングできる言語構造を持つということである。さらに、それぞれの自然言語は、統語的カテゴリから意味役割への非既定マッピングを多数持つ。主語および目的語よりも因果関係上遠い位置にある意味役割を持つ非既定クラスほど、まれである。   Inventory and semantics are derived from common language behavior and child language acquisition, and are based on the generalization that natural language lexical semantic features share some properties. With respect to linguistic anchoring and semantic details, the LSS is more intelligent than modeling artificial intelligence systems that transition from language to semantic reasoning based on world knowledge and apparent synonyms. Placed between a detailed lexical analysis framework. In other words, all languages have a language structure that can be mapped as default. In addition, each natural language has a number of non-default mappings from syntactic categories to semantic roles. Non-default classes with semantic roles that are farther in the causal relationship than the subject and object are rare.

既定の語彙意味論構造では、上述のように、文の主語を「Who」として、目的語を「What」として分類することにより、「John broke the glass」などの他動詞文をモデル化する。修飾語句は、因果連鎖の時間的展開を表す順序(または形態格標示)で識別される。つまり、修飾語句は、付加格標示(間接目的語)および前置詞句などの副詞修飾語句が果たす意味役割から派生する。「John broke the glass for me」という語句では、「John」は主語であり、「glass」は目的語であり、「for me」という語句は文の目的語により近い間接目的語として標示される。   In the default vocabulary semantic structure, as described above, a transitive sentence such as “John broke the glass” is modeled by classifying a sentence subject as “Who” and an object as “What”. The modifiers are identified in an order (or morphological indication) that represents the temporal evolution of the causal chain. That is, modifiers are derived from the semantic roles played by adverb modifiers such as additional case markings (indirect objects) and prepositional phrases. In the phrase “John broke the glass for me”, “John” is the subject, “glass” is the object, and the phrase “for me” is labeled as an indirect object closer to the object of the sentence.

既定の自動詞文は、通常、代理人または「Who」を含む。例えば、「John ran」という語句は、動作主「John」を含む。あまり一般的ではないが、単一の項は「Patient」である。例えば、「The glass broke」という語句では、「the glass」という語句が影響を受け、文は、元の文が「[Something]broke the glass」であるかのようにしてモデル化することができる。   The default intransitive sentence usually includes an agent or “Who”. For example, the phrase “John ran” includes the actor “John”. Although less common, the single term is “Patient”. For example, the phrase “the glass block” is affected by the phrase “the glass” and the sentence can be modeled as if the original sentence was “[Something] block the glass”. .

意味役割がLSSインベントリに含まれる場合、これは、ある言語では統語的カテゴリとして現れなければならず、ある範囲の名詞および動詞クラスにまたがって項または修飾語句として適用される。したがって、これらの役割は、言語的係留および意味論的一般性の両方を持つ。例えば、「the office」という語句は、以下の例のそれぞれにおいてSourceである。   If a semantic role is included in the LSS inventory, it must appear as a syntactic category in some languages and is applied as a term or modifier across a range of nouns and verb classes. These roles therefore have both linguistic mooring and semantic generality. For example, the phrase “the office” is Source in each of the following examples.

1.John left the office.
2.The office emitted smoke.
3.John went out of the office.
4.The man from the office called.
それぞれの場合に、ソースは、動詞クラスおよび意味論的/統合的テストでのその振る舞いに基づいて識別される。例1を参照すると、ソースは、このクラスの中の動詞の目的語である。動詞「left」および他動詞「to leave」(および、とりわけ、「to exit」)は、付加的ソースを取ることができない。例えば、「John left the house out of the yard」は、「John went out of the house and out of the yard」を意味しない。例2では、「the office」は、類似の意味論的/統語的テストについて「emit」により例示されている動詞クラスの振る舞いに基づく文の主語である。上の例3および4では、前置詞「out of」および「from」の意味論は、一般に、ソース役割をその目的語に割り当てる。
1. John left the office .
2. The office emitted smoke.
3. John went out of the office .
4). The man from the office called.
In each case, the source is identified based on the verb class and its behavior in the semantic / integrated test. Referring to Example 1, the source is the verb object in this class. The verb “left” and the transitive verb “to leave” (and, inter alia, “to exit”) cannot take additional sources. For example, “John left the house out of the Yard” does not mean “John Went out of the House and out of the Yard”. In Example 2, “the office” is the subject of a sentence based on the behavior of the verb class illustrated by “emit” for a similar semantic / syntactic test. In examples 3 and 4 above, the semantics of the prepositions “out of” and “from” generally assign source roles to their objects.

LSSは、一組の語彙意味論カテゴリ、および自然言語入力をその一組の語彙意味論カテゴリのうちの1つまたは複数のカテゴリに関連付ける方法である。この方法は、自然言語の内容を一組の語彙意味論カテゴリおよび規則に関連付け、その手順の集まりを自然言語入力に適用する手順の集まりを含む。本明細書で使用されているように、「方法」という用語は、自然言語入力の内容を一組の語彙意味論カテゴリに関連付ける手順の集まりを意味する。それぞれの語彙意味論カテゴリは、1つまたは複数の統語的カテゴリ、1つまたは複数の役割、および1つまたは複数の統語的カテゴリと関連付けられている、項が発話内で果たす1つまたは複数の役割との間のマッピングを含む。さらに、「方法」は、手順の集まりを自然言語入力に適用するための規則を指す。いくつかの場合において、「方法」は、自然言語入力の内容をマッピングする異なる段階が完全である場合にそのことを決定する発見的手法を含んでいてもよい。「方法」という用語は、自然言語入力の内容を一組の言語カテゴリのうちの1つまたは複数の言語カテゴリに関連付けおよび/または正規化するように適合されている手法、規則、および手順の集まりを含む。   LSS is a method of associating a set of lexical semantic categories and natural language input with one or more categories of the set of lexical semantic categories. The method includes a set of procedures that associates natural language content with a set of lexical semantic categories and rules and applies the set of procedures to the natural language input. As used herein, the term “method” means a collection of procedures that associates the contents of a natural language input with a set of lexical semantic categories. Each lexical semantic category is associated with one or more syntactic categories, one or more roles, and one or more syntactic categories. Includes mappings between roles. Furthermore, “method” refers to a rule for applying a collection of procedures to natural language input. In some cases, a “method” may include a heuristic that determines when the different stages of mapping the content of a natural language input are complete. The term “method” is a collection of techniques, rules, and procedures that are adapted to associate and / or normalize the content of a natural language input to one or more language categories of a set of language categories. including.

LSSは、正規化構造として、統語的カテゴリ(動詞の主語/目的語、動詞を修飾する前置詞句の目的語など)にまたがって意味役割を識別することを補助する。さらに、LSSでは、統語的カテゴリを複数の言語にまたがって意味役割と関連付けることが可能である。この正規化は、統語的カテゴリのクラスだけでなくその意味論のクラスの項も識別し、識別された項を適切な語彙意味論カテゴリに関連付けることにより、達成される。その後、特定の統語的表現から語彙意味論構造を抽出することができる。   The LSS helps identify semantic roles across syntactic categories (verb subject / object, prepositional phrase object modifiers, etc.) as normalization structures. Furthermore, in LSS, syntactic categories can be associated with semantic roles across multiple languages. This normalization is accomplished by identifying not only the syntactic category class but also its semantic class term and associating the identified term with the appropriate lexical semantic category. A lexical semantic structure can then be extracted from the specific syntactic representation.

言語オブジェクトモデルおよび意味論プログラミング言語(および関連するユーザスキーマ)と併用することで、多くの言語的カテゴリにおける意味論的曖昧さが削減される。例えば、前置詞「for」は、作用の受益者(I bought a dress for my daughter)、目的(I go to California for the beaches)、時間範囲(I went to school for 20 years)、ゴール(present for my daughter)などを識別する。しかし、与えられたアプリケーション内では、限られた可能性の集まりのみがその文脈に関連する。したがって、意味論的曖昧さの多くは文脈により排除される。   When used in conjunction with a language object model and a semantic programming language (and associated user schema), semantic ambiguities in many linguistic categories are reduced. For example, the preposition “for” can be expressed in terms of beneficiary of action (I bout a dress for my daughter), purpose (I go to California for the beaches), time range (I went to school for 20 y, (daughter) etc. are identified. However, within a given application, only a limited set of possibilities is relevant to the context. Therefore, much of the semantic ambiguity is excluded by context.

図11は、本発明の一実施形態による語彙意味論構造(LSS)1100を示す簡略化された概念ブロック図である。LSS 1100は、一組の語彙意味論カテゴリ1102、および自然言語入力1106の要素を語彙意味論カテゴリ1102にマッピングする方法(手順および規則)1104を含む。図に示されている実施形態では、この後、自然言語入力1106を表すマッピングされた要素を解析エンジン1108に供給して、言語オブジェクトモデル(LOM)1110にマッピングし、自然言語入力1106を表すLOMオブジェクト1112を出力することができる。当業者であれば、この方法は、実行時だけでなく、LSSクラスを設計時に開発した際のアプローチの両方に適用されることを理解するであろう。より具体的には、LSSは、様々な言語、様々な言語カテゴリ、様々な解析エンジンなどにおいて、自然言語入力をマッピングするため実行時に自然言語処理に適用可能であるが、語彙意味論構造は、さらに、設計時にプログラムコードにLSSクラスを知らせる。   FIG. 11 is a simplified conceptual block diagram illustrating a lexical semantic structure (LSS) 1100 according to one embodiment of the invention. LSS 1100 includes a set of lexical semantic categories 1102 and methods (procedures and rules) 1104 that map elements of natural language input 1106 to lexical semantic categories 1102. In the illustrated embodiment, the mapped elements representing the natural language input 1106 are then provided to the analysis engine 1108 for mapping to the language object model (LOM) 1110 and the LOM representing the natural language input 1106. An object 1112 can be output. One skilled in the art will understand that this method applies not only to runtime, but also to the approach in developing LSS classes at design time. More specifically, the LSS can be applied to natural language processing at runtime to map natural language input in various languages, various language categories, various analysis engines, etc. Further, the LSS class is notified to the program code at the time of design.

一般に、LSSは、サポートされている言語のうちの1つで既定のパターンと異なる、統語的および意味論的フレームを共有するフレームおよびエンティティのグループを識別する。一般に、語彙意味論は、単語の意味を主に扱う言語の一分野である。語彙意味論構造(LSS)理論は、単語の意味と文の意味および構文との関係に関する。さらに、LSS理論では、異なる言語間の語彙意味論構造の違いおよび類似性を扱う。   In general, the LSS identifies a group of frames and entities that share syntactic and semantic frames that differ from the default pattern in one of the supported languages. In general, lexical semantics is a field of language that mainly deals with the meaning of words. Lexical Semantic Structure (LSS) theory relates to the relationship between the meaning of words and the meaning and syntax of sentences. Furthermore, LSS theory deals with differences and similarities in lexical semantic structures between different languages.

一般に、Framesは、他動詞既定パターンと自動詞既定パターンの2つの既定パターンを持つ。他動詞既定パターンは、Whoスロットを主語位置にリンクし、Whatスロットを目的語位置にリンクする。対照的に、自動詞既定パターンには、Whatスロットと目的語位置が欠けている。以下の例では、両方とも先頭に動詞型が付いている。   Generally, Frames has two default patterns, a transitive verb default pattern and an intransitive default pattern. The transitive default pattern links Who slots to subject positions and Link What slots to object positions. In contrast, the intransitive default pattern lacks What slots and object positions. In the following examples, both are prefixed with a verb type.

[User]Who types [email address]What.
[User]Who types.
Framesは、リンキング(フレームのスロットが文法により配置される方法)と項構造(スロット数)の両方で既定と異なることがある。例えば、非既定リンキング型では、動詞のクラスである非対格は、動詞「increase」が先頭に付く、以下のフレームに見られるような自動詞パターンに対し異なるリンキングパターンを有する。
[User] Who types [email address] What .
[User] Who types.
Frames may differ from the default in both linking (the way in which frame slots are arranged by grammar) and term structure (number of slots). For example, in the non-default linking type, the non-verbal case, which is a verb class, has a different linking pattern with respect to the intransitive pattern as seen in the following frame, preceded by the verb “increase”.

[Users]Who generally increase [the font size]What.of headers.
[The font size]What generally increases in headers.
この場合、自動詞の主語は、他動詞の目的語と同じであり、Whatスロットにリンクされる。言語学では、これらの非対格非既定リンキング型は、ある種の言語の格標示パターンにちなんで「能格」動詞と呼ばれることもある。このような動詞は、既定リンキングパターンに加えて、自動詞の付加的非既定リンキングパターンを生成する。
[Users] Who generally increase [the font size] What .of headers.
[The font size] What generally increases in headers.
In this case, the subject of the intransitive verb is the same as the object of the transitive verb and is linked to the What slot. In linguistics, these non-versus-case non-default linking types are sometimes referred to as “nobility” verbs after the case marking pattern of certain languages. Such verbs generate an additional non-default linking pattern of intransitive verbs in addition to the default linking pattern.

他の非既定リンキング型では、ObliqueAsDefaultという動詞のクラスは、WhoまたはWhat項を斜格項として表現する。例えば、英語における相互関係は、付加されたWhoまたはWhat関与部をAccompaniment制約の目的語として表現する。   In another non-default linking type, the verb class AsDefault default expresses Who or What terms as italic terms. For example, the interrelationship in English represents the added Who or What part as an object of Accompaniment constraint.

付加されたWho:I chatted with John〜John and I chatted.
付加されたWhat:I merged file A with File B〜I merged File A and B.
他の言語は、相互関係を付加代名詞項として表現し、代名詞に関係する、または目的語を記述せずに目的語を識別または規定する項を意味する。これらは、Accompaniment制約の下でも取り扱われる。
Added Who: I chatted with John to John and I chatted.
What: I merged file A with File B ~ I merged File A and B.
Other languages represent terms that express interrelationships as additional pronoun terms and that are related to pronouns or that identify or define an object without describing the object. These are also handled under Accompaniment constraints.

多くの動詞は、意味論的にWhatスロットに関連するように見える構文的斜格項(syntactically oblique arguments)(個癖的前置詞(idiosyncratic prepositions)により標示される)を持つ。つまり、動詞が自動詞であり、前置詞句が複数の制約カテゴリのうちの1つに意味論的に分類されず、語句を直接目的語で言い換える(または他の言語に翻訳する)ことができる場合、Whatスロットへのリンキングとして取り扱うことができる。表66に、既定スロットとしてObliqueをトリガする語句を例示するいくつかの例が用意されている。   Many verbs have syntactically explicit arguments (indicated by idiosyncratic prepositions) that appear to be semantically related to What slots. That is, if the verb is an intransitive verb, the prepositional phrase is not semantically classified into one of multiple constraint categories, and the phrase can be rephrased directly with the object (or translated into another language) It can be handled as linking to What slots. Table 66 provides several examples that illustrate the phrase that triggers Oblique as the default slot.

表66:ObliqueasDefault   Table 66: ObliquiresDefault

Figure 0005014584
Figure 0005014584

これらは、意味論的に首尾一貫しているクラス(hope for、watch for、wait for)に関連付けられるか、または並べ替えの格標示としてこの方法で特定の前置詞を取る動詞の集まりに対し個別に標示されうる(例えば、find and look for)。 These are associated with semantically coherent classes (hope for, watch for, wait for) or individually for a set of verbs that take a specific preposition in this way as a sort case Can be labeled (eg, find and look for ).

動詞のクラスは、フレーム内のWhoおよびWhatのほかに(またはそれの代わりに)スロットを持つことにより、既定と異なることがある。さらに、動詞のいくつかのクラスは、統語的主語または目的語をWhoまたはWhatスロットにではなくLOMの制約にリンクする。つまり、既定スロットのいずれかまたは両方が制約により置き換えられるということである。   Verb classes may differ from the default by having slots in addition to (or instead of) Who and What in the frame. In addition, some classes of verbs link syntactic subjects or objects to LOM constraints rather than to Who or What slots. That is, either or both of the default slots are replaced by constraints.

SubjectAsRestrictionパターンは、主語をWhatスロットにではなく、制約にリンクする。例えば、動詞「receive」は、「Goal」を主語として取る。   The SubjectAsRestriction pattern links the subject to constraints, not to What slots. For example, the verb “receive” takes “Goal” as the subject.

[The website]Goal received the data.
[The garden] swarmed with bees.〜Bees swarmed in the garden.
同様に、ObjectAsRestrictionパターンは、統語的目的語がWhatではなくGoalであるフレームを提示する。例えば、動詞「enter」は、統語的目的語が、WhatではなくGoalまたは場所であるフレームにマッピングする。
[The website] Goal received the data.
[The garden] swarmed with bees. ~ Bees swarmed in the garden.
Similarly, the ObjectAsRestriction pattern presents a frame whose syntactic object is Goal instead of What. For example, the verb “enter” maps to a frame in which the syntactic object is Goal or Location instead of What.

Enter [the chat room]Goal (「Enter in(to) the chat room」(チャットルームに入る)、「Go in the chat room」(チャットルームに入る)と比較)
フレームは、さらに、意味論的に斜格として1つまたは複数の付加的制約を伴う点で既定と異なる場合がある。AdditionalRestrictionパターンは、既定スロットに加えて、付加的制約を斜格項または節補語をリンクする。例えば、状態動詞の変化では、以下に示すように、付加的Goalを取るか(動詞「reset」の場合のように)、またはSourceとGoalの両方を取る(動詞「change」の場合など)ことができる。
Enter [the chat room] Goal (compare "Enter in (to) the chat room", "Go in the chat room")
The frame may also differ from the default in that it is semantically skewed with one or more additional constraints. The AdditionalRestriction pattern links an additional constraint to a proposition or clause complement in addition to the default slot. For example, for a state verb change, take an additional Goal (as in the case of the verb “reset”), or take both a Source and a Goal (as in the case of the verb “change”), as shown below: Can do.

Reset [the default font]what [to Times New Roman]Goal.
Change [the font]what [from Arial]Source [to Times New Roman]Goal.
さらに、Framesは、上記の非既定リンキング型(Unaccusative、SlotAsRestriction[subject or object]、およびAdditionalRestriction)のうちの1つまたは複数を組み合わせることなど、様々な方法で既定と異なるようにできる。さらに、動詞は、異なる意味を取ると解釈できる、複数のフレームを提示することができる。既定のフレームは、「enter」の一方の意味で持続し、SlotAsRestrictionは他の意味で持続する。動詞「enter」は、文脈依存の場合がある。
Reset [the default font] what [to Times New Roman] Goal .
Change [the font] what [from Arial] Source [to Times New Roman] Goal .
In addition, Frames can be made different from the default in various ways, such as combining one or more of the non-default linking types (Unaccumulative, SlotAsRestriction [subject or object], and AdditionalRestriction) described above. In addition, verbs can present multiple frames that can be interpreted to take different meanings. The default frame persists in one sense of “enter” and SlotAsRestriction persists in the other sense. The verb “enter” may be context dependent.

Enter [the data]What (into the form).
Enter [the chat room]Goal
キーワード「keep」は、異なる意味を持つ既定のフレームと3つの非既定フレームを取る。例えば、以下のようになる。
Enter [the data] What (into the form).
Enter [the chat room] Goal
The keyword “keep” takes a default frame and three non-default frames with different meanings. For example:

Default: Keep [the file]What
AdditionalRestriction (Location): Keep [the file]What [on the desktop]Location.
AdditionalRestriction (Goal): Keep [Bill Gates]What [from emailing me]Source
Unaccusative: The data won't keep.
一般に、少なくとも1つの言語で既定と異なる動詞について、サポートされているすべての言語にわたって語彙意味論構造フレームを備えることが望ましい。本開示の目的のために、他動詞と自動詞の両方についてこれが正しいと仮定する。
Default : Keep [the file] What
AdditionalRestriction (Location): Keep [the file] What [on the desktop] Location .
AdditionalRestriction (Goal): Keep [Bill Gates] What [from emailing me] Source
Unaccusative : The data won't keep.
In general, it is desirable to have a lexical semantic structure frame across all supported languages for verbs that are different from the default in at least one language. For the purposes of this disclosure, it is assumed that this is correct for both transitive verbs and intransitive verbs.

いくつかの動詞(「expand」、「increase」など)では、自動詞に対しては非対格パターンのみが正当である。他の動詞については、非対格パターンリンキングは、付加オプションである。   For some verbs (such as “expand”, “increase”, etc.), only unconformal patterns are valid for intransitive verbs. For other verbs, non-matching pattern linking is an optional option.

表67は、付加的制約を持つLSS Framesによってモデル化できる語句/語の例をいくつか例示している。それぞれの例では、制約は、既定の項を置き換えるか、または項をフレームに追加する。原理上、それぞれの制約は、主語位置に、目的語位置に、または付加的斜格項として、出現する可能性がある。少数の制約は、下記のように、関与部をWhoおよびWhatスロットに付加する。関係のある名詞句(NP)フレームも与えられている。   Table 67 illustrates some examples of phrases / words that can be modeled by LSS Frames with additional constraints. In each example, the constraint either replaces the default term or adds a term to the frame. In principle, each constraint may appear at the subject position, at the object position, or as an additional proposition. A few constraints add participants to the Who and What slots as described below. Related noun phrase (NP) frames are also given.

表67:付加的制約を持つLSS Framesによりモデル化される随伴
随伴
主語位置で
Meet: My daughter and I met
Chat: My friend and I chatted.
目的語位置で
Accompany: My daughter accompanied me to Minneapolis.
英語では、付加的制約は、通常、代名詞「with」またはたぶん「against」が先頭に付く。様々な動詞サブクラスで、関連する意味について代名詞または代名詞句を選択する。サンプルが以下の表68に示される。
Table 67: Accompaniments modeled by LSS Frames with additional constraints
Meet: My daughter and I met
Chat: My friend and I chatted.
At the object position
Accompany: My daughter accompanied me to Minneapolis.
In English, additional constraints are usually preceded by the pronoun “with” or perhaps “against”. Choose pronouns or pronoun phrases for related meanings in various verb subclasses. Samples are shown in Table 68 below.

表68:付加的制約を持つLSS Frames
Abscond: The Enron executives absconded with the money. ()
Accommodate: indulge
Accredit: accredit, credit
Ache: ache, burn, itch
Arrange
英語では、Accompaniment制約は、関与部をWhoおよびWhatスロットに追加することもできる。これはこの制約が修飾語句であるフレームについては正しいが、「相互」動詞と特に共通である。表69は、Obliqueのいくつかの例を既定のスロットとして示す。
Table 68: LSS Frames with additional constraints
Abscond: The Enron executives absconded with the money .
Accommodate: indulge
Accredit: accredit, credit
Ache: ache, burn, itch
Arrange
In English, Accompaniment constraints can also add participants to Who and What slots. This is especially true for frames where this constraint is a modifier, but is especially common with “mutual” verbs. Table 69 shows some examples of Oblique as default slots.

表69:既定のスロットとしての斜格
Who
主語相互関係
Chat: I IMed with Mary - Mary and I IMed; chat, discuss, talk, visit
Agree
Alternate
Unaccusatives: The file merged (together) with the data〜The file and the data merged (together).
What
目的語相互関係:
Merge: I merged the files with the data, I merged the data and the files
Acquaint: I familiarized them with the topic; acquaint
英語では、付加的制約は、「Allocation」に関してPP「for」が先頭に付く。様々な動詞サブクラスは、関連する意味についてこのPPを取る。サンプルを以下に示す。
Table 69: Skew as default slot
Who
Subject interaction
Chat: I IMed with Mary-Mary and I IMed; chat, discuss, talk, visit
Agree
Alternate
Unaccusatives: The file merged (together) with the data ~ The file and the data merged (together).
What
Object mutual relationship:
Merge: I merged the files with the data, I merged the data and the files
Acquaint: I familiarized them with the topic; acquaint
In English, additional constraints are prefixed with PP “for” for “Allocation”. Various verb subclasses take this PP for their associated meaning. Samples are shown below.

Adapt: Adapt the movie for the stage.
Allocate: Allocate funds for linguistics; allocate, appropriate,
Appropriate: Appropriate funds for increased wages
Assign: Assign a day for the performance
Nominate: Nominate candidates for congress
Transcribe: Transcribe the music for trumpet
Train: Train for a marathon
AsBeing制約に関する二次述語は、付加的制約として使用することができる。語句のいくつかの例を以下の表70に示す。
Adapt: Adapt the movie for the stage.
Allocate: Allocate funds for linguistics; allocate, appropriate,
Appropriate: Appropriate funds for increased wages
Assign: Assign a day for the performance
Nominate: Nominate candidates for congress
Transcribe: Transcribe the music for trumpet
Train: Train for a marathon
Secondary predicates on AsBeing constraints can be used as additional constraints. Some examples of phrases are shown in Table 70 below.

表70:AsBeing制約の二次述語
名詞句
Make me administrator
付加的語句
mark messages low-priority
judge the data correct
mark that completed
mark low priority
judge the data correct
代名詞句(as)異形
mark task one as done
Mark messages as follow-up
mark that as completed
mark as low priority
judge the data as correct
付加的制約
Show my status as busy
use as text file
save as file.doc
Log in as Administrator
put this message as message number two
Beneficiary制約に関する付加的制約を以下の表71に示す。
Table 70: AsBeing constraints secondary predicates noun phrases
Make me administrator
Additional phrases
mark messages low-priority
judge the data correct
mark that completed
mark low priority
judge the data correct
Pronoun phrase (as) variant
mark task one as done
Mark messages as follow-up
mark that as completed
mark as low priority
judge the data as correct
Additional constraints
Show my status as busy
use as text file
save as file.doc
Log in as Administrator
put this message as message number two
Additional constraints on the Beneficiary constraint are shown in Table 71 below.

表71:付加的制約を持つBeneficiary
目的語位置で
Benefit: Relaxed stock option laws benefited Enron; benefit, gain, profit
Unaccusative: Enron benefited from relaxed stock option laws
間接目的語位置で
Benefit: Relaxed stock option laws benefited Enron; benefit, gain, profit
Unaccusative: Enron benefited from relaxed stock option laws
付加的制約
PP−forおよび間接目的語
Build: arrange, assemble, bake Create: design, dig, mint
Prepare: bake, blend, boil, clean, clear, cook, fix, fry...
Performance: dance, draw, ding, play, recite...
Get: book, buy, call, cash, catch
制約型のいくつかは、動詞フレームについては適用不可能である場合がある。しかし、付加的制約は、それでも、前置詞句が比較集合を持ち込む場合などには、呼び出すことができる。
Table 71: Beneficary with additional constraints
At the object position
Benefit: Relaxed stock option laws benefited Enron; benefit, gain, profit
Unaccusative: Enron benefited from relaxed stock option laws
In indirect object position
Benefit: Relaxed stock option laws benefited Enron; benefit, gain, profit
Unaccusative: Enron benefited from relaxed stock option laws
Additional constraints PP-for and indirect objects
Build: arrange, assemble, bake Create: design, dig, mint
Prepare: bake, blend, boil, clean, clear, cook, fix, fry ...
Performance: dance, draw, ding, play, recite ...
Get: book, buy, call, cash, catch
Some of the constraint types may not be applicable for verb frames. However, additional constraints can still be invoked, such as when a prepositional phrase introduces a comparison set.

Direction制約は、「move the cursor up(the page)」という語句の場合のように付加的制約を必要とすることがある。さらに、方向要素が動詞自体の中に合成される場合(「the stocks rose/fell/advanced/retreated」または「rotate the picture」など)、付加的制約が必要になることがある。 Direction constraints may require additional constraints as in the case of the phrase “move the cursor up (the page)”. Furthermore, additional constraints may be required if the directional element is synthesized within the verb itself (such as “the stocks rose / fell / advanced / retrated ” or “ rotate the picture”).

付加的制約を有するLSSは、以下の語句から、主語位置に含まれる制約例とともに理解できる。   An LSS with additional constraints can be understood from the following words and phrases along with examples of constraints included in the subject position.

This document exemplifies table construction
Sample code illustrates possible applications.
範囲制約は、通常、目的語位置または付加的制約位置内に収まる。運動型動詞のすべての様式はExtent目的語をとりうる(例えば、「walk the mall」、「crawl the web」、「run the marathon」など)。Extent制約を使用してモデル化できる語句の例が表72に示されている。
This document exemplifies table construction
Sample code illustrates possible applications.
Range constraints typically fall within object locations or additional constraint locations. All forms of motor verbs can take an Extent object (eg, “walk the mall”, “crawl the web”, “run the marathon”, etc.). Examples of phrases that can be modeled using extent constraints are shown in Table 72.

表72:Extent制約によりモデル化される語句の例
目的語位置で
The crawler traverses the web.
The data in this spreadsheet spans several builds.
付加的制約
I want a border around this text.
Maintain a uniform appearance throughout the web site.
Run through the spec before the review.
Goal制約は、特にクラスまたは状態の変化に関して、付加的制約を必要とする場合がある。いくつかの動詞とともに個癖的にGoalsとして振る舞う前置詞句のスコープは、実装よって異なることがある。Goalとして個癖的に振る舞う前置詞句の例として、「save as file.txt」(「save to file.txt」)および「reschedule for 5:00」(「reschedule to 5:00」)をあげる。
Table 72: Examples of phrases modeled by Extent constraints
The crawler traverses the web .
The data in this spreadsheet spans several builds .
Additional constraints
I want a border around this text .
Maintain a uniform appearance throughout the web site .
Run through the spec before the review.
Goal constraints may require additional constraints, especially with respect to class or state changes. The scope of prepositional phrases that behave individually as Goals with some verbs may vary from implementation to implementation. Examples of prepositional phrases that behave personally as Goal include “save as file.txt” (“save to file.txt”) and “reschedule for 5:00” (“reschedule to 5:00”).

いくつかの動詞は、Bitrecs(Goalの振る舞いが単一動詞による場合)またはLSSクラス(項目のクラスが個癖的にゴールを取る場合)のいずれかで個癖的ゴールを取る必要がある場合がある。付加的ゴールは、単に追加されるだけであり、パターンを語彙集からクラスの中に引き出して、発見されたとおりに処理することができる。   Some verbs may need to take a personal goal in either Bitrecs (if Goal behavior is by a single verb) or LSS class (if the item's class takes a personal goal) is there. Additional goals are simply added and patterns can be drawn from the vocabulary into the class and processed as discovered.

場所に関連付けられている付加的制約は、以下の表73に例示されているようにモデル化することができる。   Additional constraints associated with the location can be modeled as illustrated in Table 73 below.

表73:場所
Keep, Stand, CausedGoalOfMotion
主語位置で
場所格交替(Levin2.3):The garden swarmed with bees (cf. Bees swarmed in the garden)
目的語位置で
Search: Canvass the neighborhood, Search the web
付加的制約
他動詞:
Keep: Keep the file on the desktop (hold, keep, locate, store)
Get: Find a book on Amazon.com
自動詞
Stay: Stand here, Stay home
Means制約も、表74に示されているように付加的制約でモデル化することができる。
Table 73: Location
Keep, Stand, CausedGoalOfMotion
Place change in subject position (Levin 2.3): The garden swarmed with bees (cf. Bees swarmed in the garden)
At the object position
Search: Canvass the neighborhood , Search the web
Additional constraints
Keep: Keep the file on the desktop (hold, keep, locate, store)
Get: Find a book on Amazon.com
Intransitive
Stay: Stand here, Stay home
Means constraints can also be modeled with additional constraints as shown in Table 74.

表74:手段
道具主語:The knife cut the cake
付加的制約
Adorn: adorn, festoon, decorate
Adulterate: adulterate, alloy, pollute
Anoint
Afflict
Aid: aid, assist, help
Analogize
Anoint
Answer
Arm
Assail: attack,
SortOrder制約も、表75に示されているように付加的制約でモデル化することができる。
Table 74: Means Tool subject: The knife cut the cake
Additional constraints
Adorn: adorn, festoon, decorate
Adulterate: adulterate, alloy, pollute
Anoint
Afflict
Aid: aid, assist, help
Analogize
Anoint
Answer
Arm
Assail: attack,
SortOrder constraints can also be modeled with additional constraints as shown in Table 75.

表75:SortOrder   Table 75: SortOrder

Figure 0005014584
Figure 0005014584

同様に、構造基準制約も、表76に示されているように付加的制約でモデル化することができる。   Similarly, structural criteria constraints can also be modeled with additional constraints as shown in Table 76.

表76:StructureCriteria   Table 76: StructureCriteria

Figure 0005014584
Figure 0005014584

一般に、Time項を取るクラスは、型TimeのMeasure制約を取るクラスとして処理することが可能であるが、それらは完全な時間表現を実現できる。例えば、語句「I spent at least an hour from 9 to 5 every day for weeks looking for a piano.」は、時間項または型Timeの測定制約を取るクラスとしてモデル化することができる。   In general, classes that take a Time term can be processed as classes that take a Measurement constraint of type Time, but they can implement a complete time representation. For example, the phrase “I spent at least an hour from 9 to 5 every day for weeks looking for a piano.” Can be modeled as a class that takes measurement constraints on time terms or type Time.

表77は、付加的制約を使用してモデル化できるTopic語句例をいくつか例示している。   Table 77 illustrates some example Topic phrases that can be modeled using additional constraints.

表77:Topic
Spact: talk about X, talk X, remind X that Y, book on Martin Luther
主語位置で
Her finances don't concern you; concern
目的語位置で
Discuss: The article addresses adolescents in the 20 t h century; address, cover, discuss
付加的制約
PP[(about, concerning, on, regarding)] takes either NP objects (about cats) or clausal eobjects (about John coming to Seattle)
PRPRTCL
アドレスの目的語は、話題ではなく、受取人とすることも可能である。
Table 77: Topic
Spact: talk about X, talk X, remind X that Y, book on Martin Luther
In subject position
Her finances don't concern you; concern
At the object position
Discuss: The article addresses adolescents in the 20 * t * h century ; address, cover, discuss
Additional constraints
PP [(about, concerning, on, regarding)] takes either NP objects (about cats) or clausal eobjects (about John coming to Seattle)
PRPRTCL
The object of the address can be the recipient, not the topic.

D5.エンティティのクラス
このセクションでは、Person Entities、Place Entities、およびLSS EntitiesなどのSPLライブラリとしてサポートされているエンティティの型に基づいてデータを収集する場所を述べる。さらに、SPLライブラリは、各LSSフレームクラスに対応する名詞句(LSSエンティティ)のクラス、特に付加的制約を取るクラスを含むことができる。:
SPLライブラリは、さらに、Restrictionクラスを含むこともできる。制約毎に、制約を指定するために使用することが可能な名詞句の(小さな)集合がある。SPLでは、これらは構造体の小さな集合内で識別され、制約スロットフィラーの存在を知らせることができる。例えば、「topic」が主語または目的語または連結詞である場合、Topic制約スロットフィラー(太字部分)は補完位置にある。
D5. Entity Classes This section describes where data is collected based on the types of entities supported as SPL libraries, such as Person Entities, Place Entities, and LSS Entities. Furthermore, the SPL library may include classes of noun phrases (LSS entities) corresponding to each LSS frame class, particularly classes that take additional constraints. :
The SPL library can further include a Restriction class. For each constraint, there is a (small) set of noun phrases that can be used to specify the constraint. In SPL, these are identified in a small set of structures and can signal the presence of constrained slot fillers. For example, if “topic” is the subject, object or connective, the Topic constraint slot filler (bold part) is in the complement position.

Find discussions where the economy is the topic.
Find discussions where the topic is the economy.
同様に、「topic」がAsBeingスロットを埋める場合、それが付くエンティティがTopicスロットを埋める。
Find discussions where the economy is the topic.
Find discussions where the topic is the economy.
Similarly, if “topic” fills the AsBeing slot, the entity it attaches fills the Topic slot.

Find discussions that have the economy as a topic.
これらの構造は、Topic制約として示される構造とともに正規化されるべきである。
Find discussions that have the economy as a topic.
These structures should be normalized with the structures shown as Topic constraints.

Find discussions about/on/concerning/regarding the economy.
「theme」、「matter」、「subject」、「issue」、「focus」、および「area」のような同義語は、TopicEntityでもありうる。さらに、開発者は、「subject in an email application」など、開発者のシナリオにより強く限定された話題単語をエンティティクラスに付加することができる。
Find discussions about / on / concerning / regarding the economy.
Synonyms such as “theme”, “meter”, “subject”, “issue”, “focus”, and “area” may also be TopicEntity. Furthermore, the developer can add topic words that are strongly limited by the developer scenario, such as “subject in an email application”, to the entity class.

E.意味論プログラミング言語(SPL)
E1.アーキテクチャ
SPLは、専用プログラミング言語であり、随伴するランタイムプラットフォームを利用することにより、アプリケーション開発者はリッチな自然言語(NL)対応のコマンドおよび制御(C&C)機能をアプリケーション用に構築することができる。(SPLで使用可能にできるコマンドおよび制御シナリオ、および例えばOutlook対応のコマンドの種類の詳細については付録Iを参照のこと。)
SPLは、発話から意味を引き出す作業を容易にし、その意味に基づく作用を容易にするためのオーサリングソリューションである。SPLは、開発者側でそのスケーラビリティの負担を負わなくても複雑な発話に合わせてスケーリングできるように設計されている。SPLのゴールは、開発者に大きな負担を余分にかけることなく音声とテキストの両方に対するオーサーシップを容易にすることである。特に、言語/意味解析についてほとんどまたはまったく知らない開発者がNLアプリケーションを開発できるようにするNLオーサリングツールを提供することが望ましい。一般に、SPLは、音声入力用のオーサリングとテキスト入力用のオーサリングとの差を最小限に抑えるように設計されている。しかし、音声認識には問題があるため、いくつかの相違点を開発者に見せなければならない可能性がある。
E. Semantic Programming Language (SPL)
E1. Architecture SPL is a dedicated programming language that allows application developers to build rich natural language (NL) compliant command and control (C & C) functions for applications by using the accompanying runtime platform. it can. (See Appendix I for details on commands and control scenarios that can be enabled in SPL, and for example, the types of commands that support Outlook.)
SPL is an authoring solution for facilitating the work of extracting meaning from an utterance and facilitating actions based on the meaning. SPL is designed so that it can be scaled to complex utterances without burdening the scalability on the developer side. The goal of SPL is to facilitate authorship for both speech and text without putting a heavy burden on the developer. In particular, it would be desirable to provide an NL authoring tool that allows developers with little or no knowledge of language / semantic analysis to develop NL applications. In general, SPL is designed to minimize the difference between authoring for speech input and authoring for text input. However, there are problems with speech recognition, so it may be necessary to show the developer some differences.

NLアプリケーションはSPLなしのLOMにより解析エンジンとインターフェースするように作成することができるが、そのようなプログラミングは困難であり、開発者側で必要とする言語学に関する知識が多くなり、また語彙構造に関するハウスキーピングの手間も増える。結局、SPLは、特定の要素を抽出することにより、開発者が解析コンポーネントではなくアプリケーションの機能に集中できるように開発を容易にできる。   NL applications can be created to interface with the analysis engine via LOM without SPL, but such programming is difficult, requires more knowledge on the linguistics required by the developer, and relates to vocabulary structure. Increased housekeeping effort. Eventually, SPL can facilitate development by extracting specific elements so that developers can concentrate on application functions rather than analysis components.

これは、専用プログラミング言語の背後にある核心であり、これにより、開発者はハウスキーピングおよび配管接続作業を免れ、手元の作業に集中できる(この場合、そのNL対応アプリケーション)。開発者は、SPLを使用することにより、プログラミング空間の基礎を自然で直観的な方法により表現することができる。   This is the core behind a dedicated programming language, which allows developers to avoid housekeeping and piping connections and concentrate on the task at hand (in this case, its NL-enabled application). Developers can use SPL to represent the basics of programming space in a natural and intuitive way.

一般に、自然言語の意味論は複雑であり、本質的に曖昧である。人間は、大量の世界知識および文脈を用いて、意味の理解および明確化を行う。実際、人間は、このような理解および明確化を自然に行っているため、このプロセスを意識することはあまり多くない。   In general, natural language semantics are complex and inherently ambiguous. Humans use a great deal of world knowledge and context to understand and clarify meaning. In fact, humans are not so conscious of this process because they naturally make this understanding and clarification.

アプリケーションが発話の意味に基づいて動作できる場合、発話の意味論がアプリケーションにとってどのような意味があるかを決定しなければならないだけでなく、自分の知識および文脈に応じて意味を明確化する権限も有していなければならない。したがって、SPLは、アプリケーション領域に関して推論し、その推論が意味解析に深い、意味のある形で影響を及ぼすようにする能力を開発者に提供する。アプリケーション特有の推論との深い統合は、本質的に、SPLに組み込まれている。   If the application can act on the meaning of the utterance, not only must it determine what the utterance semantics mean to the application, but also the authority to clarify the meaning according to their knowledge and context Must also have. Thus, SPL provides developers with the ability to make inferences about application areas and to make that inference deeply and meaningfully affect semantic analysis. Deep integration with application specific reasoning is inherently built into SPL.

一実施形態において、高いレベルで、開発者が構文に対してではなく発話の意味論のみに対してオーサリングするようにするのがSPLのアプローチである。いくつかの実施形態では、構文にアクセスする裏口的な手段が用意されている場合がある。これは、LOMを通じて実現される(上のセクションDで説明した)。簡単にいうと、LOMでは、領域に依存しない方法で発話(話の内容)の意味論をモデル化する。SPLプログラミングモデルでは、様々な方法により、意味論モデルを具現化する。   In one embodiment, at a high level, it is the SPL approach that allows developers to author only for utterance semantics, not for syntax. In some embodiments, a back-door means of accessing the syntax may be provided. This is achieved through LOM (described in Section D above). Simply put, LOM models the semantics of utterances (story content) in a region-independent manner. In the SPL programming model, the semantic model is realized by various methods.

SPLプログラムに対する発話の解決を通じて、SPLは、アプリケーション内のエンティティに束縛される話の内容の強い型付けの領域依存モデルを構築する。また、意味論は構文から分離されるため、多言語サポートがかなり実現しやすいことも指摘するのに値する。   Through utterance resolution for SPL programs, SPL builds a strongly typed, region-dependent model of the content of the story bound to entities in the application. It is also worth pointing out that multilingual support is fairly easy to implement because semantics are separated from syntax.

SPLは、2つの主要な部分からなる。第1は、強い型付け、手続き型、イベント駆動、およびオブジェクト指向の言語である。一実施形態では、SPLは、今日主流派開発者に非常になじみのあるC#(企業規模のアプリケーションを構築するためのオブジェクト指向タイプセーフプログラミング言語)に基づいている。他の実施形態では、SPLは、属性を使用してC#で完全に書かれている。SPLを設計する際に、SPLが新しいプログラミングアプローチではないことが重要であった。開発者の既存の知識および経験を活かし、無駄にしないためである。第2の部分は、SPLの言語意味論により、話の内容の領域依存モデルを構築するランタイムである。   The SPL consists of two main parts. The first is strongly typed, procedural, event driven, and object oriented languages. In one embodiment, SPL is based on C # (an object-oriented type safe programming language for building enterprise-scale applications) that is very familiar to mainstream developers today. In other embodiments, the SPL is written entirely in C # using attributes. When designing SPL, it was important that SPL was not a new programming approach. This is because the existing knowledge and experience of the developer are utilized and not wasted. The second part is a runtime that builds a domain-dependent model of the story content according to the language semantics of SPL.

SPLにより、開発者は、既存のアプリケーションに影響を及ぼすことなく、発話の意味論的意味を既存のアプリケーションインターフェースまたはオブジェクトモデルにバインドすることができる。SPLを使用すると、開発者は適当な位置で領域に関する知識を推論するコードを書くことができるが、SPLは.Net Common Language Runtimeにコンパイルするので、開発者は、Microsoft(登録商標).NET(登録商標)プログラミング言語をはじめとする、任意のプログラム言語でそのコードを自由に書くこともできる。   SPL allows developers to bind the semantic meaning of speech to an existing application interface or object model without affecting the existing application. Using SPL, developers can write code that infers knowledge about a domain at an appropriate location. Since it is compiled into Net Common Language Runtime, developers can use Microsoft (registered trademark). The code can be freely written in any programming language including the NET (registered trademark) programming language.

SPLの基本構文は、エンティティ(名詞)、フレーム(動詞)、制約(エンティティ間の関係)、コマンド(アプリケーションタスクのエントリポイント)、NamedEntitiesおよびDenotersである。これらは、SPLの主要な第1種の型である。言語は、設計上コマンド中心であるが、それは、アプリケーションの自然言語対応をコマンドおよび制御(C&C)機能用に設計されているからである。   The basic syntax of SPL is entity (noun), frame (verb), constraint (relationship between entities), command (application task entry point), NamedEntityes, and Denoters. These are the primary first type of SPL. The language is command-centric in design because the natural language support of the application is designed for command and control (C & C) functions.

SPLフレームワークについて詳述する前に、イメージを思い浮かべて本文中の開示の残り部分について理解できるようにSPLの簡単な例について説明する。表78は、「send email to Bob」コマンドシナリオを処理するSPLコードを例示している。このコマンドシナリオは、開示の残りの部分において何回も参照することになる。   Before describing the SPL framework in detail, a simple example of SPL will be described so that you can imagine the image and understand the rest of the disclosure in the text. Table 78 illustrates SPL code that processes a “send email to Bob” command scenario. This command scenario will be referenced many times in the rest of the disclosure.

「command」で最高レベルから始めると、SPLコードがすでに導入されているLOMモデルに書き込まれることが理解されるであろう(セクションDを参照)。コマンドは、フレームと突き合わせてオーサリングされる。フレームは、通常、動詞を表すオブジェクトである。基本フレームは、1つの動詞を表すフレームであり、解析システムにより供給される。開発者は、さらに、Framesを説明しているセクションでさらに詳しく説明されている特徴である、自分の動詞フレームも定義することができる。   It will be appreciated that starting from the highest level in “command”, the SPL code is written into the LOM model already installed (see section D). The command is authored against the frame. A frame is usually an object that represents a verb. A basic frame is a frame that represents one verb and is supplied by the analysis system. Developers can also define their own verb frames, which are features described in more detail in the section describing Frames.

表78:「Send Mail To Bob」SPLコード   Table 78: “Send Mail To Bob” SPL Code

Figure 0005014584
Figure 0005014584

SendMailCommandは、送られるオブジェクト(「DoneTo.what」スロット)がMailEntityである場合にMySendFrameを使用するアプリケーションタスクのエントリポイントを定義する。このコマンドは、タスクをカプセル化し、開発者が特定の初期化およびクリーンアップを実行できるようにし、プラットフォームにアプリケーションへのエントリポイントを設定する。   SendMailCommand defines the entry point of an application task that uses MySendFrame when the object being sent (“DoneTo.what” slot) is MailEntity. This command encapsulates the task, allows the developer to perform specific initialization and cleanup, and sets an entry point to the application on the platform.

表79は、MySendFrameのSPLコードを例示している。   Table 79 illustrates the MySendFrame SPL code.

表79:MySendFrame   Table 79: MySendFrame

Figure 0005014584
Figure 0005014584

MySendFrameコードブロックでは、領域独立の基本的な「send」フレーム(プラットフォームにより提供される)から継承し、「DoneTo.what」をMailEntityへサブタイプ化するアプリケーション固有のフレームである、MySendを定義する。「DoneTo.what」は、送られるオブジェクトである。 The MySendFrame code block defines MySend, which is an application-specific frame that inherits from a region-independent basic “send” frame (provided by the platform) and subtypes “DoneTo.what” into MailEntity. “DoneTo.what” is an object to be sent.

「to Bob」に送ることの意味論は、Goal制約(プラットフォーム、例えば、LOMに基づくSPLにより供給される)により捕捉され、これは「with restriction」節を介して「send」にリンクされる。このリンキングに加えて、「Bob」に送られるエンティティは、さらに、RecipientEntityにも接地される。   The semantics of sending to “to Bob” are captured by a Goal constraint (supplied by a platform, eg, SPL based on LOM), which is linked to “send” via a “with restriction” clause. In addition to this linking, the entity sent to “Bob” is also grounded to the RecipientEntity.

すでに説明したように、Restrictionsは、通常はエンティティ間の、型付き意味論的関係である。SPLプラットフォームは、あらかじめ定められた関係の基本集合を備える。開発者は、制約の基本集合をサブタイプ化して、自分の関係を作成することができる。定義済み制約のいくつかの例として、Location(「mail in Inbox」)、Time(「delete after 3 days」)、Possessor(「Bob’s book」)、Topic(「mail about cats」)がある。 As already explained, Restrictions is a typed semantic relationship, usually between entities. The SPL platform has a basic set of predetermined relationships. Developers can subtype the basic set of constraints to create their own relationships. Some examples of predefined constraints are Location (“mail in Inbox ”), Time (“delete after 3 days ”), Postessor (“ Bob's book”), and Topic (“mail about cats ”).

制約に関する重要事項の1つは、構文の異形は意味論的プラットフォームにより正規化されるということである。例えば、Topicは、「mail about cats」、「mail with cats as the subject」、「mail regarding cats」、「mail with subject cats」など様々な方法で意味論的に表現することができる。異なる言語は、Topicの意味論を異なる形で表現する。これらの異形は、意味論的プラットフォームにより正規化されるため、開発者は、可能なそれぞれの意味論的異形と突き合わせるのではなく、Topic制約と突き合わせてプログラムするだけでよい。   One important constraint is that syntactic variants are normalized by the semantic platform. For example, Topic can be semantically expressed in various ways such as “mail about cats”, “mail with cats as the subject”, “mail reporting cats”, “mail with subject cats”. Different languages express Topic semantics in different ways. Since these variants are normalized by the semantic platform, the developer need only program against the Topic constraints rather than match each possible semantic variant.

表80は、本発明の一実施形態によるMailEntity制約の構文を例示している。   Table 80 illustrates the syntax of a MailEntity constraint according to one embodiment of the present invention.

表80:MailEntity   Table 80: MailEntity

Figure 0005014584
Figure 0005014584

この例では、MailEntityは、単語のリストにより定義され、表される。表す単語は、通常、別々に定義され、通常は自ファイル(ローカライゼーションファイルなど)内に定義される。 In this example, MailEntity is defined and represented by a list of words. Representing words are usually defined separately and are usually defined in their own files (such as localization files).

フレームのように、エンティティも、それらに適用される制約を持つことができる。表81は、制約を持つエンティティの構文を例示している。   Like frames, entities can also have constraints that apply to them. Table 81 illustrates the syntax of an entity with constraints.

表81:制約を持つエンティティ   Table 81: Entities with constraints

Figure 0005014584
Figure 0005014584

開発者の観点からすると、この構文では、メールアイテムがMailFolder内にあるというプロパティ(制約)を持ちうることを宣言する。エンティティ−関係の観点から、MailEntityとMailFolderは、Location関係を介して関係がある。実行時に、Location制約を持つMailEntityのインスタンスは、特定のMailFolder内にあることに制約されているメールアイテムの集合を表す。   From the developer's perspective, this syntax declares that the mail item can have properties (constraints) that are in MailFolder. From an entity-relationship perspective, MailEntity and MailFolder are related through a Location relationship. At runtime, an instance of MailEntity with a Location constraint represents a set of mail items that are constrained to be in a particular MailFolder.

発話「send mail to Bob」または「send Bob mail」に対し、SPLランタイムプラットフォームは、SendMailCommandコマンドを突き合わせて解決する。図4は、本発明の一実施形態によるSendMailCommandコードを通じて解決をトレースする流れ図である。当業者であれば、コマンドの解決は実装により異なることは理解するであろう。例えば、表78を参照すると、Begin、Success、およびFailure節は、それぞれ、オプションである。OnResolve節は、特定の実装に応じて、これらの節のうちのいずれか1つ、節の任意の組合せを含むか、または節のうちのどれも含まない。   For the utterance “send mail to Bob” or “send Bob mail”, the SPL runtime platform matches and resolves the SendMailCommand command. FIG. 4 is a flow diagram for tracing a solution through SendMailCommand code according to one embodiment of the invention. One skilled in the art will appreciate that command resolution will vary from implementation to implementation. For example, referring to Table 78, the Begin, Success, and Failure clauses are each optional. The OnResolve clause includes any one of these clauses, any combination of clauses, or none of the clauses, depending on the particular implementation.

図4の流れ図の目的のために、解析エンジンは、すでに、発話を宣言スキーマで定義され、LOMから派生した型にマッピングしていることは理解されるであろう。例えば、Denoterオブジェクトは、解析エンジンにより、すでに考察されている。さらに、コードがそれぞれの要素に対するBegin節、Success節、およびFailure節を含むことが仮定される。また、流れ図からは一部の詳細が省かれていることが重要であるが、それは、部分的には、そのような詳細は実装に固有であり、いたずらに説明をややこしくすることになるからである。   It will be appreciated that for purposes of the flow diagram of FIG. 4, the parsing engine has already mapped the utterance to a type defined in the declaration schema and derived from LOM. For example, the Denometer object has already been considered by the analysis engine. Furthermore, it is assumed that the code includes a Begin clause, a Success clause, and a Failure clause for each element. It is also important that some details are omitted from the flow chart, because, in part, such details are specific to the implementation and can be tricky to explain. is there.

そこで図4を参照すると、発話を受け取った後、SendMailCommandのbegin resolution節が呼び出される(ブロック400)。begin resolution節が成功しない場合、特定の実装に応じて、またアプリケーションで利用可能と思われる他のコマンドに応じて、異なるコマンドが呼び出されるか、または(オプションにより)インタプリタが単に解決に失敗するだけである(ブロック402)。   Referring now to FIG. 4, after receiving the utterance, the sendResolution command's begin resolution clause is invoked (block 400). If the begin resolution clause is unsuccessful, a different command is invoked, or (optionally) the interpreter simply fails to resolve, depending on the particular implementation and other commands that may be available in the application. (Block 402).

SendMail Commandのbegin resolution節の呼び出しが成功すると、SPLインタプリタは、SendMail Commandが使用するMySend Frameに対するbegin resolution節を呼び出す(ブロック404)。MySend Frameのbegin resolution節が失敗した場合、SendMail Command failure節が呼び出され(ブロック406)、SPLインタプリタは、オプションにより、異なるコマンドを呼び出すか、または解決に失敗する可能性がある(ブロック402)。   If the call of the sendResolution command's begin resolution clause is successful, the SPL interpreter calls the begin resolution clause for the MySend Frame used by the SendMail Command (block 404). If the mySend Frame's begin resolution clause fails, the SendMail Command failure clause is called (block 406), and the SPL interpreter may optionally call a different command or fail to resolve (block 402).

MySend Frameのbegin resolution節が成功した場合、MailEntity Begin Resolution節が呼び出される(ブロック408)。MailEntityのbegin resolution節の呼び出しが失敗した場合、次に生じる事は、たいがい実装に依存する。図に示されているように、特定の実装に応じて、MailEntity begin resolution節は、一般的な失敗(オプション1)を暗示するか、無視されるか(オプション2)、または他のオペレーションの実行を引き起こし、発話の明確化が行われる(ブロック410)。これらの「他のオペレーション」は、解決されようとする入力の部分に対し異なる制約節を使用する試みを含む場合がある。制約節は、曖昧さのため、まったく、異なる制約に対する節ですらありうる。   If the myResolution Frame's begin resolution clause is successful, the MailEntity Begin Resolution clause is called (block 408). If a MailEntity's begin resolution clause call fails, what happens next depends mostly on the implementation. As shown in the figure, the MailEntity begin resolution clause implies a general failure (Option 1), is ignored (Option 2), or performs other operations, depending on the specific implementation. And clarification of the utterance is performed (block 410). These “other operations” may involve attempts to use different constraint clauses for the portion of the input that is being resolved. Constraint clauses can even be clauses for completely different constraints due to ambiguity.

失敗が一般的失敗を暗示していると理解される場合(オプション1)、SPLインタプリタは、オプションにより、異なるコマンドを呼び出すか、または解決に失敗する(ブロック402)。失敗が無視された場合(オプション2)、SPLインタプリタは、単純に、MySendフレームのsuccess節を呼び出し(ブロック420)、SendMail Commandのsuccess節を呼び出し(ブロック422)、SendMail Command Objectを「actual interpretation」リストに追加する(ブロック424)ことができるだけである。他のオペレーションが開発コードにより必要とされる場合、SPLインタプリタは、自然言語解析エンジンとの通信および/または発話を明確化することを試みるクライアントアプリケーションへのコールバックなどの処理をさらに実行することができる。   If the failure is understood to imply a general failure (option 1), the SPL interpreter may call a different command or fail to resolve depending on the option (block 402). If the failure is ignored (option 2), the SPL interpreter simply calls the success clause of the MySend frame (block 420), calls the sendMail command success clause (block 422), and sends Sendmail Command Object "actual interpolation". It can only be added to the list (block 424). If other operations are required by the development code, the SPL interpreter may further perform processing such as callbacks to client applications that attempt to clarify the communication and / or utterance with the natural language analysis engine. it can.

MailEntityのbegin resolution節の呼び出しが成功した場合、MailEntity success節が呼び出される(ブロック412)。次に、Restriction begin resolution節が呼び出される(ブロック414)。Restriction begin resolution節が失敗した場合、流れはブロック410に進む(上述)。Restrictionのbegin resolution節が成功した場合、Restriction success節が呼び出される(ブロック416)。Restriction節は、MySend Frameで、MailEntityスロットとともに呼び出される(ブロック418)。この呼び出しが失敗した場合、流れはブロック410に進む(上述)。呼び出しが成功した場合、MySend Frameのsuccess節が呼び出され(ブロック420)、SendMail Commandのsuccess節が呼び出され(ブロック422)、SendMail Commandオブジェクトが「actual interpretation」リストに追加される(ブロック424)。   If the call of the MailEntity begin resolution clause is successful, the MailEntity success clause is called (block 412). Next, the Restriction begin resolution clause is invoked (block 414). If the Restriction begin resolution clause fails, flow proceeds to block 410 (described above). If the restriction's begin resolution clause is successful, the Restriction success clause is called (block 416). The Restriction clause is called on the MySend Frame with the MailEntity slot (block 418). If this call fails, flow proceeds to block 410 (described above). If the call is successful, the MySend Frame success clause is called (block 420), the SendMail Command success clause is called (block 422), and the SendMail Command object is added to the "actual interpolation" list (block 424).

アプリケーションおよび開発者によっては、コードブロックは事実上無限大の順列を引き起こすことが理解されるであろう。一実施形態では、失敗した解決の既定では、failure節を呼び出して、実行を停止するようにできる。他の実施形態では、開発者は、アプリケーションが領域文脈を利用して、曖昧さを解決し、発話の部分的実行を行うように部分的オブジェクトをインスタンス化することを望んでいる場合がある。それぞれの節において、開発者はアプリケーション固有の機能を実行するコードを自由に書くことができる様々な可能性が考えられる。   It will be understood by some applications and developers that code blocks cause a virtually unlimited number of permutations. In one embodiment, the default for failed resolution may be to call a failure clause to stop execution. In other embodiments, the developer may want the application to instantiate a partial object to take advantage of the domain context to resolve ambiguity and perform partial execution of the utterance. In each section, there are various possibilities for developers to freely write code that performs application-specific functions.

好ましい一実施形態では、RecipientEntityは、RecipientNameをスロットとして取るNamed制約節でオーサリングすることも可能である。RecipientNameは、意味論的処理が実行される前に受信者名のインスタンスがユーザ入力全体の中に置かれているように定義されたNamedEntityであろう。これにより、RecipientEntityインスタンスの確実な認識が可能になる。   In a preferred embodiment, the RecipientEntity can also author with a Named constraint clause that takes a RecipientName as a slot. RecipientName will be a NamedEntity that is defined such that an instance of the recipient name is placed in the entire user input before the semantic processing is performed. As a result, it is possible to reliably recognize the RecipientEntity instance.

「Bob」が有効なRecipientEntityであると仮定すると、すでに述べたように、RecipientEntityはプログラム内のどこかで定義されている。このインスタンスでは、「with restriction」は、SendMailCommandにより使用されるMySendFrame内にある。「with restriction」節の内側にあるコードが呼び出される。「with restriction」の内側のコードを使用すると、開発者は、この制約をある程度自由に拒絶できる。この節が成功した場合、制約は受理される。そうでない場合他の「with restriction」節は、それらのうちの1つが成功するまで連続して呼び出されるか、またそれらのうちのいずれも実行しない場合には、制約は無視される。他の実施形態では、resolution節が失敗した場合、失敗解決が呼び出される。最後に、MySendFrameおよびSendMailCommandのsuccess節が、その順序で、呼び出される(ブロック420および422)。   Assuming that “Bob” is a valid Recipient Entity, as already mentioned, Recipient Entity is defined somewhere in the program. In this instance, “with restriction” is in the MySendFrame used by SendMailCommand. The code inside the “with restriction” clause is called. Using the code inside the “with restriction” gives developers some freedom to reject this constraint. If this clause is successful, the constraint is accepted. Otherwise, the other “with restriction” clauses are called consecutively until one of them succeeds, or the constraint is ignored if none of them execute. In other embodiments, failure resolution is invoked when the resolution clause fails. Finally, the success sections of MySendFrame and SendMailCommand are called in that order (blocks 420 and 422).

一般に、当業者であれば、LOM内の、SPLによって実装される、制約およびその他のオブジェクトは、成功または失敗のいずれかの際に、任意の個数の関数またはプロセスを呼び出すように構成することができることを理解するであろう。流れ図は、流れの例が進行する仕方を示す単純な図である。しかし、他の多数の変更形態が予想され、また本発明が適用可能なクライアントアプリケーション候補と同じくらい多数ある。   In general, one skilled in the art can configure constraints and other objects implemented by SPL in a LOM to invoke any number of functions or processes upon either success or failure. You will understand what you can do. The flow diagram is a simple diagram showing how the flow example proceeds. However, many other variations are anticipated and there are as many client application candidates to which the present invention is applicable.

この解決プロセスでは、連結グラフが生成される。それぞれのエンティティは、連結グラフの節点であり、エンティティ間の関係は、LOMにより定義され、アプリケーション領域と突き合わせて妥当性が確認される。当業者であれば、節点と関係は強く型付けされていることを理解するであろう。連結グラフは、領域の言語で言われた事を表す。   In this solution process, a connected graph is generated. Each entity is a node of the connected graph, and the relationship between the entities is defined by LOM and validated against the application area. One skilled in the art will understand that nodes and relationships are strongly typed. A connected graph represents what is said in the language of the domain.

SPLオブジェクト(コマンド、エンティティ、フレーム、および制約)の存在は意味解析と連携してオーサリングされたコードにより決定されることに留意されたい。一般に、フレーム、エンティティ、コマンド、または制約と突き合わせて行う解決では、アプリケーション領域に関してそれらのオブジェクトの存在/有効性を判定する必要がある。これらのオブジェクトは、実際には、制約条件が満たされるまで存在しない(有効でない)。これと似たことが、C#オブジェクト構文にもいえる。C#では、オブジェクトは、開発者が例外を投げるコードを書くためのコンストラクタを用意できる。例外は、何らかの制約条件が満たされない場合にオブジェクトが存在することを妨げる。   Note that the presence of SPL objects (commands, entities, frames, and constraints) is determined by the authored code in conjunction with semantic analysis. In general, a solution that matches against a frame, entity, command, or constraint involves determining the existence / validity of those objects with respect to the application area. These objects do not actually exist (not valid) until the constraints are met. Similarities can be said for the C # object syntax. In C #, an object can provide a constructor for writing code that allows a developer to throw an exception. An exception prevents the object from being present if some constraints are not met.

「システム」は、オブジェクトを作成しようとした場合にこれらのコンストラクタを呼び出す。したがって、コンストラクタ内のオーサリングされたコードは、クラスの存在を判別することができる。概念上、そのコア型のSPL解決では、この概念をさらに一歩進めて、形式化し、よりリッチにし、システムの固有部分にする。満たされなければならない制約条件は、発話の領域オーサリングされた知識および意味解析の組合せである。   The "system" calls these constructors when trying to create an object. Thus, the authored code in the constructor can determine the existence of the class. Conceptually, the core SPL solution takes this concept one step further, formalizes it, makes it richer, and makes it an inherent part of the system. The constraint that must be met is a combination of domain-authored knowledge and semantic analysis of the utterance.

D3.継承
概念カプセル化および合成は、従来のオブジェクト指向手法(オブジェクト再利用、継承、多態性など)により実現される。例えば、「send mail to Bob」および「send instant message to Bob」をモデル化するには、MySendFrameをMailEntityおよびInstantMessageの上位型をとると宣言する。表82は、本発明の一実施形態によるMySendFrameを例示している。
D3. Inheritance Concept encapsulation and composition are realized by conventional object-oriented techniques (object reuse, inheritance, polymorphism, etc.). For example, to model “send mail to Bob” and “send instant message to Bob”, declare MySendFrame to be a supertype of MailEntity and InstantMessage. Table 82 illustrates MySendFrame according to one embodiment of the invention.

表82:MySendFrame   Table 82: MySendFrame

Figure 0005014584
Figure 0005014584

そこで、「send mail」および「send instant message」に対する個別のコマンドを以下のように定義することが可能である。 Thus, individual commands for “send mail” and “send instant message” can be defined as follows.

command SendIMCommand uses MySend<DoneTo.what := InstantMessage>;
command SendMailCommand uses MySend<DoneTo.what : = MailEntity>;
「sending item to Recipient」という概念は、MySendFrameによりカプセル化され、SendIMCommandおよびSendMailCommandにより再利用されることが可能である。また、MySendFrameを合成的に再利用することも可能である。この例が表83に示されている。
command SendIMCommand uses MySend <DoneTo.what: = InstantMessage>;
command SendMailCommand uses MySend <DoneTo.what: = MailEntity>;
The concept of “sending item to recipient” can be encapsulated by MySendFrame and reused by SendIMCommand and SendMailCommand. It is also possible to reuse MySendFrame synthetically. An example of this is shown in Table 83.

表83:MySendFrame   Table 83: MySendFrame

Figure 0005014584
Figure 0005014584

広い意味で、上記の説明は「mail sent to Bob」の意味をとらえている。 In a broad sense, the above description captures the meaning of “mail sent to Bob”.

一般に、SPLを使用することで、開発者は、アプリケーション領域を推論し、その推論が意味解析に深い、意味のある形で影響を及ぼすようにすることができる。SPLでは、この推論を宣言的、手続き的に行うことができる。再びMailEntity構文を参照すると、この構文では、例えばMailEntityがMailWordsで規定されている単語のリストにより表されるエンティティであるという宣言的制約条件を設定し、この構文は、MailForlderのロケーションにあるということに制約することができる。表84には、MailEntityが示されている。   In general, using SPL, a developer can infer application areas and make the inference deeply and meaningfully affect semantic analysis. In SPL, this inference can be done declaratively and procedurally. Referring back to the MailEntity syntax, this syntax establishes a declarative constraint that, for example, MailEntity is an entity represented by a list of words as specified in MailWords, and that this syntax is in the location of MailFolder Can be constrained. Table 84 shows MailEntity.

表84:MailEntity   Table 84: MailEntity

Figure 0005014584
Figure 0005014584

「mail in Foo」、「mail located in folder Foo」などの発話は、MailEntityに対して成功するが、それは、MailFolder上のNamed制約節がすべての文字列を受け付けるからである。 Utterances such as “mail in Foo” and “mail located in folder Foo” are successful for MailEntity because the Named constraint clause on MailFolder accepts all strings.

場合によっては、「Foo」が本当に現在のユーザのメールボックス内の現在有効なフォルダであるかどうかを判別するコードを作成することが望ましいことがある。これを行う唯一の方法は、実行時に「Foo」の有効性をチェックする手続きコードを書くことである。表85は、実行時にFolder名の有効性をチェックするMailFolderエンティティの構文を示している。   In some cases, it may be desirable to create code that determines whether “Foo” is really a currently valid folder in the current user's mailbox. The only way to do this is to write procedural code that checks the validity of "Foo" at runtime. Table 85 shows the syntax of the MailFolder entity that checks the validity of the Folder name at runtime.

表85:手続きチェックコードを使用するMailFolder   Table 85: MailFolder using procedure check code

Figure 0005014584
Figure 0005014584

「Foo」が現在有効なフォルダでなければ、MailFolderの解決は失敗する。特定の実装の詳細に応じて、失敗は一般的な失敗を意味する場合がある。それとは別に、制約が失敗すると、制約が無視される場合がある。一実施形態では、MailFolderの解決が失敗した場合、MailEntityも失敗し、というように解決の連鎖を辿る(例えば、一般的失敗を暗示する)。好ましい一実施形態では、MailFolderの解決が失敗した場合、MailFolder制約は単に無視されるだけである。当業者であれば、これは簡略化された例であることを理解するであろう。実装に応じて、かなり複雑な有効性チェックを使用することもできる。 If “Foo” is not the currently valid folder, MailFolder resolution fails. Depending on the details of a particular implementation, failure may mean a general failure. Apart from that, if a constraint fails, the constraint may be ignored. In one embodiment, if MailFolder resolution fails, MailEntity also fails, and so on, following the resolution chain (eg, implying a general failure). In a preferred embodiment, the MailFolder constraint is simply ignored if MailFolder resolution fails. One skilled in the art will appreciate that this is a simplified example. Depending on the implementation, fairly complex validity checks can be used.

この効果を実現する他の方法では、NamedEntity型FolderNameを作成し、それをNamed制約のスロットとして使用する。   Another way to achieve this effect is to create a NamedEntity FolderName and use it as a slot for a Named constraint.

節を呼び出した場合のよい副作用(開始、成功、失敗、および制約付き)は、開発者が意味論的オブジェクトをアプリケーションオブジェクトにバインドするコードを書くことができることである。例えば、Named制約節では、開発者は、フォルダアプリケーションオブジェクトへの参照を、名前が有効な場合に取得するコードを作成できる。表86は、そのような参照のための構文を例示している。   A good side effect (start, success, failure, and constrained) of calling a clause is that the developer can write code that binds the semantic object to the application object. For example, in the Named constraint clause, a developer can create code that obtains a reference to a folder application object when the name is valid. Table 86 illustrates the syntax for such a reference.

表86:意味論的オブジェクトをアプリケーションオブジェクトにバインドするコード   Table 86: Code to bind semantic objects to application objects

Figure 0005014584
Figure 0005014584

この構文は、アプリケーション特有のオブジェクト、MAPIFolderを意味論的オブジェクト、MailFolderに効果的にバインドする。 This syntax effectively binds an application specific object, MAPIFfolder, to a semantic object, MailFolder.

一般に、開発者は、解析のキーポイントでそのアプリケーションのコンテキストおよび状態について推論するコードを容易に作成することができる。この推論は、最終的な解決解析に影響を及ぼすことがある。例えば、「Bob」が有効な受信者かどうかを判別する場合、開発者はシステムの現在のユーザのデータベースにアクセスするコードを作成することができる。それが有効な受信者でなければ、開発者は失敗を処理するコードを作成することが可能である。例えば、開発者は、失敗の時点で直ちに、ユーザを明らかにするためのポップアップウィンドウまたはダイアログを表示し、再表示を生成することなどができる。失敗の時点でユーザに対し即座にフィードバックを返すことにより、システムでは、きびきびとしたきちんと開発されているアプリケーションの出現を助長する。   In general, developers can easily create code that infers about the context and state of the application at the key points of analysis. This inference can affect the final solution analysis. For example, when determining whether “Bob” is a valid recipient, the developer can create code to access the database of the current user of the system. If it is not a valid recipient, the developer can write code to handle the failure. For example, the developer can display a pop-up window or dialog to reveal the user and generate a refresh immediately upon failure. By returning immediate feedback to the user at the time of failure, the system facilitates the emergence of crisp and well-developed applications.

それとは別に、開発者は、アプリケーションが適切な状態にない場合に、最上位レベルのSendMailCommandで、コマンドに対し解決を防止するコードを作成することができる。意味解析と領域知識についての推論との間のこの深い統合は、自然言語を理解し、明確化するうえで非常に重要である。   Alternatively, developers can create code that prevents resolution for commands at the highest level SendMailCommand when the application is not in the proper state. This deep integration between semantic analysis and reasoning about domain knowledge is very important in understanding and clarifying natural language.

SPLでは、開発者側で解決を拒絶するコードを節内に書けるようにすることにより、開発者が不正な解析を容易に拒絶できる。一般に、作成者は、成功する解釈と失敗する解釈に対する多くの制御を主張することができる。場合によっては、作成者がプロセスの早い段階でいくつかの解釈を拒絶するのが望ましいこともある。一般に、作成者が明確化する(曖昧さを除去する)のが早いほど、アプリケーションで曖昧さを管理しやすくなる。曖昧さが少ないほど、解釈は少なくなるということである。自然言語についてオーサリングされたアプリケーションは、複数の解釈を管理するための何らかのメカニズムを備えていなければならない。作成者は、インタプリタが決定している最中に解釈の健全さを評価するコードを作成するか、または意味解析を実行して明確化を行い、いくつかの解釈の集まりのうちから選択した後実行されるコードを作成する(後処理)。前者が管理およびコーディングを容易に行えることを見ることは難しくない。   In SPL, the developer can easily refuse unauthorized analysis by allowing the developer to write code that rejects the solution in the clause. In general, authors can claim a lot of control over successful and unsuccessful interpretations. In some cases, it may be desirable for the author to reject some interpretations early in the process. In general, the sooner the creator clarifies (remove ambiguity), the easier it is to manage the ambiguity in the application. The less ambiguity, the less interpretation. An application authored for a natural language must have some mechanism for managing multiple interpretations. The author creates code that evaluates the soundness of the interpretation while the interpreter is making decisions, or performs semantic analysis to clarify and select from a collection of interpretations. Create code to be executed (post-processing). It's not difficult to see the former being easy to manage and code.

さらに、早い段階の解釈を拒絶するほど、最良の解釈を見つけるのが早くなり、また正確に見つけられると考えられる。   Furthermore, the earlier the interpretation is rejected, the faster the best interpretation will be found and the more accurate it will be.

場合によっては、作成者は、プロセスの後のほうで解釈を拒絶したいこともある。早い段階で解釈を拒絶すると、状態および/またはコンテキストを調べ、アプリケーションのオブジェクトモデルについて推論するためにクライアントアプリケーションにコールバックを行う頻度がかなり増える。コールバックがネットワーク全体にわたって行われる場合、コールバックが頻繁だと、システムのオペレーションが低速になることがある。例えば、伝送遅延で、システムは使用不可能に陥ることがありえる。SPLを使用すると、作成者は、どのようなコールバックをいつ実行するかを完全に制御することができる。したがって、開発者は、独力で、クライアントアプリケーションの性格に応じて、コールバックと後解析の明確化ロジックの正しいバランスを決定できる。   In some cases, the author may wish to reject the interpretation later in the process. Rejecting the interpretation at an early stage significantly increases the frequency of making callbacks to the client application to examine the state and / or context and infer about the application's object model. If callbacks are made across the network, frequent callbacks can slow system operation. For example, transmission delays can make the system unusable. Using SPL, the creator has full control over what callbacks are executed when. Thus, developers can independently determine the correct balance between callback and post-analysis clarification logic depending on the nature of the client application.

代わりに、いくつかの実装では、開発者は、解決を拒絶するかどうかを決定する前に解決全体を推論したい場合がある。分離している断片により成功または失敗を判別できない場合もあり得、解決されたツリーに対する大域的推論が必要である。   Instead, in some implementations, the developer may want to infer the entire solution before deciding whether to reject the solution. It may not be possible to determine success or failure due to isolated fragments, and global reasoning for the resolved tree is required.

SPLでは、開発者側のニーズとクライアントアプリケーションのニーズとに応じて、早い段階の拒絶と後の段階の拒絶とのバランスの取り方の選択を開発者に任せる。   In SPL, depending on the needs of the developer and the needs of the client application, the developer is left with the choice of how to balance early rejection and later rejection.

すでに説明しているように、SPLランタイムによるフレーム、制約、およびエンティティの解決は、本質的に、発話の領域依存モデルを構築することである。このように述べたことで詳細が保証される。   As already explained, the resolution of frames, constraints, and entities by the SPL runtime is essentially building a domain-dependent model of speech. Details are assured in this way.

自然言語では、統語的構文を使用して、複数の意味を表現することができる。非常に単純な例として、名詞が後に続く前置詞「on」を考察する。例えば、「on Foo」という語句を考える。語句「on Foo」は、Location(「book on table」のような)を参照するか、またはTopic(「book on Seattle」のような)を意味する可能性がある。どの語句が正しいかを判別するために、語句を明確化しなければならない。この明確化は、アプリケーションによってのみ行える。例えば、表87は、Amazon.comを有効にするための構文を示している。   In natural language, syntactic syntax can be used to express multiple meanings. As a very simple example, consider the preposition “on” followed by a noun. For example, consider the phrase “on Foo”. The phrase “on Foo” may refer to a Location (such as “book on table”) or may mean Topic (such as “book on Seattle”). In order to determine which words are correct, the words must be clarified. This clarification can only be made by the application. For example, Table 87 shows Amazon. The syntax for validating com is shown.

表87:本屋構文   Table 87: Bookstore syntax

Figure 0005014584
Figure 0005014584

「book on Foo」を解決する場合、BookEntityはTopicを認識しないので、意味解析ではLocationオブジェクトを出力しない。言われた事の解決されたモデルはLocationを含まない。この「方向付け」は、調整(および/または)、否定、および節のモデル化ではなおいっそう明白である。 When “book on Foo” is resolved, BookEntity does not recognize Topic, and therefore does not output a Location object in semantic analysis. The resolved model of what is said does not include Location. This “orientation” is even more apparent in adjustment (and / or), negation, and clause modeling.

調整のため、SPLコードで、接続詞および離接的接続詞へのエンティティおよびその修飾語句の分配方法を定義する。発話「find mail and notes created yesterday」については、可能なモデリング選択肢は以下のようになる。   For coordination purposes, the SPL code defines how entities and their modifiers are distributed to conjunctions and disjunctive conjunctions. For the utterance “find mail and notes created yesterday”, the possible modeling options are:

1.Find (mail created yesterday) and (notes created yesterday).
2.Find (mail) and (notes created yesterday).
3.Find (mail created yesterday) and find (notes created yesterday).
4.Find (mail) and find (notes created yesterday).
「created yesterday」および「find」をそのエンティティ「mail」および「notes」とともに分配する方法は、オーサリングされたコードにより決定される。可能な読み取り値は、接続詞と離接的接続詞の両方を含む発話に対してはなおいっそう大きい。作成者がすべての可能性をわかっている必要はない。作成者は、そのアプリケーションの意味論に関して考えるだけである。例えば、SPL作成者として、自分のFindMailCommandは型MailEntityのエンティティを認識するだけ、自分のFindNotesCommandは型NotesEntityのエンティティを認識するだけとなるようにFindMailCommandをコーディングすることが可能である。さらに、MailEntityは、作成時刻という概念を持たないが(これは単に説明を目的としているだけである)、NotesEntityは持つ。したがって、上記の発話「find mail and notes created yesterday」については、意味解析は上記のリストから読み取り値4を出力するだけである。
1. Find (mail created yesterday) and (notes created yesterday).
2. Find (mail) and (notes created yesterday).
3. Find (mail created yesterday) and find (notes created yesterday).
4). Find (mail) and find (notes created yesterday).
The method of distributing “created yesterday” and “find” along with its entities “mail” and “notes” is determined by the authored code. The possible readings are even greater for utterances that contain both conjunctions and disjunctive conjunctions. The creator does not have to know all the possibilities. The creator only thinks about the semantics of the application. For example, as an SPL creator, it is possible to code FindMailCommand so that its own FindMailCommand only recognizes entities of type MailEntity, and its own FindNotesCommand only recognizes entities of type NotesEntity. Furthermore, MailEntity does not have the concept of creation time (this is merely for illustrative purposes), but NotesEntity has it. Therefore, for the utterance “find mail and notes created yesterday”, the semantic analysis only outputs the read value 4 from the above list.

否定については、オーサリングされたコードは、否定スコープの曖昧さをモデル化する方法を決定する。例えば、発話「Don’t allow mail from Joe」を取る。この語句は以下のように解釈できる。   For negation, the authored code determines how to model the ambiguity of the negation scope. For example, take the utterance “Do n’t allow mail from Joe”. This phrase can be interpreted as follows.

1.Don't allow mail from Joe (block it instead):否定は「allow」に係る。     1. Don't allow mail from Joe (block it instead): Denial relates to “allow”.

2.Don't allow mail from Joe (but allow messages from him):否定は「mail」に係る。     2. Don't allow mail from Joe (but allow messages from him): Denial relates to “mail”.

3.Don't allow mail from Joe (but allow mail from someone else):否定は「Joe」に係る。
オーサリングされたSPLプログラムは、否定が係る範囲およびモデル化の仕方を決定する。意味解析エンジンは、可能なすべての読み取り値を供給する。
3. Don't allow mail from Joe (but allow mail from someone else): Denial is related to “Joe”.
The authored SPL program determines the extent of negation and how to model. The semantic analysis engine supplies all possible readings.

節については、オーサリングされたコードは、節がフレームベースの制約(動詞が先頭に付く制約)としてモデル化されるか、または定義済み制約のうちの1つとしてモデル化されるかを決定する。例えば、「book that discusses Foo」では、「that discusses Foo」という節は、Topic制約としてモデル化することができるか、または「book」に対するフレームベースの制約としてモデル化することができる。表88は、BookEntityの構文の一例を示している。   For clauses, the authored code determines whether the clause is modeled as a frame-based constraint (a constraint preceded by a verb) or as one of the predefined constraints. For example, in “book that discussions Foo”, the section “that discusses Foo” can be modeled as a Topic constraint or can be modeled as a frame-based constraint on “book”. Table 88 shows an example of BookEntity syntax.

表88:BookEntity   Table 88: BookEntity

Figure 0005014584
Figure 0005014584

一般に、SPLの観点からすると、SPLプログラムの役割は、アプリケーションの領域の自然言語意味論モデルを定義することである。意味解析の役割は、解析エンジンの言語理解に応じてそのSPLプログラム定義モデルに発話をマッピングすることである。   In general, from an SPL perspective, the role of an SPL program is to define a natural language semantic model of the application domain. The role of semantic analysis is to map utterances to the SPL program definition model according to the language understanding of the analysis engine.

プラットフォームの視点では、意味論的プラットフォームの役割は、話の内容の高度に抽象的な領域独立のオブジェクトモデルを定義することである。この観点からは、SPLコードの役割は、プラットフォームが備える複数の可能性のうちから選ぶことである。   From a platform perspective, the role of the semantic platform is to define a highly abstract domain-independent object model of the story content. From this point of view, the role of the SPL code is to select from a plurality of possibilities provided by the platform.

一般に、SPLプログラムの解決は、話の内容の領域依存意味論モデルを構築することとして理解できる。この領域依存モデルを構築するプロセスでは、領域独立オブジェクトは強く型付けされ、アプリケーションのオブジェクトに係留(マッピング)できる。   In general, the solution of an SPL program can be understood as building a domain-dependent semantic model of the story content. In the process of building this region-dependent model, region-independent objects are strongly typed and can be moored (mapped) to application objects.

E2.型システム
一般に、コアSPL型は、コマンド、フレーム、エンティティ、および制約である。これらは、その存在を判別するために解決の意味論を必要とするため、解決可能型と呼ばれる。
E2. Type System In general, the core SPL type is command, frame, entity, and constraint. These are called resolvable types because they require resolution semantics to determine their existence.

Figure 0005014584
Figure 0005014584

「on resolve」節内にあるすべてが、解決の意味論との関連を持つ。begin、success、およびfail節はすべてオプションである。「on resolve」内の節毎に高々1つありうる。 Everything in the “on resolve” section has an association with the semantics of the solution. The begin, success, and fail clauses are all optional. There can be at most one per node in “on resolve”.

begin節は、解決可能型の解決の始めに呼び出される。既定では、節は「真」を返す。開発者は、「偽」を返すことで、この型に対する解決を停止することをSPLインタプリタに指示する。これは、解決失敗を意味し、fail節が呼び出される。begin節は、開発者が初期化を実行し、アプリケーションが型を処理する適切なコンテキスト/状態に入っているかどうかをチェックする都合のよい場所である。   The begin clause is called at the beginning of resolvable type resolution. By default, the clause returns "true". The developer instructs the SPL interpreter to stop resolving for this type by returning “false”. This means a resolution failure and the fail clause is called. The begin clause is a convenient place for the developer to perform initialization and check if the application is in the proper context / state to handle the type.

success節は、型に対する解決が成功した場合に呼び出される。これは、開発者が、リソースをクリーンアップしたり、解決結果をまとめるコードを作成することができる場所である。開発者は、それでも、偽を返すことにより解決を拒絶することができる。   The success clause is called when the type is successfully resolved. This is where developers can write code that cleans up resources and summarizes resolution results. Developers can still refuse resolution by returning false.

fail節は、型に対する解決が成功しなかった場合に呼び出される。beginおよびsuccess節のように、fail節は「偽」を返し、実際には型の失敗した解決を成功させる。   The fail clause is called when the type resolution is not successful. Like the begin and success clauses, the fail clause returns “false” and in fact makes the type's failed resolution successful.

一実施形態では、コマンドを除く、すべての解決可能型は、制約節をいくつでも持つことができる。これについては、Slotsおよび「with restriction/Frame clauses」に関してさらに詳しく説明される。他の実施形態では、コマンド型を含むすべての解決可能型は、制約節をいくつでも持つことができる。それぞれの解決可能型(Commands、Frames、Entities、およびRestrictions)について、以下で詳述する。   In one embodiment, all resolvable types except commands can have any number of constraint clauses. This is explained in more detail with respect to Slots and “with restriction / Frame classes”. In other embodiments, all resolvable types, including command types, can have any number of constraint clauses. Each solveable type (Commands, Frames, Entities, and Restrictions) is described in detail below.

Commandsは、クライアントアプリケーションによりサポートされている自然言語(NL)対応タスクである。クライアントアプリケーションを開発時に、作成者は、処理したい作用を記述するコマンドを作成する。Commandsは、意味解析に対しアプリケーションへのタスクエントリポイントを供給する。SPL解決は、コマンドから開始し、ツリーを再帰的に下る。Commandsは、ユーザコマンドに対する応答として呼び出される。これは、ユーザがマウスをクリックすることに対する応答として行われるマウスクリックなどのWindows(登録商標)イベントの呼び出され方と類似している。表89は、本発明の一実施形態によるコマンド宣言の構文を示している。   Commands is a natural language (NL) compatible task supported by the client application. When developing a client application, the creator creates a command that describes the action to be processed. Commands provides task entry points to the application for semantic analysis. SPL resolution starts with a command and goes down the tree recursively. Commands is called as a response to a user command. This is similar to how Windows® events such as mouse clicks that are made in response to a user clicking the mouse are invoked. Table 89 shows the syntax of the command declaration according to one embodiment of the present invention.

表89:コマンド宣言   Table 89: Command declarations

Figure 0005014584
Figure 0005014584

例えば、「Command SendMailCommand uses MySendFrame」では、MySendFrameオブジェクトを使用するSendMailCommandオブジェクトを定義する。コマンドは本質的にフレームオブジェクトを包み込む。1つのコマンドでフレームオブジェクトを1つだけ規定できる。 For example, “Command SendMail Command uses MySendFrame” defines a SendMailCommand object that uses a MySendFrame object. The command essentially wraps around the frame object. Only one frame object can be defined with one command.

コマンド内のbegin節は、アプリケーションがコマンドを処理するのに適切なコンテキストおよび/または状態にあるかどうかをチェックするために使用する場所である。これにより、アプリケーションに関する知識に基づきコマンドを非常に早い段階で拒絶することができる。   The begin clause in a command is the location used to check if the application is in the proper context and / or state to process the command. As a result, the command can be rejected at a very early stage based on the knowledge about the application.

success節では、開発者は、コマンドを直接実行するか、またはコマンドを実行するのに必要なデータをパッケージすることができる。このパッケージされたデータは、URL、タスクのXML記述、コマンドを実行できる関数へのデリゲートなどの形態をとることができる。作成者は、そのまま、success節で追加推論を実行し、値「false」を返すことにより解釈を拒絶することができる。これは、作成者が発話全体について大域的に推論することを加納にするため有用である。つまり、作成者は、全体として解決が首尾一貫しているかどうかを調べるため完全に解決された意味論的ツリーを観察することができるということである。断片は独立に、または限られたコンテキストにおいて首尾一貫しているが、一緒にすると意味をなさない場合もある。   In the success section, the developer can execute the command directly or package the data necessary to execute the command. This packaged data can take the form of a URL, an XML description of the task, a delegate to a function that can execute the command, and the like. The creator can simply perform additional inference in the success clause and reject the interpretation by returning the value “false”. This is useful because it allows the creator to reason globally about the entire utterance. That is, the creator can observe a fully resolved semantic tree to see if the solution as a whole is consistent. Fragments are consistent independently or in a limited context, but together they may not make sense.

「Unknown」コマンドは、オーサリングされたコマンドにマッピングされない発話を処理する。一実施形態では、SPLはこのコマンドが存在していることを強制する。   The “Unknown” command processes utterances that are not mapped to the authored command. In one embodiment, SPL forces this command to be present.

フレームは一般に動詞を参照する。フレームには、基本フレームと複合フレームの2種類がある。基本フレームは1つの動詞を参照する。例えば、フレームfindは、動詞「find」を参照する。複合フレームは、一般的に同じ意味を持つ複数の動詞からなるグループである。複合フレームおよびその複数の動詞は、同義語リストと考えることができる。一般に、意味論的プラットフォームは、動詞毎に1つずつ、基本フレームのあらかじめ定められた集合を提供する。整合性を保つため、基本フレームの名前は小文字とし、対応する語彙単語と同じ名前を持つという規約を設ける。対照的に、複合フレームの名前は、大文字で始まる。意味論的プラットフォームは、共通の複合フレームの集合を備える。例えば、プラットフォームは、「find」、「search」、「look」、および「rummage」をまとめるSearch複合フレームを備えることができる。   Frames generally refer to verbs. There are two types of frames: basic frames and composite frames. A basic frame references one verb. For example, the frame find refers to the verb “find”. A compound frame is a group of a plurality of verbs that generally have the same meaning. The compound frame and its multiple verbs can be thought of as a synonym list. In general, semantic platforms provide a predetermined set of basic frames, one for each verb. In order to maintain consistency, the name of the basic frame is set to a lower case letter, and a rule that the same name as the corresponding vocabulary word is provided. In contrast, compound frame names begin with a capital letter. A semantic platform comprises a set of common composite frames. For example, the platform may comprise a Search composite frame that groups “find”, “search”, “look”, and “rumage”.

表90は、基本フレームを定義するための構文を例示している。   Table 90 illustrates the syntax for defining a basic frame.

表90:基本フレーム   Table 90: Basic frame

Figure 0005014584
Figure 0005014584

例えば、findフレームの構文は表91に示されている。 For example, the syntax of the find frame is shown in Table 91.

表91:Findフレーム   Table 91: Find frame

Figure 0005014584
Figure 0005014584

この構文では、語彙単語「find」で表され、DefaultVerbClass内で動作する基本フレームであるfindを定義する。「find」という語は、フレームfindを表す表記として参照される。意味論的プラットフォームでは、すべての動詞をカバーする動詞クラスの振る舞いの集合を定義する。動詞の大半は、DefaultVerbClassの一部である挙動を持つ。 In this syntax, the vocabulary word “find” is defined, and the basic frame that operates in the DefaultVerbClass is defined. The term “find” is referred to as a notation representing the frame find. The semantic platform defines a set of verb class behaviors that cover all verbs. Most of the verbs have a behavior that is part of the DefaultVerbClass.

語彙単語は、インラインで現れなくてもよい。実際、複数の言語をサポートするために、複数の単語はインラインで出現しないことが推奨される。これらは、自オブジェクト内で定義されなければならない。表92は、定義済み表記オブジェクトの構文を例示している。   Vocabulary words do not have to appear inline. In fact, to support multiple languages, it is recommended that multiple words not appear inline. These must be defined in the own object. Table 92 illustrates the syntax of the predefined notation object.

表92:表記オブジェクト   Table 92: Notation objects

Figure 0005014584
Figure 0005014584

フレーム定義とともにインラインではなく、この方法で表記語を別にリストすることにより、言語依存要素は、言語独立要素からきちんと分けられる。 By listing the notation words separately in this way rather than inline with the frame definition, language-dependent elements are neatly separated from language-independent elements.

意味論的プラットフォームにより提供されるすべての基本フレームは、この方法でSPLコードにより定義される、開発者は、さらに、この方法で自分の動詞を定義することもできる。例えば、一実施形態では、開発者は次のようにして、fop基本クラスを定義することができる。   All basic frames provided by the semantic platform are defined in this way by SPL code. Developers can also define their verbs in this way. For example, in one embodiment, a developer can define a flop base class as follows.

frame fop denoted by "fop" behaves as DefaultVerbClass;
それとは別に、好ましい一実施形態では、開発者は次のようにして、fop基本クラスを定義することができる。
frame fop denoted by "fop" behaves as DefaultVerbClass;
Alternatively, in a preferred embodiment, a developer can define a fop base class as follows.

frame fop denoted by "fop;
動詞の大半(95%程度)は語彙単語自体としての言語的実現を持つことになると思われる。ほとんどの場合、他の言語に比較的に直訳される。言語間でこのようにして振る舞わない動詞については、表記クラスに、それらの動詞の言語的実現を指定するメカニズムを用意する。
frame fop denoted by "fop;
Most of the verbs (about 95%) will have linguistic realizations as vocabulary words themselves. In most cases, it is translated relatively directly into other languages. For verbs that do not behave in this way across languages, a mechanism is provided in the notation class that specifies the linguistic realization of those verbs.

上述のように、複合フレームは動詞のグループである。それらは本質的に同義語リストである。複合フレームを作成する際に、複数のグループ内で使用されるフレームの表記のみ、複合フレームにより「継承」される。   As mentioned above, a composite frame is a group of verbs. They are essentially synonym lists. When creating a composite frame, only the notation of the frame used in the plurality of groups is “inherited” by the composite frame.

SPLを使用すると、開発者は基本フレームおよび複合フレームから自グループを作成することができる。例は、表94に示されている。   Using SPL, developers can create their own groups from basic frames and composite frames. An example is shown in Table 94.

表94:複合フレーム   Table 94: Composite frame

Figure 0005014584
Figure 0005014584

本質的に、この宣言は、groups節で規定されているフレームのすべての表記の論理和集合を確定し、重複を取り除き、その後、except節で規定されているフレームの表記を取り除く。except節は、オプションである。例えば、表95は、定義内にexcept節を含む複合フレームを例示している。 In essence, this declaration establishes the union of all notations of the frame specified in the groups clause, removes duplicates, and then removes the notation of the frame specified in the exception clause. The exception clause is optional. For example, Table 95 illustrates a composite frame that includes an exception clause in the definition.

表95:except節を持つ複合フレーム   Table 95: Composite frame with an exception clause

Figure 0005014584
Figure 0005014584

これは、findフレームの表記を除いてSearchおよびfopの表記をグループ化するMySearchFrameを定義する。 This defines a MySearchFrame that groups Search and fop notations except for the notation of find frames.

他のフレームつまり基本フレームまたは複合フレームのいずれかから継承する派生フレームも作成できる。表96は、派生フレームの構文を例示している。   Derived frames can be created that inherit from other frames, either basic frames or composite frames. Table 96 illustrates the syntax of the derived frame.

表96:派生フレーム   Table 96: Derived frames

Figure 0005014584
Figure 0005014584

継承の問題については、以下のセクションE.3で詳述する。 The issue of inheritance is detailed in section E.3 below.

エンティティは、アプリケーションにおいて、名前で、または記述により参照できるオブジェクトである。エンティティは、ファイルアイテムおよび電子メールアイテムのような、具体的な物でよいが、色、テクスチャなどの抽象的概念を表すこともできる。エンティティは、通常、語彙単語で表される。表97は、Entityを宣言する構文を示している。   An entity is an object that can be referenced by name or by description in an application. Entities can be concrete things, such as file items and email items, but they can also represent abstract concepts such as color, texture, etc. Entities are usually represented by vocabulary words. Table 97 shows the syntax for declaring Entity.

表97:Entity宣言   Table 97: Entity declaration

Figure 0005014584
Figure 0005014584

フレームのように、複数の言語をサポートするために、表記はインラインで規定しないことが推奨される。表98は、そのような表記の一例を示している。 In order to support multiple languages, such as frames, it is recommended that notation not be specified inline. Table 98 shows an example of such a notation.

表98:表記   Table 98: Notation

Figure 0005014584
Figure 0005014584

作成者は、denoted by節を使って、エンティティを表す自然言語単語のリストを規定することができる。denoted by節は、開発者がエンティティを語彙単語に基づくようにする手段である。エンティティは、1つの単語または複数の単語のグループによって表される必要はない。エンティティは、その制約により記述することができる。単語の形態の処理は意味論的プラットフォームが受け持つので、開発者は、単語の様々な形態(「file」および「files」など)を規定する必要はない。さらに、表記は、エンティティが成功するように発話内で規定される必要もない。しかし、表記が発話内に含まれる場合、その表記は、エンティティのリスト内の表記の1つと一致していなければならない。 An author can specify a list of natural language words representing an entity using a deleted by clause. The deleted by clause is a means by which a developer makes an entity based on a vocabulary word. An entity need not be represented by a single word or a group of words. Entities can be described by their constraints. Because the processing of word forms is handled by the semantic platform, developers do not have to define various forms of words (such as “file” and “files”). Furthermore, the notation need not be specified in the utterance for the entity to succeed. However, if a notation is included in the utterance, the notation must match one of the notations in the list of entities.

いくつかの実施形態では、表記は宣言時にオプションであることが望ましい場合がある。さらに、いくつかの実装では、義務的表記(エンティティが成功するために発話内に含まれなければならない単語)を追加することが望ましい場合がある。「義務的」表記の存在は、success節に含まれるコードを通じて強制されるようにできる。表99は、success節を通じて強制される義務的表記の一例を示している。   In some embodiments, it may be desirable for the notation to be optional at the time of declaration. In addition, in some implementations it may be desirable to add a mandatory notation (a word that must be included in the utterance for the entity to succeed). The presence of the “mandatory” notation can be enforced through code included in the success clause. Table 99 shows an example of mandatory notation enforced through the success clause.

表99:success節を通じて強制する義務的表記   Table 99: Mandatory notation enforced through success clause

Figure 0005014584
Figure 0005014584

一般に、制約は、型付けされた意味論的関係である。プラットフォームは、あらかじめ定められた関係の基本集合を備えている。制約に関する事で最も重要なのは、1つの言語内の、および複数の言語にまたがる、構文の変種の正規化である。制約は、意味論的であり、統語的ではない。したがって、制約を使用することで、開発者は、言語の構文ではなく、意味についてコーディングを行うことができる。制約により、オーサリングの負担が大幅に軽減され、他の言語への対応が可能になる。   In general, a constraint is a typed semantic relationship. The platform has a basic set of predetermined relationships. Most important in terms of constraints is the normalization of syntax variants within a language and across multiple languages. Constraints are semantic and not syntactic. Thus, using constraints allows developers to code for meaning rather than language syntax. Restrictions greatly reduce the burden of authoring and support for other languages.

特定の意味を有するシステム定義スロットにはいくつかの制約が付く。上のセクションDのLOMの説明では、コード例を示し、またスロットについても一部説明した。いくつかの共通の制約を以下の表100に示す。   There are some restrictions on system-defined slots that have a specific meaning. In the description of LOM in section D above, code examples are shown and some of the slots are also described. Some common constraints are shown in Table 100 below.

表100:共通の制約のリスト   Table 100: List of common constraints

Figure 0005014584
Figure 0005014584

Default制約と呼ばれる特別な制約がある。Default制約は、解決可能型に未解決または未認識の制約がある場合にSPLランタイムにより発火される。   There is a special constraint called the Default constraint. The Default constraint is fired by the SPL runtime when there are unresolved or unrecognized constraints on the resolvable type.

開発者は、事前に定義された制約の集合のうちの1つから継承するか、フレームベースの制約を作成するか、またはパターンを規定することにより、独自の制約を作成する。   Developers create their own constraints by inheriting from one of a predefined set of constraints, creating frame-based constraints, or defining patterns.

一般に、制約は、エンティティおよびフレームだけでなく、他の制約にも適用することができる。概して、SPLでは、特定の制約を適用することで意味論的な意味を持たせるかどうかについて強制しない。SPLは、いくつかの例外を認めることで、意味論的モデリングを簡略化したり、曖昧さを減らしたりする。いくつかの例外が以下の表101に示されている。   In general, constraints can be applied not only to entities and frames, but also to other constraints. In general, SPL does not enforce whether to give semantic meaning by applying certain constraints. SPL allows for some exceptions to simplify semantic modeling and reduce ambiguity. Some exceptions are shown in Table 101 below.

表101:SPL例外
1.Degree制約は、制約にのみ許される。
Table 101: SPL exceptions 1. Degree constraints are only allowed in constraints.

2.DoerおよびDoneTo制約は、フレームにのみ許される。     2. Doer and DoneTo constraints are only allowed on frames.

3.否定はエンティティには許されない。
制約は、以下の構文を使用して型に適用される。
3. Denial is not allowed for an entity.
Constraints are applied to types using the following syntax:

with restriction RestrictionName<slot1 := type, ..., slotn := type>;
括弧内の項は、スロットと呼ばれる。「with restriction」文は、制約節と呼ばれる。ラベル「restriction」は、いくつかの問題点を避けるために選択された。例えば、制約には、「properties」というラベルを付けられるが、プロパティは、必ずしも、記述子として機能するわけではない。例えば、「mail in Inbox」を「mail with the property of being in the Inbox folder」と考えることもできる。しかし、この同じ関係は、基数と序数などの数量詞とは共存しない。「three files」という語句と「files with the property of three」とは同等ではない。さらに、単語「property」は、すでに、従来のプログラミングパラダイムの中で使用されている(例えば、「properties of a list box」)。一般的に、語「properties」をオーバーロードしないことが望ましく、また同じことは、単語「attribute」についてもいえる。
with restriction RestrictionName <slot 1 : = type, ..., slot n : = type>;
The terms in parentheses are called slots. A “with restriction” statement is called a constraint clause. The label “restriction” was chosen to avoid some problems. For example, constraints can be labeled “properties”, but properties do not necessarily function as descriptors. For example, “mail in Inbox” can be considered as “mail with the property of being in the Inbox folder”. However, this same relationship does not coexist with quantifiers such as radix and ordinal. The phrase "three files" and "files with the property of three" are not equivalent. Furthermore, the word “property” is already used in a conventional programming paradigm (eg, “properties of a list box”). In general, it is desirable not to overload the word “properties”, and the same is true for the word “attribute”.

代わりに、Entityは、集合の概念を伝達することを意図している。SPLの「entity」宣言では、実際には、エンティティの集合を規定し、制約を適用することがその集合を制約することになっている。例えば、Mailにより表されるMailEntityを宣言する構文
entity MailEntity denoted by "mail"
は、すべてのメールアイテムの集合を表すオブジェクトの宣言である。表102は、エンティティに適用される制約の構文を例示している。
Instead, Entity is intended to convey the concept of set. In the SPL “entity” declaration, in practice, a set of entities is defined, and applying a constraint restricts the set. For example, the syntax for declaring a MailEntity represented by Mail
entity MailEntity denoted by "mail"
Is a declaration of an object that represents a collection of all mail items. Table 102 illustrates the syntax of constraints that apply to entities.

表102:エンティティに適用される制約   Table 102: Constraints applied to entities

Figure 0005014584
Figure 0005014584

ここで、メールアイテムの集合は、MailFolderロケーションに制約される。 Here, the collection of mail items is constrained by the MailFolder location.

制約をフレームに適用することは、その作用を制約することとみなすべきである(Framesは、通常、動詞または作用をモデル化する)。表103は、制約付きのフレームを例示している。   Applying a constraint to a frame should be considered as constraining its action (Frames typically model verbs or actions). Table 103 illustrates frames with constraints.

表103:フレームに対する制約   Table 103: Frame constraints

Figure 0005014584
Figure 0005014584

ここで、Means制約は、MyOpenフレームに適用され、それによってopen fileの作用をNotepadの使用に制約する。 Here, the Means constraint is applied to the MyOpen frame, thereby constraining the operation of the open file to the use of Notepad.

同じことが制約に対する制約にも適用される。例えば、Cardinal制約はエンティティの基数を表す。「3 files」という語句は、任意の3ファイルを意味する。しかし、基数は、「first 3 files」のように、Ordinalにより制約することができる。表104は、制約に適用される制約を例示している。   The same applies to constraints on constraints. For example, the Cardinal constraint represents an entity cardinality. The phrase “3 files” means any three files. However, the radix can be constrained by Ordinal, like “first 3 files”. Table 104 illustrates the constraints that apply to the constraints.

表104:制約に対する制約   Table 104: Constraints for constraints

Figure 0005014584
Figure 0005014584

ここで、restriction節は、序数を適用することにより基数を制約する。 Here, the restriction clause constrains the radix by applying an ordinal number.

一般に、解決可能型は、コマンドを除き、任意の数の制約をそれらに適用可能である。それぞれの制約型は、シグネチャが一意である限り、何回も適用できる。表105は、一意的なシグネチャとともに複数の制約を持つFrameを示している。   In general, resolvable types can apply any number of constraints to them, except for commands. Each constraint type can be applied many times as long as the signature is unique. Table 105 shows a Frame with multiple constraints along with a unique signature.

表105:複数の制約を持つフレーム   Table 105: Frame with multiple constraints

Figure 0005014584
Figure 0005014584

制約節が発火する順序は、意味解析に依存する。一般に、順序は、言語証拠、統計的順位付け、および領域依存学習の組合せに基づく。いくつかの実装では、決定論的順序を強制するメカニズムを加えることができる。SPLランタイムは、SPLの言語意味論および意味解析により、制約節を発火する。 The order in which constraint clauses fire is dependent on semantic analysis. In general, the order is based on a combination of linguistic evidence, statistical ranking, and domain-dependent learning. Some implementations can add mechanisms to enforce deterministic order. The SPL runtime fires constraint clauses through SPL language semantics and semantic analysis.

上述のように、スロットは、角括弧(<>)内に現れる項である。スロット構文は、使用時にスロットをサブタイプ化するために使用される。SPLは、制約の複数の定義済みスロットを持つ。例えば、意味論システムでは、Goal制約を以下のように定義する。   As described above, a slot is a term that appears in square brackets (<>). Slot syntax is used to subtype slots when used. The SPL has a plurality of predefined slots of constraints. For example, in the semantic system, the Goal constraint is defined as follows.

Goal<goal := Entity>
goalスロットは、基本Entity型を持ち、領域独立指定と呼ぶことができる。開発者がこの領域独立Goalを解決可能型に適用する場合、開発者は、適用時にgoalスロットをサブタイプ化できる。表106は、サブタイプ化されたgoalスロットを含むFrameの構文を示している。
Goal <goal: = Entity>
The goal slot has a basic Entity type and can be called area independent designation. If the developer applies this domain independent goal to a resolvable type, the developer can subtype the goal slot when applied. Table 106 shows the syntax of the Frame including subtyped goal slots.

表106:サブタイプ化されたgoalスロットを持つフレーム   Table 106: Frame with subtyped goal slots

Figure 0005014584
Figure 0005014584

ここで、開発者は、goalスロットをContactItem(ContactItemはエンティティ型でなければならない)にサブタイプ化している。 Here, the developer subtypes the goal slot into ContactItem (ContactItem must be an entity type).

制約節のコード内では、制約はオブジェクトとしてアクセス可能である。表107は、制約をオブジェクトとしてアクセスするための構文を示している。   Within the constraint clause code, constraints are accessible as objects. Table 107 shows the syntax for accessing constraints as objects.

表107:制約のオブジェクトとしてのアクセス   Table 107: Access as constraints object

Figure 0005014584
Figure 0005014584

一般に、解決可能型は、C++テンプレートとのアナロジーを使用して概念化することができる。Goal制約は、例えば、汎用型のgoalデータメンバを持つテンプレートGoalクラスと考えることができる。すると、上記Goal制約節の擬似C++コードは以下のようになる。   In general, resolvable types can be conceptualized using an analogy with C ++ templates. The Goal constraint can be considered as a template Goal class having a general-purpose goal data member, for example. Then, the pseudo C ++ code of the above Goal constraint clause is as follows.

bool OnGoalClause (GoalTemplateClass<ContactItem> Goal);
SPLコンパイラは、goalスロットの適切なサブタイプ化を強制する。
bool OnGoalClause (GoalTemplateClass <ContactItem>Goal);
The SPL compiler enforces proper subtyping of goal slots.

解決可能型のコンシューマは、型の制約節をサブタイプ化したい場合がある。例えば、上記のsendフレームのコンシューマは、以下のようにスロット構文を使用してGoal制約節のgoalスロットをサブタイプ化したい場合がある。   A resolvable type consumer may want to subtype a type constraint clause. For example, the send frame consumer may want to subtype the goal slot of the Goal constraint clause using the slot syntax as follows:

command MySendCommand uses send<Goal.goal := MyCont act Item>;
sendフレームに適用されるGoal制約節が多数ありうるため、開発者側で参照される節を規定できなければならない。
command MySendCommand uses send <Goal.goal: = MyCont act Item>;
Since there can be many Goal constraint clauses applied to the send frame, it must be possible to define clauses referenced by the developer.

他の種類の制約として、AsProperty制約がある。asproperty属性を使用することにより、解決可能型のコンシューマは、スロット構文を使用して制約節のスロットをサブタイプ化することができる。この属性は、表108に示されているように制約節で規定される。   Another type of constraint is an AsProperty constraint. By using the asperity attribute, resolvable consumer can subtype the slot of the constraint clause using slot syntax. This attribute is defined in the constraint clause as shown in Table 108.

表108:AsProperty属性   Table 108: AsProperty attributes

Figure 0005014584
Figure 0005014584

ここで、sendフレームの開発者は、sendフレームのGoal制約節は、コンシューマにより以下のようにスロット構文を使用してサブタイプ化することができることを宣言している。 Here, the send frame developer has declared that the Goal constraint clause of the send frame can be subtyped by the consumer using the slot syntax as follows.

command MySendCommand uses send<Goal.goal := MyContactItem>;
この宣言で、MySendCommandはsendフレームを使用し、sendフレームのGoal制約節をサブタイプ化し、MyContactItemとする。
command MySendCommand uses send <Goal.goal: = MyContactItem>;
With this declaration, MySendCommand uses the send frame, subtypes the Send frame's Goal constraint clause, and makes it MyContactItem.

一般に、asproperty属性を使用すると、sendフレーム内のコードで、プロパティ構文を使用することによりこのGoalオブジェクトにアクセスすることもできる。すべての解決可能型は、コードで制約の現在解決されているコレクションにアクセスできるRestrictionCollectionプロパティを持つ。asproperty属性を使用すると、表109に示されているようにプロパティ構文を使用して標示されている制約にアクセスすることができる。例えば、次のようである。   In general, using the asperity attribute, code in the send frame can also access this Goal object by using property syntax. All resolvable types have a RestrictionCollection property that allows access to the currently resolved collection of constraints in code. The aspproperty attribute can be used to access the constraints that are labeled using the property syntax as shown in Table 109. For example, it is as follows.

表109:プロパティ構文を使用して標示されている制約にアクセス   Table 109: Accessing labeled constraints using property syntax

Figure 0005014584
Figure 0005014584

さらに、それぞれの型の1つの制約のみが、以下の表110に示されているように制約スロットの型に関係なく、asproperty属性を標示できる。   Furthermore, only one constraint of each type can indicate the asperity attribute regardless of the type of the constraint slot as shown in Table 110 below.

表110:AsProperty制約制限   Table 110: AsProperty constraint restrictions

Figure 0005014584
Figure 0005014584

しかし、この構文は、以下のように開発者側で変更し、1つの型の複数の制約がasproperty属性を標示するようにできる。 However, this syntax can be changed on the developer side as follows, so that multiple constraints of one type indicate the attribute attribute.

restriction Goal2 : Goal<goal := UserItem>;
これにより、問題がなくなり、フレームは以下の表112に示されているように解決できる。
restriction Goal2: Goal <goal: = UserItem>;
This eliminates the problem and the frame can be resolved as shown in Table 112 below.

表112:制約構文   Table 112: Constraint syntax

Figure 0005014584
Figure 0005014584

制約節内のスロットの順序付けに関して、いくつかの制約がシステムスロットとともに定義されることを理解しておくことが重要である。例えば、Goal制約は、goalスロットとともに定義される。使用時にGoal制約をサブタイプ化する場合(つまり、制約節で)、システムスロットは、表113に示されているように最初に規定されなければならない。   It is important to understand that with respect to slot ordering within a constraint clause, some constraints are defined with the system slot. For example, a Goal constraint is defined with a goal slot. When subtyping a Goal constraint in use (ie, in a constraint clause), the system slot must first be defined as shown in Table 113.

表113:スロットの順序付け   Table 113: Slot ordering

Figure 0005014584
Figure 0005014584

aspropertyを標示されている制約節を持つエンティティは、使用時にサブタイプ化された制約節を持つことができる。例えば、ContactItemでは、表114に示されているようにLocation制約節はaspropertyを標示されているとする。   Entities with constraint clauses labeled as property can have constraint clauses that are subtyped when used. For example, in the ContactItem, as shown in Table 114, it is assumed that the location constraint clause is labeled as aproperty.

表114:AsPropertyを標示されている場所制約   Table 114: Location constraints labeled AsProperty

Figure 0005014584
Figure 0005014584

制約節は、さらに、obligatoryを標示することもでき、これは、節が実行されて成功しなければならないか、さもなければ、その型の解決が失敗することを意味する。節が成功するためには、以下の基準が満たされなければならない。   The constraint clause can also indicate an obligatory, which means that the clause must be executed and succeed, or else its type resolution will fail. In order for a clause to succeed, the following criteria must be met:

1.制約は、発話内になければならない。     1. The constraint must be in the utterance.

2.節の宣言制約条件(スロットの型)が満たされていなければならない。     The declaration constraints (slot type) in section 2 must be satisfied.

3.節内の手続き制約条件(コード)は真に評価されなければならない。     3. The procedure constraints (codes) in section 3 must be truly evaluated.

例は、以下の表115に示されている。   Examples are shown in Table 115 below.

表115:Obligatory制約   Table 115: Obligatory constraints

Figure 0005014584
Figure 0005014584

表115内のフレームの構文では、sendフレームの解決が成功するために、発話内の「send」のゴールとしてContactItemがなければならない。したがって、「send mail」は、解決しないが、「send to Bob」は、「Bob」が解決されたContactItemであれば、解決する。 The frame syntax in Table 115 requires that ContactItem be the goal of “send” in the utterance in order for the send frame to be resolved successfully. Therefore, “send mail” is not resolved, but “send to Bob” is resolved if it is a ContactItem in which “Bob” is resolved.

E3.SPL継承
継承は、エンティティ、フレーム、および制約上で許される。現在、コマンドは継承をサポートしていない。一般的に、コマンドでの継承サポートの必要はなさそうである(この時点では)。コマンドは、継承を必要としないタスクエントリポイントである。
E3. SPL Inheritance Inheritance is allowed on entities, frames, and constraints. Currently, commands do not support inheritance. In general, there seems to be no need for inheritance support in commands (at this point). Commands are task entry points that do not require inheritance.

すべて「継承可能」コードは、コマンドが使用するフレーム内にある。すでに説明したように、on resolve節内の解決意味論を除き、解決可能型は、通常のオブジェクトにすぎない。on resolve節の外部では、SPLは、当業ではよく知られている、C#継承意味論を採用する。この説明の目的のために、本開示では、従来の(C#)継承意味論に従わないon resolve節内の継承意味論に注目している。しかし、いくつかの実装では、継承を使用する実際のアプリケーションの特定の機能を使用可能にするために従来のC#継承意味論から外れることが望ましい場合がある。簡単のため、説明では、そのようなすべての可能性には立ち入らず、規則によれば間違っているだろうが説明が簡単になるよう試みる。   All “inheritable” code is in the frame used by the command. As already explained, except for the resolution semantics in the on resolve clause, resolvable types are just ordinary objects. Outside the on resolve clause, SPL employs C # inheritance semantics, well known in the art. For the purposes of this description, this disclosure focuses on inheritance semantics in on resolve clauses that do not follow conventional (C #) inheritance semantics. However, in some implementations it may be desirable to deviate from traditional C # inheritance semantics in order to enable certain features of actual applications that use inheritance. For simplicity, the explanation does not go into all such possibilities and tries to simplify the explanation, which may be wrong according to the rules.

まず、on resolve節の関数、制約節、および変数内のスコーピングを理解することが重要である。表116は、スコープの説明を簡単にするため、Mail Entityの構文を示している。   First, it is important to understand the scoping in functions, constraint clauses, and variables of on resolve clauses. Table 116 shows the Mail Entity syntax to simplify the scope description.

表116:メールエンティティ   Table 116: Mail entity

Figure 0005014584
Figure 0005014584

on resolveスコープ内で定義されている変数は、on resolveスコープ内の制約節からアクセス可能であるが、on resolve節の外部からはアクセス可能でない。上の例では、整数yは、Goal制約節と関数foo()内でアクセス可能であるが、関数bar()内ではアクセス可能でない。 Variables defined in the on resolve scope are accessible from the constraint clause in the on resolve scope, but are not accessible from outside the on resolve clause. In the above example, the integer y is accessible in the Goal constraint clause and in the function foo (), but not in the function bar ().

on resolve節で宣言された関数は、その節に対してはプライベートである、つまり、そのような関数は、on resolve節の外部からはアクセスできないということである。したがって、foo()はbar()内からアクセスできない。制約節も、on resolve節に対してプライベートであり、したがって、その外部からはアクセスできない。   A function declared in an on resolve clause is private to that clause, that is, such a function cannot be accessed from outside the on resolve clause. Therefore, foo () cannot be accessed from within bar (). The constraint clause is also private to the on resolve clause and therefore cannot be accessed from outside.

型のスコープ内で宣言されている変数は、outerキーワードを使用することによりon resolve節内の節および関数からアクセス可能である。例えば、整数xは、Goal制約および関数foo()内で、outer.xとしてアクセス可能である。型のスコープ内で宣言されている関数は、on resolve節からアクセス可能である。したがって、関数bar()は、Goal制約および関数foo()内で、outer.bar()としてアクセス可能である。   Variables declared within the scope of a type are accessible from clauses and functions in the on resolve clause by using the outer keyword. For example, the integer x is the outer constraint in the Goal constraint and function foo (). x is accessible. Functions declared within the scope of a type are accessible from the on resolve clause. Therefore, the function bar () is assigned to outer. It can be accessed as bar ().

on resolve節は、コンストラクタに関係するすべてがそのコンストラクタにプライベートとなるように、拡張コンストラクタとして概念化することができる。これは、派生クラスは、基本クラス内の制約節をどれも呼び出すことができないことを意味する。   The on resolve clause can be conceptualized as an extended constructor so that everything related to the constructor is private to the constructor. This means that a derived class cannot call any constraint clauses in the base class.

エンティティは、他の1つのエンティティから継承することができる。エンティティの複数の継承は許されない。基本エンティティの表記は、派生エンティティの表記にマージされる。表117に示されているように、マージされた表記リスト内に階層はない(表記はフラット化されている)。   An entity can inherit from one other entity. Multiple inheritance of entities is not allowed. The base entity representation is merged with the derived entity representation. As shown in Table 117, there is no hierarchy in the merged notation list (notation is flattened).

表117:マージされた表記リスト   Table 117: Merged notation list

Figure 0005014584
Figure 0005014584

MyMailEntityの表記リストは、「mail」、「email」、および「electronic mail」からなる。 The notation list of MyMailEntity consists of “mail”, “email”, and “electronic mail”.

定義時に、派生エンティティは、さらに、aspropertyを標示されている基本エンティティの制約節をサブタイプ化することもできる。例えば、MailEntityがaspropertyを標示されたLocation制約節を持っていた場合、MyMailEntity定義は以下のようになりうる。   At definition time, the derived entity can also subtype the constraint clause of the base entity labeled as asperity. For example, if MailEntity has a Location constraint clause labeled as asperity, the MyMailEntity definition can be as follows:

Figure 0005014584
Figure 0005014584

このコードブロックは、MyMailEntityがMailEntityのLocationに対する認識を継承するが、実際の場所に対する特性をさらに加えることを指示する。 This code block indicates that MyMailEntity inherits the recognition of MailEntity's Location, but adds more properties for the actual location.

エンティティのように、フレームは、他の1つのフレームからのみ継承することができる。複数の継承は許されない。定義により、派生フレームで、フレームのグループを規定することはできない。複合フレームおよびフレーム継承は分離される。エンティティの場合と同じようにしてFramesの継承を処理することが可能である。例えば、複合フレームでは、表記リストはグループにまとめられる。いくつかの場合において、すべてのフレームが、フレームのグループ化の際に同じビヘイビアクラスに属すという要求条件を強制することが望ましいことがある。グループ内のフレームが同じLSSクラスに属している必要がない場合、複数のフレームおよびエンティティを同じ方法で処理することも可能である。   Like an entity, a frame can only be inherited from one other frame. Multiple inheritance is not allowed. By definition, a derived frame cannot specify a group of frames. Compound frames and frame inheritance are separated. It is possible to handle the inheritance of Frames in the same way as for entities. For example, in a composite frame, notation lists are grouped together. In some cases, it may be desirable to enforce the requirement that all frames belong to the same behavior class during frame grouping. Multiple frames and entities can be processed in the same way if the frames in the group need not belong to the same LSS class.

フレームおよびエンティティのように、派生制約は、他の1つの制約からのみ継承することができる。基本制約の制約節のサブタイプ化も、派生制約の定義時に生じる可能性がある。   Like frames and entities, derived constraints can only be inherited from one other constraint. Subtyping of constraint clauses of basic constraints can also occur when defining derived constraints.

特定の制約型の制約節は、基本型に進む前に派生型で試みられる。これは、さらに、以下の表118に示されているようにDefault制約に適用される。   A constraint clause for a particular constraint type is tried on the derived type before proceeding to the base type. This further applies to the Default constraint as shown in Table 118 below.

表118:Default制約   Table 118: Default constraints

Figure 0005014584
Figure 0005014584

MyMailEntity上のLocation制約を解決する場合、制約節を発火する順序は以下のとおりである。 When resolving Location constraints on MyMailEntity, the order in which the constraint clauses are fired is as follows.

1.MyMailEntity.Location
2.MailEntity.Location
3.MyMailEntity.Default
4.MailEntity.Default
今のところ、パブリック/プライベート制約節の概念も、制約節のオーバーライドの概念もない。部分的には、これは、クラスを解決するために制約節が使用され、それらの節がon resolve節に対しプライベートであるとした場合に、制約節をオーバーライドすることはほとんど意味がないからである。しかし、いくつかの実装では制約節をオーバーライドできるようにすることが望ましい場合がある。
1. MyMailEntity.Location
2. MailEntity.Location
3. MyMailEntity.Default
4). MailEntity.Default
At present, there is no concept of public / private constraint clauses and no constraint clause override concept. In part, this is because there is little point in overriding the constraint clauses if constraint clauses are used to resolve the class and those clauses are private to the on resolve clause. is there. However, in some implementations it may be desirable to be able to override the constraint clause.

実装によっては、派生クラス(解決時に)が基本クラス内のメンバ(メソッドおよび変数)にアクセスできるようにする必要がある。基本クラスはまだ解決されていないため、これは問題になることがある。基本クラスが解決されるまで派生クラスが基本クラスのメンバにアクセスすることを許されない場合、派生クラスは、解決時に基本クラスに多態に設定できないようになっていなければならない。いずれの場合も、派生クラスは、基本クラスが解決される前に基本クラス上で制約節を直接呼び出すことを許されないことがある。   Depending on the implementation, derived classes (at resolution time) need to be able to access members (methods and variables) in the base class. This can be a problem because the base class is not yet resolved. If a derived class is not allowed to access members of the base class until the base class is resolved, the derived class must not be able to be polymorphic to the base class at resolution time. In either case, the derived class may not be allowed to call the constraint clause directly on the base class before the base class is resolved.

継承は、既存のエンティティに対する認識を高めるために使用することができる。再び上述の表118のMailEntityコードを参照すると、MailEntityはLocation制約しか認識しないことに留意すべきであることがわかる。MyMailEntity内のオーサリングされたLocationロジックを利用し、Topicの認識を加えるエンティティを作成することが可能である。さらに、基本クラスと同じ型の制約節は、以下の表119に示されているように追加することができる。   Inheritance can be used to increase awareness of existing entities. Referring again to the MailEntity code in Table 118 above, it should be noted that MailEntity recognizes only Location constraints. It is possible to create an entity that adds Topic recognition using the authored Location logic in MyMailEntity. In addition, constraint clauses of the same type as the base class can be added as shown in Table 119 below.

表119:MyMailEntity   Table 119: MyMailEntity

Figure 0005014584
Figure 0005014584

制約節が呼び出され、節内のオーサリングされたコードにより拒絶された場合、インタプリタは、現在の型または多態的に同等の上位型のどれかの制約節を呼び出す。多態的に同等であるとみなすために、制約型およびそのスロットの型は、両方とも、以下の表120に示されているように多態的でなければならない。   If a constraint clause is invoked and rejected by the authored code in the clause, the interpreter invokes the constraint clause of either the current type or a polymorphically equivalent supertype. To be considered polymorphic equivalent, both the constraint type and its slot type must be polymorphic as shown in Table 120 below.

表120:多態性   Table 120: Polymorphism

Figure 0005014584
Figure 0005014584

これらは、正確に同等ではないが、表121に示されているように、スロットでのサブタイプ化の代わりに継承を使用することが可能である。   These are not exactly equivalent, but it is possible to use inheritance instead of subtyping in slots as shown in Table 121.

表121:継承   Table 121: Inheritance

Figure 0005014584
Figure 0005014584

MailEntity3と突き合わせて「mail in Inbox」を解決する場合、MailEntity3.Location節はMailEntity.Location節に優先する。この場合、MailEntity3に対しては、2つのLocation制約節がある。しかし、MailEntity2に対しては、Location節は1つしかない。スロットでのサブタイプ化は、MailEntity2に対するLocationはMailEntityのLocation制約節により、ただしMyMailFolder型を使用して、評価されなければならないことを示すと解釈することができる。 When resolving “mail in Inbox” by matching with MailEntity3, MailEntity3. The Location section is MailEntity. Takes precedence over the Location section. In this case, there are two Location constraint clauses for MailEntity3. However, for MailEntity2, there is only one Location clause. Sub-typing at the slot can be interpreted as indicating that the location for MailEntity2 must be evaluated by the Location constraint clause of MailEntity, but using the MyMailFolder type.

obligatory属性を持つ制約節を宣言する場合には、注意しなければならないことに留意されたい。義務的節は、型の解決が成功する順序で発火し、成功しなければならない。基本型で節をobligatoryと宣言した場合、派生クラスは、基本クラスに入るべき決定を処理しないようにしなければならない。派生型は、その基本型の制約節を呼び出すことはできない。その代わりに、派生型は、基本型のobligatory制約節を呼び出すのに通常の解決意味論に依存する。   Note that care must be taken when declaring a constraint clause with an obligatory attribute. Mandatory clauses must fire and succeed in the order in which the type resolution succeeds. If a base type declares a clause as obligatory, the derived class must not handle decisions that should enter the base class. A derived type cannot call a constraint clause of its base type. Instead, the derived type relies on normal solution semantics to invoke the primitive type's obligatory constraint clause.

E4.解決意味論
SPLの解決意味論は、SPLランタイムにより実装される。ランタイムは、SPLの言語意味論により、発話の領域依存モデルを構築する。このランタイムは、言語およびSPL言語の規則に従って、オーサリングされたSPL型と突き合わせて自然言語コマンドを解決する。
E4. Solution Semantics The SPL solution semantics are implemented by the SPL runtime. The runtime builds a domain-dependent model of utterances with SPL language semantics. This runtime resolves natural language commands against the authored SPL type according to language and SPL language rules.

一実施形態では、型の解決は、トップダウン方式で実行される。図5は、本発明の一実施形態による型解決のトップダウン方式の簡略化された流れ図である。第1に、ランタイムは、発話に対して解決できる可能なコマンドを見つける(ステップ500)。複数の可能なコマンドがある場合、解決に対し1つのコマンドが選択される(ステップ502)。コマンドが見つからない場合、Unknownコマンドが呼び出される(ステップ504)。1つまたは複数のコマンドが見つかった場合、ランタイムは、見つかったコマンドを解決しようと試みる(ステップ506)。コマンド解決が失敗した場合、ランタイムはリスト内の次のコマンドに進み、可能なコマンドがなくなるまでステップ502〜510を繰り返す。コマンド解決が成功した場合、コマンドは解釈リストに追加される(ステップ510)。最後に、発話に含まれる可能なコマンドがなくなるまで、または要求された解釈が規定された数に達するまで、ランタイムはステップ(ステップ502から510)を繰り返す(ステップ512)。   In one embodiment, the type resolution is performed in a top-down manner. FIG. 5 is a simplified flowchart of a top-down type solution according to an embodiment of the present invention. First, the runtime finds possible commands that can be resolved for the utterance (step 500). If there are multiple possible commands, one command is selected for resolution (step 502). If no command is found, the Unknown command is called (step 504). If one or more commands are found, the runtime attempts to resolve the found commands (step 506). If command resolution fails, the runtime proceeds to the next command in the list and repeats steps 502-510 until there are no more possible commands. If the command resolution is successful, the command is added to the interpretation list (step 510). Finally, the runtime repeats the steps (steps 502-510) (step 512) until there are no possible commands included in the utterance or until the required number of interpretations is reached.

当業者であれば、解決プロセスには多数の変更形態が可能であることを理解するであろう。例えば、いくつかの場合において、解決の失敗は一般的な失敗となることがあり、これにより、プログラムは解決を終了する。他の場合には、失敗により、型のfailure節が呼び出されることがあるが、この結果、解決が失敗する場合もあれば失敗しない場合もある。さらに、failure節、success節、およびbegin節内では、プログラム開発者は、アプリケーション固有のコードを自由に挿入することができ、これにより、フレームワークを無数の方法で適合させることができる。例えば、開発者は、failure節に、「success」フラグを返すコードを挿入し、解決が失敗しても失敗を引き起こさないようにすることも可能である。失敗した解決は無視されるか、または他のプログラムコードによりプロセスがクライアントアプリケーションにコールバックし、特定の解決などを明確化することもある。図は一例を示すことを目的としているが、可能な実装を網羅することを意図してはいないことに留意されたい。   One skilled in the art will appreciate that many variations of the solution process are possible. For example, in some cases, a resolution failure may be a general failure, which causes the program to terminate the resolution. In other cases, a failure may call a type failure clause, but this may or may not resolve. Furthermore, within the failure, success, and begin clauses, program developers are free to insert application-specific code, which allows the framework to be adapted in a myriad of ways. For example, a developer can insert code that returns a “success” flag in the failure clause to prevent failure if the resolution fails. The failed resolution may be ignored, or other program code may cause the process to call back to the client application to clarify the specific resolution or the like. Note that the diagram is intended as an example, but is not intended to cover possible implementations.

図6に示されているように、コマンド解決の可能な一実施形態は以下のように進行する。コマンドのbegin節が呼び出される(ステップ600)。begin節が失敗した場合、ランタイムがコマンドを終了させる(ステップ601)。begin節が成功した場合、ランタイムは、フレームを解決しようと試みる(ステップ604)。フレーム解決が失敗した場合、フレームのfailure節が呼び出され、実装に応じて、ランタイムがコマンドを終了させるか、または他のオペレーションを実行することができる(ステップ602)。そうでない場合、ランタイムはsuccess節を呼び出す(ステップ606)。   As shown in FIG. 6, one possible embodiment of command resolution proceeds as follows. The begin clause of the command is called (step 600). If the begin clause fails, the runtime terminates the command (step 601). If the begin clause is successful, the runtime attempts to resolve the frame (step 604). If frame resolution fails, the frame failure clause is called and the runtime can terminate the command or perform other operations, depending on the implementation (step 602). Otherwise, the runtime calls the success clause (step 606).

すでに説明しているように、本発明の意味論的プログラミング言語では、プログラム開発者は様々な要素のオペレーションに対する制御を行うことができる。したがって、本発明の解決意味論は、特定のアプリケーションにとって望ましいオペレーションを実装するため無数の方法により修正することができる。そのため、解決が失敗した場合、場合によっては、失敗を無視して、進行することが望ましい。他の場合には、解決が成功するように(クライアントアプリケーションに対するコールバックを行うことなどにより)解決を数ステップで明確化するのが望ましいこともある。さらに他の場合には、解決が失敗した場合に解決を単に終了することが望ましいこともある。   As already explained, the semantic programming language of the present invention allows the program developer to control the operation of various elements. Thus, the solution semantics of the present invention can be modified in a myriad of ways to implement the desired operations for a particular application. Therefore, if the resolution fails, it may be desirable to proceed by ignoring the failure in some cases. In other cases, it may be desirable to clarify the resolution in a few steps (such as by making a callback to the client application) so that the resolution is successful. In still other cases, it may be desirable to simply terminate the solution if the solution fails.

図7に示されているように、一実施形態では、フレーム解決が以下のように進行する。フレームのbegin節が呼び出される(ステップ700)。フレーム解決が失敗した場合、failure節が呼び出され(ブロック702)、ランタイムが、オプションにより、他のコマンドを解決する(ブロック704)。   As shown in FIG. 7, in one embodiment, frame resolution proceeds as follows. The begin clause of the frame is called (step 700). If frame resolution fails, the failure clause is invoked (block 702) and the runtime optionally resolves other commands (block 704).

フレーム解決が成功した場合、ランタイムは、Restriction節を呼び出す(ブロック706)(図4のブロック408および順序に対応する)。Restriction節が解決に失敗した場合、ランタイムは、解決に対する派生型を考慮する(ブロック708)。例えば、派生型MailおよびNotesのエンティティタイプItemが与えられたとすると、Itemを取る他の型SendItem上の節は、MailまたはNotesのインスタンスにより解決することが可能である。   If the frame resolution is successful, the runtime calls the Restriction clause (block 706) (corresponding to block 408 and order in FIG. 4). If the Restriction clause fails to resolve, the runtime considers the derived type for resolution (block 708). For example, given an entity type Item of derived type Mail and Notes, clauses on other types SendItem that take an Item can be resolved by an instance of Mail or Notes.

ランタイムが派生型の呼び出しに成功しなかった場合、実装に応じて、フレームのfailure節が呼び出され(ブロック709)、その後コマンドのfailure節が呼び出される(ブロック702)ようにできる。   If the runtime does not succeed in calling the derived type, depending on the implementation, the failure clause of the frame may be invoked (block 709) and then the failure clause of the command may be invoked (block 702).

その代わりに、Restriction節を単に無視することもできる。Restriction節が無視された場合、ランタイムは、フレームおよびコマンドのsuccess節を呼び出す(ブック712)。その後、ランタイムは、コマンドオブジェクトを「actual interpretations」リストに追加し(ブロック714)、他のコマンドを解決しようと試みる(ブロック704)。   Alternatively, the Restriction clause can simply be ignored. If the Restriction clause is ignored, the runtime invokes the frame and command success clause (book 712). The runtime then adds the command object to the “actual interpretations” list (block 714) and attempts to resolve other commands (block 704).

ランタイムがRestriction節の呼び出しに成功するか(ブロック706)、または解決に対するDerived型の検出に成功した(ブロック708)場合、ランタイムは、Restrictionのsuccess節を呼び出す(ブロック710)。その後、ランタイムは、フレームおよびコマンドのsuccess節を呼び出し(ブロック712)、コマンドオブジェクトを「actual interpretations」リストに追加する(ブロック714)。この後、ランタイムは、可能なすべてのコマンドに対する解決が試みられるまでコマンドを次々に解決しようと試みる(ブロック704)。   If the runtime succeeds in calling the Restriction clause (block 706) or successfully detects the Delivered type for resolution (block 708), the runtime calls the Restriction success clause (block 710). The runtime then invokes the frame and command success clause (block 712) and adds the command object to the "actual interpretations" list (block 714). After this, the runtime attempts to resolve the commands one after another until a resolution is attempted for all possible commands (block 704).

すでに述べたように、プロセスの流れは、説明目的のみを意図しており、決して可能な多数の実装を網羅することはない。実際には、解決プロセスは、大部分でないとしても、少なくとも一部は、特定の実装により決定される。したがって、示されているように、制約解決の失敗は、一般的な解決の失敗を引き起こすか(ブロック709および702により示されているように)、または制約解決は、単に、無視され、コマンド解決が進行する。他の実施形態では、失敗した制約(例えば、Restrictionが義務的である場合)により、ランタイムがクライアントアプリケーションにコールバックするか、またはフロー制御情報を解析エンジンに送信し、コマンドの明確化を行おうとする場合もありうる。このような決定は、たいてい実装固有であり、したがって、意味論的プログラミング言語のプログラミング構文を使用することで、自然言語プログラミングを行いやすくし、特定の実装に合わせて自然言語処理を最適化することができる。   As already mentioned, the process flow is intended for illustrative purposes only and never covers the large number of possible implementations. In practice, the resolution process, if not the majority, is determined at least in part by the particular implementation. Thus, as shown, constraint resolution failure causes a general resolution failure (as indicated by blocks 709 and 702) or constraint resolution is simply ignored and command resolution Progresses. In other embodiments, due to a failed constraint (eg, when Restriction is mandatory), the runtime calls back to the client application or sends flow control information to the analysis engine to attempt to clarify the command. It is possible that Such decisions are often implementation-specific, so using the programming syntax of a semantic programming language makes natural language programming easier and optimizes natural language processing for a particular implementation. Can do.

図8に示されているように、制約節解決の可能な一実施形態は以下のように進行する。提案された制約毎に、制約に対し制約スロットがある場合、ランタイムはResolveSlot関数を呼び出すことによりそれぞれのスロットを解決する(ブロック800)。ResolveSlot関数が失敗した場合、ランタイムは次の提案された制約(ブロック802)を選択し、ResolveSlot関数(ブロック800)を再び呼び出すことによりスロットを解決しようと試みる。ResolveSlot関数が成功した場合(初回に、または次の提案された制約のうちの1つで)、ランタイムは制約節を呼び出す(ブロック804)。   As shown in FIG. 8, one possible embodiment of constraint clause resolution proceeds as follows. For each proposed constraint, if there is a constraint slot for the constraint, the runtime resolves each slot by calling the ResolveSlot function (block 800). If the ResolveSlot function fails, the runtime selects the next proposed constraint (Block 802) and attempts to resolve the slot by calling the ResolveSlot function (Block 800) again. If the ResolveSlot function is successful (at the first time or at one of the next proposed constraints), the runtime calls the constraint clause (block 804).

制約節が失敗した場合、ランタイムは、現在のクラス内で多態的に同等な節を探す(ブロック806)。多態的に同等な節が現在のクラス内に見つからない場合、ランタイムは継承連鎖内の1つを探索する(ブロック808)。多態的に同等な節が見つかった場合、ランタイムは同等な節を呼び出す(ブロック810)。ランタイムは、同等な節が見つからなくなるまで、または同等な節が成功するまで、繰り返す(ブロック808)。   If the constraint clause fails, the runtime looks for a polymorphic equivalent clause in the current class (block 806). If a polymorphic equivalent clause is not found in the current class, the runtime searches for one in the inheritance chain (block 808). If a polymorphic equivalent clause is found, the runtime calls the equivalent clause (block 810). The runtime repeats until no equivalent clause is found or until an equivalent clause is successful (block 808).

必要ならば、ランタイムは、Default制約を呼び出す(ブロック812)。すべての制約節の解決が成功した場合、ランタイムは、success制約を呼び出す(ブロック814)。成功しなかった場合、ランタイムは、Restrictionを無視し(ブロック816)、フレームのsuccess節を呼び出す(ブロック818)。   If necessary, the runtime invokes the Default constraint (block 812). If resolution of all constraint clauses is successful, the runtime invokes the success constraint (block 814). If unsuccessful, the runtime ignores the Restriction (block 816) and invokes the success clause of the frame (block 818).

他の実施形態では、default制約節が失敗した場合、制約は単に無視されるだけである。上述のように、これがNamedまたはNegation制約でない限り、制約はそれでも成功する。   In other embodiments, if the default constraint clause fails, the constraint is simply ignored. As mentioned above, unless this is a Named or Negation constraint, the constraint will still succeed.

制約節は同じ解決可能型について複数回発火できることに留意されたい。例えば、コマンド「show files in c: in temp folder」は、「file」エンティティに対し2つのLocation制約を持つ(「in c:」と「in temp folder」)。今のところ、制約節の解決の唯一強制される順序として、フレームに対するDoerおよびDoneTo制約が最初に解決され(その順序で)、Default制約が最後に解決される。しかし、NegationおよびNamedなど、他の型に順序付けを強制することが望ましい場合もある。   Note that a constraint clause can fire multiple times for the same resolvable type. For example, the command “show files in c: in temp folder” has two Location constraints for the “file” entity (“inc:” and “in temp folder”). Currently, the only mandatory order of constraint clause resolution is to resolve the Doer and DoneTo constraints on the frame first (in that order) and the Default constraint last. However, it may be desirable to enforce ordering on other types, such as Negation and Named.

図9に示されているように、一実施形態では、NamedEntity解決が以下のように進行する。ランタイムは、Entityのbegin節を呼び出す(ブロック900)。これが失敗すると、ランタイムはEntity解決を終了する(ブロック902)。Entityのbegin resolution節が成功した場合、NamedEntityが見つかり、Entityに対応しているならば、ランタイムは、指定されたRestrictionを呼び出そうと試みる(ブロック904)。ブロック904は複数の解決ステップを包含することに留意することが重要であるが、それらは簡単のためここでは省略されている。   As shown in FIG. 9, in one embodiment, Named Entity resolution proceeds as follows. The runtime invokes the entity's begin clause (block 900). If this fails, the runtime ends Entity resolution (block 902). If the entity's begin resolution clause is successful, the runtime attempts to call the specified Restriction if a NamedEntity is found and corresponds to the Entity (block 904). It is important to note that block 904 includes multiple resolution steps, which are omitted here for simplicity.

指定された制約の呼び出しが失敗した場合、Entityの障害節が呼び出され、ランタイムが終了する(ブロック906)。呼び出しが成功した場合、ランタイムは、Entityのsuccess節を呼び出す(ブロック908)。   If the specified constraint call fails, the failure clause of the Entity is called and the runtime ends (block 906). If the call is successful, the runtime calls the entity success clause (block 908).

本発明のプログラミング言語を使用して解決ステップを変更する方法は無数にあることは理解されるであろう。例えば、success resolution節を修正して、ある状況の下では「false」または「failure」を返すようにすることができる。同様に、failure resolution節は、特定の実装に応じて、「true」または「success」を返すようにプログラムすることができる。したがって、本明細書に提示されている例は、制限する意図はないが、むしろ、解決意味論の可能な実装の1つを例示するために用意されている。多数の変更形態が予想され、プログラマはその解決を、特定の自然言語アプリケーションのニーズに合わせて適用することが期待される。   It will be appreciated that there are an infinite number of ways to change the resolution steps using the programming language of the present invention. For example, the success resolution clause can be modified to return “false” or “failure” under certain circumstances. Similarly, the failure resolution clause can be programmed to return “true” or “success”, depending on the particular implementation. Accordingly, the examples presented herein are not intended to be limiting, but rather are provided to illustrate one possible implementation of solution semantics. Numerous variations are anticipated and programmers are expected to apply the solution to the needs of specific natural language applications.

Default制約は、オーサリングされたコードにより処理されない制約および/またはランタイムにより認識されない制約を解決するために使用される。Default制約は、解決可能型毎に1回呼び出され、常に最後に呼び出される。解決可能型毎に高々1つのDefault制約のみがありうる。   Default constraints are used to resolve constraints that are not handled by the authored code and / or constraints that are not recognized by the runtime. The Default constraint is called once for each resolvable type and is always called last. There can be at most one Default constraint per solveable type.

Defaultによるオブジェクトモデルは、実装により異なることがある。一実施形態では、Defaultオブジェクトモデルは、提案された制約を持つテキストのトークンのラティス(要素、アイテム、またはスパン)を備える。トークンは、ラティス内で連続している必要はない。例えば、発話内に、token token、およびtokenがあると仮定する。Defaultの下で、ランタイムは表122に示されているラティスを出力することができる。 The default object model may vary depending on the implementation. In one embodiment, the Default object model comprises a lattice (element, item, or span) of text tokens with proposed constraints. Tokens do not have to be contiguous in the lattice. For example, assume that there are token 1 token 2 and token 3 in the utterance. Under Default, the runtime can output the lattice shown in Table 122.

表122:Defaultの下で出力されるラティス   Table 122: Lattice output under Default

Figure 0005014584
Figure 0005014584

未加工テキストは常に使用可能である。SPLを使用すると、作成者は、テキスト内のトークンが成功した解決の中で予想されているかされないかに関する情報を得ることができる。 Raw text is always available. Using SPL, the author can obtain information about whether tokens in the text are expected or not in a successful resolution.

統計的意味論的モデリングおよび学習は、SPLで一定の役割を果たしうる。制約節が呼び出される順序は、言語証拠、統計的順位付け(例えば、SGM)、および自動学習に基づく何らかの統計量に依存することがある。図10に示されているように、システム1000は、ランタイム1002およびデータベース1004を含む。一般に、ランタイム1002は、発話および解決の結果のリポジトリである、データベース1004を管理することができる。このリポジトリ内のデータについて、解決のあるしきい値に到達した後、(例えば)解析ツール1006によりマイニングまたは解析(オフラインで)を実行できる。データベース1004内の情報は解析ツール1006により解析することができ、その後、結果をランタイム1002にフィードバックすることにより、解決するコマンドの選択および順序、および制約節を呼び出す順序を改善することができる。その結果、多くの発話が解決されるときに、オーサリングされたコードに対し変更を加えることなく、解決を行い改善と高速化を果たすことができる。広い意味で、システム1000は、コーディングし直しをしなくても、パフォーマンスを改善することができるインテリジェント型システムである。   Statistical semantic modeling and learning can play a role in SPL. The order in which the constraint clauses are called may depend on some evidence based on language evidence, statistical ranking (eg, SGM), and auto-learning. As shown in FIG. 10, the system 1000 includes a runtime 1002 and a database 1004. In general, the runtime 1002 can manage a database 1004, which is a repository of speech and resolution results. The data in this repository can be mined or analyzed (offline) by the analysis tool 1006 (for example) after reaching a resolution threshold. Information in the database 1004 can be analyzed by the analysis tool 1006 and the results can then be fed back to the runtime 1002 to improve the selection and order of commands to resolve and the order in which the constraint clauses are invoked. As a result, when many utterances are resolved, they can be resolved and improved and speeded up without changes to the authored code. In a broad sense, the system 1000 is an intelligent system that can improve performance without recoding.

一実施形態では、上級作成者は、リポジトリと突き合わせて管理しプログラムすることができる。他の実施形態では、上級作成者は、ただの真/偽の値ではなく節からの信頼度レベルを表す確率を返すことができる。これだとプログラミングモデルが複雑になる可能性があるが、論理値の代わりに信頼度レベルを導くことができると、作成者は意味解析に対し統計的に関与することができる。   In one embodiment, senior authors can manage and program against a repository. In other embodiments, the senior creator can return a probability that represents a confidence level from a clause rather than just a true / false value. This can complicate the programming model, but authors can be statistically involved in semantic analysis if a confidence level can be derived instead of a logical value.

一般に、曖昧さは、作成者には見え、作成者は曖昧さをSPLクライアントアプリケーションで処理する。コードにより扱われない曖昧さの場合、解釈は複数現れる。ランタイムは、それらの解釈を順位付けして、アプリケーションによって規定された最大数までの解釈をアプリケーションに返す。一実施形態では、解釈のリストが同期的に返される(APIコールの一部として)。他の実施形態では、複数の解釈がイベントを使用して非同期に返される。   In general, the ambiguity is visible to the creator who handles the ambiguity with the SPL client application. In the case of ambiguity not handled by the code, multiple interpretations will appear. The runtime ranks those interpretations and returns up to the maximum number of interpretations specified by the application to the application. In one embodiment, the list of interpretations is returned synchronously (as part of the API call). In other embodiments, multiple interpretations are returned asynchronously using events.

ランタイムは、リストから意味論的に同等な解釈を刈り取る。さらに、ランタイムは、2つの解釈の意味論的同等性を判定する既定の実装も提供する。既定の実装は、作成者側でオーバーライドすることもできる。   The runtime reaps a semantically equivalent interpretation from the list. In addition, the runtime provides a default implementation that determines the semantic equivalence of the two interpretations. The default implementation can also be overridden by the author.

一実施形態では、意味論的同等性は、意味論的解釈を言い換えることにより生成された文字列と比較して決定される。しかし、同等性を判定するために他の手法を使用することもできる。   In one embodiment, semantic equivalence is determined relative to a string generated by paraphrasing semantic interpretation. However, other techniques can be used to determine equivalence.

一般に、開発者は、発話内に発生しうる可能なすべての制約を処理するコードを書く必要はない。作成者は、自分が理解し、処理したい制約のコードを作成するだけである。未オーサリング/未処理の制約は削除される。つまり、未オーサリング/未処理の制約は、それらが発話内に発生していなかったかのように無視されるということである。唯一の例外は、NegationおよびNamed制約であり、これらは処理されなければならない。   In general, developers do not need to write code to handle all possible constraints that can occur within an utterance. The author simply creates the code for the constraints he wants to understand and process. Unauthorized / unprocessed constraints are deleted. In other words, the unauthored / unprocessed constraint is that they are ignored as if they did not occur in the utterance. The only exceptions are Negation and Named constraints, which must be handled.

意味論は、継承を使って実装される。解決可能型は、すべて基本クラスから継承する。そのため、基本Entityクラス、基本Frameクラス、および基本Restrictionクラスがある。基本解決可能型は、表123に示されているように、1つの制約節Defaultを持つ。   Semantics are implemented using inheritance. All resolvable types inherit from the base class. Therefore, there is a basic Entity class, a basic Frame class, and a basic Restriction class. The basic resolvable type has one constraint clause Default as shown in Table 123.

表123:基本解決可能型   Table 123: Basic solveable types

Figure 0005014584
Figure 0005014584

基本解決可能型のDefault制約は、NegationおよびNamedを除くすべての制約について成功する。表124は、Mail Entityの構文を示している。 The default resolvable type Default constraint succeeds for all constraints except Negotiation and Named. Table 124 shows the syntax of Mail Entity.

表124   Table 124

Figure 0005014584
Figure 0005014584

「mail received yesterday」などの発話では、SPLランタイムは、「received yesterday」をMailEntityのオーサリングされた制約節と突き合わせて解決しようと試みる。「received yesterday」はLocation制約にマッピングされず、MailEntityにはDefault制約節がないため、SPLランタイムは、「received yesterday」をEntityであるMailEntityの基本型と突き合わせて解決しようと試みる。Entity内のDefault制約節は、真を返し、したがって、MailEntity解決は成功する。解決は、「mail」のみが発話「mail received yesterday」内で認識されたかのように成功する。 For utterances such as “mail received yesterday”, the SPL runtime tries to resolve “received yesterday” against the MailEntity authored constraint clause. Since “received yesterday” is not mapped to a Location constraint and MailEntity does not have a Default constraint clause, the SPL runtime tries to resolve “received yesterday” by matching it with the basic type of MailEntity. The Default constraint clause in Entity returns true, so MailEntity resolution is successful. The solution succeeds as if only “mail” was recognized in the utterance “mail received yesterday”.

これが望む挙動でなければ、開発者は、表125に示されているように未認識/未処理の制約を拒絶するコードを簡単に作成することができる。   If this is not the desired behavior, developers can easily create code that rejects unrecognized / unprocessed constraints as shown in Table 125.

表125:未認識制約を処理するコードを含むMailEntity   Table 125: MailEntity containing code to handle unrecognized constraints

Figure 0005014584
Figure 0005014584

ここで、MailEntity内のDefault制約節は、基本Entityが呼び出される前にテストされる。したがって、「mail received yesterday」は、MailEntityと突き合わせて解決しようとしても成功しない。   Here, the Default constraint clause in MailEntity is tested before the basic Entity is called. Therefore, “mail received yesterday” does not succeed even when trying to resolve it against MailEntity.

一般に、on resolveのスコープの範囲外にあるすべてが、従来のC#規則に従って処理される。解決節内のコードも、C#コードである。そのため、解決可能型を、構成を決定するための特別なコードを含む専用C#クラスとみなすことが可能である。   In general, anything outside the scope of on resolve is processed according to conventional C # rules. The code in the solution section is also a C # code. Therefore, the resolvable type can be regarded as a dedicated C # class containing special code for determining the configuration.

E5.LOMのプログラミング
LOMをプログラムするには、意図した結果を得るためにLOMに用意されている制約を使用する必要がある。これは、いくつかの例にあたってみると最もよく理解できる。そこで、以下の説明では、多数の例を取りあげ、制約および節をモデル化するより複雑な意味論(調整、比較、否定など)を調べ、いくつかの「最良の」実施方法について説明する。どのような種類の発話がどの制約および制約が含む情報を生成するかについての詳細が、セクションDですでに説明されている。
E5. Programming the LOM Programming a LOM requires the use of constraints provided by the LOM to achieve the intended result. This is best understood by looking at some examples. Therefore, the following description will take a number of examples, examine more complex semantics (such as adjustment, comparison, negation) that model constraints and clauses, and describe some “best” implementations. Details on what kind of utterances produce which constraints and the information they contain are already described in Section D.

LOMのすべての制約型がSPLに対し公開されるわけではない。SPLでは、コマンドおよび制御シナリオに対する制約型を重視している。LOMは、それと対照的に、かなり広い応用を持つ。新しいリリースが利用できるようになると、すでに暴露されている意味論関係を新しい制約型として公開することは、下位互換性のため後のリリースで公開される制約型を絞り込むか、または修正しようと試みるよりは容易である。以下の説明では、もっぱら、SPLコードでのモデル化に制約を使用する方法について重点的に取りあげる。一般に、制約は、開発者に対しては、Microsoft(登録商標)の.NetランタイムのFramework Class Library(FCL)に似たクラスライブラリとして現れる。   Not all LOM constraint types are exposed to SPL. In SPL, emphasis is placed on constraint types for commands and control scenarios. In contrast, LOM has a fairly broad application. As new releases become available, exposing exposed semantic relationships as new constraint types will attempt to narrow down or modify the constraint types published in later releases for backward compatibility. It is easier. In the following description, the method of using constraints for modeling in the SPL code will be mainly described. In general, the constraints are for developers of Microsoft®. It appears as a class library similar to the Network Framework Class Library (FCL).

Accompaniment制約は、ホストに随伴するエンティティをモデル化する。Accompanimentは、エンティティおよびフレーム上で使用できる。いくつかの例として、meeting with my manager、chat with Bob、email with attachments、およびmerge File A with File Bがある。Accompaniment制約は、ホストに随伴するエンティティを表す型Entityの1つのシステムスロットaccompを含む。作成者は、表126に示されているようにホストに随伴可能なエンティティの型を制約することができる。 Accompaniment constraints model the entities that accompany the host. Accompaniment can be used on entities and frames. Some examples are meeting with my manager , chat with Bob , email with attachments , and merge File A with File B. Accompaniment constraints include one system slot accomp of type Entity that represents the entity that accompanies the host. The creator can constrain the types of entities that can accompany the host as shown in Table 126.

表126:「email with attachments」   Table 126: “email with attachments”

Figure 0005014584
Figure 0005014584

AsBeing制約では、動詞が作用するDoneTo.whatエンティティの何らかのプロパティを選び出す。AsBeing制約は、Frames上で使用できる。いくつかの例として、「show status as busy」、「save as text file」、および「make the font large」がある。AsBeing制約は、選び出される制約を表す1つのシステムスロットrestrを持つ。制約型がスロットに入るようにするのではなく、制約の型を特定の制約型に制約する。制約は、システムスロット内で様々なサポートされている型を取るオーバーロードされたAsBeing制約を提供することにより特定の型に制限される。以下の制約がサポートされている(例):
AsBeing<restr := Modifier> : "mark message as low priority"
AsBeing<restr := Possessor> : "make this file mine"
AsBeing<restr := Ordinal> : "put this message first"
いくつかの実施形態では、「log in as my manager」などの語句は、正常に解決できる。しかし、これだと、Entitiesをスロット型として許可する必要があるであろう。
In the AsBeing constraint, the Tone. Select some property of what entity. AsBeing constraints can be used on Frames. Some examples are “show status as busy”, “save as text file”, and “make the front large”. The AsBeing constraint has one system slot restr that represents the selected constraint. Rather than letting the constraint type enter the slot, constrain the constraint type to a specific constraint type. The constraints are limited to specific types by providing overloaded AsBeing constraints that take on various supported types within the system slot. The following constraints are supported (example):
AsBeing <restr: = Modifier>: "mark message as low priority"
AsBeing <restr: = Possessor>: "make this file mine"
AsBeing <restr: = Ordinal>: "put this message first"
In some embodiments, phrases such as “log in as my manager” can be resolved successfully. However, this would require that entities be allowed as a slot type.

AsBeing制約は、動詞、そのDoneTo.whatエンティティ、およびこのエンティティに対する制約の間の3場所関係を定義する。SPLはこの関係の強いバインディングを強制しないが、最良の方法は、表127に示されているように関係を強制することであろう。   The AsBeing constraint is a verb, its DoneTo. Define a three-location relationship between the what entity and the constraints on this entity. SPL does not enforce this strong binding, but the best way would be to enforce the relationship as shown in Table 127.

表127:「show m status as busy」   Table 127: “show m status as busy”

Figure 0005014584
Figure 0005014584

Cardinal制約は、数量詞により表現されるように基数をモデル化する(例えば、「3 files」)。Cardinal制約は、エンティティ上で使用できる。Cardinalオブジェクトには、Cardinal.numberというメンバがあり、これは、表128に示されているような実際の基数値を与える。   A Cardinal constraint models a radix as represented by a quantifier (eg, “3 files”). Cardinal constraints can be used on entities. The Cardinal object includes Cardinal. There is a member called number, which gives the actual radix values as shown in Table 128.

表128:「3 email」   Table 128: “3 email”

Figure 0005014584
Figure 0005014584

Comparison制約は、エンティティと他の明示的に識別されたエンティティとの比較をモデル化する。これは、比較する1つまたは複数のエンティティは暗黙のままにされている「a bigger file」などの表現には使用されない。Comparisonに対して定義されているシステムスロットは、比較が実行される際の次元であるdimensionおよび比較先のエンティティであるcompareToの2つがある。例えば、「bigger file than mydoc.txt」では、「bigger」は比較のdimensionであり、「mydoc.txt」はcompareToエンティティである。dimensionは、Restriction型である。一般に、Comparison制約では、複数のエンティティの何らかのプロパティについて2つのエンティティの比較を行うことができる。   A Comparison constraint models a comparison of an entity with other explicitly identified entities. This is not used for expressions such as “a bigger file” where one or more entities to compare are left implicit. There are two system slots defined for Comparison: dimension, which is the dimension at which the comparison is performed, and compareTo, which is the comparison target entity. For example, in “bigger file tan mydoc.txt”, “bigger” is a comparison dimension and “mydoc.txt” is a compareTo entity. The dimension is a restriction type. In general, a Comparison constraint can compare two entities for some property of multiple entities.

比較のいくつかの例として、「a book more about cats than dogs」、「mail larger than 10KB」、および「make font smaller than 12 pts」をあげられる。いくつかの実施形態では、dimension制約にはDegree修飾語が付くという要求条件を強制することが望ましい場合がある。例えば、「file big than mydoc.txt」という語句は、dimension制約が制約型でないため、解決すべきでない。   Some examples of comparisons include “a book more about cats tan dogs”, “mail large tan than 10KB”, and “make font small tan 12 pts”. In some embodiments, it may be desirable to enforce the requirement that a dimension constraint is accompanied by a Degree modifier. For example, the phrase “file big tan mydoc.txt” should not be resolved because the dimension constraint is not a constraint type.

Degree制約は、制約の程度をモデル化し、また制約上で使用できる。これは、very、extremely、slightly、almost、more、less、most、およびleastのような単語をグループにまとめる。いくつかの例として、「almost in the box」、「extremely red」、「very large」、および「more to the left」などがある。グループ化された単語は、「程度」を表現する集合に分類される。程度の型は以下のとおりである。   Degree constraints model the degree of constraints and can be used on constraints. This groups words such as very, extremely, lightly, almost, more, less, most, and least. Some examples include “almost in the box”, “extremely red”, “very large”, and “more to the left”. The grouped words are classified into a set expressing “degree”. The type of degree is as follows.

More: bigger, more relevant
Most: biggest, most relevant
Less: less relevant
Least: least relevant
Same: as big
High: very big, extremely popular
Low: not very big
「smaller」は「more small」としてモデル化され、「less big」としてモデル化されないことに留意されたい。
More: bigg er , more relevant
Most: bigg est , most relevant
Less: less relevant
Least: least relevant
Same: as big
High: very big, extremely popular
Low: not very big
Note that “smaller” is modeled as “more small” and not as “less big”.

「10KB larger file」のような発話では、これは、「more」(Degree)を修飾する「10KB」(Modifier)および「large」を修飾する組み合わせた「10KB more」概念としてモデル化される。対照的に、発話「10KB large file」は、「file」エンティティ上の2つのModifier制約「10KB」および「large」としてモデル化される(「large,10KB file」と同等)。表129は、「large」を表す語彙単語の表記リストの表記構文およびそれらの制約が適用されるFile Entityの構文を示している。   For utterances such as “10 KB large file”, this is modeled as a combined “10 KB more” concept that modifies “10 KB” (Modifier) that modifies “more” (Degree) and “large”. In contrast, the utterance “10 KB large file” is modeled as two modifier constraints “10 KB” and “large” on the “file” entity (equivalent to “large, 10 KB file”). Table 129 shows the notation syntax of the notation list of vocabulary words representing “large” and the syntax of File Entity to which these restrictions apply.

表129:「large」を表す「LARGE」.//語彙単語   Table 129: “LARGE” representing “large”. // Vocabulary words

Figure 0005014584
Figure 0005014584

Figure 0005014584
Figure 0005014584

Figure 0005014584
Figure 0005014584

一般に、「more large」および「10KB larger」に対し別々の制約型を作成する必要はない。これらはすべて、LargeModifierの下に置かれている可能性がある。その後、FileEntityなどのコンシューマは、表130に示されているように、必要ならば、単に、LargeModifierのRestrictionCollectionプロパティを調べ、「10KB more」および「more」が発話内に存在するかチェックするだけである。   In general, it is not necessary to create separate constraint types for “more large” and “10 KB large”. All of these may be placed under the LargeModifier. Thereafter, a consumer such as FileEntity can simply check the LargeModifier's RestrictionCollection property and check if "10KB more" and "more" are present in the utterance, if necessary, as shown in Table 130. is there.

表130:Large修飾語句   Table 130: Large modifiers

Figure 0005014584
Figure 0005014584

Doer制約は、作用を実行するエンティティを表し、Frames上で使用できる。例えば、「Bob opened the file」または「the file was opened by Bob」は、両方とも、Doer制約をトリガする。Doer制約は、実際の行為者を表す型Entityの1つのシステムスロット「who」を含む。   A Doer constraint represents an entity that performs an action and can be used on Frames. For example, “Bob opened the file” or “the file was opened by Bob” both trigger a Doer constraint. The Doer constraint includes one system slot “who” of type Entity representing the actual actor.

通常、フレームがコマンドにより使用される場合に、Doerはコンピュータである。しかし、フレームがフレームベースの制約として使用される場合(例えば、「file opened by Bob」)、行為者の識別が関係することになる。作成者は、Doer制約を使用して、行為者の型を制約することができる。   Typically, Doer is a computer when a frame is used by a command. However, if the frame is used as a frame-based constraint (eg, “file opened by Bob”), actor identification will be relevant. An author can use a Doer constraint to constrain the actor's type.

すべての基本フレームは、aspropertyで定義されたDoer制約を持ち、そのため、表131で示されているようにコンシューマ側でのサブタイプ化が簡単である。   All basic frames have Doer constraints defined in asperity, so that they are easy to subtype on the consumer side as shown in Table 131.

表131:基本フレーム(open)   Table 131: Basic frame (open)

Figure 0005014584
Figure 0005014584

DoneTo制約は、作用の実行先のエンティティを表す。例えば、「open the file」および「the file was opened」は、DoneTo制約を呼び出す。これは、作用の対象を表す型Entityのシステムスロットwhatを含む。   The DoneTo constraint represents the entity on which the action is performed. For example, “open the file” and “the file was opened” call DoneTo constraints. This includes a system slot what of type Entity representing the target of action.

すべての基本フレームは、aspropertyで定義されたDoneTo制約を持ち、そのため、表132で示されているようにコンシューマ側でのサブタイプ化が簡単である。   All basic frames have a DoneTo constraint defined in asperity, which makes it easy to subtype on the consumer side as shown in Table 132.

表132:基本フレームOpen   Table 132: Basic frame Open

Figure 0005014584
Figure 0005014584

Goal制約は、作用または修飾の終点をモデル化する。Goal制約は、Frames上で使用できる。いくつかの例として、「send mail to Bob」、「change password to XXX」などがある。これは、表133に示されているように終点を表す型Entityのシステムスロットgoalを含む。   A Goal constraint models the end point of an action or modification. Goal constraints can be used on Frames. Some examples include “send mail to Bob”, “change password to XXX”, and the like. This includes a system slot goal of type Entity that represents the end point as shown in Table 133.

表133:「send mail to Bob」     Table 133: “send mail to Bob”

Figure 0005014584
Figure 0005014584

Iteration制約は、作用の繰り返しをモデル化し、また、Frames上で使用できる。例えば、「print 3 times」は、表134に示されているIteration制約をトリガする。   Iteration constraints model repetition of actions and can also be used on Frames. For example, “print 3 times” triggers the Iteration constraint shown in Table 134.

表134:Iteration制約   Table 134: Iteration constraints

Figure 0005014584
Figure 0005014584

Location制約はどこかに配置されているという意味論をモデル化する。Location制約は、フレームおよびエンティティ上で使用できる。例えば、「mail in Inbox」、「file located on the desktop」、および「search the web」は、すべて、Location制約をトリガする。これは、表135に示されているように実際の場所を表す型Entityのシステムスロットlocを含む。   Model the semantics that Location constraints are located somewhere. Location constraints can be used on frames and entities. For example, “mail in Inbox”, “file located on the desktop”, and “search the web” all trigger Location constraints. This includes a system slot loc of type Entity representing the actual location as shown in Table 135.

表135:Location制約   Table 135: Location constraints

Figure 0005014584
Figure 0005014584

Means制約は、フレーム上で使用することができるが、詳細については、セクションDのLOMで説明する。Modifier制約は、Frames、Entities、およびRestrictions上で使用できる。Modifier制約は、「large file」、「school bus」、「font that is red」、および「print slowly」などの形容詞的修飾語句を表す。これは、形容詞を表す型Denoterの1つのシステムスロットmodを持つ。「MSN consumer application」などの名詞−名詞複合語については、以下のようにモデル化できる。   The Means constraint can be used on a frame, but the details are described in Section D LOM. Modifier constraints can be used on Frames, Entities, and Restrictions. Modifier constraints represent adjective modifiers such as “large file”, “school bus”, “front that is red”, and “print slowly”. It has one system slot mod of type Denoter that represents an adjective. A noun-noun compound word such as “MSN consumer application” can be modeled as follows.

Modifier("MSN") and Modifier("consumer") on Entity("application");
Modifier("MSN consumer") on Entity("application");
Modifier("MSN") and Entity("consumer application"); and/or
Entity("MSN consumer application")
Named制約は、エンティティの名前を表す。いくつかの例として、「Inbox folder」、「file named foo.txt」、「file with the name foo.txt」、「open foo.txt」、および「the file foo.txt」などがある。システムスロットnameは、表136に示されているような実際の名前である。
Modifier ("MSN") and Modifier ("consumer") on Entity ("application");
Modifier ("MSN consumer") on Entity ("application");
Modifier ("MSN") and Entity ("consumer application"); and / or
Entity ("MSN consumer application")
The Named constraint represents the name of the entity. Some examples are “Inbox folder”, “file named foo.txt”, “file with the name foo.txt”, “open foo.txt”, and “the file foo.txt”. The system slot name is an actual name as shown in Table 136.

表136:「file named foo.txt」   Table 136: “file named foo.txt”

Figure 0005014584
Figure 0005014584

ホストに対するNegation制約は、ホストが否定されることを意味し、その制約節が否定されることを意味しない。いくつかの例として、「don’t allow mail from Joe」および「mail not from Joe」がある。表137は、否定付きのFrameの構文を例示している。   A Negation constraint on a host means that the host is denied, not that its constraint clause is denied. Some examples are “don't allow mail from Joe” and “mail not from Joe”. Table 137 illustrates the frame syntax with negation.

表137:否定付きのフレーム   Table 137: Frame with negation

Figure 0005014584
Figure 0005014584

発話が否定を含むが、SPLコードはNegation制約節を持たない場合、発話は解決に失敗する。これは、オーサリングされない場合に単に削除される他の制約とは異なる。   If the utterance includes negation but the SPL code does not have a Negation constraint clause, the utterance fails to resolve. This is different from other constraints that are simply deleted if not authored.

Negation制約は、エンティティでは使用できない。SPLについては、エンティティが出現する「universe」はエンティティがどのように使用されているかに左右され、したがって、エンティティの否定は必要ない。例えば、「Display everything but the mail」などの発話では、universeは、アプリケーションが表示可能なすべてであり、必ずしもアプリケーションがモデル化するすべてのエンティティではない。発話「don’t allow mail from Bob」では、許可または禁止することができる内容のuniverseはメールにのみ非常にうまく制約することができ、したがって、メールの否定はこの文脈では意味を持たないであろう。このため、エンティティ否定は、「!」構文を使用してエンティティのコンシューマにより処理される。   Negation constraints cannot be used on entities. For SPL, the “universe” in which an entity appears depends on how the entity is being used, so no denial of the entity is necessary. For example, in an utterance such as “Display evening but the mail”, the universal is everything that the application can display and not necessarily all the entities that the application models. In the utterance “don't allow mail from Bob”, the universe of the content that can be allowed or forbidden can be very well constrained only to email, so email denial is not meaningful in this context Let's go. Thus, entity negation is handled by the entity's consumer using the “!” Syntax.

否定スコープ明確化は、SPLコードにより決定される。例えば、「don’t look on the table」は、以下の否定スコープの曖昧さを持ちうる。   Negative scope clarification is determined by the SPL code. For example, “do n’t look on the table” may have the following negative scope ambiguity:

Don't look on the table (but sit on it instead):否定はlookフレームに係る
Don't look on the table (but look under it):否定はLocation制約に係る
Don't look on the table (but look on the chair):否定はLocation.locエンティティにかかる
どの意味論的解釈が解決されるかは、コードのオーサリング方法に依存する。実際、オーサリングされたコードに応じて、これらすべての読み取りの解決は成功し、したがって複数の解釈が得られることがある。ランタイムは、通常、スコープ曖昧さの優先傾向を持ち、複数の解釈が順位付けされる。表138は否定のモデル化を示している。
Don't look on the table (but sit on it instead)
Don't look on the table (but look under it)
Don't look on the table (but look on the chair): Negation is Location. Which semantic interpretation of the loc entity is resolved depends on how the code is authored. In fact, depending on the authored code, all these reading resolutions are successful and therefore multiple interpretations may be obtained. The runtime usually has a preference for scope ambiguity, and multiple interpretations are ranked. Table 138 shows the negative modeling.

表138:否定の係り   Table 138: Negation

Figure 0005014584
Figure 0005014584

また、表139に示されているように、「!」(NOT)構文は、簡便な表記法としてフレームおよび制約に適用することができる。 Also, as shown in Table 139, the “!” (NOT) syntax can be applied to frames and constraints as a simple notation.

表139   Table 139

Figure 0005014584
Figure 0005014584

Ordinal制約では、位置の何らかの概念を順に表現する序数詞およびpreviousなどのその他の修飾語句をモデル化する。いくつかの例として、「first file」、「third book」、および「last email」がある。Ordinal制約は、例えば、表140に示されているようなCardinal(「3」)制約を修飾するOrdinal(「first」)制約としてモデル化される「first 3 books」などの他の制約にも適用可能である。   The Ordinal constraint models ordinal verbs that represent some concept of position in turn and other modifiers such as previous. Some examples are “first file”, “third book”, and “last email”. The Ordinal constraint also applies to other constraints such as “first 3 books” modeled as an Ordinal (“first”) constraint that modifies the Cardinal (“3”) constraint as shown in Table 140, for example. Is possible.

表140:Ordinal制約   Table 140: Ordinal constraints

Figure 0005014584
Figure 0005014584

Possessor制約は、エンティティの所有者をモデル化し、エンティティに適用される。いくつかの例として、「my book」および「Bob’s book」がある。型Entityのシステムスロットownerは、エンティティの所有者を表す。「Bob’s book」のように所有者が明示的に示された場合、「Bob」はownerスロットと突き合わせて解決される。「her file」のように所有者が代名詞の場合、ランタイムは前方照応解決により代名詞を解決しようと試みる。この前方照応解決が所有者エンティティの発見に失敗した場合、ownerスロットはヌルになる。表141は、Possessor制約の構文を示している。   Posessor constraints model the owner of an entity and are applied to the entity. Some examples are “my book” and “Bob's book”. A system slot owner of type Entity represents the owner of the entity. If the owner is explicitly indicated, such as “Bob's book”, then “Bob” is resolved against the owner slot. If the owner is a pronoun, such as “her file”, the runtime attempts to resolve the pronoun by forward anaphora resolution. If this forward anaphora resolution fails to find the owner entity, the owner slot will be null. Table 141 shows the syntax of the possessor constraint.

表141:Possessor制約   Table 141: Posessor constraints

Figure 0005014584
Figure 0005014584

Quantifier制約はEntities上で使用を許され、数量表現をモデル化する。いくつかの例として、「all files」、「a few books」、および「one third of the page」がある。以下に数量詞型を示す。   Quantifier constraints are allowed on Entities and model quantity representations. Some examples are “all files”, “a five books”, and “one third of the page”. The quantifier type is shown below.

All: all ((of) the), every, each (of the)
None: no, none (of the)
Some: some (of the)
Most: most (of the), the majority of
Many: many (of the)
Few: few (of the), not many (of the)
Percentage: a half of, 1/3 of, 40% of
いくつかの実施形態では、QuantifierとCardinalとの間に階層的関係が存在しうる。
All: all ((of) the), every, each (of the)
None: no, none (of the)
Some: some (of the)
Most: most (of the), the majority of
Many: many (of the)
Few: few (of the), not many (of the)
Percentage: a half of, 1/3 of, 40% of
In some embodiments, there may be a hierarchical relationship between the Quantifier and the Cardinal.

SortOrder制約は並べ替えのスタイルをモデル化する。例えば、「sort in alphabetical order」および「display in reverse order by name」などである。この制約については、表56に関して上で詳しく説明されている。   The SortOrder constraint models the style of sorting. For example, “sort in alphabetical order” and “display in reverse order by name”. This constraint is described in detail above with respect to Table 56.

Time制約は、実際の時間表現、つまり時点および/またはタイムスパンに変換可能な時間表現をモデル化する。例として、「delete after 3 days」、「mail from yesterday」、および「schedule for tomorrow from 1 − 3 pm」がある。Time制約は、すでに上のセクションDで詳細に説明されている。   The Time constraint models an actual time representation, that is, a time representation that can be converted to a point in time and / or a time span. Examples are “delete after 3 days”, “mail from yesterday”, and “schedule for tomorrow from 1-3 pm”. The Time constraint has already been explained in detail in section D above.

Topic制約は、主題をモデル化する。いくつかの例として、「book about dogs」、「book regarding dogs」、および「book with the subject dogs」がある。これは、話題文字列を表す型stringの1つのシステムスロットtopicを持つ。この制約は、すでに上のセクションDで詳細に説明されている。表142は、Topicを持つBookEntityコードブロックを示している。   Topic constraints model the subject. Some examples are “book about dogs”, “book reporting dogs”, and “book with the subject documents”. It has one system slot topic of type string representing the topic character string. This constraint has already been explained in detail in section D above. Table 142 shows a BookEntity code block with Topic.

表142:BookEntity   Table 142: BookEntity

Figure 0005014584
Figure 0005014584

接続詞(「and」)および離接的接続詞(「or」)が、コマンド、エンティティ、および制約について出現しうる。接続詞および離接的接続詞は、Coordinationの見出しの下に入る。一般に、調整の曖昧さは、エンティティおよび修飾語句を接続詞および離接的接続詞にどのように分配するか、および複数の「and」および「or」演算子を含む発話内の曖昧さを括弧で囲むことから生じる。Negationのように、この明確化はオーサリングされたコードにより決定される。例えば、発話「find mail and notes created yesterday」に関して、SPL作成者は、これを以下のようにモデル化することができる。   Conjunctions (“and”) and disjunctive conjunctions (“or”) can appear for commands, entities, and constraints. Conjunctions and disjunctive conjunctions fall under the Coordination heading. In general, coordination ambiguity brackets ambiguities in utterances, including how to distribute entities and modifiers into conjunctions and disjunctive conjunctions, and multiple "and" and "or" operators Arise from. Like Negation, this clarification is determined by the authored code. For example, for the utterance “find mail and notes created yesterday”, the SPL author can model this as follows:

a.(Find (mail created yesterday) AND (notes created yesterday)).
b.(Find (mail) AND (notes created yesterday)).
c.(Find (mail created yesterday)) AND (Find (notes created yesterday)).
d.(Find (mail)) AND (Find (notes created yesterday)).
「created yesterday」および「find」をそのエンティティ「mail」および「notes」とともに分配する方法は、オーサリングされたSPLコードにより決定される。説明のため、作成者は、型MailEntityのエンティティのみを認識するFindMailCommandおよび型NotesEntityのエンティティのみを認識するFindNotesCommandをコーディングすると仮定しよう。さらに、オーサリングされたコードは、MailEntityが作成時刻という概念を持たず、NotesEntityは表143に示されているように持つと規定している。
a. (Find (mail created yesterday) AND (notes created yesterday)).
b. (Find (mail) AND (notes created yesterday)).
c. (Find (mail created yesterday)) AND (Find (notes created yesterday)).
d. (Find (mail)) AND (Find (notes created yesterday)).
The method of distributing “created yesterday” and “find” along with its entities “mail” and “notes” is determined by the authored SPL code. For purposes of explanation, assume that an author codes a FindMailCommand that only recognizes entities of type MailEntity and a FindNotesCommand that only recognizes entities of type NotesEntity. Further, the authored code stipulates that MailEntity does not have the concept of creation time, and NotesEntity has as shown in Table 143.

表143:調整   Table 143: Adjustment

Figure 0005014584
Figure 0005014584

このオーサリングされたコードでは、発話「find mail and notes created yesterday」について、意味解析は上記リスト(「Find (mail) and find (notes created yesterday)」)から読み取り(d)のみを出力する。SPL作成者は、すべての可能性を理解しておく必要はない。作成者は、そのアプリケーションの意味論に関して考えるだけでよい(例えば、MailEntityは作成時刻を認識しないが、NotesEntityは認識する)。 In this authored code, the semantic analysis for the utterance “find mail and notes created yesterday” only reads (d) from the list (“Find (mail) and find (notes created yesterday)”). SPL authors do not need to understand all the possibilities. The creator only needs to think about the semantics of the application (for example, MailEntity does not recognize the creation time, but NotesEntity recognizes it).

調整されたエンティティは、「and」または「or」のいずれかの調整型とともにリンクされるエンティティのリストとして表される。このリスト内のエンティティはすべて、同じ調整型といっしょにリンクされなければならない。さらに、このリスト内のすべてのエンティティは、同じプログラミング型でなければならない(例えば、すべてのMailEntity要素)。   Coordinated entities are represented as a list of entities that are linked with an adjustment type of either “and” or “or”. All entities in this list must be linked with the same coordination type. Furthermore, all entities in this list must be the same programming type (eg, all MailEntity elements).

概して、ランタイムは、複数の解釈を出力して同じ型の調整から生じる曖昧さを括弧で囲むことをモデル化することをしない。むしろ、同じ型の調整とともに調整されるエンティティ(つまり、すべて「and」を含む、またはすべて「or」を含む)は、フラットリストとしてモデル化され、問題があるとしても適切括弧付けの決定はアプリケーションに任される。例えば、発話「find mail and books and files」を取る。これは、「find mail and(books and files)」または「find(mail and books)and files」を意味する可能性がある。この曖昧さの括弧付けはモデル化されない、つまり、すべてのエンティティが同じSPL型であると仮定して、可能なただ1つの読み取りのみが出力されるということである。この発話は、要素の順序が発話内の順序を反映するフラットリストとしてモデル化される。   In general, the runtime does not model the output of multiple interpretations and bracketing ambiguities that result from the same type of adjustment. Rather, entities that are coordinated with the same type of coordination (ie, all contain “and” or all contain “or”) are modeled as a flat list, and proper parenthesis decisions can be made even if there is a problem. It is left to. For example, take the utterance “find mail and books and files”. This may mean “find mail and (books and files)” or “find (mail and books) and files”. This ambiguity bracketing is not modeled, meaning that only one possible reading is output, assuming all entities are of the same SPL type. This utterance is modeled as a flat list where the order of the elements reflects the order within the utterance.

しかし、「and」および「or」が入り交じっている場合、ランタイムは、複数の読み取りを出力して曖昧さの括弧付けをモデル化する。オーサリングされたコードによっては、これら複数の読み取りから、解決された解釈が複数生じる場合も生じない場合もある。発話「find mail or books and files」に関して、要素のリストは同じ調整型で調整されなければならないため、以下のランタイムは、以下の可能な読み取りを出力する(「mail」、「books」、および「files」は同じSPL型に解決され、Findコマンドはエンティティのリストを受け取ると仮定する)。   However, if “and” and “or” are mixed, the runtime outputs multiple readings to model ambiguity bracketing. Depending on the authored code, these multiple readings may or may not result in multiple resolved interpretations. For the utterance “find mail or books and files”, the list of elements must be adjusted with the same adjustment type, so the following runtime outputs the following possible reads (“mail”, “books”, and “ “files” resolves to the same SPL type, and the Find command receives a list of entities).

(Find (mail OR books)) AND (Find (files))
(Find (mail)) OR (Find (books AND files))
「find」は、「and」と「or」に分配される。
(Find (mail OR books)) AND (Find (files))
(Find (mail)) OR (Find (books AND files))
“Find” is distributed to “and” and “or”.

一般に、「and」および「or」演算子が混合しているのは、発話内ではふつうのことではなく、したがって、複数の解釈を出力して曖昧さの括弧付けをモデル化することはそれほど煩わしいことではないであろう。   In general, mixing “and” and “or” operators is not common in utterances, so it is less cumbersome to output multiple interpretations to model ambiguity parentheses Not sure.

いくつかの構成では、表144に示されているように[]構文を使用してエンティティのコンシューマにより規定できる、Entityリストを実装することが使用になる場合がある。   In some configurations, it may be used to implement an Entity list that can be defined by an entity consumer using the [] syntax as shown in Table 144.

表144:エンティティリスト   Table 144: Entity list

Figure 0005014584
Figure 0005014584

解釈は、SPLプログラムと突き合わせて解決された発話の解釈を表す。それぞれの解決された解釈は、少なくとも1つの解決されたコマンドを含む。発話があると、解釈に対し複数のコマンドが生じうる。例えば、「find file foo.txt and print it」では、この発話に2つのコマンドが含まれる。1つの解釈の中のコマンドは、何らかの条件といっしょにリンクされる。現在、これらは、ANDまたはORのいずれかの調整型によりいっしょにリンクされる(他のモデル化条件節も可能である)。解釈内のコマンドは、同じ解決された型である必要はない。   Interpretation represents the interpretation of the utterance resolved against the SPL program. Each resolved interpretation includes at least one resolved command. When there is an utterance, multiple commands can occur for interpretation. For example, in “find file foo.txt and print it”, two commands are included in this utterance. Commands in one interpretation are linked together with some condition. Currently they are linked together by either the AND or OR adjustment type (other modeling conditionals are possible). The commands in the interpretation need not be of the same resolved type.

以下の説明では、様々な調整例を調べて、要素が接続詞および離接的接続詞にどのように分配されるか、またオーサリングされたコードが調整をどのようにモデル化するかを確認する。この説明では、さらに、コマンド、エンティティ、および制約の調整も調べる。与えられた発話について、曖昧さと分配を例示するため可能な読み取りが示されている。   In the following discussion, various adjustment examples are examined to see how elements are distributed into conjunctions and disjunctive conjunctions, and how authored code models adjustments. This discussion also examines command, entity, and constraint adjustments. Possible readings are shown to illustrate ambiguity and distribution for a given utterance.

繰り返すと、SPL作成者は、そのアプリケーションの意味論について考えるということである(例えば、自分のFindコマンドはMailEntityのリストに作用することができる)。ランタイムは、接続詞および離接的接続詞への要素の分配の規則に関する言語理解に応じて発話をオーサリングされた内容にマッピングしようとする。表145のコードサンプルは、以下に示されている例に使用される。   To reiterate, the SPL author thinks about the semantics of the application (for example, his Find command can act on a MailEntity list). The runtime attempts to map utterances to authored content in response to a language understanding of the rules for distributing elements to conjunctions and disjunctive conjunctions. The code samples in Table 145 are used for the examples shown below.

表145:コード例   Table 145: Code examples

Figure 0005014584
Figure 0005014584

上記のコードは、コマンド「Find mail from Bob and delete them」を以下のように解決する。   The above code resolves the command “Find mail from Bob and delete them” as follows:

Figure 0005014584
Figure 0005014584

コマンド「Find and/or delete mail from Bob」は、以下のように、4つの解釈を持つように解決される。   The command “Find and / or delete mail from Bob” is resolved to have four interpretations as follows.

解釈1:「mail from Bob」は「and」/「or」に分配される。   Interpretation 1: “mail from Bob” is distributed to “and” / “or”.

Figure 0005014584
Figure 0005014584

解釈2:「mail from Bob」は「and」/「or」に分配されない。   Interpretation 2: “mail from Bob” is not distributed to “and” / “or”.

Figure 0005014584
Figure 0005014584

解釈3:「mail from Bob」は「and」/「or」に分配されない。この解釈は、調整の曖昧さからではなく、オーサリングされたコードから生じる。3つの「find」コマンドがあり、「empty」エンティティが有効なエンティティであるため、裸の「find」はこれらのコマンドのうちのどれかに解決できる。   Interpretation 3: “mail from Bob” is not distributed to “and” / “or”. This interpretation arises from the authored code, not from coordination ambiguities. Since there are three “find” commands and the “empty” entity is a valid entity, a bare “find” can be resolved to any of these commands.

Figure 0005014584
Figure 0005014584

解釈4:解釈3と同じ。   Interpretation 4: Same as Interpretation 3.

Figure 0005014584
Figure 0005014584

リストに入っている解釈のすべてが、上記のオーサリングされたコードに対して可能である。 All of the interpretations listed are possible for the authored code above.

コマンド「Find mail from Bob and/or delete」は、上記のオーサリングされたコードと突き合わせて解決され、以下のように、2つの可能な解釈が生じる。   The command “Find mail from Bob and / or delete” is resolved against the authored code above, resulting in two possible interpretations:

解釈1:「mail from Bob」は「and」/「or」に分配される。   Interpretation 1: “mail from Bob” is distributed to “and” / “or”.

Figure 0005014584
Figure 0005014584

解釈2:「mail from Bob」は「and」/「or」に分配されない。   Interpretation 2: “mail from Bob” is not distributed to “and” / “or”.

Figure 0005014584
Figure 0005014584

この例の中の語句と前の例の語句との唯一の違いは、空のMailEntityを持つコマンド「delete」である。上記のオーサリングされたコードでは両方の解釈が可能である。 The only difference between the phrase in this example and the phrase in the previous example is the command “delete” with an empty MailEntity. Both interpretations are possible in the authored code above.

コマンド「Open file and reply or create mail」は、このコードに対して解決され、以下の可能な解釈が得られる。   The command “Open file and reply or create mail” is resolved to this code, resulting in the following possible interpretations:

解釈1:「mail」は、「or」に分配され、「reply」に付く。   Interpretation 1: “mail” is distributed to “or” and attached to “reply”.

Figure 0005014584
Figure 0005014584

解釈2:エンティティの分配はない   Interpretation 2: No entity distribution

Figure 0005014584
Figure 0005014584

解釈3:「file」は、「and」に分配され、「reply」に付く。この読み取りは、FileEntityを受け取る「reply」コマンドがないため、上記のオーサリングされたコードに対して解決されない。   Interpretation 3: “file” is distributed to “and” and attached to “reply”. This reading is not resolved for the above authored code because there is no “reply” command to receive FileEntity.

Figure 0005014584
Figure 0005014584

コマンド「Open file or reply and create mail」により、以下のように3つの可能な解釈が得られる。   The command “Open file or reply and create mail” gives three possible interpretations:

解釈1:「file」は、「or」に分配され、「reply」に付く。この読み取りは、「FileEntity」を受け取る「reply」コマンドがないため、上記のオーサリングされたコードに対して解決しない。   Interpretation 1: “file” is distributed to “or” and attached to “reply”. This reading does not resolve for the above authored code because there is no “reply” command to receive “FileEntity”.

Figure 0005014584
Figure 0005014584

解釈2:「mail」は、「and」に分配され、「reply」に付く。   Interpretation 2: “mail” is distributed to “and” and attached to “reply”.

Figure 0005014584
Figure 0005014584

解釈3:エンティティの分配はない   Interpretation 3: No entity distribution

Figure 0005014584
Figure 0005014584

一般に、制約に対する「and」はSPLの意味論により暗示される。例えば、コマンド「find mail from Bob and in Inbox」により、2つの制約、つまりSource制約およびLocation制約がMailEntity上で発火する。そこで、以下の説明では、制約の離接的接続詞を調べる。   In general, “and” for constraints is implied by SPL semantics. For example, the command “find mail from Bob and in Inbox” fires two constraints on MailEntity: Source constraint and Location constraint. Therefore, in the following explanation, the disjunctive conjunction of constraints is examined.

上記のコードに加えて、以下のコード行を使用し、MailEntityのリストを認識するFindMailListCommandを追加することにする。   In addition to the code above, we will add a FindMailListCommand that recognizes the MailEntity list using the following line of code:

Figure 0005014584
Figure 0005014584

コマンド「find mail from Bob or created yesterday」は、以下の解釈に解決する。   The command “find mail from Bob or created yesday” resolves to the following interpretation.

解釈1:「mail」は「or」上に分配される。この結果、MailEntityのリストが得られる。   Interpretation 1: “mail” is distributed over “or”. As a result, a list of MailEntity is obtained.

Figure 0005014584
Figure 0005014584

FindMailListCommandが存在しなかった場合、または解決に成功しなかった場合、「find」はエンティティに分配され、2つのFindMailCommandsを生成する。   If FindMailListCommand does not exist, or if the resolution is not successful, “find” is distributed to the entities, creating two FindMailCommands.

Figure 0005014584
Figure 0005014584

コマンド「find mail from Bob or created yesterday and in Inbox」は、以下のように解釈される。   The command “find mail from Bob or created yesterday and in Inbox” is interpreted as follows.

解釈1:「in Inbox」が括弧付けに、つまり「or」に分配される(mail from Bob or created yesterday)の括弧付け。   Interpretation 1: “in Inbox” is parenthesized, ie, “from from Bob or created yesterday”.

Figure 0005014584
Figure 0005014584

再び、FindMailListCommandが存在しなかった場合、または解決に成功しなかった場合、「find」はエンティティに分配され、2つのFindMailCommandsを生成する。   Again, if the FindMailListCommand does not exist or if the resolution is not successful, the “find” is distributed to the entities, generating two FindMailCommands.

解釈2:(mail created yesterday and in Inbox)の括弧付け。「mail from Bob」は、離接的接続詞で結合されているため、括弧付けへの分配はない。   Interpretation 2: Parentheses for (mail created yesterday and in Inbox). Since “mail from Bob” is connected with a disjunctive connective, there is no distribution to parentheses.

Figure 0005014584
Figure 0005014584

再び、FindMailListCommandが存在しなかった場合、または解決に成功しなかった場合、「find」はエンティティに分配され、2つのFindMailCommandsを生成する。   Again, if the FindMailListCommand does not exist or if the resolution is not successful, the “find” is distributed to the entities, generating two FindMailCommands.

解釈3:修飾語句および「mail」の括弧付けは、すべての修飾語句に分配されるわけではない。   Interpretation 3: The modifier and “mail” parentheses are not distributed across all modifiers.

Figure 0005014584
Figure 0005014584

再び、FindMailListCommandが存在しなかった場合、または解決に成功しなかった場合、「find」はエンティティに分配され、2つのFindMailCommandsを生成する。   Again, if the FindMailListCommand does not exist or if the resolution is not successful, the “find” is distributed to the entities, generating two FindMailCommands.

上記コマンドに加えて、一般的なFindCommandが追加され、これにより、メール、ノート、およびジャーナルアイテムのリストの検索を行うことができる。FindCommandは表146に示されている。   In addition to the above commands, a general FindCommand has been added, which allows searching of lists of mail, notes, and journal items. FindCommand is shown in Table 146.

表146:Findコマンド   Table 146: Find command

Figure 0005014584
Figure 0005014584

このコマンドが追加されると、以下の例からわかるように、解釈の数が増える。 As this command is added, the number of interpretations increases, as you can see in the example below.

コマンド「Find mail and/or notes created yesterday」の結果、以下の解釈が得られる。   As a result of the command “Findmail and / notes created yesterday”, the following interpretation is obtained.

解釈1:「created yesterday」は「and」/「or」上に分配される。   Interpretation 1: “created yesterday” is distributed over “and” / “or”.

Figure 0005014584
Figure 0005014584

解釈2:「created yesterday」の分配はない。   Interpretation 2: There is no distribution of “created yesterday”.

Figure 0005014584
Figure 0005014584

FindCommandが存在しなかった場合、または解決に成功しなかった場合、「find」は接続詞に分配され、以下のさらに2つの解釈が生じる。   If FindCommand does not exist, or if the resolution is not successful, “find” is distributed to the conjunction, resulting in two further interpretations:

解釈3:「find」がエンティティに分配されることを除き1と同じ。   Interpretation 3: Same as 1 except that “find” is distributed to entities.

Figure 0005014584
Figure 0005014584

解釈4:「find」がエンティティに分配されることを除き2と同じ。   Interpretation 4: Same as 2, except that “find” is distributed to entities.

Figure 0005014584
Figure 0005014584

コマンド「Find mail from Bob and/or notes created yesterday」の結果、以下の潜在的解釈が得られる。   The command “Find mail from Bob and / or notes created yesterday” results in the following potential interpretations:

解釈1:例1とは異なり、修飾語句の分配はない。   Interpretation 1: Unlike Example 1, there is no distribution of modifiers.

Figure 0005014584
Figure 0005014584

解釈2:FindCommandが解決しなかった場合、「find」のエンティティへの分配が得られる。   Interpretation 2: If FindCommand does not resolve, a distribution of “find” to entities is obtained.

Figure 0005014584
Figure 0005014584

コマンド「Find mail, notes, or journal items created yesterday」の結果、以下の潜在的解釈が得られる。   The command “Find mail, notes, or journal items created yesterday” results in the following potential interpretations:

解釈1:「created yesterday」は「mail」、「notes」、および「journal items」に分配される。   Interpretation 1: “created yesterday” is distributed to “mail”, “notes”, and “journal items”.

Figure 0005014584
Figure 0005014584

解釈2:修飾語句の分配はない   Interpretation 2: There is no distribution of modifiers

Figure 0005014584
Figure 0005014584

FindCommandが存在しなかった場合、または解決に成功しなかった場合、「find」は接続詞に分配され、以下のさらに2つの解釈が生じる。 If FindCommand does not exist, or if the resolution is not successful, “find” is distributed to the conjunction, resulting in two further interpretations:

解釈3:「find」がエンティティに分配されることを除き1と同じ。   Interpretation 3: Same as 1 except that “find” is distributed to entities.

Figure 0005014584
Figure 0005014584

解釈4:「find」がエンティティに分配されることを除き2と同じ。   Interpretation 4: Same as 2, except that “find” is distributed to entities.

Figure 0005014584
Figure 0005014584

コマンド「Find mail and notes or journal items created yesterday」の結果、括弧付けの問題が生じる。接続詞の型が入り交じっているため(つまり、「and」と「or」の両方が発話内に出現している)、またエンティティのリストとシングルトンエンティティ(singleton entities)の両方を受け取る「find」コマンドが存在しているため、多数の解釈が生じる可能性がある。したがって、何らかのエンティティのリストを受け取るコマンドだけでなくそのシングルトンエンティティを受け取るコマンドをも持たないことがよい考えである。コードは、できる限り多くの解釈が得られるようにオーサリングされる。   The command "Find mail and notes or journal items created yesterday" results in parenthesis problems. A “find” command that receives both a conjunctive type (ie, both “and” and “or” appear in the utterance), and receives both a list of entities and singleton entities There are many possible interpretations due to the existence of. It is therefore a good idea not to have a command that receives a list of entities as well as a singleton entity. The code is authored to get as many interpretations as possible.

解釈セット1:「created yesterday」の分配はない。   Interpretation set 1: There is no distribution of “created yesterday”.

Figure 0005014584
Figure 0005014584

この場合、FindJournalCommandの代わりにただ1つの要素を受け取るFindCommandで解釈を出力することが必要になることもある。 In this case, it may be necessary to output the interpretation with a FindCommand that receives only one element instead of the FindJournalCommand.

Figure 0005014584
Figure 0005014584

解釈セット2:「created yesterday」は、「or」に分配され、「notes」に付く。   Interpretation set 2: “created yesterday” is distributed to “or” and attached to “notes”.

Figure 0005014584
Figure 0005014584

解釈セット3:「created yesterday」はすべてのエンティティに分配される。   Interpretation set 3: “created yesterday” is distributed to all entities.

Figure 0005014584
Figure 0005014584

場合によっては、開発者側で制約への様々な言語現象の自分用のマッピングを規定できるようにすることが望ましいことがある。既定の「事後解析」プログラミングとは反対に、発火される制約に対しパターンが影響を及ぼす「事前解析」プログラミングを用意することが望ましい場合もある。一般に、文字列ベースのパターンから言語ベースのパターンまでの一定範囲のパターンを許容することが望ましい。   In some cases, it may be desirable to allow developers to specify their own mapping of various language phenomena to constraints. It may be desirable to have "pre-analysis" programming where the pattern affects the fired constraints, as opposed to the default "post-analysis" programming. In general, it is desirable to allow a range of patterns from string-based patterns to language-based patterns.

一実施形態では、LOM開発者が内部的に使用し、SPL開発者が外部から使用するパターンを規定する一般的なメカニズムが用意される。外部開発者は、単純なパターンから複雑なパターンまで、様々なパターンを使用できるようになっているべきである。   In one embodiment, a general mechanism is provided that defines patterns that are used internally by LOM developers and used externally by SPL developers. External developers should be able to use a variety of patterns, from simple patterns to complex patterns.

一実施形態では、パターンの適用は、表147に示されているようにC#属性を使用することに似ている。   In one embodiment, pattern application is similar to using the C # attribute as shown in Table 147.

表147:パターンの適用   Table 147: Pattern application

Figure 0005014584
Figure 0005014584

一般に、本発明は、できる限りオープンであることを意図しており、これにより、開発者は、定義済みセットからたぶん独立している、自分用のパターンを作成することができる。したがって、開発者は、形式化された意味論的関係(つまり、制約型)をバイパスし、必要に応じて独自の関係を形成することができる。   In general, the present invention is intended to be as open as possible, which allows developers to create their own patterns that are probably independent of the predefined set. Thus, developers can bypass formalized semantic relationships (ie, constraint types) and form their own relationships as needed.

モデル化条件節に関して、いくつかの実施形態では、モデル化条件節コマンドは、とても役に立つことがある。単純な例として、「if Bob sends me mail,delete it」、「page me when mail comes from Bob」、「move the file to c:\docs after copy it」、および「warn me before permanently deleting a message」などがある。一般に、これをモデル化するメカニズムは、調整されたコマンドのメカニズムに類似していなければならない。他の実施形態では、条件節は、特別な制約型を通じて明らかにできる。   With respect to modeling condition clauses, in some embodiments, modeling condition clause commands can be very useful. Simple examples include: “if Bob sends me mail, delete it”, “page me when mail comes from Bob”, “move the file to c: \ doc after copy ent, and er me and so on. In general, the mechanism for modeling this should be similar to the coordinated command mechanism. In other embodiments, the conditional clause can be revealed through a special constraint type.

いくつかの実施形態では、作成者は、解釈を絞り込むために制約節内の複数の制約を推論したい場合がある。作成者は、制約節にデータを格納し、success節においてそれを推論することにより、エレガントではないが、AND推論を模倣することができる。作成者は、共通関数へのコールアウトによりORプロパティの推論を模倣することができる。   In some embodiments, the author may wish to infer multiple constraints within a constraint clause to narrow down the interpretation. An author can imitate AND inference, though not elegant, by storing data in a constraint clause and inferring it in the success clause. Authors can mimic the inference of OR properties through callouts to common functions.

好ましい一実施形態では、作成者は、命令コードを使用して(例えば、データベースを呼び出して)、表記のリストを規定することが許されている。これに対する表記は、特定の実装および関連するデータベースによって、異なることがある。   In a preferred embodiment, the author is allowed to define a list of notations using an operation code (eg, calling a database). The notation for this may vary depending on the particular implementation and the associated database.

一般に、Named制約から、作成者は名前を文字列として得ることができる。一実施形態では、作成者は、与えられた発話内で認識した名前のリストについてランタイムによる問い合わせが可能な名前クラスを作成できる。例えば、語句「find Gone with The Wind movie」を考えると、作成者は、「Gone with the windを映画の名前として認識できる名前クラスを作成することができる。一実施形態では、SPLは、表148に示されているように、名前クラス型を受け取るNamed制約のオーバーロードを用意できる。   In general, from the Named constraint, the creator can obtain the name as a string. In one embodiment, an author can create a name class that can be queried by the runtime for a list of names recognized in a given utterance. For example, given the phrase “find Gone with The Wind movie”, an author can create a name class that can recognize “Gone with the wind” as the name of a movie. As shown, you can provide an overload of Named constraints that accept name class types.

表148:オーバーロードされたName制約   Table 148: Overloaded Name constraints

Figure 0005014584
Figure 0005014584

好ましい一実施形態では、NamedEntity型は、以下のように、NamedEntityRecognizerクラスと関連付けられている。   In a preferred embodiment, the NamedEntity type is associated with the NamedEntityRecognizer class as follows:

NamedEntity MovieName uses MoveNameRecognizer;     NamedEntity MovieName uses MoveNameRecognizer;

Figure 0005014584
Figure 0005014584

好ましい一実施形態では、開発者は、未知/未オーサリングコマンド(例えば、名詞句)の取り扱い方を規定できる。作成者は、適切に処理するようにアプリケーションをコーディングするか、または特定のエンティティに対して特定のコマンド(または一組のコマンド)を呼び出すようにランタイムに要求するか、または既定のコマンドハンドラを用意することができる。   In a preferred embodiment, the developer can specify how to handle unknown / unauthored commands (eg, noun phrases). The author can either code the application to handle it properly, or can request the runtime to invoke a specific command (or set of commands) for a specific entity, or provide a default command handler can do.

一実施形態では、派生クラスは、表149に示されているように、基本クラスの制約節を呼び出すことができる。   In one embodiment, a derived class may invoke a base class constraint clause, as shown in Table 149.

表149:派生クラスは基本クラスの制約節を呼び出す   Table 149: Derived class calls base class constraint clause

Figure 0005014584
Figure 0005014584

直接呼び出しは、望ましくないことがある、というのも、節の解決は大部分がランタイムにより制御されているからである。public/private/protected/およびその他の制約節を導入し、それぞれが解決意味論に対しどのような意味を持つのかを調べるのは、無駄な複雑さを加えることになる。その代わりに、基本節が成功した場合に自節を呼び出す前に基本制約節を呼び出すようにインタプリタに知らせる制約条件をさらに加えることができる(例えば、宣言的制約条件)。コンパイラは、表150に示されているように、基本クラス内に正確なスロット型を持つ節の存在を強制することができる。   Direct calls may be undesirable because clause resolution is largely controlled by the runtime. Introducing public / private / protected / and other constraint clauses and investigating what each means for the solution semantics adds unnecessary complexity. Alternatively, you can add a constraint that tells the interpreter to call the basic constraint clause before calling the self clause if the basic clause succeeds (eg, declarative constraints). The compiler can force the existence of a clause with an exact slot type in the base class, as shown in Table 150.

表150   Table 150

Figure 0005014584
Figure 0005014584

invokebaseの意味論は、基本の制約節(宣言的制約条件と命令的制約条件の両方)が、invokebaseで装飾された節が呼び出される前に成功していなければならないということである。意味論を変更する(つまり、基本の節の前に派生節を呼び出す)ことが望ましかった場合、他の構文を使用しなければならない。「with」節の構文は、その節に付いているコードが実行される前に、その節により規定された制約条件が満たされていなければならないということを意味する。   The semantics of invokebase is that the basic constraint clause (both declarative and imperative constraints) must be successful before the clause decorated with invokebase is called. If it was desired to change the semantics (ie call the derived clause before the base clause), another syntax must be used. The syntax of the “with” clause means that the constraints specified by that clause must be met before the code attached to that clause is executed.

いくつかの動詞では、GoalとLocationを入れ替える。例えば、「print to my printer」は、「print on my printer」と同じことを意味する。作成者は、場所が構文的にどのように理解されるかによっては(つまり、「to」対「on」)、2つの異なる制約と突き合わせてコーディングしなくてもよい。制約は両方とも、オーサリングの内容に応じて、それらの動詞について明らかにできる。しかし、場合によっては、「to」が常にGoalとして理解されることを作成者に説明し、GoalsとLocationとすることができる動詞もあれば、そうでない動詞もあることを説明しようとすることについて忘れるほうが容易なこともある。   For some verbs, swap Goal and Location. For example, “print to my printer” means the same as “print on my printer”. Depending on how the location is understood syntactically (ie, “to” vs. “on”), the author may not code against two different constraints. Both constraints can be revealed for those verbs depending on the content of the authoring. However, in some cases, explaining to the author that "to" is always understood as Goal, and trying to explain that some verbs can be Goals and Location, and some are not. Sometimes it is easier to forget.

抽象型はインスタンス化できない(つまり、直接解決できない)ことを理解しておくことは重要であるが、多態性および共通機能の保持には有用である。作成者が「send mail to Bob」に対するコマンドを作成した場合、「send to Bob」は、発話内に「mail」がなくても、そのコマンドと突き合わせて解決すべきである。しかし、これを既定にすると、解釈が多数生じる可能性がある。いくつかの実施形態では、そのような機能が望ましいこともある。既定で、空のエンティティが許容され、有効として取り扱われる場合、作成者は、空のエンティティを拒絶するコードをエンティティのsuccess節で作成することができる。既定で空のエンティティが許容されない場合(つまり、発話内にエンティティの証拠がない場合は、解決しない)、コマンドがヌルエンティティを受け付けられるようにするスロット修飾語句を導入することが可能である(「optional」など)。好ましい一実施形態では、MailEntityを含む制約がないことがあり、作成者がこのケースをチェックしたい場合、フレームまたはコマンドは明示的に解決を失敗させる。   While it is important to understand that abstract types cannot be instantiated (ie, cannot be resolved directly), they are useful for preserving polymorphism and common functionality. If the creator creates a command for “send mail to Bob”, “send to Bob” should be resolved against that command even if there is no “mail” in the utterance. However, with this default, many interpretations can occur. In some embodiments, such functionality may be desirable. By default, if an empty entity is allowed and treated as valid, the author can create code in the entity's success clause that rejects the empty entity. If an empty entity is not allowed by default (that is, it does not resolve if there is no evidence of the entity in the utterance), it is possible to introduce a slot modifier that allows the command to accept a null entity (" optional "). In a preferred embodiment, there may be no constraints that include MailEntity, and if the author wants to check this case, the frame or command explicitly fails to resolve.

本発明は、特定の実施形態を参照しつつ説明されているが、当業者であれば、本発明の精神および範囲を逸脱することなく、形態および詳細に変更を加えることができることを理解するであろう。   Although the invention has been described with reference to particular embodiments, those skilled in the art will recognize that changes can be made in form and detail without departing from the spirit and scope of the invention. I will.

付録Iシナリオ:Microsoft Outlook(登録商標)のプロトタイプ
この実施形態では、Microsoft Outlook(登録商標)は、SPLおよびLOMを使用したテキスト音声入力に対応している。この対応のほとんどは、言語学に関する知識を有しない、または言語学に関する訓練を受けていない夏季研修生によって実行された。SPLコードは、Microsoft .Netプラットフォーム上でコンパイルおよび実行されるように設計されており、コードはOutlook 2002オブジェクトモデルおよびCDO(Collaboration Data Objects)を通じてMicrosoft Outlookと相互作用し、バインディングおよびコマンドを実行する。
Appendix I Scenario: Microsoft Outlook (R) Prototype In this embodiment, Microsoft Outlook (R) supports text speech input using SPL and LOM. Most of this response was performed by summer trainees who had no knowledge of linguistics or were not trained in linguistics. The SPL code is Microsoft. Designed to be compiled and executed on the Net platform, the code interacts with Microsoft Outlook through the Outlook 2002 object model and CDO (Collaboration Data Objects) to execute bindings and commands.

いくつかの高度な検索機能が有効になっており、これにより、異なるデータソースを推論する。いくつかの例として以下のシナリオがある。   Several advanced search features are enabled, which infer different data sources. Some examples include the following scenarios:

「search for mail that was sent by people on Conference Group」−分配リストを推論する
「show mail from my contacts」−contactsフォルダ内の人々を推論する
「find mail from my direct reports」−組織図を推論する
さらに、システムは前方照応解決も行う。例えば、「show me David’s manager」の後に「send mail to him」が続くと、これは、「him」が「David’s manager」を指しており開発者にとっては明確になっている。
“Search for mail that was sent by people on Conference Group”-infer distribution list “show mail from my contacts”-infer people in contacts folder “find mail from my direct reports”-infer organizational chart The system also performs forward anaphoric resolution. For example, when “show me David's manager” is followed by “send mail to him”, this means that “him” indicates “David's manager” and is clear to the developer.

さらに、システムは、以下のように、高度な推論およびモデル化を実行する。   In addition, the system performs advanced inference and modeling as follows.

「send mail to everyone on nlgcore except David Bradlee」−否定を推論する
「schedule a meeting every Tuesday with my manager at 2:00 for 1 hour」−複雑な時刻表現と突き合わせてモデル化し、プログラムする。
"Send mail to everyone on nlgcore except David Bradlee"-inferring denial "schedule a meeting every Tuesday with my manager at 2:00 for 1 hour"-modeling and programming against a complex time expression.

付録II:Microsoft Outlook(登録商標)コードウォークスルー
以下の説明では、開発者の視点からコマンドを解析する。この説明では、コードのデバッグ時の開発者による調査を模倣する。コマンドは、「send mail about package to Seattle group」である。この文は、以下のように2つの可能な意味を持つ。
Appendix II: Microsoft Outlook® Code Walkthrough In the following description, commands are analyzed from the developer's perspective. This description mimics the developer's investigation when debugging code. The command is “send mail about package to Seattle group”. This sentence has two possible meanings:

1.「send mail about package to seattle group」−メールの主題が「package to seattle group」である。     1. “Send mail about package to seattle group” —The subject of the email is “package to seat group”.

2.「send mail about package to seattle group」−メールの主題が「package」であり、「send」のターゲット(つまり、メールの送信先)が「seattle group」である。 2. “ Send mail about package to seattle group—The subject of the email is “package” and the target of “send” (ie, the destination of the email) is “seat group”.

領域の知識に応じて、これらの解釈のうちの一方または両方が最終的な解釈リスト内に残る。   Depending on the domain knowledge, one or both of these interpretations remain in the final interpretation list.

以下にコード全体を示す。SPLキーワードまたは予約語は太字で示されている。コードスニペットは、解析のステップが進むにつれ省略されてゆく。   The entire code is shown below. SPL keywords or reserved words are shown in bold. Code snippets will be omitted as the analysis steps progress.

Figure 0005014584
Figure 0005014584

解釈1
再びコマンドを参照すると、メールの主題が以下のように「package to seattle group」であるというのが第1の解釈である。
Interpretation 1
Referring to the command again, the first interpretation is that the subject of the mail is “package to seat group” as follows.

"send mail about package to seattle group"
呼び出される第1のオブジェクトは、SendMailCommandの「on resolve」節の「on begin」節である。
"send mail about package to seattle group"
The first object called is the “on begin” clause of the “on resolve” clause of SendMailCommand.

Figure 0005014584
Figure 0005014584

コマンドのコンストラクタが呼び出され、節内のコードが実行される。節が「false」を返した場合、このコマンドに対するそれ以上の解析は停止する。この場合、SendMailContext()がfalseを返せば(つまり、アプリケーションが現在メール送信のコンテキストに入っていない)、解析は停止する。   The command constructor is called and the code in the clause is executed. If the clause returns "false", further parsing for this command stops. In this case, if SendMailContext () returns false (that is, the application is not currently in the context of email transmission), the analysis stops.

アプリケーションがメールを送信できると仮定すると、SPLインタプリタはその解析を続ける。SendMailCommandsがSendMailFrameを使用することを知らせるので、呼び出される次のオブジェクトは、SendMailFrameである。インタプリタは、その語句内の単語「send」がSendMailFrameにマッピングされることを認識している。   Assuming that the application can send mail, the SPL interpreter continues its analysis. Since SendMailCommands informs that it uses SendMailFrame, the next object to be called is SendMailFrame. The interpreter knows that the word “send” in the phrase is mapped to SendMailFrame.

Figure 0005014584
Figure 0005014584

SendMailFrameに対するコンストラクタはないため、既定のコンストラクタが呼び出される。既定のコンストラクタは常に成功する。インタプリタは、「send」に対する制約の解決を続ける。解決すべき第1の制約は、「send」の目的語、この場合は「mail」、を表す「DoneTo」制約である。 Since there is no constructor for SendMailFrame, the default constructor is called. The default constructor always succeeds. The interpreter continues to resolve the constraint on “send”. The first constraint to be solved is a “DoneTo” constraint that represents the object of “send”, in this case “mail”.

Figure 0005014584
Figure 0005014584

コードに従って、DoneToのスロット(領域特有の型を指示する)はMailEntityである。つまり、「send」の目的語は、MailEntityである必要があるということである。そこで、インタプリタは、MailEntityを解決しようとする。 According to the code, the DoneTo slot (indicating a region-specific type) is MailEntity. In other words, the object of “send” needs to be MailEntity. Therefore, the interpreter tries to solve MailEntity.

Figure 0005014584
Figure 0005014584

他のオブジェクトと同様、インタプリタはコンストラクタを呼び出す。コンストラクタはないため、既定のコンストラクタが呼び出され、そして成功する。   Like other objects, the interpreter calls a constructor. Since there is no constructor, the default constructor is called and succeeds.

エンティティは、単語のリストで表されるという概念を持つ。この場合、インタプリタは、英語リストの中にMailEntityWordsがないか見て、「mail」がMailEntityの表記かどうかをチェックする。   Entities have the concept of being represented by a list of words. In this case, the interpreter checks whether MailEntityWords is in the English list, and checks whether “mail” is a notation of MailEntity.

Figure 0005014584
Figure 0005014584

これは、言語特有の詳細がコーディングされている場所である。インタプリタは、「mail」がリスト内にあることを確認する。 This is where language specific details are coded. The interpreter verifies that “mail” is in the list.

次に、インタプリタは、MailEntityにおいてコーディングされている内容と突き合わせて「mail」に対する制約を解決しようとする。この場合、「about package to seattle group」は、実際の話題が「package to seattle group」であるTopic制約である。   The interpreter then tries to resolve the constraint on “mail” against the content coded in MailEntity. In this case, “about package to seat group” is a Topic constraint whose actual topic is “package to seat group”.

Figure 0005014584
Figure 0005014584

インタプリタは、Topic制約のスロットと突き合わせて実際の話題を解決しようとする。「topic」スロットは、文字列であり、したがって、解決は必要ない。Topic節内のコードが実行される。   The interpreter tries to solve the actual topic by matching the slot of the Topic constraint. The “topic” slot is a string and therefore does not require resolution. The code in the Topic section is executed.

Figure 0005014584
Figure 0005014584

コードは、話題のテキストをメンバ変数MailSubjectに格納する。話題の実際のテキストは、言語オブジェクトモデル(LOM)を介して取り出される。インタプリタは、現在、MailEntityオブジェクトにより実行される。これは、コーディングされていないため、MailEntityに対する既定のsuccessデストラクタを呼び出す。   The code stores the topic text in the member variable MailSubject. The actual text of the topic is retrieved via a language object model (LOM). The interpreter is currently executed by the MailEntity object. Since it is not coded, it calls the default success destructor for MailEntity.

制御フローは、SendMailFrameに返され、そこで、コードがDoneTo節内で実行される。   Control flow is returned to SendMailFrame, where the code is executed within the DoneTo clause.

Figure 0005014584
Figure 0005014584

このコードは、MailEntityオブジェクトをメンバ変数に格納するだけである。{注意:これは第2の解釈(後述)が始まる場所である}インタプリタは、SendMailFrameオブジェクトの解決を終了しており、successデストラクタが提供されていないため既定のsuccessデストラクタを呼び出す。   This code only stores the MailEntity object in a member variable. {NOTE: This is where the second interpretation (described below) begins} The interpreter has finished resolving the SendMailFrame object and calls the default success destructor because no success destructor is provided.

制御フローはSendMailCommandに戻る。この時点で、インタプリタはcompleteコマンドの解決を完了している。SendMailCommandのsuccessデストラクタが呼び出される。   Control flow returns to SendMailCommand. At this point, the interpreter has completed resolution of the complete command. The SendMailCommand success destructor is called.

Figure 0005014584
Figure 0005014584

コードが実行され、SendMailCommandオブジェクトがアプリケーションに返される。 The code is executed and a SendMailCommand object is returned to the application.

解釈2
次に第2の可能な解釈を参照することにする。
Interpretation 2
Reference will now be made to a second possible interpretation.

"send mail about package to seattle group"
「send mail about package」に対する解決ステップは、話題が「package to seattle group」ではなく「package」であることを除き、上の標示部位までのとまったく同じである。
" send mail about package to seattle group"
The resolution steps for “send mail about package” are exactly the same as up to the top labeled site, except that the topic is “package” rather than “package to seat group”.

インタプリタは、「to seattle group」が「send」に対するGoal制約であることを認識している。   The interpreter recognizes that “to seat group” is a Goal constraint on “send”.

Figure 0005014584
Figure 0005014584

このコードは、インタプリタが「seattle group」をDLEntityと突き合わせて解決を試みるように、実際のゴールをDLEntityとする必要があることを指示している。 This code indicates that the actual goal needs to be DLEntity so that the interpreter will try to resolve it by matching the “seat group” with the DLEntity.

Figure 0005014584
Figure 0005014584

インタプリタは、「group」がDLEntityの表記でなければならないことを認識している。これは表記リストDLEntityWordsをチェックする。 The interpreter recognizes that “group” must be in the notation of DLEntity. This checks the notation list DLEntityWords.

Figure 0005014584
Figure 0005014584

一致が見つかる。次に、インタプリタは、「seattle」をNamed制約節と突き合わせて解決しようとする。Named制約のスロットは文字列なので、「seattle」はそれと突き合わせて解決する。Named制約節は成功し、その節内のコードが実行される。 A match is found. Next, the interpreter attempts to resolve “settle” against the Named constraint clause. Since the slot of the Named constraint is a character string, “seatle” is resolved by matching it. The Named constraint clause succeeds and the code in that clause is executed.

Figure 0005014584
Figure 0005014584

コードは、「seattle」が有効な分配グループである場合のみ「true」を返す。認識された分配グループでない場合、この節は「false」を返す。これは、領域特有の知識がSPLインタプリタが返す解釈にどのような影響を及ぼすかを示す。「seattle」が分配グループでない場合、この解釈の解決は失敗し、最初の解釈のみが返される。 The code returns “true” only if “seattle” is a valid distribution group. If it is not a recognized distribution group, this section returns “false”. This shows how domain specific knowledge affects the interpretation returned by the SPL interpreter. If "seatle" is not a distribution group, resolution of this interpretation fails and only the first interpretation is returned.

インタプリタはコマンドの解決を完了する。「seattle」が認識された分配グループかどうかに応じて、successデストラクタまたはfailedデストラクタのいずれかが呼び出される。   The interpreter completes command resolution. Depending on whether "seatle" is a recognized distribution group, either the success destructor or the failed destructor is called.

制御フローはSendMailFrameに戻る。DLEntityの解決が失敗した場合、Goal節内のコードは実行されず、SendMailFrameが解決に失敗する。そうでない場合、コードは実行され、解決は成功する。   Control flow returns to SendMailFrame. If the resolution of DLEntity fails, the code in the Goal clause is not executed and SendMailFrame fails to resolve. Otherwise, the code is executed and the resolution is successful.

Figure 0005014584
Figure 0005014584

制御フローは、SendMailCommandに戻り、SendMailFrameが成功したかどうかに応じて、successデストラクタが呼び出されるか、またはfailedデストラクタが呼び出される。 The control flow returns to SendMailCommand and either the success destructor is called or the failed destructor is called depending on whether SendMailFrame was successful.

Figure 0005014584
Figure 0005014584

本発明の一実施形態が実装可能なコンピューティングシステム環境の概略図である。1 is a schematic diagram of a computing system environment in which an embodiment of the invention may be implemented. 本発明の一実施形態による自然言語システムの簡略化されたブロック図である。1 is a simplified block diagram of a natural language system according to an embodiment of the present invention. 言語オブジェクトモデルが点線で示されている図2の解析エンジンの簡略化されたブロック図である。FIG. 3 is a simplified block diagram of the analysis engine of FIG. 2 where the language object model is shown in dotted lines. 本発明の一実施形態によりメール送信コマンドを実行するプロセスの簡略化された流れ図である。6 is a simplified flow diagram of a process for executing a send mail command according to an embodiment of the invention. 本発明の一実施形態による型解決の簡略化された流れ図である。6 is a simplified flow diagram of mold resolution according to an embodiment of the present invention. 本発明の一実施形態によるコマンド解決の簡略化された流れ図である。6 is a simplified flowchart of command resolution according to an embodiment of the present invention. 本発明の一実施形態によるフレーム解決の簡略化された流れ図である。6 is a simplified flow diagram of frame resolution according to an embodiment of the present invention. 本発明の一実施形態による制約句解決の簡略化された流れ図である。6 is a simplified flowchart of constraint phrase resolution according to an embodiment of the present invention. 本発明の一実施形態によるエンティティ解決プロセスの簡略化された流れ図である。6 is a simplified flow diagram of an entity resolution process according to an embodiment of the invention. 本発明の一実施形態による知能システムの簡略化されたブロック図である。1 is a simplified block diagram of an intelligent system according to an embodiment of the present invention. FIG. 本発明の一実施形態による語彙意味論構造の簡略化された概念ブロック図である。FIG. 4 is a simplified conceptual block diagram of a lexical semantic structure according to one embodiment of the present invention.

符号の説明Explanation of symbols

130 システムメモリ
134 オペレーティングシステム
135 アプリケーションプログラム
136 その他のプログラムモジュール
137 プログラムデータ
144 オペレーティングシステム
145 アプリケーションプログラム
146 その他のプログラムモジュール
147 プログラムデータ
120 処理ユニット
190 ビデオインターフェース
195 出力周辺機器インターフェース
140 取り外し不可能不揮発性メモリインターフェース
150 取り外し可能不揮発性メモリインターフェース
160 ユーザ入力インターフェース
170 ネットワークインターフェース
191 モニタ
196 プリンタ
197 スピーカ
171 ローカルエリアネットワーク
173 ワイドエリアネットワーク
172 モデム
162 キーボード
161 ポインティングデバイス
163 マイク
180 リモートコンピュータ
185 リモートアプリケーションプログラム
130 system memory 134 operating system 135 application program 136 other program module 137 program data 144 operating system 145 application program 146 other program module 147 program data 120 processing unit 190 video interface 195 output peripheral interface 140 non-removable nonvolatile memory interface 150 removable nonvolatile memory interface 160 user input interface 170 network interface 191 monitor 196 printer 197 speaker 171 local area network 173 wide area network 172 modem 162 keyboard 161 pointing Vice 163 microphone 180 remote computer 185 remote application programs

Claims (26)

クライアントアプリケーションと複数の解析エンジンとの間に介在するコンピュータに、前記クライアントアプリケーションにとって有効な、自然言語入力の解釈を生成させるためのプログラムであって、
前記クライアントアプリケーションから前記自然言語入力を受信するステップと、
前記自然言語入力、および前記クライアントアプリケーションの自然言語特徴の意味論的モデルを記述する宣言スキーマを前記複数の解析エンジンに渡すステップと、
複数の潜在的解釈を前記複数の解析エンジンから受信するステップであって、前記複数の潜在的解釈は、前記自然言語入力を言語オブジェクデモデルにマッピングすることにより生成され、各解析エンジンは前記マッピングのために独自の解析戦略を使用前記言語オブジェクトモデルは、自然言語の意味論的要素をモデル化するように適合された、特定の自然言語に関係しない、モデル化型の集合を含み、前記モデル化型は、インスタンス化される際に、前記モデル化型の集合うちの1または複数の型のインスタンスの有効性にコンテキストベースの制約条件を課すように適合された手続規則を含む、ステップと、
前記複数の潜在的解釈のそれぞれについて、前記宣言スキーマに定義され、前記自然言語入力がマッピングされたモデル化型のインスタンス化を試み、前記制約条件が満たされることによりインスタンスの生成に成功する場合、当該潜在的解釈を実際の解釈として識別するステップと、
前記クライアントアプリケーションで、1または複数の前記実際の解釈をインスタンス化するステップと
を前記コンピュータに実行させることを特徴とするプログラム。
A program for causing a computer interposed between a client application and a plurality of analysis engines to generate a natural language input interpretation effective for the client application,
Receiving the natural language input from the client application;
Passing a declaration schema describing the natural language input and a semantic model of a natural language feature of the client application to the plurality of analysis engines;
Receiving a plurality of potential interpretations from the plurality of analysis engines, wherein the plurality of potential interpretations are generated by mapping the natural language input to a language object model; uses its own analysis strategies for the language object model was adapted to model the semantic elements of natural language, not related to a particular natural language, comprising a set of modeling type, The modeled type includes procedural rules adapted to impose context-based constraints on the validity of one or more types of instances of the set of modeled types when instantiated. When,
For each of the plurality of potential interpretations , when attempting to instantiate a modeled type defined in the declaration schema and mapped with the natural language input, and succeeding in creating an instance by satisfying the constraints, identifying the potential interpreted as the actual interpretation,
A program for causing the computer to execute the step of instantiating one or more of the actual interpretations in the client application.
前記コンテキストベースの制約条件により、前記インスタンスはもし無効であれば破棄されることを特徴とする請求項に記載のプログラム。 By the context-based constraints, the program according to claim 1, wherein the instance to be destroyed if it is dead. 前記モデル化型は、さらに、前記プログラムと前記クライアントアプリケーションとの間の相互作用を定義するように適合された型の集合のうちの複数の型の間の関係を記述するように適合された制約節を含み、
前記型の集合は、開発者により一部が作成される複数の意味論的型を含むことを特徴とする請求項に記載のプログラム。
The modeled type is further a constraint adapted to describe a relationship between a plurality of types of a set of types adapted to define an interaction between the program and the client application. Contains clauses,
The program according to claim 1 , wherein the set of types includes a plurality of semantic types partially created by a developer.
前記制約節は、手続き規則で実行時に前記関係の受け入れを判定できるように適合されていることを特徴とする請求項に記載のプログラム。 4. The program according to claim 3 , wherein the constraint clause is adapted so that acceptance of the relationship can be determined at the time of execution by a procedure rule. 前記言語オブジェクトモデルの型の集合は、名詞句の意味論をモデル化するためのEntity型を含むことを特徴とする請求項に記載のプログラム。 The program according to claim 1 , wherein the set of language object model types includes an Entity type for modeling the semantics of a noun phrase. 前記言語オブジェクトモデルの型の集合は、形容詞句の意味論をモデル化するためのEntity型を含むことを特徴とする請求項に記載のプログラム。 The program according to claim 1 , wherein the set of language object model types includes an Entity type for modeling the semantics of an adjective phrase. 前記言語オブジェクトモデル型の集合は、さらに、意味論的要素のプロパティをモデル化するためのRestriction型を含み、
前記Entityは前記Restrictionのホストとなることを特徴とする請求項に記載のプログラム。
The set of language object model types further includes a Restriction type for modeling the properties of semantic elements,
6. The program according to claim 5 , wherein the Entity serves as a host for the restriction.
前記言語オブジェクトモデルの型の集合は、動詞または名詞のいずれかとして表現することができるイベントの意味論をモデル化するためのFrame型を含むことを特徴とする請求項に記載のプログラム。 The program according to claim 1 , wherein the set of language object model types includes a Frame type for modeling the semantics of an event that can be expressed as either a verb or a noun. 前記言語オブジェクトモデルの型の集合は、入力文字列のユーザ定義カテゴリをモデル化するためのDenoter型を含むことを特徴とする請求項に記載のプログラム。 2. The program according to claim 1 , wherein the set of language object model types includes a Denometer type for modeling a user-defined category of an input character string. 前記Frame型は、前記Frame型によりモデル化された語句の統語上の主要部に対応する1つまたは複数の見出し語を含むことを特徴とする請求項に記載のプログラム。 The program according to claim 8 , wherein the Frame type includes one or a plurality of headwords corresponding to a syntactic main part of a phrase modeled by the Frame type. 前記言語オブジェクトモデル型の集合は、さらに、意味論的要素のプロパティをモデル化するためのRestriction型を含み、
前記Frame型は前記Restriction型のホストとなることを特徴とする請求項に記載のプログラム。
The set of language object model types further includes a Restriction type for modeling the properties of semantic elements,
The program according to claim 8 , wherein the Frame type is a host of the Restriction type.
前記言語オブジェクトモデルの型の集合は、
意味論的オブジェクトをモデル化するように適用されたEntitiesと、
1つまたは複数のオブジェクト間のイベントおよび関連する関係をモデル化するように適合されたFramesと、
他のエンティティ、Frames、または制約のプロパティおよび関係をモデル化するように適合されたRestrictionsと
を含むことを特徴とする請求項に記載のプログラム。
The set of language object model types is
Entities applied to model semantic objects;
Frames adapted to model events and related relationships between one or more objects;
The program of claim 1 , comprising: Restrictions adapted to model properties and relationships of other entities, Frames, or constraints.
前記言語オブジェクトモデルの型の集合は、
指定されたEntitiesをモデル化するように適合され、別に定義されているクラスから派生された、Named Entity型を含むことを特徴とする請求項に記載のプログラム。
The set of language object model types is
The program of claim 1 , including a Named Entity type adapted to model specified Entities and derived from a separately defined class.
前記コンピュータは、前記自然言語入力の内容をモデル化するために選択された語彙意味論カテゴリの集合を格納するメモリを備え、
前記プログラムは、
前記自然言語入力の内容を前記語彙意味論カテゴリの集合のうちの1つまたは複数のカテゴリに関連付けて、マッピングされた要素を生成するステップを含み、
前記解析エンジンに、前記マッピングされた要素を渡すことを特徴とする請求項1に記載のプログラム。
The computer comprises a memory for storing a set of vocabulary semantic categories selected to model the content of the natural language input;
The program is
Associating the content of the natural language input with one or more categories of the set of lexical semantic categories to generate mapped elements;
The program according to claim 1, wherein the mapped element is passed to the analysis engine.
前記マッピングされた要素を生成するステップは、前記自然言語入力に、前記自然言語入力の内容を前記語彙意味論カテゴリの集合に関連付けるための意味論的規則のコレクションを適用することを特徴とする請求項14に記載のプログラム。 The step of generating the mapped elements applies to the natural language input a collection of semantic rules for associating the content of the natural language input with the set of lexical semantic categories. Item 15. The program according to Item 14 . 前記マッピングされた要素を生成するステップは、前記自然言語入力に、前記語彙意味論カテゴリの集合において自然言語入力を正規化するための意味論的規則のコレクションであって、統語上のクラスの項および修飾語句およびその意味論を識別し、前記識別された項を前記語彙意味論カテゴリの集合のうちの1つまたは複数のカテゴリに関連付けるように適合された意味論的規則のコレクションを適用することを特徴とする請求項14に記載のプログラム。 The step of generating the mapped elements is a collection of semantic rules for normalizing natural language input in the set of lexical semantic categories to the natural language input, wherein the term is a syntactic class term. And applying a collection of semantic rules adapted to identify a modifier and its semantics and to associate the identified term with one or more categories of the set of lexical semantic categories The program according to claim 14 . 前記マッピングされた要素を生成するステップは、統語カテゴリにまたがって前記自然言語入力を正規化することを特徴とする請求項14に記載のプログラム。 15. The program product of claim 14 , wherein generating the mapped element normalizes the natural language input across syntactic categories. 前記語彙意味論カテゴリの集合は、
前記自然言語入力の一部を表す1つまたは複数の統語カテゴリと、
前記自然言語入力内の前記一部分の関数を表す1つまたは複数の意味役割と、
前記1つまたは複数の統語カテゴリと前記1つまたは複数の意味役割との間のマッピングとを含むことを特徴とする請求項14に記載のプログラム。
The set of lexical semantic categories is
One or more syntactic categories representing a portion of the natural language input;
One or more semantic roles representing the portion of the function in the natural language input;
15. The program of claim 14 , comprising a mapping between the one or more syntactic categories and the one or more semantic roles.
前記言語オブジェクトモデルは、自然言語プログラミングのため自然言語の意味論をモデル化するように適合された解決可能型の集合であって、
自然言語入力内のコマンドをモデル化するように適合されたコマンド型と、
前記自然言語入力の非コマンド要素を表すように適合された制約ホスト型であって、選択されたコマンド型または前記自然言語入力に基づいて、選択されたコマンド型に他動詞的に関連付けられている他の制約ホスト型に、実行時に前記選択されたコマンド型の制約条件のホストとなるように適合された制約ホスト型を関連付けるように適合された、制約ホスト型とを含むことを特徴とする解決可能型の集合を含むことを特徴とする請求項1に記載のプログラム。
The language object model is a set of resolvable types adapted to model natural language semantics for natural language programming,
A command type adapted to model commands in natural language input;
A constrained host type adapted to represent a non-command element of the natural language input, the command type selected or other verbally related to the selected command type based on the natural language input A constraint host type adapted to associate a constraint host type adapted to be the host of the selected command type constraint at runtime, The program according to claim 1, comprising a set of types.
前記自然言語入力にマッピングされた型のインスタンス化は、前記コマンド型または前記制約ホスト型から継承することを特徴とする請求項19に記載のプログラム。 20. The program according to claim 19 , wherein the instantiation of the type mapped to the natural language input is inherited from the command type or the restricted host type. 前記非コマンド要素は、言語要素および前記自然言語入力の複数の言語要素間の複数の相互関係を含むことを特徴とする請求項19に記載のプログラム。 The program according to claim 19 , wherein the non-command element includes a plurality of interrelationships between a language element and a plurality of language elements of the natural language input. 前記解決可能型は、さらに、実行時に前記解決可能型の集合のうちの選択された型のインスタンスの有効性を解決するための手続き規則を定義する、解決意味論を含むことを特徴とする請求項19に記載のプログラム。 The resolvable type further includes solution semantics that define procedural rules for resolving the validity of an instance of a selected type of the set of resolvable types at runtime. Item 20. The program according to Item 19 . 前記制約ホスト型は、
動詞または名詞のいずれかとして表現することができる意味論イベントをモデル化するためのFrame型と、
名詞句および形容詞句の意味論をモデル化するように適合されたEntity型と、
意味論的要素のプロパティをモデル化するように適合されたRestriction型と
を含むことを特徴とする請求項19に記載のプログラム。
The restricted host type is
A Frame type for modeling semantic events that can be expressed as either verbs or nouns;
An Entity type adapted to model the semantics of noun phrases and adjective phrases;
20. The program of claim 19 , comprising: a restriction type adapted to model the properties of a semantic element.
前記解決可能型は、さらに、
オブジェクトの解決に影響を及ぼすように適合された前記解決可能型の集合のうちの選択された型に関連付けられている手続きコードと、
前記選択された複数の型の前記オブジェクトに課されるように適合された制約条件と
を含むことを特徴とする請求項19に記載のプログラム。
The resolvable type further comprises:
A procedural code associated with a selected type of the set of resolvable types adapted to affect the resolution of the object;
20. The program of claim 19 , comprising: a constraint adapted to be imposed on the selected plurality of types of objects.
前記潜在的解釈は、1つまたは複数のRestrictionホスト型または1つまたは複数の解決不可能型に、オプションにより関連付けられるCommand型を含むことを特徴とする請求項19に記載のプログラム。 The program of claim 19 , wherein the potential interpretation includes a Command type optionally associated with one or more Restriction host types or one or more unresolvable types. 前記潜在的解釈の解決は、前記Restrictionホスト型と解決意味論との間の相互関係により決定された順序で前記Command型および前記1つまたは複数のRestrictionホスト型の呼び出しを含むことを特徴とする請求項25に記載のプログラム。 The resolution of the potential interpretation comprises calling the Command type and the one or more Restriction host types in an order determined by the interrelationship between the Restriction host type and the solution semantics. The program according to claim 25 .
JP2005123724A 2004-04-23 2005-04-21 Semantic programming language and language object model Expired - Fee Related JP5014584B2 (en)

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
US83098704A 2004-04-23 2004-04-23
US10/830,988 2004-04-23
US10/830,987 2004-04-23
US10/830,988 US7761858B2 (en) 2004-04-23 2004-04-23 Semantic programming language
US10/940,483 US7171352B2 (en) 2004-04-23 2004-09-14 Linguistic object model
US10/940,483 2004-09-14
US10/943,046 2004-09-15
US10/943,046 US8201139B2 (en) 2004-04-23 2004-09-15 Semantic framework for natural language programming
US10/943,091 US7689410B2 (en) 2004-04-23 2004-09-15 Lexical semantic structure
US10/942,646 US7681186B2 (en) 2004-04-23 2004-09-15 Resolvable semantic type and resolvable semantic type resolution
US10/942,646 2004-09-15
US10/943,091 2004-09-15

Publications (2)

Publication Number Publication Date
JP2005332380A JP2005332380A (en) 2005-12-02
JP5014584B2 true JP5014584B2 (en) 2012-08-29

Family

ID=35486969

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005123724A Expired - Fee Related JP5014584B2 (en) 2004-04-23 2005-04-21 Semantic programming language and language object model

Country Status (1)

Country Link
JP (1) JP5014584B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013177213A2 (en) * 2012-05-24 2013-11-28 Soundhound, Inc. Systems and methods for enabling natural language processing
CN111325035B (en) * 2020-02-15 2023-10-20 周哲 Generalized and ubiquitous semantic interaction method, device and storage medium

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212507A (en) * 1996-02-07 1997-08-15 Canon Inc Character processor and analytic method for character string

Also Published As

Publication number Publication date
JP2005332380A (en) 2005-12-02

Similar Documents

Publication Publication Date Title
US7761858B2 (en) Semantic programming language
US7689410B2 (en) Lexical semantic structure
Lara et al. When and how to use multilevel modelling
Seibel Practical common lisp
Maedche et al. Bootstrapping an ontology-based information extraction system
US20050278164A1 (en) Computerized method and system for searching for text passages in text documents
JP2003228564A (en) Context-sensitive flag setting for information in natural language text, and service for centralized control of meta-data related to the information via computer network
US20030212540A1 (en) Permutation nuances of the integration of processes and queries as processes at queues
Giorgolo et al. ? M,?,?? Monads for Conventional Implicatures
Cunningham et al. Developing language processing components with GATE
US20030212671A1 (en) Operational semantics rules for governing evolution of processes and queries as processes
US20030212672A1 (en) Structural equivalence of expressions containing processes and queries
US20040122653A1 (en) Natural language interface semantic object module
Knöll et al. Naturalistic types
EP1589440A2 (en) Semantic programming language and linguistic object model
Boyd Using natural language in software development
Gerbig et al. A Feature-based Comparison of Melanee and Metadepth.
KR101120758B1 (en) Distributed semantic schema
Krishnamurthi Linguistic reuse
JP5014584B2 (en) Semantic programming language and language object model
Farquhar Ontolingua tutorial
Weeds et al. Natural language expression of user policies in pervasive computing environments
Nolan Extending a lexicalist functional grammar through speech acts, constructions and conversational software agents
Etzkorn A metrics-based approach to the automated identification of object-oriented reusable software components
Dahl Natural language processing and logic programming

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110225

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110524

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110527

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120525

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120606

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees