Create IMF block types
An IMF block type composes a reusable structure. It can constrain attributes, reference terms, terminal types, and nested block types.
Prepare the block¶
- Target library, name, description, and change justification.
- Aspect and optional classification.
- Attribute-type and reference-term constraints with cardinalities.
- Terminal-type constraints with cardinalities.
- Sub-block-type constraints with cardinalities.
- Sources, mappings, package context, and optional
ReplacesIRI.
Create or identify the reusable attributes and terminals first. For recursive-looking structures, verify that the selected sub-block is intentional and that the cardinality does not make an impossible required cycle.
Create in the UI¶
- Open Create > IMF > Block type.
- Select aspect and optional classification.
- Add attribute, reference-term, terminal, and sub-block constraints.
- Verify each referenced IRI and cardinality.
- Save as Draft and inspect View draft.
- Edit the Draft if needed, then submit it for review.
Use the API¶
- Create:
POST /imf/blocktypes - Update Draft:
PUT /imf/blocktypes?iri=<encoded-Draft-IRI> - Submit:
PUT /status/submit?iri=<encoded-Draft-IRI> - Retrieve complete SHACL:
GET /api/blocks/complete-imf-shacl?blockId=<lowercase-guid>
With Reader or Creator access, the complete-SHACL endpoint supports JSON-LD, plain text, Turtle, and TriG. The block ID must be a lowercase GUID. Consumers should still inspect the block's status and provenance before treating the assembled graph as approved production content.