Release 1st April 2026
Change Control note Hiperspace --version 2.5.43 HiLang --version 2.5.43
Overview
This release includes minor enhancement to the graph functionality when used with Hiperspace.DB graph view. Hiperspace.DB provides a graph view that aggregates alll databases, so that graph shows all connections both local and foreign. In the following example Togaf.Has.WorkPackage includes a value ProjectKey that could be a stringified SKey reference to a project plan in another database. When the project is viewed as a graph in Hiperspace.DB, the graph includes paths between a project plan and strategic goals.
segment Togaf.Has.WorkPackage : Togaf.Base
= Node ( SKey = SKey, Name = Name, TypeName = "AF-WorkPackage"),
Edge (From = owner, To = this, Name = Name, TypeName = "AF-Has-WorkPackage"),
Togaf.Edge_ (To = owner, From = this, Name = Name, TypeName = "AF-WorkPackage-For"),
Togaf.Edges (From = this, To = Project, Name = Name, FromTypeName = "AF-WorkPackage-Plan", ToTypeName = "AF-Plan-WorkPackage"),
Graph.HiperEdge = StrategicEdges #2675
{
ProjectKey : String #29
}
[
"All Togaf.Edges that can be projected as Transitative Togaf.Edges to a Business Goal"
@Once
StrategicEdges = StrategicEdge(this),
Project = externalnode(ProjectKey)
];
For efficiency, the SKey property has been changed from a Base64 encoding of the key to add the option of a database prefix. The Node SKey "Togaf.ascxyz==" will only search for matching items "abcxyz==" in the Togaf database. Within the Togaf database, only the specific segment is searched because the key includes the #Id of the element set.
the following SQL query would return a table of all project plans and Goals that can be reached through the {component, service, function, process, capability, etc} that are in some way associated with the Work Package
SELECT project.Name AS "Project Name"
, goal.Name AS "Goal Name"
, project.SKey as "Project Id"
, goal.SKey as "Goal Id"
FROM Nodes as project
, project.Tos as planedge
, planedge.To as workpackage
, workpackage.Tos as workedge
, workedge.To as goal
WHERE project.TypeName = 'Plan'
AND planedge.TypeName = 'AF-Plan-WorkPackage'
AND workpackage.TypeName = 'AF-WorkPackage'
AND workedge.TypeName = 'Strategic-Goal'
AND goal.TypeName = 'AF-Goal';
NB the five table join uses implicit joins in Hiperspace.SQL because project.Tos and workpackage.Tos are Set<Edge> properties that are implicitly filtered by the source Node