Combined Business Vocabularies Specification

WE BUILD + EU-Core + NCBV
Version 1.0 – March 2026

Abstract

This document describes the Combined Business Vocabularies specification, which integrates three core vocabularies from the Finnish Interoperability Platform (Tietomallit.suomi.fi): WE BUILD Vocabulary, EU Core Vocabularies, and Nordic Core Business Vocabulary (NCBV). The combined vocabulary enables semantic interoperability for W3C Verifiable Credentials in business process digitalization, particularly for the EU Business Wallet framework.

Alternate versions of the vocabulary definitions exist in Turtle and JSON-LD for each component vocabulary.

Status of This Document

This vocabulary specification combines three independently maintained vocabularies. Each component vocabulary has its own publication status:

This combined specification is maintained at github.com/jgmikael/vocabularies. Issues and feedback should be filed there.

1. Namespaces

This specification makes use of the following namespaces:

Prefix Namespace IRI Description
webuild https://iri.suomi.fi/model/webuild/ WE BUILD Vocabulary
eu-core https://iri.suomi.fi/model/eu-core/ EU Core Vocabularies
ncbv https://iri.suomi.fi/model/ncbv/ Nordic Core Business Vocabulary
cred https://w3.org/2018/credentials# W3C Verifiable Credentials
xsd http://www.w3.org/2001/XMLSchema# XML Schema datatypes
skos http://www.w3.org/2004/02/skos/core# SKOS vocabulary
owl http://www.w3.org/2002/07/owl# OWL Web Ontology Language

2. Architecture and Relationships

The three vocabularies have the following import relationships:

┌─────────────────────────────────────┐
│     WE BUILD Vocabulary             │
│     (webuild:)                      │
│                                     │
│  • ComplianceAttestation            │
│  • PostedWorkerNotification         │
│  • TaxDebtStatusAttestation         │
│  • Employment, WorkAssignment       │
└────────────┬────────────────────────┘
             │ owl:imports
             ▼
┌─────────────────────────────────────┐
│     EU-Core Vocabulary              │
│     (eu-core:)                      │
│                                     │
│  • Person, LegalEntity              │
│  • Organization, PublicOrganization │
│  • Address, Location                │
│  • Evidence, Document               │
│  • Identifier, ContactPoint         │
└─────────────────────────────────────┘
             ▲
             │ owl:imports (as isa2core v1.0.0)
             │
┌─────────────────────────────────────┐
│     NCBV Vocabulary                 │
│     (ncbv:)                         │
│                                     │
│  • LegalEntity (extended)           │
│  • Role, Mandate, Membership        │
│  • RepresentationRule               │
│  • BeneficialOwner                  │
│  • ShareCapital                     │
└─────────────────────────────────────┘

Key architectural principles:

3. WE BUILD Vocabulary

Namespace
https://iri.suomi.fi/model/webuild/
Prefix
webuild
Description
Vocabulary for the electronic attestations of attributes (QEAA, PubEAA, EAA) designed for the WE BUILD Large Scale Pilot use cases.
Imports
eu-core:, https://gs1.org/voc/
Source
Tietomallit.suomi.fi

3.1 Key Classes

webuild:ComplianceAttestation

Compliance Attestation

Base class for compliance-related attestations in the construction and posted worker domain.

Type
owl:Class
Subclasses
TaxDebtStatusAttestation, SocialContributionsDebtStatusAttestation, TaxFilingComplianceAttestation, StatutoryInsuranceCoverageAttestation, CompanyRegistrationGoodStandingAttestation

webuild:PostedWorkerNotification

Posted Worker Notification

Notification for posted workers under the EU Posted Workers Directive.

Type
owl:Class
Key Properties
hasWorker, hasWorkAssignment, hasSendingEmployer, hasHostEntity, hasNotificationAuthority

webuild:PDA1Certificate

Portable Document A1 Certificate

Social security determination certificate (PDA1) indicating applicable social security legislation.

Type
owl:Class
Related
SocialSecurityDetermination, Determination

webuild:Employment

Employment

Employment relationship between worker and employer.

Type
owl:Class
Key Properties
hasEmployer, employmentType, hasOccupation

webuild:WorkAssignment

Work Assignment

Specific work assignment including location, activity, and time period.

Type
owl:Class
Key Properties
hasWorkLocation, hasWorkActivity, hasAssignmentPeriod, usesOperationalAsset

3.2 Key Properties

webuild:hasTaxDebtStatus

has tax debt status

