Concepts, instances and interfaces
Documentation status: reference — see Maturity and evidence.
A concept declaration defines a conceptual type. Runtime instances are occurrences of that type. Interface attachment adds a conceptual view over an existing support without replacing its identity.
Concept and instance
define .:#WorkItem(me)[title::#string];
#task42:#WorkItem[title='Review proposal'];
The class/model declaration and the semantic concept declaration are distinct responsibilities. A model classified as an Entity must still declare its semantic Entity participation when it needs to participate in conceptual registration, implication and reasoning.
: versus ::
#alice:#Person;
#alice::#Customer;
: declares or types a term. :: attaches an interface to an existing support. The second form does not destructively retype #alice; it adds a conceptual interface whose distinguished support is the existing object.
define .:#Auditable(me)[auditLevel::#integer];
doc42::#Auditable;
auditBox:#Auditable(doc42)[auditLevel=2];
The named auditBox form is useful when the attached interface instance itself must be addressed.
Structural use requires a defined type
Forward annotations may be accepted in limited positions, but structural application, interface attachment and argument use require a known definition. Define a structural type before using it as an applied concept.
Design rule
Keep business identity, conceptual identity and persistence identifiers separate. Do not add a literal Me field to application metadata merely to imitate H-Logic notation.