JPS61279939A - 並列処理方式 - Google Patents

並列処理方式

Info

Publication number
JPS61279939A
JPS61279939A JP60120637A JP12063785A JPS61279939A JP S61279939 A JPS61279939 A JP S61279939A JP 60120637 A JP60120637 A JP 60120637A JP 12063785 A JP12063785 A JP 12063785A JP S61279939 A JPS61279939 A JP S61279939A
Authority
JP
Japan
Prior art keywords
processing
goal
rule
information
question data
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.)
Granted
Application number
JP60120637A
Other languages
English (en)
Other versions
JP2507871B2 (ja
Inventor
Takeshi Sato
健 佐藤
Hideho Masuzawa
増沢 秀穂
Akihiro Itashiki
板敷 晃弘
Koichi Kumon
耕一 久門
Yukio Soma
相馬 行雄
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP60120637A priority Critical patent/JP2507871B2/ja
Publication of JPS61279939A publication Critical patent/JPS61279939A/ja
Application granted granted Critical
Publication of JP2507871B2 publication Critical patent/JP2507871B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 零発、明はいわゆる非決定性プログラムの処理に係り、
特に該処理を複数の処理装置で実行するための並列処理
方式に関する。
人工知能の研究分野等において、例えばPROLOGと
よばれるような非決定性プログラミング言語が使用され
る。
よく知られているように、PROLOGで記述されるプ
ログラムは、ルールとよばれるデータの集まりで構成さ
れ、質問データをルールと照合して、所定の関係を満足
するという意味で質問にマツチするルールを検索し、マ
ツチするルールによって、次の質問データを構成すると
いう処理の反復によって、プログラム実行が進行する。
このような処理を次々に構成される質問について進める
ことにより、次の質問データを構成する処理において、
変数の値が逐次確定するというような過程を経て、最後
に質問が空になったときに、例えば変数に与えられてい
る値によって解が求まる。
1の質問にマツチするルールは一般に複数存在し得るの
で、PROLOGプログラムの実行の全体は、そのよう
な複数のルールがある処理ステップで分枝を有する探索
木を構成し、一般に、1の質問入力について複数組の解
が存在し得る。
従って、複数の処理装置の並列処理によって、複数組の
解の探索を並行に進めることが特に有用である。
〔従来の技術と発明が解決しようとする問題点〕PRO
LOCプログラムは、ルールの集まりとして構成され、
各ルールは下記の形式を有する。
ヘッドニーボディ こ−で、ヘッドは1個の述語、ボディは1個の述語か、
“、”で連結された2個以上の述語からなる述語列(即
ち、述語、述語、−・、述語)、又は空であり、ボディ
が空のルールはヘッドのみの形式とする。
述語は、 述語名(引数、引数1−’l 引数) の形式を持つ。こ\で引数は定数、変数又は構造体であ
り、定数は小文字で始まる文字列、変数は大文字で始ま
る文字列であり、構造体は、構造体温(引数、引数+−
’+ 引数)の形式を持つ。又、述語名及び構造体温は
小文字で始まる文字列である。
例えばfather(youko、5houji)は述
語であって、これを例えばr youkoの父は5ho
ujiである」ことを意味するルールとすることができ
る。又、grandfather(X、Y)ニーfat
her(X+Z)、father(Z、Y)はボディを
持つルールの例であり、例えばヘッドの述語を、「変数
χの祖父は変数Yである」を表すものとしたならば、上
記ルールは「Xの祖父がYということは、×の父がZで
且つ2の父がYである」ことを意味するものとなる。
このようなルールの列で構成されるPROLOGプログ
ラムの実行は、例えば“?−述語列(又は述語)”の形
式で指定される質問を入力することによって開始される
。この質問の質問データである述語列(又は述語)をゴ
ールという。
プログラムの実行は、ゴールと同じ述語名のヘッドを持
つルールを探索し、一致したら両者の引数を比較して、
各対応位置の引数が所定の関係にあれば両者のマツチが
得られたとする。
マツチが得られた場合には、そのルールのボディを新た
にゴールとして上記の処理を進める。
このとき、ボディを構成する述語の引数の変数に既に定
まる値がある場合には、その値によって置換する等の処
理をして、新ゴールとする。
このようにして、ゴールのすべての述語が、ボディの空
なルールとマツチすることにより、解の一つに達するプ
ログラム実行は終わる。
しかし、一つのルールの述語とマツチするルールは複数
個あり得るので、そのような場合にはそのステップで探
索木の分枝が生じ、それぞれの分枝についての個別の実
行が有り得る。
一般にプログラムを複数の処理装置で分担して、並列処
理を実行するために、従来は例えばプログラムを予め分
割しておく。
プログラムの実行開始において、開始入力を受信したl
処理装置が、記憶装置から読み込んだプログラムの制御
情報に基づいて、他の処理装置に各分担法指定した後に
実行に入る。
複数の各処理装置は、処理が自身の分担範囲外での処理
を必要とするステップに達する・と、所要の情報を、そ
の処理を分担する処理装置に転送して処理する。
このような方式を前記のPROLOGプログラムの実行
に適用すれば、一般に処理装置間で授受する情報が多量
になる。又、各処理装置を同程度の負荷にするためには
プログラミングにおいて、適切な″分割を考慮しなけれ
ばならないが、これは極めて困難な作業になる。
通常のプログラムにおいては、別の方式として処理の流
れを並列に進行する複数の流れに分岐する点を、プログ
ラム上で陽に指定する方式があるが、前記のように不確
定な要素を含むPROLOGプログラムの構成に、この
ような分岐方式を適用することも極めて困難である。
〔問題点を解決するための手段〕
前記の問題点は、1以上のルールからなるデータから、
質問データと所定の関係を満足するルールを探索し、該
所定の関係を満足する1のルールと該質問データとに基
づいて次の質問データを構成する処理を反復する処理装
置を複数台有する情報処理システムにおいて、1の処理
装置が1の質問データについての上記処理の、上記探索
の対象とすべき所定条件を有する2以上のルールがある
ことを検出し、該質問データに始まる処理の未処理部分
を実行するための情報を他の処理装置へ通知するように
構成された本発明の並列処理方式によって解決される。
〔作用〕
即ち、前記のようにPROLoIGプロゲラl、の実行
の全体は探索木の構造となるが、その分岐点に到達した
処理装置は分枝を1技づつ処理することになり、一般に
未処理の枝が残される。
従って、分岐において処理を分割するものとすることに
より、並列処理の可能な分割点が、処理の進行に伴って
自動的に設定される。
この分岐点とは、前記PI?0LOGプログラム実行の
説明から明らかにされるように、質問データを構成する
l述語とのマツチを探索する必要のあるルール、より具
体的には質問データの述語名と同じ述語名をヘッドに持
つルール、が複数個ある場合である。
このような分岐点において、未処理の質問データの1組
を分割し、要すれば走査の先頭のルールを指定して、遊
び状態の処理装置に渡せば、その処理装置は以降の処理
を、分割元との通信等の必要無く、すべて単独に実行す
ることができる。
〔実施例〕 第1図は並列処理の可能な情報処理システムの一構成例
を示すブロック図である。
システムは、例えば4台の処理装置1〜4を有し、それ
らの処理装置は例えば同一の構成を有し、それぞれ独立
にプログラムの実行等を処理することができる。
以下において各処理装置1〜4は、それぞれがいわゆる
逐次型計算機であり、且つPROLOGの代表的な処理
系の一つとされる、スタックを使用する方式のPROL
OG処理プログラムを実装して、PROLOGプログラ
ムを実行するようにした場合を一例として説明する。
並列処理制御を行うために、各処理装置は例えば処理装
置1から処理装置2、処理装置2がら処理装置3という
ように、それぞれ隣接の処、理装置への通知線5〜8を
持つ。
又、各処理装置1〜4°は交換機構9と接続し、交換機
構9を経て、それぞれ他の処理装置1〜4の指定の装置
へ情報転送を行うことができる。
又、交換機構9には記憶装置10、入出力装置1)等が
接続され、それらは交換機構9によって、各処理装置1
〜4との間でデータの転送を行うことができる。
PROLOGプログラムの実行は、入出力装置1)から
例えば処理装置1に質問データを入力することにより、
記憶装置10に予め格納されているPROLOGプログ
ラムの所要領域を読み出して処理する方式で開始される
各処理装置1〜4は遊び状態の時に通知線5〜8によっ
て隣接処理装置へ要求メツセージを送り、各処理、装置
1〜4は要求メツセージを受信したときに、分割する処
理があれば、その処理を実行するに必要なデータ等を交
換機構9を経て、要求元の処理装置へ転送することによ
って、処理を分割する。
要求メツセージを受信したときに、分割すべき処理を持
たない処理装置は、受信した要求メソセージを隣接処理
装置へ中継する。
第2図(alは処理装置1〜4の一構成例を示すブロッ
ク図である。
受信部20は交換機構9を経て、入出力装置1)又は他
の処理装置1〜4から、質問データ及び所要の制御情報
を受信して、プログラム実行部21に渡す。
プログラム実行部21は受は取った質問データによって
プログラムを実行し、又借せて処理を分割するための情
報を構成する。
通知制御部22は通知線23.24(第1図の通知線5
〜8に対応)と接続し、通知線23から要求元処理装置
1〜4のアドレスを表示する要求メツセージを受信する
と、これを分割制御部25に通知し、分割制御部25か
ら、分割する処理が無い旨の応答が有ったときは、受信
したメツセージを通知線24により隣接処理装置へ中継
する。
又、プログラム実行部の状態を監視し、遊び状態になる
と、通知線24に自処理装置アドレスを表示する要求メ
ツセージを発信する。
分割制御部25は、通知制御部22から要求メツセージ
を受領すると、プログラム実行部21に分割する処理が
あるか検査し、有無を通知制御部に応答する。
分割する処理がある場合には、所要の情報をプログラム
実行部21から取り出して、送信部26から交換機構9
を経て、要求元処理装置宛に送出する。
又、プログラム実行部21内の該当処理は処理済とする
第2図(blはプログラム実行部21の主要部の一構成
例を示すブロック図である。
処理部27は記憶部2日のデータによってプログラムを
実行する。
記憶部28には、処理部27の制御により記憶装置10
から読み出したプログラムを保持するプログラム域30
、と以下に述べるゴールスタック31、セルスタック3
2、及び作業域33等がある。
ゴールスタック31は、プログラム域30上の次に探索
するルールを指すポインタ(以下において、ルールポイ
ンタという)と、セルスタック32に保持するゴールの
データを指すポインタ (以下に、ゴールポインタとい
う)の対を、いわゆるスタック方式で格納する領域であ
る。
セルスタック32はルールとのマツチ処理を行うゴール
のデータをスタック方式で保持し、処理を完了したゴー
ルは消去されて、未処理のゴールがスタックされる領域
である。
次に、第1表のQUEEN問題として知られる問題を解
< PROLOGプログラムを一例として、処理の分割
を説明する。
このプログラムを実行して、4×4の基盤上におけるチ
ェスのQUEENの可能な配置を求めるために、 ?−
queens((L2,3,4 ] 、XO)という質
問を、例えば処理装置1に入力する。
第1表及び以下の説明において、(2,3,4)及びC
XIY)等は、通常用いられる記法により、リスト構造
のデータを示すものとする。
第2表には、例えば処理装置1で起こり得るプログラム
実行の、進行状況の一部を示す。
第2表において、「ステップ」欄の括弧付数字は実行の
ステップを示し、「ルールポインタ」欄の丸材数字は未
処理部分で最初に探索するルールを指すポインタ値を第
1表の左端の数字で示し、ゴールスタック31に保持さ
れる値に相当する。この欄にポインタ値の無いステップ
は処理を完了し、未処理の分枝の無いステップである。
「セルスタックの内容」欄は、各ステップの処理結果と
して得られる新しいゴールを示し、これは即ち次ステツ
プの処理で使用するゴールの内容になる。
「ルールポインタ」欄にポインタ値があるステップに示
されるゴールの内容は、セルスタック32のスタックに
残され、そのスタック上の位置はルールポインタと対の
ゴールポインタとしてゴールスタック31に保持されて
いる。
第2表のステップ(1)では、入力された質問の述語が
そのま\セルスタック32に置かれ、これとマツチする
ルールが探索される。
その結果、第1表の■のルールとマツチし、そのボディ
が次のゴールになるが、このときルールの変数Xはゴー
ルの定数(1,2,3,4)で置換され、変数Yはゴー
ルの変数XOで置換されるので、第2表のステップ(2
)に示す内容のゴールになる。
このプログラムには述語名queensのヘッドを持つ
ルールは■のみであるので、ステップ(1)のゴールに
関する処理は完了し、ルールポインタの指定は不要であ
る。
ステップ(2)のゴールは■のルールと述語名が一致す
るが、第1項の引数が両者定数で異なるのでマツチせず
、■のルールでマツチして、そのボディが新たなゴール
になる。
こ\で前と同様の方法による変数等の置換が行われ、又
、ボディにおいて始めて現れる変数Uに対応して、ゴー
ル側の変数として変数x1が新たに設定され、×1によ
ってボディのUを置換したものが、ステップ(3)に示
すようにゴールとなる。
ステップ(2)の場合も、次に走査するル°−ルは無い
ので、次のルールのポインタの指定は無い。
ステップ(3)以降では、ゴールに含まれる3個の述語
を順次処理するものとし、まず先頭の述語とマツチする
ルールを探索する。
こ\で、ルール■がマツチし、ルール■はボディを持た
ないので新たなゴールは発生せず、ゴール先頭の述語名
5electの述語は消滅する。
このとき、ゴール全体に1、前と同様の変数の置換等が
実行され、その結果の述語名check及びqueen
slの述語からなるゴールが、ステップ(4)以降の処
理のためのゴールとなる。
ステップ(3)では、プログラム中にヘッドの述語名5
electのルールが、ルール■の次に、■にもあるこ
とを検出し、ルールポインタとして■を指すポインタ、
及びステップ(3]に示すゴールのセルスタック32上
の位置を指すゴールポインタをゴールスタック31に保
持する。
ステップ(4)では、ゴールの先頭の述語とルール■が
マツチし、そのボディの述語checklが元のゴール
の述語checkに代わり、それとゴールの残りの述語
とから、ステップ(5)に示す新たなゴールが構成され
る。
ステップ(5)では、ゴールの述語checklとルー
ル■がマツチする結果、ステップ(6)に示す新たなゴ
ールが生成され、又ヘッドの述語名checklのルー
ルが■にも有ることを検出して、ルール■を指すルール
ポインタと、セルスタック32上の対応するゴールを指
すゴールポインタをゴールスタック31に保持する。
ステップ(6)以降も、前記と同様の要領で処理を進め
るが、その説明は省略する。
例えばこのように処理を進めて一つの解に到達し、別の
解に到達する探索木の他の分枝の処理を進めるには、前
記のステップ(3)及びステップ(5)の説明において
ゴールスタック31に保持したポインタ対、又はその後
の処理で同様にスタックされているポインタ対の中から
何れか1対を取り出して処理す、る。
即ち、そのゴールポインタの指すセルスタック32上の
ゴールについて、ルールポインタの指すルールの走査か
ら開始すれば、他の処理と重複を生しることなく、新た
な分枝の処理を行うことができる。
それらの分枝の処理はそれぞれ独立の処理で、相互の依
存関係は無いから、ゴールスタック31に保持されてい
る何れのポインタ対から先に処理してもよく、並行に処
理してもよい。
従って、第2図(alの分割制御部25は、他の処理装
置からの要求メツセージを通知制御部22から受は取る
と、プログラム実行部21のゴールスタック31を探索
する。
もし、ポインタ対がスタックされていれば、その中の1
対を取り出してゴールスタック31上からは削除しく即
ち、この処理装置としては処理完了とし)、取り出した
ポインタ対によって始まる処理に必要な情報を要求元処
理装置へ送ることにより、他の処理装置への処理の分割
ができる。
要求元処理装置へ転送する情報は、1つのゴールとそれ
に関連して作業域33に保持される変数等の情報(以下
にそれらを一括してゴール情報という)、及び走査を開
始するルールを指定するポインタが一般に必要であるが
、以下に述べるように、ルールを指定するポインタは不
要とすることもできる。
取り出すべきポインタ対の選択等については、以下に述
べるような方式が可能である。
第1の方式において、分割制御部25はゴールスタック
31に最先にスタックされた(即ち、スタックの先頭の
)ポインタ対を取り出し、そのゴールポインタが指すセ
ルスタック32上のゴールに関するゴール情報と、その
ルールポインタの内容とを要求元処理装置に送る。
第2の方式において、分割制御部25は第1の方式の場
合と同様にゴールスタック31に最先にスタックされた
ポインタ対を取り出し、プログラム実行部21にその実
行を1ステツプ進めるように要求する。
前記の例によれば、第2表のステップ(3)に示す内容
に相当するポインタ対が取り出され、プログラム実行部
21がその先の1ステツプを実行することにより、ゴー
ルの先頭の述語5electとルール■とマツチする結
果、次ステツプのゴールとして、5elect(×1.
 (2,3,4) 、χ3)、check(XL O)
queensH(l 1X3) 、  (XI) 、X
O)を得る。
こ\で、ステップ(3)のゴールについては、更に走査
すべきルール(ヘッドが5electのルール)がプロ
グラムに無いので、このステップは完了にしてよい。
分割制御部25は上記で得た新ゴールに関するゴール情
報を要求元処理装置へ送る。この場合に、新ゴールにつ
いてのルールの探索は未だ全く行われていないので、受
取側の処理装置は常にプログラムの先頭から探索する必
要があり、従って探索開始ルールを指定する必要がない
又、この方式によれば、例えば上記のプログラム実行部
21の1ステツプの処理で終了するような分枝を、分割
することを避けることができる。
第3の方式において、分割制御部25はゴールスタック
31に有効なポインタ対が保持されていることを識別す
ると、プログラム実行部21の処理によって最新に得ら
れるゴールについて、そのゴール情報を要求元処理装置
へ送る。この場合も、第2の方式と同様の理由で、ルー
ルのポインタは不要である。
例えば、第2表のステップ(5)の処理中に、要求メツ
セージを受は取った場合には、ステップ(6)に示すゴ
ールの出力を待って、このゴールのゴール情報を送出す
る。従って、プログラム実行部21はステップ(6)の
処理に進むことなく、例えばゴールスタック31に最後
にスタックされている、ステップ(5)に示す情報のポ
インタ対による処理に切り換わる。
第4の方式において、分割制御部25はゴールスタック
31に最近にスタックされたポインタ対を取り出し、こ
れについて第1の方式の場合と同様に処理する。
例えば、ステップ(6)の時点で要求メソセージを受は
取ると、第2表のステップ(5)に示す内容のルールポ
インタとゴール情報を、要求元処理装置へ送る。
〔発明の効果〕
以上の説明から明らかなように本発明によれば、PRO
LOGプログラム等の並列処理が、プログラミング等で
特別の考慮をする必要無く、自動的に効率良い処理分割
により並列処理されるので、情報処理システムの性能、
効率を改善するという著しい工業的効果がある。
【図面の簡単な説明】
第1図は本発明一実施例システムの構成図、第2図は処
理装置の一構成例のブロック図である。 図において、 1〜4は処理装置、  5〜8は通知線、9は交換機構
、    10は記憶装置、1)は入出力装置、   
20は受信部、21はプログラム実行部、22は通知制
御部、25は分割制御部、   26は送信部、27は
処理部、     28は記憶部、30はプログラム域
、  31はゴールスタック、32はセルスタック、 
 33は作業域を示す。 特許出願人 工業技術院長 等々力 達!1 1!1

Claims (5)

    【特許請求の範囲】
  1. (1)1以上のルールからなるデータから、質問データ
    と所定の関係を満足するルールを探索し、該所定の関係
    を満足する1のルールと該質問データとに基づいて次の
    質問データを構成する処理を反復する処理装置を複数台
    有する情報処理システムにおいて、1の処理装置が1の
    質問データについての上記処理の、上記探索の対象とす
    べき所定条件を有する2以上のルールがあることを検出
    し、該質問データに始まる処理の未処理部分を実行する
    ための情報を他の処理装置へ通知するように構成されて
    なることを特徴とする並列処理方式。
  2. (2)上記通知する情報は、上記未処理部分のうち、上
    記検出が全体の処理の実行開始後最先になされた処理を
    実行するための質問データ、及び最初に探索するルール
    を指定する情報からなることを特徴とする特許請求の範
    囲第(1)項記載の並列処理方式。
  3. (3)上記通知する情報は、上記未処理部分のうち、上
    記検出が全体の処理の実行開始後最先になされた処理の
    最初の処理を実行して得た質問データよりなることを特
    徴とする特許請求の範囲第(1)項記載の並列処理方式
  4. (4)上記通知する情報は、上記検出がなされた後の最
    近に得た質問データよりなることを特徴とする特許請求
    の範囲第(1)項記載の並列処理方式。
  5. (5)上記通知する情報は、上記未処理部分のうち、上
    記検出が最近になされた処理を実行するための質問デー
    タ、及び最初に探索するルールを指定する情報からなる
    ことを特徴とする特許請求の範囲第(1)項記載の並列
    処理方式。
JP60120637A 1985-06-05 1985-06-05 並列処理方式 Expired - Lifetime JP2507871B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60120637A JP2507871B2 (ja) 1985-06-05 1985-06-05 並列処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60120637A JP2507871B2 (ja) 1985-06-05 1985-06-05 並列処理方式

Publications (2)

Publication Number Publication Date
JPS61279939A true JPS61279939A (ja) 1986-12-10
JP2507871B2 JP2507871B2 (ja) 1996-06-19

Family

ID=14791147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60120637A Expired - Lifetime JP2507871B2 (ja) 1985-06-05 1985-06-05 並列処理方式

Country Status (1)

Country Link
JP (1) JP2507871B2 (ja)

Also Published As

Publication number Publication date
JP2507871B2 (ja) 1996-06-19

Similar Documents

Publication Publication Date Title
US8713272B2 (en) Point-in-time copies in a cascade using maps and fdisks
EP0279854B1 (en) Binary tree parallel processor
Emam et al. The architectural features and implementation techniques of the multicell CASSM
KR930006383B1 (ko) 병렬처리방법
JPS63226762A (ja) デ−タ処理方式
US10976965B1 (en) Optimization of in-memory processing of data represented by an acyclic graph so that the removal and re-materialization of data in selected nodes is minimized
CN115952201A (zh) 数据查询方法、装置、系统及存储介质
JPS61279939A (ja) 並列処理方式
JPH0721013A (ja) システム生成方式
JPS61279928A (ja) プロログ・プログラム並列処理方式
JPS61279938A (ja) プロログ・プログラム並列処理方式
JPS6219962A (ja) 並列処理方式
JPH04355836A (ja) 仮想計算機間データ転送処理装置
JPS62114032A (ja) 処理分割制御方式
JPH0281158A (ja) 計算機間プログラムオンライン再配置方式
JP3389261B2 (ja) データ駆動型情報処理装置
JP2000222410A (ja) シソーラス検索装置及びシソーラス検索システム
JPS60142744A (ja) 多重言語処理システム
JPS63229528A (ja) 知識ベ−ス処理装置
JPH0581336A (ja) データベース演算処理装置
JPS63233434A (ja) エキスパ−ト・システム
JPH01188938A (ja) 一括パッチ処理方式
JPS63257030A (ja) 文字列検索回路
JPH01258148A (ja) データ転送管理方式
JP2000112771A (ja) 割り込み制御装置、割り込み処理方法、オペレーティングシステム、マイクロコンピュータシステム、情報処理装置、プログラムを記録した記録媒体

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term