Showing Filtered “Transitive” Links in Tables

Problem

We have created some links between Cradle items but we only want to see a filtered set of these links in our table.

Rationale

Cradle has a unique ability to follow cross references transitively. This means that although an item might not be directly cross referenced from it’s source, it might be linked indirectly through another item/item type.

Cradle also has the ability to name cross references referred to as link types and even group sets of link types together referred to as link groups.

Combining these features can allow flexibility for the output of items that have some relationship to the source which will reduce the number of direct cross references required.

For example, we would like to show dependencies between item type A and item type C but ONLY those that have a yellow and blue link type.

Model showing defined Links Between Item Types
Defined Links Between Item Types

We can see in the screenshot below that only A-6 and A-11 are transitively linked to items of item type C with both a blue and a yellow link:

Showing Direct Links in a Nested Table
Direct Links in a Nested Table

Setting Link Groups

We can define a link group in Project Setup in which we can select from the available link types.

Screenshot showing how to define a link group
Defining Link Groups

This defined link group can be used in navigations.

Defining Navigations

Navigations allow us to specify how we would like to follow the links that have been created between items. This is a very powerful feature as we can also specify that we would like to follow links transitively:

Defining a Navigation to follow Cross References transitively in the Navigation Details Window
Defining Navigations to Follow Cross References Transitively

Using the Navigation in Views

We can now use the navigation to specify that we want to show links between item type A and item type C that are followed transitively but we ONLY want to show the group of links YELLOW AND BLUE. Remember that there are NO DIRECT links between these two item types. The cross references are from item type A to item type B and also from item type B to item type C:

Defining a View to allow links to be shown transitively between item
Using the Transitive Navigation in Views

Applying this view, we can see that only the YELLOW AND BLUE links are shown in the table. The remainder appear blank:

Output of a table that shows links that are transitive when they exist
View Showing Transitive Cross References

Using the Navigation in Queries

We might wish to only show items in our table that have these links in preference to showing all items and just appearing blank where the transitive link does not exist. We can achieve this in the Query Details dialog:

Using the Query Details Window to filter items that do not have any indirect transitive links
Filtering Items Non-Linked Items in a Query

This will now filter out of the list any items that do not match the navigation criteria:

Screenshot showing the resulting table that only shows items where a transitive link exists
Link Table Only Showing Items Where Transitive Link Exists

Showing Path in a Tree Style

If we followed the path in a tree style showing downward links, we can see that item type A (A-6 and A-11) are not directly linked to item type C (C-1). They go through item type B (B-2):

Screenshot showing the direct links between items in a tree style to prove that the items are not directy linked
Links shown in Tree Style

Summary

Cradle provides a unique ability to allow cross references to be followed transitively (through other items).

Transitive navigations can be applied to views and queries. This provides a very powerful filtering mechanism that allows us to show non-direct dependencies between items.