January 5, 2022

RemNote

Введение

Как совершенно точно подметил Александр Сурин (далее просто Александр): Roam Research и RemNote отличаются от остального разнообразия программ для ведения PKM тем, что в их основе заложены новые принципы работы со знаниями, направленные на улучшение мышления. Какие последствия нам (пользователям подобного софта) это сулит:

  1. Придётся привыкать, принуждая себя использовать предлагаемый разработчиками framework.
  2. Мы получаем в некотором роде уникальную функциональность, заточенную под излагаемые принципы.
  3. Мышление должно улучшиться :)

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

Сразу отмечу, что софт позволяет вести как облачную базу, так и локальную. Кому как нравится. Подробнее об этом — в данном посте.

1 Идеология

Характерные черты RemNote заключены в следующих словах:

  1. Аутлайнер.
  2. Интервальное повторение.
  3. Concept/Descriptors Framework.

Из первого пункта следует, что ссылкам на блоки без костылей — быть. Второй пункт означает тесную интеграцию в приложение метода Spaced Repetition, благодаря которой можно создавать карточки для повторения прямо по ходу письма, без дополнительных усилий (соблюдая лишь несложный синтаксис и определённый стиль написания). С третьим пунктом всё интереснее. Он должен нас "прокачать".

Разработчики RemNote предлагают использовать для структурирования знаний т. н. Concept/Descriptors Framework. Основная его суть заключается в определённом способе записи всякой информации путём её декомпозиции на две сущности: Концепции и дескрипторы.

  • Концепция — какая-либо основная мысль.
  • дескриптор — любая информация, описывающая Концепцию (её атрибут).

Подобное форматирование выше не случайно: точно так же данные понятия визуально разделены и в программе (Концепция пишется с прописной буквы и выделена жирным шрифтом, дескриптор — со строчной, шрифт — наклонный).

Простейший пример для понимания, как это работает. Прочитали в книге следующее:

Плоды антоновки обыкновенной имеют ярко-жёлтый окрас с характерной кислинкой во вкусе; созревают до наступления сентября и весят порядка 150 г.

Применили Concept/Descriptors Framework, записали себе в PKM следующее:

Зачем всё это нужно?

  1. Через подобное разложение сложных идей на более простые составляющие мы упрощаем себе процесс их понимания и, если требуется, запоминания.
  2. Чтобы рассматривать идеи с разных сторон, понимая тем самым проблемные для себя места, требующие проработку.
  3. Визуально структура идеи в подобном виде воспринимается и запоминается гораздо лучше, чем невыразительный для глаза поток текста.

Более сложный пример из курса биологии с комментариями разработчиков представлен в официальной документации. Советую почитать, сразу станет понятно.

2 Структура приложения

Минимальной и универсальной единицей информации в приложении является Rem (блок, буллет). Любые другие сущности (папки, документы, теги, ссылки, Концепции, дескрипторы и т. д.) получаются путём добавления к универсальной единице Rem соответствующего признака. В целом мы просто занимаемся строительством древовидного списка из множества Rem и особо не паримся.

Большинство признаков проставляются через привычный и хорошо знакомый слеш /:

Разные сущности в приложении различимы визуально (где-то значок особый у Rem, где-то форматирование):

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

2.1 Документы и папки

Документом в программе является обычный Rem (блок) с признаком "Document". Данный статус проставляется либо через слеш (/document), либо через соответствующий хоткей.

Можно вообще создавать исключительно Rem и лишь потом решать, какие из них трансформировать в документы (например, когда некоторые Rem наберут определённую критическую массу дочерних блоков и в значительной степени разрастутся). У документов над обычными Rem есть некоторые привилегии, например:

  • в привычном для программ подобного рода меню "All Notes" документы выделены в отдельную категорию;
  • у документов более высокий приоритет при поиске.

Более подробно отличие обычного Rem от Rem с признаком документа расписал Александр в данном посте. Можно почитать и соответствующий раздел официальной документации.

Так же у Rem может быть признак "Folder". Папками автоматически становятся документы, внутри которых содержатся другие документы.

