# ontouml/ontouml-metamodel architecture

> Architecture diagram of the GitHub repository ontouml/ontouml-metamodel, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-08-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ontouml/ontouml-metamodel
- Repository: https://github.com/ontouml/ontouml-metamodel

## Overview

#### Purpose and scope
This is a reference-model repository, not an executable application. It defines the UML-independent OntoUML language metamodel, covering its abstract syntax (conceptual elements and relationships) and concrete syntax (their notation). The authoritative artifact is `OntoUML Metamodel.vpp`.

#### Primary entry point and runtime
Visual Paradigm is the material runtime/editor: open `OntoUML Metamodel.vpp` to inspect, edit, and export the metamodel. There is no source-code build, server process, or API entry point in this repository.

#### Authoritative metamodel artifact
`OntoUML Metamodel.vpp` is the central model boundary and source of truth. It contains the modeled OntoUML concepts, constraints, relationships, and diagram organization. Changes should be made through Visual Paradigm rather than by treating derived XML or diagrams as independent definitions.

#### Abstract syntax layer
The abstract language structure is communicated through `diagrams/Abstract Syntax Summary.png` and represented authoritatively in `OntoUML Metamodel.vpp`. This layer defines the supported OntoUML semantic constructs independently of UML profiles.

#### Concrete syntax layer
Notation and presentation mappings are summarized in `diagrams/Concrete Syntax Summary.png`, with their maintained model representation in `OntoUML Metamodel.vpp`. This creates the boundary between semantic language elements and how users draw them.

#### Project serialization and interchange
`XML/project.xml` and the archived `XML/data.zip` appear to be Visual Paradigm project serialization/export material associated with the model. They may support tooling interoperability or recovery, but the `.vpp` project remains the architectural editing entry point.

#### Ecosystem integration boundary
This repository provides the language reference consumed by OntoUML as a Service ecosystem projects. Downstream implementations serialize conforming models as JSON via OntoUML Schema, represent/query them as Turtle via OntoUML Vocabulary, and may transform JSON into graph data through JSON2Graph. Those services are external dependencies/consumers, not runtime components contained here.

Main entry points: [`OntoUML Metamodel.vpp`](https://github.com/ontouml/ontouml-metamodel/blob/main/OntoUML%20Metamodel.vpp) (OntoUML Metamodel), [`XML/project.xml`](https://github.com/ontouml/ontouml-metamodel/blob/main/XML/project.xml) (Project XML), [`XML/data.zip`](https://github.com/ontouml/ontouml-metamodel/blob/main/XML/data.zip) (Archived Project Data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_model["Authoritative Model"]
  node_vp{{"Visual Paradigm<br/>model editor"}}
  node_metamodel["OntoUML Metamodel<br/>Visual Paradigm project"]
  node_abstract["Abstract Syntax<br/>semantic layer"]
  node_concrete["Concrete Syntax<br/>notation layer"]
end

subgraph group_views["Reference Views"]
  node_abstract_summary["Abstract Syntax Summary<br/>reference diagram"]
  node_concrete_summary["Concrete Syntax Summary<br/>reference diagram"]
end

subgraph group_serialization["Project Interchange"]
  node_project_xml["Project XML<br/>project serialization<br/>[project.xml]"]
  node_data_zip["Archived Project Data<br/>[data.zip]"]
end

subgraph group_ecosystem["External Ecosystem"]
  node_schema{{"OntoUML Schema<br/>external consumer"}}
  node_vocabulary{{"OntoUML Vocabulary<br/>external consumer"}}
  node_json2graph{{"JSON2Graph<br/>external transformer"}}
end

node_vp -->|"opens, edits, exports"| node_metamodel
node_metamodel -->|"defines"| node_abstract
node_metamodel -->|"maintains"| node_concrete
node_abstract -->|"summarized by"| node_abstract_summary
node_concrete -->|"summarized by"| node_concrete_summary
node_metamodel -.->|"serialized/exported as"| node_project_xml
node_metamodel -.->|"archived with"| node_data_zip
node_metamodel -.->|"reference consumed by"| node_schema
node_metamodel -.->|"reference consumed by"| node_vocabulary
node_schema -.->|"JSON input"| node_json2graph

click node_metamodel "https://github.com/ontouml/ontouml-metamodel/blob/main/OntoUML%20Metamodel.vpp"
click node_project_xml "https://github.com/ontouml/ontouml-metamodel/blob/main/XML/project.xml"
click node_data_zip "https://github.com/ontouml/ontouml-metamodel/blob/main/XML/data.zip"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_vp,node_metamodel,node_abstract,node_concrete toneBlue
class node_abstract_summary,node_concrete_summary toneAmber
class node_project_xml,node_data_zip toneMint
class node_schema,node_vocabulary,node_json2graph toneRose
```

## Components

### Authoritative Model

- **Visual Paradigm**: model editor · The editing and export runtime.
- [OntoUML Metamodel](https://github.com/ontouml/ontouml-metamodel/blob/main/OntoUML%20Metamodel.vpp): Visual Paradigm project · Authoritative source of truth for the language metamodel. · `OntoUML Metamodel.vpp`
- **Abstract Syntax**: semantic layer · OntoUML concepts, constraints, and relationships independent of UML profiles.
- **Concrete Syntax**: notation layer · Presentation and notation mappings for semantic elements.

### Reference Views

- **Abstract Syntax Summary**: reference diagram
- **Concrete Syntax Summary**: reference diagram

### Project Interchange

- [Project XML](https://github.com/ontouml/ontouml-metamodel/blob/main/XML/project.xml): project serialization · Associated Visual Paradigm serialization or export material. · `XML/project.xml`
- [Archived Project Data](https://github.com/ontouml/ontouml-metamodel/blob/main/XML/data.zip): archive · Associated export or recovery material. · `XML/data.zip`

### External Ecosystem

Downstream consumers; not repository runtime components.

- **OntoUML Schema**: external consumer · Serializes conforming models as JSON.
- **OntoUML Vocabulary**: external consumer · Represents and queries conforming models as Turtle.
- **JSON2Graph**: external transformer · May transform OntoUML JSON into graph data.

## Connections

- Visual Paradigm → OntoUML Metamodel: opens, edits, exports
- OntoUML Metamodel → Abstract Syntax: defines
- OntoUML Metamodel → Concrete Syntax: maintains
- Abstract Syntax → Abstract Syntax Summary: summarized by
- Concrete Syntax → Concrete Syntax Summary: summarized by
- OntoUML Metamodel → Project XML: serialized/exported as
- OntoUML Metamodel → Archived Project Data: archived with
- OntoUML Metamodel → OntoUML Schema: reference consumed by
- OntoUML Metamodel → OntoUML Vocabulary: reference consumed by
- OntoUML Schema → JSON2Graph: JSON input
