OBJECTIVES:
The objective of this exercise is to help new users of Syndeia graph analysis to formulate Gremlin queries to analyze their graph with the Syndeia Web Dashboard. VOLTA is a simulation repository from Esteco Inc. The specific learning objectives of this exercise are to create lists of
· VOLTA artifacts of a specific artifact type
· VOLTA artifacts connected as part of a specific Syndeia Project
PREPARATION:
This exercise assumes the student has
· Syndeia Cloud 3.5 installed with a valid user account, and
· An existing Syndeia graph containing VOLTA elements connected to elements in other repositories.
Because the content of your Syndeia graph will be different, the specific examples in the following exercise instructions are only a guide and example for your actions. It is generally advisable to carry out these exercises in a non-production repository, a “sandbox”, set up for training and practice purposes.
See the tutorials under Syndeia Cloud Web-Dashboard/Part 19 – Syndeia Cloud Graph Analysis for an overview of this feature.
BACKGROUND - SYNDEIA CLOUD DATA MODEL:
Figure 1 provides a simplified schema for elements in the Syndeia Cloud graph. All graph nodes are either Repositories, Containers, or Artifacts, where each Artifact is owned by a Container and Each Container is owned by a Repository. Each has a Type; the set of Container Types and Artifact Types are owned by the Repository. How the VOLTA data model maps to the Syndeia Cloud data model is discussed in the next section.
Figure 1 : Syndeia Cloud Schema (simplified)
BACKGROUND - ESTECO VOLTA:
As of Syndeia release 3.5, the Syndeia Web Dashboard can extract and display some model information from a VOLTA repository. Figure 2 shows a tree view of this information, with labels identifying the VOLTA element types. Note the different icons. The label color coding indicates how the VOLTA element type is mapped to the Syndeia Cloud element types: Repository (green), Container (red) and Artifact (blue).
The Syndeia VOLTA integration supports a large number of standard VOLTA artifact types through the Search function, but we will only demonstrate Products and Parts in this exercise. A more complete diagram of the VOLTA data model as it is understood by Syndeia is available through the web dashboard help menu on the left.
Figure 2 : Tree view of VOLTA repository
It is also important to understand the limitations of graph queries with respect to VOLTA repositories. As of Syndeia 3.5, graph queries cannot extract the internal structure of a VOLTA repository, i.e. they cannot be used to obtain the full structure of the VOLTA repository or internal (intra-model) relations between VOLTA artifacts. In this way, graph queries are different than the Tree View or Graph View (Digital Thread Explorer) capabilities of the Repositories page in the Syndeia Web Dashboard. Graph queries are most useful in viewing inter-model connections from VOLTA elements to other repositories.
EXCERCISE:
Log on to the Syndeia Cloud Web Dashboard (see Video 1.9) and click on the Graph Queries icon on the left border.
The first task is to compile a list of VOLTA Artifacts of a specific type. Per Figure 1, ArtifactTypes are owned by (specific to) a Repository. We typically want to begin by creating a list of Artifact types available in such a Repository.
If we use Query Builder (Figure 3), we select ArtifactType from the pull-down menu under Label.
Figure 3 : Graph Queries page (icon outlined in red) – Query Builder
To restrict the list of ArtifactTypes to our current VOLTA repository, we click Filters. We will filter by the name of our Repository, so we select Repository from the pull-down menu at the top marked Property of. Under Property Key, we select the Name property and under Property Value, we enter VOLTA @ Intercax. We then click the Plus (+) button to add the filter in the bottom list and the window should look similar to Figure 4. Click Close.
Figure 4 : Query Builder Filters window
Back on the Graph Queries page, click Run. The results, a list of all ArtifactTypes in VOLTA @ Intercax, may be displayed in table form as in Figure 5. Key ArtifactType properties in the table are Name and Key because we will use these in the next search. Click the Exports icon to export the list as a CSV file for future reference, if desired.
Note: only VOLTA artifact types actually present in the Syndeia graph will appear in this list, i.e. there must be at least one example of the artifact type connected to another domain by an inter-model connection in order for it to make the list.
Figure 5 : Graph Queries page, Artifact Types results in table format (Export icon highlighted in red)
4. Note at the top of Figure 5, the Query Builder utility has created a Gremlin query. We could have performed the same search with the same results by going to the Raw Query mode and entering this query directly.
g.V().has('sLabel','ArtifactType').where(outE().has('sLabel','ownedBy').inV().has('name','VOLTA @ Intercax'))
5. The final part of the first task is to generate a list of all Artifacts of type Session within the VOLTA @ Intercax Repository. Note that Syndeia will return only those VOLTA Parts that are connected within the Syndeia Cloud graph or own elements that are connected within the Syndeia Cloud graph, not all Sessions in the repository.
We can search by ArtifactType Name (“Session”) or Key (ART-TYPE564), which we got from the table in Figure 5. Generally, it is better to search by Key, which is unique within the Syndeia Cloud database, rather than Name, which is not unique.
If we use Query Builder, we select Artifact from the pull-down menu under Label, as in Figure 6.
Figure 6 : Query Builder, Artifact search
To restrict the list of Artifacts to the VOLTA Requirement type, we click Filters. We will filter by the ArtifactType Key, so we select ArtifactType from the pull-down menu at the top marked Property of. Under Property Key, we select the sKey property and under Property Value, we enter ART-TYPE564, which we took from the table in Figure 5. After we click the Plus (+) icon, the Filters window should look like Figure 7. Click Close.
Figure 7 : Query Builder Filters window, filter by Artifact Type sKey
6. Back on the Graph Queries page, click Run. The results, a list of all Artifacts of type ART-TYPE564, which is owned by the repository VOLTA @ Intercax, may be displayed in table form as in Figure 8. Click the Exports icon to export the list as a CSV file for future reference, if desired.
Figure 8 : Graph Queries page, Artifacts results in table format, truncated (Export icon outlined in red)
7. Note at the top of Figure 5, the Query Builder utility has created a Gremlin query. We could have performed the same search with the same results by going to the Raw Query mode and entering this query directly.
g.V().has('sLabel','Artifact').where(outE().has('sLabel','hasType').inV().has('sKey','ART-TYPE564'))