2.2 Power-Up Rems

В RemNote существуют системные Rem с приставкой Power-Up. Прописываются в качестве тега (или дочернего блока) к обычным Rem, либо добавляя определённую функциональность этому блоку, либо изменяя его внешний вид. Визуально отличимы специальным символом:

Например, Power-Up Rem "Automatically Sort", прописанный в качестве тега к какому-либо Rem, добавляет функцию автоматической сортировки всех дочерних блоков этого Rem.

Главное, что стоит понять — они предназначены для расширения функциональности. Более подробно про некоторые виды Power-Up Rems расписал Александр в данном посте.

2.2.1 Aliases

Одним из системных Rem является Power-Up Rem "Aliases". Аналог псевдонимов в Obsidian и Logseq. Добавляются либо по хоткею (кажется Alt+A), либо через команду /alias.

Псевдонимы можно добавлять и на лету, после ввода ссылки типа [[Idea]]. Для этого необходимо через стрелку ← на клавиатуре навестись на созданную ссылку и нажать Enter, активировав Edit Reference Text.

3 Карточки для интервального повторения (и не только)

Из обычного Rem (то есть блока/буллета) путём использования специального синтаксиса можно создавать карточки для интервального повторения (но на самом деле, в целом, они нужны для работы Concept/Descriptors Framework). В этом случае Rem разделится на две части, каждая из которых будет представлять одну из сторон созданной карточки. Пример подобного Rem из справки:

Разделителем является символ стрелочки. Её указатель говорит нам о том, в каком направлении нам придётся вспоминать данную карточку:

  1. разделитель "→" — односторонняя карточка; левая сторона выступает в роли вопроса, правая — в роли ответа.
  2. разделитель "←" — односторонняя карточка; правая сторона выступает в роли вопроса, левая — в роли ответа.
  3. разделитель "↔" — двусторонняя карточка; обе стороны выступают как в роли вопроса, так и в роли ответа.

3.1 Состояния карточки

У любой карточки может быть 2 состояния:

  1. Активное, если разделителем является любой из видов стрелки.
  2. Отключенное, если вместо стрелки мы видим обычное длинное тире "—".

Пример карточек с разными состояниями:

Отличие между ними лишь одно: отключенные карточки не предлагаются для повторения.

3.2 Типы карточек

Их всего три:

  1. Basic Card.
  2. Concept Card.
  3. Descriptor Card.

Визуально отличаются форматированием. У Concept Card левая часть выделена жирным, у Descriptor Cardкурсивом, у Basic Card форматирование отсутствует.

Каждый тип карточки может принимать как активное, так и отключенное состояния.

Помимо подобной классификации, карточки можно поделить ещё на 2 вида:

  • однострочные;
  • многострочные.

Из названия, думаю, всё понятно.

3.3 Синтаксис создания карточек

Этого, кстати говоря, даже в официальной документации ещё нету. Там устаревший вариант. Александр откопал на страничке одного из разработчиков, поделившись в чате по RN.

Basic Card

  • Вперёд: >>
  • Вперёд (многострочная): >>>
  • Назад: <<
  • Назад (многострочная): <<<
  • В обе стороны: <>
  • Отключенная карточка: >/ или </

Concept Card

  • Вперёд: >: или :>
  • Вперёд (многострочная): >:: или :>>
  • Назад: <: или :<
  • Назад (многострочная): <:: или :<<
  • В обе стороны: :: или :<>
  • Отключенная карточка: :- или :/

Descriptor Card

  • Вперёд: ;; или ;> или >;
  • Вперёд (многострочная): ;;; или ;>> или >;;
  • Назад: ;< или <;
  • Назад (многострочная): ;<< или <;;
  • В обе стороны: ;<>
  • Отключенная карточка: ;- или ;/ или ==

Изменить тип карточки (её состояние и направление) можно по щелчку на разделитель (стрелку либо тире):

Просматривать активные карточки можно как для конкретного Rem и его детей (красный цвет) так и все разом (синий):

3.4 Итог по карточкам

