@prefix rdf: . @prefix skos: . @prefix xsd: . @prefix arch: . @prefix arch-vis: . @prefix am4: . @prefix am4mm: . @prefix : . ## Model :model a arch:Model ; arch:modelConformsToMetamodel am4mm:ArchiMate4 ; arch:contains :view-layered ; arch-vis:hideRelLabels true . ## Elements — Motivation :shipper a am4:Stakeholder ; skos:prefLabel "Shipper"@en . :goal-efficiency a am4:Goal ; skos:prefLabel "Operational Efficiency"@en . :req-customs a am4:Requirement ; skos:prefLabel "EU Customs Compliance"@en . ## Elements — Strategy :cap-tracking a am4:Capability ; skos:prefLabel "Shipment Tracking"@en . :cap-booking a am4:Capability ; skos:prefLabel "Freight Booking"@en . :cap-customs a am4:Capability ; skos:prefLabel "Customs Clearance"@en . ## Elements — Business / Common Domain :bp-booking a am4:Process ; skos:prefLabel "Booking Process"@en . :role-freight a am4:Role ; skos:prefLabel "Freight Operations"@en . :obj-shipment a am4:BusinessObject ; skos:prefLabel "Shipment"@en . ## Elements — Application Services :svc-booking a am4:Service ; skos:prefLabel "Booking Service"@en . :svc-tracking a am4:Service ; skos:prefLabel "Tracking Service"@en . ## Elements — Application Functions :fn-booking a am4:Function ; skos:prefLabel "Booking Function"@en . :fn-tracking a am4:Function ; skos:prefLabel "Tracking Function"@en . :fn-customs a am4:Function ; skos:prefLabel "Customs Processing"@en . ## Elements — Application Components :tms a am4:ApplicationComponent ; skos:prefLabel "Transport Mgmt System"@en . :portal a am4:ApplicationComponent ; skos:prefLabel "Tracking Portal"@en . :customs-gw a am4:ApplicationComponent ; skos:prefLabel "Customs Gateway"@en . ## Elements — Technology :azure a am4:Node ; skos:prefLabel "Azure North Europe"@en . :k8s a am4:SystemSoftware ; skos:prefLabel "AKS Kubernetes"@en . ## Relationships :shipper am4:influences :goal-efficiency . :customs-gw am4:realizes :req-customs . :bp-booking am4:realizes :cap-booking . :svc-tracking am4:realizes :cap-tracking . :fn-customs am4:realizes :cap-customs . :role-freight am4:assignedTo :bp-booking . :tms am4:assignedTo :fn-booking . :fn-booking am4:realizes :svc-booking . :svc-booking am4:serves :role-freight . :portal am4:assignedTo :fn-tracking . :fn-tracking am4:realizes :svc-tracking . :svc-tracking am4:serves :role-freight . :customs-gw am4:assignedTo :fn-customs . :k8s am4:serves :tms . :azure am4:serves :k8s . :bp-booking am4:accesses :obj-shipment . :tms am4:flowsTo :customs-gw . ## View :view-layered a arch:Diagram ; skos:prefLabel "NordFreight - Layered Architecture View"@en . ## Layout — designed so links flow mostly vertically within columns ## ## Column 1 (x=20): Booking chain (TMS → fn-booking → svc-booking → role → bp → cap-booking) ## Column 2 (x=220): Tracking chain (Portal → fn-tracking → svc-tracking → cap-tracking) ## Column 3 (x=420): Customs chain (CustomsGW → fn-customs → cap-customs) ## Column 4 (x=560): Motivation (Shipper, Goal, Requirement) ## ## Rows from bottom to top: ## y=480: Technology (Azure, K8s) ## y=400: Application Components (TMS, Portal, CustomsGW) ## y=320: Application Functions (fn-booking, fn-tracking, fn-customs) ## y=240: Application Services (svc-booking, svc-tracking) ## y=160: Business (Role, Process, Shipment) ## y=80: Strategy (Capabilities) ## y=10: Motivation (Stakeholder, Goal, Requirement) ## Row 1 — Motivation (y=10) :n-shipper a arch-vis:ArchNode ; arch-vis:archElement :shipper ; arch-vis:view :view-layered ; arch-vis:bounds-x 560.0 ; arch-vis:bounds-y 10.0 ; arch-vis:bounds-w 130.0 ; arch-vis:bounds-h 50.0 . :n-goal a arch-vis:ArchNode ; arch-vis:archElement :goal-efficiency ; arch-vis:view :view-layered ; arch-vis:bounds-x 560.0 ; arch-vis:bounds-y 80.0 ; arch-vis:bounds-w 160.0 ; arch-vis:bounds-h 50.0 . :n-req a arch-vis:ArchNode ; arch-vis:archElement :req-customs ; arch-vis:view :view-layered ; arch-vis:bounds-x 560.0 ; arch-vis:bounds-y 160.0 ; arch-vis:bounds-w 170.0 ; arch-vis:bounds-h 50.0 . ## Row 2 — Strategy / Capabilities (y=80) :n-cap-booking a arch-vis:ArchNode ; arch-vis:archElement :cap-booking ; arch-vis:view :view-layered ; arch-vis:bounds-x 20.0 ; arch-vis:bounds-y 10.0 ; arch-vis:bounds-w 140.0 ; arch-vis:bounds-h 50.0 . :n-cap-tracking a arch-vis:ArchNode ; arch-vis:archElement :cap-tracking ; arch-vis:view :view-layered ; arch-vis:bounds-x 220.0 ; arch-vis:bounds-y 10.0 ; arch-vis:bounds-w 150.0 ; arch-vis:bounds-h 50.0 . :n-cap-customs a arch-vis:ArchNode ; arch-vis:archElement :cap-customs ; arch-vis:view :view-layered ; arch-vis:bounds-x 420.0 ; arch-vis:bounds-y 10.0 ; arch-vis:bounds-w 130.0 ; arch-vis:bounds-h 50.0 . ## Row 3 — Business (y=90) :n-role a arch-vis:ArchNode ; arch-vis:archElement :role-freight ; arch-vis:view :view-layered ; arch-vis:bounds-x 20.0 ; arch-vis:bounds-y 90.0 ; arch-vis:bounds-w 150.0 ; arch-vis:bounds-h 50.0 . :n-bp a arch-vis:ArchNode ; arch-vis:archElement :bp-booking ; arch-vis:view :view-layered ; arch-vis:bounds-x 220.0 ; arch-vis:bounds-y 90.0 ; arch-vis:bounds-w 140.0 ; arch-vis:bounds-h 50.0 . :n-obj a arch-vis:ArchNode ; arch-vis:archElement :obj-shipment ; arch-vis:view :view-layered ; arch-vis:bounds-x 420.0 ; arch-vis:bounds-y 90.0 ; arch-vis:bounds-w 110.0 ; arch-vis:bounds-h 50.0 . ## Row 4 — Application Services (y=170) :n-svc-booking a arch-vis:ArchNode ; arch-vis:archElement :svc-booking ; arch-vis:view :view-layered ; arch-vis:bounds-x 20.0 ; arch-vis:bounds-y 170.0 ; arch-vis:bounds-w 140.0 ; arch-vis:bounds-h 50.0 . :n-svc-tracking a arch-vis:ArchNode ; arch-vis:archElement :svc-tracking ; arch-vis:view :view-layered ; arch-vis:bounds-x 220.0 ; arch-vis:bounds-y 170.0 ; arch-vis:bounds-w 140.0 ; arch-vis:bounds-h 50.0 . ## Row 5 — Application Functions (y=250) :n-fn-booking a arch-vis:ArchNode ; arch-vis:archElement :fn-booking ; arch-vis:view :view-layered ; arch-vis:bounds-x 20.0 ; arch-vis:bounds-y 250.0 ; arch-vis:bounds-w 140.0 ; arch-vis:bounds-h 50.0 . :n-fn-tracking a arch-vis:ArchNode ; arch-vis:archElement :fn-tracking ; arch-vis:view :view-layered ; arch-vis:bounds-x 220.0 ; arch-vis:bounds-y 250.0 ; arch-vis:bounds-w 150.0 ; arch-vis:bounds-h 50.0 . :n-fn-customs a arch-vis:ArchNode ; arch-vis:archElement :fn-customs ; arch-vis:view :view-layered ; arch-vis:bounds-x 420.0 ; arch-vis:bounds-y 250.0 ; arch-vis:bounds-w 150.0 ; arch-vis:bounds-h 50.0 . ## Row 6 — Application Components (y=330) :n-tms a arch-vis:ArchNode ; arch-vis:archElement :tms ; arch-vis:view :view-layered ; arch-vis:bounds-x 20.0 ; arch-vis:bounds-y 330.0 ; arch-vis:bounds-w 170.0 ; arch-vis:bounds-h 50.0 . :n-portal a arch-vis:ArchNode ; arch-vis:archElement :portal ; arch-vis:view :view-layered ; arch-vis:bounds-x 220.0 ; arch-vis:bounds-y 330.0 ; arch-vis:bounds-w 140.0 ; arch-vis:bounds-h 50.0 . :n-customs a arch-vis:ArchNode ; arch-vis:archElement :customs-gw ; arch-vis:view :view-layered ; arch-vis:bounds-x 420.0 ; arch-vis:bounds-y 330.0 ; arch-vis:bounds-w 150.0 ; arch-vis:bounds-h 50.0 . ## Row 7 — Technology (y=410) :n-azure a arch-vis:ArchNode ; arch-vis:archElement :azure ; arch-vis:view :view-layered ; arch-vis:bounds-x 20.0 ; arch-vis:bounds-y 410.0 ; arch-vis:bounds-w 160.0 ; arch-vis:bounds-h 50.0 . :n-k8s a arch-vis:ArchNode ; arch-vis:archElement :k8s ; arch-vis:view :view-layered ; arch-vis:bounds-x 220.0 ; arch-vis:bounds-y 410.0 ; arch-vis:bounds-w 140.0 ; arch-vis:bounds-h 50.0 . ## Diagram Links — organized by column so they flow vertically ## Column 1: TMS → fn-booking → svc-booking → role :l-tms-fn-booking a arch-vis:Link ; arch-vis:source :n-tms ; arch-vis:target :n-fn-booking ; arch-vis:view :view-layered . :l-fn-booking-svc a arch-vis:Link ; arch-vis:source :n-fn-booking ; arch-vis:target :n-svc-booking ; arch-vis:view :view-layered . :l-svc-booking-role a arch-vis:Link ; arch-vis:source :n-svc-booking ; arch-vis:target :n-role ; arch-vis:view :view-layered . ## Column 2: Portal → fn-tracking → svc-tracking → role :l-portal-fn-tracking a arch-vis:Link ; arch-vis:source :n-portal ; arch-vis:target :n-fn-tracking ; arch-vis:view :view-layered . :l-fn-tracking-svc a arch-vis:Link ; arch-vis:source :n-fn-tracking ; arch-vis:target :n-svc-tracking ; arch-vis:view :view-layered . :l-svc-tracking-role a arch-vis:Link ; arch-vis:source :n-svc-tracking ; arch-vis:target :n-role ; arch-vis:view :view-layered . ## Column 3: CustomsGW → fn-customs → cap-customs :l-customs-fn-customs a arch-vis:Link ; arch-vis:source :n-customs ; arch-vis:target :n-fn-customs ; arch-vis:view :view-layered . :l-fn-customs-cap a arch-vis:Link ; arch-vis:source :n-fn-customs ; arch-vis:target :n-cap-customs ; arch-vis:view :view-layered . ## Strategy: bp → cap-booking, svc-tracking → cap-tracking :l-bp-cap a arch-vis:Link ; arch-vis:source :n-bp ; arch-vis:target :n-cap-booking ; arch-vis:view :view-layered . :l-svc-cap a arch-vis:Link ; arch-vis:source :n-svc-tracking ; arch-vis:target :n-cap-tracking ; arch-vis:view :view-layered . ## Business: role → bp, bp → obj :l-role-bp a arch-vis:Link ; arch-vis:source :n-role ; arch-vis:target :n-bp ; arch-vis:view :view-layered . :l-bp-obj a arch-vis:Link ; arch-vis:source :n-bp ; arch-vis:target :n-obj ; arch-vis:view :view-layered . ## Technology: azure → k8s → tms :l-azure-k8s a arch-vis:Link ; arch-vis:source :n-azure ; arch-vis:target :n-k8s ; arch-vis:view :view-layered . :l-k8s-tms a arch-vis:Link ; arch-vis:source :n-k8s ; arch-vis:target :n-tms ; arch-vis:view :view-layered . ## Cross-column: tms → customs (flow), customs → req (realizes) :l-tms-customs a arch-vis:Link ; arch-vis:source :n-tms ; arch-vis:target :n-customs ; arch-vis:view :view-layered . :l-customs-req a arch-vis:Link ; arch-vis:source :n-customs ; arch-vis:target :n-req ; arch-vis:view :view-layered . ## Motivation: shipper → goal :l-shipper-goal a arch-vis:Link ; arch-vis:source :n-shipper ; arch-vis:target :n-goal ; arch-vis:view :view-layered .