Tag > 名寄せに関する違和感

### 前置き

2015年から使用しているサービスで「タグの名寄せ」という処理を実施されるということを最近知った。
実際に方針が決まり、一部実施されたようだ。

名寄せに関する違和感を記載しておく。
情報共有サービスの設計者が名寄せを検討する時の一意見として役立てば幸いである。


### タグの名寄せ

名寄せの実装についてはサービスによって変わる可能性があるため、抽象的な部分も含むかもしれないが、定義しておく。
自分がそのサービスで見た動作なので、サービスによっては同じ結果ではないかもしれない。
また、そのサービスが別の振る舞いに仕様変更するかもしれないため、現時点の見たことを記載しておく。

- （例として）「A言語」というタグで定義されていた記事がタグ「A言語」で検索するとタグ「A」として表示される
- 目的としてはタグ「A」で検索時にタグ「A言語」とタグ「A」の両方が検索結果に出てくる
    - (注記：2022年5月中旬現在では、「A言語」で検索した結果と「A]で検索した結果がそれぞれ異なるようだ。データ更新がまだ終わってないのかもしれない。タグの表示だけが「A」になる？）
- 他の例として、以下も含まれるが、後述の違和感については同じ感想を持つ
    - 日本語タグを英語タグにする
    - 表記がバラバラのものを一つの表記に合わせる

内部データそのものを書き換える場合と、リンクだけ変更する場合の二者がある。



## 違和感

### 違和感1. ユーザのデータを運営が書き換える

運営がユーザのデータを書き換えるサービスに違和感を感じる。

サービス利用開始前に書き換えのことを知っていれば、自分は一ユーザとして、そのサービスを利用するだろうか？
記事数が少ない場合であれば、他のサービスを探すかもしれない。


### 違和感2. ユーザに選択肢がない

ユーザには、タグの名寄せを拒否する選択肢がない。

StackOverflowに投稿した記事が他の人によってタグ編集される例はある。それに関しては違和感を感じたこともあるし、そのまますんなり受け入れられた場合もある。
（後者は間違ったタグをつけた時の修正提案）

編集リクエストで提案を受けるのは良いが、その提案を受け入れるかどうかの選択肢がユーザにほしい。

一方で、ユーザごとに拒否できるとサービスとして名寄せが完遂できないので、拒否する手段を用意しないことは理解できなくもない（名寄せには賛成できないが）。


### 違和感3. 用意したものと異なるアウトプットになる (明示的ではない)

元々「A言語」というタグで記事を書いた人が自分の記事を見直した時にタグが「A」となっていることに違和感を感じるだろう。
「タグの名寄せ」の定義が目立つところにあると、その説明を読んで納得するかもしれないが、その前には「これってシステムがバグっているのかな？アルファベットで始まるタグは日本語が欠落するのかもしれない。運営に連絡しておくかな」という親切なユーザがいるかもしれない。

実際に、「32bit」というタグが「undefinedbit」に変換されるバグを見たことがある (2018年7月5日)。ユーザはタグの処理ミスと捉えるかもしれない。

「A言語」で書いた記事が「A」タグとして表示され続けると、記事作成時に「A」タグを使うことになるかもしれない。
名寄せの処理がリンクだけを書き換える場合、内部データとして「A言語」タグの記事と「A」タグの記事に分断される。それによってExport後の記事データが検索時に分断してしまう。


### 違和感4. すべてが同じルールで名寄せされない

名寄せは機械的に全部を一括実施されるわけでなく、決められた対象について逐次実施されるようだ。
そのため、名寄せされるタグと名寄せされないタグが混在して、違和感を感じることになる。

例として、「A言語」は「A」に名寄せされるが、「B言語」は「B」に名寄せされない、という状況がしばらく続く。

その状況を説明する場合、タグ名寄せの一覧ページが用意されることになるのだろうか。


### 違和感5. 複数サービスを利用するユーザはタグのルールを決めている場合がある

