Skip to content

Link a term across two contexts

  1. If your domain has no atlas, create a file named atlas.yaml next to the glossaries.
  2. Write the domain and the titles into the atlas.
domain: commerce
titles:
- {language: de, text: Atlas der Domäne Commerce}
- {language: en, text: Atlas of the Commerce domain}
  1. List both glossaries under glossaries, each as a URI reference. A relative reference resolves against the directory of the atlas.
glossaries:
- sales.glossary.yaml
- billing.glossary.yaml
  1. Add the link under links. Write from and to as <boundedContext>:<id>.
links:
- from: sales:customer
to: billing:account
relation: close_match
note: Dieselbe Person, in Sales als Kunde geführt, in Billing als Konto.
  1. Pick the value of relation from these five:
  • exact_match, if you can swap the two terms in every sentence of both contexts.
  • close_match, if the term on the other side stands in for this one in a translation, but not in every sentence.
  • broad_match, if the term on the other side covers more than this one.
  • narrow_match, if the term on the other side covers less than this one.
  • related_match, if the two terms belong together and neither one covers the other.
  1. Write into note how the translation carries the term.
  2. Validate the atlas together with both glossaries.

The atlas states the relation between Customer in Sales and Account in Billing. Both glossaries stay unchanged, and each context keeps its own word.

A reader of the Sales glossary sees the link next to the term customer.

If from and to name terms of one bounded context, the invariant AMappingJoinsTwoDifferentSchemes fires. For two terms of one context, use related inside the glossary instead.

Written and maintained by Tobias Brennecke.tobiasbrennecke.com