Graph
draftStatus 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 .
1. Overview
This module defines the vocabulary for intended user flow. It extends [UJG Core] to support structured, interactive graphs with composition via sub-journey references, organization tags, and reusable outgoing navigation patterns.
2. Normative Artifacts
This module is published through the following artifacts:
graph.ttl: ontology, published athttps://ujg.specs.openuji.org/ed/ns/graphgraph.context.jsonld: JSON-LD term mappings, published athttps://ujg.specs.openuji.org/ed/ns/graph.context.jsonldgraph.shape.ttl: SHACL validation rules, published athttps://ujg.specs.openuji.org/ed/ns/graph.shape
Examples in this page use an explicit context array composed from the published module contexts. The same composition is also published as the convenience context https://ujg.specs.openuji.org/ed/context.jsonld.
3. Terminology
Journey: A named container for a user flow.
State: A discrete node in the experience (e.g., a screen, modal).
Transition: A directed edge between two states.
CompositeState: A state that encapsulates another Journey (sub-journey).
OutgoingTransition: A one way edge pointing to a next possible State
OutgoingTransitionGroup: A reusable set of outgoing transitions that a Consumer can treat as present on multiple states (e.g., global nav).
4. The Core Graph
A Journey MUST consist of States connected by Transitions.
4.1. Visual Model
graph LR
A[State: Product] -->|Transition: Add| B[State: Cart]
5. Composition (CompositeState)
Composition allows a node to reference an entire sub-journey, enabling "zoomable" graph interactions.
5.1. Visual Model
graph LR
H[Home] --> C
subgraph C [Composite State: Checkout]
direction LR
s1[Shipping] --> s2[Payment]
end
C --> E[Exit]
The structural definition of CompositeState and subjourneyId is normative in the ontology and validation artifacts. This section defines only how consumers interpret that structure as nested or zoomable journey composition.
6. Reusability (OutgoingTransitionGroup)
An OutgoingTransitionGroup defines reusable outgoing transitions (e.g., headers/footers) to avoid duplicating common navigation across many states.
The structural definition of OutgoingTransitionGroup and OutgoingTransition is normative in the ontology and validation artifacts. This section defines only the consumer processing model for applying those reusable outgoing edges.
6.1. Visual Model
graph TD
%% Global Destinations defined in the Group
subgraph Global [Global Navigation]
direction LR
H[Target: Home]
P[Target: Profile]
end
%% The Standard User Journey
subgraph Flow [Checkout User Journey]
direction LR
S1[State: Shipping] -->|Explicit| S2[State: Payment]
end
%% The Injection Logic (Applies to ALL states in Flow)
S1 -.->|Outgoing| H
S1 -.->|Outgoing| P
S2 -.->|Outgoing| H
S2 -.->|Outgoing| P
%% Styling for clarity
linkStyle 1,2,3,4 stroke-dasharray: 5 5, stroke:green, color:green;
6.2. Processing Model (Injection)
When a Consumer loads a Journey referencing outgoingTransitionGroupRefs:
Resolution:
The Consumer MUST resolve each referenced OutgoingTransitionGroup
The Consumer MUST resolve each
outgoingTransitionRefsentry to an OutgoingTransition.
Iteration: The Consumer MUST iterate over every State and CompositeState ID in
stateRefs.Injection: The Consumer MUST treat each iterated state as having an outgoing edge to every resolved OutgoingTransition
to.Deduplication: A Consumer SHOULD treat injected and explicit edges with the same effective
fromandtoas one effective edge.
7. Ontology
The normative Graph ontology is defined below and is published at https://ujg.specs.openuji.org/ed/ns/graph. It is the authoritative structural definition for Graph classes and properties, including Journey, State, CompositeState, Transition, OutgoingTransition, and OutgoingTransitionGroup.
@prefix ujg: <https://ujg.specs.openuji.org/ed/ns/core#> .
@prefix ujggraph: <https://ujg.specs.openuji.org/ed/ns/graph#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dct: <http://purl.org/dc/terms/> .
<https://ujg.specs.openuji.org/ed/ns/graph#> a owl:Ontology ;
rdfs:label "UJG Graph Editor's Draft Vocabulary"@en ;
dct:description "UJG Graph ontology declaration" .
### Classes
ujggraph:Journey a owl:Class ;
rdfs:subClassOf ujg:Node .
ujggraph:State a owl:Class ;
rdfs:subClassOf ujg:Node .
ujggraph:CompositeState a owl:Class ;
rdfs:subClassOf ujggraph:State .
ujggraph:Transition a owl:Class ;
rdfs:subClassOf ujg:Node .
ujggraph:OutgoingTransition a owl:Class ;
rdfs:subClassOf ujg:Node .
ujggraph:OutgoingTransitionGroup a owl:Class ;
rdfs:subClassOf ujg:Node .
### Properties
ujggraph:label a owl:DatatypeProperty ;
rdfs:domain ujg:Node ;
rdfs:range xsd:string .
ujggraph:tags a owl:DatatypeProperty ;
rdfs:domain ujg:Node ;
rdfs:range xsd:string .
ujggraph:startState a owl:ObjectProperty ;
rdfs:domain ujggraph:Journey ;
rdfs:range ujggraph:State .
ujggraph:stateRefs a owl:ObjectProperty ;
rdfs:range ujggraph:State .
ujggraph:transitionRefs a owl:ObjectProperty ;
rdfs:domain ujggraph:Journey ;
rdfs:range ujggraph:Transition .
ujggraph:outgoingTransitionGroupRefs a owl:ObjectProperty ;
rdfs:domain ujggraph:Journey ;
rdfs:range ujggraph:OutgoingTransitionGroup .
ujggraph:from a owl:ObjectProperty ;
rdfs:domain ujggraph:Transition ;
rdfs:range ujggraph:State .
ujggraph:to a owl:ObjectProperty ;
rdfs:range ujggraph:State .
ujggraph:subjourneyId a owl:ObjectProperty ;
rdfs:domain ujggraph:CompositeState ;
rdfs:range ujggraph:Journey .
ujggraph:outgoingTransitionRefs a owl:ObjectProperty ;
rdfs:domain ujggraph:OutgoingTransitionGroup ;
rdfs:range ujggraph:OutgoingTransition . @prefix ujg: <https://ujg.specs.openuji.org/ed/ns/core#> .
@prefix ujggraph: <https://ujg.specs.openuji.org/ed/ns/graph#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dct: <http://purl.org/dc/terms/> .
<https://ujg.specs.openuji.org/ed/ns/graph#> a owl:Ontology ;
rdfs:label "UJG Graph Editor's Draft Vocabulary"@en ;
dct:description "UJG Graph ontology declaration" .
### Classes
ujggraph:Journey a owl:Class ;
rdfs:subClassOf ujg:Node .
ujggraph:State a owl:Class ;
rdfs:subClassOf ujg:Node .
ujggraph:CompositeState a owl:Class ;
rdfs:subClassOf ujggraph:State .
ujggraph:Transition a owl:Class ;
rdfs:subClassOf ujg:Node .
ujggraph:OutgoingTransition a owl:Class ;
rdfs:subClassOf ujg:Node .
ujggraph:OutgoingTransitionGroup a owl:Class ;
rdfs:subClassOf ujg:Node .
### Properties
ujggraph:label a owl:DatatypeProperty ;
rdfs:domain ujg:Node ;
rdfs:range xsd:string .
ujggraph:tags a owl:DatatypeProperty ;
rdfs:domain ujg:Node ;
rdfs:range xsd:string .
ujggraph:startState a owl:ObjectProperty ;
rdfs:domain ujggraph:Journey ;
rdfs:range ujggraph:State .
ujggraph:stateRefs a owl:ObjectProperty ;
rdfs:range ujggraph:State .
ujggraph:transitionRefs a owl:ObjectProperty ;
rdfs:domain ujggraph:Journey ;
rdfs:range ujggraph:Transition .
ujggraph:outgoingTransitionGroupRefs a owl:ObjectProperty ;
rdfs:domain ujggraph:Journey ;
rdfs:range ujggraph:OutgoingTransitionGroup .
ujggraph:from a owl:ObjectProperty ;
rdfs:domain ujggraph:Transition ;
rdfs:range ujggraph:State .
ujggraph:to a owl:ObjectProperty ;
rdfs:range ujggraph:State .
ujggraph:subjourneyId a owl:ObjectProperty ;
rdfs:domain ujggraph:CompositeState ;
rdfs:range ujggraph:Journey .
ujggraph:outgoingTransitionRefs a owl:ObjectProperty ;
rdfs:domain ujggraph:OutgoingTransitionGroup ;
rdfs:range ujggraph:OutgoingTransition . 8. JSON-LD Context
The normative Graph JSON-LD context is defined below and is published at https://ujg.specs.openuji.org/ed/ns/graph.context.jsonld. It provides the compact JSON-LD term mappings for the Graph vocabulary used by the examples on this page.
{
"@context": {
"@version": 1.1,
"ujggraph": "https://ujg.specs.openuji.org/ed/ns/graph#",
"Journey": "ujggraph:Journey",
"State": "ujggraph:State",
"CompositeState": "ujggraph:CompositeState",
"Transition": "ujggraph:Transition",
"OutgoingTransition": "ujggraph:OutgoingTransition",
"OutgoingTransitionGroup": "ujggraph:OutgoingTransitionGroup",
"label": "ujggraph:label",
"tags": {
"@id": "ujggraph:tags",
"@container": "@set"
},
"startState": {
"@id": "ujggraph:startState",
"@type": "@id"
},
"stateRefs": {
"@id": "ujggraph:stateRefs",
"@type": "@id",
"@container": "@set"
},
"transitionRefs": {
"@id": "ujggraph:transitionRefs",
"@type": "@id",
"@container": "@set"
},
"outgoingTransitionGroupRefs": {
"@id": "ujggraph:outgoingTransitionGroupRefs",
"@type": "@id",
"@container": "@set"
},
"from": {
"@id": "ujggraph:from",
"@type": "@id"
},
"to": {
"@id": "ujggraph:to",
"@type": "@id"
},
"subjourneyId": {
"@id": "ujggraph:subjourneyId",
"@type": "@id"
},
"outgoingTransitionRefs": {
"@id": "ujggraph:outgoingTransitionRefs",
"@type": "@id",
"@container": "@set"
}
}
} {
"@context": {
"@version": 1.1,
"ujggraph": "https://ujg.specs.openuji.org/ed/ns/graph#",
"Journey": "ujggraph:Journey",
"State": "ujggraph:State",
"CompositeState": "ujggraph:CompositeState",
"Transition": "ujggraph:Transition",
"OutgoingTransition": "ujggraph:OutgoingTransition",
"OutgoingTransitionGroup": "ujggraph:OutgoingTransitionGroup",
"label": "ujggraph:label",
"tags": {
"@id": "ujggraph:tags",
"@container": "@set"
},
"startState": {
"@id": "ujggraph:startState",
"@type": "@id"
},
"stateRefs": {
"@id": "ujggraph:stateRefs",
"@type": "@id",
"@container": "@set"
},
"transitionRefs": {
"@id": "ujggraph:transitionRefs",
"@type": "@id",
"@container": "@set"
},
"outgoingTransitionGroupRefs": {
"@id": "ujggraph:outgoingTransitionGroupRefs",
"@type": "@id",
"@container": "@set"
},
"from": {
"@id": "ujggraph:from",
"@type": "@id"
},
"to": {
"@id": "ujggraph:to",
"@type": "@id"
},
"subjourneyId": {
"@id": "ujggraph:subjourneyId",
"@type": "@id"
},
"outgoingTransitionRefs": {
"@id": "ujggraph:outgoingTransitionRefs",
"@type": "@id",
"@container": "@set"
}
}
} 9. Validation
The normative Graph SHACL shape is defined below and is published at https://ujg.specs.openuji.org/ed/ns/graph.shape. It is the authoritative validation artifact for Graph structural constraints.
@prefix ujggraph: <https://ujg.specs.openuji.org/ed/ns/graph#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix ujggraphshape: <https://ujg.specs.openuji.org/ed/ns/graph.shape#> .
ujggraphshape:StateLikeShape a sh:NodeShape ;
sh:nodeKind sh:IRI ;
sh:or (
[ sh:class ujggraph:State ]
[ sh:class ujggraph:CompositeState ]
) .
ujggraphshape:JourneyShape a sh:NodeShape ;
sh:targetClass ujggraph:Journey ;
sh:nodeKind sh:IRI ;
sh:property [
sh:path ujggraph:startState ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:node ujggraphshape:StateLikeShape ;
] ;
sh:property [
sh:path ujggraph:stateRefs ;
sh:minCount 1 ;
sh:node ujggraphshape:StateLikeShape ;
] ;
sh:property [
sh:path ujggraph:transitionRefs ;
sh:minCount 1 ;
sh:class ujggraph:Transition ;
sh:nodeKind sh:IRI ;
] ;
sh:property [
sh:path ujggraph:outgoingTransitionGroupRefs ;
sh:class ujggraph:OutgoingTransitionGroup ;
sh:nodeKind sh:IRI ;
] .
ujggraphshape:StateShape a sh:NodeShape ;
sh:targetClass ujggraph:State ;
sh:nodeKind sh:IRI ;
sh:property [
sh:path ujggraph:label ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
] ;
sh:property [
sh:path ujggraph:tags ;
sh:datatype xsd:string ;
] .
ujggraphshape:CompositeStateShape a sh:NodeShape ;
sh:targetClass ujggraph:CompositeState ;
sh:nodeKind sh:IRI ;
sh:property [
sh:path ujggraph:label ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
] ;
sh:property [
sh:path ujggraph:tags ;
sh:datatype xsd:string ;
] ;
sh:property [
sh:path ujggraph:subjourneyId ;
sh:class ujggraph:Journey ;
sh:nodeKind sh:IRI ;
sh:minCount 1 ;
sh:maxCount 1 ;
] .
ujggraphshape:TransitionShape a sh:NodeShape ;
sh:targetClass ujggraph:Transition ;
sh:nodeKind sh:IRI ;
sh:property [
sh:path ujggraph:from ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:node ujggraphshape:StateLikeShape ;
] ;
sh:property [
sh:path ujggraph:to ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:node ujggraphshape:StateLikeShape ;
] ;
sh:property [
sh:path ujggraph:label ;
sh:datatype xsd:string ;
sh:maxCount 1 ;
] .
ujggraphshape:OutgoingTransitionShape a sh:NodeShape ;
sh:targetClass ujggraph:OutgoingTransition ;
sh:nodeKind sh:IRI ;
sh:property [
sh:path ujggraph:to ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:node ujggraphshape:StateLikeShape ;
] ;
sh:property [
sh:path ujggraph:label ;
sh:datatype xsd:string ;
sh:maxCount 1 ;
] .
ujggraphshape:OutgoingTransitionGroupShape a sh:NodeShape ;
sh:targetClass ujggraph:OutgoingTransitionGroup ;
sh:nodeKind sh:IRI ;
sh:property [
sh:path ujggraph:outgoingTransitionRefs ;
sh:class ujggraph:OutgoingTransition ;
sh:nodeKind sh:IRI ;
sh:minCount 1 ;
] . @prefix ujggraph: <https://ujg.specs.openuji.org/ed/ns/graph#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix ujggraphshape: <https://ujg.specs.openuji.org/ed/ns/graph.shape#> .
ujggraphshape:StateLikeShape a sh:NodeShape ;
sh:nodeKind sh:IRI ;
sh:or (
[ sh:class ujggraph:State ]
[ sh:class ujggraph:CompositeState ]
) .
ujggraphshape:JourneyShape a sh:NodeShape ;
sh:targetClass ujggraph:Journey ;
sh:nodeKind sh:IRI ;
sh:property [
sh:path ujggraph:startState ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:node ujggraphshape:StateLikeShape ;
] ;
sh:property [
sh:path ujggraph:stateRefs ;
sh:minCount 1 ;
sh:node ujggraphshape:StateLikeShape ;
] ;
sh:property [
sh:path ujggraph:transitionRefs ;
sh:minCount 1 ;
sh:class ujggraph:Transition ;
sh:nodeKind sh:IRI ;
] ;
sh:property [
sh:path ujggraph:outgoingTransitionGroupRefs ;
sh:class ujggraph:OutgoingTransitionGroup ;
sh:nodeKind sh:IRI ;
] .
ujggraphshape:StateShape a sh:NodeShape ;
sh:targetClass ujggraph:State ;
sh:nodeKind sh:IRI ;
sh:property [
sh:path ujggraph:label ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
] ;
sh:property [
sh:path ujggraph:tags ;
sh:datatype xsd:string ;
] .
ujggraphshape:CompositeStateShape a sh:NodeShape ;
sh:targetClass ujggraph:CompositeState ;
sh:nodeKind sh:IRI ;
sh:property [
sh:path ujggraph:label ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
] ;
sh:property [
sh:path ujggraph:tags ;
sh:datatype xsd:string ;
] ;
sh:property [
sh:path ujggraph:subjourneyId ;
sh:class ujggraph:Journey ;
sh:nodeKind sh:IRI ;
sh:minCount 1 ;
sh:maxCount 1 ;
] .
ujggraphshape:TransitionShape a sh:NodeShape ;
sh:targetClass ujggraph:Transition ;
sh:nodeKind sh:IRI ;
sh:property [
sh:path ujggraph:from ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:node ujggraphshape:StateLikeShape ;
] ;
sh:property [
sh:path ujggraph:to ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:node ujggraphshape:StateLikeShape ;
] ;
sh:property [
sh:path ujggraph:label ;
sh:datatype xsd:string ;
sh:maxCount 1 ;
] .
ujggraphshape:OutgoingTransitionShape a sh:NodeShape ;
sh:targetClass ujggraph:OutgoingTransition ;
sh:nodeKind sh:IRI ;
sh:property [
sh:path ujggraph:to ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:node ujggraphshape:StateLikeShape ;
] ;
sh:property [
sh:path ujggraph:label ;
sh:datatype xsd:string ;
sh:maxCount 1 ;
] .
ujggraphshape:OutgoingTransitionGroupShape a sh:NodeShape ;
sh:targetClass ujggraph:OutgoingTransitionGroup ;
sh:nodeKind sh:IRI ;
sh:property [
sh:path ujggraph:outgoingTransitionRefs ;
sh:class ujggraph:OutgoingTransition ;
sh:nodeKind sh:IRI ;
sh:minCount 1 ;
] . The rules below define additional graph integrity and resolution behavior beyond the structural constraints captured by the SHACL shape.
To ensure graph integrity, the following constraints MUST be met:
Reference Integrity: All
startState,stateRefs,transitionRefs,outgoingTransitionGroupRefs,outgoingTransitionRefs,from, andtoIDs MUST resolve to valid Nodes within the current scope or imported modules.Composition Safety:
subjourneyIdMUST resolve to a valid Journey.Group Resolution: Every ID in
outgoingTransitionGroupRefsMUST resolve to an OutgoingTransitionGroup.Outgoing Resolution: Every ID in
outgoingTransitionRefsMUST resolve to an OutgoingTransition.
10. Appendix: Combined JSON Example
{
"@context": [
"https://ujg.specs.openuji.org/ed/ns/core.context.jsonld",
"https://ujg.specs.openuji.org/ed/ns/graph.context.jsonld",
"https://ujg.specs.openuji.org/ed/ns/runtime.context.jsonld",
"https://ujg.specs.openuji.org/ed/ns/experience.context.jsonld"
],
"@id": "https://example.com/ujg/graph/main-site.jsonld",
"@type": "UJGDocument",
"specVersion": "1.0",
"nodes": [
{
"@type": "Journey",
"@id": "urn:ujg:journey:main-site",
"startState": "urn:ujg:state:home",
"stateRefs": ["urn:ujg:state:home", "urn:ujg:state:checkout-flow"],
"transitionRefs": ["urn:ujg:transition:home-to-checkout"],
"outgoingTransitionGroupRefs": ["urn:ujg:otg:global-header"]
},
{
"@type": "Transition",
"@id": "urn:ujg:transition:home-to-checkout",
"from": "urn:ujg:state:home",
"to": "urn:ujg:state:checkout-flow",
"label": "Buy Now"
},
{
"@type": "State",
"@id": "urn:ujg:state:home",
"label": "Home Page",
"tags": ["phase:landing"]
},
{
"@type": "CompositeState",
"@id": "urn:ujg:state:checkout-flow",
"label": "Checkout Process",
"subjourneyId": "urn:ujg:journey:checkout"
},
{ "@type": "State", "@id": "urn:ujg:state:profile", "label": "Profile" },
{
"@type": "OutgoingTransition",
"@id": "urn:ujg:ot:go-home",
"to": "urn:ujg:state:home",
"label": "Home"
},
{
"@type": "OutgoingTransition",
"@id": "urn:ujg:ot:go-profile",
"to": "urn:ujg:state:profile",
"label": "Profile"
},
{
"@type": "OutgoingTransitionGroup",
"@id": "urn:ujg:otg:global-header",
"outgoingTransitionRefs": ["urn:ujg:ot:go-home", "urn:ujg:ot:go-profile"]
}
]
} {
"@context": [
"https://ujg.specs.openuji.org/ed/ns/core.context.jsonld",
"https://ujg.specs.openuji.org/ed/ns/graph.context.jsonld",
"https://ujg.specs.openuji.org/ed/ns/runtime.context.jsonld",
"https://ujg.specs.openuji.org/ed/ns/experience.context.jsonld"
],
"@id": "https://example.com/ujg/graph/main-site.jsonld",
"@type": "UJGDocument",
"specVersion": "1.0",
"nodes": [
{
"@type": "Journey",
"@id": "urn:ujg:journey:main-site",
"startState": "urn:ujg:state:home",
"stateRefs": ["urn:ujg:state:home", "urn:ujg:state:checkout-flow"],
"transitionRefs": ["urn:ujg:transition:home-to-checkout"],
"outgoingTransitionGroupRefs": ["urn:ujg:otg:global-header"]
},
{
"@type": "Transition",
"@id": "urn:ujg:transition:home-to-checkout",
"from": "urn:ujg:state:home",
"to": "urn:ujg:state:checkout-flow",
"label": "Buy Now"
},
{
"@type": "State",
"@id": "urn:ujg:state:home",
"label": "Home Page",
"tags": ["phase:landing"]
},
{
"@type": "CompositeState",
"@id": "urn:ujg:state:checkout-flow",
"label": "Checkout Process",
"subjourneyId": "urn:ujg:journey:checkout"
},
{ "@type": "State", "@id": "urn:ujg:state:profile", "label": "Profile" },
{
"@type": "OutgoingTransition",
"@id": "urn:ujg:ot:go-home",
"to": "urn:ujg:state:home",
"label": "Home"
},
{
"@type": "OutgoingTransition",
"@id": "urn:ujg:ot:go-profile",
"to": "urn:ujg:state:profile",
"label": "Profile"
},
{
"@type": "OutgoingTransitionGroup",
"@id": "urn:ujg:otg:global-header",
"outgoingTransitionRefs": ["urn:ujg:ot:go-home", "urn:ujg:ot:go-profile"]
}
]
}