Через создание карточек, по большей части, и работает Concept/Descriptors Framework. Если повторять и запоминать ничего не нужно, то просто создаём отключенные карточки через соответствующий синтаксис выше. Записали наименование концепции в левой части Rem, создали Concept Card, определили её в правой части. Создали в дочерних блоках Descriptor Card, описав Concept. И т. д.

Кроме того, создавая карточки и, тем самым, разделяя Rem на две части, в левой из них, условно говоря, можно прописывать краткое название блока, потому что если мы сошлёмся на Rem, который является карточкой, в текст ссылки подставится не весь блок целиком (и не какой-то невнятный номер как в Obsidian), а только эта часть с названием. Скриншот ниже поясняет сказанное:

Примечание по поводу Concepts и Descriptors:

Помимо создание карточек, где концепция/дескриптор выделяются лишь в одной части блока Rem, можно также добавлять признаки concept/descriptor и для всего блока. В этом случае он целиком примет определённое форматирование. Признак добавляется через / —> Concept/Descriptors Framework —> ..., либо через соответствующие хоткеи.

4 Иерархический поиск

Так как мы имеем дело с аутлайнером, то наша PKM представляет из себя, по сути, древовидный список, построенный по принципу иерархии. Есть родительские блоки, есть и их "дети".

Иерархический поиск — простая для понимания, но очень важная и полезная функция, за счёт которой нам открывается ряд возможностей, о которых ещё напишу ниже.

