Здесь будет набор коротких гайдов/объяснений по хранилищу.

Быстрые ответы на сложные вопросы

  • Что делать с моим старым хранилищем?
    • Не удалять. Ничего не затирать.
    • Начните постепенно использовать новое хранилище. Когда вам понадобится заметка из старого, просто перенесите её контент в новое.
    • Переносить всё скопом не нужно: вы переходите не просто из папки в папку, а меняете сам метод мышления.
  • Что если какие-то плагины умрут (например, Dataview или Templater)?
    • Плагины – это “клей” и “магия”. Если они умрут, автоматизация остановится, НО ваши данные останутся.
    • Это просто Markdown-файлы. Текст, ссылки и знания никуда не денутся, их можно будет прочитать из того же VSCode.
    • Касательно экосистемы: если перестанут работать гиганты вроде Dataview/Templater, то сообщество либо починит их пулл-реквестами/форками, либо быстро найдет альтернативы.
      • В любом случае не стоит переживать из-за этого. Вы делаете заметки и развиваете себя в первую очередь
      • Если что-то сломается, то откатитесь на какое-то время на предыдущую рабочую версию плагина и продолжите свою работу
  • Как это работает на мобильных устройствах?
    • Работает приемлемо для поиска, чтения и быстрых заметок.
    • Все скрипты функционируют. Меню Alt+P вызывается свайпом сверху вниз.
    • Но сложные таблицы и глубокий рефакторинг – это задачи для десктопа. Не мучайте себя и не пытайтесь заниматься архитектурой базы знаний с телефона.
  • Производительность на масштабе 10k+ заметок
    • Быстрый переключатель и поиск работают быстро.
    • Первая индексация займет время, но это единоразово.
    • Узкое место – таблицы Bases.
      • Если вывести 1000 строк с 20 колонками – будет лагать при скролле.
      • Поэтому в системе стоят лимиты на вывод.
      • На практике же вам никогда не нужно видеть все заметки сразу. Вы будете работать с выборками (например, “project” + “work” + “todo”).
  • Что мне МОЖНО менять, а что НЕЛЬЗЯ трогать?
    • Теоретически вы можете менять всё, если понимаете, как работают те или иные механизмы.
    • Стратегически на старте я запрещаю вам лезть под капот :) Это приведет к изощрённой прокрастинации.
      • Сначала научитесь создавать проекты и добавлять источники
      • Делайте проекты и изучайте источники
      • Потом разберётесь, что можно сделать поверх и вокруг и как это всё работает внутри
  • Что делать, если я нашёл ошибку или баг?
    1. Внимательно прочитайте текст ошибки. Это вообще ошибка?
    2. Нажмите Ctrl+Shift+I -> Console и посмотрите красные строки.
    3. Сделайте скриншот ошибки и спросите у AI
      • Попробуйте разобраться и решить проблему самостоятельно
    4. Если не помогло – пишите в чат с описанием проблемы.
  • Почему нет одной версии хранилища? Система нестабильна?
    • В современном мире софта “финальная версия” обычно означает “заброшенный проект”.
    • Obsidian постоянно обновляется, API меняется, появляются новые плагины.
      • Вдобавок я занимаюсь R&D, что “вынуждает” меня в процессе работы тестировать новые инструменты/методы/подходы и отбрасывать мусор. Это дает мне ценный опыт и более глубокое понимание процессов, которое находит отражение в изменениях, вносимых в хранилище.
    • С другой стороны, есть вещи, которые в системе остаются неизменными – структура и метаданные, которые эту структуру определяют.
      • То есть к самим данным я не прикасаюсь.
  • Если я захочу уйти, смогу ли я забрать свои заметки без лишних метаданных?
    • Да. Это ваши файлы.
    • Метаданные хранятся в стандарте YAML. Если они будут мешать в другой программе, их можно вычистить любым скриптом или RegEx-заменой.
  • Почему так сложно?
    • Потому что это профессиональный инструмент, а не игрушка.
    • Вы учитесь паттернам, которыми будете пользоваться годами.
      • Система сделана на вырост.
    • Навыки структурного мышления и декомпозиции, которые вы получите, окупятся, даже если вы потом удалите Obsidian, сожжёте свой ноутбук и отправитесь жить в лес.

Две главные механики

В хранилище есть две основные идеи, которые формируют рабочий процесс:

  1. Меню Alt+P
  2. Системные заметки

Главное меню Alt+P

Меню Alt+P – это место с которого запускается работа.

  • Что я читаю? Alt+P -> sources
  • Что я делаю? Alt+P -> projects
  • Какие есть задачи? Alt+P -> tasks
  • Хочу добавить книгу. Alt+P -> new -> source
  • Хочу записать идею. Alt+P -> new -> inbox

У вас 0 заметок. Вы начинаете свою работу с Alt+P.

У вас 10000 заметок. Вы начинаете свою работу с Alt+P.

Alt+P – это универсальная точка входа, с которой начинается работа.

Cистемные заметки

