Structure and identify records
type: HowToStep
description: Create Silver DataFrames and mint stable IRIs for entities.

Answer 3
type: Answer
description: Gold changes from clean joined tables into harmonized RDF mapped to a shared ontology.

DCAT catalog layer
type: ArticleSection
about: Data Catalog Vocabulary
description: Dataset, distribution, and provenance metadata modeled with DCAT and PROV-O.
is part of: The Semantic Medallion: Building a Knowledge Graph-Powered Data Catalog

Carla Nguyen
type: Customer
type: Person
description: Representative customer instance used by the executable SPARQL examples.
is part of: Executable SPARQL examples
hasBillingAccount: Billing B 003
hasContract: Contract K 2024 003
name: Carla Nguyen
registeredIn: Registry Company 34567
sourceId: REG-34567
sourceSystem: External Registry

Veronika Heimsbakk
type: Person
description: Knowledge graph specialist, semantic technologies expert, author, and speaker cited as the contributing expert for the article.

Harvest source data
type: HowToStep
description: Land raw data in the Bronze layer from APIs, databases, files, and registries.

Gold Graph
type: MedallionLayer
type: CreativeWork
description: Harmonized RDF graph mapped to a shared ontology and published for SPARQL queries.
is part of: Architecture
dependsOn: Silver

Describe datasets with DCAT
type: HowToStep
description: Model datasets, distributions, services, and provenance as catalog metadata.

Answer 6
type: Answer
description: PROV-O links generated datasets to source datasets and harmonization activities.

contributesRecord
type: Property
type: ObjectProperty
description: Indicates that a data source contributes a record to the catalog.

The Semantic Medallion: Building a Knowledge Graph-Powered Data Catalog
type: TechArticle
type: Article
about: Semantic Medallion
about: Knowledge graph-powered data catalog
about: Resource Description Framework
about: SPARQL
about: Data Catalog Vocabulary
abstract: The article reframes the Gold medallion layer as a semantic knowledge graph built from Silver DataFrames with stable IRIs, ontology mappings, RDF, DCAT, and SPARQL.
article section: Expert's Desk
author: Veronika Heimsbakk
date published: 2026-05-14T12:26:38+00:00
description: An article explaining how a medallion architecture can publish its Gold layer as an RDF knowledge graph-backed data catalog.
has part: Semantic medallion overview
has part: Architecture
has part: Executable SPARQL examples
has part: DCAT catalog layer
has part: Catalog capabilities
has part: Semantic Medallion FAQ
has part: Semantic Medallion glossary
has part: Build a Semantic Medallion catalog
publisher: Modern Data 101
was generated by: kg-generator skill
was generated by: rdf-infographic-skill
was generated by: GPT-5 Chat
was generated by: Codex desktop
was generated by: URIBurner
was generated by: OpenLink Virtuoso

ExternalRegistry
type: Class
description: An external registry that contributes entity identity or enrichment data.

DataSource
type: Class
description: A source system or dataset feeding the medallion architecture.

email
type: Property
type: DatatypeProperty
description: Local email property used in executable examples.

hasBillingAccount
type: Property
type: ObjectProperty
description: Connects a customer to a billing account.

Run live query
type: SearchAction
description: URL-encoded live query action for URIBurner SPARQL.
target: https://linkeddata.uriburner.com/sparql

Silver
type: MedallionLayer
type: CreativeWork
description: Structured DataFrames with stable entity IRIs and source identifiers.
is part of: Architecture
dependsOn: Bronze

Registry Company 67890
type: ExternalRegistry
description: Representative external registry record.

Define ontology templates
type: HowToStep
description: Use a shared vocabulary and OTTR-style templates to map columns to RDF properties.

Answer 5
type: Answer
description: DCAT standardizes catalog, dataset, distribution, and service metadata in RDF.

Billing B 001
type: BillingAccount
account id: B-001
description: Representative billing account instance.
outstandingBalance: 250.0
paymentMethod: Credit Card

Billing
type: DataSource
type: DataFeed
description: Billing platform
is part of: Semantic medallion overview

Codex desktop
type: SoftwareApplication
description: Local coding environment used for artifact generation and validation.

Answer 8
type: Answer
description: SPARQL queries both the business data and the catalog metadata in the same graph model.

Bob Smith
type: Customer
type: Person
description: Representative customer instance used by the executable SPARQL examples.
is part of: Executable SPARQL examples
hasBillingAccount: Billing B 002
hasContract: Contract K 2024 002
name: Bob Smith
registeredIn: Registry Company 67890
sourceId: CRM-12346
sourceSystem: CRM