Indicates the tax debt status of an entity.

Type
owl:ObjectProperty
Domain
eu-core:LegalEntity
Range
xsd:string

webuild:hasWorker

has worker

Associates a posted worker notification with the worker(s) involved.

Type
owl:ObjectProperty
Domain
webuild:PostedWorkerNotification
Range
eu-core:Person

webuild:hasWorkLocation

has work location

Specifies the geographic location where work is performed.

Type
owl:ObjectProperty
Domain
webuild:WorkAssignment
Range
eu-core:Location

4. EU-Core Vocabulary

Namespace
https://iri.suomi.fi/model/eu-core/
Prefix
eu-core
Description
Local implementation of EU Core Vocabularies (v2.0.0). Simplified, reusable, and extensible data models for fundamental entities like persons and organizations.
Based On
EU Core Vocabularies v2.0.0 (April 2022)
Source
Tietomallit.suomi.fi

4.1 Key Classes

eu-core:Person

Person

Natural person with demographics and identification information.

Type
owl:Class
Key Properties
givenName, familyName, birthName, dateOfBirth, placeOfBirth, citizenship, domicile, identifier

eu-core:LegalEntity

Legal Entity

Legal person or organization with registration and legal status.

Type
owl:Class
Key Properties
legalName, legalidentifier, legalFormType, legalEntityActivity, legalEntityStatus, registeredAddress

eu-core:Address

Address

Postal address with structured components.

Type
owl:Class
Key Properties
fullAddress, thoroughfare, locatorDesignator, postName, postCode, adminUnitLevel1, adminUnitLevel2

eu-core:Organization

Organization

Organizational structure that can have sub-organizations and memberships.

Type
owl:Class
Subclasses
PublicOrganization, OrganizationalUnit
Key Properties
legalName, classification, purpose, hasSubOrganization, hasMember

eu-core:Evidence

Evidence

Supporting evidence or documentation for requirements or claims.

Type
owl:Class
Key Properties
isProvidedBy, hasSupportingEvidence, confidentialityLevelType

eu-core:Identifier

Identifier

Formal identification according to a specific scheme.

Type
owl:Class
Key Properties
notation, schemeName, schemeURI, issuedBy, dateOfIssue

4.2 Key Properties

eu-core:legalName

legal name

Name under which a legal entity is registered.

Type
owl:DatatypeProperty
Domain
eu-core:LegalEntity
Range
xsd:string

eu-core:registeredAddress

registered address

Official registered address of a legal entity.

Type
owl:ObjectProperty
Domain
eu-core:LegalEntity
Range
eu-core:Address

eu-core:identifier

identifier

Formal identifier for a person or organization.

Type
owl:ObjectProperty
Domain
eu-core:Person ⊔ eu-core:Agent
Range
eu-core:Identifier

5. NCBV Vocabulary

Namespace
https://iri.suomi.fi/model/ncbv/
Prefix
ncbv
Description
Common Nordic data vocabulary for business information, covering legal entities, roles, mandates, representation rules, and beneficial ownership.
Version
0.0.8
Imports
isa2core (eu-core v1.0.0), busdoc
Maintained By
Finnish Tax Administration (Verohallinto) and Nordic Data Quality and Semantics working group
Source
Tietomallit.suomi.fi

5.1 Key Classes

ncbv:LegalEntity

Legal Entity

Extended business entity with legal status, registration, and representation information.

Type
owl:Class
Extends
eu-core:LegalEntity
Key Properties
legalIdentifier, legalName, hasLegalForm, hasLegalStatus, hasRole, hasRepresentationRule, registrationDate

ncbv:Role

Role

Role held by a person or legal entity in relation to another entity.

Type
owl:Class
Key Properties
heldByPerson, heldByLegalEntity, title, hasDuration

ncbv:Mandate

Mandate

Legal mandate or power of attorney granting representation rights.

Type
owl:Class
Key Properties
mandatee, hasMandator, power, delegable, hasDuration, transferOfMandate

ncbv:RepresentationRule

Representation Rule

Rule defining how a legal entity may be represented (alone, jointly, etc.).

Type
owl:Class
Subclasses
RoleBasedRepresentationRule, MembershipBasedRepresentationRule, CompositeRepresentationRule
Key Properties
definesValidRole, minimumNumberOfRoleHolders, alone, jointly, and, or

ncbv:BeneficialOwner

Beneficial Owner

Ultimate beneficial owner of a legal entity.

Type
owl:Class
Key Properties
hasRole (BeneficialOwnerRole), interestType, interestControl, interestDirectOrIndirect

ncbv:ShareCapital

Share Capital

Capital and ownership structure information.

Type
owl:Class
Key Properties
totalCapitalAmount, numberOfShares, capitalType

5.2 Key Properties

ncbv:legalIdentifier

legal identifier

Official legal identifier of a business entity (e.g., business ID, VAT number).

Type
owl:ObjectProperty
Domain
ncbv:LegalEntity
Range
ncbv:Identifier

ncbv:hasRepresentationRule

has representation rule

Specifies the rules for legal representation of an entity.

Type
owl:ObjectProperty
Domain
ncbv:LegalEntity
Range
ncbv:RepresentationRule

ncbv:grantsMandate

grants mandate

Indicates that an entity grants a mandate to another party.

Type
owl:ObjectProperty
Range
ncbv:Mandate

6. Usage in W3C Verifiable Credentials

These vocabularies are designed to be used together in W3C Verifiable Credentials. The typical pattern is:

  1. Use EU-Core for basic entity modeling (Person, LegalEntity, Address)
  2. Extend with NCBV for Nordic business entity details (roles, mandates, representation)
  3. Add WE BUILD attestation types for compliance and regulatory requirements

Context Declaration

To use all three vocabularies in a Verifiable Credential, include their contexts:

{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://iri.suomi.fi/model/webuild/",
    "https://iri.suomi.fi/model/eu-core/",
    "https://iri.suomi.fi/model/ncbv/"
  ],
  ...
}

Type Composition

Classes from different vocabularies can be combined when they extend the same base class:

{
  "@type": ["eu-core:LegalEntity", "ncbv:LegalEntity"],
  "eu-core:legalName": "Acme Corporation",
  "ncbv:legalIdentifier": {
    "@type": "ncbv:Identifier",
    "ncbv:notation": "FI12345678",
    "ncbv:schemeName": "Finnish Business ID"
  },
  "eu-core:registeredAddress": { ... },
  "ncbv:hasRepresentationRule": { ... }
}

7. Complete Examples

Example 1: Tax Debt Status Attestation

Finnish company with tax debt status verification
{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://iri.suomi.fi/model/webuild/",
    "https://iri.suomi.fi/model/eu-core/"
  ],
  "@id": "urn:uuid:a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "@type": ["VerifiableCredential", "webuild:TaxDebtStatusAttestation"],
  "issuer": {
    "@id": "did:web:vero.fi",
    "name": "Finnish Tax Administration"
  },
  "validFrom": "2026-03-16T00:00:00Z",
  "validUntil": "2027-03-16T00:00:00Z",
  "credentialSubject": {
    "@id": "did:example:123456789",
    "@type": "eu-core:LegalEntity",
    "eu-core:legalName": "Rakennusyhtiö Oy",
    "eu-core:legalidentifier": {
      "@type": "eu-core:Identifier",
      "eu-core:notation": "1234567-8",
      "eu-core:schemeName": "Finnish Business ID"
    },
    "webuild:hasTaxDebtStatus": "no-debt",
    "webuild:hasTaxObligationAssessment": {
      "@type": "webuild:TaxObligationAssessment",
      "webuild:obligationStatus": "compliant",
      "webuild:reportingPeriod": {
        "startDate": "2025-01-01",
        "endDate": "2025-12-31"
      }
    }
  },
  "proof": {
    "type": "Ed25519Signature2020",
    "created": "2026-03-16T10:30:00Z",
    "verificationMethod": "did:web:vero.fi#key-1",
    "proofPurpose": "assertionMethod",
    "proofValue": "z3FXQ..."
  }
}

Example 2: Nordic Legal Entity with Representation

