Промпты для составления описания понятий

Здесь собираем все промпты для составления описания понятий в графе.

Промпт для составления структуры описания понятия -- Модель понятия

Вы — ведущий архитектор знаний и методолог. Требуется спроектировать универсальный шаблон «Модель понятия» для последующего формирования графа знаний и использования в адаптивных учебных маршрутах.
Задача: Разработайте только структуру описания понятия (без фактического содержания полей) исходя из следующих приоритетов (важность убывает от P1 к P3):
P1 — пригодность для автоматической связки узлов графа знаний
P2 — пригодность для генерации персональных руководств
P3 — пригодность для отслеживания степени усвоения понятия

Модель каждого понятия:

  1. Разделите поля на четыре блок-секции
  • Identification — идентификация понятия, отвечает за уникальность, авторство и связь с внешними системами.
  • Semantics — фокусируется на содержательном наполнении: определениях, связях, свойствах, ограничениях, примерах и теоретических основах.
  • Pedagogy — отражает образовательные параметры: уровни освоения, цели, критерии, ресурсы и персонализацию.
  • Governance — обеспечивает контроль версий, статус, историю изменений и ответственность.
  1. Добавь не менее одного поля для расширяемости (например, extensibility).
  2. Включите поле ссылки на SoTA-рамку (theoRef). При необходимости создайте дополнительные поля, отражающие ключевые идеи современных теорий.

SoTA-рамки, на которые следует опираться
Active Inference (Friston) — прогресс-трекинг via surprise minimisation
Constructor Theory (Deutsch) — описание возможных/невозможных трансформаций
Systems Thinking 3G (Levenchuk) — многоуровневость и роли создателя
Bloom-2 Digital Taxonomy — уровни усвоения
W3C KG Best Practices (RDF/OWL, SHACL) — уникальность и типизация узлов
Integral Meta-Theory (Wilber) — много-слоёв/квадрантов как «теория теорий»
General Systems Theory (von Bertalanffy) — фундаментальные системные принципы
Basic Formal Ontology / DOLCE / UFO — верхнеуровневые онтологии объектов и событий
Category Theory — универсальные структуры и морфизмы для композиции понятий
First-Principles Reasoning (Feynman, Musk) — декомпозиция до инвариантов/законов

Выход: Верни один Markdown-блок. Для каждого поля напишите четыре строки строго в указанном порядке и отделяйте поля пустой строкой:

Key: # уникальный идентификатор, camelCase
Why: <≤ 30 слов> # зачем нужно поле
What: <≤ 45 слов> # что писать в поле
Usage: <≤ 30 слов> # как будет использоваться

Требования и ограничения:

  • Общее число полей ≤ 40 (включая версионирование и расширяемость).
  • Ключи (Key) — только латиница, camelCase, без пробелов и спецсимволов.
  • Не используйте таблицы, HTML-теги, вложенные списки или примеры заполнения.
  • Лимиты по числу слов можно слегка превышать при необходимости, но желательно соблюдать.
  • Любой текст вне указанного Markdown-блока не допускается.
Модель понятия
Identification

Key: conceptId
Why: Нужен уникальный «адрес» понятия в интернете, чтобы его можно было однозначно найти, сослаться на него и не спутать с другими терминами.
What: Полный IRI формата https://example.org/concept/{slug}, где slug — транслитерация русского названия через дефис («kebab-case»).
Usage: По этому IRI граф знаний связывает данные, внешние системы импортируют понятие, а люди получают прямую ссылку на описание.

Key: conceptLabel
Why: Короткое читаемое название помогает быстро узнать, о чём идёт речь, особенно в списках и поиске.
What: Основное название понятия на русском (и на английском), не длиннее пары-тройки слов.
Usage: Отображается в интерфейсах, используется в автодополнении, формирует заголовки карточек и статей.

Key: conceptLevel
Why: Позволяет явно фиксировать иерархический уровень термина (мета-мета или мета), чтобы граф знаний мог различать глубину абстракции, применять корректные правила валидации и строить навигацию между уровнями.
What: Строка из фиксированного набора значений: "MetaMeta" — понятие базового онтологического уровня; "Meta" — понятие, описывающее категории/элементы этих мета-мета-понятий.
Usage: Используется для фильтрации и группировки узлов в интерфейсах, для проверки, что metaMetaType выбран из допустимого списка, а также для автоматического выбора шаблонов отображения и наследования свойств между уровнями.

