Skip to content

Conceptual Model

This page describes the high-level conceptual model used by the FAIR Mappings Working Group to classify and describe different types of mappings and mapping-related activities.

Warning

The terminology and definitions on this page are preliminary and subject to change based on community feedback.

Overview

The conceptual model provides a common vocabulary for discussing mappings across different domains and use cases. It distinguishes between the specification of mappings (what is being mapped and how) and the execution of mappings (the process of applying mappings to transform data).

Mapping Specification

flowchart BT
    subgraph Serializations["Example Serializations"]
        direction LR
        LinkML["LinkML-map
specification"] XSLT["XSLT
script"] Python["pure Python
script"] SSSOM["SSSOM
document"] end subgraph SpecTypes["Types of Mapping Specification"] direction LR SchemaMapping["schema
mapping"] InstanceMapping["instance-level
mapping"] MappingSet["mapping set"] end MappingSpec["Mapping
specification"] MappingRel["Mapping
relationship"] ProvEntity(["prov:Entity"]) DcatDataset(["dcat:Dataset"]) %% Serializations LinkML -.-> SchemaMapping XSLT -.-> SchemaMapping Python -.-> SchemaMapping SSSOM -.-> MappingSet %% Subtypes of mapping specification SchemaMapping -.->|"subClassOf"| MappingSpec InstanceMapping -.->|"subClassOf"| MappingSpec MappingSet -.->|"subClassOf"| MappingSpec %% Entity relationships MappingSpec -->|"has part"| MappingRel %% Mapping specification inheritance MappingSpec -.->|"subClassOf"| ProvEntity MappingSpec -.->|"subClassOf"| DcatDataset %% Styling classDef external fill:#ffe0b2,stroke:#ff9800,stroke-width:2px classDef entity fill:#fff59d,stroke:#fbc02d,stroke-width:2px classDef spectype fill:#e1f5fe,stroke:#03a9f4,stroke-width:1px classDef serial fill:#f5f5f5,stroke:#9e9e9e,stroke-width:1px class ProvEntity,DcatDataset external class MappingSpec,MappingRel entity class SchemaMapping,InstanceMapping,MappingSet spectype class LinkML,XSLT,Python,SSSOM serial

A mapping specification is composed of mapping relationships and can be categorized into schema mappings, instance-level mappings, or mapping sets. See Mapping Specification for details.

Mapping Execution

flowchart BT
    MappingExecution["Mapping execution
(process)"] MappingActivity["Mapping activity
(process)"] ProvActivity(["prov:Activity"]) MappingSpec["Mapping
specification"] SourceInstance{{"source instance"}} TargetInstance{{"target instance"}} DcatDataset(["dcat:Dataset"]) %% Activity hierarchy MappingExecution -.->|"subClassOf"| MappingActivity MappingActivity -.->|"subClassOf"| ProvActivity %% Source/Target instance types SourceInstance -.->|"type"| DcatDataset TargetInstance -.->|"type"| DcatDataset %% Execution relationships MappingExecution -->|"prov:uses"| MappingSpec MappingExecution -->|"prov:uses"| SourceInstance TargetInstance -->|"prov:wasGeneratedBy"| MappingExecution %% Styling classDef activity fill:#c5e1a5,stroke:#7cb342,stroke-width:2px classDef external fill:#ffe0b2,stroke:#ff9800,stroke-width:2px classDef entity fill:#fff59d,stroke:#fbc02d,stroke-width:2px classDef instance fill:#e1bee7,stroke:#8e24aa,stroke-width:1px class ProvActivity,MappingActivity,MappingExecution activity class DcatDataset external class MappingSpec entity class SourceInstance,TargetInstance instance

A mapping execution uses a mapping specification and a source instance as inputs, and generates a target instance as output. See Mapping Execution for details.

View original diagram

Conceptual Model

Core Concepts

Mapping Specification

A mapping specification is a documented description of correspondences between elements in different information systems, schemas, or vocabularies. It serves as the central concept in our model.

A mapping specification:

  • Is both a dataset (can be published, versioned, and cited) and an entity (can be tracked through provenance)
  • Contains one or more mapping relationships as its parts
  • Can be serialized in various formats (e.g., SSSOM, LinkML-Map, XSLT, Python scripts)
  • Should include metadata for findability and reusability (see Recommendations)

Mapping Relationship

A mapping relationship is a correspondence within a mapping specification that relates one or more source elements to one or more target elements. Mapping relationships can range from simple equivalence assertions to complex transformation rules.

A mapping relationship may specify:

  • One or more source elements
  • One or more objects (target elements being mapped to)
  • A predicate or relation describing how subjects and objects correspond (e.g., skos:exactMatch, skos:broadMatch, owl:equivalentClass)
  • Transformation rules defining how source values are converted to target values (e.g., concatenation, splitting, unit conversion, conditional logic)
  • Constraints that must be satisfied for the mapping to apply (e.g., value ranges, cardinality restrictions, conditional applicability)
  • Optional metadata such as confidence scores, justifications, or provenance

Mapping relationships can be n:n, meaning a single relationship may involve multiple source elements mapping to multiple target elements simultaneously, which is common in schema mappings where fields need to be merged, split, or restructured.

Types of Mapping Specifications

The model distinguishes two primary types of mapping specifications:

Schema Mapping

A schema mapping describes correspondences between structural elements of different schemas, data models, or metadata standards. Schema mappings operate at the level of classes, properties, fields, or other structural components.

Examples include:

  • Mapping between DCAT-AP and Schema.org metadata schemas
  • Mapping between a relational database schema and an RDF ontology
  • Mapping between different versions of a data standard

Schema mappings often require transformation logic beyond simple equivalence statements, such as:

  • Combining multiple source fields into one target field
  • Splitting one source field into multiple target fields
  • Applying functions or lookups during transformation

Instance-Level Mapping

An instance-level mapping describes how a single dataset instance is transformed into a different form. Unlike schema mappings, instance-level mappings make no assumptions about schema generality—the transformation code is specific to that particular source instance and is not expected to work for arbitrary instances that might conform to the same schema.

Characteristics of instance-level mappings:

  • Tailored to a specific source dataset instance
  • May include hard-coded values, instance-specific logic, or bespoke transformations
  • Not designed to be reusable across different datasets of the same type
  • Often created for one-off data migration or integration tasks

Examples include:

  • A custom script to transform a specific legacy database export into a new format
  • A one-time transformation of a particular CSV file into RDF
  • An ad-hoc conversion of a single institution's data dump

Mapping Set

A mapping set is a type of mapping specification that groups predicate-based mapping relationships together, typically in the form of subject, (mapping) predicate, object triples along with additional metadata. A mapping set is often the unit of publication and sharing.

A mapping set:

  • Is a type of mapping specification
  • Groups related mapping relationships
  • Has its own metadata (author, license, version, etc.)
  • Can be published as a standalone artifact
  • Is commonly serialized as an SSSOM document

Mapping Activity

A mapping activity is a type of provenance activity (prov:Activity) representing the broader process of creating, maintaining, or applying mappings. This includes activities such as:

  • Authoring new mapping specifications
  • Reviewing and validating existing mappings
  • Executing mappings to transform data
  • Updating mappings when source or target systems change

Mapping Execution

Mapping execution is a specific type of mapping activity focused on applying a mapping specification to transform actual data.

Key aspects of mapping execution:

  • It is a subtype of mapping activity
  • It takes a mapping specification as input
  • It takes a source instance (the data to be transformed) as input
  • It produces a target instance (the transformed data) as output
  • Different mapping specifications may require different execution environments or tools

Both source instance and target instance are datasets that can be cataloged, versioned, and discovered through standard data catalog infrastructure.

Serialization Formats

Mapping specifications can be serialized in various formats depending on the type of mapping and intended use:

Format Typical Use Case
SSSOM document Mapping sets, particularly for ontology terms or identifiers
LinkML-Map specification Schema mappings with transformation logic
XSLT script XML-based schema transformations
Python script Complex programmatic transformations

The choice of serialization format depends on factors such as:

  • The complexity of the mapping logic required
  • The source and target data formats
  • Tooling availability and community adoption
  • Requirements for human readability vs. machine executability
  • Requirements for reusability / composability.
  • Does the format support easy mix-and-match type of mapping specification creation?

Relationship to Standards

The conceptual model aligns with established standards:

  • DCAT (Data Catalog Vocabulary): Mapping specifications are treated as datasets that can be cataloged and discovered
  • PROV (Provenance Ontology): Mapping activities and executions are tracked as provenance activities, with clear inputs and outputs
  • SSSOM: The recommended format for representing instance-level mappings
  • LinkML-Map: A framework for schema mappings with executable transformation logic

See Also