Куди копати: від питання до каналу¶
Це маршрут для матеріалу, якого в просторі ще немає: людина ставить питання, а ти маєш сказати, у які джерела йти, у якому порядку, чим приймати відповідь кожного і коли зупинитись. Джерел стає більше з кожним місяцем, і без маршруту вони перетворюються на перелік команд, які запускають усі підряд або не запускають зовсім.
Чим цей документ не є:
- не
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.list — about кожного джерела; картки в 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 — локальні сховища. Причина: те, що вже є, коштує нуль, а
рекомендація з пам'яті замість реєстру повторює зроблену роботу.
Приймач: у звіті названо
layers.coverageіstale.is. - Найдешевший канал перший — ціна за відповідь. Причина: замір одного приватного конвеєра — на один факт пішло близько двох мільйонів токенів, а він діставався парсером за нуль. Драбина цін за одиницю матеріалу: парсер по готовому тексту — нуль; карта за заголовками — тисячі токенів; читання машинного тексту — десятки тисяч; розбір скана моделлю агента — близько 84 тисяч на скан. Приймач: у плані заходу кожен канал має ціну.
- Два незалежні каталоги — знаменник лакуни. Причина: нуль в одному каталозі означає «не знайшли»; нуль у двох незалежних — «не існує». Приймач: обидва знаменники названі.
- Гнати до правила зупинки, а не всі канали. Причина: після «Стоп» кожен наступний канал — окреме рішення людини, бо саме там починаються гроші й місяці. Приймач: у звіті є рядок «Стоп: спрацювало / ні».
- Журнал прочесаного. Причина: канал із результатом «0 за кілька заходів» або «заблоковано» повертається в роботу знову й знову, якщо про нього не записано. Приймач: у просторі є реєстр «прочесано / заблоковано / більше не повертатись» із датами, і його читають перед заходом. Формат рядка: канал · що шукали · результат · дата · причина.
- Бюджет заходу. Одне питання — один захід — звіт на рішенні, не на процесі. Межа (кількість каналів або час) називається до старту; після неї агент повертає проміжний результат зі знаменником, а не продовжує.
- Канал не заміняє власне знання. Інструменти кажуть, де що лежить. Що мало існувати і в якій установі осісти — каже голова, і саме це пояснює, чому інструмент мовчить. Докладно — наступний розділ.
Власні знання агента¶
Інструментів стає більше, і є спокуса зводити кожне питання до команди. Це втрачає ту частину відповіді, якої немає в жодному каталозі: що мало існувати.
Дозволено з голови — і записується як гіпотеза. Єпархія, повіт, воєводство, адміністративна приналежність села за добами; які жанри документів вела установа в цю добу (візитація, інвентар, ревізія, клірова, метрика, сповідка, посімейний список); де за діловодством вони мали осісти (консисторія, казенна палата, зібрання, суд, маєток, бібліотека). Усе це йде у звіт одним блоком «З голови: …» до запитів, а потім перевіряється каталогом. Гіпотеза, яку каталог не підтвердив, лишається у звіті з позначкою «не підтверджено» — вона пояснює, чому шукали саме там.
Заборонено з пам'яті. Номери фондів, описів і справ; крайні роки;
кількість аркушів; ціни; шляхи на диску; що вміє джерело; назви команд і
прапорців. Усе це — з каталогу, реєстру опису, nysh op sources.list,
nysh op <ім'я> --describe. Причина: число з пам'яті виглядає так само
впевнено, як число з каталогу, і йде у звіт без знаменника.
Коли інструменти мовчать. Саме тоді голова корисна найбільше: вона підказує жанр документа, якого варто шукати, і клас установи, де він мав осісти. Ревізія не ловить чиншовиків — шукати інвентар маєтку. До поділів парафія була унійна — шукати візитацію деканату, а не православну консисторію. Священник не лишив актів — шукати підпис під річним екстрактом. Тобто голова відповідає на «що і де мало бути», інструменти — на «що з цього збереглось і де лежить».
Приймач. У кожному звіті з нулем є блок: які документи мали існувати → у яких каталогах перевірено → що з них існує. Нуль без цього блоку — нуль без гіпотези, тобто не перевірений.
Заведення й архівування каналу¶
Новий канал з'являється частіше, ніж хочеться, і кожен виглядає корисним. Порядок такий:
- Картка до скрипта. Картка за шаблоном вище — перша; без неї канал стоїть у маршруті лише рядком «без опису — перевірити руками».
- Пробний захід із заміром. Два-три питання, відповідь на які вже відома, і в картку йде: скільки канал дав, скільки з того нового проти вже зібраного, дата.
- Нуль зі знаменником. Канал мусить уміти сказати, скільки він переглянув; канал, який дає лише мовчання, не є каналом.
- Місце в жанрі й причина. У якому жанрі й на якому кроці, і чому саме там — за ціною чи за повнотою.
- Для вбудованого джерела пакета —
capsі самоописabout(SourceAbout) у коді, коментар «навіщо» в реєстрі джерел;tests/test_source_cards.pyзвіряєaboutіз карткою й таблицею класів. Для власного — скрипт і рядок у таблиці маршрутів доступу в оверлеї.
Архівування:
- 0 за три заходи (або інше N, записане в картці) — стан «0 за N», канал іде в кінець маршруту свого жанру;
- структурний нуль — канал не покриває стан, період або регіон роду — стан «більше не повертатись» із причиною; повертатись лише коли змінилось питання;
- заблокований маршрут доступу — не архівування, а рядок у таблиці маршрутів: «цим шляхом ні»;
- реєстр переглядається, коли заводиться новий канал того ж класу: новий часто робить старий зайвим.
Стаття-підказка: звідки беруться позиції¶
Найцінніше знання про те, де що лежить, приходить не з каталогів, а з краєзнавчих статей, постів дослідників і друкованих довідників: «візитації такої-то єпархії — це справи з такого по такий номер у такому фонді». Це не факт про рід і не канал, а позиція, і приймається вона так:
- Копія в постійний стор — першою. Сторінка в мережі живе, доки автор не
видалить; тека
<простір>/data/raw/refs/<автор-рік-тема>/з паспортом (адреса, автор, дата, контрольні суми, навіщо збережено) і самим текстом. - Твердження окремими рядками: позиція (архів, фонд, діапазон, роки), жанр документа (що всередині), довідник (автор, назва, де доступний), пастка (що автор радить перевіряти). Переказ статті не потрібен.
- Звірка каталогом до маршруту. Стаття має ранг заголовка з покажчика. Діапазон перевіряється каталогом: скільки справ у ньому є, скільки оцифровано, скільки на диску. Число, а не «автор каже».
- Влити туди, де агент шукатиме: позиції — у маршрут жанру в оверлеї з поміткою «за <автор рік>»; опис жанру документа й прийом пошуку — у цей документ, бо вони не приватні; довідники — у перелік довідників.
- Рядок у реєстрі статей оверлею: що взято, куди влито, чим звірено, що лишилось. Без рядка наступна сесія розбирає статтю вдруге.
Стаття поза регіоном або добою дослідження теж отримує рядок — зі статусом «поза маршрутом», щоб її не читали ще раз.
Куди далі¶
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— оверлей дослідника: фонди, шифри, маршрути доступу, ціни, реєстр прочесаного.