Theory
Several standards can coexist in one architecture
Real projects rarely have the luxury of one perfect standard. The professional move is not to pick one winner and discard the rest, but to assign each standard a job boundary and make the overlaps explicit.
Pattern 1 — FIBO + ACORD in an insurance platform
Use ACORD for carrier-facing policy, coverage, party-role, and claims exchange semantics. Use FIBO where the same platform also feeds finance, treasury, or regulatory reporting that expects contracts, legal entities, and ownership/control semantics.
A good boundary is: ACORD owns insurance workflow meaning; FIBO owns financial contract and legal-entity meaning. A local Policy class can anchor to both without pretending the two standards are identical.
Pattern 2 — GO + Uberon / ChEBI in a life-science workflow
Use GO for function, process, and component annotations. Bring in Uberon when anatomical context matters and ChEBI when the chemistry itself matters. Do not force GO to own anatomy or chemicals; that breaks the orthogonality the OBO ecosystem relies on.
Pattern 3 — schema.org + GS1 on the public web
Use schema.org for broad crawler-friendly publication and GS1 for product identity and traceability semantics. Multi-typing the same payload is normal here because each standard serves a different consumer.
The operating rule
When standards overlap, ask four questions:
- Which one owns the external contract?
- Which one owns deeper domain semantics?
- What is the honest mapping predicate at the seam?
- Which local class or identifier becomes the stable bridge?
If you cannot answer those four questions, you do not yet have an architecture — you have two vocabularies colliding in the same repo.
