■はじめに
本シミュレーションは、典型的な条例のタイプである施設利用に関する条例を対象にして、条例に現れる関係者達の権限ごとの行為とその行為の結果変動する権利・義務にいてトレースするものである。
なお、本シミュレーションで対象とする条例は、結果として、どこの自治体にもある典型的な条例になっているが、これは、法令エディタを使って、自治体資産の利用関する典型的な項目のテンプレートに必要事項を書き込んだものから自動作成された条例である。その条例の法令スクリプトとして、Python形式で記載されたものである。(※スクリプトの完全版は論文公表後に提示する。)
■本シミュレーションの原理
本条例を含め、法令や契約などの多くの法的規定は、権利・義務や法的権限について、その変動を定めている。すなわち、法律要件の充足による状態変化であり、その要件は、人の行為によって実現されるため、一種のオートマトンとして捉えることができ、状態遷移表としても整理することができる。
もちろん、実際に充足するか否かの認定は、ことによっては裁判に至るほど、事実認定が難しくなったり、解釈の多義性が生じる場合もある。しかし、これはあくまでも司法のフェーズである。本シミュレーションは立法フェーズにおいて、もし、その条件が充足されたなら、すなわち、行為が実施されたなら、既定通りの状態変動が起きる、ということを記述しているだけである。つまり、行為の解釈は前提として、終わっている段階以降の状態遷移を実現すれば、それがシミュレーションとなる。
ただし、実際には、複数の登場人物がいて、各人個別のオートマトン定義が単純であるにも関わらず、複数の組合せによって複雑なシミュレーションになることもあり、立法時に容易に予期できない、意図していないケースが検出されることもある。
こうして、登場人物ごとの状態遷移表に従って、複数の登場人物に対し、様々な組合せのタイミングで条例に基づく行為(操作)を実施し、その状態遷移の結果が意図通りか確認する、というシミュレーションを実現する。
■法令工学の見地から見た対象条例の性格
1)本条例の位置付け
Pythonにおける1つのモジュールとして実現される。そのモジュールで参照される自治体の情報や構成内容、様々な法的行為を実現する関数、登場人物のエージェントは、既にPythonのプラグラムとして別途準備されている。
2)本条例の構造
まず、対象センターに対応するコンピュータエージェントの属性として、様々な項目が設定されている。住所、開館時間、閉館日などである。施設の物理構造などの情報は、特に細かな規定を置いて定める必要はないので、法的に必要なものに限られている。
次に、対象センターに関する登場人物が規定されている。これは、登場人物の権限として用意された行為(操作)が何か、その際に変動する権利・義務に規定されている。これがシミュレーション原理に記した状態遷移の規定である。
3)本条例に関する隠れた構造
本条例では、指定管理者を市長が選ぶことになっているが、これは、その管理者になることを望む申請者からの申請行為の結果、一旦、キュー(管理職のデスク上にある未決トレイのようなもの)に溜まり、それを市長が決済することで、申請者が指定管理者の権限を得ることになる。
さらに、今度は、実際の施設利用希望者が、その管理者に対して、利用申請を行い、やはり、その管理者が持つ利用申請のキューに申請書が溜まり、それに対して管理者が決済することで、利用許可が下り、利用希望者に利用権が認められるのである。
こうして、実際には、条例の文面には出てこない、隠れた前提となっている、このキューのような抽象的な構造物が存在している。
法令工学では、このような隠れた構造物をあぶり出し、その構造や機能を明らかにすることが重要なミッションとなっている。
4)本条例の意図している行為と行為権限
市長:指定管理者を決定する
指定管理者の応募者:申請する
指定管理者:利用許可する
(施設)利用の希望者:申請する
利用者:利用する、譲渡する(実際には禁じられる)、転貸する(実際には禁じられる)
5)本条例の意図している権利・義務
市長:施行規則を作る義務
利用者:利用権、使用料の支払い義務
■シミュレーションの前提
・LLibというのは、シミュレータシステム本体。
・Wcenterというのは、「○○市総合福祉センター条例」のことで、「Wcenter.py」というPythonプログラムとして自動生成されたものである。
・Pythonシステムを起動して、その上で動作させている。Pythonバージョンは
・現在のシミュレータはさらに、これをWeb上でモニタリングしたり、簡易操作できるようにしたものであるが、間接的にPythonシステムを使っているため、既定の操作のみに対応し、細かな操作はできない。そこで、このシミュレーションでは、Pythonでの実行画面そのものを紹介している。
■シミュレーションのシナリオ(流れ)
次の順に実施される。
・システムの立ち上げと条例のスクリプトの読み込み
・自治体の設定(その市長のエージェントをシミュレータ上に作成)
・指定管理者就任の希望者の準備(そのエージェントをシミュレータ上に作成)
・指定管理者就任の希望者による申請
・市長による指定管理者の決定
・施設利用希望者の準備(そのエージェントをシミュレータ上に作成)
・施設利用希望者による申請
・指定管理者による利用許可
・第三者の準備(そのエージェントをシミュレータ上に作成)
・利用者による利用権を第三者へ譲渡(試みる)→失敗(∵条例で禁止さている)
・(利用権が利用者に残っていることの確認)
・利用者による利用
・(利用権が利用者に残っていないことの確認)