Key: altLabels
Why: Люди используют синонимы, аббревиатуры и жаргон; без них поиск часто промахивается.
What: Перечень альтернативных названий через слеш: синонимы, варианты написания, популярные сокращения.
Usage: Расширяет поиск, уменьшает ошибки сопоставления, помогает ИИ распознавать термин в свободном тексте.

Key: conceptType
Why: Указывает, чем является узел (тип, класс), что важно для логических выводов и визуализации.
What: Значение из фиксированного набора, например Class, Process, Role, Quality, Event.
Usage: Позволяет движку автоматически применять шаблоны отображения, проверять допустимые связи и строить онтологию.

Key: domain
Why: Помогает группировать понятия по предметным областям и отфильтровывать лишнее при построении курсов.
What: IRI или код области знания (например «systems-engineering») либо название курса/отрасли.
Usage: Используется в фильтрах каталога, аналитике и рекомендует контент релевантной аудитории.

Key: discipline
Why: Показывает академическую или профессиональную дисциплину, формируя мост между теориями и практикой.
What: Объект {nameRu, level}, где level ∈ L2|L3 отражает глубину укоренения в программе.
Usage: Помогает строить междисциплинарные траектории и распределять ответственность между кафедрами/модулями.

Key: creator
Why: Фиксирует автора описания, обеспечивая прозрачность и возможность задать уточняющие вопросы.
What: IRI или контакт автора/команды (email, URL профиля).
Usage: Платформа уведомляет создателей о правках, а пользователи видят, кому благодарны.

Key: creationDate
Why: Позволяет понимать, когда термин введён и насколько он свежий или исторический.
What: Дата и время первого сохранения паспорта в формате ISO-8601.
Usage: Фильтр «новые понятия», напоминание о ревизии и контекст при просмотре изменений.

Key: theoRef
Why: Связывает понятие с современными теориями (Active Inference, Constructor Theory и др.), обеспечивая научную основу.
What: Список ссылок или цитат на авторитетные источники и рамки, подтверждающие концепт.
Usage: Автоматически подтягивает объяснения, диаграммы и расширяет граф теоретическими узлами.

Key: extensibility
Why: Позволяет безопасно добавлять новые свойства, не нарушая работу существующих сервисов.
What: JSON-словарь дополнительных пар «ключ-значение», которые понимают только расширенные модули.
Usage: Команды могут экспериментировать с новыми атрибутами, оставаясь совместимыми с базовой схемой.

Semantics

Key: formalDefinition
Why: Машинам нужны строгие правила, чтобы проверять и выводить логические связи без двусмысленности.
What: Описание в OWL/SHACL, задающая точные границы понятия.
Usage: Reasoner выявляет противоречия, автоматически связывает понятия и валидирует данные учебных кейсов.

Key: informalDefinition
Why: Человеку проще начать с короткого ясного объяснения, чем читать формальные аксиомы.
What: Понятное объяснение на русском, максимум 2–3 предложения, избегающее технического жаргона.
Usage: Показывается в всплывающих подсказках, используется в быстром экспорте «словарика» для студентов.

Key: purposeRu
Why: Любому понятию важно указать «зачем оно нужно», чтобы мотивировать изучение и понять сценарии ценности.
What: 1–5 предложения о практической пользе термина в работе, обучении или исследованиях.
Usage: Генератор руководств добавляет мотивационные абзацы, объясняя значимость каждого узла учебного маршрута.

Key: usageContextRu
Why: Показ контекстов применения помогает студенту сразу соотнести абстракцию с реальными задачами.
What: Список типовых сфер (например «проектирование ИИ-систем», «стратегическое планирование»).
Usage: Система рекомендаций подсвечивает понятие, когда пользователь выбирает похожие контексты.

Key: notThisRu
Why: Термины часто путают; негативное определение сразу отсеивает ложные ассоциации.
What: Короткая фраза «Не путать с …», подчёркивающая ключевое отличие.
Usage: В тестах служит ловушкой для неверных ответов и уменьшает семантические ошибки в чате.

Key: keyProperties
Why: Знание критических характеристик позволяет быстро «проверить на глаз» правильность использования термина.
What: Перечень свойств вида {название, тип данных, единицы измерения}.
Usage: Автоматически генерирует поля формы, критерии оценки упражнений и таблицы сравнения.