Architecture
type: ArticleSection
about: Gold Graph
description: Bronze, Silver, and Gold layers reinterpreted as semantic enrichment layers.
has part: Bronze
has part: Silver
has part: Gold Graph
is part of: The Semantic Medallion: Building a Knowledge Graph-Powered Data Catalog

MedallionLayer
type: Class
description: A Bronze, Silver, or Gold layer in a medallion architecture.

Publish Gold RDF
type: HowToStep
description: Generate the RDF graph and load it into a SPARQL-capable catalog endpoint.

Query across data and metadata
type: HowToStep
description: Use SPARQL to inspect customer entities, sources, datasets, and lineage.

What is entity resolution in this architecture?
type: Question
accepted answer: Answer 9

Executable SPARQL examples
type: ArticleSection
about: SPARQL
description: SPARQL examples from the article adapted to the generated ontology and instance data.
has part: Alice Johnson
has part: Bob Smith
has part: Carla Nguyen
has part: Show every property and value about customer C-001
has part: Which sources contribute to customer records?
has part: Find customers with billing issues and active contracts
has part: Find datasets that contain customer information
is part of: The Semantic Medallion: Building a Knowledge Graph-Powered Data Catalog

hasContract
type: Property
type: ObjectProperty
description: Connects a customer to a contract.

outstandingBalance
type: Property
type: DatatypeProperty
description: Records the unpaid balance on a billing account.

DCAT
type: DefinedTerm
description: The W3C Data Catalog Vocabulary used to describe catalogs, datasets, distributions, and data services.
in defined term set: Semantic Medallion glossary

Contract K 2024 002
type: Contract
description: Representative contract instance.
status: Expired

Modern Data 101
type: Organization
description: Publisher of the article and curator of Modern Data topics.

What role does DCAT play?
type: Question
accepted answer: Answer 5

ComplianceOfficer
type: Class
description: A person or role responsible for compliance work.
subclass of: ComplianceRelated

Semantic Medallion catalog
type: Catalog
type: DataCatalog
description: DCAT catalog describing the generated customer knowledge graph.
dataset: Customer Master Data

paymentMethod
type: Property
type: DatatypeProperty
description: Records a billing account payment method.

Why is SPARQL important here?
type: Question
accepted answer: Answer 8

Semantic Medallion executable catalog ontology
type: Ontology
description: A lightweight ontology and representative data model for the Semantic Medallion article's DataFrame-to-RDF catalog pattern.

Answer 7
type: Answer
description: It maps structured DataFrames through templates into RDF triples.

Why mint IRIs in the Silver layer?
type: Question
accepted answer: Answer 2

GPT-5 Chat
type: SoftwareApplication
description: Language model environment used to generate this artifact set.

Semantic Medallion FAQ
type: FAQPage
description: Questions and answers generated from the article.
main entity: What is the Semantic Medallion?
main entity: Why mint IRIs in the Silver layer?
main entity: What changes in the Gold layer?
main entity: Why does this help data catalogs?
main entity: What role does DCAT play?
main entity: How is provenance represented?
main entity: What does maplib do?
main entity: Why is SPARQL important here?
main entity: What is entity resolution in this architecture?
main entity: What is the key implementation risk?

registeredIn
type: Property
type: ObjectProperty
description: Connects an entity to an external registry record.

Semantic Medallion glossary
type: DefinedTermSet
description: Defined terms used by the article and generated ontology.
has defined term: Semantic Medallion
has defined term: Knowledge graph-powered data catalog
has defined term: IRI minting
has defined term: Gold Graph
has defined term: DCAT
has defined term: PROV-O
has defined term: OTTR templates
has defined term: maplib

Show every property and value about customer C-001
type: SoftwareSourceCode
type: CreativeWork
code sample type: Executable SPARQL query adapted from article example
description: Source image query used <https://example.org/customer/C-001> ?property ?value.
is part of: Executable SPARQL examples
potential action: Run live query
programming language: SPARQL
target: URIBurner SPARQL endpoint
text: PREFIX sm: <https://moderndata101.substack.com/p/the-semantic-medallion#> SELECT ?property ?value WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/semantic-medallion-gpt5-chat-1.ttl> { sm:customer-C-001 ?property ?value . } }

dependsOn
type: Property
type: ObjectProperty
description: Connects a downstream catalog object to an upstream dependency.

What is the key implementation risk?
type: Question
accepted answer: Answer 10

maplib
type: DefinedTerm
description: Python mapping library used in the article to transform DataFrames into RDF.
in defined term set: Semantic Medallion glossary

PROV-O
type: DefinedTerm
description: The W3C provenance ontology used to trace derivation and generation activities.
in defined term set: Semantic Medallion glossary

