Skip to content

Align

aligns maps your types and fields onto shared vocabularies like schema.org and Wikidata, so a field means the same thing across recipes and authors.

Syntax

aligns <ontology>/<term> attaches an ontology correspondence to a type or a field. Type-level alignments sit between the type name and the {; field-level alignments follow the field's optional ?:

forage
share type Company
    aligns wikidata/Q4830453
{
    id:         String
    name:       String aligns schema.org/name
    wikidataId: String aligns wikidata/identifier
}

Alignments stack: a type or a field can align to several ontologies at once.

Index data, not translation

Alignments are index data. The runtime carries them through to the snapshot, the hub indexes recipes and types by them, and JSON-LD output renders them as @context / @type. The runtime never synthesizes values across an alignment; it records the correspondence, it does not translate.

On the hub

Because types carry their alignments, the hub indexes recipes by the vocabularies they speak, not just by name. A consumer can find every recipe that emits a schema.org/Product, regardless of who authored it or what they named their type. Alignment is what makes records from different authors interoperable. See Hub.

See also