Technical Architecture & Tooling
In this showcase site, we illustrate how a model of an enterprise that is created as part of a transformation process can be operationalized, both to generate interactive documentation and also to provide context for Generative AI using Retrieval Augemented Generation: the Car Sharing Entrprise Model within the website and the knowledge graph used by the AI Asssistant are generated from a model we build of a fictional car sharing enterprise.
This page documents both the building blocks we used to generate the website and the knowledge graph and the ones that power the live website and chat assistant.
Website and Knowledge Graph Generation
Modeling the Enterprise with Archi and ArchiMate
To illustrate our ideas and approach, we built a model of a fictitious car sharing enterprise using the ArchiMate Enterprise Architecture Modeling Language.
One of the nice features of the ArchiMate modeling languages is that it separates the relevant concerns of an enterprise into separate layers and aspects - e.g. the motivation aspect that describes why the enterprise exists and what its objectives are, the strategy layer that shows how to achive those objectives and the business, organisation and application layers that show how the enterprise is organized.
We used Archi, a popular open-source tool, to model the fictional car sharing enterprise. Archi supports the ArchiMate language and allows visual modeling across all architectural layers.
The entire Car Sharing Enterprise Model is generated from the ArchiMate model.
XML Export from Archi
The Archi model is stored in XML-format in a git repository, using the ArchiMate Exchange Format. This happens automatically when using the Archi Collaboration Plug-In.
Parsing and Importing into Neo4j
We chose Neo4j to represent the enterprise architecture model as a knowledge graph. Each element (process, department, system, etc.) becomes a node, and relationships like “is responsible for” or “uses” become edges.
We developed a custom import tool that:
-
Parses ArchiMate XML files using a custom Python-based parser
-
Applies mapping rules to determine labels, types, and properties for each node and edge
-
Imports the data into Neo4j using the Cypher query language
Custom mapping rules allow for flexible translation of ArchiMate elements to graph structures. For example:
-
A BusinessProcess becomes a node with label process
-
A UsedBy relationship becomes an edge labeled uses
Generating the Car Sharing Case Study Content
We built a generator using Python that:
-
Reads the parsed model structure
-
Filters elements tagged for import
-
Generates .mdx pages for each element
-
Structures content in folders (/process, /system, /department, etc.)
-
Adds navigation metadata for a coherent user experience
Static Site Generator
The content of this website is generated using Nextra.js, a modern documentation site framework based on Next.js.
The result is a fully navigable static site where each model element (e.g. “Customer Service Department” or “Booking System”) has its own page with:
-
Descriptive text
-
Links to related elements (e.g. responsible processes)
-
Automatically generated overview pages and meta navigation files
Runtime Building Blocks
Next to this website itself, at runtime we have two core building blocks:
- the AI chat assistant (running on Kubernetes)
- the knowledge graph (using Neo4j Aura)
AI Chat Assistant
The AI assistant encapsulates an OpenAI Agents based on GPT-4o - please check our guide How to Use the AI Assistant to learn how to use the AI assistant.
The assistant:
-
Accepts user prompts about the enterprise model
-
Sends the prompt to OpenAI, which generates the appropriate Cypher query from the prompt: this is AI magic - the AI “knows” about the data model, but the queries themselves are formulated by the AI, based on the prompt.
-
Executes the query on the knowledge graph
-
passes the query results back to the OpenAI agent for further reasoning and formatting
-
generates a PDF report using the Typst PDF Generator Engine if necessary - the contents itself is generated by the AI, based on the data in the knowledge graph.
Knowledge Graph
The knowledge graph is hosted in the Neo4j Aura fully managed graph database. Graph databases have many interesting properties, one feature we particularly like is that graphs are easy to query and visulize.
Currently, the graph database is equivalent to the static Car Sharing Model built using ArchiMate, but we will be extending it with “live” data from the Car Sharing Enterprise.
The graph database stays in the background most of the time and “just” provides context to the AI chat assistant. But the chat assistant also provides links that let you visualize that context by showing the elements in the graph database.
Summary
This toolchain demonstrates how to combine structured modeling, graph databases and generative AI to create a powerful, interactive representation of an enterprise.