Swedish company with NCBV representation rules
{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://iri.suomi.fi/model/eu-core/",
    "https://iri.suomi.fi/model/ncbv/"
  ],
  "@id": "urn:uuid:b2c3d4e5-f678-90ab-cdef-1234567890ab",
  "@type": ["VerifiableCredential"],
  "issuer": {
    "@id": "did:web:bolagsverket.se",
    "name": "Swedish Companies Registration Office"
  },
  "validFrom": "2026-03-16T00:00:00Z",
  "credentialSubject": {
    "@id": "did:example:987654321",
    "@type": ["eu-core:LegalEntity", "ncbv:LegalEntity"],
    "ncbv:legalName": "Byggföretag AB",
    "ncbv:legalIdentifier": {
      "@type": "ncbv:Identifier",
      "ncbv:notation": "556123-4567",
      "ncbv:schemeName": "Swedish Org. Number",
      "ncbv:schemeAgency": "Bolagsverket"
    },
    "eu-core:registeredAddress": {
      "@type": "eu-core:Address",
      "eu-core:fullAddress": "Kungsgatan 1, 111 43 Stockholm, Sweden",
      "eu-core:thoroughfare": "Kungsgatan",
      "eu-core:locatorDesignator": "1",
      "eu-core:postCode": "111 43",
      "eu-core:postName": "Stockholm",
      "eu-core:adminUnitLevel1": "SE"
    },
    "ncbv:hasLegalForm": {
      "@type": "ncbv:Code",
      "ncbv:codeName": "AB",
      "ncbv:codeValue": "Aktiebolag"
    },
    "ncbv:hasRepresentationRule": {
      "@type": "ncbv:RoleBasedRepresentationRule",
      "ncbv:definesValidRole": "CEO",
      "ncbv:alone": true
    },
    "ncbv:hasRole": [
      {
        "@type": "ncbv:Role",
        "ncbv:title": "CEO",
        "ncbv:heldByPerson": {
          "@type": "eu-core:Person",
          "eu-core:givenName": "Anna",
          "eu-core:familyName": "Andersson",
          "ncbv:dateOfBirth": "1975-06-15"
        }
      }
    ]
  },
  "proof": {
    "type": "Ed25519Signature2020",
    "created": "2026-03-16T10:30:00Z",
    "verificationMethod": "did:web:bolagsverket.se#key-1",
    "proofPurpose": "assertionMethod",
    "proofValue": "z4GYR..."
  }
}

Example 3: Posted Worker Notification

Posted worker notification combining all three vocabularies
{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://iri.suomi.fi/model/webuild/",
    "https://iri.suomi.fi/model/eu-core/",
    "https://iri.suomi.fi/model/ncbv/"
  ],
  "@id": "urn:uuid:c3d4e5f6-7890-abcd-ef12-34567890abcd",
  "@type": ["VerifiableCredential", "webuild:PostedWorkerNotification"],
  "issuer": {
    "@id": "did:example:sending-employer",
    "name": "Polish Construction Ltd"
  },
  "validFrom": "2026-03-01T00:00:00Z",
  "validUntil": "2026-06-30T23:59:59Z",
  "credentialSubject": {
    "@id": "urn:uuid:notification-12345",
    "@type": "webuild:PostedWorkerNotification",
    "webuild:hasWorker": {
      "@type": "eu-core:Person",
      "eu-core:givenName": "Jan",
      "eu-core:familyName": "Kowalski",
      "eu-core:dateOfBirth": "1985-03-20",
      "eu-core:citizenship": "PL"
    },
    "webuild:hasSendingEmployer": {
      "@type": ["eu-core:LegalEntity", "ncbv:LegalEntity"],
      "ncbv:legalName": "Budowa Sp. z o.o.",
      "ncbv:legalIdentifier": {
        "@type": "ncbv:Identifier",
        "ncbv:notation": "PL1234567890"
      },
      "eu-core:registeredAddress": {
        "@type": "eu-core:Address",
        "eu-core:adminUnitLevel1": "PL"
      }
    },
    "webuild:hasWorkAssignment": {
      "@type": "webuild:WorkAssignment",
      "webuild:hasWorkLocation": {
        "@type": "eu-core:Location",
        "eu-core:geographicName": "Helsinki",
        "eu-core:adminUnitLevel1": "FI"
      },
      "webuild:hasAssignmentPeriod": {
        "startDate": "2026-03-01",
        "endDate": "2026-06-30"
      },
      "webuild:hasWorkActivity": {
        "@type": "webuild:WorkActivity",
        "webuild:workActivityDescription": "Construction work - residential building"
      }
    },
    "webuild:hasSocialSecurityDetermination": {
      "@type": "webuild:PDA1Certificate",
      "webuild:issuingInstitution": "Polish ZUS",
      "webuild:hasApplicableJurisdiction": "PL",
      "webuild:applicablePeriod": {
        "startDate": "2026-03-01",
        "endDate": "2028-02-28"
      }
    }
  },
  "proof": {
    "type": "Ed25519Signature2020",
    "created": "2026-02-28T12:00:00Z",
    "verificationMethod": "did:example:sending-employer#key-1",
    "proofPurpose": "assertionMethod",
    "proofValue": "z5HZS..."
  }
}