0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

人間には優しく、内部は厳密に。別名検索から正式IDへ収束させるまで #12|「一輪車を“ネコ”で探せないの不便じゃん」で、Canonical IDと人間の曖昧さを両立させることになった 

0
Last updated at Posted at 2026-09-10

924DEB2E-810A-411C-A50D-1EEC35065D2E.png

連載公開分(クリックで開く)

前回、QRでは、入口が何であっても、最後は正式な対象へたどり着く、という話が出ました。そこで逆に、人間が検索するときのことが気になりました。

私「コンピュータは正式IDで厳密にやればいいじゃん。」

A「うん。」

私「でも人間まで、正式名称を完全に覚える必要ある?」

A「例えば?」

私「一輪車。」

A「うん。」

私「現場で『ネコ』って呼ぶ人いるんだよ。」

A「そうなんだ。」

私「じゃあ『ネコ』って検索して、一輪車が出ないの不便じゃん。」

B「そこでAlias、エイリアス・別名管理ですね。」

私「当時は『普段の呼び方でも探せればいいじゃん』だった。」

ただし、ここでやりたかったのは、単純な、「ネコ=一輪車」という共通辞書だけではありません。

A「違うの?」

私「もっと個人寄り。」

例えば、Dさん。Dさんは、一輪車のことを「ネコ」と呼んでいる。
だから、Dさんが自分のアカウントで、一輪車に「ネコ」という自分用の呼び名を付ける。
その後、Dさんが、自分のアカウントで「ネコ」と検索する。
すると、一輪車が出る。

A「ここまでは分かる。」

私「じゃあEさん。」

Eさんは、なぜか、脚立のことを「ネコ」と呼んでいる。

A「ややこしい人だな(笑)」

私「あくまで例えだよ」

Eさんは、自分のアカウントで、脚立に
「ネコ」という呼び名を付ける。
そして、Eさんが、自分のアカウントで
「ネコ」と検索する。

A「一輪車?」

私「違う。脚立。」

A「同じ『ネコ』なのに?」

私「そう。」

つまり、Dさんのアカウント
「ネコ」
↓
一輪車
IMG_2507.jpeg

IMG_2508.jpeg

一方、Eさんのアカウント
「ネコ」
↓
脚立になる。
IMG_2509.jpeg

IMG_2511.jpeg
A「なるほど。」

私「システムが『ネコとは一輪車です』って決めてるわけじゃない。」

A「じゃあ何を持ってる?」

私「この人が、この正式な物に、この呼び名を付けたっていう対応関係。」

B「つまり、利用者+別名+正式対象のマッピングですね。」

私「それ。」

A「これが今回の芯だな。」

A「でも、別名を増やせるならさ。」

私「何?」

A「正式名称そのものを変更したい場合は?」

私「それは別。」

A「Alias追加とは一緒にしない?」

私「しない。」

B「Canonical Nameの変更とAlias追加は別操作ですね。」

例えば、正式名称そのものが変更された。その場合は、正式名称を変更する。必要なら、昔の正式名称を、別名として残す。

A「昔の名前で検索する人もいるから。」

私「そう。」

A「『名称変更』と『自分の呼び方を追加』は意味が違う。」

私「そこは分ける。」

そして、ここからは将来構想。この辞書の考え方を使えば、多言語表示にも広げやすいと考えています。

私「例えば外国人実習生が、アプリ自体を母国語版で使ってるとするじゃん。」

A「うん。」

私「でも現場で、『これ日本語だと何?』って知りたいときあるじゃん。」

A「その場で毎回AI翻訳?」

私「それだけに頼らなくてもいい。」

同じ正式な対象に、日本語名称。英語名称。必要な他言語の名称。を辞書として紐付けておく。

私「だったら表示する言語を切り替えやすいでしょ。」

B「将来的には、同じCanonical IDへ言語別表示名を持たせるLocalized Layerですね。」

例えば、普段は母国語表示。でも、日本人の担当者へ説明するときだけ、日本語表示を確認する。

私「自分の言葉で使えて、必要なときは相手の言葉でも見せられる。」

A「その場で毎回訳すというより、登録済みの辞書から同じ物の日本語名を見る。」

私「そういう構想。」

ここは、現在のエイリアス機能と、将来の多言語表示を混ぜません。

A「今もう全言語切り替えできる、って話じゃない。」

私「そこは将来構想。」

A「整理するよ。」私「どうぞ。」

私「自分が分かる呼び方で探せる。」
B「Alias・別名管理。」
私「Dさんの『ネコ』は一輪車。」
B「利用者+別名+正式対象のマッピング。」
私「Eさんの『ネコ』は脚立。」
B「利用者コンテキストを含む別名解決。」
私「正式名称も一緒に画面へ出す。」
B「個人語彙と正式語彙の併記。」
私「別名ごとに新しい商品は作らない。」
B「Canonical IDへの集約。」
私「正式名称変更と別名追加を分ける。」
B「Canonical NameとAliasの分離。」
私「将来的には言語ごとの表示名にも広げたい。」
B「Localized Layer。」

A「表では『ネコで探したい』だけなのに。」

私「うん。」

A「裏ではCanonical IDとかName Resolutionとか(笑)」

私「俺の言い方だと、自分の好きな呼び方で探しても、同じ物は同じ物として扱ってほしい。」

A「それでいい(笑)」

こうして、正式名称。表示名。個人の別名。会社ごとの呼び方。将来の多言語。

扱う表示が増えてくると、今度は、別の面倒が目立つようになりました。

同じことを説明しているはずなのに、ヘルプ、仕様書、会話、引き継ぎで、少しずつ内容が違う。

私「……で、今の正解どれ?」

A「また面倒なの見つけたな(笑)」

次回

「機能増えすぎて説明する方が面倒」で、“どれが今の正解?”問題がコードの外まで広がった ヘルプ・仕様・会話・引き継ぎがズレ始め、Single Source of Truthが必要になった

連載公開分(クリックで開く)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?