Exploring Archimate models with a graph database
At our recent Information Architecture event, we highlighted the important role of Information Modelling. One important aspect we emphasized was network or relation modelling. An upcoming trend is the usage of graph models. In this blogpost we will apply graph modelling to the Archimate modelling language. Archimate is used in Enterprise Architecture to model architectural elements (business processes, data objects, applications, etc) and the relations beween them. The classic way to explore an Archimate model is to create diagrams that show a specific perspective (‘viewpoint’). In this blogpost we show you how an Archimate model can be explored and queried as a graph.
Introduction to graph models
So what is a graph? A graph is basically a combination of nodes and edges (elements with their relations) with added properties. A simple example would be a facebook graph (from the Neo4j website):
A recent example where this was used on a large scale, is the Panama Papers. The Panama Papers are 11.5 million leaked documents that detail financial and attorney–client information for more than 214,488 offshore entities.
To analyse this extensive information, the ICIJ (International Consortium of Investigative Journalists) had to set up a comprehensive information architecture. Different kind of information portals were combined:
- A collaboration portal - enabling communication between all the journalists (Oxwall)
- An information portal - through which the unstructured data could be searched (Blacklight - Solr - Apache Tika)
- An analytics portal - through which the structured data could be navigated (Linkurious - Neo4j - Talend)
Graph modelling allowed the journalists to look for patterns and relations between the people and organisations that are mentioned in the vast amount of documents. This enabled them to uncover relations between some high profile people and the offshore entities. Of course this is not the scope of this blog, so we'll focus back on the graph modelling part.
Theory: Graph modelling & Archimate
As part of our internal innovation efforts, we decided to experiment with graph databases, by combining them with a modelling language we know well: Archimate. Archimate is a high-level modelling language for Enterprise Architecture.
In order to combine Archimate and graph database, we looked for a way of translating one model into the other. Archimate has a standard XML export format (not all modelling tools support this currenty, but for example Archi does). The model for the classic Archimate example insurance company Archisurance is available in this standard xml format.
Graph models on the other hand also have an xml standard: GraphML. So we drafted an XSLT transformation to link the two.
- Elements became nodes (with labels and element types)
- Relationships became edges (with labels and relationship types)
Practice: Neo4j & Archisurance
So now we had our import file ready. We decided on Neo4J for our graph database. After importing the nodes and edges, the Archimate model can be queried! . Neo4j also has the possibility of using a stylesheet to style the graph. Adding the Archimate color scheme for the business, application and infrastructure layer already made the graph more understandable. Also having a different border for the passive, behaviour and active structure. (Having the right icons on the nodes is something for a next iteration).
So now we have a nicely formatted graph that is ready for exploration.
The most basic query is to have a look at one element with it's related elements. Archi already offers this functionality with their 'Visualiser'. The corresponding query (for depth 1) is:
An example query could be 'Show me all Business Objects with their related Data Objects'. This could be usefull in an Information Governance exercise to see what data is captured for the business objects.
Another example would be having a view of all Business Processes and the Business Events that trigger them. The corresponding Cyper Query is:
In this example we already see some issues with the Archisurance model that we need to look into:
- There are processes without a trigger
- There are processes that are not related to other processes
This might be ok, but having the flexibility to query the model can create usefull perspectives that help increase the quality of the model.
So interacting with Archimate as a graph model is definetly worth exploring further. It enables analysing the model in a more structured way.
More generally speaking, using graph models can help you explore your information landscape. This exploration can improve your Information Management at several levels:
- Strategic: Exploring your enterprise architecture model for insights in elements relevant for Information Governance
- Tactical: Information architecture insights, e.g. information lineage (e.g. where is my customer data created, handled, explored?)
- Operational: exploring your data as a graph (e.g. as part of an Analytics effort)
LoQutus can help you set up these capabilities. Let us know if you are interested in more information!