Перейти до змісту

Куди копати: від питання до каналу

Це маршрут для матеріалу, якого в просторі ще немає: людина ставить питання, а ти маєш сказати, у які джерела йти, у якому порядку, чим приймати відповідь кожного і коли зупинитись. Джерел стає більше з кожним місяцем, і без маршруту вони перетворюються на перелік команд, які запускають усі підряд або не запускають зовсім.

Чим цей документ не є:

  • не search-channels.md — той про пошук у вже прочитаному: три сховища, склейка переносу, якорі, самоперевірка;
  • не find-parish — той про одне джерело, зведений покажчик, чотирма способами;
  • не перелік джерел. Що саме підключено на цій машині, що кожне вміє, де його межі й що доводить його нуль, каже nysh op sources.list (поле about; людським видом — nysh sources); тут джерела названі класами, і клас лишається тим самим, коли джерело міняється.

Документ складається з трьох файлів, і читати їх треба не всі одразу:

файл що в ньому коли читати
where-to-dig.md (цей) протокол заходу, класи каналів, баланс, власні знання, заведення каналу завжди
where-to-dig-genres.md десять жанрів питань: канали по порядку, стоп, пастки той жанр, у який зайшов
where-to-dig-channels.md картки каналів: що дає, чого не дає, ціна, знаменник нуля картки тих каналів, які стоять у плані

🔴 Приватний оверлей. Дослідник тримає свої фонди, шифри, маршрути доступу й заміри у файлі <простір>/reports/research/where-to-dig.md. Якщо він є, читай його після цього документа: він заповнює ті самі жанри конкретикою. Поруч можуть лежати його піддокументи — реєстр прочесаного (where-to-dig-prochesano.md) і реєстр статей-підказок (where-to-dig-refs.md); читай ті, що є. Якщо правило оверлею суперечить правилу тут, діє це; розбіжність варто показати людині, а не мовчки обрати одне.


Протокол одного заходу

Один захід закриває одне питання. Кроки йдуть від найдешевшого до найдорожчого, і кожен має приймач.

# крок чим ✅ приймач
−1 що вже є в просторі nysh text grep "<ключ>" --where all, nysh cases list, nysh pages status <справа> названо шари й знаменник кожного; stale.is не true
0 жанр питання where-to-dig-genres.md один жанр, або два з поясненням чому
1 гіпотеза з голови розділ «Власні знання» блок «З голови: …» записаний до запитів
2 які канали реально є nysh op sources.listabout кожного джерела; картки в where-to-dig-channels.md кожен id зведено з класом (about.where_class) і межами (about.scope) проти місця й доби питання; джерело з undeclared або без картки — рядок «без опису — перевірити руками», не викинуто; клас без джерела позначено «руками»
3 канали по порядку жанру nysh find без --source — одне віяло по всіх джерелах; далі nysh geog find, скіли-наступники після кожного каналу — його знаменник і тип нуля кожного джерела (coverage.zeros)
4 зупинка правило «Стоп» жанру спрацювало чи ні, і чому
5 звіт форма нижче людина бачить рішення, а не процес

Форма звіту, коротка й однакова для будь-якого жанру:

З голови:   які документи мали існувати і де осісти (гіпотеза)
Локально:   що вже лежить у просторі — шари й знаменники
Каталогом:  який канал → що дав → знаменник
Стоп:       спрацювало правило зупинки / не спрацювало — чому
Далі:       наступний канал, його ціна, і чи потрібне рішення людини

🔴 Крок −1 не пропускається ніколи. Рекомендація «нової» справи, складена з пам'яті про фонд замість реєстру, двічі за одну сесію радила те, що вже лежало на диску, було прочитане двома рушіями й прошукане.


Класи каналів

Клас відповідає на своє питання і на жодне інше. Джерело в третій колонці — приклад; чи є воно на цій машині, що вміє й де його межі, дивись у nysh op sources.list.

