HiLang 2.5.52
dotnet add package HiLang --version 2.5.52
NuGet\Install-Package HiLang -Version 2.5.52
<PackageReference Include="HiLang" Version="2.5.52" />
<PackageVersion Include="HiLang" Version="2.5.52" />
<PackageReference Include="HiLang" />
paket add HiLang --version 2.5.52
#r "nuget: HiLang, 2.5.52"
#:package HiLang@2.5.52
#addin nuget:?package=HiLang&version=2.5.52
#tool nuget:?package=HiLang&version=2.5.52
HiLang
HiLang is a minimal high-level language to describe the schema of a domain, taking inspiration from protobuf (.proto models) for hierarchical structures and SQL DML for entities, relations and views.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- FSharp.Core (>= 10.1.203)
- FsLexYacc (>= 11.3.0)
- FsLexYacc.Runtime (>= 11.3.0)
- Microsoft.CodeAnalysis.CSharp (>= 5.3.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on HiLang:
| Package | Downloads |
|---|---|
|
Hiperspace.SQL
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.5.52 | 5 | 5/9/2026 |
| 2.5.50 | 129 | 4/24/2026 |
| 2.5.47 | 116 | 4/15/2026 |
| 2.5.43 | 614 | 4/1/2026 |
| 2.5.39 | 3,827 | 3/20/2026 |
| 2.5.35 | 1,171 | 2/27/2026 |
| 2.5.33 | 4,459 | 2/14/2026 |
| 2.5.32 | 6,327 | 1/30/2026 |
| 2.5.29 | 7,689 | 1/17/2026 |
| 2.5.28 | 9,404 | 12/31/2025 |
| 2.5.26 | 10,424 | 12/21/2025 |
| 2.5.21 | 12,621 | 12/10/2025 |
| 2.5.18 | 14,677 | 12/3/2025 |
| 2.5.8 | 14,166 | 11/15/2025 |
| 2.5.2 | 14,185 | 11/6/2025 |
| 2.5.1 | 14,163 | 10/23/2025 |
| 2.5.0 | 14,165 | 10/20/2025 |
| 2.4.6 | 14,175 | 9/23/2025 |
| 2.4.4 | 14,258 | 8/7/2025 |
| 2.4.2 | 14,137 | 7/28/2025 |
https://www.cepheis.com/hiperspace/20260509
# Overview
This release is a minor update to support the presentation Cube data in Graph views with **Hiperspace.DB**, and minor updated to external references.
## Cube enhancement
### Aggregation
Hiperspace **Cubes** are declarative and stream-calculated by `Hiperspace.DB`, and viewable in graphs as a *Node* with Measures and a `TypeName` begining with `"Cube:"` (for aggregates) or `"Fact:"` for leaves within a *Cube* hierarchy. This release changes the presentation of *Cube* nodes that do not relate to any underlying facts:
* Do not return a facts collection when the `Facts` property is zero
* Do not return leaf dimensions (to a Pivot-Table) when there are no child dimensions or Measures
### Validation
Validation rules have been relaxed to create **cubes** even if it doesn't have any measures. **Cubes** provide summary information for a single or multiple *Dimensions*, but sometimes the only *measure* you need is the number of connections included:
```
entity Customer = Node () (Id : Int32) {Name : String} [TypeName = "Customer"];
entity Order = Node (), Edge (From = Customer, To = this, TypeName= "Order"), Edge_ (From = this, To = Product, TypeName = "Ordered" )
(Id : Int32) {Customer : Customer, Product : Product} [Name = Customer.Name + "-" + Product.Name, TypeName = "Order"];
entity Product = Node () (Id : Int32) {Name : String} [TypeName = "Product"];
```
[image]Sites/hiperspace/cube/spread.svg[/image]
If we're not interested in each order, a **Cube** can be used to simplify the graph to
[image]Sites/hiperspace/cube/summary1.svg[/image]
by changing the model to
```
@CubeDimension entity Customer = Node () (Id : Int32) {Name : String} [TypeName = "Customer"];
@CubeFact entity Order (Id : Int32) {Customer : Customer, Product : Product};
@CubeDimension entity Product = Node () (Id : Int32) {Name : String} [TypeName = "Product"];
```
If any of the *dimensions* to a **Cube** can be viewed as a *Node*, the `_Cube` and `_Fact` elements become a `Node` with *Drilldown* `Edge` to each dimension.
This change enables **Cube** to be used to simplify a *graph*, even when the only thing being measured is the number edges being replaced.
### View enhancement
The addition of the Cube summaries enhances the presentation of Graphs but introduced a level of detail that might be a distration for analysis. If you have a trade *cube* with dimensions {Sector, Product, Country} and drilldown to the lowest level of detail, a Graph search will include each level of detail all with *node* `"Cube:Contract_Cube"` and *edges* `"Cube:Drilldown"` and `"Cube:Dimension"`. Too enable more targeted analysis, *node* `TypeName` has been enhanced to include the number of dimensions included in each cube:
* {Sector} Cube has TypeName `"Cube:Contract_Cube:1"` with Sector->Cube (TypeName `"Cube:Drilldown:1"`
* {Sector, Product} Cube has TypeName `"Cube:Contract_Cube:2"` with Sector->Cube (TypeName `"Cube:Drilldown:2"`
* {Sector, Product, Country} Cube has TypeName `"Cube:Contract_Cube:3"` with Sector->Cube (TypeName `"Cube:Drilldown:3"`
---
## Element enhancement
The `IElement` interface of `Element<TElement>` has been updated to include an `ISetSpace` reference for the transformation of `ICubeFact` *facts* to the acyclic directed graph needed to render **Cubes** as a *Pivot-Table* with *drilldown* to futher details.
## HiLang enhancement
Extent expressions do not *normally* need `#id` to be recorded because they are not stored (calculated when needed from an element), but this is not the case for cube measures. Source editing has been added to carry forward the same `id` as the model changes.
---
Release also includes updates to referenced libraries