include "primitives.alh" Class Float {} Class String {} Class Block{} Class ConstantBlock{ name = "Constant" value : Float { target_lower_cardinality = 1 target_upper_cardinality = 1 } } Class AdditionBlock{ name = "Addition" } Class NegatorBlock{ name = "Negator" } Class MultiplyBlock{ name = "Multiply" } Class InverseBlock{ name = "Inverse" } Class ProbeBlock{ name = "Probe" name : String { target_lower_cardinality = 1 target_upper_cardinality = 1 } } Association Link(Block, Block){} Inheritance (ConstantBlock, Block){} Inheritance (AdditionBlock, Block){} Inheritance (NegatorBlock, Block){} Inheritance (MultiplyBlock, Block){} Inheritance (InverseBlock, Block){} Inheritance (ProbeBlock, Block){}