клас на яке питання відповідає вбудоване джерело / як
локальні сховища «ми це вже знаємо?» nysh text grep --where all, nysh cases list, nysh pages status; диск — local
каталог за селом «які книги мого села збереглися, за які роки» ridni
зведений покажчик «що взагалі існує про село чи фонд, оцифроване чи ні» duck (скіл find-parish)
газетир «де документи цього села по всіх фондах одного архіву» nysh geog find, nysh geog card
церкви до поділів «чи була тут парафія у XVIII ст. і чия» nysh church find
реєстр опису фонду «що є у фонді цілком, з номерами й роками» nysh registry build (скіл keep-fond)
переглядач архіву «забрати скани справи, яку вже знаю за шифрою» archium, окремий id на майданчик
Commons / Вікіджерела «повні томи й описи, викладені волонтерами» commons
дзеркало плівок «кадри плівки без входу в сервіс» fsfilm
фотоархів дослідника «чи знімав хтось цю справу чи книгу — і де подивитись кадри» volok (назви альбомів; кадри — на Flickr)
онлайн-архів XX ст. «книги РАЦС і те, чого архіви онлайн не показують» babynyar (каталог — nysh crawl)
текст друкованих книг «де моє село згадане в літературі» chtyvo
єпархіальні відомості, періодика «призначення, нагороди, вдови, некрологи» ia (Internet Archive, лише точне слово); решта — руками: повнотекстові корпуси
рукописний відділ бібліотеки «візитації, суди митрополії, приватні збірки» руками: каталог описів і цифрова бібліотека — окремо
консисторія «клірові, метрики, сповідки, справи причту» реєстр опису фонду
дворянське зібрання, Герольдія «докази шляхетства, родовідні книги» реєстр опису фонду
суди, нотаріат «купчі, легітимації, спадщина, позови» реєстр опису, покажчик-анотація
маєткові інвентарі «хто жив у маєтку, на яких умовах» реєстр опису фонду
ревізії, однодворчі списки, волосні правління «податний стан двору за роком ревізії» реєстр опису фонду
ЗАГС / ДРАЦС «акти після 1920-х, які ще не передані в архів» руками: виписка родичу
веб-пошук «контекст, назви, кордони, друковане, люди» руками, картка в where-to-dig-channels.md
люди «те, чого немає онлайн ні в кого» руками: дослідники, форуми, лист до архіву

Порядок у маршрутах побудований за ціною відповіді: спершу те, що вже є, далі канал, який відповідає прямо на питання, потім канал, який бачить існуюче незалежно від оцифрування, потім повний опис фонду, потім копії, і наприкінці люди й гроші.

🔴 Канал без картки не викидається мовчки. Картка каже агентові, на яке питання канал відповідає, чим приймати відповідь і що означає нуль, тож маршрут будується з карток. Але джерело, яке є в nysh op sources.list, а картки чи самоопису (about) не має, у план усе одно йде — рядком «без опису — перевірити руками». Причина: у симуляції 15.09.2026 фотоархів Волока був підключений без картки, і правило «канал без картки в маршрут не ставиться» викинуло його з плану про Донеччину, хоча саме там він мав списки населених місць і розпис парафій єпархії. Новий канал і далі заводиться карткою раніше, ніж скриптом; шаблон картки й самі картки — where-to-dig-channels.md, а збіг картки з about тримає tests/test_source_cards.py.


Типи нуля

Той самий 0 означає різне залежно від того, чим шукали. Перед словом «немає» тип кожного нуля називається окремо.

тип як виглядає у відповіді що доводить що робити
не шукали no_denominator; джерело в coverage.unavailable нічого полагодити причину з why, не звітувати
поза покриттям місце чи доба питання поза about.scope джерела; outside_pack_scope у газетирі й базі церков нічого про село: джерело за побудовою не могло його знати назвати межу у звіті й узяти канал, що покриває регіон
шукали — немає coverage.zeros[].means; zero_with_denominator рівно те, що написано в means: «немає в назвах альбомів на дату списку», а не «ніхто не знімав» звітувати дослівно, разом із тим, де шукали збіг (about.match_on, match_how)
обрізано search_truncated; знахідок рівно стільки, скільки стеля перелік неповний, негатив неможливий звузити запит або брати фонд цілком
хибний не-нуль знахідки є, але збіг підрядком у чужому слові нічого: казк у volok дає народні казки, Метрич — «Геометрический план» читати назви знахідок, а не лічильник; довша основа
однойменець знахідка з іншого регіону під тією самою назвою нічого про своє село: «Бахмут» у fsfilm — молдовське село, ANRM ф.211 звірити регіон у note чи place; у ridni — запит «<село>, <повіт>»

Пак церков ~1772 накриває воєводства Речі Посполитої, газетир — фонди свого архіву. Для села поза цими межами їхній нуль — тип «поза покриттям», навіть коли попередження немає: фільтра, з яким можна звірити вільну назву села, у запиті нема.

Пастка кодів архівів

У знахідці два поля архіву, і рішення приймається за першим:

  • repo — наш код із паку (DADNO, DADOO); порожній, коли пак цього архіву не знає;
  • archive — як архів пише саме джерело.

Скорочення в джерелах не звірені з переліком архівів: у назвах альбомів Волока «ДАДО (ДАДнО)» — Дніпропетровський архів, а Донецький у паку — ДАДоО; на «Бабиному Яру» «ДАЧО» носять кілька архівів. Порожній repo при знайомому на вигляд archive звіряється командою nysh archive <код>, а не здогадом.


Баланс: як не гнати канали в пусту

Правило, причина, приймач — у такому порядку.

  1. Крок −1 — локальні сховища. Причина: те, що вже є, коштує нуль, а рекомендація з пам'яті замість реєстру повторює зроблену роботу. Приймач: у звіті названо layers.coverage і stale.is.
  2. Найдешевший канал перший — ціна за відповідь. Причина: замір одного приватного конвеєра — на один факт пішло близько двох мільйонів токенів, а він діставався парсером за нуль. Драбина цін за одиницю матеріалу: парсер по готовому тексту — нуль; карта за заголовками — тисячі токенів; читання машинного тексту — десятки тисяч; розбір скана моделлю агента — близько 84 тисяч на скан. Приймач: у плані заходу кожен канал має ціну.
  3. Два незалежні каталоги — знаменник лакуни. Причина: нуль в одному каталозі означає «не знайшли»; нуль у двох незалежних — «не існує». Приймач: обидва знаменники названі.
  4. Гнати до правила зупинки, а не всі канали. Причина: після «Стоп» кожен наступний канал — окреме рішення людини, бо саме там починаються гроші й місяці. Приймач: у звіті є рядок «Стоп: спрацювало / ні».
  5. Журнал прочесаного. Причина: канал із результатом «0 за кілька заходів» або «заблоковано» повертається в роботу знову й знову, якщо про нього не записано. Приймач: у просторі є реєстр «прочесано / заблоковано / більше не повертатись» із датами, і його читають перед заходом. Формат рядка: канал · що шукали · результат · дата · причина.
  6. Бюджет заходу. Одне питання — один захід — звіт на рішенні, не на процесі. Межа (кількість каналів або час) називається до старту; після неї агент повертає проміжний результат зі знаменником, а не продовжує.
  7. Канал не заміняє власне знання. Інструменти кажуть, де що лежить. Що мало існувати і в якій установі осісти — каже голова, і саме це пояснює, чому інструмент мовчить. Докладно — наступний розділ.

Власні знання агента

Інструментів стає більше, і є спокуса зводити кожне питання до команди. Це втрачає ту частину відповіді, якої немає в жодному каталозі: що мало існувати.

Дозволено з голови — і записується як гіпотеза. Єпархія, повіт, воєводство, адміністративна приналежність села за добами; які жанри документів вела установа в цю добу (візитація, інвентар, ревізія, клірова, метрика, сповідка, посімейний список); де за діловодством вони мали осісти (консисторія, казенна палата, зібрання, суд, маєток, бібліотека). Усе це йде у звіт одним блоком «З голови: …» до запитів, а потім перевіряється каталогом. Гіпотеза, яку каталог не підтвердив, лишається у звіті з позначкою «не підтверджено» — вона пояснює, чому шукали саме там.

Заборонено з пам'яті. Номери фондів, описів і справ; крайні роки; кількість аркушів; ціни; шляхи на диску; що вміє джерело; назви команд і прапорців. Усе це — з каталогу, реєстру опису, nysh op sources.list, nysh op <ім'я> --describe. Причина: число з пам'яті виглядає так само впевнено, як число з каталогу, і йде у звіт без знаменника.

Коли інструменти мовчать. Саме тоді голова корисна найбільше: вона підказує жанр документа, якого варто шукати, і клас установи, де він мав осісти. Ревізія не ловить чиншовиків — шукати інвентар маєтку. До поділів парафія була унійна — шукати візитацію деканату, а не православну консисторію. Священник не лишив актів — шукати підпис під річним екстрактом. Тобто голова відповідає на «що і де мало бути», інструменти — на «що з цього збереглось і де лежить».

