🧩

「四次元年表」事象登録のまとめ 1

2023/08/23に公開

JOINを待ちながら

ServerpodのJOIN検索未対応、という回答ににちょっと呆然としながら、
それでも「現在開発中」というナカの人の言葉に、なら待つかぁ、と思う今日この頃。
この際、登録のほうを見返して、まとめておく。

table構成

多元的に検索できる年表Databaseを目指す「四次元年表」。
「歴史を見渡す、でも語らない」がキーワードの一つ。
だからDatabaseに登録するのも、数字や50字以下の言葉のみ。
画像なし、リンクなし・・・・簡単そう! ・・・と自分でも思うのだが、なかなか進まない。

必須項目・・・三件で1table

  • いつ double 年単位 (時代区分することで入力桁数を抑えている・・・-13.8 Billionとか)
  • どこで String とりあえずここでは「それが起こった地点」の現在国名
  • なにが String 50字以内で命名 人名を含むことあり

任意 詳細情報(検索項目)・・・項目ごとに1table

  • いつ 月日(int)、local歴表示(ヒジュラ暦、和暦etc)(String)
  • どこで 都市名(String)、当時の国名・都市名(String)、緯度経度(double)
  • だれが 関係者、関係国、関係団体など (String)
  • 他 カテゴリー、キーワード (String)

relational table

詳細情報の各IDと必須項目を連結 int

表記揺れ対策

「四次元年表」に入力するのはuserで、Database担当のエンジニアではない。
だからルールはできるだけ少なくしたい。
でもアメリカ、US、USAなどの表記が混在したら、一つの国として認識できなくなる。
なのでできるだけ、選択肢から選んでもらう。

表示内容が確定していて、変更があるとしても稀で、一つだけ選ぶもの。
現在の国名(国連加盟国・地域等)はdropdownButtonから選ぶ。

ChoiceChip

一つだけ選ぶが、追加が可能。
都市名、当時の国名・都市名はChoiceChipから選ぶ。
既に登録されているものがChipで表示される。
もしそこに含まれていなければ、新たに追加でき、すぐに選択肢の一つとして反映される。
これによって、表記揺れが防げる。

FilterChip

複数選択が可能で、追加も可能。
多くの用語はこれで選択する。
複数選択された結果はListになるが、backgroundで分解して、1用語ずつrelationを設定する。

UI構成

必須項目、任意の詳細項目の入力画面をtabによって移動していく。
最終画面で入力内容が一括表示されるので、確定ボタンを押すと登録される。

現状、一括入力のみ

現在、実装できているのは、上記を同時に入力して登録する方法だけ。
既に登録されている事象について、詳細情報を追加登録する導線はまだ引けていない。

その他の課題

緯度経度問題

「四次元年表」の重要な目的の一つは位置表示だ。
それが「どこ」で起こったかを、文字だけでなく、地図・地球儀上にプロットする。
だから本来、緯度経度は必須情報なのだが、
それをuserに要求するのは酷かなと思うので、任意入力になっている。
これを国名や地名から自動入力できるようになればうれしいが、
それにはAIを導入しないと・・・ということで、だいぶ先の話になりそう。

もう少し現実的な問題としては、
十進法表記と度・分・秒表記の混在がある。
Wikipedia一つに限っても、緯度経度表記は混在している。
これを元にuserが入力しようとすれば、当然「四次元年表」でも混在するだろう。

ChatGPTによれば、度・分・秒表記の緯度経度を誤って十進法のように入力したら
そのズレは最大約30kmだそうだ。(確認していない)
待ち合わせ場所の指定としては致命的だが、「四次元年表」の精度としてはどうだろう。
例えばフランス革命のバスチーユ陥落からベルサイユ宮殿への行進について、
二つの地点の緯度経度がズレたら、それはちょっと変な感じになるかもしれない。
それぐらいの問題かな・・・。

具体的なcodeについては次回以降

Flutter大学

Discussion