---
title: Overview
url: https://docs.triply.cc/triply-etl/enrich/
description: The Enrich step derives new linked data from the linked data a pipeline has already asserted.
---

# Enrich

The **Enrich** step uses linked data that is asserted in the [internal store](https://docs.triply.cc/triply-etl/generic/internal-store/) to derive new linked data.

```mermaid
graph LR
  sources -- 1. Extract --> record
  record -- 2. Transform --> record
  record -- 3. Assert --> ld
  ld == 4. Enrich ==> ld
  ld -- 5. Validate --> ld
  ld -- 6. Publish --> destinations

  destinations[("D. Destinations\n(TriplyDB)")]
  ld[C. Internal Store]
  record[B. Record]
  sources[A. Data Sources]
```

TriplyETL supports the following languages for making enrichments:

- [**SHACL Rules**](https://docs.triply.cc/triply-etl/enrich/shacl/) allows the implementation of business rules that can add linked data to the internal store. TriplyETL supports the following forms of SHACL Rules:

    - [**Triple Rules**](https://docs.triply.cc/triply-etl/enrich/shacl/triple-rules/)
    - [**SPARQL Rules**](https://docs.triply.cc/triply-etl/enrich/shacl/sparql-rules/)

- SPARQL is a query language that can also be used to add and remove data. This allows SPARQL to be used as an enrichment language. TriplyETL supports the following forms of SPARQL enrichment:

    - [**SPARQL Construct**](https://docs.triply.cc/triply-etl/enrich/sparql/construct/) allows linked data to be added to the internal store.
    - [**SPARQL Update**](https://docs.triply.cc/triply-etl/enrich/sparql/update/) allows linked data to be added to and deleted from the internal store.



## See also

If you have not loaded any linked data in your Internal Store yet, use one of the following approaches to do so:

- [loadRdf()](https://docs.triply.cc/triply-etl/extract/rdf/)
- [JSON-LD Expansion](https://docs.triply.cc/triply-etl/assert/json-ld/)
- The RATT [statement assertion](https://docs.triply.cc/triply-etl/assert/ratt/statements/) functions.
