logo
/
🧾2025-01-30 タグとリンクの使い分けを再考する
2025-01-30

経緯

  • k4a-logのVault運用を考えるうえで、タグとノート内のリンクを再度整理する必要が出てきた
  • 現在2hoplinkはlink経由のlinkだけを対象としている
    • 使ってる中でタグ経由も表示したくなってきた
    • しかし、タグも表示するのであればリンクとタグの違いは何なのだろうか
    • (昔、タグは属性でリンクは名前という結論付けをした)
  • obsidianと現状のシステムの制約や使い方から考えると以下のような違いになる
    • タグ
      • ノートの実体は持たない
      • 検索や集計のトリガーになる
        • =無秩序・無条件にトップレベルに出現するので、厳選が必要
      • 基本的に文章中というよりは文章外(ノートの最初や最後)、もしくは印付け(#todo)に用いる
      • 基本的には単体で完結
    • リンク

タグやリンクを使うユースケースから考えてみる

  • 検索のトリガー:タグ
    • タグ
    • 検索画面にタグ一覧が表示されてクリックするような感じ
  • ノートの印(ステータス)付け:タグ
    • #todo #pending#書きかけ、などのタグ
    • [[todo]]などで代用できないこともないが、[[todo]]#todoを使用した集計ページの役割なきがする
  • ノートのカテゴリ分け
    • タグでもリンクでも
    • ここがタグとリンクの一番むずかしいところ
    • ↓のノートの関連付けにも関わってくるが
      • リンクをそのリンク自体を貼ることが目的ではなく、そのリンク経由でそのリンクを持つ他のノートと関連付けることを目的に貼ることがある(ややこしい)
      • これをリンクタグと読んでいるが、これらは文中ではなくノートの最上部に置くことが多い
      • これは実際のタグを使うべきなのではないか
        • ただ、タグは↑に書いた通り検索のトリガーに使いたいのであまり細かく乱発したくはない
        • タグは所謂ブログのカテゴリ(もしくはタグ)の立ち位置であるべき
        • しかしそうなると何をタグに使って何をリンクタグにするか毎回悩むことになる
        • タグは事前に用意したものだけ使うという決め事にすれば多少は解決されるが、使いたいタグがなくて追加したい時により悩むことになる
        • 例えば
          • #programmingはタグ(カテゴリ)として適切だろうが、#reactはどうなのか
            • #reactは確かに#programmingの子要素なのでなくても良い用に思えるが、しかしreact固有のノートの場合にはつけたくなる
            • ただそうするとreactノートには#programming#reactの2つが毎回つくので両者が乱発される
            • かと思えば#programmingがつかない#reactノートも無いとは言えない
              • その際には#software#スキル#宣言UIなどをつけるのか?
            • #reactは基本的に#typescriptとセットなのだが、じゃあそれもつけるのか
              • つけないとして#reactじゃない#typescriptもあるので#typescriptが必要ないとも言えない
        • タグは1ノートに3つまでとか決めればなんとかなる?
          • なんだかんだタグとして使いたい言葉が100個を超えるとは考えにくい
            • それなら多少ルールが甘くても検索しやすいというメリットを取るべきなのでは?
          • 大分類、中分類、小分類、のようなイメージ
            • 大分類:#料理#programmingブログなど
              • (ブログが大分類の場合programmingがその下に来るのでは...?)
              • 「料理を管理するアプリを作る」のような場合、料理とprogrammingは同列なのでは?
        • どうせ重複してタグの数自体は無尽蔵に増えないのだから全部つけちゃえというのも無しではないが暴論
          • ノートの上部に関連するものをすべてつけるのはあまりに面倒で、ノート自体を書くことのハードルとなりかねない
        • タグと同名ノートの扱い
          • [[react]]#reactをつけとけばいいという話ではあるが、ノートから言及するときにリンクとタグどっちを使用するの?とはなりそう
          • [[2025-01-30 reactの勉強]] -> [[react]]は1hopだが、[[2025-01-30 reactの勉強]] -> #react -> [[react]]は2hopという違いもある
            • すべてがフラットなscrapboxはこの辺が面倒じゃないのが良い
      • カテゴリタグの厳選が難しいならカテゴリタグをなくす、という決断
        • 個人なら良いかも知れないが、公開をすることを考えると所謂ブログのカテゴリやタグのような閲覧の入口となるものがある程度並んでいるのは有用
      • 「カテゴリ分け」の用途ならMOCでいいような気もする
        • カテゴリが膨大な場合はそもそも見にくいのである程度厳選は必須
        • ボトムアップではなくトップダウンなので、別途整理は必要になる
      • タグはキーワードの拡張で、カテゴリは分類と考えるのはどうだろうか
        • 前者のキーワードはノート自体が代替できるが、後者はノートが包括されるので代替はできない
      • タグとリンクの使い分けの検索結果
  • 日付:リンク
    • 日付タグを辞めるか検討するを昔記述した
      • 補完やカテゴリやステータスタグのノイズとなるので辞めるという結論に至った
      • 日付はデイリーノート経由でつながるのが好ましいと思う
    • タグとして使うことに有用性もある
      • #2024/01/02のような階層タグを使用することで、2024年2024年1月2024年1月2日のような異なる粒度で集計が可能になる
      • まあでもここは集計側の工夫でどうとでもなると思う
  • ノートの関連付け:リンク
    • 関連付けとは何を指すのか
    • ノートの直接言及ならリンク以外はない
    • ノートの間接連携ならタグでもリンクでもある
      • ただし、関節連携としてならタグのほうが強い気がする
      • リンクはあくまで直接言及するリンクに関心事があるだけで、その先(2hop)は副次的につながってくるもの
        • ※もちろん2hopを意識したリンク付けは普通に使うが(リンクタグ
    • ただ基本的にはリンクだろうと思う
  • 愛用している https://scrapbox.io/medianmoe/ は整理の仕方うまいなと思う
  • でももともとかなり構造化されたデータなのでやりやすい点はあるはず
    • スキル、装備、テクニック、など対象が決まっていてるのでリンク(タグ)付けもしやすい
  • ニコニコ動画のタグ概念はかなり多いが使いやすい
    • やりたい動作はまさにこれなのかも知れない
      • backlink一覧の表示で代用できる?
      • ノートの内容は見たくないときもありそう
        • でもこの辺は見せ方の問題(集計側の責務)で個別ノートの関心事ではないのでは?
    • 必要なのはリンクの見た目上のタグ化
      • ※obsidianを使うならそれは無理
      • #[[link]]をリンクタグとして解釈するのはあり

整理

タグとリンクの使い分けの検索結果や上記メモをまとめて整理してみる

純粋なタグの用途

色々な言論はあるが、タグはできるだけ少なくすべきというのは共通
これだという完全な答えはないが、純粋なタグは以下の2つの目的で使うのが良さそう
  • ステータス付け
  • 集計ID
この2つをリンクで代用するのは厳しいよね、というのは概ね理解してもらえると思う

リンクタグ

実装

記法: #[[リンクタグ]]

Obsidian上

obsidian上だとattachments/Pasted image 20250130222911.pngのようにただのリンクの前に#が付いただけの表示になるがこれは仕方がない
普通に遷移はできるのでリンクとしての役割は損なっていないため特段デメリットは無い
強いてあげるなら、k4a-log(システム)側でリンクタグとして正しく解釈されるかがobsidian執筆時にはわからないということだが、実装を作り込めば問題は無いだろう

k4a-log(システム)

文章中(前後にスペースがない)でも、単独でも常に解釈する
以下4つはすべて解釈される
単独でも
#[[リンクタグ]]
連続でも
#[[リンクタグ]]#[[リンクタグ]]
文章中の#[[リンクタグ]]でも同じ
通常のwikilinkと全く同じ

クリックした時の動作

  • 動作整理
    • 有効リンク
      • リンク自体:ノートに遷移→これは変わりようがない
      • アイコン
        • hasLink検索
        • ノートのバックリンクで良いのでは...?
          • いや、ニコニコの動作を思い出して、リンクは大百科(ノート)でアイコンは検索が良いか?
          • ※ニコニコの場合(単語)が検索でアイコンが大百科で、動作が逆なことに注意
    • デッドリンク
      • リンク自体
        • 今はhasLink検索に飛ばしている
        • 疑似ノートに遷移してbacklinkやtwohopリンクを表示するのもあり
          • NotFoundとの兼ね合いをどうするか
            • WEBである以上、NotFoundとそれによる類似表示も欲しい
        • こっちを無効にすれば動作を共通化できる?
          • 共通化はできるけどせっかくのクリック領域を狭くするのはどうなんだろうか
      • アイコン
        • リンク自体のクリックを検索に飛ばす場合、アイコンも全く同じ動作になってしまう
        • もし同じ動作にするならクリック領域も1つにすべき
        • ただ、そうなるとリンクタグではない通常リンクのデッドリンクはどうなるのか
  • 見た目がタグっぽければ、アイコンをクリックできる必要はない?(普通のリンクと同じ動作)
    • 検索ページは2hopが表示されない
      • backlinkと2hoplinkは実質的な検索動作といえるので上位互換?
      • 検索に2hopが必要なのか?
        • 2hopは実態があるノート→概念→実体がつながるから価値があるわけで、検索は直接言及が欲しいだけ、そこからもう1個はいらない気がする
        • デッドリンクも実質同じことが言えるが、それは違うような...
    • ノートが検索に機能的に劣るのは
      • ノートの内容は見たくなくて、関連だけみたい(探したい)
        • サイドバーに関連を表示すればある程度は解決できるが、幅が狭いときには該当しない
      • ページネーションやソート
      • (もし2hopやbackに画像を表示しないなら)画像
        • タイル状に表示しなくても小さくサムネイル表示位はした方が良い?
        • ちっちゃすぎてほぼ意味ない
          • attachments/Pasted image 20250131161938.png
2025-01-31
有効リンクデッドリンク
リンク普通にノートに遷移hasLink検索
アイコンhasLink検索hasLink検索
とりあえずこの形で実装
デッドリンクがリンクとアイコンのクリック領域が別なのに同じ動作になってしまうが、リンクタグでないデッドリンクとの差異を産まない方を優先した