RemNote
Введение
Как совершенно точно подметил Александр Сурин (далее просто Александр): Roam Research и RemNote отличаются от остального разнообразия программ для ведения PKM тем, что в их основе заложены новые принципы работы со знаниями, направленные на улучшение мышления. Какие последствия нам (пользователям подобного софта) это сулит:
- Придётся привыкать, принуждая себя использовать предлагаемый разработчиками framework.
- Мы получаем в некотором роде уникальную функциональность, заточенную под излагаемые принципы.
- Мышление должно улучшиться :)
Лично я рад следовать за разработчиками, имеющими собственное видение на столь непростую и волнующую нас тему "управления знаниями". Они предлагают изменить свой привычный подход в этом деле — я пробую следовать их философии. Вижу, что для меня это работает — пользуюсь их продуктом.
Сразу отмечу, что софт позволяет вести как облачную базу, так и локальную. Кому как нравится. Подробнее об этом — в данном посте.
1 Идеология
Характерные черты RemNote заключены в следующих словах:
Из первого пункта следует, что ссылкам на блоки без костылей — быть. Второй пункт означает тесную интеграцию в приложение метода Spaced Repetition, благодаря которой можно создавать карточки для повторения прямо по ходу письма, без дополнительных усилий (соблюдая лишь несложный синтаксис и определённый стиль написания). С третьим пунктом всё интереснее. Он должен нас "прокачать".
Разработчики RemNote предлагают использовать для структурирования знаний т. н. Concept/Descriptors Framework. Основная его суть заключается в определённом способе записи всякой информации путём её декомпозиции на две сущности: Концепции и дескрипторы.
- Концепция — какая-либо основная мысль.
- дескриптор — любая информация, описывающая Концепцию (её атрибут).
Подобное форматирование выше не случайно: точно так же данные понятия визуально разделены и в программе (Концепция пишется с прописной буквы и выделена жирным шрифтом, дескриптор — со строчной, шрифт — наклонный).
Простейший пример для понимания, как это работает. Прочитали в книге следующее:
Плоды антоновки обыкновенной имеют ярко-жёлтый окрас с характерной кислинкой во вкусе; созревают до наступления сентября и весят порядка 150 г.
Применили Concept/Descriptors Framework, записали себе в PKM следующее:
- Через подобное разложение сложных идей на более простые составляющие мы упрощаем себе процесс их понимания и, если требуется, запоминания.
- Чтобы рассматривать идеи с разных сторон, понимая тем самым проблемные для себя места, требующие проработку.
- Визуально структура идеи в подобном виде воспринимается и запоминается гораздо лучше, чем невыразительный для глаза поток текста.
Более сложный пример из курса биологии с комментариями разработчиков представлен в официальной документации. Советую почитать, сразу станет понятно.
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 из справки:
Разделителем является символ стрелочки. Её указатель говорит нам о том, в каком направлении нам придётся вспоминать данную карточку:
- разделитель "→" — односторонняя карточка; левая сторона выступает в роли вопроса, правая — в роли ответа.
- разделитель "←" — односторонняя карточка; правая сторона выступает в роли вопроса, левая — в роли ответа.
- разделитель "↔" — двусторонняя карточка; обе стороны выступают как в роли вопроса, так и в роли ответа.
3.1 Состояния карточки
У любой карточки может быть 2 состояния:
- Активное, если разделителем является любой из видов стрелки.
- Отключенное, если вместо стрелки мы видим обычное длинное тире "—".
Пример карточек с разными состояниями:
Отличие между ними лишь одно: отключенные карточки не предлагаются для повторения.
3.2 Типы карточек
Визуально отличаются форматированием. У Concept Card левая часть выделена жирным, у Descriptor Card — курсивом, у Basic Card форматирование отсутствует.
Каждый тип карточки может принимать как активное, так и отключенное состояния.
Помимо подобной классификации, карточки можно поделить ещё на 2 вида:
Из названия, думаю, всё понятно.
3.3 Синтаксис создания карточек
Этого, кстати говоря, даже в официальной документации ещё нету. Там устаревший вариант. Александр откопал на страничке одного из разработчиков, поделившись в чате по RN.
- Вперёд:
>>
- Вперёд (многострочная):
>>>
- Назад:
<<
- Назад (многострочная):
<<<
- В обе стороны:
<>
- Отключенная карточка:
>/
или</
- Вперёд:
>:
или:>
- Вперёд (многострочная):
>::
или:>>
- Назад:
<:
или:<
- Назад (многострочная):
<::
или:<<
- В обе стороны:
::
или:<>
- Отключенная карточка:
:-
или:/
- Вперёд:
;;
или;>
или>;
- Вперёд (многострочная):
;;;
или;>>
или>;;
- Назад:
;<
или<;
- Назад (многострочная):
;<<
или<;;
- В обе стороны:
;<>
- Отключенная карточка:
;-
или;/
или==
Изменить тип карточки (её состояние и направление) можно по щелчку на разделитель (стрелку либо тире):
Просматривать активные карточки можно как для конкретного 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 способа линковки:
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:
- References — Rem со ссылками типа
[[Idea]]
. - Tagged Rem — Rem со ссылками типа
##Idea
. - In Folder — документы (не Rem) с Portals
((Idea))
.
6 Universal Descriptors (UD)
Применяя предлагаемый разработчиками framework через некоторое время становится очевидным следующее: некоторые дескрипторы могут применяться для описания совершенно разных, казалось бы, никак не связанных концепций. А это означает, что речь идёт о чём-то универсальном, что можно выделить в отдельную категорию и добавить в определённый уголок базы для частого последующего вызова.
Универсальные дескрипторы представляют из себя обычные Rem с определённым ~визуальным выделением, собранные в одном месте. В качестве внешних особенностей предлагается использовать спец. символ перед текстом (тильду ~
) и цветовой окрас. Как это выглядит (скриншот из соответствующего раздела официальной документации):
Ещё один пример использования UD из моей базы:
Как видно, иногда Концепцию практически полностью можно описать UD. А это хорошо, ведь эти дескрипторы со временем запоминаются и становятся очевидными для нас. Понимая в процессе изучения, что та или иная Концепция практически целиком описывается UD, её становится легче понять и в дальнейшем — вспомнить.
Лично я создал универсальные дескрипторы внутри одноимённого Power-Up Rem-a "~", однако это вовсе не обязательно. Их можно поместить в любое место, да и в качестве отличительной черты выбрать любой другой символ.
6.1 Создание UD
Как их создать и разукрасить (с этим я сам долго провозился, пытаясь понять). Выделяем под это дело отдельный Rem (допустим, "~"). Создавать можно двумя способами.
- Открываем "~" и внутри него создаём, например, Rem "~определение".
- Через слеш выбираем для блока цвет, например:
/red
. - Мы создали UD. Теперь в любом месте базы мы можем прописать
[[~
и нам предложат вставить созданный нами UD "~определение".
Способ №2 ("на лету"). Работает через иерархический поиск.
- Мы занимаемся описанием какой-либо концепции и понимаем, что один из дескрипторов будет часто повторяться, поэтому стоило бы его сделать универсальным.
- Прописываем
[[~
и ищем Rem "~", отведённый под UD (он должен сразу появиться под курсором). - Нажимаем
Tab
и проваливаемся внутрь этого Rem-а. - Начинаем вводить название нового UD, например "~иллюстрация".
- Нажимаем
Enter
(Create Rem). - Осталось только добавить цвет, если это требуется.
6.2 Универсальные дескрипторы как наводящие вопросы
Интересный кейс (за наводку спасибо Александру). Universal descriptors можно классифицировать и использовать в роли наводящих вопросов/слов при описании любых концепций.
Допустим, мои универсальные дескрипторы находятся в Power-Up Rem с названием "~". Внутри я могу создать обычный Rem и назвать его, например, "00 Базовые UD". Это будут наиболее часто встречающиеся в моей базе UD, которыми я чаще всего описываю различные Концепции. В дочерних блоках этого Rem я прописываю ряд ~UD. Иллюстрация:
Аналогичным образом создаю ряд других категорий. Теперь предположим, что я занимаюсь описанием какой-либо Концепции и у меня возникли трудности. Не идёт и всё. Что я могу сделать? Для начала — пройтись по своим UD. Для этого:
- Прописываю
[[~
. У меня под курсором окажется Rem "~". - Нажимаю
Tab
и проваливаюсь в "~". Там я вижу дочерние блоки первого уровня (то есть категории UD, а не сами UD):
- Здесь я могу остановиться и подумать, можно ли с помощью данного набора описать условную Концепцию, с которой у меня возникли трудности.
7 И это была лишь малая часть
Функциональность приложения достаточно обширна. Помимо прочего есть: граф с множеством настроек; работа с PDF; большие поисковые возможности (фильтрация, поиск по разным сущностям); тонкая настройка внешнего вида и т. д. Данная статья затрагивает лишь основную философию приложения и функции, на которых она базируется. При наличии желания основательно изучить продукт стоит обратиться к источникам с более подробным разбором всех его возможностей:
- Long-Form Tutorials — официальная документация.
- ThinkingHub: RemNote, Fibery, etc. — канал Александра Сурина, где много постов посвящено RemNote.
- Русскоязычный чат по RemNote — чат, где также много уже обсуждалось.