Skip to content

Proposal: use the BODS RDF Vocabulary as the semantic backbone for the ownership / control / UBO terms (Semantic Reference column + vocabulary alignment) #58

Description

@StephenAbbott

Summary

The ownership-related rulebooks (rb-ownership, rb-control, rb-ubo) define rich attribute tables, but their Semantic Reference columns are still empty, and the EBW Vocabulary v0.1 does not yet contain any terms for ownership stakes, control mechanisms, indirect ownership chains or interest types. This is exactly the "semantic reuse vs. semantic innovation" question raised as Q001/Q002 in Semantic_Intake_template.md.

I'd like to propose that the Beneficial Ownership Data Standard (BODS) RDF Vocabulary — an open standard (Apache-2.0/CC) maintained by Open Ownership that models the ownership and control of legal persons and legal arrangements — be adopted as the semantic backbone for this part of the model. It maps almost one-to-one onto the enumerations the rulebooks already use, and it can be referenced directly or wired in via alignment axioms, without forking. I'm happy to do the work and bring it to the semantics group.

A worked crosswalk is below.

Where I'm coming from

I work on beneficial ownership transparency, open company data infrastructure and data standardisation (currently via the Global Open Data Integration Network, in partnership with GLEIF), and I've been in contact with the EBW vocabulary and UBO rulebook teams by call and email about this. I'm raising it here so the proposal sits alongside the open question the group has already flagged. This is an offer to help wire things up, not a request to change direction - the convention is the group's to set.

