Проводник по персональному маршруту - Паспорт понятий(Dev)

MVP-версия

Функции первого релиза:

  • Ввод понятий (Concept, Skill, Example), приемы мышления (связь между понятиями), системный промпт, примеры через шаблон;
  • SHACL-валидация (название, перевод, пример, связь);
  • Генерация раздела универсального руководства с использованием шаблонов (intro, explain, task, check);
  • Создание пользовательского профиля стажёра (чек-лист);
  • Адаптивная траектория (подбор тем по сложности);
  • Простое отображение траектории и прогресса;
  • Сбор событий обучения (xAPI).

Мета-мета-модель и МетаУ-модель

У проекта есть описание MVP так что можно уже пробовать описать отдельные его этапы. Я начну с графа знаний.

У меня немного изменилось видение относительно архитектуры графа, но в целом идея автора осталась той же. В графе предполагается 2 слоя(если так можно выразиться) с метками

  • :CoreConcept(мета-мета) - трансдисциплинарные понятия, которые никогда не расходяться между разными курсами. Не знаю какое кол-во понятий должно быть в mvp, но по ощущениям - это 30-50.
  • :DomainConcept - понятия конкретного курса. Меняются чаще и могут конфликтовать по названию, но не по IRI.

Т.е. понятие core:Emergence и course-sm-01:Emergence - это 2 разных понятия с разными описаниями

Паспорт узла

• iri — строка формата https://example.org/concept/{slug}
• name_ru — название понятия.
• purpose_ru — назначение / зачем нужно.
• conceptType — тип (enum или строка).
• usageContext_ru — где применяется.
• synonyms_ru — список синонимов.
• not_this_ru — чем НЕ является.
• definition_ru —  определение ≤ 600 симв.
• summary_ru — краткая выжимка (опционально).
• example_ru — мини-кейс 1-2 предложения.
• promptHint_ru — совет по использованию в промптах.
• opposite_ru — противоположное по смыслу.
• metaphor_ru — образ / метафора.
• formula_ru — формула / признак (если применимо).
• difficulty — целое 0-5.
• bloom — одно из {Remember, Understand, Apply, Analyze, Evaluate, Create}.
• solo — одно из {Prestructural, Unistructural, Multistructural, Relational, Extended_Abstract}.
• dok — целое 1-4 (глубина знаний Вебба).
• fink — массив из {Foundational_Knowledge, Application, Integration, Human_Dimension, Caring, Learning_to_Learn}.
• marzano — одно из {Retrieval, Comprehension, Analysis, Knowledge_Utilization}.
• version — всегда "1.0".
• related_concepts — массив объектов {relation, target_concept}, relation ∈
  {IS_A, PART_OF, RELATES_TO, HAS_EXAMPLE, ALIGNS_WITH}.
• examples — объект {positive_ru: ["..."], negative_ru: ["..."]}.
• discipline — объект {name_ru, level}, level ∈ {L2, L3}.

О свойствах marzano, fink, dok, solo и bloom написано тут

Типы связей

  1. :IS_A - для родственных связей (как в биологии: кошка → животное)
  2. :PART_OF - когда что-то физически входит в состав другого
  3. :RELATES_TO - любая интересная связь между понятиями
  4. :HAS_EXAMPLE - добавляем конкретные примеры для понятий
  5. :ALIGNS_WITH - помогаем соотнести наши термины с общепринятыми

Такая архитектура будет экономной и “вытянется” то, что действительно нужно. Что из перечисленного будет храниться для RAG:

  • summary каждого понятия(свойство в neo4j) - Короткий факт для LLM
  • Embedding - Быстрый поиск похожих понятий/примеров.
  • Узел :Example {text, embedding} - кейсы
  • Связи - :PART_OF, :IS_A, :ALIGNS_WITH

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

? TTL-файлы + Git — проще, чем хранить историю в графе.

1 лайк