Why does this help data catalogs?
type: Question
accepted answer: Answer 4

Customer parquet distribution
type: Distribution
format: application/vnd.apache.parquet
description: Distribution for Customer parquet distribution.
download URL: https://moderndata101.substack.com/p/the-semantic-medallion#silver-customers-parquet

Answer 1
type: Answer
description: It is a medallion architecture pattern where the Gold layer is published as a connected RDF knowledge graph.

Catalog capabilities
type: ArticleSection
description: Entity resolution, semantic search, and impact analysis capabilities gained from graph-backed catalog data.
is part of: The Semantic Medallion: Building a Knowledge Graph-Powered Data Catalog

name
type: Property
type: DatatypeProperty
description: Local name property used in executable examples.

Which sources contribute to customer records?
type: SoftwareSourceCode
type: CreativeWork
code sample type: Executable SPARQL query adapted from article example
description: Source image query grouped :Customer records by :sourceSystem.
is part of: Executable SPARQL examples
potential action: Run live query
programming language: SPARQL
target: URIBurner SPARQL endpoint
text: PREFIX sm: <https://moderndata101.substack.com/p/the-semantic-medallion#> SELECT ?source (COUNT(?customer) AS ?records) WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/semantic-medallion-gpt5-chat-1.ttl> { ?customer a sm:Customer ; sm:sourceSystem ?source . } } GROUP BY ?source

Gold Graph
type: DefinedTerm
description: The RDF publication layer that replaces isolated Gold tables with connected knowledge.
in defined term set: Semantic Medallion glossary

URIBurner SPARQL endpoint
type: WebAPI
description: Default live endpoint for the generated executable query links.

Customer harmonization
type: HarmonizationActivity
type: Activity
description: Representative activity that maps Silver customer DataFrames to Gold RDF.

What is the Semantic Medallion?
type: Question
accepted answer: Answer 1

Answer 4
type: Answer
description: The catalog can answer semantic relationship questions directly instead of only listing tables and columns.

Customer Master Data
type: Dataset
description: Unified customer records from CRM, billing, and registry
issued: 2024-01-15
modified: 2024-04-20
publisher: dataTeam
description: Unified customer records from CRM, billing, and registry.
distribution: Customer graph SPARQL distribution
distribution: Customer parquet distribution
theme: ECON
was generated by: Customer harmonization

sourceId
type: Property
type: DatatypeProperty
description: Records the source-local identifier captured in the Silver layer.

Run live query
type: SearchAction
description: URL-encoded live query action for URIBurner SPARQL.
target: https://linkeddata.uriburner.com/sparql

RegulatoryFiling
type: Class
description: A regulatory filing that is compliance-related.
subclass of: ComplianceRelated

CatalogCapability
type: Class
description: A semantic catalog capability enabled by the knowledge graph.

External Registry
type: DataSource
type: DataFeed
description: External company registry
is part of: Semantic medallion overview

kg-generator skill
type: SoftwareApplication
description: Generated the RDF knowledge graph and compliance model.

Contract K 2024 003
type: Contract
description: Representative contract instance.
status: Active

sourceSystem
type: Property
type: DatatypeProperty
description: Connects an entity to its originating source system.

OTTR templates
type: DefinedTerm
description: Reusable template definitions for mapping tabular rows into RDF triples.
in defined term set: Semantic Medallion glossary

Run live query
type: SearchAction
description: URL-encoded live query action for URIBurner SPARQL.
target: https://linkeddata.uriburner.com/sparql

Billing B 002
type: BillingAccount
account id: B-002
description: Representative billing account instance.
outstandingBalance: 0.0
paymentMethod: Credit Card

Registry Company 12345
type: ExternalRegistry
description: Representative external registry record.

Answer 9
type: Answer
description: Multiple source records can be linked to one entity using stable IRIs and equivalence relationships.

Find datasets that contain customer information
type: SoftwareSourceCode
type: CreativeWork
code sample type: Executable SPARQL query adapted from article example
description: Source image query used DCAT distribution metadata and customer instances to discover datasets.
is part of: Executable SPARQL examples
potential action: Run live query
programming language: SPARQL
target: URIBurner SPARQL endpoint
text: PREFIX sm: <https://moderndata101.substack.com/p/the-semantic-medallion#> PREFIX dcat: <http://www.w3.org/ns/dcat#> PREFIX dct: <http://purl.org/dc/terms/> SELECT ?dataset ?title WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/semantic-medallion-gpt5-chat-1.ttl> { ?dataset a dcat:Dataset ; dct:title ?title ; dcat:distribution ?dist . ?dist dcat:accessURL ?endpoint . ?customer a sm:Customer . } }

