/
Flexo-MMS Architecture

Flexo-MMS Architecture

The Flexo architecture models a multi-layered, modular system of web-based micro-services where layers closer to the “bottom” are responsible for the storage and processing of low-level data, and layers closer to the “top” specialize in representing information in their highest abstracted form to meet end-user tooling. In other words, the bottom layers provide generalized support for data storage and retrieval, whereas modules in the upper layers focus on domain-specific applications of information.

The guiding principle for developing modules in this architecture is to adopt open, web-compatible standards for data exchange at every interface, including for both data format and exchange protocols. SPARQL, Graph Store Protocol, Linked Data Platform, GraphQL, OSLC, SysMLv2, JSON HyperSchema, gRPC, and so on, are all web-friendly protocols that have broad tooling support in their respective ecosystems. For example, a module that consumes Linked Data from the layer below, interprets the schema of a model it is serving, and exposes a GraphQL interface for layers above transforms data from graphs into trees, and vice-versa.

This layered approach facilitates an environment where each module can be independently developed, tested, and maintained, ensuring continuous iteration without disrupting the entire system. By encouraging strong encapsulation of responsibilities within each layer, developers can integrate new technologies and paradigms as they emerge, seamlessly adding advanced analytics, visualization, or domain-specific modeling capabilities. The end result is a flexible, highly interoperable ecosystem that supports a broad range of use cases and workflows—ultimately accelerating decision-making cycles and enabling the organization to rapidly iterate on model-driven engineering solutions and capture actionable insights from its data.

Technology Layer Cake

The following diagram illustrates how the modeling technologies (incl. modules, protocols, libraries, data transformations, languages, and exchange formats) are organized into or across logical layers. Upper layers correspond to model information being further abstracted away from the underlying RDF quadstore as specific tasks demand more specialized, domain-specific features.

 

Ontology

As with any data service, Flexo MMS requires a schema in order to store and retrieve objects in the database. In Flexo MMS, the database is an RDF quadstore. Whereas an RDF triple consists of a subject, predicate and object, an RDF quad is a triple with an additional context, the graph component. On the Web of Linked Data, named graphs have found a variety of uses and taken on different semantics. Flexo MMS follows one of the more common interpretations of named graphs by using them to partition sets of triples. These partitions are primarily used for scoping SPARQL queries/updates.

The diagram below illustrates the Flexo MMS Ontology as a collection of named graphs, each containing a set of classes with properties, and the relationships between classes which travel both within and across named graphs.

For more information about the concepts referenced in the above diagram, see:

Related content