macroscope

( はてなダイアリーから移動しました)

公費による科学研究で作られたソフトウェアが公共の役にたつように

2月6日に「科学者はプログラムやデータを公開するべきだ」とはどういうことか?として書いたことの一部を、もう少し論じる。データにもあてはまる面があるが、計算機用のソフトウェア(「プログラム」とも書く)をおもに考える。

最近、気候変化研究に関して問題になっていることに、研究に使われた計算機プログラムを提供してほしいと言われた研究者が提供を拒否した、あるいはしぶり続けた、ということがある。プログラムの作者が必要を認めたとき以外にプログラムを提供する習慣はなかったので、研究者がプログラムを提供しなかったことをいちがいに悪いと言われると困る。今後は提供できる態勢を整えていくべきだというのならばもっともな提案だと思う。ただし、研究の過程で作るプログラムはすべて要求があれば提供しなければならないというのは現実的ではない。作者の手を離れても大きな誤解を招かないような説明を書くことは、おそらくプログラム自体を書くよりも手間がかかるのだ。

プログラムの提供あるいは公開を要求した人の理屈のひとつは、科学の成果の質を確認するためには、別の人による再現可能性あるいは追跡可能性(トレーサビリティ)が必要だ、ということだ。とくに、科学の成果が政策決定の材料として使われる場合は、質の確認が重要になってくる。

もちろん、研究成果を発表する論文には方法の説明を書く。従来から科学にかかわっていた人は、その説明を見て自分で考えて再現を試みることがある。厳密には同じではないが似た手続きによって似た結果が出れば再現可能と考えるわけだ。生物を扱う実験などの場合は、再現とはこのような意味でしかありえないだろう。しかし、計算をおもな手段とした研究では、同じプログラムと同じデータで同じ結果が出ることを確認することが重要だと考える人もいる。(実は大がかりな数値計算のプログラムの場合、厳密な再現性は期待されていないことが多いのだが。)

研究者自身の立場でも、研究の手順が再現可能な形で記録されているのが望ましいと思う。ただし、試行錯誤的なところまで記録するのはつらい。データプロダクトや研究論文の形で発表する際には、それに向かうデータ処理の流れの記録があるべきで、そこにはどのプログラムを使ったかも書かれるべきだというのはもっともだ。(わたし自身、そういう仕事のしかたをするべきだと言っているものの、実践が伴っていないことが多く、恥ずかしいのだが。)

もうひとつの筋は、多くの科学研究が、国民の税金によって行なわれている。その過程で作られたソフトウェアは、国民がだれでも使えるようにするべきだ、ということだ。この場合、研究にお金を出していない外国の人に提供する必要があるかは自明ではない。国益の対立を重視して国内に閉じる政策もありうる。しかし、科学的知識は人類共通のものであるべきこと、とくに対象が地球環境である場合には国境を越えた対処が必要であることなどの理屈に支えられれば、世界のどこの人に対しても提供するべきだという主張はできるし、もっともだと思う人が多いだろう。

しかし、税金を国民に還元するべきだという考えからは別の流れもある。それは、市場経済による民間企業の活動を重視し、ソフトウェアは富を生み出す知的財産であると考える観点だ。その立場を徹底すると、税金で作られたソフトウェアは、いずれは民間企業に移転されて商品として売られることを想定して、財産として管理されなければならないことになる。また、市場経済を重視する人々は政府の直接支出をなるべく減らしたいと考え、研究機関に国以外からの収入を得ることが可能であればそうせよと言うことがある。そうすると、研究機関が作ったソフトウェアに外から需要があるものならば、使用料をとるべきであり、無料で公開するべきではないということになるだろう。そのためのルールができてしまうと、需要があるかどうかわからないソフトウェアも、現場の判断で公開はできず、知的財産担当者の判断を求めなければならなくなる。

たまたまかもしれないが、少なくとも英語圏では、気候研究に使われたプログラムの公開を要求している人たちには、市場経済を重視する人が多いようだ。自己矛盾していないかよく考えていただきたい。地球環境研究と製造業などの基礎となりうる科学技術とでは原則を変えるならば、どこで切り分けるのかを明確にしてほしい。

さて、たとえプログラムの提供の趣旨が、研究結果の再現可能性の確認だったとしても、いったん他人の手に渡ったプログラムは、他の目的に使われたり、さらに加工されていったりすることを、事実上防げないだろう。ソフトウェア企業は、その知的財産権の侵害を摘発する人を雇うこともできる。(その上に法律を味方につけて警察や税関などの公共部門の取り締まりも利用している。) しかし公共部門の場合は、たとえ使用料をとっているソフトウェアに関しても、外でのルール違反の使用を摘発することはむずかしいと思う。

ところが、ソフトウェアに関しては、オープンソースというスタイルが確立してきた。その一部には著作権の存在しないパブリックドメインのものも含まれるが、大部分は著作権を主張したうえでライセンスによって再配布や改変を自由とするものだ。ただし、自由には自由を制限する自由も含まれるので、もう少し条件づけが必要だ。わたしなりに要約すると、派生物が自由であることを強制するGPL (GNU Public License)型と、派生物に制限をつける自由を認めるBSD (Berkeley Software Distribution)型がある。そして、おそらく民間企業もそうだと思うが、研究機関の仕事はすでに(商品のソフトウェアにも依存しているが) Linux、Apacheをはじめとするオープンソースソフトウェアに依存している。

オープンソースソフトウェアはお互いさまの世界なので、研究者がそれを改造したりそれに関連するものを追加したら、そのソフトウェア本体の改良に寄与したいと思うことがある。しかし、雇用契約に伴う条件によっては、職務上作ったソフトウェアの著作権は所属機関に移転することになっていることがある。著作権は所属機関が保有しても、その所属機関がそのソフトウェアをオープンソースソフトウェアに含めてよいと認めて明文化すれば問題ない。あるいは、(余暇にプログラムの改造をし、勤務中はそれを使っただけだという言いわけが必要かもしれないが)改造部分の著作権が実際の改造者にあるとしてよいならば、それでもよいと思う。

さらに積極的に、公的資金による研究で作られたソフトウェアを、新たなオープンソースソフトウェアとしていくことも考えたほうがよいのではないだろうか。とくに、プロジェクトが終了してソフトウェアを保守する人がいなくなり、需要はある場合は、オープンソース化が有効な道だと思う。

ただし、公開可能なソフトウェアのすべてをオープンソース化することを義務づけるべきではないだろう。専門知識が不足した人が改造すると不適切な結果をもたらすおそれが強い場合など、利用については公開するが、改造については作者グループがコントロールし続けるのが適切な場合もあると思う。

また、実際問題として、研究上作られたプログラムは完成することがなく改造しつづけられたり、放置されたりすることが多く、そのすべての公開を義務づけられるのはつらい。公開はできないが個別交渉によって提供することはある、というレベルでがまんしていただきたいこともある。提供の条件についておりあいがつきにくいとき、仲裁してくれるしくみがあると助かる。