Key: relatedConcepts
Why: Граф без связей бесполезен; указание отношений формирует семантическую сеть.
What: Массив объектов {relation, targetIri}, где relation ∈ IS_A|PART_OF|RELATES_TO|HAS_EXAMPLE|ALIGNS_WITH.
Usage: Строит интерактивную карту, помогает reasoner-у выводить наследование и композицию.

Key: transformationPatterns
Why: Показывает, какие преобразования допустимы или невозможны, опираясь на Constructor Theory.
What: Список правил вида «A → B возможно», «C ↛ D невозможно».
Usage: Планировщик задач подсказывает, какие шаги доступны пользователю при решении проблемы.

Key: constraints
Why: Ограничения защищают от логически некорректных комбинаций и ошибок ввода.
What: SHACL-правила, математические допуски или текстовые инварианты.
Usage: Форма ввода подсказывает ошибки, а reasoner блокирует несогласованные связки.

Key: examplesRu
Why: Примеры закрепляют понимание и помогают увидеть границы применения на практике.
What: Объект с массивами позитивных и негативных кейсов по 1-2 предложения каждый.
Usage: Превращается в карточки тренировочных упражнений и иллюстрации в статьях.

Key: metaphorRu
Why: Яркая метафора делает даже сложный термин запоминающимся.
What: Короткий образ или аналогия («как дирижёр оркестра»).
Usage: Используется в презентациях, маркетинговых постах и для облегчения объяснений новичкам.

Key: oppositeRu
Why: Понимание антонима помогает точнее схватить суть и границы понятия.
What: IRI противоположного концепта или краткое название.
Usage: Система может предлагать «сравнить и противопоставить» в упражнениях.

Pedagogy

Key: bloomLevel
Why: Уровень таксономии Блума задаёт, насколько глубоко нужно усвоить понятие.
What: Одно из Remember, Understand, Apply, Analyze, Evaluate, Create.
Usage: Генератор курсов подбирает задачи нужной сложности и формулирует проверочные вопросы.

Key: soloLevel
Why: SOLO оценивает структурность понимания от фрагментарного к абстрактному.
What: Prestructural, Unistructural, Multistructural, Relational или Extended_Abstract.
Usage: Помогает наставнику выбирать формат заданий — от простого списка фактов до комплексного проекта.

Key: dokLevel
Why: Depth of Knowledge (Webb) показывает, какой когнитивный уровень требуется: вспоминание фактов или анализ систем.
What: Целое число 1–4.
Usage: Позволяет экзаменационным системам автоматически калибровать тестовые задания.

Key: finkProfile
Why: Модель Финка добавляет гуманитарные и интегративные аспекты обучения.
What: Массив из шести категорий (Foundational_Knowledge и др.), выбранных для данного понятия.
Usage: Строит сбалансированные учебные активности — не только знания, но и развитие «человеческого измерения».

Key: marzanoLevel
Why: Шкала Марзано уточняет, какой вид обработки знания требуется — от извлечения до применения.
What: Retrieval, Comprehension, Analysis или Knowledge_Utilization.
Usage: Помогает дифференцировать задачи и отслеживать рост компетенций со временем.

Key: difficulty
Why: Быстрая оценка сложности облегчает адаптацию содержания под уровень студента.
What: Целое 0–5, где 0 — новичок, 5 — экспертная сложность.
Usage: Алгоритм рекомендаций регулирует нагрузку, чтобы не перегрузить и не дать слишком простое.

Key: prerequisiteConcepts
Why: Без базовых понятий продвинутый материал не усвоится; важно знать, что нужно изучить раньше.
What: Список IRI необходимых узлов.
Usage: Модуль маршрутизации строит персональные «лестницы» изучения.

Key: learningObjectives
Why: Чёткие цели делают обучение прозрачным и ориентируют студента на результат.
What: Краткие SMART-цели, начинающиеся с глаголов (описать, применить, оценить…).
Usage: Формируют чек-листы, по которым студент и наставник отслеживают достижения.

Key: masteryCriteria
Why: Нужно объективно понять, достигнуто ли освоение — иначе нельзя строить адаптивный курс.
What: Условия успеха, например «>= 80 % правильных ответов» или «снижение surprise < ε».
Usage: Система автоматически ставит «освоено» и предлагает следующий модуль.

