Code for FUKUIで進める地域DX、GitHubで管理する「越前市の国高地区安全マップ」をバージョンアップ。 最も小さな行政、町内会でGitHubユーザー広がってます!(参考、GitHubはじめのいっぽ by Code for FUKUI


越前市 国高地区 地域安全マップ
印刷レイアウトにも対応! 2021年度版のデータも追記、完了。場所ごとのデータ、アイコンデータはいつでも差し替え可能です。 位置情報を表すGeo3x3は、緯度経度地図で調べて、CSVに記載します。 分かりやすいインターフェイスを作れるともっと便利になりますね。


越前市 国高地区 地域安全マップ」(src on GitHub)
地域の安全マップ、みなさんのまちにもいかがでしょう?

今回のJavaScript開発、3つのポイント。

1. qr-codeタグ
HTML内に <qr-code></qr-code> と入れるだけでそのサイトのURLを表示できます。new QRCode()でエレメント追加でもOK!

2. fetchImage
awaitを使って画像の読み込みを同期的に処理できます。コールバックを使わないのでネストが深くならずシンプルにかけて便利です。

3. CSSの @media print
印刷時のレイアウトをCSSで指定できます。

求む、中高生、高先生、社会人 Code for FUKUI デベロッパー!
気になるリポジトリのIssuesへの書き込み、プルリク、お気軽にどうぞ!
2021-07-30金18:30-22:00開催「サイバーフライデー」はオフライン活動の日です。

政府目標だった2020年度中にオープンデータ化100%、結果は63.7%オープンデータ | 政府CIOポータルより)と未達成。 オープンデータ伝道師としての力不足、申し訳ありません。


データアカデミー研究会 presents 「政府のデータ戦略ってどう進んでいくの?」セミナー - YouTube
オープンデータ、ベースレジストリを含むデータ戦略に関するデータアカデミー研究会がありました。デジタル戦略の一丁目一番と言われるデータ戦略、オープンデータに関するアンケートデータが公開されているとのこと。


地方公共団体へのオープンデータの取組に関するアンケート結果・回答一覧
5団体がオープンデータを知らないと回答。名前だけを含めて詳細を知らない団体がちょうど40%弱。 オープンデータ化が進まなかった理由かもしれません。 1788団体、35問の質問に対する回答一覧があるので、いろいろな角度で分析したいところです。


