全国19万あったまち(=町字)ですが、本当のところいくつあるか不明な様子。
ベース・レジストリとしての住所・所在地マスターデータ整備について

地方自治法に「町若しくは字」、住居表示に関する法律に「町又は字」と表現されているが、地方自治法にも住居表示に関する法律にもこれら町字の定義は存在しない。

日本DXはじめのいっぽ、住所をまずはちゃんと定義したいですね。全国ざくっと用意して、各自治体でオーサライズがされればできあがりです。マスターデータ案に記載されている英語表記が気になりました。外国の方向けにひとまずアルファベットでの表記は欲しいですね。 あとは、まちの「よみ」のデータを見つければ、ひとまず自動変換できそうです。


固有名詞のかなローマ字変換
行政基本情報データ連携モデル 住所」に英語表記に関する記載があったので、それに代替準拠する「かなローマ字ライブラリ、Romaji.js」を作りました。 以前作成した Moji.mjs も使って、カタカナや半角にも対応したサンプルアプリも合わせて提供しています。


ヘボン式のローマ字は「観光立国実現に向けた多言語対応の改善・強化のためのガイドライン」にある表をCSV化した「ヘボン式ローマ字.csv」を作成して、使っています(make_json.js)。

低レイヤーからの地味な積み上げが大事な都市OSづくり!

表形式のデータの保存にはCSVが便利です。誰でもプレビュー、テキストエディタ、表計算ソフト、Google Docsなど、様々なツールで開くことができます。

ただ、文字化けやヘッダーの無いデータ、無駄な空行があるデータなど、おかしなデータが多いため、好きになれないプログラマーも多いことでしょう。


そこで作りました、厳格なCSV、StrictCSV!

日本の19万のまち、TownIDのCSV all.csv をStrictCSV all.s.csv に変換すると45%ファイルサイズが削減できました。(9.3MB→5.0MB、gzip後で 1.6MB→1.3MB 14%削減)

- StrictCSV 書式
拡張子は .s.csv
文字コードはBOM付きUTF-8
改行コードはLF
ヘッダー行は必須
レコード0件を許容する
ダブルクォート、コンマ、改行を含める場合はダブルクォートで囲む(ダブルクォートは2つにする)
存在しないフィールドは前行以前に存在したフィールドが省略されたものとする

ついでに、データ項目が少ないときは前行以前に登場したコードが省略されたことにするルールをいれたことで、同じ都道府県名や市区町村名がずらっと続くデータをシンプルにできます。


StrictCSV on GitHub / Code for Fukui
まだ実装はESモジュール対応のJavaScriptのみ。お好きな言語でご実装、ご貢献ください!

import { StrictCSV } from "https://code4fukui.github.io/StrictCSV/js/StrictCSV.js"; const data = await StrictCSV.load("test.s.csv") || [{ name: "a", val: 1 }, { name: "b", val: 1 }]; const s = StrictCSV.stringify(data); console.log(s); const data2 = StrictCSV.parse(s); console.log(data2);

Denoやブラウザで動きます。

* 改行コードは現在MacOS/LinuxがLF、WindowsがCRLFです。古いMacOS9がCRだったことから、Windowsが間をとってCRLFにしたようですが、WindowsもLinux化が進む今、人類としての改行コードはLFでいいでしょう。
由来がはっきりしないWindowsの“謎”仕様──Windowsの雑学(諸説あります)

ベースレジストリが熱い様子。日本全体のデジタルを活用した変革、盛り上がってきてます。 せっかくなら、誰にも頼らないID体系がいいですね。 よくあるIDは連番を振りますが、誰かが管理しないといけません。

地球上に位置情報を持つモノに割り当てるIDとして、緯度と経度と精度をひとまとめにするジオコーディング、Geo3x3が使えそう。 「福井県鯖江市新横江一丁目」など、ひとまず日本のまち全部に「TownID」というIDを定義して計算しました。