В чём суть: при пользовании любым поиском (будь то поиск по базе при проставлении связи [[, или обычный поиск всех Rem), мы можем через Tab проваливаться внутрь блоков, сужая тем самым круг поиска, а через Shift+Tab возвращаться обратно. Полезно, когда мы, например, помним контекст, но не помним точных формулировок.

5 Все виды связей

В программе существует 3 способа линковки:

  1. [[Rem References]]
  2. ##Tags
  3. ((Portals))

5.1 Ссылки vs теги

Их назначение в программе разделено.

Ссылки типа [[Idea]] в RN являются основным и уже привычным всем нам способом проставления связей. От тегов они отличаются тем, что могут быть прописаны точечно в конкретном месте блока.

Теги же присваиваются всему блоку и отображаются отдельно от основного текста блока. Подходят, скорее, для категоризации или использования в стиле Ситамета, где они записываются "простыми ключевыми словами в виде существительных, выражающих класс темы заметки, в одной и той же форме английского языка". При поиске через теги можно производить фильтрацию.

Чтобы блоку присвоить тег, необходимо прописать двойную решётку ##.

5.2 Portals

Portals — аналог встраивания блоков в смежных программах типа Roam Research, Notion, WorkFlowy и т. д., с отличием в лучшую сторону. Если кратко, то Порталы — способ встраивания одного и того же Rem в нескольких местах с возможностью его полноценного редактирования в любой из локаций. Как говорят разработчики — это полезно, поскольку мы можем меньше думать о том, в каком контексте конкретный Rem более удачно располагается. Если контекстов несколько, просто создали Portals и работаем с этим Rem в каждом из них.

Синтаксис вставки Портала: ((Rem Name)).

Отличный пост на эту тему, разумеется, есть у Александра. Там можно найти ссылки на доп. материалы. Ну и разъяснения из справки тоже имеются.

Интересный кейс. Допустим, мы находимся в ежедневной заметке и в наш котелок пришла определённая мысль. Мы понимаем, что её основное место — в условной "Note1", а здесь у нас как бы просто журнал для отслеживания мыслей и тем, над которыми мы сегодня работали. Не ссылаясь на [[Note1]], без любых лишних телодвижений мы делаем следующее: набираем (( и создаём портал — у нас появится окно поиска. Вбиваем там Note1 и через Tab проваливаемся в эту заметку и начинаем вводить нашу мысль, после чего нажимаем Enter (Create Rem). В результате у нас в ежедневной заметке появляется портал с записанной мыслью, а эта мысль на деле отправилась в "Note 1". И мы дальше можем продолжать работать над ней в журнале. Надеюсь, объяснил удобоваримо:) Иллюстрирующая данную функцию GIF-ка есть в посте всё того же Александра.

5.3 Блоки backlinks

Каждый Rem имеет 3 блока backlinks:

  1. References — Rem со ссылками типа [[Idea]].
  2. Tagged Rem — Rem со ссылками типа ##Idea.
  3. In Folderдокументы (не Rem) с Portals ((Idea)).

6 Universal Descriptors (UD)

Применяя предлагаемый разработчиками framework через некоторое время становится очевидным следующее: некоторые дескрипторы могут применяться для описания совершенно разных, казалось бы, никак не связанных концепций. А это означает, что речь идёт о чём-то универсальном, что можно выделить в отдельную категорию и добавить в определённый уголок базы для частого последующего вызова.

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

Ещё один пример использования UD из моей базы:

Как видно, иногда Концепцию практически полностью можно описать UD. А это хорошо, ведь эти дескрипторы со временем запоминаются и становятся очевидными для нас. Понимая в процессе изучения, что та или иная Концепция практически целиком описывается UD, её становится легче понять и в дальнейшем — вспомнить.

Лично я создал универсальные дескрипторы внутри одноимённого Power-Up Rem-a "~", однако это вовсе не обязательно. Их можно поместить в любое место, да и в качестве отличительной черты выбрать любой другой символ.

6.1 Создание UD

Как их создать и разукрасить (с этим я сам долго провозился, пытаясь понять). Выделяем под это дело отдельный Rem (допустим, "~"). Создавать можно двумя способами.

Способ №1 (вручную).

  1. Открываем "~" и внутри него создаём, например, Rem "~определение".
  2. Через слеш выбираем для блока цвет, например: /red.
  3. Мы создали UD. Теперь в любом месте базы мы можем прописать [[~ и нам предложат вставить созданный нами UD "~определение".

Способ №2 ("на лету"). Работает через иерархический поиск.

  1. Мы занимаемся описанием какой-либо концепции и понимаем, что один из дескрипторов будет часто повторяться, поэтому стоило бы его сделать универсальным.
  2. Прописываем [[~ и ищем Rem "~", отведённый под UD (он должен сразу появиться под курсором).
  3. Нажимаем Tab и проваливаемся внутрь этого Rem-а.
  4. Начинаем вводить название нового UD, например "~иллюстрация".
  5. Нажимаем Enter (Create Rem).
  6. Осталось только добавить цвет, если это требуется.

6.2 Универсальные дескрипторы как наводящие вопросы

Интересный кейс (за наводку спасибо Александру). Universal descriptors можно классифицировать и использовать в роли наводящих вопросов/слов при описании любых концепций.

Допустим, мои универсальные дескрипторы находятся в Power-Up Rem с названием "~". Внутри я могу создать обычный Rem и назвать его, например, "00 Базовые UD". Это будут наиболее часто встречающиеся в моей базе UD, которыми я чаще всего описываю различные Концепции. В дочерних блоках этого Rem я прописываю ряд ~UD. Иллюстрация:

Аналогичным образом создаю ряд других категорий. Теперь предположим, что я занимаюсь описанием какой-либо Концепции и у меня возникли трудности. Не идёт и всё. Что я могу сделать? Для начала — пройтись по своим UD. Для этого:

  • Прописываю [[~. У меня под курсором окажется Rem "~".
  • Нажимаю Tab и проваливаюсь в "~". Там я вижу дочерние блоки первого уровня (то есть категории UD, а не сами UD):
  • Выбираю нужную категорию и снова жму Tab. Теперь я уже вижу UD выбранной категории:
  • Здесь я могу остановиться и подумать, можно ли с помощью данного набора описать условную Концепцию, с которой у меня возникли трудности.

7 И это была лишь малая часть

Функциональность приложения достаточно обширна. Помимо прочего есть: граф с множеством настроек; работа с PDF; большие поисковые возможности (фильтрация, поиск по разным сущностям); тонкая настройка внешнего вида и т. д. Данная статья затрагивает лишь основную философию приложения и функции, на которых она базируется. При наличии желания основательно изучить продукт стоит обратиться к источникам с более подробным разбором всех его возможностей: