@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 dc:      <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix bibo:    <http://purl.org/ontology/bibo/> .
@prefix vann:    <http://purl.org/vocab/vann/> .
@prefix prov:    <http://www.w3.org/ns/prov#> .
@prefix cc:      <http://creativecommons.org/ns#> .
@prefix schema:  <http://schema.org/> .
@prefix sh:      <http://www.w3.org/ns/shacl#> .

@prefix arch:    <https://meta.linked.archi/core#> .
@prefix :        <https://meta.linked.archi/archimate4/onto#> .

#################################################################
# Ontology Declaration
#################################################################

<https://meta.linked.archi/archimate4/onto#>
    rdf:type                      owl:Ontology ;
    owl:imports                   <https://meta.linked.archi/core#> ;
    cc:license                    "http://creativecommons.org/licenses/by/4.0/" ;
    vann:preferredNamespaceUri    "https://meta.linked.archi/archimate4/onto#" ;
    vann:preferredNamespacePrefix "am4" ;
    dcterms:creator               "Kalin Maldzhanski"^^xsd:string ;
    dc:title                      "Linked.Archi ArchiMate 4.0 Ontology"@en ;
    dc:description                '''Linked.Archi ArchiMate ontology aligned to the ArchiMate 4.0 specification
(the "Hexagonion"). ArchiMate 4.0 replaces the layer-based structure of 3.x with a
domain-based organization (Common, Business, Application, Technology, Strategy,
Motivation, Implementation & Migration). Behavior elements that were previously
duplicated per layer (e.g., BusinessProcess, ApplicationProcess, TechnologyProcess) are
merged into single cross-domain elements (Process, Function, Event, Service). New Common
Domain elements (Role, Collaboration, Path) are introduced as generic, domain-independent
concepts. This is not an official Open Group document.'''@en ;
    dcterms:created               "2026-04-19"^^xsd:date ;
    dcterms:issued                "2026-04-29"^^xsd:date ;
    dcterms:modified              "2026-04-29"^^xsd:date ;
    dc:publisher                  "Linked.Archi"@en,
                                  <https://linked.archi> ;
    bibo:status                   "draft" ;
    dc:source                     <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    prov:wasDerivedFrom           <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    owl:versionIRI                <https://meta.linked.archi/archimate4/onto/4.0#> ;
    owl:versionInfo               "4.0"@en ;
    owl:priorVersion              <https://meta.linked.archi/archimate3/onto/3.2#> ;
    schema:citation               "Linked.Archi ArchiMate 4.0 Ontology" ;
    skos:historyNote              '''4.0.0: Major revision from ArchiMate 3.2 to 4.0. Layers replaced by domains
(Common, Business, Application, Technology, Strategy, Motivation, Implementation &
Migration). Per-layer behavior elements (BusinessProcess, ApplicationProcess,
TechnologyProcess, etc.) merged into single cross-domain elements (Process, Function,
Event, Service). Per-layer collaborations and roles merged into Common Domain. Removed
elements: Interaction, Contract, Representation, Gap, ImplementationEvent, Constraint.
New namespace archimate4/onto# introduced for breaking metamodel changes. Aligned to
Linked.Archi core ontology conventions and the qualified relationship pattern.'''@en ;
    skos:scopeNote                '''This namespace (archimate4/onto#) covers ArchiMate 4.x. It is separate
from archimate3/onto# because the 3.2→4.0 transition introduced breaking metamodel
changes: layers were replaced by domains, many per-layer elements were merged into
cross-domain equivalents, and several elements were removed entirely. The two namespaces
can coexist for migration purposes.'''@en ;
    rdfs:seeAlso                  <https://www.w3.org/TR/rdf12-concepts/> ;
.


#################################################################
# Abstract Classification Classes
#
# OWL classes representing ArchiMate 4.0 metamodel categories by
# aspect (BehaviorElement, ActiveStructureElement, etc.) and
# domain (CommonDomainElement, BusinessDomainElement, etc.).
# Concrete elements use rdfs:subClassOf to inherit from both
# their aspect and domain classes. SHACL shapes use
# rdf:type/rdfs:subClassOf* to query the hierarchy.
#
# In ArchiMate 4.0, the "Hexagonion" replaces the 3.x layer
# hierarchy with a domain-based organization. Behavior elements
# are no longer split per layer — Process, Function, Event, and
# Service are single cross-domain concepts in the Common Domain.
#################################################################

## Aspect hierarchy

