Исторический документ. План сохранён из ревизии исходника 61e75e9 и не является текущим руководством по реализации. Исходный документ.
1. Цель
Расширить graph проекцией происхождения данных, доверия, жизненного цикла и
Attested Computation, не выдавая словарь RDF/JSON-LD проекта за часть исходного OKF.
Исходная спецификация не определяет контекст JSON-LD, онтологию RDF или ABI графа.
Текущий https://okf.io/ontology/v0.1# — контракт инструментария, а не нормативная
часть OKF.
До изменения пространства имён создать ADR и версионируемый контракт проекции:
профиль старого формата сохраняет побайтово совместимый вывод v0.1;
новый профиль явно маркируется как проекция skosovsky/okf v0.2;
объявленная и действующая версии OKF и версия профиля графа — разные поля;
нельзя молча переименовать существующие предикаты.
3. API
Сохранить существующие обёртки Render* для совместимости и добавить API
настроек и профилей:
действующая версия спецификации;
профиль проекции;
необязательный явный as_of для вычисляемого устаревания;
политика связей расширений.
graph получает типизированные данные из bundle и не разбирает исходный YAML
повторно.
4. Проекция
JSON-LD и N-Triples должны уметь выразить:
участника и время генерации, маркер происхождения через резервное чтение
старого формата;
нормализованные события проверки;
вычисляемый уровень доверия;
действующий статус, дату устаревания и устаревание, оценённое на явную дату;
источники, признаки достоверности и общее окно использования либо окна
отдельных источников;
атрибуцию утверждений по ключу;
среду выполнения Attested Computation, параметры, ресурсы
computation/executor/attester и объявленные поля квитанции;
локальные связанные ресурсы как отдельные узлы ресурсов, когда путь разрешим;
объявленную и действующую версии OKF и режим совместимости.
Неизвестные среды выполнения и типы параметров сохраняются как литералы.
Не переводить неизвестные метаданные в выдуманные предикаты; при необходимости
давать отдельную нагрузку расширения с исходными метаданными без потерь только
в документированном профиле.
5. Рёбра и расширения
Ссылки Markdown остаются нетипизированными references.
sources[].resource и пути computation/executor/attester получают только
явно заданные предикаты профиля проекта.
Описания области и внешние URL не считаются узлами bundle.
Нерабочие локальные пути остаются видимыми с exists=false.
YAML relations сохраняется как отдельно маркированное расширение
инструментария.
sources[].id не становится фрагментом подресурса.
Средство вывода графа ничего не исполняет и не обращается к сети.
Текстовый формат, DOT и Mermaid могут сохранить вывод только топологии; аннотации метаданных
добавлять только через явную настройку, чтобы не сломать снимки результатов.
6. Детерминизм
Стабильный порядок концептов, источников, проверок, параметров, квитанций и рёбер.
verified в виде отображения и списка дают одинаковую проекцию.
Пустые коллекции кодируются одинаково согласно профилю.
Даты и временные метки получают корректные типы RDF только после успешного
типизированного разбора.
Все средства вывода передают наружу ошибки записи и неполной записи.
7. Файлы
graph/jsonld.go;
graph/ntriples.go;
graph/text.go, dot.go, mermaid.go только для подключения настроек;
новые profile.go, projection.go;
тесты пакетов и контрактные тестовые данные CLI/MCP;
ADR и документация профиля проекции.
8. Тесты
Все тесты — AAA.
Вывод старого формата v0.1 побайтово совместим.
Полная проекция приложения A для v0.2.
Все уровни доверия и verified в виде отображения и списка.
Отсутствующий статус, stable по умолчанию и граница устаревания.
Общее окно использования и окна отдельных источников.
Неизвестные ID источников, среды выполнения и типы.
Локальные, внешние и нерабочие ресурсы, описания области.
sources[].id не создаёт фрагмент.
Связи расширений явно маркированы.
Детерминированный вывод при перемешанных входных данных.
JSON-LD разбирается; тесты экранирования, типов данных и IRI для N-Triples.
Ошибка записи для каждого средства вывода.
9. Критерии приёмки
Потребители v0.1 могут выбрать профиль старого формата.
Группы сигналов v0.2 доступны в документированном профиле JSON-LD/N-Triples.
Пространство имён и профиль не объявлены стандартом исходной спецификации.
CLI и MCP используют одну реализацию графа.
Нет побочных эффектов выполнения или сети.
go test ./graph и go test ./... проходят.
10. Вне рамок задачи
Официальная стандартизация онтологии, выполнение и аттестация в среде выполнения,
семантическая оценка, получение ресурсов по сети и вывод новых типов связей из
текста.