HiLang View
| Definition | Reference |
An element can optionally be project one or more views that allow entities to be seen as a common view type (with enumeration from the views SetSpace<>). View can be declared as
- Alias : The view is delegated to a member of the entity (e.g. Price).
- Definition : Each member of the view is mapped to an expression that provides the members value.
- Implement : The names of the view members are mapped to members of the element that have the same names.
HiLang views provided provide a mechanism to view elements with a different/summary definition - the prime examples being Node
and Edge
that allow the content of Hiperspace to be viewed a graph store.
The TOGAF is an example of an extremely complex model that can be edited as relations, and be viewed as a Graph without transformation
The Plan highlights an example of different elements providing a unified view for reporting
entity Plan.Project : Versioned
= Node (SKey = SKey, Name = Name, TypeName = "Plan"),
BI.Item (WBS = WBS,
Name = Name,
ActualCost = ActualCost,
PlanCost = PlanCost,
ImpliedCost = ImpliedCost,
Plan = Duration,
Actual = Duration,
TypeName = "Plan")
...
;
@DeltaIndex, CubeFact, CubeDimension /* dimensions for reporting */
entity Plan.Tasks.Task : Versioned
= Node (SKey = SKey, Name = Name, TypeName = "Plan-Task"),
Edge (From = Project, To = this, TypeName = "Plan-Task", Name = Name),
Plan.Tasks.SubTask (Task = this, Parent = Parent),
BI.Item (WBS = BIWBS,
Name = Name,
ActualCost = ActualCost,
PlanCost = PlanCost,
ImpliedCost = ImpliedCost,
Plan = Duration,
Actual = Actual.Duration,
TypeName = Parent = null ? "Task" : "SubTask")
...
;
view BI.Item = Node (SKey = SKey, Name = Name, TypeName = "BI-Cost-" + TypeName)
(
WBS : String,
TypeName : String
)
{
Name : String,
ActualCost : Decimal,
PlanCost : Decimal,
ImpliedCost : Decimal,
Plan : Plan.Duration,
Actual : Plan.Duration
}
[
PlanStart = Plan.Start,
PlanEnd = Plan.End,
PlanTime = Plan.Time,
ActualStart = Actual.Start,
ActualEnd = Actual.End,
ActualTime = Actual.Time
];