TownID Japan (日本まちID) by Code for Fukui」

TownIDを取得する方法は都道府県、市区町村、まち名の3つを指定します。

import { TownID } from "https://code4fukui.github.io/TownID/TownID.js"; const townid = await TownID.find("福井県", "鯖江市", "新横江一丁目"); console.log(townid); // E9138732346

都道府県一覧、市区町村一覧、まち一覧の取得APIもあります。
日本に都道府県は47、この区分における市区町村は1,893、まち全部は190,016ありました。
諸説あるかもしれません。

緯度経度からGeo3x3で生成して、ユニークで最短のコードにするコードができたので、いろいろと応用する準備ができました。 ベースレジストリ、何か貢献できること探しましょう。
ベース・レジストリの指定について | 政府CIOポータル

国も活用するGit、特許庁によるGitHub活用、2017年にもありました。
特許庁、GitHubで「知的財産デュー・デリジェンス」の標準手順書策定を検証 - ZDNet Japan


知的財産デューデリジェンス標準手順書
GitHubでのオープン検証を経たデューデリジェンス(企業の経営課題を課題抽出すること)をブラウザで読みやすくまとめてみました。


Gitでバージョン管理をすると文章も変更履歴が一目瞭然。 見出しのレベルを揃えるなど、いろいろと手を入れた記録はコミットログから見ることができます。

DenoのフォーマッターがMarkdownにも対応しているので deno fmt し、markdownlintでチェック。 加えて、日本語用のMarkdownの正規化のために mdfmtjp を新たに作成して、文章をキレイに整えました。

mdfmtjp の機能は、シンプルに2つ
- 文字の正規化(半角句読点を全角化など)
- 数付きリストの正規化(数値のあと半角ドットに半角空白1つに)

日本語文章のDX目指して育てます。


知的財産デューデリジェンス標準手順書 - GitHub
GitHubでの受付期間は終わっていますが、フォークして活用は歓迎とのことで、Code for Fukui で文章構造を整理してみました。

日本語もプログラミング言語も似てますね!どんどんハックしていきましょう!

プログラミングにおける日付の扱いは地味ですが大事です。JavaScriptには日付を表すDateクラスがありますが、古いJavaの仕様を引きずっていたり、月が0から始まっていたり、文字列からのパースが多言語化の関係でよくわかんないことになっていて微妙です。

毎回リファレンスを見ながらコードを書くのも面倒なので、スッキリシンプルな日付ライブラリ day-es を作りました。

import { Day } from "https://code4fukui.github.io/day-es/Day.js"; const day = new Day(2021, 6, 5); // 2021/6/5 console.log(day); // Day { year: 2021, month: 6, day: 5 } console.log(day.dayAfter(2)); // Day { year: 2021, month: 6, day: 7 }

ESモジュール対応JavaScriptなので、ブラウザ上や、Denoを使ったサーバーサイドでサクッと使えます。 Dayクラスのインスタンスは西暦1年から9999年までの有効な日付でのみ生成でき、Object.freeze を使ってイミュータブル(不変)にしているので、安全です。 2日後の日付や、月末月初、日付の差などを関数で取得できます。 信頼性は、テストコードでご判断ください。


応用例「カウントダウン
日付の差計算を使ったカウントダウン拡張タグを作りました。下記のHTMLで任意の日付までのカウントダウンができます。

<script type="module" src="./day-countdown.js"></script> 第5回 越前がにロボコンまで、あと<day-countdown target="2021-11-07"></day-countdown>日!


応用例「カレンダー
その日の曜日と、その月の最終日が分かれば作れるカレンダー。国民の祝日にも対応したくなったので・・・


内閣府の「国民の祝日」についてにあるCSVデータをブラウザから取得しようとすると、CORS設定がされていないため弾かれてしまいます。 元データではなく、別にデータを置く必要があり効率が悪いです。GitHubで"holiday japan"で検索すると120もヒットします。 無意味な定期的な運用が増えないようにしたいところです。