地方公共団体へのオープンデータの取組に関するアンケート結果・回答一覧
Excelでの提供は「データ品質ガイドブック」のデータ品質的に14番の移植性が低いです。 β版としてCSVも提供されていますが、質問項目との対応が別途必要なため2番の完全性が低いので、別途2種類のデータクレンジングをしました。(src on GitHub

1. アンケート項目をJSON形式で1行1セルにまとめ、チェックの有無を「v」と「-」で表したもの。 「r2_survey_answers_parsed.csv

2. アンケート項目を別途CSVファイルとしてまとめ、1つ選択の場合は選択肢をデータとしたもの。 「r2_survey_answers_simple.csv

アプリでは、2番を使っています。見た目や分析方法へこだわりたいところですが、ひとまず素早く以前の「アンケート結果表示アプリ」を流用したサンプルアプリとしています。ご活用ください。


オープンデータ自治体アンケート 質問項目
アンケート項目はCSVだけでなく、Markdownも同時に生成しています。

活用しやすいキレイなデータづくり。
先日正式発足したCode for FUKUIで、勝手に進めている政府CIOポータルのMarkdown化、ご協力いただける方、大歓迎です!


地方公共団体へのオープンデータの取組に関するアンケート結果・回答一覧
1788の市区町村のうち、アンケート提出済みが95.9%の1715自治体。73の自治体が未提出と未確認とのことです。提出はお早めに!

経産省のGitHubパブコメ、Issuesで発見したワークショップに参加。 多くの弁護士・弁理士の方々の参加が新鮮。みんなでGitHubによる新しい共同作業を楽しみました。ちょっと慣れは必要ですが,Wordよりいい!という声もあり、ステキな未来を感じました。


グループに分かれてプルリク体験、想定ケースが現実的ではないのでは?など、実務的な話もおもしろい!長い文章用内の修正履歴にはもうひと工夫あるとより良くなりそうなど、改善の余地が見えてワクワクできます。

契約書づくりも共同作業、お互いGitHubでやりとりできる雛形「秘密保持契約書」として条文のみでまとめてみました。 選択肢がいくつかあるので、Markdownを生成するアプリづくりも派生作としてありですね!

日本ではプログラミングが2019年度から小学校で必修化されたので、今後はプログラミングが得意な弁護士の人もどんどん誕生していきますね。

プログラミングはじめのいっぽにオススメ、こどもパソコンIchigoJamのライセンスフリーなCPU設計「RISC-V」採用CPU対応 IchigoJam Rのファームウェアをバージョンアップ!

デジタル化の要、最大10チャンネルのアナログ入力に対応できるようになりました!

アナログな電圧の高さを0から3.3Vを、0-1023の1024段階のデジタルデータに変換してくれます。 合わせて、デジタルをアナログに戻す(DAC、ダック)もレンジを合わせて0-1023で、0-3.3Vの出力としました。

IchigoJam BASIC 1.5β9 ファームウェア (RISC-V版 IchigoJam R用)
- LEDがOUTで効かない不具合修正
- ANA5-11に対応
- DACのレンジ変更(最大4095から1023に) (書き換えには IJUtilities が便利です)

日本政府発行文字環境導入実践ガイドブックにて強く推奨されているJIS X 0213。 文字集合を調べた結果、半角スペースが入っていませんでしたが、会員登録すると読める「JISX0213の仕様書を読むと、半角スペースや、各種制御コードも含まれると明記されていました(X0213_001.pdf)。


JIS X 0213 チェッカー
一通りテストコードを書いて、βを取ったJIS X 0213チェッカーとJavaScriptのライブラリ(JISX0213.js)ができました。ハンカクカナや、全角数字などはJIS X 0213規定外と赤く表示されます。 1byteのコードは唯一0xb5(μの別コード)を除いて有効なJIS X 0213です。「JIS X 0213非漢字一覧」にも記載されていますが、μはUnicodeのU+03bcを使用しましょう。

これで安心して紛らわしい表記揺れが少ないキレイなデータづくりができますね!
JIS X 0213に対応する解析ツール(リンター)も用意したいところです。

作成時に発見した、Wikipediaの記載のまちがい、2つ。

JIS X 0213非漢字一覧
グレーブアクセント付きスクリプトA小文字など4つの文字は、U+251+300と2つのコードポイントが記載されていますが、実際のコードはU+1F71などを使います。(JIS X 0213の仕様書を確認)

マイクロ - Wikipedia
「ギリシャ文字ミュー「μ」に代えて、互換性のためにLatin-1領域に存在するU+00B5「µ: micro sign」があり、こちらを使用するのが良い」とありますが、「Μ - Wikipedia」にも記載されているように、U+00B5はJIS X 0213に割り当てられていないので、U+03BCを使用しましょう。 普通に「ミュー」で変換してでてくるもので問題ありません。

国家のデジタル化の基礎データ「ベースレジストリ」のひとつ、文字。基本ですね!

各府省は、文字情報基盤の活用を推進し、文字情報に関する相互運用性を確保する。また、情報システムを整備する際には、一般的業務に係る情報システムにおいて使用する文字の範囲はJIS X 0213を原則とし、UCS(Universal multiple-octet coded Character Set)に従った表現(符号化及び記述法)で情報システムの整備を行う。
デジタルガバメント実行計画
約6万の漢字を国際化した文字情報基盤ですが、まだ環境によって表示できない文字があるので、約1万文字の漢字を含む、JIS X 0213を原則とする。仕方ないですね。

JIS X 0213の定義が政府CIOポータルで見つからないので、68B09さんがMITライセンスで公開している文字情報定義ファイルを使って、JIS文字チェッカーを作りました。


JIS X 0213 チェッカーβ
このチェッカーによると半角スペースはJIS X 0213では無い!?
JIS X 0213は、2012年に改訂され、JIS X 0213:2012があります。半角スペースを含んだ形になったかどうかが気になるところです。
文字という超基本仕様、オープンデータにしてもらいたいですね。
解決、JIS X 0213 でした!


用語.md
文字に関する用語をマークダウンでまとめました。ベースレジストリの文書からリンクして少しずつ読みやすくしています。

links
- 文字コード入門 - とほほのWWW入門 - とほほのWWW入門
- 文字情報基盤整備事業 | 一般社団法人 文字情報技術促進協議会

文字情報基盤に縮退マップのデータを変換して追加し、より探しやすくなりました。

漢字検索、異体字検索 - 福」たくさんの福!

縮退とは6万の漢字を表現できない環境向けに代替漢字へと変換すること。ユニコード前提な現代ではあいまい検索など、正規化に使うと良さそうです。

文字情報基盤 MJ縮退デモ
難解な漢字をいれると適度にやさしい漢字になります。


縮退マップの利用ガイドにおもしろいことが書いてあります。読みも意味も不明な漢字が400字もあるそうです。


漢字検索、異体字検索 - 秀丸
福井高専の先輩、斉藤秀夫さん開発の有名ソフトウェア「秀丸エディタ」はなんと漢字にもなっていた!?

ここで問題です、JavaScript でこの難解文字 "𤔜㙒𡙌𡗟".length を表示するとどうなるでしょう?

正解は、7!

見た目は4文字なのに不思議ですね。
ユニコードの仕様で異体字セレクタ(IVS)は2つのコードポイントで表現させるので、1つの文字を表現するために2つのJavaScript文字を使っています。

この仕様のせいでJavaScriptの文字列はややこしいことになっているので改善しましょう。 普通の文字列関数、charAtやcodePointAtでは中途半端なコードにしかならなかったり、indexOfの数がずれてしまったりするので、新たに Str.js を作りました。

import { Str } from "https://code4fukui.github.io/mojikiban/Str.js"; console.log(new Str("𤔜㙒𡙌𡗟").length); // 4

見た目と一致する文字は、書記素(グラフィーム)と言います。以前結合絵文字を扱うときに使った GraphemeSplitter を内部に使っています。

Code for Fukui によるオープンソースプロジェクト。社会OS開発、ぜひご一緒に!
code4fukui/mojikiban src on GitHub

先日発表された「ベースレジストリの指定について」で、即効性ありと区分されているデータに「文字情報基盤」がありました。 「漢字」は、日本での文字コミュニケーションの基本です。デジタルで表現できない文字があるとつらいですね。

いろいろな方の尽力により、日本で使われている漢字ほぼすべて、58,862コの漢字がユニコードで表せるようになっています!スゴイ!


漢字検索、異体字検索src on GitHub
こちらで「よみ」と「漢字」から検索できるようにしました。WebFontもありますが、30MBもあるので、58,862コGitHub Pagesに生成した画像データ(mj)を用意して使っています。

Code for Fukui によるオープンソースプロジェクト。低レイヤーから作る社会OS。ぜひご一緒に!
code4fukui/mojikiban src on GitHub

全国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ポータル

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