@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 rdf:      <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@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 bibo:     <http://purl.org/ontology/bibo/> .
@prefix vann:     <http://purl.org/vocab/vann/> .
@prefix cc:       <http://creativecommons.org/ns#> .

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

<https://meta.linked.archi/c4/notation#>
    rdf:type                      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/c4/notation#" ;
    vann:preferredNamespacePrefix "c4not" ;
    dcterms:creator               "Kalin Maldzhanski"^^xsd:string ;
    dcterms:title                      "Linked.Archi C4 Model Visual Notation Set"@en ;
    dcterms:description                '''Visual notation descriptors for C4 model elements and
relationships. Defines the standard C4 visual appearance — colored boxes with
technology labels, person shapes, and dashed dependency arrows. Follows the
conventions from c4model.com and Structurizr rendering defaults.'''@en ;
    dcterms:created               "2026-05-16"^^xsd:date ;
    dcterms:modified              "2026-05-16"^^xsd:date ;
    dcterms:publisher                  "Linked.Archi"@en, <https://linked.archi> ;
    bibo:status                   "draft" ;
    owl:versionIRI                <https://meta.linked.archi/c4/notation/0.1.0#> ;
    owl:versionInfo               "0.1.0"@en ;
    dcterms:source  <https://c4model.com/> ;
    prov:wasDerivedFrom <https://c4model.com/> ;
.


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

:C4StandardNotation
    a               arch-vis:NotationSet ;
    skos:prefLabel  "C4 Standard Notation"@en ;
    skos:definition '''The standard C4 model visual notation as defined by c4model.com and
rendered by Structurizr. Uses colored rounded rectangles with technology labels,
a person silhouette for users, and dashed arrows for relationships.'''@en ;
.

## ─────────────────────────────────────────────────────────────────
## NOTE: Icon URIs (arch:prefVisNotation, arch-vis:iconSymbol) reference
## the published site at https://meta.linked.archi/c4/icons/...
## The source SVG files live in modelingLanguages/c4/icons/
## and are deployed to those URLs by the CI pipeline (pages job).
## For local/offline use, resolve https://meta.linked.archi/ to the repo root.
## ─────────────────────────────────────────────────────────────────


#################################################################
# Element Visual Notations — C4 Core
#################################################################

:PersonNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor c4:Person ;
    arch-vis:inNotationSet :C4StandardNotation ;
    arch:prefVisNotation  <https://meta.linked.archi/c4/icons/person.svg> ;
    arch-vis:defaultStyle [
        a                      arch-vis:Style ;
        arch-vis:renderingMode arch-vis:ShapeWithBadge ;
        arch-vis:shapeType     arch-vis:RoundedRectangle ;
        arch-vis:fillColor     "#08427B" ;
        arch-vis:lineColor     "#073B6F" ;
        arch-vis:fontColor     "#FFFFFF" ;
        arch-vis:iconSymbol    "https://meta.linked.archi/c4/icons/glyphs/person-silhouette.svg"^^xsd:anyURI ;
        arch-vis:iconPlacement arch-vis:TopCenter ;
        arch-vis:defaultWidth  120.0 ;
        arch-vis:defaultHeight 100.0 ;
    ] ;
.

:SoftwareSystemNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor c4:SoftwareSystem ;
    arch-vis:inNotationSet :C4StandardNotation ;
    arch:prefVisNotation  <https://meta.linked.archi/c4/icons/software-system.svg> ;
    arch-vis:defaultStyle [
        a                      arch-vis:Style ;
        arch-vis:renderingMode arch-vis:ShapeWithBadge ;
        arch-vis:shapeType     arch-vis:RoundedRectangle ;
        arch-vis:fillColor     "#1168BD" ;
        arch-vis:lineColor     "#0B4884" ;
        arch-vis:fontColor     "#FFFFFF" ;
        arch-vis:defaultWidth  160.0 ;
        arch-vis:defaultHeight 110.0 ;
    ] ;
.

:ContainerNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor c4:Container ;
    arch-vis:inNotationSet :C4StandardNotation ;
    arch:prefVisNotation  <https://meta.linked.archi/c4/icons/container.svg> ;
    arch-vis:defaultStyle [
        a                      arch-vis:Style ;
        arch-vis:renderingMode arch-vis:ShapeWithBadge ;
        arch-vis:shapeType     arch-vis:RoundedRectangle ;
        arch-vis:fillColor     "#438DD5" ;
        arch-vis:lineColor     "#3C7FC0" ;
        arch-vis:fontColor     "#FFFFFF" ;
        arch-vis:defaultWidth  160.0 ;
        arch-vis:defaultHeight 110.0 ;
    ] ;
.

:ComponentNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor c4:Component ;
    arch-vis:inNotationSet :C4StandardNotation ;
    arch:prefVisNotation  <https://meta.linked.archi/c4/icons/component.svg> ;
    arch-vis:defaultStyle [
        a                      arch-vis:Style ;
        arch-vis:renderingMode arch-vis:ShapeWithBadge ;
        arch-vis:shapeType     arch-vis:RoundedRectangle ;
        arch-vis:fillColor     "#85BBF0" ;
        arch-vis:lineColor     "#78A8D8" ;
        arch-vis:fontColor     "#000000" ;
        arch-vis:defaultWidth  160.0 ;
        arch-vis:defaultHeight 110.0 ;
    ] ;
.


#################################################################
# Element Visual Notations — Structurizr Deployment
#################################################################

:DeploymentNodeNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor structurizr:DeploymentNode ;
    arch-vis:inNotationSet :C4StandardNotation ;
    arch:prefVisNotation  <https://meta.linked.archi/c4/icons/deployment-node.svg> ;
    arch-vis:defaultStyle [
        a                      arch-vis:Style ;
        arch-vis:renderingMode arch-vis:ShapeWithBadge ;
        arch-vis:shapeType     arch-vis:Rectangle ;
        arch-vis:fillColor     "#FFFFFF" ;
        arch-vis:lineColor     "#888888" ;
        arch-vis:fontColor     "#000000" ;
        arch-vis:defaultWidth  200.0 ;
        arch-vis:defaultHeight 150.0 ;
    ] ;
.

:InfrastructureNodeNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor structurizr:InfrastructureNode ;
    arch-vis:inNotationSet :C4StandardNotation ;
    arch:prefVisNotation  <https://meta.linked.archi/c4/icons/infrastructure-node.svg> ;
    arch-vis:defaultStyle [
        a                      arch-vis:Style ;
        arch-vis:renderingMode arch-vis:ShapeWithBadge ;
        arch-vis:shapeType     arch-vis:RoundedRectangle ;
        arch-vis:fillColor     "#FFFFFF" ;
        arch-vis:lineColor     "#888888" ;
        arch-vis:fontColor     "#000000" ;
        arch-vis:iconSymbol    "https://meta.linked.archi/c4/icons/glyphs/cloud-gear.svg"^^xsd:anyURI ;
        arch-vis:iconPlacement arch-vis:TopRight ;
        arch-vis:defaultWidth  160.0 ;
        arch-vis:defaultHeight 80.0 ;
    ] ;
.


#################################################################
# Relationship Visual Notations
#################################################################

:UsingNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor c4:Using ;
    arch-vis:inNotationSet :C4StandardNotation ;
    arch-vis:lineStyle    arch-vis:DashedLine ;
    arch-vis:sourceDecor  arch-vis:NoDecoration ;
    arch-vis:targetDecor  arch-vis:OpenArrowhead ;
.

:ContainerContainmentNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor c4:ContainerContainment ;
    arch-vis:inNotationSet :C4StandardNotation ;
    arch-vis:lineStyle    arch-vis:SolidLine ;
    arch-vis:sourceDecor  arch-vis:FilledDiamond ;
    arch-vis:targetDecor  arch-vis:NoDecoration ;
.

:ComponentContainmentNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor c4:ComponentContainment ;
    arch-vis:inNotationSet :C4StandardNotation ;
    arch-vis:lineStyle    arch-vis:SolidLine ;
    arch-vis:sourceDecor  arch-vis:FilledDiamond ;
    arch-vis:targetDecor  arch-vis:NoDecoration ;
.

:DeploymentNotation
    a                    arch-vis:VisualNotation ;
    arch-vis:notationFor structurizr:Deployment ;
    arch-vis:inNotationSet :C4StandardNotation ;
    arch-vis:lineStyle    arch-vis:DashedLine ;
    arch-vis:sourceDecor  arch-vis:NoDecoration ;
    arch-vis:targetDecor  arch-vis:OpenArrowhead ;
.
