Skip to content
paco xander nathan edited this page Jul 10, 2026 · 27 revisions

Metadata Application Profile

Introduction

The following provides a concise SKOS-based taxonomy used for representing the Senzing entity resolution (ER) results in the computable semantics of RDF, based on the data mappings defined in the Senzing Entity Specification.

One intention is to align with popular controlled vocabularies used by Senzing partners, such as NIEM by OASIS Open, FollowTheMoney by OpenSanctions, and the Beneficial Ownership Data Standard by Open Ownership.

Effectively, this creates as a domain-specific thesaurus, which may be used:

Namespace: https://github.com/senzing-garage/sz-semantics/wiki/ns#
Suggested prefix: sz:
Source: https://github.com/senzing-garage/sz-semantics/blob/main/domain.ttl
Updated: 2025-11-06
Authors: Paco Nathan, Jessica Talisman, Jeff Butcher

Purpose of this document

A metadata application profile (MAP) is a specification which describes how metadata standards should be used within a specific application, project, or community context. This provides a bridge between general-purpose metadata standards and the real-world practices for a given domain. Instead of inventing an entirely new metadata schema, a MAP serves to:

  • select elements from existing metadata standards -- e.g., SKOS, Dublin Core, WCO, etc.
  • refine the meaning of the elements used -- e.g., require that dcterms:creator must be a person, not an organization.
  • constrain usage -- e.g., requiring particular fields, limiting values to controlled vocabularies, etc.
  • extend with local elements as needed.

Classes

sz:Entity
URI: https://github.com/senzing-garage/sz-semantics/wiki/ns#Entity
Definition: Entity is anything that can be considered, discussed, or observed; in this context, generally a Person or Organization; see wd:Q35120
Label: Entity
Types: skos:Concept, nc:EntityType
Equiv Classes: ftm:LegalEntity, bods:EntityType, wco:Agent, foaf:Agent
Usage: Top-level concept in the scheme, not intended to be used directly for instances
sz:Organization
URI: https://github.com/senzing-garage/sz-semantics/wiki/ns#Organization
Definition: Organization is a social entity established to meet needs or pursue goals; see wd:Q43229
Label: Organization
Super Class: sz:Entity
Types: skos:Concept, nc:OrganizationType
Equiv Classes: ftm:Organization, wco:Organization, foaf:Organization
Usage: In entity linking workflows, this can be used as a label for zero-shot NER
sz:Person
URI: https://github.com/senzing-garage/sz-semantics/wiki/ns#Person
Definition: Person represents an individual human being, distinct from some type of corporation, which may encompass real or deceased people, or their pseudonyms; see wd:Q5
Label: Person
Super Class: sz:Entity
Types: skos:Concept, nc:PersonType
Equiv Classes: ftm:Person, bods:PersonType, wco:Person, foaf:Person
Usage: In entity linking workflows, this can be used as a label for zero-shot NER
sz:DataRecord
URI: https://github.com/senzing-garage/sz-semantics/wiki/ns#DataRecord
Definition: Data Record is a composite data type; an information block containing specific, identified fields; wd:Q2470517
Label: Data Record
Types: skos:Concept
Equiv Classes: prov:Entity, bods:RecordDetails, wco:TransactionalEvent
Usage: In typical usage, an instance will have properties pointing to a named dataset with a unique foreign key

Predicates

predicate domain range definition
sz:match_key sz:Entity xsd:string indicates which features matched when a record was last processed individually; see MATCH-KEY vs. Why
sz:match_level sz:Entity xsd:string describes how the data record contributes to this entity; see Understanding Match Levels
sz:lemma_phrase skos:Concept rdf:langString a parsed, lemmatized noun phrase, used as a unique identifier in entity linking
sz:ner_label skos:Concept xsd:boolean indicates whether the skos:prefLabel value can be used as an NER label
sz:member_of sz:Person sz:Organization indicates when a person is known to be a member of an organization; equivalent class wco:memberOf

Examples

Entity Instances

