防災備蓄のシビックテックを助けるオープンソースとオープンデータ

シビックテックは市民ボランティアの活動です。

ここ数ヶ月、週末のプライベートの時間に防災シビックテックの活動として「みんなで備える防災備蓄マップ」という避難所の防災備蓄状況を登録・表示できるオープンソーステンプレートを開発していました。 [Tokyo OSS Party!!](https://tokyo-oss-party.com/) のイベントをきっかけに12月から3ヶ月、週末の時間で [Social Hack Day](https://hackday.code4japan.org/) に参加して地道にヒアリングと開発・改善を繰り返してきました。（活動の様子は[こちら](https://note.com/arumon_team/n/n228986f88be1)。）

本オープンソーステンプレートは Tokyo OSS Party!! の入賞作品として 東日本大震災11年目の 3.11 に寄せて[東京都の GitHub 公式アカウント](https://github.com/Tokyo-Metro-Gov)にフォークして頂けることになりました。大変光栄なことです、ありがとうございます。

https://github.com/Tokyo-Metro-Gov/bichiku-map/

▼ テンプレートサイト
[みんなで備える防災備蓄マップ](https://bichiku-map.web.app/)

▼ コンセプト
<iframe src="//www.slideshare.net/slideshow/embed_code/key/HA01hJLwF6wAcl" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>

※成果物は多少ピボットしています。機能追加やバグ修正の PR お待ちしています。

▼ 本題
本記事ではこのオープンソーステンプレートを開発する中で見つけたシビックテックに役立つオープンソースやオープンデータをご紹介します。

## シビックテックとは

シビックテックの説明に関してはデジタル庁の記事、Code for Japan の図解や動画がわかりやすいのでぜひご覧ください。
端的に表すとシビックテックは市民ボランティアの活動なので、その目的や意味は各々がジブンゴトとして捉えて頂ければと思います。

活動を通じて、シビックテックの効能は以下があると感じました。
・住んでいる地域の身近な課題の発見、解決手段の模索
・深い課題だが、知られていない課題への理解
・住んでいる地域の繋がり、世代を跨いだ人間関係が生まれる
・遠方地域の「[関係人口](https://dentsu-ho.com/articles/7019)」になる


> __シビックテックとは__
> FinTech や EdTech といった用語を聞いたことがありますでしょうか。一般的には、○○Techとは、ある領域をテクノロジーを活用してバージョンアップすることを指します。シビックテック（civic-tech）とは、市民（civic） と技術（technology）から生まれた造語で、シビック・テクノロジー（civic technology）とも呼ばれますが、実は明確な定義はなくあいまいです。
> インターネットを始めとするデジタルテクノロジーは、メディア配信やEコマースなど、様々なサービスを使うための障壁を下げ、結果として誰もがそれらのサービスを活用できるようになりました。これをサービスの「民主化」と言うならば、これまで関わり方が限られてきた公共領域への参加の方法が民主化され、誰もが自分たちの好きな時に好きな方法で参画できるようにする活動がシビックテックです。市民が主体的に社会に関わり、あるべき社会について「ともに考え、ともにつくる」人々が増えることでより良い民主主義社会を生むことを目的としています。
> （出典）[デジタル庁とシビックテック](https://digital-gov.note.jp/n/n1d3a173a8393)
> 
> __シビックテック図解__
> ![code4japan.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/127260/8df13dbc-f936-90d6-e300-0154df2993dd.png)
>（出典）[新・公民連携最前線 Civic Techのイメージ（資料：Code for Japan）](https://project.nikkeibp.co.jp/atclppp/15/433782/092900117/)
>
> __シビックテック説明動画__
> <iframe width="560" height="315" src="https://www.youtube.com/embed/lOx4q346aRw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
> 
> （出典）[のびしろ、おもしろっ。シビックテック - シビックテックの３つのステップ](https://www.youtube.com/watch?v=lOx4q346aRw)


## シビックテック活動に役立つもの

では、ここからは本題のシビックテックの活動で役立ったものをご紹介します。
※全て利用したわけではありません。便利そうなものも含めてご紹介します。


### コミュニティ
シビックテックに限った話ではありませんが、課題を解決する上で、最も難しく大切なことは問を立てることだと思います。
コミュニティが問を見つけることに直接繋がるわけではありませんが、様々な意見や活動に触れることで気づきや発見があります。

#### Slack
ここ数年は Slack が主に使われているようです。日本では Code for Japan のコミュニティが6000人規模で活発です。

・[Code for Japan の Slack](https://www.code4japan.org/activity/community)
・[Tokyo OSS Party!! の Slack](https://join.slack.com/t/tokyoossparty/shared_invite/zt-xj39veiu-cr_1brEP_VeNWMQCXs~fPw)　
・[Code for America の Slack](https://brigade.codeforamerica.org/resources/software/slack/)
・[台湾 g0v の Slack](https://join.g0v.tw/)

### コミュニケーション

#### HackMD
HackMD は Markdown 形式でドキュメントを複数人で編集でき、リアルタイムプレビューが可能なオープンソースツールです。
毎月開催されている Social Hack Day（[12月](https://hackmd.io/@codeforjapan/SHD34th), [1月](https://hackmd.io/@codeforjapan/SHD35th), [2月](https://hackmd.io/@codeforjapan/SHD36th)の様子はこちら）では[テンプレート](https://hackmd.io/@codeforjapan/project_template)に沿って様々なシビックテックプロジェクトが立ち上がり活動をしています。

#### Gather.Town

バーチャル空間でアバターを操作しながら、ビデオ通話やチャットができるツールです。公式の例えを借りるなら "Pokemon x Zoom" です。
「オンラインで立ち話」ができるのが良いです。実際のところは使ってみるのが一番です。

https://www.gather.town/


### オープンデータ

[Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%83%87%E3%83%BC%E3%82%BF) によるとオープンデータ（Open Data）とは、特定のデータが、一切の著作権、特許などの制御メカニズムの制限なしで、全ての人が望むように利用・再掲載できるような形で入手できるべきであるというアイデアを指すそうです。

シビックテックはオープンデータとセットで語られることが多く、今回の活動でもオープンデータに多く触れました。

#### オープンデータカタログサイト

今回の活動では東京の地域課題を解決するための開発をしました。最も利用したのはこちらのサイトです。

https://portal.data.metro.tokyo.lg.jp/

他にも、各国・各地域で様々なオープンデータがあります。オープンデータの取り組み自体の歴史はまだ浅く、数多くのデータが存在している一方で「データの標準化」に関してはまだまだ改善の余地があるように感じます。[デジタル庁が推奨データセット](https://cio.go.jp/policy-opendata#dataset)を定義しているようなので、今後はオープンデータの整備はより進んでいくのだと思います。

・[世界各国政府におけるオープンデータ](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%83%87%E3%83%BC%E3%82%BF#%E6%94%BF%E5%BA%9C%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%83%87%E3%83%BC%E3%82%BF)
・[オープンデータカタログサイト（デジタル庁）](https://www.data.go.jp/)
・[地域経済分析システム RESAS（リーサス）](https://resas.go.jp)

▼ 各自治体
・[東京都](https://portal.data.metro.tokyo.lg.jp/)
・[福岡県](https://www.open-governmentdata.org/)
・[神戸市](https://data.city.kobe.lg.jp/)
・[横浜市](https://data.city.yokohama.lg.jp/)
・[大阪市](https://data.city.osaka.lg.jp/)
・[北海道](https://www.harp.lg.jp/opendata/) 
等、様々あります。
個別の自治体は[こちらの一覧](https://www.data.go.jp/multidatabases/multidatabase_contents?frame_id=214&page_id=16)から探して下さい。


#### OpenStreetMap

オープンデータの多くは住所情報と紐づくものが多いです。そのためシビックテックでは地図がよく使われています。OpenStreetMap はオープンライセンスの下で誰でも自由に地図を使えるよう、みんなで作る地図です。
OpenStreetMap は商用・非商用を問わずにデータの自由な利用と再配布可能なオープンデータベースライセンス (ODbL) 1.0 で運営されているため、シビックテックとの相性が良いです。以下の記事で解説しておりますのでぜひご覧ください。

https://qiita.com/t-kurasawa/items/03e5bc9c9a07d8ff99b7

また OpenStreetMap の開発 Tips をまとめましたのでこちらの記事も合わせてどうぞ。
・[Leaflet 地図上の緯度経度情報を React Redux で状態管理する](https://qiita.com/t-kurasawa/items/aa70bcff62f1493d7c5e)

### オープンソース

[Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9) によると、オープンソース（英: open source）とは、コンピューターソフトウェアをバイナリプログラムのみの配布ではなく、プログラムの設計図であるソースコードが入手でき、目的を問わず利用、修正、頒布できることの明示的な許可および、それを利用する個人や団体の努力、利益を遮ることがないライセンスを適用したコンピューターソフトウェアと、そのソフトウェア開発の手法を指すそうです。

シビックテックの活動の多くはオープンソースの文化に根ざしています。東京都は2021年10月に[東京都オープン・ソース・ソフトウェア公開ガイドライン](https://github.com/Tokyo-Metro-Gov/tokyo-oss-guideline)を発表しました。Tokyo OSS Party!! はこの活動の一貫となるものです。

実際に利用し便利だったもの、他の方の活動でよく利用されているオープンソースをご紹介します。

#### GitHub

GitHub は世界的なオープンソースのインフラです。ソースコードの管理が出来ます。

・[GitHub Pages](https://docs.github.com/ja/pages)
Pages を使うことで SPA や静的サイトなどはホスティングサーバーの準備をせずにサイト公開が出来ます。

・[GitHub Actions](https://docs.github.com/ja/actions)
Actions は使うことでワークフロー（データの抽出・変換・書出といったバッチ処理）を組むことが出来ます。

シビックテックに参加する市民は必ずしもテクノロジーに強い人ばかりではありません。GitHub のアカウントさえあればテンプレートをクローンするだけでシビックテックに参加できるという構成はかなり参加のハードルを下げてくれると思います。

#### dim
シビックテックの開発はオープンデータと共にあるのですが、点在するデータの管理が煩雑です。パッケージマネージャーのオープンデータ版があれば良いと思いませんか。それが dim です。

オープンデータは前述のように様々なカタログサイトに掲載されています。データの取得元は[こちらのページ](https://catalog.data.metro.tokyo.lg.jp/dataset/t000003d0000000093)のように開発者の手で探し、ファイルをダウンロードして利用する必要があります。この数が増えるほど煩雑になりますし、データの中身を最新に保つことを考えると自動化したくなります。dim では以下のコマンドでオープンデータの取得元の管理を行います。dim.json を git 管理することでオープンデータの流通性が高まります。開発の中で一番便利なツールだったと思います。作者の方、ありがとうございます。

`dim install [url] -n [name]`


```dim.json
{
  "contents": [
    {
      "url": "https://www.opendata.metro.tokyo.lg.jp/soumu/130001_evacuation_center.csv",
      "name": "東京都総務局_東京都防災マップ避難所・避難場所_東京都防災マップ避難所一覧データ",
      "preprocesses": [
        "encoding-utf-8"
      ]
    }
  ]
}
```


https://github.com/ryo-ma/dim


詳細に関しては[作者の解説記事](https://qiita.com/ryo-ma/items/bb64c62d335c6e6bc923)をご参照頂ければと思います。


#### 住所変換

シビックテックだけの課題ではありませんが、システム開発において「住所」は根深い問題だと思います。多くのエンジニアの方は住所の形式に悩んだことがあるのではないでしょうか。

オープンデータの多くは住所情報に紐付いており、上述の問題が至るところで発生しています。私の知る限りではこの問題はまだ解決されていないのですが、経済産業省が出している [IMI 住所型正規化パッケージ（MIT License）](https://info.gbiz.go.jp/tools/imi_tools/index.html) を利用するなどして「データの標準化」に努めていくことがオープンデータの流通性を高めることに繋がるのかもしれません。

以下のように住所を変換してくれます。

```node.js
const convert = require('imi-enrichment-address');
convert("霞が関2").then(json=>{
  console.log(json);
});
```

```response.json
{
  "@context": "https://imi.go.jp/ns/core/context.jsonld",
  "@type": "場所型",
  "住所": {
    "@type": "住所型",
    "表記": "霞が関2",
    "都道府県": "東京都",
    "都道府県コード": "http://data.e-stat.go.jp/lod/sac/C13000",
    "市区町村": "千代田区",
    "市区町村コード": "http://data.e-stat.go.jp/lod/sac/C13101",
    "町名": "霞が関",
    "丁目": "2"
  },
  "地理座標": {
    "@type": "座標型",
    "緯度": "35.675551",
    "経度": "139.750413"
  }
}
```

また、[オープンデータセット推奨データセット](https://cio.go.jp/policy-opendata#dataset)によると[標準ガイドライン群のページ](https://cio.go.jp/guides)で住所のガイドラインが出ています。オープンデータ自体が標準化されるか、住所を始めとした基礎情報を変換するオープンソースが出てくるとシビックテックでは重宝されると思います。

[デジタル庁データチームの note](https://data-gov.note.jp/n/n368de1522d89) でオープンデータの標準化が進んでいる様子が伝わってきます。標準化には時間がかかるものなので、気長に待ちたいと思います。

### ノーコードツールの可能性

シビックテックの活動をする中で様々な方に「何かできることは無いか？」と聞かれます。主な活動内容としては以下があります。

・サービス企画・ヒアリング・調査
・UI/UX デザイン
・データ収集・整形・コンテンツライティング・翻訳
・プログラミング

この中でプログラミングに関してはノーコードツールを活用してみるのをおすすめします。初心者にもかんたんな [Glide](https://www.glideapps.com/) を使って試しに作ってみるとシビックテックが身近に感じられるかと思います。

https://qiita.com/t-kurasawa/items/ba8ad66aa49c52716221


## おわりに
シビックテックは「市民ボランティア」です。
エンジニアだけでなく様々な人が関わることが出来るので、ジブンゴトで取り組むことが出来る活動を見つけてください。

この３ヶ月、週末の時間で地道にヒアリングと開発・改善を繰り返す中でシビックテックに取り組む人と文化に出会えたことが一番の成果かと思います。これからも趣味の活動としてシビックテックには関わっていきたいです。[Tokyo OSS Party!!](https://tokyo-oss-party.com/) が今後も継続し、市民の手で東京がより良い街になることを願っています。

![tokyoossparty.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/127260/f6e039e3-9b88-e293-9d45-81be9323ec23.png)