- [[WIP] 技術情報 > tag > Qiita, esa.io, はてなブックマーク, Scrapboxなどで使っているタグリストと意味](https://qiita.com/7of9/items/3c7451453fcab11d8aaa)

タグというのは様々なサービスで使われる共通機能の側面があると考えている。

異なるサービスでそれぞれ独自のタグ定義にするとmental overloadが大きいため、自分は異なるサービスで同じタグを使用するように最近はしている。

タグの名寄せにより、そのルールが崩される。
そして、ユーザはどのサービスは独自ルールなのかを頭の片隅に持っておくことになる。そのことを忘れると、意図しない検索結果に違和感を持つことになる。
(サービスAでは「A言語」は「A」になり、「B言語は」「B]にならない。「C言語は」...。サービスBでは...)


### 違和感6. 名寄せされたタグでは他のサービスで検索時に検索ノイズが多い

違和感5と関係するのであるが、「A言語」というタグがとあるサービスで「A」になるとする。
複数サービスでの検索のmental overloadを考えて「A」に統一するとしたいが、実際にできない場合がある。

タグ検索は「完全一致検索」であるサービスが多いが、とあるサービスでは「前方一致検索」である場合がある。

「A言語」タグで希望の記事がすぐに検索できていたが、「A」タグに統一すると「前方一致検索」で「Adobe」や「Acrobat」などAで始まるタグが多数見つかり、検索ノイズが多すぎて検索そのものを断念することになる。

「A」と「A言語」を「A言語」に名寄せした場合は、この問題はそもそも起きないだろう。
（その場合でも、他の違和感が解消するということではない）


### 違和感7. 名寄せはそのサービス独自の動作である

- 関連: [2018-03-21 技術情報およびデータを失う技術 + 2019-04-07追記](https://qiita.com/7of9/items/75c0e5b94eeb605197b5)

サービス独自の振る舞いに依存すると、そのデータを次のサービスへ移行するときに困る。

その観点から、独自の振る舞いをするサービスを利用候補から外すことを考える。
(そのサービスをどれくらい深く使っているかによって簡単にやめないかもしれないが）

## 疑問点

### 疑問点1. サービス利用終了のためにExportすると名寄せ前のタグなのだろうか？

そのサービスが終了することになったり、ある理由でそのサービス利用をやめようと考えた時に自分の記事をExportするとする。
そのExportするデータのタグが名寄せ前のものか、名寄せ後のものか。

名寄せ後のタグになっている場合、違和感6で記載した問題が次のサービス利用時に発生する場合がある。

### 疑問点2. 名寄せを取り消す方法をそのサービスが考えているだろうか？

名寄せをしたけれど、他のユーザの反対意見などもあり、取り消すことにしました。となった時に、名寄せしたデータを元のタグに戻せるようにしているかどうか。

「A言語」タグと「A」タグを同一のタグに書き換えしている場合、書き換えたものだけを元に戻すことは困難を要するだろう。

## 違和感の少ない名寄せ

名寄せされることに違和感が少ない場合はある。

- 表記ミスの訂正
    - スペルミス
    - カンマやシャープなど余分なものがある

ただし、ユーザによってはtwitterとそのサービスで同じようにシャープ付きのタグを使いたい、というのはあるかもしれない。


## 終わりに

長期利用しているサービスの名寄せに違和感を感じている。
違和感を感じながらもそのサービスを利用しつづけるか、あるいは、別のサービスに移動するかは、考えているところである。

当分は記事を書く頻度がさらに減りそうではある。


### 追記 2022-06-18 

[タグの名寄せリクエスト一覧](https://github.com/increments/qiita-discussions/discussions/237)

> `3. 英語と、英語の読みをカタカナ表記しているだけの場合(network/ネットワーク)
> → 片方があまり存在せず、記事数に大差がついているときは多い方へ揃え、どちらも多い場合は 英語 に揃える

違和感。

既存のタグの機能を変更するのではなく、名寄せ用のタグを追加すればいいのにな。
名寄せされたはずの「C言語」と「C」で検索結果が異なるままなのも違和感。