Подтвердить что ты не робот

Как поддерживать базу знаний на основе emacs?

Я использую org-mode на некоторое время, я сохранил его на самом деле просто, только с двумя файлами:
один, чтобы действовать как почтовый ящик, с запоминающим режимом
другой, где я придерживаюсь всего, что было обработано из папки "Входящие"

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

Материал, который я касаюсь себя, не соответствует парадигмам /projects/tasks/sub -tasks, они больше похожи на небольшие самородки знаний по выбранным темам, которые по своей природе более сложны для классификации и управления.

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


Я предполагаю, что на этот вопрос нет готового ответа, так как у каждого могут быть разные потребности.
Noufal дал хорошие концептуальные советы, которые я буду иметь в виду, но в целом принятый ответ предоставил более прагматические взгляды на это, связанный ресурс был БОЛЬШИМ чтением.

4b9b3361

Ответ 1

Я думаю, что этот отличный документ о том, как использовать org-mode для него в полном объеме, будет вам очень полезен: "Org Mode: Организуйте свою жизнь на равнине Текст" . Это длительное чтение, но поверьте мне, полностью стоит усилий.

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

(setq org-default-notes-file (concat org-directory "/remember-notes.org"))
(setq org-remember-templates
  `(("Todo"    ?t "* TODO %?\n  %i\n" ,(concat org-directory "/remember-notes.org") bottom)
    ("Misc"    ?m "* %?\n  %i\n"      ,(concat org-directory "/Notes.org")   "Misc")
    ("iNfo"    ?n "* %?\n  %i\n"      ,(concat org-directory "/Notes.org")   "Information")
    ("Idea"    ?i "* %?\n  %i\n"      ,(concat org-directory "/Notes.org")   "Ideas")
    ("Journal" ?j "* %T %?\n\n  %i\n" ,(concat org-directory "/journal.org") bottom)
    ("Blog"    ?b "* %T %? :BLOG:\n\n  %i\n" ,(concat org-directory "/journal.org") bottom)
    ))

Как вы можете видеть, различные примечания и другая информация содержатся в файле notes.org под заголовками Misc и Information. Если заметка, которую я делаю, не попадает ни в одну из категорий, определенных выше, она попадает в файл по умолчанию (remember-notes.org), и я всегда могу восстановить его в другом месте в удобное для вас время. Это делает мои заметки, записывая случайные идеи и такие вещи чрезвычайно просты, не снимая фокус с работы, которую я сейчас делаю.

Ответ 2

Я лично храню список каталогов проектов с несколько похожей структурой. Каждый из них имеет tasklist.org, подкаталог отслеживания (где я делаю оценки проектов и отслеживание времени и всегда поддерживаю дневник, который является основным для проекта, - он будет иметь ссылки на другие файлы для проекта), подкаталог docs, который обычно состоять из материалов, которые я собираюсь опубликовать (документы для проекта, предложения и т.д.). Я получаю свои файлы повестки дня на tasklist.org в каждом из подкаталогов, чтобы моя повестка дня работала нормально.


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

  • Сохраняйте файл "master" org, который имеет ссылки на все "интересные" фрагменты верхнего уровня другого контента (похожие на дневник, о котором я упоминал выше).
  • Отметьте все свои материалы должным образом (через некоторое время вы будете устанавливать множество полезных тегов), а затем используйте функцию поиска тегов для быстрого поиска файлов. Это предполагает, что все файлы находятся в вашем agenda-files.
  • Наконец, если ваши данные слишком экзотичны для размещения в структуре, вы можете рассмотреть возможность использования полнотекстового индексатора (например, xapian) и интегрировать его в свой Emacs. Обсуждалось это более здесь.

Ответ 3

[org-mode] отлично подходит для управления несколькими "действительными" элементами, но я продолжаю добавлять вещи более общего характера, которые мне не понадобятся на повседневной основе (инструкции, чтение заметки и т.д.), поэтому он становится медленным и трудно управляемым.

Я сторонник Дэвида Аллена и его методология Getting Things Done. Я использую Emacs для трех списков, которые он рекомендует:

  • Следующие действия

  • Ресурсы проекта

  • Список Someday/Maybe

Материал, который я касаюсь себя, не соответствует парадигмам /projects/tasks/sub -tasks, они больше похожи на небольшие самородки знаний по выбранным темам, которые по своей природе более сложны для классификации и управления.

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

Для такого рода информации я перешел от emacs. Вместо этого я сохраняю каталог ~/etc/howto, и в этом каталоге я помещаю файлы, содержащие "небольшие наборы данных для определенных тем", где ключевым критерием является информация имеет долгосрочное значение.

Я мог бы искать этот каталог с Emacs, но мой Emacs Lisp не такой уж горячий, поэтому я написал оболочку howto script (некоторая ошибка проверки опущена для ясности):

case $# in
  1) ;;
  *) echo "Usage: $0 <topic>" 1>&2; exit 2 ;;
esac

topic="$1"

# Note the ordering: first exact matches, then beginning matches, then any matches

set xxx `find $HOME/etc/howto/. -name "$topic"     -not -type d -print` \
        `find $HOME/etc/howto/. -name "${topic}?*" -not -type d -not -name '*~' -print` \
        `find $HOME/etc/howto/. -name "?*$topic*"  -not -type d -not -name '*~' -print`
shift

case $# in
  0) echo "No file found matching *$topic*" 1>&2 ; exit 1 ;;
  *) for i
     do
       less "$i"
     done
     ;;
esac

Примеры включают:

  • howto football отображает три самородка в следующем порядке:

    • Инструкции, чтобы дать моей жене о том, как записать футбольную игру на компьютер

    • Инструкции для меня как о том, что взять и как одеваться, когда у меня есть билеты на футбольную игру.

    • Инструкции по перекодировке футбольной игры, чтобы она могла передаваться по сети и просматриваться вне дома

  • howto filesystem выводит инструкции о том, как скопировать файловую систему

  • howto batteries выводит список рекомендуемых перезаряжаемых батарей

Одна из причин, почему я не использую Emacs, заключается в том, что мой реальный script немного сложнее, чем вы видите выше: он также обрабатывает файлы PDF и djvu, поэтому, например, howto razor создает документ djvu руководство, которое пришло с моей электрической бритвой.

У меня более 500 элементов в основном каталоге или в подкаталогах, и даже в этом масштабе система работает для меня хорошо. Надеюсь, вам тоже это поможет.

Ответ 4

Я пробовал несколько способов управления базой знаний в прошлом. У меня есть куча "наваждений знаний" (кстати, мне очень нравится этот термин) по разным темам, начиная от того, как настроить apache tomcat ssl cert, на контрольные списки для ежемесячного семейного бюджета, на сохранение список весов и повторений завершен на тренировках.

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

В конце концов, emacs и org-mode - явный победитель для меня. Я люблю иметь возможность начать простую и строить более сложные функции, поскольку мне это нужно. Я использовал множество советов, описанных Sacha Chua.

В моем случае я всегда получаю кучу заметок (более формальных и организованных), смешанных с элементами действий (менее формальными). В общем, я поддерживаю один главный "элемент действия", а затем создаю отдельный файл для заметок по каждой теме. До сих пор grep хорошо работал у меня, чтобы быстро найти файл с примечаниями. Я часто создаю закладку emacs C-x r m, чтобы быстро перейти к файлам заметок.

Простые блогов, CMS и вики (например, Drupal и Wordpress) хороши в классификации и поиске. Возможно, вы можете экспортировать файлы org в html и опубликовать их в блоге, cms или wiki? Возможно, не слишком сложно подключиться к возможностям тегов blog/wiki/cms.

Ответ 5

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

Лично я использовал для этого также вики. Но в эти дни я вообще просто забываю о чем-то. Намного легче.

Ответ 6

Вы можете ускорить org-mode, сохранив ваши заметки в отдельном файле (или по одному для каждой широкой темы), который не включен в обычный список файлов повестки дня. Настройте org-agenda-files, чтобы просмотреть список.

Используйте org-remember для быстрого ввода заметок, не прерывая поток. Либо пометьте их в то время, либо сохраните их где-нибудь, чтобы позже обновить их. Вы можете использовать тег в шаблоне-напоминании (настроить org-remember-templates) для отметки заметок для повторной настройки и использовать пользовательский поиск в программе (org-agenda-custom-commands), чтобы их перечислить.

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

Я храню файл заметок, и ваш вопрос только вдохновил меня вернуться и начать пометить их всех. Работает с удовольствием!

Ответ 7

Я держу советы в файлах .rst(reStructuredText) в одном каталоге. Каждый файл имеет собственную тему.

Для поиска я использую M-x или M-x lgrep или M-x ack.

Пример веб-хостинга: http://tips.defun.work/frame.html, и легко превратить эти страницы в блог, как решение.

Исходные источники со строкой script: http://hg.defun.work/tips/

Основное преимущество формата reStructuredText:

  • Поддержка TOC.
  • include.
  • Возможность создания полного текстового индекса поиска в JavaScript на HTML-сайте с помощью TOC, индекса, ссылки Sphinx!!
  • Помните, что Markdown сосать в расширяемости, RST имеет регулярный синтаксис для маркировки данных вашими токенами и включает любой текстовый формат как встроенный в ваш документ. Думает о графиках с dot, подсветкой синтаксиса prog lang и т.д.

Ответ 8

  • Материал, который я касаюсь себя, не соответствует парадигмам /projects/tasks/sub -tasks, они больше похожи на небольшие самородки знаний по выбранным темам, которые по своей природе более сложны для классификации и управления.

Используйте закладки и Закладка +. Вы можете создавать закладки для наборов файлов и каталогов в дополнение к отдельным файлам, а тег закладки или файлы, a la delicious, для организации и поиска.