The gap I observed

  • The Semantic Reference column is empty (... / --) throughout the rulebooks catalogue — not only in the three ownership rulebooks, but in the more mature ones (rb-company-info, rb-eucc, rb-pid) too. So this is a project-wide wiring decision, not a single-rulebook oversight.
  • The EBW Vocabulary v0.1 (https://w3id.org/ebwv) has no beneficial-ownership terms. Its only owner property is scoped to BankAccount; it has LegalRepresentative, the partner roles (GeneralPartner / LimitedPartner / StatutoryPartner) and subscribedCapital, but nothing for ownership/control interests, stakes, or indirect chains.
  • rb-ownership, rb-control and rb-ubo therefore each re-define ownership and control as flat enumerated strings (ownership_category, control_mechanism, determination_methodology) with no semantic anchoring.

Why BODS fits

EBW and BODS operate at different, complementary layers, which is what makes this an alignment rather than a competition:

  • EBW is the verifiable-credential / eIDAS2 envelope: SD-JWT VC encoding, selective disclosure, vct types, trust anchors, status lists, wallet binding, and a range of attestation types (A1, posted-worker, payment terms, bank account, EUCC) that have nothing to do with ownership data. BODS has nothing to say here and shouldn't.
  • BODS is the ownership-and-control data model. The two meet at exactly the Person / LegalEntity / Company classes and the notion of an ownership-or-control interest.

Within that overlap, BODS already handles several things the current flat enums cannot:

  • The relationship is a first-class object. BODS models the relationship statement (subject ↔ interestedParty, carrying interests[]), so indirect ownership through intermediate entities is represented explicitly via intermediate entity statements + directOrIndirect. The current legal_entity_identifiers array + single total_ownership decimal cannot unambiguously express a multi-tier chain. (rb-ubo itself notes the UBO list is derived by applying the ≥25% threshold to the Ownership and Control lists — i.e. the Ownership/Control lists are the graph, and the UBO list is a query over it. That is precisely the BODS relationship-graph-vs-derived-view distinction.)
  • directOrIndirect is a typed property on the interest, kept separate from the interest's nature — avoiding the combinatorial blow-up of folding "Direct/Indirect ownership" into the same enum as "Control through voting rights."
  • share is a range, not a point: exact or minimum/maximum/exclusiveMinimum/exclusiveMaximum. This matters for banded disclosures, which is how the EU beneficial-ownership submission formats express ownership percentages.
  • Edge cases are codelisted: beneficialOwnershipOrControl (boolean), unknownInterest, unpublishedInterest, and the UnspecifiedReason codelist (no beneficial owners; subject / interested party exempt from disclosure; information unknown to publisher) — covering the AMLR scenarios currently left as open items in the rulebooks.
  • Append-only history (recordId + recordStatus new/updated/closed, statementDate) is complementary to the credential envelope's issuance_date/expiry_date + status-list revocation. The envelope governs credential validity; BODS governs the history of the ownership facts. The two layers do not overlap.

The end state worth aiming for: EBW credential payloads whose ownership/control claims are BODS-conformant or losslessly BODS-mappable — so a wallet-issued UBO attestation can round-trip to a BODS statement for AMLR Art. 60/62 register submission and for the cross-check against Ownership/Control lists that rb-ubo §4.2.10 already mandates.

Proposed crosswalk

Prefixes: bods: = https://vocab.openownership.org/terms# · codes: = https://standard.openownership.org/codelists#

The three rulebook enumerations overlap heavily and collapse onto BODS interest types:

Rulebook enum value (rb-control / rb-ubo / rb-ownership) BODS interest type Held-via
Voting rights / Control through voting rights bods:VotingRights codes:Direct / codes:Indirect
Direct shareholder / Direct ownership bods:Shareholding codes:Direct
Indirect shareholder / Indirect ownership bods:Shareholding codes:Indirect
Board control / Power to appoint or remove management / Control through right of appointments bods:AppointmentOfBoard (or bods:BoardMember / bods:BoardChair)
Management / Executive roles bods:SeniorManagingOfficial
Special shares (golden shares) bods:VotingRights (+ share weighting) or bods:ControlViaCompanyRulesOrArticles
Contractual rights / veto / Control through formal or informal agreements bods:RightsGrantedByContract / bods:ConditionalRightsGrantedByContract
Control through distribution of profits / Holder of convertible rights bods:RightToProfitOrIncomeFromAssets / bods:RightsToProfitOrIncome
Trustee bods:Trustee
Settlor / Beneficiary / Protector (trust roles, rb-ubo §2.8.2) bods:Settlor / bods:BeneficiaryOfLegalArrangement / bods:Protector
Control through nominee arrangements bods:Nominee / bods:Nominator
Dominant influence / Influence via parent or holding company / acting in concert / family bods:OtherInfluenceOrControl codes:Indirect where via parent

Structural mapping:

  • NaturalPerson → BODS person statement (personType; names with type bods:Legal; birthDate; nationalities; addresses with type bods:Residence).
  • LegalPerson → BODS entity statement (entityType; name; identifiers keyed on LEI / EUID; addresses with type bods:Registered).
  • The stake / ownership object → BODS relationship statement with interests[] (type, directOrIndirect, beneficialOwnershipOrControl, share).

In effect, ownership_category and control_mechanism already are bods:InterestType — they are just currently unanchored.

Suggested approach (alignment, not replacement)

A few options for how the Semantic Reference could be expressed, in rough order of preference:

  1. Vocabulary-first. Add ownership/control/interest classes and properties to vocab/src/vocabulary.yml, each defined with explicit alignment to the BODS terms (rdfs:seeAlso / owl:equivalentClass / skos:closeMatch). The rulebooks' Semantic Reference columns then point at the new ebwv: terms, which carry the BODS alignment. This keeps EBW self-contained while remaining interoperable, and keeps the decision where it belongs — in the vocabulary the group owns.
  2. Direct external reference. The Semantic Reference columns reference bods: / codes: IRIs directly. Lighter, but couples the rulebooks to an external namespace.
  3. Hybrid / crosswalk artefact. Ship a standalone crosswalk (markdown or a SKOS mapping file) and reference it, decoupling the decision from individual rulebook edits.

I'd lean towards (1), but the group's view on this is the deciding factor.

What I'm offering

  • A single, scoped demonstrator PR — not a bulk edit of all three rulebooks — showing one worked example (e.g. the ownership-sd-jwt-sample.json stake object expressed as BODS relationship/interest statements, plus the crosswalk above as a repo doc).
  • A Semantic_Intake_template.md submission for a "UBO / Ownership / Control" use case, so this is captured through the group's normal front door and answers Q001/Q002 directly.
  • Help drafting the vocabulary.yml alignment terms if option (1) is preferred.
  • Identifier alignment: the EBW vocabulary is already built around Lei, Euid, LegalEntityIdentifier and LeiRegistration. Through GODIN and the GLEIF relationship I can help align the entity-identifier backbone (BODS identifiers scheme/schemeName ↔ LEI / EUID) at the same time.

Question for the group

  1. Which convention does the group want for the Semantic Reference column (new ebwv: terms with BODS alignment / direct external IRIs / standalone crosswalk)?
  2. Is there appetite to take BODS as the reference model for the ownership/control/UBO subset?
  3. Would it help to walk through the crosswalk at a semantics group session before any PR is opened?

Note: the rulebooks themselves live in webuild-consortium/webuild-attestation-rulebooks-catalog, so this spans both repos — happy to open a cross-referencing companion issue there once there's a direction.

References

  • BODS data model — [https://vocab.openownership.org/pages/1_datamodel.html](https://vocab.openownership.org/pages/1_datamodel.html) [https://vocab.openownership.org/pages/1_datamodel.html](https://vocab.openownership.org/pages/1_datamodel.html)
  • BODS RDF Vocabulary (HTML) — https://vocab.openownership.org/terms/bods-vocabulary-0.4.0.html
  • BODS RDF Vocabulary (Turtle) — https://vocab.openownership.org/terms/bods-vocabulary-0.4.0.ttl
  • BODS standard (v0.4) — https://standard.openownership.org/en/0.4.0/
  • EBW Vocabulary v0.1 — https://w3id.org/ebwv
  • Rulebooks — rulebooks/rb-ownership, rulebooks/rb-control, rulebooks/rb-ubo

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions