COPYRIGHT © 2016-2017 by Michael Herman, Toronto, Canada. All rights reserved.
MMOR (pronounced “more”) is an online, queryable version of an updated, corrected version of the ArchiMate 3.0 relationship matrix – originally described in the article The Graphitization of ArchiMate.
This article provides an overview – a teaser, actually. I’m working on a more in-depth description that I’ll publish next week. HINT: If you poke around on hyperonomy.com – digital intelligence, you’ll find the “WIP” draft.
Logging into MMOR (pronounced “more”)
MMOR Url: http://hobby-icgaeohcoeaggbkeabhldpol.dbs.graphenedb.com:24789/browser/ MMOR Username: ModelMate_Master_Datasets10 MMOR Password: YqeZAH4ODEJqglkEsK5p
The above app url, username and password provide you with read-only access to the MMOR graph database – you can’t hurt anything. Please go ahead and try it using some of the sample queries I’ve documented below.
CAVEAT: There are zero guarantees on my part in terms of the availability, reliability, or performance of this hosted solution. I’ll be making changes with no advance notice.
To run a query, follow these steps:
- Connect to the MMOR app and login (see above)
- Copy & paste each query (one at a time) into the query box (next to the ‘$’ sign)
- Click the “Play” icon to run the query
Figure 1. Copy & paste each query (one at a time) – then click Play (click to enlarge)
TIP: After you’ve run your first query, in the bottom-right corner of the visualization, turn Auto-Complete to the Off position by clicking on the icon.
Figure 2. TIP: Turn Auto-Complete to the Off position
Sample Query A: Node Prototype, Technology Landscape View
Return and visualize the relations in the MMOR where the source element is a Node and the (source and) target elements are members of the Technology domain, both Core as well as Derived relations are included, and the source and target elements are different (i.e. ignore self-referencing element relations).
MATCH path = (source:ElementProtoype_ArchiMate30_TheOpenGroup) -[relation]-> (target:ElementProtoype_ArchiMate30_TheOpenGroup) WHERE source.DomainQualifiedLabel IN ["TechnologyDomain_ArchiMate30_TheOpenGroup"] AND target.DomainQualifiedLabel IN ["TechnologyDomain_ArchiMate30_TheOpenGroup"] AND type(relation) IN ["CoreRelation_ModelMate30_Parallelspace", "DerivedRelation_ModelMate30_Parallelspace"] AND source.QualifiedName <> target.QualifiedName AND source.QualifiedName = "Node_ArchiMate30_TheOpenGroup" RETURN path
NOTE: In the above Cypher Query Language (CQL) query, note the use of the following ModelMate Namespace Naming Standard used for:
- Element prototype types on the source and target elements (e.g. ElementPrototype_ArchiMate30_TheOpenGroup, Node_ArchiMate30_TheOpenGroup)
- Each element’s domain (e.g. TechnologyDomain_ArchiMate30_TheOpenGroup)
- Categorizing relations (e.g. CoreRelation_ModelMate30_Parallelspace, DerivedRelation_ModelMate30_Parallelspace)
The general format used for the ModelMate Namespace Naming Standard is:
[typeclassname]_[typeclasscategory]_[typeclassoriginatingbody] e.g. ApplicationComponent_ArchiMate30_TheOpenGroup
Figure 3. Sample Query A: Results (click to enlarge)
NOTE: The black arcs are Core relations; the red arcs are Derived relations. In the current version of the MMOR, there’s approximately an order of magnitude more Derived relations vs. Core relations.
NOTE: In Figure 3, note the use the ModelMate convention for naming relations based on a specific verb taxonomy that immeasurably improves the readability, a Stakeholders’ opportunities for further reflection and refinement, and the composability of higher-level Domain-Specific Languages (DSLs) for enterprise architecture based on using ArchiMate as a lower-level intermediate language:
- Crossing the EA Chasm: Reflections on the Current State of ArchiMate
- Crossing the EA Chasm: Re-visioning ArchiMate 3.0 Relations as Verbs
- Crossing the EA Chasm: Graphitization of ArchiMate
- Crossing the EA Chasm: Re-visioning the ArchiMate Specification
Sample Query B: Core Relations, All Domains Landscape View
Return and visualize all of the Core relations in the MMOR.
MATCH path = (source) -[relation:CoreRelation_ModelMate30_Parallelspace]-> (target) WHERE id(source) <> id(target) RETURN path
Figure 4. Sample Query B: Results (click to enlarge)
NOTE: It may look pretty but it’s not very useful from a functional perspective. To fix this, try grabbing the Passive Structure elements and dragging them to the left; the Active Structure elements, moving them to the right. The Behavior elements can be left in the middle. They will act as if they are connected to the Passive and Active Structure elements by elastics or springs. You can also manually position the Behavior elements similar to what you did with the Structure elements. Go ahead and try it for yourself.
There are several additional visualization tools in the market that work substantially better than the default browser app that ships with the Neo4j graph database. Check out this page: Graph Visualization for Neo4j. Linkurious is one of my favorite graph visualization apps.
Sample Query C: All Elements Prototypes, Statistical Matrix
Return and display a statistical matrix describing the element prototypes in the MMOR.
MATCH (source), (target) WHERE id(source) <> id(target) RETURN DISTINCT labels(source), count(*) AS Count, avg(size(keys(source))) as AvgPropertyCount, min(size(keys(source))) as MinPropertyCount, max(size(keys(source))) as MaxPropertyCount, avg(size((source)-->(target))) as AvgRelationsCount, min(size((source)-->(target))) as MinRelationsCount, max(size((source)-->(target))) as MaxRelationsCount
Figure 5. Sample Query C: Results (click to enlarge)
NOTE: The use of multiple Cypher Query Language (CQL) labels to support multiple-inheritance at the element prototype level. For example, using the first row of data in Figure 5:
- the generic element prototype (i.e. Element_ArchiMate30_TheOpenGroup),
- ArchiMate domain (layer) type (e.g. MotivationDomain_ArchiMate30_TheOpenGroup), and
- ArchiMate aspect type (e.g. MeaningAndValueAspect_ArchiMate30_TheOpenGroup);
- in addition to the element’s specific ArchiMate prototype (e.g. Value_ArchiMate30_TheOpenGroup).
You can also download file-based versions of the MMOR Master Datasets from GitHub in the following file formats:
- CSV text file
- Microsoft Excel workbook
- Microsoft Access database
- Neo4j Cypher Query Language (CQL) file.
In addition, there is a ZIP file containing all 4 file formats.
Michael Herman (Toronto)
*ArchiMate is a registered trademark of The Open Group.