temporality
Изменить страницу↗
Инженерные документы

ТЗ: Knowledge Explorer — исследовательский интерфейс знаний Temporality

Статус: реализовано (этапы 1–4, см. план). Explorer живёт на странице /knowledge (карта знаний — ?view=map); вкладка «Знания» в Observability удалена. Описание ниже — ТЗ эпохи проектирования; где оно говорило «сегодня» о реестре, имелась в виду допроектная вкладка.

#1. Цель

Разработать пользовательский интерфейс для исследования накопленных знаний Temporality, позволяющий человеку ориентироваться в больших объёмах утверждений, находить нужные сведения по приблизительному пониманию предметной области, изучать связи между знаниями и восстанавливать историю формирования, подтверждения, оспаривания и изменения фактов.

Интерфейс должен развить существующую вкладку «Знания» — сегодня это реестр с поиском, фасетами состояний и областей, битемпоральными фильтрами и сравнением срезов, действиями жизненного цикла (инвалидация с заменой, оспаривание, продвижение) и цепочкой активации — в полноценное исследовательское пространство.

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

#1.1. Основные проблемы

В процессе эксплуатации Temporality накопилось значительное количество утверждений с разными состояниями жизненного цикла. Существующие фильтры, полнотекстовый поиск и временные ограничения уже не обеспечивают удобную навигацию по всему объёму знаний.

Основные сценарии, которые необходимо решить:

#1.2. Основной принцип

Пользователь исследует предметную область, а не вручную перебирает записи.

Интерфейс должен помогать последовательно отвечать на вопросы:

  1. Где искать?
  2. Какие понятия и темы связаны с моим вопросом?
  3. Какие утверждения имеют отношение к делу?
  4. Как эти утверждения связаны?
  5. На чём они основаны?
  6. Что изменилось со временем?
  7. Какие вопросы остаются нерешёнными?

#2. Область работ

Реализовать три взаимосвязанных представления:

  1. Карта знаний — обзор тематических областей и навигация по ним.
  2. Исследование связей — интерактивное изучение связей между понятиями, утверждениями, источниками и контекстами.
  3. Досье знания — подробная карточка выбранного утверждения с происхождением, состоянием, временной историей и связанными объектами.

Дополнительно реализовать:

Все представления должны использовать существующую модель знаний и предусмотренные архитектурой исследовательские сервисы.

#3. Общая структура интерфейса

#3.1. Точка входа

В существующем интерфейсе Temporality предусмотреть отдельный режим или раздел «Исследование знаний» (Knowledge Explorer).

Он должен быть доступен из раздела знаний (сегодня — страница /knowledge), без необходимости переходить в отдельное приложение.

Существующий реестр знаний и его возможности не удалять. Explorer дополняет его новым способом работы с данными.

#3.2. Главная страница

На стартовом экране должны присутствовать:

Пример исходного запроса:

«Найти, почему в одном из проектов отказались от первоначального механизма авторизации».

Пользователь не должен заранее указывать идентификатор знания, точный термин или имя проекта. Если запрос неоднозначен, интерфейс должен предложить направления исследования, а не требовать немедленно уточнить все параметры.

#3.3. Единая исследовательская область

При переходе между картой знаний, графом связей и досье необходимо сохранять:

Пользователь должен иметь возможность вернуться на предыдущий уровень без повторного ввода запроса и восстановления фильтров.

#4. Карта знаний

#4.1. Назначение

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

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

#4.2. Формирование тематических областей

Использовать существующую классификацию и отношения, если они уже доступны.

Если готовая классификация отсутствует, допускается формирование тематических групп на основании доступных формулировок утверждений, семантической близости и контекста. (Реализовано: судейская нормализация областей — canonical/hidden-алиасы.)

Тематические группы являются навигационным представлением. Они не должны автоматически становиться жёсткими категориями знаний или изменять их принадлежность.

Одно утверждение может относиться к нескольким тематическим областям.

#4.3. Отображение

Для каждой области показывать:

Не перегружать карту одновременным отображением всех показателей. Подробности показывать при выборе области.

Размер, цвет и другие визуальные характеристики не должны создавать впечатление, что количество знаний или интенсивность активности означает их достоверность.

#4.4. Взаимодействие

Пользователь должен иметь возможность:

#4.5. Альтернативный список областей

Помимо графического представления предусмотреть список тематических областей.

Список должен обеспечивать:

Карта не должна быть единственным способом доступа к знаниям.

#5. Исследовательский поиск

#5.1. Общие требования

Поиск должен поддерживать естественно-языковые запросы и приблизительные формулировки.

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

Поиск должен использовать доступные механизмы полнотекстового и семантического поиска, альтернативные формулировки и контекстные связи.

Текущий поиск — IDF-взвешенный матч с нормализованными признаками и объяснением (matched_by/score, движок lexical-idf.v1); семантический слой подсказок и общий исследовательский слой агентного ТЗ — см. docs/plan-priming-relevance.md §18; интерфейс не должен дублировать его логику.

#5.2. Поисковая выдача

Для каждого результата показывать:

Пользователь должен понимать, почему результат появился в выдаче.

Необходимо различать совпадение по тексту, семантическую близость, связь через контекст и явное отношение между утверждениями.

#5.3. Предложения по уточнению

Если запрос широк или неоднозначен, предлагать:

Не блокировать поиск обязательным заполнением фильтров.

#5.4. Сортировка

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

Релевантность, актуальность и достоверность не должны объединяться в один неинтерпретируемый показатель.

#6. Фасетная навигация

#6.1. Измерения навигации

Пользователь должен иметь возможность исследовать знания по нескольким независимым измерениям:

Организация

Проекты и задачи

Жизненный цикл

Время

Смысл

#6.2. Поведение фильтров

Не создавать отдельные независимые деревья знаний для каждой организации или проекта. Навигация должна строиться поверх общей модели с учётом прав доступа.

#6.3. Область применимости

В интерфейсе необходимо различать:

Нельзя автоматически считать знание, обнаруженное в проекте, утверждением, действующим для всей компании.

#7. Исследование связей

#7.1. Назначение

Позволить пользователю перейти от известного утверждения к связанным сведениям, даже если они напрямую не соответствуют исходному поисковому запросу.

Граф должен показывать релевантное окружение выбранного объекта, а не всю базу знаний.

#7.2. Типы связей

Отображать те типы отношений, которые поддерживаются существующей моделью или исследовательским слоем:

Не создавать фиктивные отношения ради заполнения графа.

#7.3. Визуальное представление

Для узлов и связей необходимо различать:

Предположительные связи должны иметь отдельное визуальное обозначение и не должны выглядеть как подтверждённые факты.

Цвета и иконки должны иметь понятную легенду. Нельзя кодировать несколько независимых характеристик одним и тем же цветом без дополнительного обозначения.

#7.4. Управление графом

Пользователь должен иметь возможность:

При большом количестве связей система должна показывать наиболее релевантные результаты и позволять раскрывать остальные по запросу.

Необходимо предусмотреть защиту от визуальной перегрузки. Не стремиться отображать все связи одновременно.

#8. Досье знания

#8.1. Назначение

Предоставить единое подробное представление выбранного утверждения, объединяющее его содержание, состояние, применимость, происхождение, связи и историю.

#8.2. Содержание досье

Основная информация

Происхождение

Связанные знания

Использование

История

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

#8.3. Переходы

Из досье пользователь должен иметь возможность:

#9. Временная история

#9.1. Назначение

Восстановить эволюцию знания и помочь понять, почему его текущее состояние отличается от первоначального.

#9.2. Представление

Использовать временную линию событий с возможностью просмотра подробностей.

Отображать:

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

#9.3. Битемпоральная навигация

Модель уже поддерживает битемпоральные срезы: фильтры as_of/known_at и сравнение срезов реализованы в Explorer (HistoryTimeline). Предусмотреть возможность исследовать:

Историческое состояние нельзя подменять текущим состоянием записи.

Пользовательский интерфейс должен объяснять, какой именно временной аспект используется в каждом представлении.

#10. Обнаружение противоречий

#10.1. Представление

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

Для конфликта отображать:

#10.2. Интерфейс сравнения

Предусмотреть отдельное представление для сопоставления двух или нескольких утверждений.

Пользователь должен иметь возможность быстро увидеть:

Необходимо различать реальное противоречие и ситуацию, в которой два утверждения относятся к разным версиям системы, периодам или проектам.

Интерфейс не должен автоматически считать более новое утверждение истинным.

#10.3. Изменение жизненного цикла

В рамках этой задачи разрешено только отображение и навигация по противоречиям.

Изменение состояния утверждения, подтверждение, инвалидация или разрешение конфликта должны выполняться через существующие механизмы управления знаниями с предусмотренными правами и подтверждениями.

#11. Исследовательская сессия

#11.1. Назначение

Позволить пользователю сохранять ход расследования, возвращаться к нему и передавать его другим уполномоченным участникам.

#11.2. Состав сессии

Сохранённая сессия может включать:

#11.3. Требования

Если в системе уже есть подходящая сущность для сохранения пользовательского рабочего контекста, использовать её вместо создания параллельной модели.

#12. Работа с результатами исследования агента

Если агент использовал исследовательский API, пользователь должен иметь возможность открыть его результаты в Knowledge Explorer.

При наличии соответствующих данных отображать:

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

Необходимо отличать:

Не представлять автоматически сформированный вывод как подтверждённое знание.

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

#13. Визуальный стиль и UX

#13.1. Общие требования

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

Основные принципы:

#13.2. Постепенное раскрытие информации

На первом уровне показывать темы, связи и краткие сведения.

Подробные метаданные, полную историю, исходные события и дополнительные связи раскрывать по запросу.

Не выводить все характеристики знания одновременно на главном экране.

#13.3. Доступность

Предусмотреть:

#13.4. Пустые и ошибочные состояния

Для каждого представления предусмотреть состояния:

Сообщения должны объяснять ситуацию и предлагать разумный следующий шаг.

#14. Права доступа и безопасность

Все данные, отображаемые в Explorer, должны соответствовать действующей модели авторизации Temporality.

Обязательно:

Если объект стал недоступен после сохранения сессии, его содержимое не должно продолжать отображаться из сохранённого состояния.

#15. Архитектурные ограничения

  1. Использовать существующие сервисы, модели, идентификаторы и механизмы доступа Temporality.
  2. Использовать общий исследовательский слой с агентным инструментом, предусмотренным docs/agent-knowledge-exploration.md.
  3. Не реализовывать в пользовательском интерфейсе собственную логику определения достоверности и жизненного цикла.
  4. Не создавать параллельный механизм поиска и классификации без обоснования.
  5. Не вводить новую графовую базу только ради визуализации.
  6. Не превращать тематические группы в жёсткую классификацию без отдельного решения.
  7. Не считать семантически близкие утверждения подтверждающими друг друга.
  8. Не изменять исходные знания при просмотре, фильтрации или исследовании.
  9. Не нарушать существующие контракты и возможности реестра знаний (/knowledge).
  10. Не создавать дублирующую систему хранения истории и происхождения.

Если существующие API не обеспечивают необходимую функциональность, сначала определить минимальное расширение общего исследовательского слоя и согласовать его с архитектурой проекта.

#16. Производительность

Целевые показатели задержки и объёма данных определить после измерения текущей реализации и проведения испытаний на реалистичном объёме знаний.

#17. Тестирование

#17.1. Функциональные сценарии

Проверить следующие сценарии:

  1. Пользователь начинает с приблизительного описания проблемы и находит релевантную тему.
  2. Пользователь обнаруживает альтернативные термины и формулировки.
  3. Пользователь переходит от тематической области к конкретному утверждению.
  4. Пользователь исследует связанные утверждения и источники.
  5. Пользователь обнаруживает конфликтующие версии.
  6. Пользователь восстанавливает историю изменения знания.
  7. Пользователь сравнивает утверждения из разных проектов.
  8. Пользователь исследует историческое состояние знания.
  9. Пользователь сохраняет сессию и возвращается к ней.
  10. Пользователь открывает результаты исследования агента.
  11. Пользователь работает с темой, в которой отсутствуют явные отношения между частью утверждений.
  12. Пользователь получает корректное сообщение о недостатке данных или достижении лимита.

#17.2. Проверка корректности

Проверить, что:

#17.3. UX-проверка

Провести сценарные испытания с пользователями, которым не предоставляются точные названия искомых утверждений.

Оценить:

Не принимать работу только на основании технической работоспособности отдельных экранов.

#18. Критерии приёмки

Задача считается выполненной, если:

  1. В Temporality доступен Knowledge Explorer, не заменяющий существующий реестр знаний.
  2. Пользователь может начать исследование с приблизительного запроса.
  3. Доступны карта тематических областей и альтернативный список.
  4. Поиск поддерживает смысловые совпадения и объясняет релевантность результатов.
  5. Реализована фасетная навигация по контексту, времени и жизненному циклу.
  6. Доступно исследование локального графа связей.
  7. Реализовано досье знания с происхождением, состоянием и историей.
  8. Реализовано сопоставление конфликтующих утверждений.
  9. Переходы между представлениями сохраняют контекст исследования.
  10. Пользователь может сохранять и открывать исследовательские сессии, если соответствующая функция включена в согласованный объём.
  11. Результаты агентного исследования можно открыть и проверить, если соответствующая интеграция реализована.
  12. Все представления соблюдают существующую модель доступа.
  13. Исследование больших наборов данных не требует загрузки всей базы в браузер.
  14. Пройдены автоматизированные функциональные тесты и согласованные UX-сценарии.
  15. Все новые компоненты используют общие сервисы и не дублируют бизнес-логику.

#19. Этапы реализации

#Этап 1. Аудит и прототипирование

Результат: согласованная структура интерфейса и технический план реализации.

#Этап 2. Базовая исследовательская навигация

Результат: пользователь может ориентироваться в предметной области и находить релевантные знания.

#Этап 3. Исследование и проверка

Результат: пользователь может проверить происхождение и контекст найденных знаний.

#Этап 4. Рабочие сессии и интеграция с агентами

Результат: воспроизводимые исследования, которые можно продолжить или проверить.

#20. Итоговый результат

Knowledge Explorer должен позволять человеку пройти путь:

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

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

Интерфейс должен делать накопленные знания обозримыми, объяснять связи между ними и помогать человеку отличать подтверждённые сведения от гипотез, исторических утверждений и нерешённых противоречий.

Реализация должна опираться на актуальный код Temporality, использовать общий исследовательский слой и не создавать параллельную систему хранения, поиска или управления жизненным циклом знаний.