Ontology Reference — Complete Class and Property Catalogue¶
Looking for a specific class, property, or namespace? This document is the exhaustive reference for every ontology module in the Linked.Archi semantic assets repository, including their OWL classes, properties, design rationale, and dependencies on other modules.
Use this when you need to know: "what classes does the core ontology define?", "what properties link decisions to forces?", or "what's the namespace for the ArchiMate 3.2 ontology?"
1. Core Ontology (core/core-onto.ttl)¶
Namespace: https://meta.linked.archi/core# (prefix: arch:)
Version: 0.3.2
Status: Draft
Creator: Kalin Maldzhanski
License: CC BY 4.0
The core ontology is the foundation of the entire Linked.Archi ecosystem. It defines the fundamental concepts for enterprise and IT architecture modelling, aligned with ISO/IEC/IEEE 42010.
Core SHACL Shapes (core/core-shapes.ttl)¶
Namespace: https://meta.linked.archi/core-shapes# (prefix: archsh:)
Version: 0.1.0
Base SHACL shapes that apply to all metamodels extending the core:
| Shape | Target | Constraint |
|---|---|---|
archsh:QualifiedRelationshipShape |
arch:QualifiedRelationship |
Exactly one arch:source and one arch:target, both arch:ModelConcept |
archsh:ConceptOwnerShape |
arch:ModelConcept |
At most one arch:conceptOwner, and it must be an arch:Stakeholder |
Metamodel-specific shapes (ArchiMate, C4, Backstage) import this file and add type-specific constraints.
There is no core label shape¶
Requiring skos:prefLabel on every arch:Element is not a sound cross-notation rule.
arch:Element means "a node in a model", and several notations have nodes that are legitimately
unnamed:
| Construct | Why it has no name |
|---|---|
BPMN Gateway and Event subtypes |
routing and triggering; the spec makes name optional |
ArchiMate AndJunction / OrJunction |
relationship connectors, drawn as dots or bars |
BPMN TextAnnotation, Group |
carry bpmn:text, not a name at all |
BPMNDI BPMNDiagram |
the spec makes the diagram name optional — hence no core arch:View rule either |
Those are genuine elements: they have identity, they render on diagrams, they belong in element
counts. Excluding them from arch:Element to satisfy a label rule would misstate the model.
So each metamodel owns its naming rule and states it in its own shapes, listing the classes that
must be named with plain sh:targetClass:
| Metamodel | Shape |
|---|---|
| BPMN 2.0.2 | bpmnsh:RequiredNameShape |
| BPMN Lite | per-class shapes in bpmnls: |
| ArchiMate 4.0 | am4elsh:ArchiMateElementShape |
| ArchiMate 3.2 | amelsh:ArchiMateElementShape |
| C4 | c4sh:C4ElementLabelShape |
| Structurizr | strsh:StructurizrElementLabelShape |
| Backstage | bssh:BackstageElementLabelShape |
A metamodel shape must not target arch:Element for this purpose. In a merged multi-notation
graph that would apply one notation's naming policy to every other notation's elements. Target the
metamodel's own classes — its abstract domain or layer roots are usually the concise way to do it,
and they also give you a natural place to leave connectors out.
The labelling contract — for converter authors¶
skos:prefLabel is the canonical human-readable label across every metamodel, and it must carry
a language tag. Every notation label shape asserts sh:datatype rdf:langString, so
"Charge card" is rejected and "Charge card"@en is accepted. This is the most common reason
converter output fails validation while looking correct to a human reader.
A notation's own name attribute does not satisfy the rule. Notation ontologies retain their
source attributes verbatim — bpmn:name from BPMN XML, and equivalents elsewhere — as plain
xsd:string, both for round-trip fidelity and because those attributes also appear on classes
that are not architecture elements. Converters emit both:
ex:t1 a bpmn:ServiceTask ;
bpmn:name "Charge card" ; # source attribute, verbatim
skos:prefLabel "Charge card"@en . # canonical label
Do not try to bridge the two with rdfs:subPropertyOf. The entailed prefLabel inherits the
plain xsd:string datatype, so a correctly named element still fails — the report merely moves
from sh:MinCountConstraintComponent to sh:DatatypeConstraintComponent, pointing away from the
real problem.
Full rationale in DD-24, with conformance checks P-8 and P-9.
Classes¶
Model Concepts (the modelling palette)¶
| Class | Parent | Description |
|---|---|---|
arch:ModelConcept |
owl:Class |
Base class for all concepts used in an architecture model |
arch:Element |
arch:ModelConcept |
Elements or nodes used in models; subclasses defined in specific metamodels |
arch:QualifiedRelationship |
arch:ModelConcept |
First-class relationship resource; subclasses form the relationship palette |
arch:View |
arch:ModelConcept |
Representation of a system from a set of concerns |
arch:Catalog |
arch:View |
List-based view of building blocks for governance |
arch:Matrix |
arch:View |
Grid showing relationships between model entities |
arch:Diagram |
arch:View |
Graphical rendering of architectural content |
Architecture Description Concepts¶
| Class | Parent | Description |
|---|---|---|
arch:System |
owl:Class |
The subject of interest — combination of interrelated parts |
arch:Architecture |
owl:Class |
Fundamental concepts/properties of a system in its environment |
arch:Model |
owl:Class |
Selective representation of a system (architecture description) |
arch:Metamodel |
owl:Class |
Definition of the modelling language (manifest aggregating all resources) |
arch:Framework |
schema:CreativeWork |
Architecture framework (e.g., TOGAF, DoDAF, Zachman) |
arch:Viewpoint |
owl:Class |
Specification for a kind of architecture view |
Stakeholder and Concern Concepts¶
| Class | Parent | Description |
|---|---|---|
arch:Stakeholder |
arch:Element |
Party with interests in the system |
arch:Consideration |
owl:Class |
Base class for concerns, aspects, perspectives |
arch:Concern |
arch:Consideration |
Specific interest in the system |
arch:Aspect |
arch:Consideration |
Architecture aspect (data, activity, function, etc.) |
arch:Perspective |
arch:Consideration |
Stakeholder perspective (strategic, capability, operations) |
Quality and Governance¶
| Class | Parent | Description |
|---|---|---|
arch:QualityAttribute |
owl:Class |
Named quality characteristic (ISO 25010/25011/25012 aligned). Subclassed by quality model roots; leaf sub-characteristics are owl:NamedIndividual instances. |
arch:QualityMeasure |
owl:Class |
Per-component quantification of a quality attribute. Links to the measured Element and the QualityAttribute individual. |
arch:PresentationFormat |
owl:Class |
Output format for rendering deliverables (Markdown, HTML, PDF, etc.) |
arch:DeliverableTemplate |
schema:CreativeWork |
Template defining content structure of a deliverable (which viewpoints) |
arch:TemplateSection |
owl:Class |
Ordered section within a DeliverableTemplate referencing a Viewpoint |
arch:Purpose |
owl:Class |
Purpose shaping the architecture description |
arch:Environment |
owl:Class |
Environment in which the system is situated |
arch:Folder |
schema:ItemList |
UI/navigation container (non-semantic) |
Key Properties¶
Relationship Properties¶
arch:source/arch:target— Qualified relationship source and target elementsarch:unqualifiedForm— Schema-level mapping from qualified form to unqualified predicatearch:hasQualifiedRelationship— Generic fallback qualified predicatearch:domainIncludes/arch:rangeIncludes— Guidance for modelling tools (not validation constraints). See Domain & Range Guide
Structural Properties¶
arch:partOf/arch:hasPart— Transitive composition/traceability across modelsarch:refines/arch:refinedInto— Traceability between abstraction levelsarch:viewConformsToViewpoint— Links a View to its governing Viewpointarch:modelConformsToMetamodel— Links a Model to its Metamodelarch:exposedInView— Links a ModelConcept to the Views that expose itarch:partOfModel— Links a ModelConcept to its containing Model
Governance Properties¶
arch:conceptOwner— Stakeholder responsible for a concept's governancearch:masterDataSource— Authoritative data source (dcat:Dataset)arch:isAbstract— Distinguishes ABBs (abstract) from SBBs (concrete)arch:basedOnFramework— Links a Metamodel to its source Framework
Quality Measurement Properties¶
arch:hasQualityMeasure— Links anElementto aQualityMeasure(inverse ofmeasuredEntity)arch:measuredEntity— Links aQualityMeasureto theElementit measuresarch:measuredQualityAttribute— Links aQualityMeasureto theQualityAttributeit quantifies
Metamodel Composition Properties¶
arch:modelConcepts— Ontology defining elements and relationshipsarch:architectureViewpoints— Ontology defining viewpointsarch:architectureViewpointsRestrictions— SHACL shapes for viewpoint constraintsarch:formalRules— SHACL rules the model must conform toarch:derivationRules— Rules for deriving new factsarch:conceptClassification— SKOS scheme classifying model conceptsarch:referenceData/arch:referenceModels— Reference data and architecturesarch:standardsInformationBase— Standards, guidelines, best practices
Presentation Properties¶
arch:prefVisNotation/arch:altVisNotation— Visual notation icons (SVG rendered images)arch:presentationContextScheme— Stakeholder-specific presentation themes (SKOS scheme)arch:notationSet— Links a Metamodel to its available NotationSet(s)arch:usesNotationSet— Links a PresentationContext to its appropriate NotationSet
Deliverable Template Properties¶
arch:hasDeliverableTemplate— Links a Metamodel to its DeliverableTemplatesarch:templateRequiresViewpoint— Links a DeliverableTemplate to required Viewpoints (flat list)arch:templateHasSection— Links a DeliverableTemplate to ordered TemplateSection instancesarch:templateHasFormat— Links a DeliverableTemplate to supported PresentationFormatsarch:templateResource— Points to the actual template file/URL for a PresentationFormatarch:generatorCommand— Shell command to produce the rendered output from the knowledge grapharch:sectionViewpoint— Links a TemplateSection to its Viewpointarch:sectionOrder— Ordinal position of a section within its templatearch:deliverableTemplateUsed— Links a Model (deliverable) to the template it was instantiated fromarch:templateTargetsPurpose— Links a DeliverableTemplate to its supported Purpose(s)
Annotation Properties¶
arch:rationale— Justification for a modelling decisionarch:mentionedIn— Reference to where a concept is discussedarch:laKB— Link to Linked.Archi knowledge base
2. Core Viewpoints (core/core-viewpoints.ttl)¶
Namespace: https://meta.linked.archi/core-viewpoints# (prefix: archvp:)
Version: 0.1.0
Status: Draft
Imports: arch:core
Framework-agnostic architecture viewpoints derived from ISO/IEC/IEEE 42010 and common architecture practice. These are universal viewpoints that any modelling language can reference — ArchiMate, TOGAF, C4, or custom metamodels can specialize or reference them.
Purpose Individuals¶
| Individual | Description |
|---|---|
archvp:Deciding |
Evaluating options, making trade-offs, selecting alternatives |
archvp:Designing |
Creating or refining architecture — defining structure and behaviour |
archvp:Informing |
Communicating architecture to stakeholders for understanding and alignment |
archvp:Governing |
Ensuring compliance, enforcing standards, managing change |
Concern Individuals (10)¶
Structure, Behavior, Deployment, Dependencies, Governance, Evolution, Quality, Cost, Integration, Stakeholder Interests — each an instance of arch:Concern.
Viewpoints (12)¶
| Viewpoint | Purpose | View Type | Concerns |
|---|---|---|---|
| Landscape Overview | Informing | Diagram | Structure, Dependencies |
| Component Catalog | Informing, Deciding | Catalog | Structure, Governance |
| Process Flow | Designing | Diagram | Behavior |
| Interface Map | Designing | Diagram | Integration, Dependencies |
| Deployment Map | Designing, Informing | Diagram | Deployment |
| Dependency Matrix | Deciding | Matrix | Dependencies |
| Impact Analysis | Deciding | Diagram, Matrix | Dependencies, Evolution |
| Decision Log | Governing | Catalog | Governance |
| Stakeholder Map | Informing, Deciding | Matrix | Stakeholder Interests |
| Standards Compliance | Governing | Matrix | Governance, Quality |
| Roadmap | Deciding, Informing | Diagram | Evolution |
| Gap Analysis | Deciding | Matrix | Evolution, Cost |
3. Core Deliverable Templates (core/core-deliverable-templates.ttl)¶
Namespace: https://meta.linked.archi/core-deliverable-templates# (prefix: archdt:)
Version: 0.1.0
Status: Draft
Imports: arch:core, archvp:core-viewpoints
Framework-agnostic deliverable templates that define the content structure of common architecture documents. Each template specifies which viewpoints are required as sections — the actual views are created when someone instantiates the template into a concrete deliverable (arch:Model).
The vocabulary classes (arch:DeliverableTemplate, arch:TemplateSection) and properties (arch:templateRequiresViewpoint, arch:templateHasSection, etc.) are defined in the core ontology. This file contains the template instances.
Presentation Formats¶
Instances of arch:PresentationFormat — define the output format for rendering:
| Format | Description |
|---|---|
| Markdown Document | Git-friendly docs (MkDocs, Docusaurus, Jekyll) |
| HTML Report | Standalone interactive page with SVG diagrams |
| PDF Document | Paginated, print-ready for governance and audits |
| Slide Deck | Presentation slides for review boards and briefings |
| Interactive Dashboard | Live dashboard with drill-down from the knowledge graph |
Deliverable Templates¶
| Template | Sections | Purpose |
|---|---|---|
| Architecture Overview Document | Landscape → Stakeholders → Components → Dependencies → Standards | Informing, Governing |
| Solution Design Document | Context → Process → Interface → Deployment → Decisions | Designing |
| Change Impact Assessment | Impact → Dependencies → Gap → Roadmap | Deciding, Governing |
Usage Pattern¶
# Instantiate a template into a concrete deliverable
ex:MyADD a arch:Model ;
arch:deliverableTemplateUsed archdt:ArchitectureOverviewDocument ;
arch:contains ex:LandscapeView, ex:StakeholderView, ex:ComponentView ;
arch:modelHasPurpose archvp:Informing .
ex:LandscapeView a arch:Diagram ;
arch:viewConformsToViewpoint archvp:LandscapeOverview .
4. Diagram Interchange Ontology (core/core-vis-onto.ttl)¶
Namespace: https://meta.linked.archi/core-vis# (prefix: arch-vis:)
Shapes: https://meta.linked.archi/core-vis-shapes# (prefix: archvissh:)
Version: 0.3
Defines the vocabulary for diagram layout, visual properties, and type-level visual notation management. Supports both instance-level diagram rendering (node positions, link routing) and type-level notation definition (default shapes, colours, icons for palette generation).
Node, Link and Point are mutually disjoint (arch-vis:NodeLinkPointDisjoint). arch-vis:label has
rdfs:domain arch-vis:DiagElement, not arch-vis:Node, so an edge's label is attached the same way a shape's
is — a named sequence flow is the ordinary case, not an edge case.
Diagram data needs core-vis-shapes.ttl to be validated at all: neither core-shapes nor any notation's shapes
target a core-vis class. See Validation.
Classes¶
| Class | Description |
|---|---|
arch-vis:DiagElement |
Base class for all diagram elements |
arch-vis:Node |
A positioned element in a diagram |
arch-vis:ContainerNode |
A node that can contain other nodes |
arch-vis:LabelNode |
A text label node |
arch-vis:ArchNode |
A node representing an architecture element |
arch-vis:Link |
A connection between nodes (relationship visualization) |
arch-vis:Point |
A coordinate point |
arch-vis:PointList |
Ordered list of points (for link routing) |
arch-vis:Style |
Visual style (fill, line, font, shape, icon) |
arch-vis:NotationSet |
Named collection of VisualNotation descriptors for a modelling language |
arch-vis:VisualNotation |
Structured visual notation descriptor for a single ModelConcept |
arch-vis:ShapeType |
Enumeration of geometric shapes (RoundedRectangle, Octagon, Ellipse, etc.) |
arch-vis:IconPlacement |
Enumeration of icon positions within a shape (TopRight, Center, etc.) |
arch-vis:RenderingMode |
How shape and icon are composed (ShapeWithBadge, IconCentric, ShapeOnly) |
arch-vis:LineStyle |
Enumeration of line styles for relationships (Solid, Dashed, Dotted) |
arch-vis:Decoration |
Enumeration of endpoint decorations (arrowheads, diamonds, etc.) |
Properties¶
- Bounds:
bounds-x,bounds-y,bounds-w,bounds-h— Node positioning and size - Points:
point-x,point-y— Coordinate values - Links:
source,target,points— Link endpoints and routing - Mapping:
archElement,archRelationship— Links diagram elements to semantic elements - Style (instance):
fillColor,lineColor,fontName,fontSize,fontColor— CSS-style visual properties - Style (structural):
shapeType,iconSymbol,iconPlacement,renderingMode,defaultWidth,defaultHeight— Shape, icon, and rendering approach - Notation:
notationFor,inNotationSet,defaultStyle— Type-level notation management - Relationships:
lineStyle,sourceDecor,targetDecor— Connector visual properties - Context:
view— Links diagram elements to their containing View
Visual Notation Flow¶
The visual notation system connects stakeholder audiences to visual rendering through a chain of linked data:
flowchart TD
PC["PresentationContext<br/>(who is looking)"]
NS["NotationSet<br/>(which visual theme)"]
VN["VisualNotation<br/>(per concept)"]
Style["arch-vis:defaultStyle → Style<br/>(construction recipe)"]
SVG["arch:prefVisNotation → SVG<br/>(rendered image)"]
PC -->|"arch:usesNotationSet"| NS
NS -->|"arch-vis:inNotationSet (inverse query)"| VN
VN --> Style
VN --> SVG
Palette generation algorithm:
- Determine the active PresentationContext (from user role/preference)
- Follow
arch:usesNotationSet→ get the appropriate NotationSet - If no context-specific set, fall back to
arch:notationSeton the Metamodel - Query all
arch-vis:VisualNotationwherearch-vis:inNotationSet= active set - For each, read
arch-vis:notationFor→ the OWL class - Read
arch-vis:defaultStyle→ get shape, colour, icon, dimensions - Group by taxonomy (domain/aspect from the SKOS taxonomy)
- Render the palette
5. Common Taxonomy (core/common-tax.ttl)¶
Namespace: https://meta.linked.archi/core-tax#
A SKOS concept scheme providing a high-level classification of architectural components. Used for navigation, filtering, and visual grouping across metamodels.
Top-Level Concepts¶
ArchComponent— Root concept for all architectural componentsLogicalComponent,PhysicalComponent,BusinessComponentSoftwareComponent,HardwareComponentCloudComponent→SaaSComponent,PaaSComponent,IaaSComponentTechComponent— Technology categoriesCompute,AI_ML,Analytics,Blockchain,ContainersDatabases,DeveloperTools,DevOps,Identity,IntegrationIoT,Networking,Security,Storage,Web, and more
Extensions Overview¶
Extensions are optional modules that extend the core ontology with additional vocabulary for specific architecture concerns. They sit at the same level as core/ and can be composed into any metamodel via owl:imports. Unlike modelling languages (which define complete element/relationship palettes), extensions add cross-cutting capabilities — decision tracking, process governance, quality attributes, tactics, and reference architectures.
Each extension imports arch:core and defines its own classes and properties. Metamodels can import any combination of extensions alongside their modelling language ontology.
arch:core ← ad:arch-decision (decisions, forces, options)
← ap:arch-processes (governance processes, ISO 42020)
← refa:ref-arch (patterns, tactics, reference models)
← qa:quality-attributes (quality attribute individuals)
← tac:tactics (architectural tactics by quality attribute)
6. Architecture Decision Ontology (extensions/arch-decision/)¶
Namespace: https://meta.linked.archi/arch-decision# (prefix: ad:)
Version: 0.0.6
Files: arch-decision-onto.ttl, arch-decision-shapes.ttl
Derived from: Academic research on architecture decision documentation
Authoritative sources:
- Jansen, A. & Bosch, J. (2005) "Software Architecture as a Set of Architectural Design Decisions" — doi:10.1109/WICSA.2005.61
- Kruchten, P. et al. (2009) "Do you really know what you're building?" — doi:10.1007/978-3-540-87879-7_14
- Zimmermann, O. et al. (2015) "Architectural Decision Guidance Across Projects" — doi:10.1016/j.jss.2015.08.054
- MADR — Markdown Any Decision Records
Models the architecture decision-making process, enabling traceability from forces (drivers, requirements, quality attributes) through options to decisions. This extension is the foundation for architecture decision records (ADRs) in the knowledge graph.
When to use: Import this extension when your metamodel needs to capture architecture decisions, their rationale, the forces that influenced them, and the options that were considered. Integrates with the Quality Attributes and Tactics extensions for quality-driven decision making.
Example composition:
ex:MyMetamodel a arch:Metamodel ;
arch:modelConcepts <https://meta.linked.archi/mymodel#>,
<https://meta.linked.archi/arch-decision#> .
Classes¶
| Class | Parent | Description |
|---|---|---|
ad:Decision |
arch:Element |
An architecture decision |
ad:Issue |
arch:Element |
A problem requiring a decision (also: Problem, DecisionRequired) |
ad:Option |
arch:Element |
A candidate option for a decision |
ad:Force |
arch:Element |
An architecture driver/motivation influencing decisions |
ad:Principle |
ad:Force |
Qualitative statement of intent with rationale |
ad:Requirement |
ad:Force |
A requirement driving decisions |
ad:FunctionalRequirement |
ad:Requirement |
Functional requirement |
ad:QualityAttributeRequirement |
ad:Requirement |
Quality attribute requirement (with QAS properties) |
ad:DecisionState |
owl:Class |
Lifecycle state of a decision record — ad:Proposed, ad:Accepted, ad:Rejected, ad:Deprecated, ad:Superseded |
Quality attribute individuals themselves live outside this extension — ad:onQualityAttribute ranges over arch:QualityAttribute, populated by the Quality Attributes extension or an ISO 25010 alignment.
Key Properties¶
ad:qualityAttributeMatch— Links a tactic or requirement to a quality attributead:qasDescription,ad:qasSourceOfStimulus,ad:qasStimulus,ad:qasEnvironment,ad:qasArtifact— Quality Attribute Scenario properties
Validation¶
Shapes namespace: https://meta.linked.archi/arch-decision-shapes# (prefix: adsh:)
arch-decision-shapes.ttl carries the constraints the ontology deliberately leaves out of OWL, per DD-2 and DD-23:
| Shape | What it enforces |
|---|---|
adsh:DecisionShape |
At most one ad:decisionState, drawn from the five published individuals; single selected option; typed links to Issue, Option and Decision |
adsh:AcceptedDecisionSelectionShape |
An ad:Accepted decision that records candidates with ad:hasAlternative names the one it chose. Silent on a record with no candidates — a lifted document-based ADR has its options in prose (DD-26) |
adsh:AcceptedDecisionRationaleShape |
An ad:Accepted decision records rationale, inline or by document reference |
adsh:SupersededDecisionShape |
An ad:Superseded decision names its replacement — otherwise use ad:Deprecated |
adsh:DecisionStateShape |
Every state individual carries a label and a definition |
adsh:IssueShape, adsh:OptionShape, adsh:ForceShape, adsh:RequirementShape |
Labels, single-valued measures, and stakeholder links |
adsh:QualityAttributeRequirementShape |
Names a quality attribute and expresses the full QAS six-tuple |
Run it with:
The profile validates the ontology together with examples/extensions/decisions-example.ttl, so the example doubles as the conformance fixture. Constraints marked sh:Warning flag incomplete but well-formed records; note that RDF4J's ShaclSail does not distinguish severities and fails on both.
Design Rationale¶
The ad:Issue class represents any problem needing a decision. It can map to abstract components where concrete implementation is needed, or to issues in tracking software. The ad:Force name was chosen over "Driver" or "Motivation" because it is more generic and avoids collision with ArchiMate's Driver concept.
7. Architecture Processes Extension (extensions/processes/archProcesses.ttl)¶
Modelling guide: Processes Modelling Guide
Namespace: https://meta.linked.archi/arch-processes# (prefix: ap:)
Version: 0.1.0
Derived from:
- ISO/IEC/IEEE 42020:2019 — Architecture processes
- ISO/IEC/IEEE 12207:2017 — Software lifecycle processes
- ISO/IEC/IEEE 15288:2023 — System lifecycle processes
Extension ontology describing architecture governance processes, activities, tasks, and their inputs/outputs. Process concepts are not subclasses of arch:Element — they are governance infrastructure that acts upon architecture elements from the outside. Architecture elements relate to processes via linking properties (ap:governs, ap:governedBy, ap:input, ap:output, ap:consumedBy).
The extension references the ISO standard vocabularies (under standards/) via rdfs:seeAlso for traceability to normative definitions, while providing the descriptive vocabulary needed for architecture governance work.
When to use: Import this extension when you need to describe architecture governance processes — what activities are performed, what inputs they consume, what outputs they produce, and who is responsible. Useful for TOGAF ADM alignment, ISO 42020 compliance, and architecture maturity assessments.
Classes¶
| Class | Parent | Description |
|---|---|---|
ap:ArchitectureProcess |
(standalone) | A process within the architecture governance or lifecycle framework |
ap:ProcessActivity |
(standalone) | A cohesive set of tasks within a process |
ap:ProcessTask |
(standalone) | A specific action or work item within an activity |
ap:ProcessDeliverable |
(standalone) | A required output of a process delivered to a stakeholder |
ap:InformationItem |
ap:ProcessDeliverable |
A body of information produced or consumed by a process |
ap:ProcessMilestone |
(standalone) | A significant checkpoint or gate in a process |
ap:ProcessRole |
arch:Stakeholder |
A role that a stakeholder plays within a process |
ap:LifecycleStage |
skos:Concept |
A distinct phase in the lifecycle of a system, application, or service |
ap:LifecycleModel |
(standalone) | A named collection of lifecycle stages defining a complete progression |
Key Properties¶
ap:governs/ap:governedBy— Process ↔ Element governance linksap:hasActivity/ap:activityOfProcess— Process ↔ Activity decompositionap:hasTask/ap:taskOfActivity— Activity ↔ Task decompositionap:hasSubProcess— Hierarchical process decompositionap:input/ap:output— Process inputs and outputs (InformationItem, Model, Force, Decision)ap:producedBy/ap:consumedBy— Deliverable ↔ Process linksap:responsibleFor/ap:performedBy/ap:approvedBy— Role assignmentsap:precedes/ap:follows— Sequencing of process elementsap:triggeredBy— Event or condition that triggers a processap:hasStage/ap:partOfLifecycle— LifecycleModel ↔ LifecycleStage linksap:atLifecycleStage/ap:followsLifecycle— Element ↔ stage and ↔ model assignmentap:stageOrder— Numeric ordering of stages within a modelap:nextStage/ap:previousStage— Explicit stage sequencing
Canonical Lifecycle Stages¶
The extension defines the shared, notation-agnostic stage set as instances of ap:LifecycleStage, grouped by ap:ApplicationLifecycle. Lifecycle stages live here rather than in any modeling language's reference data because nothing about them derives from a notation — versioning them per notation release would attach a version axis with no source.
| Stage | Order | ISO 12207 | TIME |
|---|---|---|---|
ap:Plan |
1 | closeMatch ConceptStage |
closeMatch timefw:Plan |
ap:PhaseIn |
2 | broadMatch of Development, Production |
closeMatch timefw:Build |
ap:Active |
3 | closeMatch UtilizationStage |
closeMatch timefw:Run |
ap:PhaseOut |
4 | narrowMatch of RetirementStage |
narrowMatch of timefw:Retire |
ap:Retired |
5 | narrowMatch of RetirementStage |
narrowMatch of timefw:Retire |
Mappings are asserted from the ISO 12207 and TIME files, which already import this extension, so the dependency direction stays consistent. ap:PhaseOut and ap:Retired are deliberately distinct where ISO 12207 and TIME each collapse withdrawal into a single stage.
Lifecycle stage is orthogonal to two neighbouring vocabularies: arch:ArchitectureState (baseline / target / transitional) classifies which temporal reality a model describes, and arch:ApprovalState (arch:Proposed, arch:Approved) classifies governance standing. An application can be arch:Approved and ap:Retired at the same time.
SHACL Shapes (arch-processes-shapes.ttl)¶
Namespace: https://meta.linked.archi/arch-processes-shapes# (prefix: apsh:)
Supplies the constraint DD-23 requires but which the ontology deliberately leaves out of OWL:
| Shape | Target | Enforces |
|---|---|---|
apsh:LifecycleStageAssignmentShape |
subjects of ap:atLifecycleStage |
At most one current stage, value must be an IRI typed ap:LifecycleStage |
apsh:LifecycleStageShape |
ap:LifecycleStage |
Language-tagged label, single 1-based ap:stageOrder, single ap:nextStage; warns when a stage belongs to no model |
apsh:LifecycleModelShape |
ap:LifecycleModel |
Language-tagged label, at least one ap:hasStage |
apsh:CanonicalLifecycleStageShape |
(none — opt-in) | Closes the value set to the five canonical stages |
apsh:CanonicalLifecycleStageShape has no sh:target* by design, so it never fires on its own. The ISO 12207 stage model, the TIME framework states, and organisation-specific progressions are all legitimate alternatives; closing the vocabulary globally would report every one of them as a violation. Reference it via sh:node where your governance process requires the canonical set:
ex:ApplicationShape
a sh:NodeShape ;
sh:targetClass am4:ApplicationComponent ;
sh:property [
sh:path ap:atLifecycleStage ;
sh:node apsh:CanonicalLifecycleStageShape ;
] .
Validate with .scripts/validate.sh --shacl arch-processes.
8. Reference Architecture Ontology (extensions/ref-arch/refArch.ttl)¶
Namespace: https://meta.linked.archi/ref-arch# (prefix: refa:)
Version: 0.0.5
Authoritative sources:
- Bass, L., Clements, P. & Kazman, R. — "Software Architecture in Practice" (4th ed., Addison-Wesley)
- Clements, P. et al. — "Documenting Software Architectures" (2nd ed., Addison-Wesley)
- SEI/CMU Software Architecture
Defines concepts for reference architectures, reference models, patterns, and tactics — the reusable building blocks of architecture. This extension provides the vocabulary for capturing architectural knowledge that transcends individual projects.
When to use: Import this extension when your metamodel needs to reference patterns (Layered, Microservices, Event-Driven), tactics (availability, security, performance), or reference architectures (BIAN, TM Forum). The Tactics extension (tac:) builds on this.
Classes¶
| Class | Parent | Description |
|---|---|---|
refa:ReferenceArchitecture |
arch:Model |
Abstract architectural elements independent of specific technologies |
refa:ReferenceModel |
arch:Metamodel |
Abstract framework for understanding relationships in a domain |
refa:Pattern |
arch:Model |
General, reusable solution to a commonly occurring problem |
refa:Tactic |
arch:Element |
Design decision that influences a quality attribute response |
Design Rationale¶
ReferenceModel as subclass of Metamodel: Reference models contain abstract concepts defined as classes. While they may contain individuals (universals or abstract tropes), the primary content is type-level. When used for derivation, prov:wasDerivedFrom should reference the original concept.
Pattern as subclass of Model: Patterns are composed of participants that can be any ModelConcept. Patterns are characterized as packages of design decisions (tactics), discovered in practice rather than invented, and categorized by dominant element type (Module, Integration, Deployment).
9. ArchiMate Ontology (modelingLanguages/archimate/)¶
Namespace: https://meta.linked.archi/archimate3/onto# (prefix: am:)
Qualified namespace: https://meta.linked.archi/archimate3/onto# (prefix: am:)
Version: 3.2.0
Derived from: ArchiMate 3.1 Specification (The Open Group)
License: CC BY 4.0
A complete OWL mapping of the ArchiMate modelling language using the three-declaration qualified relationship pattern and RDF 1.2 rdf:reifies. This is not an official Open Group document.
Files¶
| File | Version | Content |
|---|---|---|
archimate3.2-onto.ttl |
3.2.0 | Current. Elements + relationships (three-declaration pattern) |
archimate3.2-metamodel.ttl |
3.2.0 | Metamodel manifest — ties together all ArchiMate resources via arch:Metamodel composition properties |
archimate3.2-viewpoint-shapes.ttl |
3.2.0 | SHACL shapes — viewpoint conformance (element/type/relationship checks) |
archimate3.2-deliverable-templates.ttl |
3.2.0 | ArchiMate-specific deliverable templates (ADD, Requirements Spec, Principles Doc) |
archimate3.2-reference-data.ttl |
3.2.0 | Reference data — environment types, criticality levels. Lifecycle stages live in ap: as ap:LifecycleStage instances; approval states in arch:ApprovalState |
archimate3.2-reference-models.ttl |
3.2.0 | Reference models — architecture patterns, industry reference models |
archimate3.2-presentation-contexts.ttl |
3.2.0 | Presentation contexts — stakeholder-specific rendering themes |
archimate3.2-tax.ttl |
3.2.0 | SKOS taxonomy — elements by layer, by aspect; relationships by category |
archimate3.2-relationship-shapes.ttl |
3.2.0 | SHACL shapes — per-relationship-type domain/range constraints (imports core-shapes) |
archimate3.2-element-shapes.ttl |
3.2.0 | SHACL shapes — element/metamodel pattern constraints (24 shapes, SPARQL-based) |
archimate3.2-derivation-rules.ttl |
3.2.0 | SHACL Rules — derivation rules DR1-DR8 + PDR1-PDR12 from Appendix B |
abstracts/archimate3.2-abstracts.ttl |
3.2.0 | Removed. Abstract classes now live in archimate3.2-onto.ttl. Generated visualizations in .generated/archimate/. |
archimate3.1-onto.ttl |
3.1.0 | Prior version — elements only, no relationships |
archimate3-onto.ttl |
3.0.0 | Deprecated. Uses removed arch:Relationship, punning, rdfs:label |
archimate3.1-tax.ttl |
3.1 | Prior taxonomy |
archimate3.1-inf.ttl |
3.1 | Inference rules |
Element Classes (62 elements across layers)¶
Motivation: Stakeholder, Driver, Assessment, Goal, Outcome, Principle, Requirement, Constraint, Meaning, Value
Strategy: Resource, Capability, Value Stream, Course of Action
Business: Business Actor, Business Role, Business Collaboration, Business Interface, Business Process, Business Function, Business Interaction, Business Event, Business Service, Business Object, Contract, Representation, Product
Application: Application Component, Application Collaboration, Application Interface, Application Function, Application Interaction, Application Process, Application Event, Application Service, Data Object
Technology: Node, Device, System Software, Technology Collaboration, Technology Interface, Path, Communication Network, Technology Function, Technology Process, Technology Interaction, Technology Event, Technology Service, Artifact
Physical: Equipment, Facility, Distribution Network, Material
Implementation & Migration: Work Package, Deliverable, Implementation Event, Plateau, Gap
Composite: Grouping, Location
Connectors: And Junction, Or Junction
Relationship Types (11 types, three declarations each)¶
| Category | Type | Unqualified Predicate | Qualified Class |
|---|---|---|---|
| Structural | Composition | am:composedOf |
am:Composition |
| Structural | Aggregation | am:aggregates |
am:Aggregation |
| Structural | Assignment | am:assignedTo |
am:Assignment |
| Structural | Realization | am:realizes |
am:Realization |
| Dependency | Serving | am:serves |
am:Serving |
| Dependency | Access | am:accesses |
am:Access |
| Dependency | Influence | am:influences |
am:Influence |
| Dynamic | Triggering | am:triggers |
am:Triggering |
| Dynamic | Flow | am:flowsTo |
am:Flow |
| Other | Specialization | am:specializes |
am:Specialization |
| Other | Association | am:associatedWith |
am:Association |
Access has am:accessType (Read/Write/ReadWrite/Access). Influence has am:influenceStrength (+/++/-/--).
Taxonomy Organization¶
Elements are classified along two dimensions via SKOS: - By Layer — Strategy, Business, Application, Technology, Physical, Implementation & Migration - By Aspect — Active Structure (internal/external), Passive Structure, Behavior (internal/external/events), Motivation, Composite, Strategy - By Relationship Category — Structural, Dependency, Dynamic, Other
SHACL Validation¶
The shapes file (archimate3.2-relationship-shapes.ttl) is generated from archimate-relationships-matrix.xml
(sourced from the Archi tool, MIT licence) using .scripts/generate-archimate-shapes.py. It
contains two sets of pure SHACL core shapes (no SPARQL):
- Qualified shapes (11): Validate
QualifiedRelationshipinstances — exact source-target pair validation usingsh:or+sh:and - Unqualified shapes (62): Validate direct triples — one shape per source element class
with
sh:propertyconstraints per predicate
Access and Influence shapes also validate their attribute properties (accessType, influenceStrength).
Derivation Rules¶
The derivation rules file (archimate3.2-derivation-rules.ttl) implements ArchiMate Appendix B
using SHACL Rules (sh:SPARQLRule with sh:construct). Two confidence levels:
- Valid (DR1-DR8): Definitely correct per the spec. Covers specialization transitivity, structural chains (weakest-wins), structural+dependency combinations, structural+dynamic combinations, and triggering transitivity.
- Potential (PDR1-PDR12): Possibly correct, needs review. Covers specialization inheritance (forward/reverse/source/target), structural+dependency at source, dependency chains (weakest-wins), flow+structural, flow transitivity, and grouping element derivation.
Relationship strength determines the result when combining: - Structural: composition(4) > aggregation(3) > assignment(2) > realization(1) - Dependency: serving(4) > access(3) > influence(2) > association(1)
Derived triples are annotated with RDF 1.2 reification metadata: amderiv:derivationCertainty
(:Valid or :Potential), prov:wasGeneratedBy (named prov:Activity individuals for each rule),
and prov:wasDerivedFrom (the source relationships) for provenance tracking.
Validate with: .scripts/validate.sh --shacl archimate-derived
10. Backstage Ontology (modelingLanguages/backstage/)¶
Namespace: https://meta.linked.archi/backstage/onto# (prefix: bs:)
Qualified namespace: https://meta.linked.archi/backstage/onto# (prefix: bs:)
Version: 0.5.0
Imports: arch:core
License: CC BY 4.0 (modelling work only — quoted definitions remain © the Backstage Project Authors under Apache-2.0, per dcterms:rightsHolder/dcterms:rights on the header)
Maps the Backstage developer portal catalogue model to the Linked.Archi core ontology, enabling integration of service catalogues into the architecture knowledge graph.
Scope — read this before concluding a term is missing¶
The ontology header carries a skos:editorialNote headed SCOPE STATEMENT. It is the authoritative list
of what the document covers and what it deliberately does not, and it exists because converters are expected
not to mint terms in the bs: namespace — a rule that only works if a deliberate omission is
distinguishable from an oversight. The history notes accumulate per release and cannot serve that purpose.
In scope: eight of the descriptor format's nine kinds, the envelope, the reserved metadata fields, the
well-known relations, the well-known annotations, the spec.type and state vocabularies, and
status.items.
Deliberately out of scope, each with its reasoning and an alternative in the statement itself:
| Not modelled | Why, in short | What to do instead |
|---|---|---|
The Location kind |
Ingestion configuration, not a node in an architecture | bs:managedByLocation / bs:managedByOriginLocation already retain the reference on the entities a location produced; drop Location entities and report the count |
spec.parameters, spec.steps on a Template |
Unbounded plugin-defined JSON; the template's implementation, not an architectural fact | Declare a predicate you own |
status.items[].error |
Shape not fixed upstream; a stack trace is a debugging artifact | The item's type, level and message are published |
Per-key labels / annotations predicates |
Open key spaces organisations define | Per-key subproperty of bs:label / bs:externalIdentifier in your own namespace |
Files¶
| File | Content |
|---|---|
backstage-onto.ttl |
Elements, relationships (three-declaration pattern), and value vocabularies (named individuals, DD-23) |
backstage-metamodel.ttl |
Metamodel manifest — ties together all Backstage resources; restates the kind coverage decision |
backstage-shapes.ttl |
SHACL shapes — per-relationship-type constraints, entity identity, naming, status items, kind-specific property placement, vocabulary closure (imports core-shapes) |
backstage-tax.ttl |
SKOS taxonomy — software entities vs organizational entities |
backstage-notation.ttl |
Visual notation set — one descriptor per element class (no relationship notation yet) |
backstage-viewpoints.ttl |
7 viewpoints (ServiceCatalog, SystemDependency, APIDependency, OwnershipMatrix, DomainOverview, OrganizationStructure, LifecyclePortfolio) |
backstage-deliverable-templates.ttl |
Deliverable templates — Service Catalog Document, System Architecture Document, Organization Structure Document |
backstage-reference-data.ttl |
Cross-module correspondences only (e.g. lifecycle ↔ Architecture Processes stages via skos:closeMatch) |
backstage-presentation-contexts.ttl |
Presentation contexts — Developer, Platform Engineer, Engineering Manager |
Classes¶
Each class carries skos:notation with its exact descriptor-format kind token, publishing the
token→class map a lift needs. Tokens are title-case, unlike the lowercase spec.type tokens on the value
vocabularies. The map is a default, not an identity: rdf:type and the retained bs:kind are both
recorded and may legitimately diverge.
| Class | Parent | skos:notation |
Description |
|---|---|---|---|
bs:Component |
arch:Element |
Component |
Deployable unit, service, library, or application |
bs:System |
arch:Element |
System |
Set of components providing business/technical value |
bs:API |
arch:Element |
API |
An API in the ecosystem |
bs:Resource |
arch:Element |
Resource |
Resource used by components (database, bucket, etc.) |
bs:Domain |
arch:Element |
Domain |
High-level business domain grouping |
bs:User |
arch:Element |
User |
Human user |
bs:Group |
arch:Element |
Group |
Group of users (team, department) |
bs:Template |
arch:Element |
Template |
Scaffolder template — the parameters and steps used to create a component |
Two published classes are not arch:Element, deliberately: bs:Link and bs:StatusItem. A hyperlink and
an ingestion diagnostic are metadata about a node rather than nodes, so neither appears in a viewpoint,
neither carries a naming or identity obligation, and neither has a visual notation.
bs:Template is the one class the catalog model does not own — the scaffolder plugin does, and versions it
separately on scaffolder.backstage.io/v1beta3 against backstage.io/v1alpha1 for the other seven. That is
why bs:apiVersion is retained per entity rather than assumed constant across a catalogue.
Sources — rendered docs and repository, and which one wins¶
Every term cites the rendered page at backstage.io and, where a machine-readable artifact exists, the file in github.com/backstage/backstage that defines it:
| Artifact | Covers |
|---|---|
packages/catalog-model/src/schema |
Entity, EntityEnvelope, EntityMeta, and one schema per catalog kind |
plugins/scaffolder-common/src/Template.v1beta3.schema.json |
Template — not a catalog-model kind |
docs/features/software-catalog |
Markdown source of the rendered pages |
The two are not redundant. The rendered page is the human account and carries the section anchors
dcterms:source points at; the repository file is what the catalogue actually enforces. Where they
disagree the schema is authoritative, and the divergence is recorded on the term.
There is one such divergence today, and finding it is why the convention was adopted rather than assumed:
the descriptor format page documents Template as backstage.io/v1beta2 and does not mention its
spec.lifecycle; the schema admits only scaffolder.backstage.io/v1beta3 and declares spec.lifecycle.
Modelling from the rendered page alone would have published a version string the scaffolder rejects and
dropped a field real templates carry.
Entity Identity¶
The identity fields are retained source data (DD-24), read from the descriptor rather than computed.
| Property | Role |
|---|---|
rdf:type |
How this graph classifies the entity — a modelling decision, revisable. Drives sh:targetClass/sh:class and the rdfs:subClassOf closure. |
bs:apiVersion |
The descriptor schema version the entity declared. maxCount 1, not required. Worth keeping per entity because Template is on scaffolder.backstage.io/v1beta3 while the rest are on backstage.io/v1alpha1. |
bs:kind |
What the catalogue said (kind root field), title-case. Not a duplicate of rdf:type and not derived from it; divergence is reported at sh:Info by bssh:KindTypeAlignmentShape. maxCount 1, not required — a natively authored model has no descriptor to retain. |
bs:name |
metadata.name. Required (Violation), maxCount 1. Half the entity reference; the cross-source join key. |
bs:namespace |
metadata.namespace. Absent means "default"; a lift should materialise it (Warning if missing). |
bs:entityRef |
The compact kind:namespace/name reference the catalogue circulates in relations, spec.owner, spec.system, spec.dependsOn and the techdocs-entity annotation. Under dcterms:identifier. bssh:EntityRefConsistencyShape checks it against bs:kind/bs:namespace/bs:name — not against rdf:type. |
bs:uid |
Catalog-assigned, output-only, not stable across re-registration. Provenance only; never a join key or IRI source. |
Relationship Types (13 types, three declarations each)¶
| Type | Unqualified Predicate | Qualified Class |
|---|---|---|
| Ownership | bs:ownedBy |
bs:Ownership |
| System Membership | bs:partOfSystem |
bs:SystemMembership |
| API Provision | bs:providesAPI |
bs:APIProvision |
| API Consumption | bs:consumesAPI |
bs:APIConsumption |
| Dependency | bs:dependsOn |
bs:Dependency |
| Resource Usage | bs:usesResource (subproperty of bs:dependsOn) |
bs:ResourceUsage |
| Domain Membership | bs:belongsToDomain |
bs:DomainMembership |
| Group Membership | bs:memberOf |
bs:GroupMembership |
| Group Parentage | bs:childOf |
bs:GroupParentage |
| Component Composition | bs:subcomponentOf |
bs:ComponentComposition |
| Domain Hierarchy | bs:subdomainOf |
bs:DomainHierarchy |
| TechDocs Delegation | bs:techdocsDelegatedTo |
bs:TechDocsDelegation |
| Scaffolding | bs:scaffoldedFrom |
bs:Scaffolding |
bs:scaffoldedFrom runs from the created entity to the bs:Template, lifted from
backstage.io/source-template. The annotation literal stays on bs:sourceTemplate alongside the edge rather
than being replaced by it — same division as bs:kind against rdf:type. Where the pull did not include the
template, keep the literal and assert no edge; the absent edge then means unresolved rather than not
scaffolded, and "which entities came from no approved template" becomes answerable.
Entity Status¶
status is read-only — descriptor files must not contain it, so items only appear in a lift of the catalog
API. One node per item, because a level and a message flattened onto the entity lose which belongs to which,
and the specification is explicit that several systems contribute items independently.
| Term | Role |
|---|---|
bs:StatusItem |
One entry in an entity's status. Not an arch:Element. |
bs:hasStatusItem |
Entity → item. Multi-valued. |
bs:statusType |
Which system contributed the item, e.g. backstage.io/catalog-processing. A literal, not a vocabulary: it identifies a source, the set is open, and every plugin extends it. Required on an item. |
bs:statusLevel |
→ bs:InfoLevel / bs:WarningLevel / bs:ErrorLevel. Closed at Violation. Level suffix because the bare tokens collide with SHACL severities. |
bs:statusMessage |
Human-readable, not language-tagged (the catalogue emits no locale). Do not parse it. |
Read an error item the right way round: where the type is backstage.io/catalog-processing, an error means
the catalogue could not ingest the source and has deliberately kept the last version that did. The item
says the record beside it is stale, not that the record is wrong.
Value Vocabularies (9, named individuals — DD-23, no owl:oneOf)¶
| Vocabulary | Property | Individuals |
|---|---|---|
bs:LifecycleState |
bs:lifecycleState |
bs:Experimental, bs:Production, bs:DeprecatedState — on Component, API and Template |
bs:ApiVisibility |
bs:apiVisibility |
bs:Public, bs:Restricted, bs:Private |
bs:StatusLevel |
bs:statusLevel |
bs:InfoLevel, bs:WarningLevel, bs:ErrorLevel — closed (Violation) |
bs:ComponentType |
bs:componentType |
bs:ServiceType, bs:WebsiteType, bs:LibraryType |
bs:APIType |
bs:apiType |
bs:OpenAPI, bs:AsyncAPI, bs:GraphQL, bs:GRPC |
bs:ResourceType |
bs:resourceType |
bs:DatabaseResourceType, bs:S3BucketResourceType, bs:KubernetesClusterResourceType |
bs:GroupType |
bs:groupType |
bs:TeamGroupType, bs:BusinessUnitGroupType, bs:ProductAreaGroupType, bs:RootGroupType |
bs:SystemType |
bs:systemType |
bs:ProductSystemType, bs:ServiceSystemType, bs:FeatureSetSystemType |
bs:DomainType |
bs:domainType |
bs:ProductAreaDomainType, bs:ProductGroupDomainType, bs:BundleDomainType |
bs:componentType serves two kinds. On a Component it describes the component; on a Template it describes
the component the template creates — the descriptor format defines a template's spec.type that way and
says it should match the created component's own type, so one vocabulary is used from both ends. A query
joining the two has to say which end it means.
bs:lifecycle (a plain xsd:string) is owl:deprecated as of 0.3.0, superseded by bs:lifecycleState.
Labels — the intended pattern¶
bs:label is an abstract super-property, and the pattern is one predicate per label key, in the reader's
own namespace, parented on it:
acme:tier a owl:DatatypeProperty ; rdfs:subPropertyOf bs:label .
ex:payment-processor acme:tier "gold" .
That keeps "every label on this entity" a one-triple query (?e bs:label ?v) while giving each key something
specific to query. A reified Label node with labelKey/labelValue is explicitly not the pattern — a
label is one scalar under one key, so the key is the predicate and a node would add a hop carrying nothing.
Reification is reserved for the positional structures, bs:Link and bs:StatusItem.
No shape enforces this, and the reason is worth knowing: acme:tier rdfs:subPropertyOf bs:label makes every
correct per-key assertion entail a bs:label triple, so a shape reporting subjects of bs:label would pass
on the malformed graph a validator ran without inference and fail on the well-formed one it ran with. The same
applies to bs:externalIdentifier.
11a. C4 Model Ontology (modelingLanguages/c4/)¶
Namespace: https://meta.linked.archi/c4/onto# (prefix: c4:)
Qualified namespace: https://meta.linked.archi/c4/onto# (prefix: c4:)
Version: 0.2.0
Imports: arch:core
License: CC BY 4.0
An RDF/OWL ontology for C4 model and Structurizr elements and relationships.
Files¶
| File | Content |
|---|---|
c4-onto.ttl |
Elements + relationships (three-declaration pattern) |
c4-metamodel.ttl |
Metamodel manifest — ties together all C4 resources |
c4-shapes.ttl |
SHACL shapes — per-relationship-type constraints (imports core-shapes) |
c4-tax.ttl |
SKOS taxonomy — elements by abstraction level |
c4-viewpoints.ttl |
7 C4 viewpoints (4 core levels + 3 supplementary) with SKOS catalogue |
c4-deliverable-templates.ttl |
Deliverable templates — System Overview, Component Design |
c4-reference-data.ttl |
Reference data — container technologies, deployment environments |
c4-presentation-contexts.ttl |
Presentation contexts — Product Owner, Dev Team, Platform Team |
Classes¶
| Class | Parent | Description |
|---|---|---|
c4:Person |
arch:Element |
A person who uses the software system |
c4:SoftwareSystem |
arch:Element |
A software system in the C4 model |
c4:Container |
arch:Element |
A container (application, service, database) within a software system |
c4:Component |
arch:Element |
A component (code-level module) within a container |
c4:DeploymentNode |
arch:Element |
Physical or virtual infrastructure element |
c4:InfrastructureNode |
c4:DeploymentNode |
Specific infrastructure node (database server, load balancer) |
Relationship Types (4 types, three declarations each)¶
| Type | Unqualified Predicate | Qualified Class |
|---|---|---|
| Using | c4:uses |
c4:Using |
| Container Containment | c4:hasContainer |
c4:ContainerContainment |
| Component Containment | c4:hasComponent |
c4:ComponentContainment |
| Deployment | c4:deployedOn |
c4:Deployment |
11b. LeanIX Meta Model (modelingLanguages/leanIX/)¶
Namespace: https://meta.linked.archi/leanix/onto# (prefix: lmm:)
Qualified namespace: https://meta.linked.archi/leanix/onto# (prefix: lmm:)
License: CC BY 4.0
Ontology representations of the SAP LeanIX Meta Model fact sheets and relations.
Files¶
| File | Version | Content |
|---|---|---|
leanIX-v4-onto.ttl |
4.0.0 | Current. v4 fact sheet types, 16 relationship types (three-declaration pattern) and the fact sheet attributes |
leanIX-metamodel.ttl |
0.1.0 | v4 metamodel manifest, and the home of the version-free lmmmm:LeanIXFramework |
leanIX-v3-metamodel.ttl |
0.1.0 | v3 metamodel manifest — what a v3-shaped workspace conforms to |
leanIX-shapes.ttl |
0.1.0 | Fact sheet naming for both namespaces, v4 attribute value sets, and one endpoint shape per relationship type |
leanIX-viewpoints.ttl |
0.1.0 | 5 viewpoints (ApplicationPortfolio, TechnologyLandscape, InterfaceMap, CapabilityMap, TransformationRoadmap) |
leanIX-tax.ttl |
0.1.0 | SKOS taxonomy — fact sheets by architecture layer (Strategy, Business, App & Data, Technical) |
leanIX-notation.ttl |
0.1.0 | Default element and relationship appearance |
leanIX-deliverable-templates.ttl |
0.1.0 | Application portfolio report, transformation plan document |
leanIX-v3-onto.ttl |
3 | Prior version — v3 fact sheet types, elements only |
Both meta model versions point arch:basedOnFramework at the single lmmmm:LeanIXFramework
individual in leanIX-metamodel.ttl, which carries no version in its IRI or its label, per
DD-25. The version lives on
the arch:Metamodel individual — owl:versionInfo "4" on lmmmm:LeanIXv4, "3" on
lmm3mm:LeanIXv3.
v4 Fact Sheet Types¶
Strategy & Transformation: Objective, Initiative
Business: Business Capability, Organization (+ Organization Unit subtype), Business Context (+ Product, Value Stream, Process subtypes)
Application & Data: Application (+ Business Application, Deployment, Microservice subtypes), Interface, Data Object
Technical: IT Component, Tech Category, Platform, Provider
Optional: System
v4 Relationship Types (16 types, three declarations each)¶
| Type | Unqualified Predicate | Qualified Class | Domain → Range |
|---|---|---|---|
| Supporting | lmm:supports |
lmm:Supporting |
Application → BusinessCapability |
| Requiring | lmm:requires |
lmm:Requiring |
Application → ITComponent |
| Interface Ownership | lmm:hasInterface |
lmm:InterfaceOwnership |
Application (provider) → Interface |
| Interface Consumption | lmm:consumesInterface |
lmm:InterfaceConsumption |
Application (consumer) → Interface |
| Data Usage | lmm:usesData |
lmm:DataUsage |
Application, Interface → DataObject |
| Impact | lmm:impacts |
lmm:Impact |
Initiative → Application, Platform |
| Driving | lmm:drives |
lmm:Driving |
Objective → Initiative |
| Organizational Usage | lmm:usedByOrg |
lmm:OrganizationalUsage |
Organization → Application |
| Provision | lmm:providedBy |
lmm:Provision |
ITComponent → Provider |
| Categorization | lmm:categorizedBy |
lmm:Categorization |
ITComponent → TechCategory |
| Fact Sheet Hierarchy | lmm:parentOf |
lmm:FactSheetHierarchy |
FactSheet → FactSheet (same type) |
| Platform Membership | lmm:partOfPlatform |
lmm:PlatformMembership |
Application, BusinessCapability, ITComponent → Platform |
| Context Support | lmm:supportsContext |
lmm:ContextSupport |
Application → BusinessContext |
| Context Realization | lmm:contextRealizes |
lmm:ContextRealization |
BusinessContext → BusinessCapability |
| Capability Targeting | lmm:targetsCapability |
lmm:CapabilityTargeting |
Objective → BusinessCapability |
| System Composition | lmm:composedOf |
lmm:SystemComposition |
System → Application, ITComponent |
The last five carry a skos:editorialNote recording that the name is this ontology's, not SAP's: the
modeling guidelines describe these relations in prose — a Platform groups capabilities, applications
and technologies — without naming them the way they name relToParent. The existence is sourced; the
term is not.
Each of the sixteen has an endpoint shape in leanIX-shapes.ttl turning its declared ends into a
check, since arch:domainIncludes is advisory by construction (DD-8) and core-shapes only asks that
both ends be some arch:ModelConcept — which leaves a lmm:Provision between two Applications
passing clean.
Interface provision and interface consumption are separate relationships because LeanIX gives an
interface one provider and any number of consumers, and an integration map is unreadable without
that asymmetry. lmm:parentOf covers relToParent/relToChild, the only structural relation in
the meta model and the one a capability breakdown is made of; it runs parent → child, and emitting
skos:broader from child to parent alongside it gives SKOS-aware consumers the tree for free.
v4 Fact Sheet Attributes¶
| LeanIX | Term | Value |
|---|---|---|
id |
skos:notation |
the workspace's own identifier |
displayName |
skos:prefLabel |
language-tagged (DD-24) |
name |
skos:altLabel |
|
description |
skos:definition |
|
type |
dcterms:type |
verbatim token, retained source data |
createdAt / updatedAt |
dcterms:created / dcterms:modified |
|
status |
lmm:factSheetStatus |
lmm:StatusActive, lmm:StatusArchived, lmm:StatusBroken |
completion |
lmm:completion |
xsd:decimal between 0 and 1 |
lifecycle.asString |
ap:atLifecycleStage |
an ap:LifecycleStage |
lifecycle.phases[] |
lmm:hasLifecyclePhase → lmm:LifecyclePhase |
ap:atLifecycleStage plus lmm:phaseStart |
subscriptions[] |
lmm:hasSubscription → lmm:Subscription |
lmm:subscriber (an arch:Stakeholder), lmm:subscriberEmail, lmm:subscriptionType, lmm:subscriptionRole |
tags[] |
lmm:hasTag → lmm:Tag |
lmm:tagName, lmm:tagGroup |
| workspace-defined fields | none | per-tenant by definition — use a namespace you own |
ex:app-1
a lmm:Application ;
skos:prefLabel "Payments Platform"@en ;
skos:notation "0a1b2c3d" ;
lmm:factSheetStatus lmm:StatusActive ;
lmm:completion 0.8 ;
ap:atLifecycleStage ap:Active ;
lmm:hasLifecyclePhase ex:app-1-active ;
lmm:hasSubscription ex:sub-1 .
ex:app-1-active
a lmm:LifecyclePhase ;
ap:atLifecycleStage ap:Active ;
lmm:phaseStart "2021-04-01"^^xsd:date .
ex:sub-1
a lmm:Subscription ;
lmm:subscriber ex:jane ;
lmm:subscriptionType lmm:Accountable ;
lmm:subscriptionRole "Application Owner" .
Three things a converter author should read twice. Lifecycle stages come from the
Architecture Processes extension,
not from lmm: — that extension's five canonical stages were derived from LeanIX's own lifecycle
documentation and each carries a skos:closeMatch to the anchor it came from, so a phase token
resolves by kebab-casing it (phaseIn → #phase-in). Reusing them is what makes "every asset in
phase-out" one query across LeanIX, ArchiMate and Backstage data. Status and subscription type are
named individuals (DD-23), so lmm:factSheetStatus "ACTIVE" fails validation; the value is
lmm:StatusActive, whose skos:notation is that token. And lmm:StatusActive is not ap:Active —
one says the record is live in the workspace, the other says the application is in operational use,
and an archived fact sheet can describe a running application.
The value sets and cardinalities are enforced in leanIX-shapes.ttl rather than in OWL: no property
is owl:FunctionalProperty and no vocabulary is closed with owl:oneOf, so a workspace that gains a
status can add it without editing a published document. Run them with .scripts/validate.sh --shacl
leanix, which validates examples/leanix-docs-example/ — a landscape assembled from the examples
SAP's own LeanIX documentation gives for each fact sheet type, with per-element source links and an
editorial note separating the documented values from the illustrative ones.
11c. Business Model Canvas (modelingLanguages/bmc/)¶
Namespace: https://meta.linked.archi/bmc/onto# (prefix: bmc:)
Version: 0.2.0
License: CC BY 4.0
A SKOS vocabulary representing the nine building blocks of the Business Model Canvas by Alexander Osterwalder.
Files¶
| File | Content |
|---|---|
bmc.ttl |
SKOS vocabulary — the nine BMC building blocks |
bmc-metamodel.ttl |
Metamodel manifest — minimal, links to the SKOS scheme |
Concept Scheme¶
bmc:BMCScheme groups all nine concepts under bmc:BMCElement:
Customer Segments, Value Propositions, Channels, Customer Relationships, Revenue Streams, Key Resources, Key Activities, Key Partners, Cost Structure.
11d. BPMN 2.0.2 Ontology (modelingLanguages/bpmn/)¶
Namespace: https://meta.linked.archi/bpmn/onto# (prefix: bpmn:)
Version: 0.2-draft
Derived from: OMG BPMN 2.0.2 Specification (XMI)
Validated against: Semantic.xsd, BPMN20.xsd, BPMNDI.xsd, DI.xsd, DC.xsd, Infrastructure.cmof (.reference/omg/bpmn202/)
Imports: arch:core/0.3.2, arch:core-vis
A comprehensive OWL mapping of the BPMN 2.0.2 specification, auto-generated from the OMG XMI source and validated against the normative XSD/CMOF artifacts. Includes semantic classes, diagram interchange (BPMNDI/DI/DC), infrastructure, and SHACL shapes.
Files¶
| File | Content |
|---|---|
bpmn-metamodel.ttl |
Metamodel manifest — ties together all BPMN modules |
bpmn-viewpoints.ttl |
4 viewpoints (ProcessFlow, Collaboration, Choreography, Conversation) |
bpmn-deliverable-templates.ttl |
Deliverable templates for BPMN artifacts |
linkedarchi-bpmn-onto.ttl |
BPMN semantic classes (Activity, Event, Gateway, Flow, etc.) |
linkedarchi-bpmn-shacl.ttl |
SHACL shapes for BPMN semantic classes |
linkedarchi-bpmn-infra-onto.ttl |
BPMN infrastructure (Definitions, Import) |
linkedarchi-bpmn-infra-shacl.ttl |
SHACL shapes for infrastructure |
linkedarchi-bpmndi-onto.ttl |
BPMNDI diagram interchange classes |
linkedarchi-bpmndi-shacl.ttl |
SHACL shapes for BPMNDI |
linkedarchi-di-onto.ttl |
DI (Diagram Interchange) abstract classes |
linkedarchi-di-shacl.ttl |
SHACL shapes for DI |
linkedarchi-dc-onto.ttl |
DC (Diagram Common) datatypes (Bounds, Point, Font) |
linkedarchi-dc-shacl.ttl |
SHACL shapes for DC |
linkedarchi-bpmn-suite-imports.ttl |
Import aggregator |
linkedarchi-bpmn-suite-shapes.ttl |
Combined shapes aggregator |
Alignment to Core¶
The alignment to the core ontology is declared inline in linkedarchi-bpmn-onto.ttl, on the
classes themselves, as every other modelling language in this repository does it. Of the 144
classes in bpmn/onto, 49 are arch:Element, 12 are arch:QualifiedRelationship, and the
remaining 83 are neither — they are serialization carriers and metamodel bookkeeping, not
architecture concepts.
arch:Element is asserted on 11 roots, which reach 49 classes through rdfs:subClassOf:
bpmn:FlowNode— activities and their 12 task/sub-process subtypes, choreography activities, and allGatewayandEventsubtypesbpmn:Process,bpmn:Collaboration(also Choreography, GlobalChoreographyTask)bpmn:ConversationNode(Conversation, SubConversation, CallConversation)bpmn:Participant,bpmn:Lanebpmn:DataObject,bpmn:DataObjectReference,bpmn:DataStore,bpmn:DataStoreReferencebpmn:Message
12 BPMN relationship classes (Association, SequenceFlow, MessageFlow, DataAssociation, etc.)
are rdfs:subClassOf arch:QualifiedRelationship.
Gateways and events are elements. They have identity, they render on diagrams, and they belong
in element counts. BPMN 2.0.2 makes their name optional, but that is a naming question rather than a
question about what they are — see bpmnsh:RequiredNameShape, which lists only the 12 classes
BPMN requires to be named and therefore does not target them.
Not arch:Element: the 12 connector classes (they are arch:QualifiedRelationship), the
serialization and bookkeeping classes (bpmn:Documentation, bpmn:TextAnnotation, bpmn:Group,
bpmn:ItemDefinition, bpmn:Expression, bpmn:EventDefinition, bpmn:InputSet and the rest),
and bpmn:BaseElement itself.
Maintainer note: do not align bpmn:BaseElement. It is the abstract root of the whole BPMN
metamodel, so aligning it makes every serialization artefact an architecture element — 130 of 144
classes — and makes bpmn:SequenceFlow both an element and a relationship. Element counts and
arch:Element queries inflate accordingly.
12. TOGAF 9.2 (frameworks/togaf/)¶
Content Metamodel (togaf.ttl)¶
Namespace: https://meta.linked.archi/togaf/metamodel# (prefix: togaf:)
Version: 9.2
Derived from: TOGAF 9.2 Chapter 30
Defines the TOGAF Content Metamodel element togaf:TogafElement (subclass of arch:Element) and togaf:Principle.
ADM Phases (TOGAF_9.2-ADM.ttl)¶
SKOS taxonomy of the TOGAF Architecture Development Method phases (Preliminary, A through H, Requirements Management), their steps, inputs, outputs, and deliverables.
Viewpoints (togaf-vp.ttl)¶
Defines TOGAF viewpoints as arch:Viewpoint individuals, e.g., togvp:PrinciplesCatalog with arch:includesConcept togaf:Principle.
13. DoDAF 2.02 (frameworks/dodaf/)¶
Ontology namespace: https://meta.linked.archi/dodaf/onto# (prefix: dodaf:)
Taxonomy namespace: https://meta.linked.archi/dodaf/tax# (prefix: dodaftax:)
Viewpoints namespace: https://meta.linked.archi/dodaf/viewpoints# (prefix: dodafvp:)
Version: 2.02
Derived from: DoDAF V2.02 (U.S. Department of Defense, 2010)
The U.S. Department of Defense Architecture Framework. DoDAF 2.0 shifted from rigid "products" to a data-centric approach with "Fit-for-Purpose" presentation. The ontology captures the underlying data model that the 8 viewpoints and 52 DoDAF-described Models present.
Files¶
| File | Namespace | Content |
|---|---|---|
dodaf-onto.ttl |
dodaf/onto# |
22 entity types (Capability, OperationalActivity, System, Service, data entities, etc.) + 10 relationships |
dodaf-tax.ttl |
dodaf/tax# |
SKOS taxonomy classifying entities by the 8 DoDAF viewpoints |
dodaf-vp.ttl |
dodaf/viewpoints# |
28 viewpoint individuals (AV-1/2, CV-1–7, DIV-1/2/3, OV-1–6c, PV-1/2/3, StdV-1/2) + 9 stakeholders |
dodaf-metamodel.ttl |
dodaf/metamodel# |
Metamodel manifest |
Viewpoints (8 categories, 52 models)¶
| Viewpoint | Prefix | Key Models |
|---|---|---|
| All (AV) | AV-1, AV-2 | Overview, Integrated Dictionary |
| Capability (CV) | CV-1 through CV-7 | Vision, Taxonomy, Phasing, Dependencies, Mappings |
| Data & Information (DIV) | DIV-1, DIV-2, DIV-3 | Conceptual, Logical, Physical data models |
| Operational (OV) | OV-1 through OV-6c | Concept graphic, Resource flows, Activity models, Rules, State transitions |
| Project (PV) | PV-1, PV-2, PV-3 | Portfolio relationships, Timelines, Capability mapping |
| Services (SvcV) | SvcV-1 through SvcV-10c | Service context, Flows, Functionality, Traceability, Evolution |
| Standards (StdV) | StdV-1, StdV-2 | Standards profile, Standards forecast |
| Systems (SV) | SV-1 through SV-10c | System interfaces, Flows, Functionality, Traceability, Evolution |
Data and Information Viewpoint (DIV)¶
The three-level data modelling pattern is particularly relevant for ML-enabled systems (Moin et al. 2023):
- DIV-1 (Conceptual) — High-level data concepts for non-technical stakeholders
- DIV-2 (Logical) — Attributed data entities for system architects and analysts
- DIV-3 (Physical) — Implementation-level schemas for database engineers and developers
14. Zachman Framework (frameworks/zachman/zachman-onto.ttl, zachman-tax.ttl)¶
Namespace: https://meta.linked.archi/zachman/onto# (prefix: zach:) — concepts in https://meta.linked.archi/zachman/onto#
Version: 0.5.0
Derived from: Zachman International, FEAC Institute
SKOS taxonomy of the Zachman Framework 6×6 classification matrix. Models six Aspects (columns: Inventory/What, Process/How, Distribution/Where, Responsibility/Who, Timing/When, Motivation/Why), six Perspectives (rows: Executive/Identification, Business Management/Definition, Architect/Representation, Engineer/Specification, Technician/Configuration, Enterprise/Instantiation), and 36 Cells (intersections).
Interrogatives (Columns)¶
| Concept | Description |
|---|---|
| What (Data) | Data and information entities |
| How (Function) | Processes and functions |
| Where (Network) | Locations and network topology |
| Who (People) | People, roles, organizational units |
| When (Time) | Events, cycles, schedules |
| Why (Motivation) | Goals, strategies, business rules |
Perspectives (Rows)¶
| Concept | Stakeholder | Level |
|---|---|---|
| Executive (Planner) | Strategist | Scope / Contextual |
| Business Management (Owner) | Domain Expert | Business Concepts |
| Architect (Designer) | Systems Analyst | System Logic |
| Engineer (Builder) | Developer | Technology Model |
| Technician (Implementer) | Programmer, DBA | Tool Configuration |
| User (Worker) | End User, Operator | Functioning Enterprise |
Use Zachman concepts to tag viewpoints and artifacts with their classification:
ex:DataModelViewpoint a arch:Viewpoint ;
arch:viewpointCoversAspect zachtax:Inventory ;
arch:viewpointAddressesPerspective zachtax:Architect .
15. ADMIT Framework (frameworks/admit/)¶
Ontology namespace: https://meta.linked.archi/admit/onto# (prefix: admit:)
Taxonomy namespace: https://meta.linked.archi/admit/tax# (prefix: admittax:)
Version: 0.1.0
Derived from: ADMIT Framework — InfoQ (Prasad Rao, 2013)
Files¶
| File | Namespace | Content |
|---|---|---|
admit-onto.ttl |
admit/onto# |
20 design force OWL classes (rdfs:subClassOf ad:Force) |
admit-tax.ttl |
admit/tax# |
SKOS taxonomy: architecture levels, domains, resource dimensions, design forces classification, ADLC lifecycle |
admit-metamodel.ttl |
admit/metamodel# |
Metamodel manifest |
Design Forces (Ontology)¶
20 OWL classes extending ad:Force from the architecture decisions extension: BusinessForce, OperationForce, AestheticismForce, FutureForce, SimplicityForce, ChangeForce, ProcessForce, IntegrationForce, ImplementationPatternForce, EnterpriseForce, ConstraintEnvironmentForce, FailureForce, ChannelForce, ContentForce, PlatformForce, InfrastructureForce, NetworkForce, StorageForce, SecurityForce, CostForce.
Taxonomy¶
- Architecture Levels — Enterprise, Solution, System
- Architecture Domains — Business (Why), Information/Data (What), Application/Service (How), Technology (Where)
- Resource Dimensions — Workload, Demand, Throughput, Latency, Capacity, Redundancy
- Design Forces — SKOS concepts linked to OWL classes via
rdfs:seeAlso - Architecture Development Lifecycle — 15 processes in 5 phases across 3 areas
16. TIME Framework (frameworks/TIME/)¶
Ontology namespace: https://meta.linked.archi/time-framework/onto# (prefix: timefw:)
Taxonomy namespace: https://meta.linked.archi/time-framework/tax# (prefix: timetax:)
Shapes namespace: https://meta.linked.archi/time-framework/shapes# (prefix: timesh:)
Derivation namespace: https://meta.linked.archi/time-framework/derivation# (prefix: timederiv:)
Crossmappings namespace: https://meta.linked.archi/time-framework/crossmappings# (prefix: timexm:)
Version: 0.2.0
Imports: arch:core
Primer: TIME Framework Primer & Modelling Guide
Models the Gartner TIME (Tolerate, Invest, Migrate, Eliminate) framework for application portfolio management.
Files¶
| File | Namespace | Layer | Purpose |
|---|---|---|---|
time-onto.ttl |
time-framework/onto# |
OWL (reasoning) | Classes, properties, enumeration types with owl:oneOf, OWL equivalent class definitions that auto-classify assessments into TIME quadrants |
time-shapes.ttl |
time-framework/shapes# |
SHACL (validation) | Closed-world constraints — required fields, value ranges (scores 1-5), cardinalities, controlled vocabulary enforcement, disposition–rating consistency guard |
time-tax.ttl |
time-framework/tax# |
SKOS (navigation) | 7 ConceptSchemes organizing enumeration individuals for UI dropdowns, documentation, and faceted search |
time-derivation.ttl |
time-framework/derivation# |
SHACL Rules (derivation) | Disposition movement derivation with PROV-O provenance |
time-crossmappings.ttl |
time-framework/crossmappings# |
SKOS mappings | Editorial correspondences to ArchiMate 3.2/4.0, Backstage, TOGAF |
time-metamodel.ttl |
time-framework/metamodel# |
Manifest | Ties together all layers into a single discoverable resource |
Why multiple layers? Each answers a different question: - OWL answers: "This assessment has High/High ratings → it is an InvestAssessment" (inference) - SHACL shapes answer: "This assessment is missing a timeDisposition → validation error" (constraint) - SHACL rules answer: "This assessment's disposition changed from Tolerate to Migrate → Degraded" (derivation) - SKOS answers: "What are the valid TIME dispositions? → Tolerate, Invest, Migrate, Eliminate" (navigation)
Classes¶
| Class | Description |
|---|---|
timefw:Application |
Application being assessed |
timefw:FitAssessment |
Point-in-time assessment with functional/technical fit |
timefw:BusinessCapability |
Business capability (SKOS concept) |
timefw:TechnologyComponent |
Technology dependency |
timefw:Person |
Assessor, business/IT owner |
timefw:Evidence |
Supporting evidence for assessment decisions |
timefw:FitCriterion |
Evaluation criterion |
timefw:FitCriterionScore |
Scored evaluation of one criterion |
timefw:TimeAssessmentModel |
Scoring model (scale, thresholds) |
timefw:InvestAssessment |
OWL-classified: High functional + High technical |
timefw:MigrateAssessment |
OWL-classified: High functional + Low technical |
timefw:TolerateAssessment |
OWL-classified: Low functional + High technical |
timefw:EliminateAssessment |
OWL-classified: Low functional + Low technical |
SHACL Validation¶
| Shape | Target | Key Constraints |
|---|---|---|
ApplicationShape |
timefw:Application |
Required: skos:prefLabel. Warning: should have assessment. Owner must be Person. |
FitAssessmentShape |
timefw:FitAssessment |
Required: application, date, disposition. Scores: integer 1-5. Ratings: High/Low. SPARQL guard: disposition must match ratings when both present. |
EvidenceShape |
timefw:Evidence |
Required: label, evidence type (from 8 valid values). |
FitCriterionScoreShape |
timefw:FitCriterionScore |
Required: criterion reference, score 1-5. |
FitCriterionShape |
timefw:FitCriterion |
Required: label, dimension (Functional/Technical/Cost). |
Controlled Vocabularies¶
timefw:TimeDisposition— Tolerate, Invest, Migrate, Eliminatetimefw:FitRating— High, Lowtimefw:FitDimension— Functional (altLabel: "Business value"), Technical (altLabel: "IT quality"), Costtimefw:AssessmentStatus— Draft, Approved, Superseded, Rejectedtimefw:EvidenceType— ArchitectureReview, SecurityAssessment, OperationsMetrics, CostAnalysis, BusinessStakeholderInput, VendorRoadmap, TechnicalDebtRegister, OtherEvidencetimefw:LifecycleState— Plan, Build, Run, Retiretimefw:DispositionMovement— Improved, Degraded, Unchanged, NewAssessment
Includes OWL class expressions for automatic TIME quadrant classification based on fit ratings, and SHACL derivation rules for disposition movement tracking with PROV-O provenance.
17. Platform Design Taxonomy (frameworks/platform-design/pd-tax.ttl)¶
Namespace: https://meta.linked.archi/vocab/platformdesign#
SKOS taxonomy for platform design concepts: stakeholder roles (consumer, producer, enabler, keystone), assets, capabilities, stories, needs, solutions, touchpoints, value, compensation, and channels.
18. Quality Attributes Extension (extensions/quality-attributes/quality-attributes.ttl)¶
Namespace: https://meta.linked.archi/quality-attributes#
Version: 0.1.0
Imports: ad:arch-decision
Authoritative sources:
- ISO/IEC 25010:2023 — Systems and software quality models
- SEI/CMU System Resilience — Quality attribute characterization
- Bass, L., Clements, P. & Kazman, R. — "Software Architecture in Practice" (quality attribute scenarios)
Defines quality attribute individuals (instances of ad:QualityAttribute) for architecture decision evaluation. These are the "-ilities" that drive architecture decisions — each individual represents a named quality concern that can be linked to requirements, tactics, and decisions.
When to use: Import this extension alongside the Decisions extension when you need a controlled vocabulary of quality attributes for quality-driven design (ADD method), architecture evaluation (ATAM), or quality attribute scenario documentation.
Individuals: Evolvability, Safety, Cybersecurity, Anti-Tamper, Survivability, Capacity, Longevity, Interoperability, Adaptability, Availability, Maintainability, Performance, Reliability, Reparability
19. Tactics Extension (extensions/tactics/tactics.ttl)¶
Namespace: https://meta.linked.archi/tactics# (prefix: tac:)
Version: 0.1.0
Imports: ad:arch-decision, refa:ref-arch
Authoritative sources:
- Bass, L., Clements, P. & Kazman, R. — "Software Architecture in Practice" (4th ed., Chapters 4–13)
- SEI/CMU Tactics Catalog
Defines architectural tactics as class hierarchies under refa:Tactic, organized by quality attribute. Tactics are proven design decisions that influence a specific quality attribute response. Each tactic class is linked to its target quality attribute via ad:qualityAttributeMatch.
When to use: Import this extension alongside the Decisions and Quality Attributes extensions when you need to document which tactics were applied to achieve specific quality goals. Useful for ADD (Attribute-Driven Design), architecture evaluation, and pattern documentation.
Availability Tactics¶
- DetectFaults, RecoverFromFaults (PreparationAndRepair, Reintroduction), PreventFaults
Interoperability Tactics¶
- Locate, ManageInterfaces
Modifiability Tactics¶
- ReduceSizeOfAModule, IncreaseCohesion, ReduceCoupling, DeferBinding
Performance Tactics¶
- ControlResourceDemand, ManageResources
Security Tactics¶
- DetectAttacks, ResistAttacks, ReactToAttacks, RecoverFromAttacks
Each tactic class is linked to its target quality attribute via ad:qualityAttributeMatch.
20. Examples¶
Basic Metamodel (examples/basic/basic-onto.ttl)¶
Minimal metamodel demonstrating core patterns: Node, SpecialNode, GroupNode with association (punning), QualifiedAssociation, and aggregation relationships. Shows arch:domainIncludes/arch:rangeIncludes usage.
Component-and-Connector (examples/CnC/CnC.ttl)¶
Rich C&C vocabulary with Component, Connector hierarchies (MessagingConnector → PubSub/MessageQueue, RequestResponse → HTTPAPI/RPC/gRPC/SOAP, DataFlowConnector → Pipe/Batch/SharedData/DB/FileShare/FTP/GIT) and port/role relationships with directional specializations (inPort/outPort, subscribedTo/publishTo, enqueue/dequeue, etc.).
Simple Example (examples/simple-onto.ttl)¶
Simplest possible example: one Element subclass and one Relationship subclass.