Приймач. У кожному звіті з нулем є блок: які документи мали існувати → у яких каталогах перевірено → що з них існує. Нуль без цього блоку — нуль без гіпотези, тобто не перевірений.


Заведення й архівування каналу

Новий канал з'являється частіше, ніж хочеться, і кожен виглядає корисним. Порядок такий:

  1. Картка до скрипта. Картка за шаблоном вище — перша; без неї канал стоїть у маршруті лише рядком «без опису — перевірити руками».
  2. Пробний захід із заміром. Два-три питання, відповідь на які вже відома, і в картку йде: скільки канал дав, скільки з того нового проти вже зібраного, дата.
  3. Нуль зі знаменником. Канал мусить уміти сказати, скільки він переглянув; канал, який дає лише мовчання, не є каналом.
  4. Місце в жанрі й причина. У якому жанрі й на якому кроці, і чому саме там — за ціною чи за повнотою.
  5. Для вбудованого джерела пакетаcaps і самоопис about (SourceAbout) у коді, коментар «навіщо» в реєстрі джерел; tests/test_source_cards.py звіряє about із карткою й таблицею класів. Для власного — скрипт і рядок у таблиці маршрутів доступу в оверлеї.

Архівування:

  • 0 за три заходи (або інше N, записане в картці) — стан «0 за N», канал іде в кінець маршруту свого жанру;
  • структурний нуль — канал не покриває стан, період або регіон роду — стан «більше не повертатись» із причиною; повертатись лише коли змінилось питання;
  • заблокований маршрут доступу — не архівування, а рядок у таблиці маршрутів: «цим шляхом ні»;
  • реєстр переглядається, коли заводиться новий канал того ж класу: новий часто робить старий зайвим.

Стаття-підказка: звідки беруться позиції

Найцінніше знання про те, де що лежить, приходить не з каталогів, а з краєзнавчих статей, постів дослідників і друкованих довідників: «візитації такої-то єпархії — це справи з такого по такий номер у такому фонді». Це не факт про рід і не канал, а позиція, і приймається вона так:

  1. Копія в постійний стор — першою. Сторінка в мережі живе, доки автор не видалить; тека <простір>/data/raw/refs/<автор-рік-тема>/ з паспортом (адреса, автор, дата, контрольні суми, навіщо збережено) і самим текстом.
  2. Твердження окремими рядками: позиція (архів, фонд, діапазон, роки), жанр документа (що всередині), довідник (автор, назва, де доступний), пастка (що автор радить перевіряти). Переказ статті не потрібен.
  3. Звірка каталогом до маршруту. Стаття має ранг заголовка з покажчика. Діапазон перевіряється каталогом: скільки справ у ньому є, скільки оцифровано, скільки на диску. Число, а не «автор каже».
  4. Влити туди, де агент шукатиме: позиції — у маршрут жанру в оверлеї з поміткою «за <автор рік>»; опис жанру документа й прийом пошуку — у цей документ, бо вони не приватні; довідники — у перелік довідників.
  5. Рядок у реєстрі статей оверлею: що взято, куди влито, чим звірено, що лишилось. Без рядка наступна сесія розбирає статтю вдруге.

Стаття поза регіоном або добою дослідження теж отримує рядок — зі статусом «поза маршрутом», щоб її не читали ще раз.


Куди далі

  • where-to-dig-genres.md — десять жанрів питань із маршрутами.
  • where-to-dig-channels.md — картки каналів і шаблон нової картки.
  • search-channels.md — коли матеріал уже прочитаний і треба знайти в ньому прізвище.
  • find-parish — зведений покажчик по селу чотирма каналами.
  • keep-fond — реєстр опису фонду: що існує, що взяли, що з цим зробили. Там же — порядок складання переліку на замовлення: опис спершу вичитується, знаменник береться з його завірки, кандидати шукаються по всіх полях рядка.
  • take-delivery — прийом зйомки, що прийшла ззовні.
  • envelope.md — як читати нуль, знаменник і застарілість у відповіді.
  • workflows.md — конвеєри після того, як матеріал у просторі.
  • <простір>/reports/research/where-to-dig.md — оверлей дослідника: фонди, шифри, маршрути доступу, ціни, реєстр прочесаного.