Key: recommendedResources
Why: Хорошие материалы ускоряют обучение, а плохие — тормозят.
What: Ссылки на статьи, видео, симуляторы, ранжированные по качеству и формату.
Usage: ИИ-ассистент выдаёт персональную подборку под стиль и уровень студента.

Key: personalizationHint
Why: Люди учатся по-разному; метка помогает подстроить под визуалов, практиков, менеджеров и т.д.
What: Один-два тега, например «visual», «handsOn», «manager».
Usage: Курсы меняют примеры, формат и язык объяснений под предпочтения пользователя.

Key: promptHintRu
Why: Взаимодействие с ИИ требует чётких запросов; подсказка экономит время новичка.
What: Короткий совет: «Спроси: “Объясни X простыми словами и приведи пример”».
Usage: Интегрируется в чат-боты, IDE и автодополнение промптов.

Governance

Key: version
Why: Разные версии описания могут содержать несовместимые изменения; нужно знать, какую вы используете.
What: SemVer (например 1.2.0) или git-хеш коммита.
Usage: Движок проверяет совместимость, а пользователи могут откатиться к прошлой версии.

Key: status
Why: Показ зрелости понятия (черновик, утверждено, устарело) защищает учёбу от неготовых материалов.
What: Enum draft, review, approved или deprecated.
Usage: Фильтры скрывают черновики от студентов, а deprecated вызывает уведомление авторам курсов.

Key: lastReviewDate
Why: Регулярная ревизия защищает от устаревания и ошибок; дата напоминает о необходимости проверки.
What: Дата-время последнего экспертного утверждения.
Usage: Система шлёт напоминание куратору, если прошло, например, больше года без проверки.

Key: changeHistory
Why: Прозрачная история изменений помогает понять, почему и кем вносились правки.
What: Массив {timestamp, editor, diffSummary} — краткие логи изменений.
Usage: Аудит, откат неверных правок и обучение новых редакторов.

Key: steward
Why: Должен быть ответственный, к которому можно обратиться за разъяснениями или правками.
What: Контактный IRI человека или команды-куратора (email, профиль).
Usage: Вопросы студентов и предложения улучшений маршрутизируются напрямую к стюарду.

Далее я попросил ИИ сократить объяснения в Модели понятия, поскольку для ИИ не нужно знать полное объяснение каждого поля. Это подробное описание было нужно для нашего понимания логики каждого поля. Соответственно в промпт для заполнения Модели понятия вошла его сокращенная структура.

Промпт для заполнения Модели мета-мета понятия

Ты — опытный онтолог-методолог и эпистемолог. Твоя задача — строго на основании переданного фрагмента (или целой главы) из руководств сформировать JSON-карточку Понятия для графа знаний на основ Модели понятия.

1. Алгоритм работы

  1. Прочитай входной текст и используй только его содержание.
  2. Определи conceptLabel: если название явно дано — возьми его, иначе выбери основные термины по каждому разделу текста.
  3. Заполни все поля модели; нет данных — ставь “” или .
  4. Проверь правила:
    • Никаких дубликатов между полями.
    • Поле definition_ru всегда начинается с BORO-классификатора: «Процесс …», «Свойство …», «Роль …», «Система …» и т.д.
    • Таксономические уровни (bloomLevel, soloLevel, dokLevel, …) выбирай по минимальной компетенции, достаточной для освоения термина.
  5. Сформируй JSON ровно по структуре, приведённой ниже.
  6. Не добавляй ничего от себя: никаких внешних знаний, предположений, пересказов других глав, ссылок на интернет и т.д.

2. Формат входа/выхода

  • Input — тексты руководств (русский).
  • Output — единственный JSON-объект (UTF-8, без комментариев).

3. Модель понятия (заполнять полностью, не сокращать)

Identification
conceptId: Уникальный IRI вида https://example.org/concept/{slug} (slug — транслитерация русского названия через дефис).
conceptLabel: Основное название (русское и/или английское), не длиннее трёх слов.
conceptLevel: Указать, что все понятия относятся к MetaMeta
altLabels: Альтернативные названия через слеш (синонимы, сокращения, варианты написания).
conceptType: Одно из: Class, Process, Role, Quality, Event.
domain: IRI, код или название предметной области, курса или отрасли.
discipline: Объект: {nameRu, level} (level: L2 или L3).
creator: Контакт или IRI автора/команды (email, URL профиля).
creationDate: Дата и время первого сохранения (ISO-8601).
theoRef: Список ссылок или цитат на теории и источники.
extensibility: JSON-словарь дополнительных пар (если есть).

