GSN(Goal Structuring Notation)解説
GSN(Goal Structuring Notation)について。
GSNは「議論」をモデル化、可視化するもので、実用的には安全性(safety case)、ディペンダビリティ(D-Case)などの主張とそれを支持する議論構造を表すことを想定しています。しかし、他にも、数学の証明、ディベート、論文の議論構成、裁判の議論と反論、など広い応用がありそうです。
数学の例
とりあえず、例として、数学的帰納法を表現してみました。簡単な例ですが、「正の整数nに対して、1..nまでの和がn(n+1)/2で計算できる」ことの証明です。
- この証明すべきことを「ゴール」といいます。裁判や特許では主張(クレーム)、といいますね。
- 証明には何通りもありますが、ここでは数学的帰納法に従います。これを「戦略」と言います。これ以外にも取れる戦略はいくつもあります。
- そうすると、ゴールが複数のサブゴールに分けることができます。この場合は、n=1の時を証明すること。もう1つは、n=kで成り立つことを仮定し、n=k+1で成り立つことを証明すること。
- そして、一番下に、証明がきます。これが「ソリューション」です。裁判の議論だと「証拠」ですね。動かぬものです。
さまざまな「主張」と根拠の議論構造を説明する
今は自動車業界のISO26262でも出てくるの「セーフティケース」を産業界のニーズと考えていますが、保証すべき「ケース」、には様々なもの、例えばセキュリティ、ディペンダビリティ、などもあり、それらをアンブレラ的に「保証ケース(Assurance Case)」 と呼びます。
ただ、GSN自身は、「議論構造を示す」だけであって、これで何かが保証されるわけではありません。「ぼくはこう考えたんだ」という議論の道筋を可視化しているだけです。なので、うそがあったり、思い違いがあったりします。
例えばディベートでは、相手の議論をGSNに描いてみて、弱そうな線をつぶしにいく作戦を練る、とか、裁判では、根拠の弱さを指摘する道具にしたり、もできそうです。ディベート戦略を練る道具ですね。
また、特に安全性が必要なシステムでは、「ここまで議論した」という事実を残すことで、実際に問題が起きたときに「ここは想定していなかったのだ」という検証もできることになります。
仕様や資料はどこに?
GSNの一番安定し、よく参照される記述法の仕様は、GSN Community Standard と呼ばれるものです。
- GSN Community Standard (Version 1.0 PDF)
OMGでは、Assurance Caseとして標準化されてきています。ここでは、より意味論が整備されています。
ちなみに、SACM は ARM ともう1つの仕様Software Assurance Evidence Metamodel (SAEM) から成ります。
ところで、、
ところで、GSN の元になっているのは、トゥールミンロジック。議論(ディベート)の基礎です(彼の『議論の技法』を参照してください)。
トゥールミンはイギリス生まれ。これをSafety の議論のモデルとして応用してコンピュータサイエンスの領域に持ち込んだのは、Tim Kelly の功績が大きく、彼もイギリス、現在ヨーク大学教授です。この前会いに行ったのはこのためです。とっても若く、気さくな教授でした。