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
];
Copyright © Cepheis 2024