Entity instances of type sz:Organization or sz:Person must each have one or more prov:wasDerivedFrom properties linking to sz:DataRecord instances. For each data record, the entity instance must describe these required properties:

  • skos:exactMatch, skos:closeMatch, or skos:related to describe the likelihood of the relation
  • sz:match_level and sz:match_key describing how the data record contributes to the entity and which features were used in entity resolution

An entity instance may also have optional properties:

  • skos:prefLabel -- if the entity name is known
  • sz:lemma_phrase -- if the entity name is known, and natural language processing is being used with entity linking

In addition, entity instances may have properties associated with their respective equivalent classes, such as an LEI code for sz:Organization entities or VIAF identifiers for sz:Person entities.

Data Record Instances

Instances of sz:DataRecord must describe these required properties:

  • prov:wasQuotedFrom linking to an instance of a named data source
  • dc:identifier for the foreign key of the record in that data source

Each named data source must be an instance of dcat:Dataset with the required property dc:identifier as its record namespace used in Senzing.

There may be other optional properties associated with data governance or content management practices such as data mesh, data catalogs, semantic layer frameworks, and so on.

Example RDF Triples

The RDF triples in the following example show two instances of sz:Organization and one instance of sz:Person which link to four sz:DataRecord instances, which in turn come from two named data sources:

sz:1 a sz:Organization ;
    skos:prefLabel "Univrsl Exports USA"@en ;
    prov:wasDerivedFrom sz:ds_customers_1001,
        sz:ds_reference_5150 .

[] rdf:subject sz:1 ;
    rdf:predicate skos:exactMatch ;
    rdf:object sz:ds_customers_1001 ;
    sz:match_key "INITIAL" ;
    sz:match_level "INITIAL" .

[] rdf:subject sz:1 ;
    rdf:predicate skos:exactMatch ;
    rdf:object sz:ds_reference_5150 ;
    sz:match_key "+ADDRESS+PHONE+LIKELY_NAME" ;
    sz:match_level "RESOLVED" .

sz:ds_customers_1001 a sz:DataRecord ;
    prov:wasQuotedFrom sz:ds_customers ;
    dc:identifier "1001" .

sz:ds_reference_5150 a sz:DataRecord ;
    prov:wasQuotedFrom sz:ds_reference ;
    dc:identifier "5150" .

[] rdf:subject sz:1 ;
    rdf:predicate skos:closeMatch ;
    rdf:object sz:2 ;
    sz:match_key "+ADDRESS+LIKELY_NAME" ;
    sz:match_level "POSSIBLY_SAME" .

sz:2 a sz:Organization ;
    skos:prefLabel "Universal Exports Worldwide"@en ;
    prov:wasDerivedFrom sz:ds_customers_1002 .

[] rdf:subject sz:1 ;
    rdf:predicate skos:related ;
    rdf:object sz:3 ;
    sz:match_key "+REL_POINTER(:OWNS 60%)" ;
    sz:match_level "DISCLOSED" .

[] rdf:subject sz:2 ;
    rdf:predicate skos:exactMatch ;
    rdf:object sz:ds_customers_1002 ;
    sz:match_key "INITIAL" ;
    sz:match_level "INITIAL" .

sz:ds_customers_1002 a sz:DataRecord ;
    prov:wasQuotedFrom sz:ds_customers ;
    dc:identifier "1002" .

sz:3 a sz:Person ;
    skos:prefLabel "Jie Wang"@en ;
    prov:wasDerivedFrom sz:ds_customers_1003 .

[] rdf:subject sz:3 ;
    rdf:predicate skos:exactMatch ;
    rdf:object sz:ds_customers_1003 ;
    sz:match_key "INITIAL" ;
    sz:match_level "INITIAL" .

sz:ds_customers_1003 a sz:DataRecord ;
    prov:wasQuotedFrom sz:ds_customers ;
    dc:identifier "1003" .

sz:ds_customers a dcat:Dataset ;
    dc:identifier "customers" .

sz:ds_reference a dcat:Dataset ;
    dc:identifier "reference" .

Validation

The SHACL shape constraint rules in the shacl.ttl file can be used as a basis for validating a SKOS thesaurus generated from Senzing entity resolution results.