Skip to main content

Syndeia is a digital thread platform, part of the infrastructure of an integrated system development environment. While its capabilities are available through user interfaces we provide, such as the SysML plugins and the Syndeia Web Dashboard, the full power is realized as a set of “ready-to-integrate” services for building custom interfaces and dashboards. This involves the use of Syndeia Cloud REST API calls which can be used from data science, business analytics, visualization and other data consumer applications to build powerful analysis and automation engines.

As examples of how this works, Intercax is releasing several Jupyter notebooks with Syndeia 3.5 release that illustrate how these REST API calls may be used together to create extended reports on a particular digital thread. This accompanying blog series will highlight some key features of these notebooks.

In this post, we will introduce some of the main sections of our notebooks. Future posts will dive more deeply into the specific kinds of questions which can be asked of the digital threads.

Getting Started - Syndeia Cloud Notebook

This Jupyter notebook is available as part of the API Cookbook, which may be downloaded with the Syndeia 3.5 release software and the Syndeia Cloud Python Client by regular and evaluation license holders. Click here for more information.

All Syndeia documentation can be accessed most easily through the Help icon on the Syndeia Web Dashboard once Syndeia Cloud has been installed. In terms of thinking about these queries, it may be especially helpful to review the Syndeia data model under the “API – Overview” and “API – Swagger doc” help menus in the Web Dashboard. See the first post in this blog series. Intercax periodically offers on-line live training classes that provide a comprehensive review of all things Syndeia. Check out the Syndeia Training Program page for the next offering.

Set-up and Sign-in

Steps 1 and 2 in the Hello_Syndeia_3.5_Cloud Jupyter notebook appear in similar form in all our notebooks. We import the Python libraries we will use for analysis and display in Step 1. This includes the Python language client for the Syndeia Cloud REST API, syndeia_cloud_35x_client_sdk. In Step 2, the notebook signs in to an instance of Syndeia Cloud with the user’s account username and password, which is entered at run-time. This section contains commented-out code if LDAP authentication is preferred.

Step 3 has been added as documentation by the notebook author to supplement the specific commentary in the code sections.

Getting Repositories and Repository Types

The first part of the analysis asks questions of the Syndeia Cloud database, which stores the inter-model connections and a limited set of information about the model elements at the ends of those connections. A starting point in analyzing the Syndeia Cloud database contents is to identify what repository types and which repositories of each type are being managed by Syndeia.

 

Figure 1 Repository Types in Syndeia Cloud (partial)

 

Step 4 uses the RepositoryTypeAPI class get_repository_types() endpoint. The entries returned represent the array of different modeling tools that Syndeia currently provides integrations for. The initial table entries appear as in Figure 1.

The cell labelled Step 4b asks, “What repositories of each type are accessible to this instance of Syndeia Cloud?” The results are tabulated as in Figure 2, where several repository URIs have been masked out. For this, we used the RepositoryAPI class with the get_repositories() endpoint. Some repository types may be represented by more than one repository, especially in the File System and RESTful types. In the Syndeia Cloud instance in our example, there were 105 repositories of 22 repository types.

Get Syndeia containers (Digital Thread projects)

 

Figure 3 Syndeia Digital Thread Projects (partial)

 

The request in Step 4c uses a method, get_containers(), formulated to return a list of the Syndeia Projects, which are Containers in the Syndeia data model. Typically, each project will represent a single digital thread. A list of container names and keys is returned, but only the number of projects is printed out.

That list is used to generate a series of graph queries to count the number of current inter-model relations in each Syndeia project. The results are tabulated in Figure 3, showing a real-time record of the number of inter-model links, by project, as a particular point in time.

Fetch data in a specific integrated repository

The Jupyter notebook can also retrieve data from the federated repositories, in this case Jama Connect, via calls to the Syndeia Cloud REST API. Here we can ask questions about model elements in those repositories, whether or not they are part of a Syndeia-managed digital thread, and about the intra-model relations managed within those repositories.

Interaction with Jama (service) on Syndeia Cloud

 

