Мой путь овладения тэгами

24 марта 2023

Тема тэгов к заметкам в персональном корпусе знаний меня давно интересовала.  Одно время я даже отказывался от тэгов так как не смог ими овладеть в должной мере. 

Общее понимание задачи

Что такое тэги к заметкам - это метки, пометы, ярлычки, которые потом помогают быстро отбирать заметки (контент) с нужным ярлычком.  В области управления контентом метки впервые появились как цветные квадратики рядом с фотографией в одной древней и уже забытой программе управления контентом.  Если наделить каким то смыслом желтый цвет и помечать некоторые фотографии желтым, то потом будет очень легко вытащить такие фотографии. Тот же принцип действует и в отношении корпуса заметок.  Если некоторые заметки пометить синим цветом - то потом будет легко вытащить все синие заметки.  

Желательно, чтобы значение метки было легко запомнить и оно как бы подсказывало, например, о чем эта заметка.  Смысл цветовых меток сложно запомнить. Он не очевиден. 

Все заметки в персональном корпусе знаний покрывают одну или несколько тематических областей.   Например 'history', 'knowhow', 'zettlekasten'. Я использую наименования тематических областей на английском языке для того, чтобы подчеркнуть некоторую дистанцию между метаинформацией о заметке и содержимым заметки.  Тут вспоминается разговор Алисы с Белым Рыцарем о том, что название песни отличается от того, о чем эта песня. 

При первоначальном присвоении тэгов желательно не дублировать их.  Например, есть заметка, названная "двенадцать добродетелей рациональности".  Автор рассказывает в ней о качествах рационального мышления и дает ей следующие тэги: "note-taking", "rationality", "zettelkasten", "заметки", "зеттелькастен", "рациональность", "цеттелькастен".  Кроме явного дублирования тэгов на двух языках заметен еще некоторый разброс тематических областей.   Автор пишет о свойствах его понимания рационального мышления и одновременно отдаленным образом увязывает это с процессом написания заметок для системы zettelkasten.  Для меня в заметке рассказывается только о рациональности.  А отдаленные связи с другими темами только затруднят поиск. 

Основное свойство тэга состоит в поддержке простого поиска.  В случае поиска заметок Автор заметки осознает тематическую область интереса, затем вспоминает или находит тэг, который обозначает эту область, и по тэгу находит все заметки в этой области.  Затем он вынужден просматривать заметку за заметкой и находить запись той мысли, которая ему нужна.   

При создании заметки надо осуществить аналогичный процесс.  Необходимо осознать заметку целиком и понять - к какой тематической области интересов она относится, найти один или несколько тэгов и пометить ими заметку.   

И здесь скрывается очевидная сложность.  Не надо отмечать тэгами весь путь к обособлению тематической области, если для этой тематической области есть уникальное слово, термин.  Если есть и в систему тэгов заведен термин "rationality", то достаточно этого термина в качестве тэга.  Путь "zettelkasten" -> "note-taking" -> "rationality" будет наполнять результаты поиска по тематическим областям "zettlekasten" и "note-taking"  лишними заметками и затруднять поиск мыслей в них. Присвоение дополнительных тематических областей напоминает переедание и набор лишнего веса.  Пользы для персонального корпуса  от этого не прибавляется.  

Альтернативная ситуация складывается в том случае, если одиночного термина для тематической области нет.  Например, для  моей области интересов "философия фотографии"  мне пока не удалось придумать такое удачное слово.  (Это общая проблема языка. Никто не придумал уникального слова для такой области как "реинжиниринг бизнес процессов", например.) Приходится использовать два тэга - "philosophy" и "photography".  Это затрудняет ввод условий для поиска. Для поиска заметок по теме philosophy надо обязательно указать дополнительное условие "и не photography". 

Практическая реализация задачи

Практическая реализация задачи поиска по тэгам на основе ПО Obsidian отличается некоторой затейливостью.  

Для присвоения тэгов я использую только строку во frontmatter 'tags:'. На текущий момент проще вводить тэги в эту область через плагин "Frontmatter Tag Suggest".   Я выбрал такое расположение тэгов из эстетических соображений чтобы подчеркнуть их метаинформативность. 

Поиск заметок по тэгам может быть реализован двумя способами.   **Первый способ** состоит в использовании окна поиска в левой боковой панели Obsidian, Обычные слова там ищутся с помощью простого ввода.   Для поиска тэгов надо записать чуть более сложную конструкцию `tag:#language` и Obsidian найдет все заметки с тэгом `language`. 

