@prefix owl:      <http://www.w3.org/2002/07/owl#> .
@prefix xsd:      <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs:     <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos:     <http://www.w3.org/2004/02/skos/core#> .
@prefix dcterms:  <http://purl.org/dc/terms/> .
@prefix prov:     <http://www.w3.org/ns/prov#> .
@prefix cc:       <http://creativecommons.org/ns#> .
@prefix vann:     <http://purl.org/vocab/vann/> .

@prefix arch:     <https://meta.linked.archi/core#> .
@prefix arch-vis: <https://meta.linked.archi/core-vis#> .
@prefix bs:       <https://meta.linked.archi/backstage/onto#> .
@prefix :         <https://meta.linked.archi/backstage/notation#> .

<https://meta.linked.archi/backstage/notation#>
    a                             owl:Ontology ;
    owl:imports                   <https://meta.linked.archi/core#>,
                                  <https://meta.linked.archi/core-vis#> ;
    cc:license                    "http://creativecommons.org/licenses/by/4.0/" ;
    vann:preferredNamespaceUri    "https://meta.linked.archi/backstage/notation#" ;
    vann:preferredNamespacePrefix "bsnot" ;
    dcterms:creator               "Kalin Maldzhanski"^^xsd:string ;
    dcterms:title                 "Linked.Archi Backstage Visual Notation Set"@en ;
    dcterms:description           "Visual notation descriptors for Backstage Software Catalog entity types."@en ;
    dcterms:created               "2026-06-05"^^xsd:date ;
    dcterms:modified              "2026-06-05"^^xsd:date ;
    dcterms:publisher             "Linked.Archi"@en, <https://linked.archi> ;
    owl:versionInfo               "0.1.0"@en ;
    dcterms:source  <https://backstage.io/docs/features/software-catalog/descriptor-format/> ;
    prov:wasDerivedFrom <https://backstage.io/docs/features/software-catalog/> ;
    rdfs:seeAlso    <https://backstage.io/docs/features/software-catalog/>,
                    <https://backstage.io/docs/features/software-catalog/descriptor-format/>,
                    <https://backstage.io/docs/features/software-catalog/system-model/> ;
    skos:editorialNote '''Backstage has no formal visual notation specification. Shapes
and colours in this notation set are derived from the Backstage UI conventions and
the system model documentation. Entity types follow the catalog descriptor format
(kind: Component, System, API, Resource, Domain, User, Group).'''@en .


#################################################################
# Notation Set
#################################################################

:BackstageStandardNotation
    a               arch-vis:NotationSet ;
    skos:prefLabel  "Backstage Standard Notation"@en ;
    skos:definition "Standard visual notation for Backstage Software Catalog entities."@en .


#################################################################
# Element Visual Notations
#################################################################

:ComponentNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor bs:Component ;
    arch-vis:inNotationSet :BackstageStandardNotation ;
    arch-vis:defaultStyle [
        a                      arch-vis:Style ;
        arch-vis:shapeType     arch-vis:RoundedRectangle ;
        arch-vis:fillColor     "#E3F2FD" ;
        arch-vis:lineColor     "#1565C0" ;
        arch-vis:renderingMode arch-vis:ShapeWithBadge ;
        arch-vis:iconSymbol    "https://meta.linked.archi/backstage/icons/glyphs/component.svg"^^xsd:anyURI ;
        arch-vis:iconPlacement arch-vis:TopRight ;
        arch-vis:defaultWidth  120.0 ;
        arch-vis:defaultHeight 55.0 ;
    ] .

:SystemNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor bs:System ;
    arch-vis:inNotationSet :BackstageStandardNotation ;
    arch-vis:defaultStyle [
        a                      arch-vis:Style ;
        arch-vis:shapeType     arch-vis:RoundedRectangle ;
        arch-vis:fillColor     "#E8F5E9" ;
        arch-vis:lineColor     "#2E7D32" ;
        arch-vis:renderingMode arch-vis:ShapeWithBadge ;
        arch-vis:iconSymbol    "https://meta.linked.archi/backstage/icons/glyphs/system.svg"^^xsd:anyURI ;
        arch-vis:iconPlacement arch-vis:TopRight ;
        arch-vis:defaultWidth  140.0 ;
        arch-vis:defaultHeight 60.0 ;
    ] .

:APINotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor bs:API ;
    arch-vis:inNotationSet :BackstageStandardNotation ;
    arch-vis:defaultStyle [
        a                      arch-vis:Style ;
        arch-vis:shapeType     arch-vis:RoundedRectangle ;
        arch-vis:fillColor     "#FFF3E0" ;
        arch-vis:lineColor     "#E65100" ;
        arch-vis:renderingMode arch-vis:ShapeWithBadge ;
        arch-vis:iconSymbol    "https://meta.linked.archi/backstage/icons/glyphs/api.svg"^^xsd:anyURI ;
        arch-vis:iconPlacement arch-vis:TopRight ;
        arch-vis:defaultWidth  120.0 ;
        arch-vis:defaultHeight 55.0 ;
    ] .

:ResourceNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor bs:Resource ;
    arch-vis:inNotationSet :BackstageStandardNotation ;
    arch-vis:defaultStyle [
        a                      arch-vis:Style ;
        arch-vis:shapeType     arch-vis:Rectangle ;
        arch-vis:fillColor     "#F3E5F5" ;
        arch-vis:lineColor     "#6A1B9A" ;
        arch-vis:renderingMode arch-vis:ShapeWithBadge ;
        arch-vis:iconSymbol    "https://meta.linked.archi/backstage/icons/glyphs/resource.svg"^^xsd:anyURI ;
        arch-vis:iconPlacement arch-vis:TopRight ;
        arch-vis:defaultWidth  120.0 ;
        arch-vis:defaultHeight 55.0 ;
    ] .

:DomainNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor bs:Domain ;
    arch-vis:inNotationSet :BackstageStandardNotation ;
    arch-vis:defaultStyle [
        a                      arch-vis:Style ;
        arch-vis:shapeType     arch-vis:RoundedRectangle ;
        arch-vis:fillColor     "#ECEFF1" ;
        arch-vis:lineColor     "#37474F" ;
        arch-vis:renderingMode arch-vis:ShapeWithBadge ;
        arch-vis:iconSymbol    "https://meta.linked.archi/backstage/icons/glyphs/domain.svg"^^xsd:anyURI ;
        arch-vis:iconPlacement arch-vis:TopRight ;
        arch-vis:defaultWidth  160.0 ;
        arch-vis:defaultHeight 70.0 ;
    ] .

:UserNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor bs:User ;
    arch-vis:inNotationSet :BackstageStandardNotation ;
    arch-vis:defaultStyle [
        a                      arch-vis:Style ;
        arch-vis:shapeType     arch-vis:Ellipse ;
        arch-vis:fillColor     "#FCE4EC" ;
        arch-vis:lineColor     "#880E4F" ;
        arch-vis:renderingMode arch-vis:ShapeWithBadge ;
        arch-vis:iconSymbol    "https://meta.linked.archi/backstage/icons/glyphs/user.svg"^^xsd:anyURI ;
        arch-vis:iconPlacement arch-vis:TopRight ;
        arch-vis:defaultWidth  80.0 ;
        arch-vis:defaultHeight 55.0 ;
    ] .

:GroupNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor bs:Group ;
    arch-vis:inNotationSet :BackstageStandardNotation ;
    arch-vis:defaultStyle [
        a                      arch-vis:Style ;
        arch-vis:shapeType     arch-vis:RoundedRectangle ;
        arch-vis:fillColor     "#E0F7FA" ;
        arch-vis:lineColor     "#006064" ;
        arch-vis:renderingMode arch-vis:ShapeWithBadge ;
        arch-vis:iconSymbol    "https://meta.linked.archi/backstage/icons/glyphs/group.svg"^^xsd:anyURI ;
        arch-vis:iconPlacement arch-vis:TopRight ;
        arch-vis:defaultWidth  120.0 ;
        arch-vis:defaultHeight 55.0 ;
    ] .