Figure 4 Jama Repositories managed by Syndeia

 

The cell labelled 5a in the notebook asks, “Show me all the Jama repositories managed by this instance of Syndeia Cloud”. This query is  to the Syndeia database like those in the earlier section, not the Jama repository, but the results in Figure 4, especially the REPO key, will be useful in the subsequent queries.

 

Figure 5 Jama Projects Report

 

Step 5b asks, “Show me all Jama projects in Jama @ Intercax (REPO4)”. Before this query can be made, the user must authenticate into the Jama repository with username and password to establish that Syndeia, acting on their behalf, is authorized to see that data. Results are printed out as a list.

The take-home message is that we can ask complex questions of the Jama repository in the same notebook and the same API that we are using for the Syndeia Cloud digital threads and other repositories, such as Jama in the next section.

Syndeia Cloud Notebook - Conclusions

In this post, we have outlined the three main elements of our Jupyter notebooks,

  • The set-up and authentication into Syndeia Cloud,
  • Queries directed to the Syndeia Cloud database, and
  • Queries directed to one or more of the federated repositories via the Syndeia Cloud REST API.

In subsequent notebooks, we will expand the range of questions asked, introduce notebooks focused on specific repositories or specific systems, and different ways of reporting and visualizing the responses.

Next in this series

The next set of posts in this series will use Jupyter notebooks as the primary means for demonstrating the Syndeia API and will focus on the following topics.

Additional posts are in development and the content list will be revised on a regular basis.

Contribution by

The notebook was created by Dr. Manas Bajaj, Chief Systems Officer at Intercax, who leads product research and development, including the Syndeia platform. He focuses on new tools and technologies to support digital thread, digital engineering, and MBSE/MBSE. He was a contributor to the SysML (Systems Modeling Language) 1.0 open standard and leads the SysML v2 API and Services standards development as part of the SysML v2 Submission Team (SST).

Related Posts

Syndeia AI Agents – Part 1

Hello and welcome to a preview of Syndeia AI, a swarm of AI agents that are powered by Syndeia Cloud. These AI agents can take natural language inputs, fetch latest data from your ...
Manas Bajaj

Santa’s Mission 2024 with 8.2 billion landings made possible by Digital Threads (Day 5)

Santa has just returned from his whirlwind journey, and the workshop erupts in cheers. Elves spill into the command center, their faces glowing with joy and pride as they take in ...
Manas Bajaj

SDS Hardware, Software, and Verification Digital Threads go live (Day 4)

The air hums with the sound of high-tech enchantments and the cheerful chatter of elves hard at work. Twinkling fairy lights hang from the rafters, casting a warm, festive glow. ...
Manas Bajaj

3D Sleigh Assembly model coordinated with System Architecture (Day 3)

It is Day 3 and Tony Sparkgear (Chief-Hardware-Elf) had his team of elves are working hard to create a 3D model in NX parametric software to represent the Sleigh Assembly as shown ...
Manas Bajaj

Sleigh Delivery System – Architecture & Digital Thread Dashboard (Day 2)

It is 7 AM and North Pole is bathing in the first light of dawn reflecting from the snow. The Great Hall, ground zero of operations and logistics, is hustling and bustling with ...
Manas Bajaj

North Pole Calls Intercax for Digital Mission Possible (Day 1)

Today, Intercax received a call from Mrs. Claus, the heart and soul of operations and logistics at North Pole. Seven days from the finale and at a time when hope and love cannot ...
Manas Bajaj

SysML v2 and Digital Threads with Syndeia

SysML v2 is the next generation Systems Modeling Language for modeling complex systems that significantly enhances precision, expressiveness, usability, interoperability, and ...
Manas Bajaj

Digital Thread Conference 2024: A Milestone for Digital Engineering

AI for DT & DE | Part 1 – Connecting with OpenAI as a service in Syndeia®

Introduction – AI for Digital Threads and Integrated Digital Engineering Welcome to our new blog series – Artificial Intelligence (AI) for Digital Threads and Integrated Digital ...
Manas Bajaj