Если заметки относятся сразу к двум предметным областям (например философия фотографии), то условие поиска будет выглядеть вот так: `tag:#philosophy tag:#photography`.  Это как бы пересечение двух множеств - множество заметок с тегом филолософия и множества заметок с тэгом фотография. 

Если надо найти заметки про философию, но не связанные с фотографией, то условие поиска будет выглядеть вот так: `tag:#philosophy -tag:#photography`.  В данном случае из множества заметок про философию вычитается множество заметок про фотографию и остается результат.   

Условия поиска в операции вычитания множеств заметок нельзя поменять местами.  Условие поиска  `tag:#photography -tag:#philosophy`   выведет множество заметок по фотографии, не имеющее тэга философия. 

Второй способ поиска информации связан с созданием специальных заметок типа TOC (Table of Content).  Такие заметки можно делать вручную - и я так и делал, пока не перешел на систему тэгов.  Позже я покажу пример такого содержания. Второй способ - использовать запросы dataview. 

```dataview
TABLE WITHOUT ID 
aliases as Name,
tags as Tags,
link(file.name) as FileName
FROM "2 Base" and #photography and -#artwork
SORT aliases ASC
```

В данном случае используется довольно простой запрос к корпусу заметок.  Его особенность в строке `FROM "2 Base" and #photography and -#artwork`. В этом условии я задал отбор заметок из папки "2 Base" с тэгом "photography" и без тэга "artwork".   Дело в том, что у меня в корпусе заметок хранится некоторое количество изображений и заметки про изображения обозначены тэгом "artwork".  Комбинация "artwork" и "photography" обозначает заметки с изображениями - фотографиями.  В них изображения выступают в качестве основного содержания и нет смысла вытаскивать их в поиск 

Просмотр таблицы, построенной с помощью запроса dataview выглядит вот так:

Здесь любопытно отметить, что Obsidian при подведении мышки к ссылке на заметку показывает ее полный путь внутри корпуса заметок и в отдельном окне показывает первые несколько строк текста заметки.  В данном случае заметка с конспекта лекции А.Великанова в "Фотоплей".  Понятно, что атомарная заметка будет показана большей своей частью при таком быстром просмотре. 

В заключении хочу рассказать еще об одном рабочем инструменте.  У меня в Obsidian есть стартовая страница с названием `000000 Homepage`. Благодаря такому названию ее легко найти.  Содержание стартовой страницы - TOC по всему корпусу заметок.  В виде списка перечислены все основные тематические области интереса.   Выглядит это вот так:

Здесь важно обратить внимание на слова на английском после названия области интересов. Серым цветом автоматически выделены тэги, обозначающие тематическую область. Например `philosophy` обозначает тематическую область философии вообще.  Назначение этой страницы - подсказка по обозначениям тематических областей.  Например, если заметка про этику (что такое хорошо и что такое плохо) - я присвою ей тэг `ethics` и не будут присваивать тэг `philosophy`, хотя этика и может рассматриваться как раздел философии. 

Также стоит обратить внимание на отметки после тэгов в строке с названием области интересов.  Процесс изменения структуры корпуса заметок растянут во времени.  Если никакого значка после тэгов нет - я вероятно еще не разбирался с обозначеной областью интересов.   Значок `+` обозначает тематическую область, в которой я разобрался и доволен наведенным порядком.  Значок `?` обозначает некую проблемность данной тематической области. 

По мере накопления заметок в персональном корпусе наступает такой момент, когда одним тэгом обозначается слишком много заметок - 50..100..200.  Надо разделять тематическую область на несколько и это тема отдельной заметки в будущем. 

Краткое резюме

Тэги - метки, которые облегчают отбор информации в Obsidian.  Я использую слова английского языка в качестве меток и обозначаю им предметные области моего интереса.  При присвоении меток необходимо стремиться к разумной минимизации их количества, чтобы сократить объем поиска.  Иногда уникальных терминов для предметной области еще нет и тогда приходится присваивать несколько меток сразу.  Метки для областей интересов удобно хранить на стартовой странице после ссылки на специальную заметку с перечнем  заметок в этой области интереса.   Находить заметки в области интереса можно с помощью стандартного поиска Obsidian или через запросы dataview, записанные в виде специальных заметок с перечнем заметок в тематической области.