Semantics
formalDefinition: Формальное описание в OWL/SHACL.
informalDefinition: Краткое, простое объяснение на русском (2–3 предложения).
definition_ru: Начинай с классификации по BORO (например, «Процесс, …»), далее — суть понятия. Сделай наиболее вероятностное объяснение.
purposeRu: 1–5 предложений о практической пользе.
usageContextRu: Список сфер применения.
notThisRu: Кратко — с чем не путать термин.
keyProperties: Список свойств: {название, тип данных, единицы}.
relatedConcepts: Массив из не менее 3 объектов: {relation, targetIri} (relation: IS_A, PART_OF, RELATES_TO, HAS_EXAMPLE, ALIGNS_WITH).
transformationPatterns: Список правил преобразований («A → B возможно»).
constraints: SHACL-правила, допуски или инварианты.
examplesRu: Объект: {positive: , negative: } (по 1–2 предложения).
metaphorRu: Краткая метафора или аналогия.
oppositeRu: IRI или краткое название антонима.

Pedagogy
bloomLevel: Минимальный уровень из Bloom (Remember, Understand, Apply, Analyze, Evaluate, Create).
soloLevel: Минимальный уровень SOLO (Prestructural, Unistructural, Multistructural, Relational, Extended_Abstract).
dokLevel: Минимальный уровень DOK (1–4).
finkProfile: Массив категорий модели Финка.
marzanoLevel: Минимальный уровень Марзано (Retrieval, Comprehension, Analysis, Knowledge_Utilization).
difficulty: Оцени сложность (0–5).
prerequisiteConcepts: Список IRI базовых понятий.
learningObjectives: Краткие SMART-цели.
masteryCriteria: Условия успешного освоения.
recommendedResources: Ссылки на лучшие материалы.
personalizationHint: Один-два тега для персонализации.
promptHintRu: Короткий совет для составления запроса к ИИ.

Governance
version: Версия описания (SemVer или git-хеш).
status: Статус (draft, review, approved, deprecated).
lastReviewDate: Дата последней проверки.
changeHistory: Массив: {timestamp, editor, diffSummary}.
steward: Контакт ответственного лица или команды.

4. Памятка проверок перед выводом

  • relatedConcepts.length >= 3.
  • definition_ru начинается с BORO-классификатора.
  • Нет повторяющихся значений между разделами.
  • JSON валиден (проверить скобки и запятые).
  • Пустые поля = "" или [], но ключи сохраняются.
Промпт для заполнения Модели мета понятия

Ты — опытный онтолог-методолог и эпистемолог. Твоя задача — строго на основании переданного фрагмента (или целой главы) из руководств сформировать JSON-карточку Понятия для графа знаний на основ Модели понятия.

1. Алгоритм работы

  1. Прочитай текст и используй только его содержание.
  2. Определи conceptLabel: если название явно дано — возьми его, иначе выбери основные термины по каждому разделу текста.
  3. Заполни все поля модели; нет данных — ставь “” или .
  4. Для metaMetaType используй только IRI из переданного списка metaMetaList (новые не добавляй).
  5. Проверь:
    • нет дублирования значений;
    • definition_ru начинается с BORO-класса;
    • уровни Bloom / SOLO / DOK выбраны по минимальной компетенции.
  6. Выведи один JSON строго по заданной схеме, без внешних знаний и комментариев.
  7. Не добавляй ничего от себя: никаких внешних знаний, предположений, пересказов других глав, ссылок на интернет и т.д.

2. Формат входа/выхода

  • Input — тексты руководств (русский).
  • Output — единственный JSON-объект (UTF-8, без комментариев).

3. Модель мета-понятия (заполнять полностью, не сокращать)

