BlockML Documentation
Documentation
Documentation
Documentation
Handbook contents
Getting Started
— A first orientation to BlockML and the problems it is designed to solve.
Introduction to BlockML
— What BlockML is and how BML and BOM differ.
Core Use Cases
— The three problems BlockML is designed to solve.
Foundations
— Blocks, definitions and instances, inheritance, contracts, and identity.
Everything Is a Block
— BlockML's unifying ontological principle.
Blocks
— Defining, naming, and referencing a Block.
Block Definitions and Instances
— The Block-versus-instance distinction.
Inheritance
— Specialization via baseType.
Contracts
— Composable member fragments distinct from inheritance.
Namespaces and Fully Qualified Names
— Packages, Libraries, and FQNs.
Identifiers and References
— Syntax-only identifiers versus validated references.
The Type System
— The four ValueType kinds and generic type parameters.
The Type System
— An overview of the four ValueType kinds.
Primitive Types
— Atomic scalar ValueTypes.
Struct Types
— Composite named-field ValueTypes.
Enum Types
— Closed sets of named values.
Primitive Entities
— Wrapping primitive values as Block instances.
Types and Values
— The general type-versus-value distinction.
Generic Types
— Generic type parameters, binding, and forwarding.
Members
— Properties, Aggregations, Associations, and Capabilities.
Members
— An overview of the Block member model.
Properties
— Typed value members.
Aggregations
— Owned collection members.
Associations
— Non-owning instance-to-instance links.
Capabilities
— Block behaviour expressed as members.
Member Inheritance and Overrides
— Combining inherited members with the override flag.
Visibility
— Member and Sub-Block visibility.
Multiplicity and Collections
— Optional, singular, and multiple values.
Behaviour & Values
— Constraints, suggestions, expressions, and value configuration.
Constraints
— Declarative validation rules.
Suggestions
— Non-mandatory modeling guidance.
Expressions
— The BlockML expression language.
Value Configuration
— Configuring ValueType instances.
Composition & Structure
— Filling aggregations, Sub-Blocks, embedded Blocks, and documentation.
Composition
— Filling aggregations through composition.
Sub-Blocks
— Nested Block definitions.
Embedded Blocks
— Embedded Block definitions and instances.
Documenting Blocks
— The Block documentation model.
BML: The Authoring Format
— BML as the human-authored format and its namespace rules.
BML: The Authoring Format
— BML as BlockML's human-authored format.
BML Namespaces
— XML namespace usage in BML.