Layered View

The layered view provides a high level representation of the Sustainable Water through Integrated Modeling Framework. Each system unit is refered to as a layer, each layer has an 'allowed to use' relationship among other layers.

Primary Representation

A decoupled architecture of self-contained microservices makes up SWIM 2.0. This architecture promotes reuse of service components in other domains and applications, expands the number of service-orchestration combinations, and enables the independent usage of specialized services.

The OpenAPI specification has been incorporated into SWIM 2.0 to standardize webservice interfaces. This makes it possible for both people and computers to find and comprehend service capabilities.

SWIM services are packaged as Docker containers for quick setup and configuration on local or cloud servers that support containers.

layer view

Element Catalog

App Layer

SWIM UI

SWIM UI

Service Layer

Workflow Services

The orchestration of modeling and transformation services is made possible by these services.

These services can be used to initiate a complicated workflow composition and execution process in a model-to-model situation or to start a modeling service directly. The Common Workflow Language (CWL) library serves as the foundation for the workflow-cwl service's CWL serialization and workflow execution.

Modeling Services

These middleware services offer an interface for third-party modeling programs or programming languages. Their main job is to enter input data (a model scenario), run the model, and then retrieve the modeling output. Currently: GAMS, Scilab, and Python-based models are supported by SWIM. Each middleware service's instances can be used for any model created using the supported third-party applications and programming languages.

SWIM Core Services

SWIM Core Services

Context Services

Context services include the Natural Language Narrative Generator Service which provides text-based explanations of model output data by identifying trends, behaviors, and benchmark comparisons in the output results.

The context services also include the Recommender System which sorts and prioritizes model outputs based on the relevance to the selected user role.

Semantic Services

The semantic services gather and provide data aligned to unique and standard vocabularies.

The SWIM Core database is harvested and transformed from JSON-LD to Resource Description Framework (RDF) format. The generated RDF is be stored in a Jena Fuseki triple store. The SWIM knowledgebase is made available through a read-only SPARQL endpoint to respond to queries utilizing vocabulary and ontologies.

Transformation Services

To meet the criteria of a particular model parameter, data preparation is necessary when integrating different water models and data sources (e.g., format, resolution, units). These preprocessors fall within the transformation services category. The model-to-model integration capabilities of SWIM leverage two separate transformation services; the first collects and prepares a model's output as input to the next (swim-assembler), and the second extracts user-requested outputs and provenance from the overall modeling results (swim-merge).

Bridge Services

In collaboration with The Consortium of Universities for the Advancement of Hydrologic Science (CUAHSI); SWIM provides seamless access to the HydroShare platform, an online repository for exchanging data, models, and code in the water domain. The swim-hs service, which adheres to FAIR data rules, makes it easier to maintain citable SWIM models and scenarios on third-party platforms.

Data Layer

NoSQL databases (shown in green) were chosen due to their dynamic field types and flexible schemas. Database instances under the relational model (colored in blue) are used for fixed schemas and a more strict data consistency.

We selected a Document-based data model from the NoSQL family; implementations of this model use a JSON-like (JavaScript Object Notation) format, which has gained significant developer convenience as a result of its support in web-based applications.

An RDF knowledge base (shown in purple) stores semantically enriched data to support reasoning capabilities and sharing Linked Open Data.

Mongo DB

MongoDB is a free and open-source document-oriented database which is classified as a NoSQL database manager. MongoDB is used to store and fetch information regarding:

  • Model metadata
  • Model base scenarios
  • Input parameters
  • Output parameters
  • User generated scenarios

MariaDB

MariaDB is a free relational database management system (RDBMS). MariaDB is used to store and manage data used on the Public and Workspace layers of the Project Website.

Jena Fuseki & YASGUI

Fuseki exposes SWIM RDF triples as a SPARQL endpoint accessible over HTTP. We provide a a SPARQL endpoint interface powered by YASGUI.

References