UJG / UJG 1.0 Release Candidate 1 /
GitHub
Table of Contents
  • 1Overview
  • 2Profile Model
  • 3Profile Conformance
  • 4Starter Profiles
    • 4.1Core
    • 4.2Graph
    • 4.3Surface Runtime
    • 4.4Mapping Metrics
    • 4.5Localized Observability
    • 4.6Design System
    • 4.7Automation Resources
  • 5Opaque Extensions And Profiles
W3C Community Group Draft Report

Profiles

draft

Status of this Document

This report was published by the User Journal Graph Community Group . It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Contributor License Agreement (CLA) there is a limited opt-out and other conditions apply. Learn more about W3C Community and Business Groups .

Status
CG-DRAFT
Version
1.0-rc1
Published
2026-07-27
Last Update
2026-07-28
Editors
  • Seva Dolgopolov
Group
User Journal Graph Community Group
Repository
View Source
License
W3C-Software-and-Document

1. Overview

Profiles define named interoperability bundles for UJG implementations. A profile identifies a set of required UJG modules and the conformance classes that an implementation claims for that set. Profiles do not define new JSON-LD terms, ontology classes, or SHACL shapes.

The Optional Modules published in this release candidate are the official optional capability family. A profile can require one or more optional modules when a capability needs shared semantics across tools. Opaque Core extensions remain outside semantic profile claims except for preservation and pass-through behavior.

Archived extension specifications under specs/archive/extensions are historical material only. Profiles MUST NOT treat those archived packages as active release-candidate capabilities.

2. Profile Model

  • UJG Profile: A named conformance bundle that declares required UJG modules and required conformance classes.

  • Profile claim: An out-of-band statement that a producer, consumer, validator, or tool conforms to a profile for one or more conformance classes.

  • Profile identifier: A URI or document-fragment identifier that names a profile.

  • Required module: A UJG module whose semantic constraints, JSON-LD context, and SHACL validation rules are required by a profile.

  1. A UJG Profile MUST identify each required UJG module.

  2. A UJG Profile MUST identify the conformance classes to which a claim can apply.

  3. A profile claim MUST be made out of band, such as in implementation statements, package manifests, product documentation, HTTP metadata, registry entries, or other deployment metadata.

  4. A profile claim MUST NOT be inferred from JSON-LD document content alone.

  5. A profile claim MUST NOT use opaque Core extensions to satisfy a missing required module.

  6. Unknown profile identifiers have no standardized conformance meaning.

This release candidate does not define a JSON-LD property for profile declarations. Documents MAY contain deployment-private profile metadata in extensions, but such metadata is not a standardized UJG profile claim and cannot affect profile conformance.

3. Profile Conformance

Profile conformance is claimed per conformance class. A tool can conform as a Producer for a profile without also claiming Consumer or Validator conformance for that profile.

  1. A Producer claiming conformance to a profile MUST generate documents that satisfy every required module for that profile.

  2. A Consumer claiming conformance to a profile MUST process terms from every required module according to that module's semantics.

  3. A Validator claiming conformance to a profile MUST validate documents against the SHACL shapes for every required module in that profile.

  4. A profile-conforming implementation MUST satisfy the dependency closure of each required module.

  5. A document MAY use modules outside a claimed profile, but those modules are outside the profile claim unless another profile claim covers them.

  6. A consumer that does not implement an optional module MAY ignore that module's semantics only where the module permits graceful degradation, and SHOULD preserve recognized JSON-LD data during read-transform-write when possible.

Profile conformance does not replace module conformance. It packages module requirements so implementations can make precise interoperability claims without requiring every tool to implement every optional module.

4. Starter Profiles

The following starter profiles are document-fragment identifiers in this Profiles draft. Future versions can publish additional profile identifiers without changing the module semantics below.

ProfileRequired modulesIntended use
#coreCoreUJG document containers and addressable nodes.
#graphCore, GraphIntended journey topology.
#surface-runtimeCore, Graph, Surface, RuntimeSurface-aware runtime traces.
#mapping-metricsCore, Graph, Surface, Runtime, Mapping, MetricsResolved mappings and aggregate metrics.
#localized-observabilityCore, Graph, Surface, Localization, ObservabilityAccessible recognition contracts with localized names and descriptions.
#design-systemCore, Graph, Surface, Design SystemDesign-system realization of graph-facing surfaces.
#automation-resourcesCore, Graph, Surface, Phase, Observability, Entry Binding, Effect, ArtifactAutomation-oriented entry selection, observable resources, declared effects, and portable artifacts.

4.1. Core

The #core profile requires UJG Core. It is suitable for tools that exchange UJG document containers, imports, top-level nodes, and opaque node extensions without claiming graph semantics.

4.2. Graph

The #graph profile requires UJG Core and UJG Graph. It is suitable for tools that exchange intended journey topology, entries, states, transitions, exits, outgoing navigation, and indexes.

4.3. Surface Runtime

The #surface-runtime profile requires UJG Core, UJG Graph, UJG Surface, and UJG Runtime. It is suitable for tools that connect runtime observations to graph-facing surfaces.

4.4. Mapping Metrics

The #mapping-metrics profile requires UJG Core, UJG Graph, UJG Surface, UJG Runtime, UJG Mapping, and UJG Metrics. It is suitable for tools that compute mapping-derived measurements over observed journeys.

4.5. Localized Observability

The #localized-observability profile requires UJG Core, UJG Graph, UJG Surface, UJG Localization, and UJG Observability. It is suitable for tools that recognize surface instances through accessibility-oriented locators and localized names or descriptions.

4.6. Design System

The #design-system profile requires UJG Core, UJG Graph, UJG Surface, and UJG Design System. It is suitable for tools that connect graph-facing surfaces to design-system components, templates, slots, token sources, and realizations.

4.7. Automation Resources

The #automation-resources profile requires UJG Core, UJG Graph, UJG Surface, UJG Phase, UJG Observability, UJG Entry Binding, UJG Effect, and UJG Artifact, including the dependency closure of those modules. It is suitable for automation tools that need stable entry selection values, observable surface/resource context, phase-oriented grouping, declared effects, and portable resources.

5. Opaque Extensions And Profiles

Core extensions are useful for deployment-private data, vendor integration, local hints, and experimental metadata. They are not a substitute for profile-required modules.

  1. A profile claim MUST NOT require consumers to interpret unknown Core extensions.

  2. A profile claim MUST NOT treat an opaque extension key as equivalent to a required UJG module.

  3. Profile-specific interoperable semantics SHOULD be published as UJG modules instead of hidden in opaque extension payloads.

Copyright © 2026 the Contributors to the ujg/profiles/1.0-rc1, published by the User Journal Graph Community Group under the W3C Community Contributor License Agreement (CLA) . A human-readable summary is available.

generated by Speculator