В хранилище используется абстракная, иерархическая логика для упорядочивания. Она состоит из 4-ёх типов заметок:

- 🗺️ category
    - 🔎 meta-note
        - ⚡ problem

- 🧬 hierarchy
  • Category. Широкая область или широкий контекст
    • Это главный дашборд, мощный контейнер, который с помощью таблиц с фильтрами и Mermaid-схемы дает обзор всего, что находится внутри области
  • Meta-note. Тематический хаб или Roadmap
    • В этой заметке можно вести подробное исследование по конкретной теме
    • Все мета-заметки должны иметь категорию
  • Problem. Исследовательский вопрос или проблема
    • Это конкретная задача или исследовательский вопрос в рамках мета-заметки
    • Проблема должна иметь категорию и мету
  • Hierarchy. Агрегатор атомизированных заметок
    • В этой заметке собираются связанные между собой заметки
    • Иерархическая заметка должна иметь в метаданных хотя бы категорию

Приведу личный пример. У меня есть вот такая структура:

- 🗺️ artificial intelligence
    - 🔬 AI-powered medical decision support
        - ⚡ search for a patient in the database
        - ⚡ identification of symptoms
        - ⚡ tests and recommendations to the doctor
        - ⚡ test analysis and recommendations to the doctor
        - ⚡ AI diagnosis
        - ⚡ AI treatment planning
        - ⚡ patient information based on data
  • 🗺️ artificial intelligence – это глобальное направление
  • 🔬 AI-powered medical decision support – это моё исследование, которым я занимаюсь
  • ⚡ ... – это проблемы, которые я выделил и которые мне нужно решить

Как вы могли заметить, такое структурирование весьма неплохо подходит для R&D. И это неудивительно, потому что я сам занимаюсь R&D и соответственно я заточил эту систему для R&D. Было бы странно, если я занимался R&D и делал систему не для R&D :)

Однако в начале я сказал, что это абстрактная, иерархическая логика. Это значит, что её можно использовать не только в исследованиях, но и в других областях, где есть иерархичность.

Откуда черпать вдохновение при построении своей структуры?

Можно это делать из библиотечной системы Дьюи. Например:

- 🗺️ 170 Ethics
    - 🔎 172 Political ethics
        - ⚡ 172.1 Ethics of leadership and authority
        - ⚡ 172.2 Corruption, conflicts of interest
        - ⚡ 172.3 Dirty hands and compromise
        - ...

Вам не нужно повторять нумерацию. Просто уловите логику вложенности.

Также мне нравится система JohnnyDecimal:

- 🗺️ 20-29 Home Business
    - 🔎 21 Administration
        - ⚡ 21.11 Business registration
        - ⚡ 21.12 Office insurance
        - ⚡ 21.13 Policies and procedures
    - 🔎 22 Finance
    - 🔎 23 Products
    - ...

Вам не нужно повторять нумерацию:) Просто уловите логику вложенности:)

Категории для старта

Однако необязательно и даже очень вредно делать такие сложные структуры с самого начала.

Создайте минимальный набор категорий, который описывает контексты, в которых вы находитесь. Например такие:

- 🗺️ work
- 🗺️ study

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

Иерархии

Вы, наверное, спросите, а что насчёт 🧬 hierarchy?

Категории, метазаметки и проблемы – это классификаторы, с помощью которых вы будете делать выборки по источникам, проектам и людям. Это ограниченная система, и она ограничена намеренно.

Неограниченное количество уровней классификаторов может привести к онтологическому лабиринту, в который будет затруднительно что-то добавить и, что хуже, найти.

Но что, если хочется углубить структуру без особого вреда системе? Более того, а где происходит синтезирование и структурирование самих заметок?

Это происходит в иерархиях.

Пример. Вы историк, который изучает историографию.

Вы создали такую структуру.

- 🗺️ history
    - 🔎 historiography

К 🔎 historiography у вас относятся следующие источники:

Вы всё это прочитали и в сумме у вас уже более тясячи заметок. Все они лежат в источниках.

Теперь поставим себе такую задачу. Мы хотим во всех этих источниках найти только те заметки, которые относятся к анализу и интерпретации исторических процессов и событий. Как эту задачу можно решить?

Можно отрыть 🔎 historiography и начать агрегировать ссылки в этой заметки. Но можно также создать 🧬 analysis of historical processes и 🧬 interpretation of historical processes.

Получится, что мета-заметка выполнит функцию упорядочивания источников, а иерархические функцию агрегации весьма специфических заметок.

Далее вы можете развивать и углублять структуру в таком стиле:

- 🗺️ history
    - 🔎 historiography
        - 🧬 analysis of historical processes
        - 🧬 interpretation of historical processes
    - 🔎 methodology of history
        - 🧬 methods of historical research
            - 🧬 comparative analysis in history
            - 🧬 archival research in history
            - ...
        - ...
    - 🔎 ancient world
    - 🔎 middle ages
    - 🔎 ...
    - ...

