Essentials: core & controlledTerms
Extensions: all the others
Linking dimensions:
- property: required or optional
- relation: one-to-one or one-to-many
- selection: one type or multiple types (category)
- origin: same module, essential module and extension module
Categories scenarios:
- essential category: composed of schemas from essentials only
- extension category: composed of schemas from extensions only
- mixed category: composed of schemas from essentials and extensions
Dependency types:
- true: link between modules is by all means unavoidable
- soft: link between modules is avoidable
- i: because property is optional
- ii: selection from mixed category
Linking scenarios:
-
property required, relation one-to-one or one-to-many with one type as selection:
✅ schema A truly depends on schema B within the same module
✅ schema A in core truly depends on schema B in controlledTerms
❌ schema A in core or controlledTerms truly depends on schema B in extension module
✅ schema A in extension truly depends on schema B in essential module
✅ schema A in extension 1 truly depends on schema B in extension 2 (okay but we need to define extension dependency tree)
-
property required, relation one-to-one or one-to-many with category as selection:
✅ schema A truly depends on schemas B or C within the same module
✅ schema A in core truly depends on schemas B or C in controlledTerms
✅ schema A in extension truly depends on schema B or C in essential module
❌ schema A in core or controlledTerms truly depends on schema B or C in extension module(s)
✅ schema A in core or controlledTerms truly depends on schema B in core or controlledTerms and softly depends on schema C in extension module(s)
-
property optional, relation one-to-one or one-to-many with one type or category as selection:
✅ schema A softly depends on schemas B (or C) within the same module
✅ schema A in core softly depends on schemas B (or C) in controlledTerms
✅ schema A in extension softly depends on schema B (or C) in essential module
⚫ schema A in core or controlledTerms softly depends on schema B (or C) in extension module(s)
✅ schema A in core or controlledTerms softly depends on schema B in core or controlledTerms, or schema C in extension module(s)
Essentials: core & controlledTerms
Extensions: all the others
Linking dimensions:
Categories scenarios:
Dependency types:
Linking scenarios:
property required, relation one-to-one or one-to-many with one type as selection:
✅ schema A truly depends on schema B within the same module
✅ schema A in core truly depends on schema B in controlledTerms
❌ schema A in core or controlledTerms truly depends on schema B in extension module
✅ schema A in extension truly depends on schema B in essential module
✅ schema A in extension 1 truly depends on schema B in extension 2 (okay but we need to define extension dependency tree)
property required, relation one-to-one or one-to-many with category as selection:
✅ schema A truly depends on schemas B or C within the same module
✅ schema A in core truly depends on schemas B or C in controlledTerms
✅ schema A in extension truly depends on schema B or C in essential module
❌ schema A in core or controlledTerms truly depends on schema B or C in extension module(s)
✅ schema A in core or controlledTerms truly depends on schema B in core or controlledTerms and softly depends on schema C in extension module(s)
property optional, relation one-to-one or one-to-many with one type or category as selection:
✅ schema A softly depends on schemas B (or C) within the same module
✅ schema A in core softly depends on schemas B (or C) in controlledTerms
✅ schema A in extension softly depends on schema B (or C) in essential module
⚫ schema A in core or controlledTerms softly depends on schema B (or C) in extension module(s)
✅ schema A in core or controlledTerms softly depends on schema B in core or controlledTerms, or schema C in extension module(s)