Answer 2
type: Answer
description: Stable IRIs give records durable identifiers that can connect data across source systems.

AuditRecord
type: Class
description: An audit record that is compliance-related.
subclass of: ComplianceRelated

Semantic Medallion
type: DefinedTerm
description: A medallion architecture variant where the Gold layer is an RDF knowledge graph.
in defined term set: Semantic Medallion glossary

Bronze
type: MedallionLayer
type: CreativeWork
description: Raw harvested data from APIs, databases, file shares, and registries.
is part of: Architecture

ComplianceRelated
type: Class
description: A superclass for compliance-related catalog entities.

IRI minting
type: DefinedTerm
description: The practice of assigning stable, globally unique identifiers to entities during the Silver layer.
in defined term set: Semantic Medallion glossary

Registry Company 34567
type: ExternalRegistry
description: Representative external registry record.

Find customers with billing issues and active contracts
type: SoftwareSourceCode
type: CreativeWork
code sample type: Executable SPARQL query adapted from article example
description: Source image query selected customers with active contracts and balances greater than zero.
is part of: Executable SPARQL examples
potential action: Run live query
programming language: SPARQL
target: URIBurner SPARQL endpoint
text: PREFIX sm: <https://moderndata101.substack.com/p/the-semantic-medallion#> SELECT ?customer ?name ?balance ?contractStatus WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/semantic-medallion-gpt5-chat-1.ttl> { ?customer a sm:Customer ; sm:name ?name ; sm:hasBillingAccount ?account ; sm:hasContract ?contract . ?account sm:outstandingBalance ?balance . ?contract sm:status ?contractStatus . FILTER(?contractStatus = "Active" && ?balance > 0) } }

Answer 10
type: Answer
description: The article emphasizes that stable identifier design should begin early.

CRM
type: DataSource
type: DataFeed
description: Customer relationship management system
is part of: Semantic medallion overview

Knowledge graph-powered data catalog
type: DefinedTerm
description: A catalog that describes data semantically and exposes relationships directly in RDF.
in defined term set: Semantic Medallion glossary

Billing B 003
type: BillingAccount
account id: B-003
description: Representative billing account instance.
outstandingBalance: 82.75
paymentMethod: Credit Card

How is provenance represented?
type: Question
accepted answer: Answer 6

Contract
type: Class
description: A contractual relationship or agreement involving a customer.

answerPattern
type: Property
type: DatatypeProperty
description: Stores the query or traversal pattern used to answer a catalog question.

HarmonizationActivity
type: Class
description: A data transformation activity that maps structured data into RDF.

rdf-infographic-skill
type: SoftwareApplication
description: Generated RDF-backed HTML and Markdown companion artifacts.

Build a Semantic Medallion catalog
type: HowTo
description: Practical workflow implied by the article.
step: Harvest source data
step: Structure and identify records
step: Define ontology templates
step: Publish Gold RDF
step: Describe datasets with DCAT
step: Query across data and metadata

What does maplib do?
type: Question
accepted answer: Answer 7

What changes in the Gold layer?
type: Question
accepted answer: Answer 3

catalogQuestion
type: Property
type: DatatypeProperty
description: Stores a question that the graph-powered catalog can answer.

Customer
type: Class
description: A harmonized customer entity identified by a stable IRI.

Contract K 2024 001
type: Contract
description: Representative contract instance.
status: Active

Customer graph SPARQL distribution
type: Distribution
format: application/sparql-query
description: Distribution for Customer graph SPARQL distribution.
access URL: https://linkeddata.uriburner.com/sparql

Semantic medallion overview
type: ArticleSection
about: Semantic Medallion
description: Summary of the shift from clean Gold tables to connected Gold RDF.
has part: CRM
has part: Billing
has part: External Registry
is part of: The Semantic Medallion: Building a Knowledge Graph-Powered Data Catalog

status
type: Property
type: DatatypeProperty
description: Records a contract or operational status.

Alice Johnson
type: Customer
type: Person
description: Representative customer instance used by the executable SPARQL examples.
is part of: Executable SPARQL examples
hasBillingAccount: Billing B 001
hasContract: Contract K 2024 001
name: Alice Johnson
registeredIn: Registry Company 12345
sourceId: CRM-12345
sourceSystem: CRM

URIBurner
type: SoftwareApplication
description: Linked Data resolver used for entity description links.

OpenLink Virtuoso
type: SoftwareApplication
description: RDF database and SPARQL endpoint platform backing URIBurner.

BillingAccount
type: Class
description: A billing account associated with a customer.

Run live query
type: SearchAction
description: URL-encoded live query action for URIBurner SPARQL.
target: https://linkeddata.uriburner.com/sparql