:BehaviorElement
    a              owl:Class ;
    rdfs:subClassOf arch:Element ;
    skos:prefLabel "BehaviorElement"@en ;
    skos:definition "Behavior elements represent the dynamic aspects of the enterprise."@en ;
    skos:scopeNote "Superclass for all behavior: processes, functions, events, services, capabilities, value streams, courses of action, and work packages. In 4.0, core behavior elements (Process, Function, Event, Service) are cross-domain — they belong to the Common Domain."@en ;
.

:ActiveStructureElement
    a              owl:Class ;
    rdfs:subClassOf arch:Element ;
    skos:prefLabel "ActiveStructureElement"@en ;
    skos:definition "Active structure elements are the subjects that can perform behavior."@en ;
    skos:scopeNote "Superclass for all performers: internal active structure (actors, components, nodes, roles, collaborations) and external active structure (interfaces). Also includes paths, communication networks, and distribution networks."@en ;
.

:InternalActiveStructureElement
    a              owl:Class ;
    rdfs:subClassOf :ActiveStructureElement ;
    skos:prefLabel "InternalActiveStructureElement"@en ;
    skos:definition "An internal active structure element represents an entity capable of performing behavior."@en ;
    skos:scopeNote "The performers — actors, roles, collaborations, components, nodes, devices, system software, equipment, facilities. Connected to behavior via assignment. In 4.0, Role and Collaboration are generic Common Domain elements."@en ;
.

:ExternalActiveStructureElement
    a              owl:Class ;
    rdfs:subClassOf :ActiveStructureElement ;
    skos:prefLabel "ExternalActiveStructureElement"@en ;
    skos:definition "An external active structure element (interface) represents a point of access."@en ;
    skos:scopeNote "Interfaces expose services to the environment and hide internal complexity. Typically composed by the internal active structure element they belong to. Assigned to the services they expose."@en ;
.

:PassiveStructureElement
    a              owl:Class ;
    rdfs:subClassOf arch:Element ;
    skos:prefLabel "PassiveStructureElement"@en ;
    skos:definition "Passive structure elements can be accessed by behavior elements."@en ;
    skos:scopeNote "Objects acted upon by behavior — business objects, data objects, artifacts, materials, deliverables, and resources. Connected to behavior via access relationships (read, write, read-write)."@en ;
.

:MotivationElement
    a              owl:Class ;
    rdfs:subClassOf arch:Element ;
    skos:prefLabel "MotivationElement"@en ;
    skos:definition "A motivation element represents the context of or reason behind the architecture."@en ;
    skos:scopeNote "The 'why' behind the architecture: stakeholders, drivers, assessments, goals, outcomes, principles, requirements, meanings, and values. Connected to other elements via influence relationships."@en ;
.

:CompositeElement
    a              owl:Class ;
    rdfs:subClassOf arch:Element ;
    skos:prefLabel "CompositeElement"@en ;
    skos:definition "Composite elements consist of other concepts, possibly from multiple aspects or domains."@en ;
    skos:scopeNote "Elements that cross aspect boundaries: products (bundle services and objects), groupings (generic containers), locations (physical or logical places), and plateaus (stable architecture states)."@en ;
.

:StrategyElement
    a              owl:Class ;
    rdfs:subClassOf arch:Element ;
    skos:prefLabel "StrategyElement"@en ;
    skos:definition "Strategy elements represent strategic concepts used to model the enterprise at a high level."@en ;
    skos:scopeNote "High-level planning elements: capabilities (what the organization can do), value streams (how value is delivered), courses of action (plans), and resources (assets). Realized by elements from other domains."@en ;
.

## Domain hierarchy (replaces "layers" in 3.2)

:CommonDomainElement
    a              owl:Class ;
    rdfs:subClassOf arch:Element ;
    skos:prefLabel "CommonDomainElement"@en ;
    skos:definition "Common Domain elements are generic, cross-domain concepts shared across Business, Application, and Technology."@en ;
    skos:scopeNote "New in 4.0. Contains behavior elements (Process, Function, Event, Service) that were previously duplicated per layer, plus generic active structure (Role, Collaboration, Path) and composite elements (Grouping, Location). Use domain-specific assignment to indicate context."@en ;
.

:BusinessDomainElement
    a              owl:Class ;
    rdfs:subClassOf arch:Element ;
    skos:prefLabel "BusinessDomainElement"@en ;
    skos:definition "Business Domain elements represent concepts specific to the business domain."@en ;
    skos:scopeNote "Domain marker for business-specific elements: actors, interfaces, objects, and products. Behavior is modeled using Common Domain elements assigned to business actors."@en ;
.

:ApplicationDomainElement
    a              owl:Class ;
    rdfs:subClassOf arch:Element ;
    skos:prefLabel "ApplicationDomainElement"@en ;
    skos:definition "Application Domain elements represent concepts specific to the application domain."@en ;
    skos:scopeNote "Domain marker for application-specific elements: components, interfaces, and data objects. Behavior is modeled using Common Domain elements assigned to application components."@en ;
.

:TechnologyDomainElement
    a              owl:Class ;
    rdfs:subClassOf arch:Element ;
    skos:prefLabel "TechnologyDomainElement"@en ;
    skos:definition "Technology Domain elements represent concepts specific to the technology and physical domain."@en ;
    skos:scopeNote "Domain marker for technology and physical elements: nodes, devices, system software, networks, equipment, facilities, artifacts, and materials. Merges the 3.x Technology and Physical layers."@en ;
.

:ImplementationAndMigrationDomainElement
    a              owl:Class ;
    rdfs:subClassOf arch:Element ;
    skos:prefLabel "ImplementationAndMigrationDomainElement"@en ;
    skos:definition "Implementation and Migration Domain elements support planning and execution of architecture changes."@en ;
    skos:scopeNote "Domain marker for transition planning: work packages, deliverables, and plateaus. Gap and ImplementationEvent from 3.x have been removed in 4.0."@en ;
.


#################################################################
# Common Domain Elements (NEW in 4.0 — generic, cross-domain)
#################################################################

:Role
    a                    owl:Class ;
    rdfs:subClassOf      :InternalActiveStructureElement,
                         :CommonDomainElement ;
    skos:prefLabel       "Role"@en ;
    skos:altLabel        "Business Role"@en, "Application Role"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''The position or purpose that a business actor, application component, node, device,
system software, equipment, facility, or a collaboration has in performing specific
behavior.'''@en ;
    skos:changeNote      "4.0: Replaces BusinessRole. Now a generic Common Domain element to which any internal active structure element can be assigned."@en ;
.

:Collaboration
    a                    owl:Class ;
    rdfs:subClassOf      :InternalActiveStructureElement,
                         :CommonDomainElement ;
    skos:prefLabel       "Collaboration"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A collection of business actors, application components, nodes, devices, system software,
equipment, facilities, roles, and/or other collaborations that work together to perform
collective behavior.'''@en ;
    skos:changeNote      "4.0: Merges BusinessCollaboration, ApplicationCollaboration, and TechnologyCollaboration into a single generic element."@en ;
.

:Path
    a                    owl:Class ;
    rdfs:subClassOf      :ActiveStructureElement,
                         :CommonDomainElement ;
    skos:prefLabel       "Path"@en ;
    skos:altLabel        "Link"@en, "Connection"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A logical link between internal active structure elements through which they can exchange
data, energy, or material.'''@en ;
    skos:changeNote      "4.0: Moved from Technology Layer to Common Domain. Aggregation from Path to technology internal active structure element replaced by realization from active structure element to Path."@en ;
.

:Service
    a                    owl:Class ;
    rdfs:subClassOf      :BehaviorElement,
                         :CommonDomainElement ;
    skos:prefLabel       "Service"@en ;
    skos:altLabel        "Business Service"@en, "Application Service"@en, "Technology Service"@en, "Infrastructure Service"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''An explicitly defined behavior that an active structure element provides to its
environment.'''@en ;
    skos:changeNote      "4.0: Merges BusinessService, ApplicationService, and TechnologyService into a single generic element. Cross-layer realization between services replaced by specialization or aggregation."@en ;
.

:Process
    a                    owl:Class ;
    rdfs:subClassOf      :BehaviorElement,
                         :CommonDomainElement ;
    skos:prefLabel       "Process"@en ;
    skos:altLabel        "Business Process"@en, "Application Process"@en, "Workflow"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A sequence of behaviors that achieves a specific result.'''@en ;
    skos:changeNote      "4.0: Merges BusinessProcess, ApplicationProcess, and TechnologyProcess into a single generic element."@en ;
.

:Function
    a                    owl:Class ;
    rdfs:subClassOf      :BehaviorElement,
                         :CommonDomainElement ;
    skos:prefLabel       "Function"@en ;
    skos:altLabel        "Business Function"@en, "Application Function"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A collection of behavior based on a chosen set of criteria.'''@en ;
    skos:changeNote      "4.0: Merges BusinessFunction, ApplicationFunction, and TechnologyFunction into a single generic element. Also replaces Interaction (BusinessInteraction, ApplicationInteraction, TechnologyInteraction)."@en ;
.

:Event
    a                    owl:Class ;
    rdfs:subClassOf      :BehaviorElement,
                         :CommonDomainElement ;
    skos:prefLabel       "Event"@en ;
    skos:altLabel        "Business Event"@en, "Application Event"@en, "State Change"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''Something that happens or occurs inside or outside the enterprise, such as a state
change.'''@en ;
    skos:changeNote      "4.0: Merges BusinessEvent, ApplicationEvent, TechnologyEvent, and ImplementationEvent into a single generic element."@en ;
.

:Grouping
    a                    owl:Class ;
    rdfs:subClassOf      :CompositeElement ;
    skos:prefLabel       "Grouping"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A collection of concepts that belong together based on some common
characteristic.'''@en ;
.

:Location
    a                    owl:Class ;
    rdfs:subClassOf      :CompositeElement ;
    skos:prefLabel       "Location"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A place or position where structure elements can be located or behavior can be
performed.'''@en ;
.


#################################################################
# Motivation Domain Elements
#################################################################

:Stakeholder
    a                    owl:Class ;
    rdfs:subClassOf      :MotivationElement ;
    skos:prefLabel       "Stakeholder"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''The perspective from which a business actor perceives the effects of the
architecture.'''@en ;
.

:Driver
    a                    owl:Class ;
    rdfs:subClassOf      :MotivationElement ;
    skos:prefLabel       "Driver"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''An external or internal condition that motivates an organization to define its goals and
implement the changes necessary to achieve them.'''@en ;
.

:Assessment
    a                    owl:Class ;
    rdfs:subClassOf      :MotivationElement ;
    skos:prefLabel       "Assessment"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''The result of an analysis of the state of affairs of the enterprise with respect to some
driver.'''@en ;
.

:Goal
    a                    owl:Class ;
    rdfs:subClassOf      :MotivationElement ;
    skos:prefLabel       "Goal"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A high-level statement of intent, direction, or desired end state for an organization and
its stakeholders.'''@en ;
.

:Outcome
    a                    owl:Class ;
    rdfs:subClassOf      :MotivationElement ;
    skos:prefLabel       "Outcome"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''An end result, effect, or consequence of a certain state of affairs.'''@en ;
.

:Principle
    a                    owl:Class ;
    rdfs:subClassOf      :MotivationElement ;
    skos:prefLabel       "Principle"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A statement of intent defining a general property that applies to any system in a certain
context in the architecture.'''@en ;
.

:Requirement
    a                    owl:Class ;
    rdfs:subClassOf      :MotivationElement ;
    skos:prefLabel       "Requirement"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A statement of need defining a property that applies to a specific system as described by
the architecture.'''@en ;
.

:Meaning
    a                    owl:Class ;
    rdfs:subClassOf      :MotivationElement ;
    skos:prefLabel       "Meaning"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''The knowledge or expertise present in, or the interpretation given to, a concept in a
particular context.'''@en ;
.

:Value
    a                    owl:Class ;
    rdfs:subClassOf      :MotivationElement ;
    skos:prefLabel       "Value"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''The relative worth, utility, or importance of a concept.'''@en ;
.


#################################################################
# Strategy Domain Elements
#################################################################

:Resource
    a                    owl:Class ;
    rdfs:subClassOf      :PassiveStructureElement,
                         :StrategyElement ;
    skos:prefLabel       "Resource"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A useful or valuable possession or means that can be drawn upon by the
enterprise.'''@en ;
.

:Capability
    a                    owl:Class ;
    rdfs:subClassOf      :BehaviorElement,
                         :StrategyElement ;
    skos:prefLabel       "Capability"@en ;
    skos:altLabel        "Business Capability"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''An ability that an organizational entity, person, or system possesses.'''@en ;
.

:ValueStream
    a                    owl:Class ;
    rdfs:subClassOf      :BehaviorElement,
                         :StrategyElement ;
    skos:prefLabel       "Value Stream"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A sequence of activities that create an overall result for a customer, stakeholder, or
end user.'''@en ;
.

:CourseOfAction
    a                    owl:Class ;
    rdfs:subClassOf      :BehaviorElement,
                         :StrategyElement ;
    skos:prefLabel       "Course of Action"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''An approach or plan for configuring some capabilities and resources of the
enterprise.'''@en ;
.


#################################################################
# Business Domain Elements
#################################################################

:BusinessActor
    a                    owl:Class ;
    rdfs:subClassOf      :InternalActiveStructureElement,
                         :BusinessDomainElement ;
    skos:prefLabel       "Business Actor"@en ;
    skos:altLabel        "Organization"@en, "Department"@en, "Person"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A business entity that is capable of performing behavior.'''@en ;
.

:BusinessInterface
    a                    owl:Class ;
    rdfs:subClassOf      :ExternalActiveStructureElement,
                         :BusinessDomainElement ;
    skos:prefLabel       "Business Interface"@en ;
    skos:altLabel        "Channel"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A point of access where a business service is made available to the
environment.'''@en ;
.

:BusinessObject
    a                    owl:Class ;
    rdfs:subClassOf      :PassiveStructureElement,
                         :BusinessDomainElement ;
    skos:prefLabel       "Business Object"@en ;
    skos:altLabel        "Information Object"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A concept used within a particular business domain.'''@en ;
.

:Product
    a                    owl:Class ;
    rdfs:subClassOf      :CompositeElement,
                         :BusinessDomainElement ;
    skos:prefLabel       "Product"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A coherent collection of services, business objects, data objects, artifacts, and/or
material, which is offered as a whole to customers.'''@en ;
.


#################################################################
# Application Domain Elements
#################################################################

:ApplicationComponent
    a                    owl:Class ;
    rdfs:subClassOf      :InternalActiveStructureElement,
                         :ApplicationDomainElement ;
    skos:prefLabel       "Application Component"@en ;
    skos:altLabel        "Software Component"@en, "Application"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''An encapsulation of application functionality aligned to implementation
structure.'''@en ;
.

:ApplicationInterface
    a                    owl:Class ;
    rdfs:subClassOf      :ExternalActiveStructureElement,
                         :ApplicationDomainElement ;
    skos:prefLabel       "Application Interface"@en ;
    skos:altLabel        "API"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A point of access where application services are made available.'''@en ;
.

:DataObject
    a                    owl:Class ;
    rdfs:subClassOf      :PassiveStructureElement,
                         :ApplicationDomainElement ;
    skos:prefLabel       "Data Object"@en ;
    skos:altLabel        "Data Entity"@en, "Data Asset"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''Data structured for automated processing.'''@en ;
.


#################################################################
# Technology Domain Elements
#################################################################

:Node
    a                    owl:Class ;
    rdfs:subClassOf      :InternalActiveStructureElement,
                         :TechnologyDomainElement ;
    skos:prefLabel       "Node"@en ;
    skos:altLabel        "Server"@en, "Host"@en, "Compute Node"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A generic IT or physical structure that hosts, manipulates, or interacts with other such
structures.'''@en ;
.

:TechnologyInterface
    a                    owl:Class ;
    rdfs:subClassOf      :ExternalActiveStructureElement,
                         :TechnologyDomainElement ;
    skos:prefLabel       "Technology Interface"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A point of access where technology services are made available.'''@en ;
.

:Device
    a                    owl:Class ;
    rdfs:subClassOf      :InternalActiveStructureElement,
                         :TechnologyDomainElement ;
    skos:prefLabel       "Device"@en ;
    skos:altLabel        "Hardware"@en, "Physical Server"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''IT hardware used for processing, data storage, and similar purposes.'''@en ;
.

:SystemSoftware
    a                    owl:Class ;
    rdfs:subClassOf      :InternalActiveStructureElement,
                         :TechnologyDomainElement ;
    skos:prefLabel       "System Software"@en ;
    skos:altLabel        "Platform Software"@en, "Middleware"@en, "Operating System"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''Software that provides or contributes to an environment for storing, executing, and using
software or data.'''@en ;
.

:Equipment
    a                    owl:Class ;
    rdfs:subClassOf      :InternalActiveStructureElement,
                         :TechnologyDomainElement ;
    skos:prefLabel       "Equipment"@en ;
    skos:altLabel        "Machine"@en, "Physical Device"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''One or more physical machines, tools, or instruments that can create, use, store, move,
or transform materials.'''@en ;
.

:Facility
    a                    owl:Class ;
    rdfs:subClassOf      :InternalActiveStructureElement,
                         :TechnologyDomainElement ;
    skos:prefLabel       "Facility"@en ;
    skos:altLabel        "Building"@en, "Data Center"@en, "Site"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A physical structure or environment.'''@en ;
.

:CommunicationNetwork
    a                    owl:Class ;
    rdfs:subClassOf      :ActiveStructureElement,
                         :TechnologyDomainElement ;
    skos:prefLabel       "Communication Network"@en ;
    skos:altLabel        "Network"@en, "LAN"@en, "WAN"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A set of structures that connects nodes for the transmission, routing, and reception of
data.'''@en ;
.

:DistributionNetwork
    a                    owl:Class ;
    rdfs:subClassOf      :ActiveStructureElement,
                         :TechnologyDomainElement ;
    skos:prefLabel       "Distribution Network"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A physical network used to transport materials or energy.'''@en ;
.

:Artifact
    a                    owl:Class ;
    rdfs:subClassOf      :PassiveStructureElement,
                         :TechnologyDomainElement ;
    skos:prefLabel       "Artifact"@en ;
    skos:altLabel        "Deployment Unit"@en, "Binary"@en, "Package"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A piece of data that is used or produced in a software development process, or by
deployment and operation of an IT system.'''@en ;
.

:Material
    a                    owl:Class ;
    rdfs:subClassOf      :PassiveStructureElement,
                         :TechnologyDomainElement ;
    skos:prefLabel       "Material"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''Tangible physical matter or physical elements.'''@en ;
.


#################################################################
# Implementation & Migration Domain Elements
#################################################################

:WorkPackage
    a                    owl:Class ;
    rdfs:subClassOf      :BehaviorElement,
                         :ImplementationAndMigrationDomainElement ;
    skos:prefLabel       "Work Package"@en ;
    skos:altLabel        "Project"@en, "Initiative"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A series of actions identified and designed to achieve specific results within specified
time and resource constraints.'''@en ;
.

:Deliverable
    a                    owl:Class ;
    rdfs:subClassOf      :PassiveStructureElement,
                         :ImplementationAndMigrationDomainElement ;
    skos:prefLabel       "Deliverable"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A precisely-defined outcome of a work package.'''@en ;
.

:Plateau
    a                    owl:Class ;
    rdfs:subClassOf      :CompositeElement,
                         :ImplementationAndMigrationDomainElement ;
    skos:prefLabel       "Plateau"@en ;
    skos:altLabel        "Architecture State"@en, "Baseline"@en, "Target State"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A relatively stable state of the architecture that exists for a defined period of
time.'''@en ;
.


#################################################################
# Relationship Connectors
#################################################################

:AndJunction
    a                    owl:Class ;
    rdfs:subClassOf      arch:Element ;
    skos:prefLabel       "And Junction"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''Used to connect relationships of the same type.'''@en ;
.

:OrJunction
    a                    owl:Class ;
    rdfs:subClassOf      arch:Element ;
    skos:prefLabel       "Or Junction"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''Used to connect relationships of the same type.'''@en ;
.


#################################################################
# Relationship Types — Structural
#################################################################

## Composition ─────────────────────────────────────────────────

:composedOf
    a                    owl:ObjectProperty ;
    skos:prefLabel       "Composed Of"@en ;
    skos:definition      '''Indicates that an element consists of one or more other elements.'''@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:Composition
    a                    owl:Class ;
    rdfs:subClassOf      arch:QualifiedRelationship ;
    arch:unqualifiedForm :composedOf ;
    skos:prefLabel       "Composition"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A composition relationship indicates that an element consists of one or more other
elements. The contained element exists only within the context of the container.'''@en ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:qualifiedComposition
    a                    owl:ObjectProperty ;
    rdfs:range           :Composition ;
    arch:unqualifiedForm :composedOf ;
    arch:domainIncludes  arch:Element ;
    skos:prefLabel       "qualified Composition"@en ;
    skos:definition      '''Navigates from a source element to a Composition qualified relationship
resource.'''@en ;
.

## Aggregation ─────────────────────────────────────────────────

:aggregates
    a                    owl:ObjectProperty ;
    skos:prefLabel       "Aggregates"@en ;
    skos:definition      '''Indicates that an element combines one or more other elements.'''@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:Aggregation
    a                    owl:Class ;
    rdfs:subClassOf      arch:QualifiedRelationship ;
    arch:unqualifiedForm :aggregates ;
    skos:prefLabel       "Aggregation"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''An aggregation relationship indicates that an element combines one or more other elements.
Unlike composition, the aggregated element can exist independently.'''@en ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:qualifiedAggregation
    a                    owl:ObjectProperty ;
    rdfs:range           :Aggregation ;
    arch:unqualifiedForm :aggregates ;
    arch:domainIncludes  arch:Element ;
    skos:prefLabel       "qualified Aggregation"@en ;
    skos:definition      '''Navigates from a source element to an Aggregation qualified relationship
resource.'''@en ;
.

## Assignment ──────────────────────────────────────────────────

:assignedTo
    a                    owl:ObjectProperty ;
    skos:prefLabel       "Assigned To"@en ;
    skos:definition      '''Indicates the allocation of responsibility, performance of behavior, storage, or
execution.'''@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:Assignment
    a                    owl:Class ;
    rdfs:subClassOf      arch:QualifiedRelationship ;
    arch:unqualifiedForm :assignedTo ;
    skos:prefLabel       "Assignment"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''An assignment relationship indicates the allocation of responsibility, performance of