ブラウザから直接取得できるようにするには、webサーバーの該当ファイルのレスポンスヘッダーに下記を追加すればOKです。

Access-Control-Allow-Origin: *

アクセスを促したいオープンデータにはぜひ付けましょう。(GitHub Pagesは全部付きます)


応用例「国民の祝日リスト
現在2022年末までの祝日が公開されていました。祝日判定コードも下記のように簡単です。

import { isHoliday } from "https://code4fukui.github.io/dey-es/Holiday.js"; console.log(isHoliday(new Day("2021-07-22"))); // true

国民の祝日オープンデータは、よく使い、関連が深い日付ライブラリ「day-es」とセットにしたリポジトリとして、オープンな開発活動シビックテックの福井版、Code for Fukui 管理とすることで、更新忘れを防ぐ作戦です。 活用いただける方、育てたい方、プログラミングが好きな方、一緒に創りましょう!

経産省のDX、モデル契約書のGitHub公開とMarkdown化で、気になっていた、条文が改行されていないので読みづらい問題。 Markdownに別途CSSを適応する解決策を作りました。


モデル契約書ver1.0 秘密保持契約書(新素材)
このように、現状のMarkdownでは、改行されないものが・・・


モデル契約書ver1.0 秘密保持契約書(新素材)
CSSを変更することで読みやすく!

body { background-color: #f3f3f3 font-family: serif; }


実装は、こちら Markdown.js は、Markedをforkして、ESモジュール化し、GitHubのページ内リンク仕様に合わせて手を入れ、整理したものです。

URLパラメーターに指定するだけで表示できます。CSSを指定すれば好きなように飾れます。 mark-down タグで、HTML内に埋め込んだり、JavaScriptで変換したHTMLを扱うこともOK!

上記課題、経産省GitHubのこちらのIssueで議論中です。
条項・条文をcode blockで括る際に自動改行されないことへの対応策 · Issue #33 · meti-oi-startups/METI-JPO-Model-Contract


福井の先生が集まる、JavaScript勉強会!

夜は、福井市東京事務所企画の動画番組「ふくいファンちゃんねる」に出演、DXはできる化。 こどもでも、大人でも、できることはたくさんありますよ!

テキストファイルから始められる、お気軽DX!
デジタル技術を楽しく使って、社会をより良くアップグレードしましょう!

スピードが求められ、そのスピードがテクノロジーで実現できる現代。
従前の有識者会議やパブリックコメントを、オープン・フラット・気軽で分かりやすくDX!

経産省、特許庁のベンチャー企業(スタートアップ)と大企業(事業会社)との契約を、モデルケースと共に紹介する「モデル契約書ver1.0」の改訂案受付にGitHubが使われています。
「研究開発型スタートアップと事業会社のオープンイノベーション促進のためのモデル契約書ver1.0」の改訂に向けて、Github(ギットハブ)を用いた意見募集をトライアル実施します (METI/経済産業省)


早速、Twitterでバズってます!

GitHubなのにPDF!? 変更提案は自分のIDを書いたファイル名に!?
改善の余地は、活躍の余地。みんなでキレイにしちゃいましょう!

Code for Japanの関さんや、高専生を含む有志さんが早速PDFのMarkdown化を完了させ、なんとマージ(経産省による変更受け入れ)されてました!(Issues)
PDFでは、変更履歴が追えませんが、テキストファイルなら文字単位で誰がどう変更したかが一目瞭然です。

ということで、せっかくならもう一歩進めて、GitHubらしくPDFではなくMarkdownへのプルリク(変更提案)を受け付けますよと書き換えちゃいませんか?というプルリクを送ってみました。

もしこの変更案が通れば、このように変更提案がスッキリシンプルに変わります。プルリクエスト(変更提案)の説明はGitHub公式サイトでどうぞ。

マークダウン(Markdown)とは、ちょっとした決まり付きのテキストファイル形式です。 HTMLと違って壊れないので、気軽に誰でも編集することができます。

活動を本格化させることにした Code for Fukui の新ウェブサイトはこのマークダウンでできています。秘密はmark-downタグ。 実はHTMLのタグは自由に拡張できるのです。先頭にあるscriptでmark-downタグの使用を宣言すれば、あとはテキストファイルを書くだけ簡単です!

Code for Fukui


マークダウンで編集できるウェブサイト index.html
これなら誰でも簡単に編集できそうですね!

mark-downタグは、マークダウンのHTML変換 marked を元に HTMLElementで実装しました(src on GitHub
srcパラメータを使って、マークダウンファイルをページに組み込むこともできますよ!(例、mark-down-tag.test3.htmlモデル契約書ver1.0 秘密保持契約書をインポートして表示

良いデジタルツールを積極利用したDX、ガンガンいきましょう!

腕だめししたい学生は、Civictech Challenge Cupにチャレンジしよう!
腕を磨きたい実力付けたい高専生、jigインターンも募集中です。

links
- 国税庁法人番号を使った経産省発、法人種別名の抽出コンポーネントのESモジュール版公開
- KEN_ALL!? 郵便番号ESモジュールで開発効率化! 経産省もGitHub公開スタート
- GitHubで公開! 内閣官房 Trusted Web 推進協議会議事録、安心できるインターネットに向けてGoogleログイン実験
- 33ステップで解説、GitHubオープンソース貢献入門、IchigoJamプリントをつくってみよう!「もじのしょうたい CHR$/ASC」とはじめてのプルリク

齟齬のないコミュニケーションに必要な、言葉の定義。 日本政府のIT総合戦略室、PDFとWordファイルで提供されている、政府CIOポータルに掲載された「標準ガイドライン群」のひとつ「標準ガイドライン群用語集」をCSVデータ化し、GitHubに置き、検索アプリとして提供しました。

標準ガイドライン群用語集
現在掲載は95単語。日本政府として使っている意味、みなさんの思っている意味と同じでしょうか?


code4fukui/stdwords-jp: 標準ガイドライン群用語集 - standard words in Japan
気になる点があればイシューでディスカッションし、間違いや改善はプルリクというGitHubの機能がそのまま使えて便利です。PDFや、WordファイルはCSVデータから単純に生成すればいいので、手間は減ります。 今回の勝手CSV化は、元データを尊重して項目名は日本語名のそのままとしています(3つ星オープンデータ)。

オール日本で進めるデジタル推進。 その旗振り役の政府としては、1つ星オープンデータのPDF、2つ星のWordファイルだけでなく、少なくとも3つ星CSV、できれば、語彙(schema.orgや、共通語彙基盤などで)を標準化して5つ星CSVでいきましょう!

CSVデータになっていて、HTTPSでアクセスでき、CORS対応していれば、次の2行のHTMLで検索機能付き表示アプリができあがります。(ノーコード?ローコード?)

<script type="module" src="https://code4sabae.github.io/js/csv-viewer.js"></script> <csv-viewer src="https://code4fukui.github.io/stdwords-jp/hyoujun_guideline_yougosyu.csv" name="標準ガイドライン群用語集"></csv-viewer>

オープンソースな自作HTMLタグ、csv-viewerタグを今回拡張。全角アルファベットと半角アルファベットが入り交じる文章で検索しづらいので、経産省によるオープンソース「IMI 情報共有基盤 コンポーネントツール」の「半角全角変換ライブラリ」をESモジュール移植したものを使って、全角半角大文字小文字を区別しない検索機能としました。(src on GitHub

import { CSV } from "https://code4sabae.github.io/js/CSV.js"; import IMIMojiConverter from "https://code4sabae.github.io/imi-moji-converter-es/IMIMojiConverter.mjs"; const std = (s) => IMIMojiConverter.toHalfWidth(s).toLowerCase();

JavaScriptのESモジュール、世界中のライブラリを気軽にどんどん接続できるのがいいところです。

2021.5.20 追記、「UDトーク公式公開辞書 | UDトーク」として活用いただきました。

京都大学坂出さん主催、タリン、ニューヨーク、京都、鯖江をつないだDXGOVイベント。エストニアの首都、タリンのオープンデータが興味深い。
In the event connected Tallinne, New York, Kyoto and Sabae about DXGOV, held by Sakade-san at Kyoto-U. Opendata in Talline is interesting.


Bus in Tallinn」by Open Data Tallinn
Update every 5 seconds, enjoy with beautify sight from the sky! Get more info by clicking the pin.
5秒間隔更新、美しいまちなみを見る衛星写真と共にどうぞ! ピンクリックで情報が見えます。

DATA: Location of public transport vehicles in real time
The app make CSV from providing the open data as headless CSV (TXT)
アプリ内でヘッダーレスなCSVデータ(TXT)をCSVデータとして変換しています

const fetchData = async () => { const url = "https://transport.tallinn.ee/gps.txt"; //const txt = await (await fetch(url)).text(); // Please support CORS!! const txt = await fetchViaProxy(url); const csv = CSV.decode(txt); csv.unshift(["type", "line", "lng", "lat", "speed", "label", "vehicle"]); const data = CSV.toJSON(csv).map(d => { const l = (s) => s.substring(0, 2) + "." + s.substring(2); d.lat = l(d.lat); d.lng = l(d.lng); return d; }); console.log(data); return data; };

Browser can't fetch directly from the server by Tallinn. Please support CORS
ブラウザはタリンのサーバーからデータを直接取得できません。CORS対応、お願いします!

Enjoy to create!
創るを楽しもう!

鯖江市長の佐々木さん、副市長の中村さん、コネクトフリーの帝都さん、京都大学の坂出さんと共に記者会見。

実験のまちとして使ってほしいと、佐々木市長。
2010年、当時の牧野市長に提案して、その場で決めてくれたのがオープンデータの始まりとなりました。
オープンデータとデジタルの活用はいよいよ本番。新たな仲間を迎え、すます楽しくなりそうです。


ちょうど同日、福井テレビで放送あった、創電の刀根社長自身によるIchigoJam/IchigoSoda IoTプログラミングとハードウェアづくりによって実現した「火守くん


火災報知器が鳴り響いてもむなしい、誰も居ない家や事務所の火災。創電のIoT「火守くん」は異変をネットを通じて伝えてくれます。


今回、鯖江市への共同提案、IoT通報システム。IoTの2つの課題を解決できます。
1. IoTセキュリティが心配 - 互いに認証する新しいインターネットプロトコル EVER/IPを使って解決
2. IoT価格が高くなり勝ち - その地域で生まれるデータを集約するサービスを行政が担当する提案、月額利用料をなくせます

例えば、IoT火災報知器、火災を感知したら位置情報と共に即、消防へ通報。無人の店舗の被害を最小限に食い止められるかもしれません。
汎用性が高いので、新しいデバイスを使ってDXしたい、様々な企業とのコラボが期待できます。


オープンに未来づくりに取り組むまち、鯖江!創電、会長&社長と。


初のCluster登壇してPR、ソフトウェアのまち鯖江!


バーチャル誠照寺 on Hubs
イベントで仕入れた情報、オープンソースなサイバースペース「Hubs」。
コロナ禍、中止がちな鯖江の毎月のおまつり「誠市」もバーチャル開催できるかも!?
バーチャル誠照寺の境内でチャットしながら3Dモデルも使った語り合いが可能です。


Spoke
オーサリングツールSpokeを使ったスペースづくり、鯖江商店街3Dオープンデータを、gltfのバイナリ形式glbをobj2gltfを使ってコンバート。誠照寺データを取り込めました。

鯖江市、サイバーバレーのフラッグシップになりましょう!

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / RSS