JP5777186B2 - 言語変換装置、言語変換方法、及び言語変換プログラム - Google Patents

言語変換装置、言語変換方法、及び言語変換プログラム Download PDF

Info

Publication number
JP5777186B2
JP5777186B2 JP2014104875A JP2014104875A JP5777186B2 JP 5777186 B2 JP5777186 B2 JP 5777186B2 JP 2014104875 A JP2014104875 A JP 2014104875A JP 2014104875 A JP2014104875 A JP 2014104875A JP 5777186 B2 JP5777186 B2 JP 5777186B2
Authority
JP
Japan
Prior art keywords
syntax
sentence
business rule
language
drl
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.)
Active
Application number
JP2014104875A
Other languages
English (en)
Other versions
JP2015028763A (ja
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.)
SoftBank Corp
Original Assignee
SoftBank Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SoftBank Corp filed Critical SoftBank Corp
Priority to JP2014104875A priority Critical patent/JP5777186B2/ja
Priority to US15/312,443 priority patent/US9946710B2/en
Priority to PCT/JP2015/050385 priority patent/WO2015178042A1/ja
Publication of JP2015028763A publication Critical patent/JP2015028763A/ja
Application granted granted Critical
Publication of JP5777186B2 publication Critical patent/JP5777186B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/226Validation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Description

本発明は自然言語で記述されたビジネスルール文をDRL(Drools Rule Language)言語文に変換するための装置、方法、及びプログラムに関わる。
業務上の規則、条件、判断基準、或いは経験的な対処方法をビジネスルールとして定義及び登録し、その組み合わせから複雑な業務判断を自動的に行うコンピュータシステムは、ビジネスルール管理システム(BRMS)と呼ばれており、例えば、金融業界における与信や保険加入の審査、或いは携帯電話料金の複雑な割引プランを踏まえた料金算定等に用いられている。ビジネスルールは、「もし〜ならば、〜とする(しない)」というプロダクションルール(if-thenルール)の形式で定義される。従来では、ビジネスルールの設定には、ナレッジエンジニアと呼ばれる専門家が必要とされていたが、近年のビジネスルール管理システムでは、自然言語でビジネスルールの登録及び変更が可能となり、矛盾したビジネスルールが排除される等の仕組みが実現されているため、専門知識を持たない者でも運用することが可能である。このようなビジネスルール管理システムとして、IBM社が提供するJRulesと呼ばれる製品が知られている。
しかし、ビジネス管理システムとして商用化されている製品の全てが必ずしも自然言語でのビジネスルールの記述を可能にしている訳ではない。例えば、RedHat社が提供するJBossと呼ばれる製品では、自然言語でビジネスルールを記述することができないため、DRL言語でビジネスルールを記述する必要がある。このため、JRules等の製品で使用するために自然言語で記述されたビジネスルールをJBossで使用するためには、DRL言語への変換が必要となるが、斯かる言語変換を手作業で行うには、多大な労力及びコストを必要とする。
そこで、本発明は、自然言語で記述されたビジネスルール文をDRL言語文に自動変換する装置、方法、及びプログラムを提案することを課題とする。
上記の課題を解決するため、本発明に係る言語変換装置は、自然言語で記述された一つ以上の構文要素から成るビジネスルール文と、DRL言語文との対応関係を構文単位で定義する構文定義情報と、ビジネスルール文の構文要素に含まれるが、構文解析の指標とならない要素変数と、DRL言語文の要素変数との対応関係を定義する変換情報とを記憶する記憶手段と、ビジネスルール文の文字列と、構文定義情報に定義されている各構文を構成する構文要素の文字列とを比較することにより、ビジネスルール文の構文が、構文定義情報に定義されている複数の構文のうちどの構文に一致するかを判定する構文解析手段と、変換情報を参照して、ビジネスルール文の要素変数を前記DRL言語文の要素変数に変換するとともに、ビジネスルール文の要素変数以外の構文要素を、ビジネスルール文の構文に一致するとの判定がなされた構文を有するDRL言語文の構文要素に変換することにより、ビジネスルール文をDRL言語文に変換する変換手段と、を備える。斯かる構成によれば、自然言語で記述されたビジネスルール文をDRL言語文に自動変換することができる。
構文定義情報は、例えば、複数種類の基本的な構文の組み合わせによりビジネスルールをDRL言語文に変換できるように類型化してもよい。本発明者の鋭意努力により、複数種類の基本的な構文の組み合わせによりビジネスルールをDRL言語文に変換できることが判明した。これにより、言語変換処理を簡略化することができる。
構文定義情報は、制御構文をその種類に応じて区別して定義する文字列の情報を含むとともに、ビジネスルール文に記述されている特定の構文をそれが記述されている制御構文の種類に応じて異なるDRL言語文に変換することを定義してもよい。構文解析手段は、ビジネスルール文の特定の構文に、制御構文を定義する文字列が記述されているか否かを判定し、その判定結果が肯定の場合に、変換手段は、特定の構文を制御構文の種類に応じて異なるDRL言語文に変換してもよい。これにより、制御構文の種類に応じて柔軟な言語変換が可能になる。
ビジネスルール文は、複数の構文がネストされた入れ子構造を含んでもよい。構文解析手段は、入れ子構造の全体の構文を解析し、変換手段は、入れ子の内側の構文から優先的に前記DRL言語文への変換を行ってもよい。これにより、複雑な入れ子構造を適切に解析して言語変換することができる。
本発明に係るコンピュータにより実行される言語変換方法は、自然言語で記述された一つ以上の構文要素から成るビジネスルール文と、DRL言語文との対応関係を構文単位で定義する構文定義情報に定義されている各構文を構成する構文要素の文字列と、ビジネスルール文の文字列とを比較することにより、ビジネスルール文の構文が、構文定義情報に定義されている複数の構文のうちどの構文に一致するかを判定するステップと、ビジネスルール文の構文要素に含まれるが、構文解析の指標とならない要素変数と、DRL言語文の要素変数との対応関係を定義する変換情報を参照してビジネスルール文の要素変数をDRL言語文の要素変数に変換するとともに、ビジネスルール文の要素変数以外の構文要素を、ビジネスルール文の構文に一致するとの判定がなされた構文を有するDRL言語文の構文要素に変換することにより、ビジネスルール文をDRL言語文に変換するステップと、を備える。この方法によれば、自然言語で記述されたビジネスルール文をDRL言語文に自動変換することができる。
本発明に係る言語変換プログラムは、コンピュータに、自然言語で記述された一つ以上の構文要素から成るビジネスルール文と、DRL言語文との対応関係を構文単位で定義する構文定義情報に定義されている各構文を構成する構文要素の文字列と、前記ビジネスルール文の文字列とを比較することにより、ビジネスルール文の構文が、構文定義情報に定義されている複数の構文のうちどの構文に一致するかを判定するステップと、ビジネスルール文の構文要素に含まれるが、構文解析の指標とならない要素変数と、DRL言語文の要素変数との対応関係を定義する変換情報を参照してビジネスルール文の要素変数をDRL言語文の要素変数に変換するとともに、ビジネスルール文の要素変数以外の構文要素を、ビジネスルール文の構文に一致するとの判定がなされた構文を有するDRL言語文の構文要素に変換することにより、ビジネスルール文をDRL言語文に変換するステップと、を実行させるためのものである。
本発明によれば、自然言語で記述されたビジネスルール文をDRL言語文に自動変換することができる。
本実施形態に係る言語変換装置の構成を示すブロック図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理を説明するための図である。 本実施形態に係る言語変換処理の流れを示すフローチャートである。 本実施形態に係る言語変換処理の流れを示すフローチャートである。 本実施形態に係る言語変換処理の流れを示すフローチャートである。 本実施形態に係る言語変換処理の流れを示すフローチャートである。 本実施形態に係る言語変換処理の流れを示すフローチャートである。 本実施形態に係る言語変換処理の流れを示すフローチャートである。
以下、各図を参照しながら本発明の実施形態について説明する。
図1は本実施形態に係る言語変換装置10の構成を示すブロック図である。言語変換装置10は、自然言語で記述されたビジネスルール文をDRL言語文に変換するためのコンピュータである。本明細書では、自然言語で記述されたビジネスルール文を「BRMS自然言語文」と称する。言語変換装置10は、CPU11、RAM12、ROM13、入力インタフェース14、出力インタフェース15、及び記憶装置16を備えている。記憶装置16は、コンピュータ読み取り可能な記録媒体(例えば、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD等の可搬媒体、ハードディスクドライブ又はソリッドステートドライブ等の記憶資源)である。記憶装置16には、言語変換プログラム20、構文定義情報30、及び変換情報40が格納されている。言語変換プログラム20は、BRMS自然言語文をDRL言語文に変換するためのコンピュータプログラムである。CPU11と言語変換プログラム20との協働により実現される言語変換機能は、言語変換ツール又は言語変換エンジンと呼ばれる。
言語変換プログラム20は、その主プログラムの中でサブルーチンとして呼び出されて、読み込み処理(図17に示すステップ102〜104)及び言語変換処理(図18に示すステップ105)を実行するための複数のソフトウェアモジュールを備える。言語変換処理(図18に示すステップ105)を実行するソフトウェアモジュールは、BRMS自然言語文を読み込む処理(図18に示すステップ106)を実行するサブモジュール、BRMS自然言語文の分割処理(図18に示すステップ107)を実行するサブモジュール、エラー判定(図18に示すステップ108)を実行するサブモジュール、エラー情報出力処理(図18に示すステップ109)を実行するサブモジュール、及びDRL言語文作成処理(図18に示すステップ110)を実行するサブモジュールを含む。BRMS自然言語文の分割処理(図18に示すステップ107)を実行するサブモジュールは、図19乃至図22に示す各ステップを実行する下位モジュールを含む。図17乃至図22に示す各ステップの詳細については、後述する。但し、各ステップの機能は、必ずしもソフトウェアモジュールによって実現される必要はなく、その一部又は全部は、言語変換装置10のハードウェアモジュールによって実現されてもよい。
構文定義情報30は、BRMS自然言語文を構文単位でDRL言語文に変換するための複数の構文を定義する。変換情報40は、BRMS自然言語文の要素変数をDRL言語文の要素変数に変換するための情報を定義する。変換情報40は、例えば、BRMS自然言語文のクラス変数からDRL言語文のクラス変数への変換を定義するクラス定義情報41、BRMS自然言語文のグローバル変数からDRL言語文のグローバル変数への変換を定義するルール定数情報42、及びBRMS自然言語文のメソッドからDRL言語文のメソッドへの変換を定義するルールメソッド情報43を含む。クラス定義情報41は、クラス名と、クラスを構成する属性を合わせたクラスそのものの情報とを定義したものである。クラス名は、クラス定義情報41に定義されているクラス名称である。ルール定数情報42は、BRMS自然言語定数名、DRL言語定数名、及び定数の型を対応付けたものである。ルールメソッド情報43は、BRMS自然言語関数名、DRL言語関数名、及び関数の型を対応付けたものである。
CPU11は、言語変換プログラム20を解釈及び実行することにより、構文定義情報30に基づいてBRMS自然言語文の構文を解析し、変換情報40を参照してBRMS自然言語文をDRL言語文に変換する処理を行う。RAM12は、CPU11のワークエリアとして機能し、言語変換に必要な情報(例えば、構文定義情報30や変換情報40等)を読み込む。ROM13は、CPU11のBIOS等のプログラムを格納する不揮発性メモリである。入力インタフェース14は、BRMS自然言語文を入力するためのインタフェースである。出力インタフェース15は、BRMS自然言語文から変換されたDRL言語文を出力するためのインタフェースである。
次に、図2乃至図8を参照しながら言語変換処理の概略について説明する。
構文定義情報30は、BRMS自然言語文からDRL言語文へのあらゆる変換パターンを構文単位で定義する。一つの構文は、複数の構文要素から成る文であり、構文要素には、要素変数が含まれる。要素変数には、クラス変数、グローバル変数、メソッド、文字列、数値、日付、配列、及び数式が含まれる。構文要素と要素変数は、どちらも、構文を構成する要素として共通する側面を有するが、構文要素は、構文解析の指標となるのに対し、要素変数は、構文解析の指標とならない点で両者は異なる側面を有している。構文定義情報30は、キーワード、キー構文を示すフラグ、BRMS自然言語の構文、構文の文字数、構文を適用する制御構造の範囲、制御構造の指定、構文に対する特殊処理(例えば、図14に示す変換処理等)、オブジェクト用のDRL言語文、変数用のDRL言語文、構文要素の数、及び構文要素の内容の情報を含む。「キーワード」は、構文解析の指標となる構文要素の文字列を意味し、具体的には、論理演算子(例えば、図7に示す「および」、「または」、「(否定)」、及び「()」)並びに制御構造(例えば、図8に示す「定義部」、「条件部」、及び「処理部」)を含む。「文字列」は、構文要素を構成する単位であり、社会通念上文字として認識されているもの(例えば、漢字、平仮名、片仮名、アルファベット、ローマ字、ギリシャ文字等)に限らず、数字や記号等を含む。「キー構文を示すフラグ」は、キーワードの使用が定義された構文を識別するための識別情報である。「構文要素の内容の情報」は、BRMS自然言語文を構成する構文要素及び要素変数の情報である。構文を構成する構文要素及び要素変数のそれぞれの配列順やその文字列は、構文定義情報30において予め定められているものとする。従って、構文定義情報30で定義されていない構文は、DRL言語文への変換が不能となるため、変換エラーとなる。図2は、構文定義情報30により定義される言語変換の一例を示しており、BRMS自然言語の構文「$A$は$B$と同一である」は、DRL言語の構文「$A$==$B$」に変換される。ここで、$A$及び$B$は、それぞれ要素変数である。説明の便宜上、自然言語の一例として、日本語を例示しているが、人間が理解できる言語であれば、特に限定されるものではなく、例えば、英語、中国語、ドイツ語、フランス語等でもよい。
構文定義情報30により定義されるBRMS自然言語文の構文「$A$は$B$と同一である」は、図3に示すように、複数の構文要素に分割される。一方、図4は、言語変換の対象となる具体的なBRMS自然言語文を示しており、複数の構文要素に分割される。CPU11は、言語変換の対象となるBRMS自然言語文の構文と構文定義情報30で定義される構文とを比較することにより、言語変換の対象となるBRMS自然言語文の構文が、構文定義情報30により定義される構文「$A$は$B$と同一である」に一致するものと判定する。構文の一致が判定されると、図5に示すように、CPU11は、「契約者情報(現在)の契約者タイプコード」が要素変数$A$に対応し、“01”が要素変数$B$に対応するものと判定する。「契約者情報(現在)の契約者タイプコード」のように、「…の〜」という形式で記述される要素変数は、クラス変数であることを示しており、この例では、「契約者情報(現在)」は、「契約者タイプコード」の親クラス(スーパークラス)である。CPU11は、クラス定義情報41を参照することにより、クラス変数の変換を行う。「契約者情報(現在)の契約者タイプコード」は、「契約者情報(現在)」の子クラス(サブクラス)である「契約者タイプコード」の取得を指示するメソッドget Contractor Type Code()を用いて、$契約者情報_現在_get Contractor Type Code()に変換される。メソッドの引数は、全種類の要素変数を指定することができる。一方、“”で囲まれた字句は、「文字列」として認識される。CPU11は、文字列である“01”をそのまま“01”に変換する。このような処理を経て、図4に示す自然言語で記述されたビジネスルール文は、図6に示すDRL言語文に変換される。
なお、要素変数がグローバル変数である場合には、ルール定数情報42を参照してグローバル変数の変換が行われ、要素変数がメソッドある場合には、ルールメソッド情報43を参照してメソッドの変換が行われる。要素変数が数値、日付、配列、又は数式である場合には、そのまま変換される。ここで、日付は、YYYY/MM/DD形式、又はYYYY年、MM月、DD日の形式を有する。配列は、{a,b,…,c}の形式を有し、a,b,…,cとして全種類の要素変数を指定することができる。数式は、数字と算術演算子との組み合わせから成り、算術演算子として、「+」、「−」、「×」、「÷」、()を指定することができる。
BRMS自然言語文、及びDRL言語文は、共に、論理演算子で連結された論理式として記述することが可能であるから、CPU11は、論理演算子と論理式とを区別して言語変換を行う。例えば、図7に示すように、論理演算子の変換も構文定義情報30に定義される。また、BRMS自然言語文は、複数種類の制御構文(例えば、「定義部」、「条件部」、「処理部」)を有してもよい。CPU11は、制御構文の種類を区別して、言語変換を行う。例えば、図8に示すように、制御構文の変換も構文定義情報30に定義される。より具体的には、構文定義情報30は、制御構文をその種類に応じて区別して定義する文字列の情報を含むとともに、BRMS自然言語文に記述されている特定の構文をそれが記述されている制御構文の種類に応じて異なるDRL言語文に変換することを定義してもよい。
BRMS自然言語文は、複数の構文がネストされた入れ子構造を含んでもよい。CPU11は、入れ子構造の全体の構文を解析し、入れ子の内側の構文から優先的にDRL言語文への変換を行う。
なお、BRMS自然言語文の区切れは、論理演算子、制御構文、句読点等のキーワードで判定されるため、一つの構文の中の任意の箇所で改行することができる。
構文定義情報30は、複数種類の基本的な構文の組み合わせによりBRMS自然言語文をDRL言語文に変換できるように類型化されている。基本的な言語変換例の一例について、図9乃至図16を参照しながら説明する。
図9に示すように、構文定義情報30は、BRMS自然言語文の要素変数の中で「この」が付いた要素変数を“this”に変換するように定義してもよい。例えば、BRMS自然言語文「設定:あるAを回線情報とする。ここで、Bはこの回線情報と同一である」は、DRL言語文「$回線情報:A(B==this)」に変換される。
図10に示すように、構文定義情報30は、要素変数の型に応じてBRMS自然言語文を異なるDRL言語文に変換するように定義してもよい。例えば、要素変数が整数型の変数である場合に、BRMS自然言語文「AはBと同一である」は、DRL言語文「A==B」に変換される。一方、要素変数がオブジェクトである場合に、BRMS自然言語文「AはBと同一である」は、DRL言語文「A.equals(B)」に変換される。但し、オブジェクトAがnullである場合は、Exceptionとなるため、図11に示すように、A!=nullを追加する。
図12に示すように、構文定義情報30は、否定がかかるBRMS自然言語文の全体を!()で囲んでDRL言語文に変換するように定義してもよい。例えば、BRMS自然言語文「数値条件:Aがない」は、DRL言語文「!(A==0)」に変換される。
図13に示すように、構文定義情報30は、BRMS自然言語文に記述されている特定の構文をそれが記述されている制御構文の種類に応じて異なるDRL言語文に変換するように定義してもよい。例えば、BRMS自然言語文「AはBと同一である」は、それが定義部に記述されている場合に、DRL言語文「A==B」に変換される。この言語変換は、要素変数がオブジェクトであっても適用されるため、図10に示す言語変換の例外である。一方、BRMS自然言語文「AはBと同一である」は、それが条件部に記述されている場合に、DRL言語文「A.equals(B)」に変換される。
図14に示すように、構文定義情報30は、BRMS自然言語文の配列要素を「||」で連結してDRL言語文に変換するように定義してもよい。例えば、BRMS自然言語文「Aは{“UD,”“UH”}の1つである」は、それが定義部に記述されている場合に、DRL言語文「A in (“UD,”“UH”)」に変換される。一方、BRMS自然言語文「Aは{“UD,”“UH”}の1つである」は、それが条件部に記述されている場合に、DRL言語文「A.equals(“UD”)||A.equals(“UH”)」に変換される。
図15に示すように、構文定義情報30は、BRMS自然言語で記述されたメソッドをDRL言語で記述されたメソッドへ変換するように定義してもよい。BRMS自然言語では、メソッドを《》で囲み、その引数を<>で囲んで指定することができる。メソッドの引数は、全種類の要素変数を指定することが可能である。例えば、BRMS自然言語文「メソッド:《文字列取得》<A>の<1>文字目から<1>文字目までは“1”と同一である」は、DRL言語文「rule Function. call Sub String(A.1,1).equals (“1”)」に変換される。
図16に示すように、構文定義情報30は、一つの制御構造に記述されたBRMS自然言語文の特定の構文を複数の異なる制御構造に分けた上でDRL言語文に変換するように定義してもよい。例えば、BRMS自然言語文の数値条件は、条件部に記載されるが、DRL言語文ではこれを定義部と条件部に分けて記載する。具体的には、条件部に記載されるBRMS自然言語文「数値条件:Aがない。ここでAの属性はBの属性と同一である」は、定義部に記載されるDRL言語文「$var1:Long () from accumulate ($a1:A(A.属性!=null&&A.属性.equals (B), count ($a1)))」と、条件部に記載されるDRL言語文「$var1==0」とに分けて変換される。なお、定義部に記載されるDRL言語文は、関数accumulateの引数として関数countを用いる入れ子構造を有しており、入れ子の内側の引数から優先的にDRL言語文への変換が行われる。このような入れ子構造では、CPU11は、入れ子構造全体の構文を解析した後に、入れ子の内側から外側へ順次言語変換する。
次に、図17乃至図22を参照しながら言語変換処理の詳細について説明する。
ステップ101では、BRMS自然言語文からDRL言語文への言語変換の指示がオペレータにより入力される。
ステップ102では、CPU11は、各クラス定義について記憶装置16からクラス定義情報41を読み込む処理102Aを再帰的に繰り返す。
ステップ103では、CPU11は、各ルール定数について記憶装置16からルール定数情報42を読み込む処理103Aを再帰的に繰り返す。
ステップ104では、CPU11は、各ルールメソッドについて記憶装置16からルールメソッド情報43を読み込む処理104Aを再帰的に繰り返す。
ステップ105では、CPU11は、入力フォルダに格納されている各設計書について言語変換処理(ステップ106〜ステップ110)を行う。ここで、設計書とは、言語変換対象となるBRMS自然言語文を意味する。ステップ105の初期設定として、CPU11は、エラー件数をカウントするパラメータの値をゼロにリセットし、パッケージを管理するパラメータの値をゼロにリセットし、数値条件を管理するパラメータの値をゼロにリセットし、数値条件の状態を管理するパラメータを“false“にリセットし(数値条件を処理しているきは、“true“になる)、定義部で宣言した変数の数を管理するパラメータの値をゼロにリセットする。
ステップ106では、CPU11は、各BRMS自然言語文について入力インタフェース14からBRMS自然言語文を読み込む処理106Aを再帰的に繰り返す。
ステップ107では、CPU11は、構文定義情報30及び変換情報40を用いて、BRMS自然言語文を分割する処理を行い、BRMS自然言語情報、構文分割情報、及び要素変数情報を作成する。BRMS自然言語情報は、BRMS自然言語文の内容、行位置、列位置、数値条件内の文を判断するフラグ、BRMS自然言語文を構文分割した分割数、及びBRMS自然言語文を構文分割した内容の情報を含む。構文分割情報は、構文定義情報の番号、キー又は構文、BRMS自然言語文の内容、変換結果であるDRL言語文、BRMS自然言語文で使用している変数要素の数、及びBRMS自然言語文で使用している変数要素の内容の情報を含む。要素変数情報は、$A$や$B$等の構文定義情報の要素変数、要素変数の種別(関数、数式、配列、文字列、数値、null、変数等)、要素変数の型(文字列、整数等)、BRMS自然言語文の要素変数の内容、及び変換結果であるDRL言語文の要素変数の内容の情報を含む。ステップ107の詳細については、後述する。
ステップ108では、CPU11は、エラーの有無を判定する。
エラーがあるときは、CPU11は、エラー情報を出力する(ステップ109)。エラーがないときは、CPU11は、DRL言語文作成処理を行う(ステップ110)。
ステップ110では、CPU11は、出力ファイルをオープンし(ステップ111)、ヘッダ部を出力し(ステップ112)、DRL言語構文出力処理(ステップ113)を行い、出力ファイルをクローズする(ステップ114)。ステップ112では、CPU11は、固定のimport文と、パッケージ情報と、Rule Functionのimport文と、Rule文とをヘッダ部に出力し、Rule Functionをglobal宣言する。ステップ113では、CPU11は、数値条件の条件定義を出力する処理113Aを各数値条件について再帰的に繰り返し、更にDRL言語構文を出力する処理113Bを構文分割情報について再帰的に繰り返す。なお、処理113A,113Bは、BRMS自然言語情報について再帰的に繰り返し実行される。
BRMS自然言語文を分割するステップ107では、CPU11は、BRMS自然言語文について、ステップ201〜ステップ205を再帰的に繰り返す。
ステップ201では、CPU11は、BRMS自然言語文の先頭からキーワードマッチングを行う。キーワードマッチングでは、BRMS自然言語文を構成する文字列とキーワードとを比較し、キーワードの文字列に一致する文字列がBRMS自然言語文に存在するか否かが解析される。「キーワード」は、構文解析の指標となる構文要素の文字列を意味し、具体的には、論理演算子及び制御構造を含む。BRMS自然言語文にキーワードが存在する場合は、構文定義情報30を用いて構文分割情報を作成する(ステップ202)。構文分割情報は、構文定義の番号、解析対象のBRMS自然言語文がキー構文であるか否かを示す情報、構文定義情報30に定義されているBRMS自然言語文、BRMS自然言語文に対応するDRL言語構文(オブジェクト用の構文)の情報を含む。なお、「構文定義の番号」は、各構文を識別するために割り当てられた番号であり、この番号は、構文定義情報30に規定されている。「キー構文」とは、「キーワード」の使用が定義された構文を意味する。CPU11は、BRMS自然言語文の特定の構文に、制御構文を定義する文字列が記述されているか否かを判定し、その判定結果が肯定の場合に、特定の構文を制御構文の種類に応じて異なるDRL言語文に変換してもよい。一方、BRMS自然言語文にキーワードが存在しない場合は、CPU11は、キーワード以外の構文要素とBRMS自然言語文とを比較してBRMS自然言語文を解析するステップ204と、要素変数を変換してDRL言語構文を作成するステップ205とを行う。ステップ204,205の詳細については、後述する。
ステップ202又はステップ205が終了すると、CPU11は、数値条件の構文であれば、数値条件情報を設定する(ステップ203)。数値条件情報は、数値条件、数値条件内の構文数、及びBRMS自然言語文の管理番号の情報を含む。
ステップ204では、CPU11は、BRMS自然言語文と構文要素とを比較し、構文分割情報を作成する処理204Aを構文要素と構文定義情報のそれぞれについて再帰的に繰り返す。構文分割情報は、構文定義の番号、解析対象のBRMS自然言語文がキー構文であるか否かを示す情報、BRMS自然言語文、要素変数数(一つのBRMS自然言語文に含まれている要素変数の個数)、及び要素変数の情報を含む。
ここで、処理204Aの詳細について説明する。処理204Aの解析対象となるBRMS自然言語文は、「キーワード」を含まないため、例えば、図4に示すような構文を有している。CPU11は、解析対象となるBRMS自然言語文の文字列と、構文定義情報30に定義されている各構文を構成する構文要素の文字列(例えば、“は”及び“と同一である”の文字列)とを比較し、解析対象となるBRMS自然言語文の構文が、構文定義情報30に定義されている複数の構文のうちどの構文に一致するかを判定する。このとき、CPU11は、解析対象となるBRMS自然言語文を構成する文字列のうち、構文定義情報30に定義されている各構文を構成する構文要素(要素変数を除く)の文字列に一致しない文字列を「要素変数」と見做す。このような処理を経て、CPU11は、解析対象となる、図4に示すBRMS自然言語文の構文が、“は”及び“と同一である”の文字列を構文要素として有するものと判定すると、当該解析対象となるBRMS自然言語文の構文が、構文定義情報30に定義されている、図3に示す構文に一致するものと判定する。構文の一致が判定されると、CPU11は、図5に示すように、解析対象となるBRMS自然言語文の構文要素である「契約者情報(現在)の契約者タイプコード」が要素変数$A$に対応し、解析対象となるBRMS自然言語文の構文要素である“01”が要素変数$B$に対応するものと判定する。CPU11は、構文定義情報30を参照することにより、「契約者情報(現在)の契約者タイプコード」がクラス変数であることを確認すると、クラス定義情報41に基づいて、「契約者情報(現在)の契約者タイプコード」を$契約者情報_現在_get Contractor Type Code()に変換する。一方、“”で囲まれた字句は、「文字列」として認識される。CPU11は、文字列である“01”をそのまま“01”に変換する。このような処理を経て、図4に示す自然言語で記述されたビジネスルール文は、図6に示すDRL言語文に変換される。
ステップ205では、CPU11は、構文要素が$Bom$の場合に、クラス定義からクラス名を取得し、クラスのパッケージを管理する処理205Aと、構文要素が$Bom$以外の場合に、BRMS自然言語文の構文要素を変換する処理205Bとを構文要素について再帰的に繰り返す。ここで、$Bom$は、クラス名としてクラス定義情報41に定義されている。クラスは、パッケージと呼ばれる情報を有しており、処理205Aでは、そのパッケージの管理が行われる。要するに、解析対象となるBRMS自然言語文の構文要素のうち、$Bom$については、処理205Aが実行され、$Bom$以外については、処理205Bが実行される。処理205Bの詳細については後述する。
ステップ205A,205Bが終了すると、CPU11は、BRMS自然言語文が設定の場合に、設定変数情報を管理する(ステップ205C)。設定変数情報は、定義部で設定した変数(BRMS自然言語文で使用する変数)、元の変数名(クラスの和名)、及びクラス(クラスの英名)の情報を含む。
ステップ205Cが終了すると、CPU11は、構文要素が配列の場合に、配列要素を分解して“or”で連結する処理205Dと、構文要素が配列以外の場合に、DRL言語文の要素変数を変換内容で置換する処理205Eとを各構文要素について再帰的に繰り返す。
ステップ205D及びステップ205Eが終了すると、CPU11は、BRMS自然言語文が否定である場合に、DRL言語文を“!(”と“)”とで括る(ステップ206F)。
ステップ206Fが終了すると、CPU11は、数値条件情報の数値条件に構文定義情報のオブジェクト用構文を定義し、構文定義情報のDRL言語構文に構文定義情報の変数用構文を定義する(ステップ205G)。
BRMS自然言語文の構文要素を変換する処理205Bでは、CPU11は、構文要素の種類に応じた変換処理を行う。構文要素が関数の場合、CPU11は、BRMS自然言語関数変換処理301を行う。この処理301では、CPU11は、≪≫内を関数名として保持し(ステップ301A)、<>内を引数として内部配列に保持し(ステップ301B)、ルールメソッド情報43を参照して関数名を変換する(ステップ301C)。但し、<>はネストするので、ステップ301Bでは、対応する括弧までを引数として処理する。ステップ301Cが終了すると、CPU11は、BRMS自然言語を要素変換する処理301Dと、変換結果を“,”で連結して引数を作成する処理301Eとを各引数について再帰的に繰り返す。
一方、構文要素が日付の場合、CPU11は、日付の形式であることを確認し、これを文字列として変換する(ステップ302)。構文要素が数式の場合、CPU11は、BRMS自然言語数式変換処理303を行う。この処理303では、CPU11は、算術演算子で連結された要素変数を切り離し(ステップ303A)、切り出した要素変数について、要素変換をし(ステップ303B)、変換結果を演算子で連結して数式を作成する処理303Cを再帰的に繰り返す。構文要素が配列の場合、CPU11は、{}を削除する(ステップ304)。配列は、{}で囲まれた要素から成る。構文要素が文字列の場合、CPU11は、“”を削除する(ステップ305)。文字列は、“”で囲まれた文字列から成る。構文要素が数値の場合、CPU11は、そのまま変換する(ステップ306)。構文要素が“null”の場合、CPU11は、そのまま変換する(ステップ307)。構文要素が変数の場合、CPU11は、BRMS自然言語変数変換処理308を行う。この処理308では、BRMS自然言語文を「の」で分割して要素変数を切り出す(ステップ308A)。そして、CPU11は、切り出した要素変数の頭に“$”を追加する処理308Bと、2番目以降の要素変数についてクラス定義を参照してクラス属性に変換する処理308Cとを各要素変数について再帰的に繰り返す。但し、処理308Bでは、「この」が付いた要素変数は“this”に変換する。また、処理308Cでは、取得したクラス属性がオブジェクト型の場合は、getter参照とする。
本実施形態によれば、自然言語で記述されたビジネスルール文をDRL言語文に自動変換することができる。また、複数種類の基本的な構文の組み合わせによりビジネスルールをDRL言語文に変換することにより、言語変換処理を簡略化することができる。また、特定の構文が記述されている制御構文の種類に応じて異なるDRL言語文に変換することにより、多様な変換処理を可能にできる。また、ビジネスルール文の入れ子構造の全体の構文を解析し、入れ子の内側の構文から優先的にDRL言語文への変換を行うことにより、複雑な入れ子構造を適切に解析して言語変換することができる。
なお、言語変換プログラム20は、言語変換装置10から伝送媒体を介して、或いは伝送媒体中の伝送波を介して他のコンピュータシステムに伝送されてもよい。伝送媒体は、インターネット等のネットワークや電話回線等の通信回線のように情報を伝送する機能を有する媒体のことをいう。
10…言語変換装置 11…CPU 12…RAM 13…ROM 14…入力I/F 15…出力I/F 16…記憶装置 20…言語変換プログラム 30…構文定義情報 40…変換情報 41…クラス定義情報 42…ルール定数情報 43…ルールメソッド情報

Claims (6)

  1. 自然言語で記述された一つ以上の構文要素から成るビジネスルール文と、DRL言語文との対応関係を構文単位で定義する構文定義情報と、前記ビジネスルール文の構文要素に含まれるが、構文解析の指標とならない要素変数と、前記DRL言語文の要素変数との対応関係を定義する変換情報とを記憶する記憶手段と、
    前記ビジネスルール文の文字列と、前記構文定義情報に定義されている各構文を構成する構文要素の文字列とを比較することにより、前記ビジネスルール文の構文が、前記構文定義情報に定義されている複数の構文のうちどの構文に一致するかを判定する構文解析手段と、
    前記変換情報を参照して、前記ビジネスルール文の要素変数を前記DRL言語文の要素変数に変換するとともに、前記ビジネスルール文の要素変数以外の構文要素を、前記ビジネスルール文の構文に一致するとの判定がなされた構文を有する前記DRL言語文の構文要素に変換することにより、前記ビジネスルール文を前記DRL言語文に変換する変換手段と、
    を備える言語変換装置。
  2. 請求項1に記載の言語変換装置であって、
    前記構文定義情報は、複数種類の基本的な構文の組み合わせにより前記ビジネスルールを前記DRL言語文に変換できるように類型化されている、言語変換装置。
  3. 請求項1又は請求項2に記載の言語変換装置であって、
    前記構文定義情報は、制御構文をその種類に応じて区別して定義する文字列の情報を含むとともに、前記ビジネスルール文に記述されている特定の構文をそれが記述されている制御構文の種類に応じて異なるDRL言語文に変換することを定義しており、
    前記構文解析手段は、前記ビジネスルール文の特定の構文に、前記制御構文を定義する文字列が記述されているか否かを判定し、その判定結果が肯定の場合に、前記変換手段は、前記特定の構文を前記制御構文の種類に応じて異なるDRL言語文に変換する、言語変換装置
  4. 請求項1乃至請求項3のうち何れか1項に記載の言語変換装置であって、
    前記ビジネスルール文は、複数の構文がネストされた入れ子構造を含み、
    前記構文解析手段は、前記入れ子構造の全体の構文を解析し、
    前記変換手段は、前記入れ子の内側の構文から優先的に前記DRL言語文への変換を行う、言語変換装置。
  5. コンピュータにより実行される言語変換方法であって、
    自然言語で記述された一つ以上の構文要素から成るビジネスルール文と、DRL言語文との対応関係を構文単位で定義する構文定義情報に定義されている各構文を構成する構文要素の文字列と、前記ビジネスルール文の文字列とを比較することにより、前記ビジネスルール文の構文が、前記構文定義情報に定義されている複数の構文のうちどの構文に一致するかを判定するステップと、
    前記ビジネスルール文の構文要素に含まれるが、構文解析の指標とならない要素変数と、前記DRL言語文の要素変数との対応関係を定義する変換情報を参照して前記ビジネスルール文の要素変数を前記DRL言語文の要素変数に変換するとともに、前記ビジネスルール文の要素変数以外の構文要素を、前記ビジネスルール文の構文に一致するとの判定がなされた構文を有する前記DRL言語文の構文要素に変換することにより、前記ビジネスルール文を前記DRL言語文に変換するステップと、
    を備える言語変換方法。
  6. コンピュータに、
    自然言語で記述された一つ以上の構文要素から成るビジネスルール文と、DRL言語文との対応関係を構文単位で定義する構文定義情報に定義されている各構文を構成する構文要素の文字列と、前記ビジネスルール文の文字列とを比較することにより、前記ビジネスルール文の構文が、前記構文定義情報に定義されている複数の構文のうちどの構文に一致するかを判定するステップと、
    前記ビジネスルール文の構文要素に含まれるが、構文解析の指標とならない要素変数と、前記DRL言語文の要素変数との対応関係を定義する変換情報を参照して前記ビジネスルール文の要素変数を前記DRL言語文の要素変数に変換するとともに、前記ビジネスルール文の要素変数以外の構文要素を、前記ビジネスルール文の構文に一致するとの判定がなされた構文を有する前記DRL言語文の構文要素に変換することにより、前記ビジネスルール文を前記DRL言語文に変換するステップと、
    を実行させるための言語変換プログラム。
JP2014104875A 2013-07-04 2014-05-21 言語変換装置、言語変換方法、及び言語変換プログラム Active JP5777186B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014104875A JP5777186B2 (ja) 2013-07-04 2014-05-21 言語変換装置、言語変換方法、及び言語変換プログラム
US15/312,443 US9946710B2 (en) 2013-07-04 2015-01-08 Language conversion apparatus, language conversion method, and language conversion program
PCT/JP2015/050385 WO2015178042A1 (ja) 2013-07-04 2015-01-08 言語変換装置、言語変換方法、及び言語変換プログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013140791 2013-07-04
JP2013140791 2013-07-04
JP2014104875A JP5777186B2 (ja) 2013-07-04 2014-05-21 言語変換装置、言語変換方法、及び言語変換プログラム

Publications (2)

Publication Number Publication Date
JP2015028763A JP2015028763A (ja) 2015-02-12
JP5777186B2 true JP5777186B2 (ja) 2015-09-09

Family

ID=52492415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014104875A Active JP5777186B2 (ja) 2013-07-04 2014-05-21 言語変換装置、言語変換方法、及び言語変換プログラム

Country Status (3)

Country Link
US (1) US9946710B2 (ja)
JP (1) JP5777186B2 (ja)
WO (1) WO2015178042A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10809986B2 (en) * 2018-04-16 2020-10-20 Walmart Apollo, Llc System and method for dynamic translation code optimization
CN109460395A (zh) * 2018-09-11 2019-03-12 浙江众合科技股份有限公司 一种信号维护系统数据库多语言信息存储系统及方法
US11200378B2 (en) * 2018-10-11 2021-12-14 International Business Machines Corporation Methods and systems for processing language with standardization of source data
CN110196719B (zh) * 2019-05-20 2023-08-15 中国工商银行股份有限公司 一种基于自然语言处理的业务规则生成方法与系统
US20230325156A1 (en) * 2022-04-08 2023-10-12 Red Hat, Inc. Cross-validating files to facilitate code generation

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322245A (ja) 1999-05-13 2000-11-24 Murata Mach Ltd プログラミング装置および記憶媒体
JP2002207548A (ja) * 2000-11-09 2002-07-26 Tokyo Electric Power Co Inc:The 計算機操作方法及びシステム並びにそのプログラムを記憶した記憶媒体
WO2002088886A2 (en) * 2001-05-01 2002-11-07 Business Layers Inc. System and method for automatically allocating and de-allocating resources and services
US7610575B2 (en) * 2003-01-08 2009-10-27 Consona Crm Inc. System and method for the composition, generation, integration and execution of business processes over a network
US7581255B2 (en) * 2003-01-21 2009-08-25 Microsoft Corporation Systems and methods for licensing one or more data streams from an encoded digital media file
US8209660B2 (en) * 2004-03-15 2012-06-26 Ramco Systems Limited Model driven software
US8615731B2 (en) * 2004-08-25 2013-12-24 Mohit Doshi System and method for automating the development of web services that incorporate business rules
US7562340B2 (en) * 2006-03-23 2009-07-14 International Business Machines Corporation Method for graphically building business rule conditions
US20100131399A1 (en) * 2008-11-27 2010-05-27 Oracle International Corporation Parser for generating financial manager application rules
JP2012008947A (ja) * 2010-06-28 2012-01-12 Hitachi Ltd 営業活動分析方法及び営業支援システム
ES2408054B1 (es) * 2010-11-10 2014-02-28 Telefónica, S.A. Método y sistema para la gestión de máquinas virtuales en entornos de almacenamiento en nube con conexión en red
US20140257935A1 (en) * 2011-09-12 2014-09-11 Mediaspectrum, Inc. System and method for media and commerce management
US9830135B2 (en) * 2014-01-29 2017-11-28 Dell Products L.P. Declarative and pluggable business logic for systems management
US10114861B2 (en) * 2014-01-31 2018-10-30 Dell Products L.P. Expandable ad hoc domain specific query for system management

Also Published As

Publication number Publication date
WO2015178042A1 (ja) 2015-11-26
JP2015028763A (ja) 2015-02-12
US9946710B2 (en) 2018-04-17
US20170091180A1 (en) 2017-03-30

Similar Documents

Publication Publication Date Title
CN110069252B (zh) 一种源代码文件多业务标签自动化分类方法
JP5777186B2 (ja) 言語変換装置、言語変換方法、及び言語変換プログラム
US7251777B1 (en) Method and system for automated structuring of textual documents
US20170192758A1 (en) Method and apparatus for migration of application source code
Semura et al. Ccfindersw: Clone detection tool with flexible multilingual tokenization
US7779049B1 (en) Source level optimization of regular expressions
JPS6375835A (ja) 目的コ−ド、プログラム・リスト及び設計文書を生成する装置
JPH1049530A (ja) データ処理方法
US20210232630A1 (en) Methods and systems for creating networks
KR102565455B1 (ko) 신속한 스크리닝을 위한 도메인-특정 언어 해석기 및 대화형 시각적 인터페이스
CN108595171B (zh) 对象的模型生成方法、装置、设备及存储介质
WO2022226716A1 (zh) 基于深度学习的Java程序内部注释的生成方法及系统
Tateosian Python For ArcGIS
JP4951416B2 (ja) プログラム検証方法、プログラム検証装置
Valenzuela-Escarcega et al. Description of the Odin event extraction framework and rule language
CN113419721B (zh) 基于web的表达式编辑方法、装置、设备和存储介质
WO2016093839A1 (en) Structuring of semi-structured log messages
US7788246B2 (en) Linguistic structure for data flow diagrams
CN113553055A (zh) 一种基于机器学习的可视化图表代码自动生成方法
EP4179421A1 (en) Feedback-driven semi-supervised synthesis of program transformations
Grønmo et al. A collection operator for graph transformation
Moser et al. Automated amortised resource analysis for term rewrite systems
Rajbhoj et al. DocToModel: automated authoring of models from diverse requirements specification documents
Jain et al. Cascaded finite-state chunk parsing for Hindi language
Schroeder et al. Flexible automatic converting of NC programs. A cross-compiler for structured text

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150612

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: 20150630

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150702

R150 Certificate of patent or registration of utility model

Ref document number: 5777186

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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