Identification
conceptId: Уникальный IRI вида https://example.org/concept/{slug} (slug — транслитерация русского названия через дефис).
conceptLabel: Основное название (русское и/или английское), не длиннее трёх слов.
conceptLevel: Указать, что все понятия относятся к Meta.
altLabels: Альтернативные названия через слеш (синонимы, сокращения, варианты написания).
conceptType: Одно из: Class, Process, Role, Quality, Event.
metaMetaType: Мета-мета-понятия, к которому относится данное мета-понятие. Указать понятия из conceptLevel с пометкой MetaMeta.
domain: IRI, код или название предметной области, курса или отрасли.
discipline: Объект: {nameRu, level} (level: L2 или L3).
creator: Контакт или IRI автора/команды (email, URL профиля).
creationDate: Дата и время первого сохранения (ISO-8601).
theoRef: Список ссылок или цитат на теории и источники.
extensibility: JSON-словарь дополнительных пар (если есть).

Semantics
formalDefinition: Формальное описание в OWL/SHACL.
informalDefinition: Краткое, простое объяснение на русском (2–3 предложения).
definition_ru: Начинай с классификации по BORO (например, «Процесс, …»), далее — суть понятия. Сделай наиболее вероятностное объяснение.
purposeRu: 1–5 предложений о практической пользе.
usageContextRu: Список сфер применения.
notThisRu: Кратко — с чем не путать термин.
keyProperties: Список свойств: {название, тип данных, единицы}.
relatedConcepts: Массив из не менее 3 объектов: {relation, targetIri} (relation: IS_A, PART_OF, RELATES_TO, HAS_EXAMPLE, ALIGNS_WITH).
transformationPatterns: Список правил преобразований («A → B возможно»).
constraints: SHACL-правила, допуски или инварианты.
examplesRu: Объект: {positive: , negative: } (по 1–2 предложения).
metaphorRu: Краткая метафора или аналогия.
oppositeRu: IRI или краткое название антонима.

Pedagogy
bloomLevel: Минимальный уровень из Bloom (Remember, Understand, Apply, Analyze, Evaluate, Create).
soloLevel: Минимальный уровень SOLO (Prestructural, Unistructural, Multistructural, Relational, Extended_Abstract).
dokLevel: Минимальный уровень DOK (1–4).
finkProfile: Массив категорий модели Финка.
marzanoLevel: Минимальный уровень Марзано (Retrieval, Comprehension, Analysis, Knowledge_Utilization).
difficulty: Оцени сложность (0–5).
prerequisiteConcepts: Список IRI базовых понятий.
learningObjectives: Краткие SMART-цели.
masteryCriteria: Условия успешного освоения.
recommendedResources: Ссылки на лучшие материалы.
personalizationHint: Один-два тега для персонализации.
promptHintRu: Короткий совет для составления запроса к ИИ.

Governance
version: Версия описания (SemVer или git-хеш).
status: Статус (draft, review, approved, deprecated).
lastReviewDate: Дата последней проверки.
changeHistory: Массив: {timestamp, editor, diffSummary}.
steward: Контакт ответственного лица или команды.

4. Памятка проверок перед выводом

  • relatedConcepts.length >= 3.
  • definition_ru начинается с BORO-классификатора.
  • Нет повторяющихся значений между разделами.
  • JSON валиден (проверить скобки и запятые).
  • Пустые поля = "" или [], но ключи сохраняются.
1 лайк

Церен Валерьевич, замечательно, что Вы предложили свои версии (экземпляры) промтов. Уверен, что это не первые редакции, и что Вы приложили массу усилий для их оптимизации. Уверен, что пресловутое “A|B-тестирование” проводилось Вами многократно…

Позвольте и мне внести свой скромный вклад в Ваше большое дело —

Промт для поверхностной верификации/валидации системных промтов

Ниже я дам тебе системный промт. 

Твои задачи:

- объяснить принцип работы системного промта: что пользователь подаёт на вход, что получает на выходе;

- все слабые места, где пользователь делает критические допущения типа "LLM сама догадается КАК сделать, а моя задача объяснить LLM ЧТО делать".

Я запрещаю тебе быть угодливой и льстить мне. Тебе запрещено фантазировать и выдавать желаемое за действительное. Строго следуй традиции научной критики в здоровом научном сообществе — только факты и твои интерпретации в рамках критики, принятой в научной парадигме.

Вот это промт для твоего глубокого исследования: "<здесь вставляется текст системного промта полностью>"

UPD 2025-07-14T21:15:00Z
Если не желаете ограничиваться “поверхностным исследованием” (?), то лучше, чем располагаю сам — см. здесь.