Category: definitions
Definitions come in different flavours. The components of a
definition element mainly fulfill the role of
configuration files in other software.
One Unit can carry multiple b:definition blocks,
which can be made conditionally active with the selector. Each block
can start with using (b:use ) other existing definitions
(possibly contained in other Units (like the Namespace Unit).
Grouping constants: set
Constants form groups, like "enumerates" in programming languages.
They are also represented by Units. Their grouping is expressed in
the Role of those Units. Sometimes, you need to address a Set of them,
for instance to give someone some set of access rights.
Within the b:Set , you can decide to explicitly
restrict a constant group, to explicitly only b:include
a few, or take all but b:exclude a few.
Unit references: has
A units may define relations to other Units: it b:has
additional references. These relations are references
(b:UnitRef ) with possible attributes.
When many Units in a Collection have a structurally consistent
relation to a different Collection, than that other Collection is a
b:shadow of the first.
Computing: let
Using declarative programming, you can implement filters. Mostly,
these are used in when and unless within
the b:selector .
Schema components
b:definitions
-
Definitions are used to regulate Units and its dependencies.
Those are grouped and reusable by other Units via b:use .
b:exclude
-
Forbid some values for a certain role, in a b:set .
b:has
-
A unit has references to another unit for a certain
reason.
b:include
-
Permit some values for a certain role, in b:restrict .
b:let
-
Name an expression.
b:set
-
Configure the set of constants.
b:shadow
-
Map the name of one Unit to something else, or all units in a
collection to units in a different collection.
b:use
-
Refer to knowledge inside another Unit.
mark@overmeer.net
Web-pages generated on 2023-12-19
|