behavior, storage, or execution.'''@en ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:qualifiedAssignment
    a                    owl:ObjectProperty ;
    rdfs:range           :Assignment ;
    arch:unqualifiedForm :assignedTo ;
    arch:domainIncludes  arch:Element ;
    skos:prefLabel       "qualified Assignment"@en ;
    skos:definition      '''Navigates from a source element to an Assignment qualified relationship
resource.'''@en ;
.

## Realization ─────────────────────────────────────────────────

:realizes
    a                    owl:ObjectProperty ;
    skos:prefLabel       "Realizes"@en ;
    skos:definition      '''Indicates that an entity plays a critical role in the creation, achievement, sustenance,
or operation of a more abstract entity.'''@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:Realization
    a                    owl:Class ;
    rdfs:subClassOf      arch:QualifiedRelationship ;
    arch:unqualifiedForm :realizes ;
    skos:prefLabel       "Realization"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A realization relationship indicates that an entity plays a critical role in the creation,
achievement, sustenance, or operation of a more abstract entity.'''@en ;
    skos:changeNote      "4.0: Cross-layer realization between services of different domains replaced by specialization (from realizing service to realized service) or aggregation (from realized service to realizing service)."@en ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:qualifiedRealization
    a                    owl:ObjectProperty ;
    rdfs:range           :Realization ;
    arch:unqualifiedForm :realizes ;
    arch:domainIncludes  arch:Element ;
    skos:prefLabel       "qualified Realization"@en ;
    skos:definition      '''Navigates from a source element to a Realization qualified relationship
resource.'''@en ;
.


#################################################################
# Relationship Types — Dependency
#################################################################

## Serving ─────────────────────────────────────────────────────

:serves
    a                    owl:ObjectProperty ;
    skos:prefLabel       "Serves"@en ;
    skos:definition      '''Indicates that an element provides its functionality to another element.'''@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:Serving
    a                    owl:Class ;
    rdfs:subClassOf      arch:QualifiedRelationship ;
    arch:unqualifiedForm :serves ;
    skos:prefLabel       "Serving"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A serving relationship indicates that an element provides its functionality to another
element.'''@en ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:qualifiedServes
    a                    owl:ObjectProperty ;
    rdfs:range           :Serving ;
    arch:unqualifiedForm :serves ;
    arch:domainIncludes  arch:Element ;
    skos:prefLabel       "qualified Serves"@en ;
    skos:definition      '''Navigates from a source element to a Serving qualified relationship
resource.'''@en ;
.

## Access ──────────────────────────────────────────────────────

:accesses
    a                    owl:ObjectProperty ;
    skos:prefLabel       "Accesses"@en ;
    skos:definition      '''Indicates that a behavior element may access a business or data object.'''@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:Access
    a                    owl:Class ;
    rdfs:subClassOf      arch:QualifiedRelationship ;
    arch:unqualifiedForm :accesses ;
    skos:prefLabel       "Access"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''An access relationship indicates that a behavior element may access a business or data
object. The accessType property specifies read, write, read-write, or unspecified.'''@en ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:qualifiedAccesses
    a                    owl:ObjectProperty ;
    rdfs:range           :Access ;
    arch:unqualifiedForm :accesses ;
    arch:domainIncludes  arch:Element ;
    skos:prefLabel       "qualified Accesses"@en ;
    skos:definition      '''Navigates from a source element to an Access qualified relationship
resource. The Access resource carries the accessType (Read, Write, ReadWrite).'''@en ;
.

## Influence ───────────────────────────────────────────────────

:influences
    a                    owl:ObjectProperty ;
    skos:prefLabel       "Influences"@en ;
    skos:definition      '''Indicates that an element affects the implementation or achievement of some motivation
element.'''@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:Influence
    a                    owl:Class ;
    rdfs:subClassOf      arch:QualifiedRelationship ;
    arch:unqualifiedForm :influences ;
    skos:prefLabel       "Influence"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''An influence relationship indicates that an element affects the implementation or
achievement of some motivation element. The influenceStrength property specifies the
degree.'''@en ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:qualifiedInfluences
    a                    owl:ObjectProperty ;
    rdfs:range           :Influence ;
    arch:unqualifiedForm :influences ;
    arch:domainIncludes  arch:Element ;
    skos:prefLabel       "qualified Influences"@en ;
    skos:definition      '''Navigates from a source element to an Influence qualified relationship
resource. The Influence resource carries the influenceStrength (+, ++, -, --).'''@en ;
.


#################################################################
# Relationship Types — Dynamic
#################################################################

## Triggering ──────────────────────────────────────────────────

:triggers
    a                    owl:ObjectProperty ;
    skos:prefLabel       "Triggers"@en ;
    skos:definition      '''Indicates a temporal or causal relationship between elements.'''@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:Triggering
    a                    owl:Class ;
    rdfs:subClassOf      arch:QualifiedRelationship ;
    arch:unqualifiedForm :triggers ;
    skos:prefLabel       "Triggering"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A triggering relationship indicates a temporal or causal relationship between
elements.'''@en ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:qualifiedTriggers
    a                    owl:ObjectProperty ;
    rdfs:range           :Triggering ;
    arch:unqualifiedForm :triggers ;
    arch:domainIncludes  arch:Element ;
    skos:prefLabel       "qualified Triggers"@en ;
    skos:definition      '''Navigates from a source element to a Triggering qualified relationship
resource.'''@en ;
.

## Flow ────────────────────────────────────────────────────────

:flowsTo
    a                    owl:ObjectProperty ;
    skos:prefLabel       "Flows To"@en ;
    skos:definition      '''Indicates transfer from one element to another.'''@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:Flow
    a                    owl:Class ;
    rdfs:subClassOf      arch:QualifiedRelationship ;
    arch:unqualifiedForm :flowsTo ;
    skos:prefLabel       "Flow"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A flow relationship indicates transfer from one element to another.'''@en ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:qualifiedFlow
    a                    owl:ObjectProperty ;
    rdfs:range           :Flow ;
    arch:unqualifiedForm :flowsTo ;
    arch:domainIncludes  arch:Element ;
    skos:prefLabel       "qualified Flow"@en ;
    skos:definition      '''Navigates from a source element to a Flow qualified relationship
resource.'''@en ;
.


#################################################################
# Relationship Types — Other
#################################################################

## Specialization ──────────────────────────────────────────────

:specializes
    a                    owl:ObjectProperty ;
    skos:prefLabel       "Specializes"@en ;
    skos:definition      '''Indicates that an element is a particular kind of another element.'''@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:Specialization
    a                    owl:Class ;
    rdfs:subClassOf      arch:QualifiedRelationship ;
    arch:unqualifiedForm :specializes ;
    skos:prefLabel       "Specialization"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''A specialization relationship indicates that an element is a particular kind of another
element.'''@en ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:qualifiedSpecialization
    a                    owl:ObjectProperty ;
    rdfs:range           :Specialization ;
    arch:unqualifiedForm :specializes ;
    arch:domainIncludes  arch:Element ;
    skos:prefLabel       "qualified Specialization"@en ;
    skos:definition      '''Navigates from a source element to a Specialization qualified relationship
resource.'''@en ;
.

## Association ─────────────────────────────────────────────────

:associatedWith
    a                    owl:ObjectProperty ;
    skos:prefLabel       "Associated With"@en ;
    skos:definition      '''Indicates an unspecified relationship, or one that is not represented by another
ArchiMate relationship.'''@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:Association
    a                    owl:Class ;
    rdfs:subClassOf      arch:QualifiedRelationship ;
    arch:unqualifiedForm :associatedWith ;
    skos:prefLabel       "Association"@en ;
    dc:source            <https://pubs.opengroup.org/architecture/archimate4-doc/> ;
    skos:definition      '''An association relationship indicates an unspecified relationship, or one that is not
represented by another ArchiMate relationship.'''@en ;
    arch:domainIncludes  arch:Element ;
    arch:rangeIncludes   arch:Element ;
.

:qualifiedAssociation
    a                    owl:ObjectProperty ;
    rdfs:range           :Association ;
    arch:unqualifiedForm :associatedWith ;
    arch:domainIncludes  arch:Element ;
    skos:prefLabel       "qualified Association"@en ;
    skos:definition      '''Navigates from a source element to an Association qualified relationship
resource.'''@en ;
.


#################################################################
# Relationship Attribute Properties
#################################################################

:accessType
    a                owl:DatatypeProperty ;
    skos:prefLabel   "Access Type"@en ;
    skos:definition  '''Specifies the type of access: read, write, read-write, or unspecified.'''@en ;
    rdfs:domain      :Access ;
    rdfs:range       xsd:string ;
.

:influenceStrength
    a                owl:DatatypeProperty ;
    skos:prefLabel   "Influence Strength"@en ;
    skos:definition  '''Specifies the strength or sign of an influence (e.g., +, ++, -, --).'''@en ;
    rdfs:domain      :Influence ;
    rdfs:range       xsd:string ;
.
