Europeana Semantic elements (ESE)

ESE documentation and schema

Migration of ESE data to EDM 

Aim: Ensure conversion of ESE data (whether legacy data or new ingested data that providers submit using ESE) into EDM

Sub-tasks:

  • Creating a mapping from ESE to EDM
  • Europeana-level migration from ESE to EDM: tool to transform ESE data already ingested into EDM
  • Content Provider-level migration from ESE to EDM: plug ESE/EDM migration to apply it to the mappings to ESE created in the ingestion tool by by providers

Participants: Europeana (AI), WP3.2@ASSETS (CM, UPS), WP1@EConnect (UW, VUA).

data.europeana.eu ESE2EDM Mapping rules

NB: this mapping rules only apply to legacy ESE data for which Europeana has produced data (e.g., europeana:year). Providers would never have to submit data that includes Europeana aggregations, among other things. This conversion is now also specific to the Linked Data pilot data.europeana.eu. It generate of data which is specific to the publication case (e.g., the resource map, use guidelines pointers). Europeana's internal data storage won't include all this.

  • 3: Create edm:aggregatedCHO, ore:proxyFor and ore:proxyIn properties
    • (provider's)ore:Aggregation - edm:aggregatedCHO - URI for item
    • (provider's)ore:Proxy - ore:proxyFor - URI for item
    • (provider's)ore:Proxy - ore:proxyIn - (provider) Aggregation
    • edm:EuropeanaAggregation - edm:aggregatedCHO - URI for item
    • edm:EuropeanaAggregation - ore:aggregates - (provider) Aggregation
    • (Europeana's)ore:Proxy - ore:proxyFor - URI for item
    • (Europeana's)ore:Proxy - ore:proxyIn - Europeana Aggregation
  • 5: Map ESE data elements: their values are distributed over Europeana's or provider's proxies and aggregations, based on whether they are created by Europeana or the provider, according to the ESE Mapping and Normalization guidelines:

ESE element

property of provider's Aggregationproperty of provider's Proxy

property of Europeana Aggregation

property of Europeana Proxy

ese:country



edm:country


ese:dataProvider

edm:dataProvider *




ese:hasObject

(no mapping)

(no mapping)

(no mapping)

(no mapping)

ese:isShownAt

edm:isShownAt **




ese:isShownBy

edm:isShownBy **




ese:language



edm:language


ese:object

edm:object ** (7)




ese:provider

edm:provider *




dc:rights

dc:rights (1)




ese:rights

edm:rights ** (2)




ese:type


edm:type (3)



ese:unstored

(no mapping) (4)




ese:uri

(no mapping)

(no mapping)

(no mapping)

(no mapping)

ese:userTag




edm:userTag (cf step 7)

ese:year




edm:year (5)

other (6)


corresponding property



For notes see here


  • 7 (not done now; ese:userTags are not exported in ESE records): Create, for each user having tagged the object, a new aggregation and proxy.
    • aggregation has triple: aggregation - dc:creator - [USER U]
    • proxy has triple: proxy - edm:userTag - [CONTENT OF TAG] for each tag contributed by the user. We can't know whether tags qualify the contributed object, or are marginally related to it. But I expect most of them to be about the object.

Later on we could replace this by an edm:hasAnnotation statement with an edm:EuropeanaObject that carries the content of the tag.

Implementation history

A first implementation has been made by Victor de Boer (VU) based for the first mapping rule, using the XMLRDF tool from EConnect WP1.

Bernhard Haslhofer (Cornell/UW), Antoine Isaac (Europeana) and Cesare Concordia (ISTI) Office have later worked on a complete conversion process for the Europeana LOD pilot, based on a stylesheet. The complete conversion suite for the LOD pilot is available at Bernhard's GIT repo. Conversion of the Europeana set selected for the Europeana Linked Open Data pilot is available via http://data.europeana.eu