Плюс в том, что у иерархических заметок можно легко менять метаданные, вкладывать одни иерархии в другие. Это даёт контроль, но не ломает общую, основную структуру.

Вдобавок в иерархических заметках можно реализовать подход Discourse graph или использовать их как ключевые слова.

Метаданные и ссылки

Метаданные и ссылки – это благодаря чему хранилище сможет выдержать тысячи заметок.

В Obsidian по факту есть 4 технических способа упорядочивания заметок. Опишу также сразу их плюсы и минусы:

  • 📂 Папки
    • строгая иерархия
    • ужасная масштабируемость
  • 🏷 Теги
    • объединяет группы заметок
    • поддерживается другими заметочными программами (легко парсятся)
    • непонятно сколько тегов нужно, чтобы достаточным образом классифицировать заметку
    • легко свалиться в избыточность и сформировать нерасширяемую, неподдерживаемую, самоповторяющуюся структуру тегов
  • 🔗 Ссылки
    • позволяют соединить что-угодно с чем-угодно
    • формируют у системы свойство серендипности
    • чем сильнее выражена сетевидность у системы, тем сильнее ухудшается воспроизводимость поиска
  • 📋 Метаданные
    • запредельный уровень масштабируемости
    • вынуждает разрабатывать схему данных и поддерживать консистентность

Это довольно рафинированное описание. По факту, в хранилище используются все эти способы, но в разной степени и с разных функциональных сторон:

  • Метаданные определяют структуру хранилища
  • Ссылки добавляют возможность сложного структурирования и связывания заметок
  • Теги позволяют быстро фильтровать и искать
  • Папки разделяют разные сущности (типы заметок)

Несмотря на такой сложный, гибридный подход, вам стоит держать в голове одну критически важную, но простую мысль.

Система сделана для того, чтобы делать заметки и получать от этого инсайты и удовольствие.

Когда вы добавляете новый источник в систему, вы делаете это для того, чтобы сделать заметки и получить инсайты.

Когда вы создаёте проект, вы делаете это для того, чтобы наполнить его заметками и в итоге получить результат и удовольствие от этого результата.

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

А вот эта вся сложная структура, перемешанная с визуальным минимализмом, сделана для того, чтобы вам не было скучно, чтобы у вас был фреймворк для написания, структурирования и перечитывания заметок :)

Заметки и карточки

Небольшая важная и тонкая вещь.

Заметка – это то, что создаётся первоначально. Карточка – это функция, которая сделана поверх заметки.

В заметках вы можете делать что угодно: писать длинные идеи, связывать их между собой, хранить код или набор ссылок на внешние ресурсы. Карточки создаются, чтобы надолго удержать в памяти определённую информацию.

Карточки можно сформировать как отдельные сущности:

note title.md
---
tags:
  - note/specific/exact
  - category/computer_science/basics
deck: obsidian::computer_science::basics
---

Вопрос
—
Ответ

А можно сделать внутри заметки сразу целый набор карточек:

# Блок вопросов 1

Вопрос 1
—
Ответ 1
Ответ 1

Вопрос 2
—
Ответ 2

# ...

...

# Блок вопросов N

Вопрос N
—
Ответ N

Вы можете использовать и тот, и тот подход.

Английский язык

Некоторые скрипты и плагины настроены с учётом того, что интерфейс на английском языке.

Шрифты

В хранилище шрифты загружаются из сниппета fonts.css. По существу, это хак, направленный на то, чтобы, когда вы открыли хранилище, то увидели практически ту же типографику, как изначально задумывалось.

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

Однако у этого хака есть цена. При долгом непрерывном движении каретки может появляться заметный лаг. Я думаю, что эта проблема проистекает из работы самого шрифтового рендера и того, что шрифты нужно распарсить из объёмного CSS-файла, а потом ещё и декодировать из base64 формата. Всё это занимает процессорное время.

В общем, чтобы всё работало побыстрее, установите шрифты локально и отключите сниппет fonts.css.

В хранилище используются следующие шрифты:

Все эти шрифты бесплатны и выглядят шикарно.

Когда вы их установите, хранилище само подтянет их как основные, так как это указано в general-view.css. Но всё же вы можете указать их дополнительно в настройках самого Obsidian.

Архив со всеми шрифтами.

Импорт аннотаций из Zotero

Я это явно нигде не сказал, но выгружаться будут только 4 цвета:

  • 🟩 key idea
    • главная или основная идея
  • 🟧 exact idea/term/example
    • точно сформулированная идея, справочная информация, значимый пример или термин
  • 🟪 well-spoken
    • отлично написано или просто забавно
  • 🟨 with references or requires clarification
    • аннотация имеющая подтверждение или наоборот нуждающаяся в подтверждениях/разъяснениях

Остальные цвета вы можете использовать в технических целях. Например, красным можно выделять ключевые слова (как я очень часто делал на видео), голубеньким — слова, выражающие взаимосвязь, а серые — для имитации оглавления. Эти цвета выполнят свою функцию при анализе текста и навигации, но при этом они не будут засорять Obsidian.

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