diff --git a/ckanext/odsh/helpers.py b/ckanext/odsh/helpers.py
index 06d83e403ae637cf8f704280171fba318d9fb8e4..efcb5fceb3e1a5d7e8658a4227e00e5ff3a52604 100644
--- a/ckanext/odsh/helpers.py
+++ b/ckanext/odsh/helpers.py
@@ -23,6 +23,8 @@ import pdb
 from urlparse import urlsplit, urlunsplit
 import subprocess
 import ckan.lib.helpers as helpers
+import os.path
+from collections import OrderedDict
 
 get_action = logic.get_action
 log = logging.getLogger(__name__)
@@ -456,3 +458,37 @@ def short_name_for_category(category_name):
         'tech': u'Wissenschaft',
     }
     return translations.get(category_name)
+
+def odsh_load_mdk_sample_dataset():
+    '''
+    Load sample dataset (Musterkatalog/Musterdatensatz).
+    
+    See https://bertelsmannstift.github.io/Musterdatenkatalog/def/musterdatensatz.rdf
+    and corresponding mapping in mdk_mapping.json file.
+    '''
+
+    path = os.path.abspath(os.path.dirname(__file__))
+    default_sample_data_file_path = os.path.join(path, "../../mdk_mapping.json")
+    sample_data_file_path = config.get(
+        'ckanext.odsh.sample_data_file_path', default_sample_data_file_path)
+    
+    try:
+        with open(sample_data_file_path) as mapping_json:
+             MDK_MAPPING = json.loads(mapping_json.read(), object_pairs_hook=OrderedDict)
+             default = [{'value': u'Musterdatensatz wählen..', 'key': u''}]
+             mdk = [{'key': key, 'value': MDK_MAPPING[key]} for key in MDK_MAPPING]
+             result = default+mdk
+    except IOError as err:
+        log.error(
+            'Could not load sample dataset mapping file from {}'
+            .format(sample_data_file_path)
+        )
+        raise
+    except ValueError as err:
+        log.error(
+            'Could not convert sample dataset mapping file from json. \nSample dataset mapping file: {}'
+            .format(sample_data_file_path)
+        )
+        raise
+    return result
+
diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py
index 46bebec5a1bdf3ada7ee4f8d60bdf5a5bd2fc292..8bf494dcc5f8fb89f55263184fe4618d5c2b9610 100644
--- a/ckanext/odsh/plugin.py
+++ b/ckanext/odsh/plugin.py
@@ -96,6 +96,13 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
         for field in ['title', 'license_id']:
             schema.update({field: [toolkit.get_converter('not_empty')]})
         
+        schema.update({
+            'reference': [
+                toolkit.get_validator('ignore_missing'),
+                toolkit.get_converter('convert_to_extras')
+            ]
+        })
+        
         for i, item in enumerate(schema['tags']['name']):
             if item == toolkit.get_validator('tag_name_validator'):
                 schema['tags']['name'][i] = toolkit.get_validator(
@@ -374,6 +381,7 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
                 'tpsh_get_resource_size': helpers_tpsh.get_resource_size,
                 'tpsh_get_address_org':helpers_tpsh.get_address_org,
                 'tpsh_get_body_mail':helpers_tpsh.get_body_mail,
+                'odsh_load_mdk_sample_dataset': odsh_helpers.odsh_load_mdk_sample_dataset,
          }
 
     
diff --git a/ckanext/odsh/profiles/__init__.py b/ckanext/odsh/profiles/__init__.py
index 97866f2c45e7082d5a10821327b0507e90eb2091..f87530b7c8b2c3d7eb8dc717ef414fad44ba1a55 100644
--- a/ckanext/odsh/profiles/__init__.py
+++ b/ckanext/odsh/profiles/__init__.py
@@ -1 +1,2 @@
 from odsh_dcat_de_profile import ODSHDCATdeProfile
+from odsh_european_dcatap_profile import ODSHEuropeanDCATAPProfile
\ No newline at end of file
diff --git a/ckanext/odsh/profiles/odsh_dcat_de_profile.py b/ckanext/odsh/profiles/odsh_dcat_de_profile.py
index 190e7c49a65803e0bf5f73f106783dc902565adf..08dc69022dd4c2eb339debe0c83c52e42c00f277 100644
--- a/ckanext/odsh/profiles/odsh_dcat_de_profile.py
+++ b/ckanext/odsh/profiles/odsh_dcat_de_profile.py
@@ -8,6 +8,7 @@ from ckanext.dcat.utils import resource_uri
 import ckanext.dcatde.dataset_utils as ds_utils
 from ckanext.dcatde.profiles import DCATdeProfile, DCATDE, DCAT, DCATDE_1_0, DCATDE_1_0_1, DCATDE_1_0_2
 
+import ckanext.odsh.helpers as odsh_helpers
 import ckanext.odsh.helpers_tpsh as helpers_tpsh
 import ckanext.odsh.collection.helpers as helpers_collection
 
@@ -72,6 +73,7 @@ class ODSHDCATdeProfile(DCATdeProfile):
         self._add_license_attribution_by_text(dataset_dict, dataset_ref)
         self._add_type(dataset_dict, dataset_ref)
         self._add_modified_and_issued(dataset_dict, dataset_ref)
+        self._add_references(dataset_dict, dataset_ref)
         if self._is_dataset_collection(dataset_dict):
             self._remove_predefined_collection_members()
             self._add_collection_members(dataset_dict, dataset_ref)
@@ -100,6 +102,19 @@ class ODSHDCATdeProfile(DCATdeProfile):
                      rdflib.Literal(licenseAttributionByText))
                 )
 
+    def _add_references(self, dataset_dict, dataset_ref):
+        '''
+        Adds reference (Musterdatenkatalog/Musterdatensatz) extra field to
+        dcat:references.
+        '''
+        sample_dataset_uri = odsh_helpers.odsh_extract_value_from_extras(dataset_dict.get('extras'), 'reference')
+        if sample_dataset_uri:
+            self.g.set(
+                (dataset_ref, DCT.references,
+                    rdflib.URIRef(sample_dataset_uri)
+                 )
+            )
+    
     def _add_modified_and_issued(self, dataset_dict, dataset_ref):
         '''
         Adds distributions last_modified and created values to
@@ -190,4 +205,4 @@ class ODSHDCATdeProfile(DCATdeProfile):
             (dataset_ref, DCT.isVersionOf,
                 rdflib.URIRef(collection_uri)
              )
-        )
\ No newline at end of file
+        )
diff --git a/ckanext/odsh/profiles/odsh_european_dcatap_profile.py b/ckanext/odsh/profiles/odsh_european_dcatap_profile.py
new file mode 100644
index 0000000000000000000000000000000000000000..544323bd1d9b32db11f84e78b93f4a5fb364f92d
--- /dev/null
+++ b/ckanext/odsh/profiles/odsh_european_dcatap_profile.py
@@ -0,0 +1,139 @@
+import logging
+import rdflib
+
+from ckan.common import config, json
+from ckan.model.license import LicenseRegister
+from ckanext.dcat.profiles import EuropeanDCATAPProfile, DCT, URIRefOrLiteral
+from ckanext.dcatde.profiles import DCAT
+
+log = logging.getLogger(__name__)
+DCT = rdflib.namespace.Namespace("http://purl.org/dc/terms/")
+DCAT = rdflib.namespace.Namespace("http://www.w3.org/ns/dcat#")
+
+
+class ODSHEuropeanDCATAPProfile(EuropeanDCATAPProfile):
+
+    def _license(self, dataset_ref):
+        if self._licenceregister_cache is not None:
+            license_uri2id, license_title2id = self._licenceregister_cache
+        else:
+            license_uri2id = {}
+            license_title2id = {}
+            for license_id, license in LicenseRegister().items():
+                license_uri2id[license_id] = license_id
+                license_uri2id[license.url] = license_id
+                license_title2id[license.title] = license_id
+            self._licenceregister_cache = license_uri2id, license_title2id
+
+        for distribution in self._distributions(dataset_ref):
+            # If distribution has a license, attach it to the dataset
+            license = self._object(distribution, DCT.license)
+            if license:
+                # Try to find a matching license comparing URIs, then titles
+                license_id = license_uri2id.get(license.toPython())
+                if not license_id:
+                    license_id = license_title2id.get(
+                        self._object_value(license, DCT.title))
+                if license_id:
+                    return license_id
+        return ''
+
+    def _distribution_format(self, distribution, normalize_ckan_format=True):
+        imt, label = super(ODSHEuropeanDCATAPProfile, self)._distribution_format(
+            distribution, normalize_ckan_format)
+        if label in resource_formats_import():
+            label = resource_formats_import()[label]
+        return imt, label
+
+    def graph_from_dataset(self, dataset_dict, dataset_ref):
+        super(ODSHEuropeanDCATAPProfile, self).graph_from_dataset(
+            dataset_dict, dataset_ref)
+        for s, p, o in self.g.triples((None, rdflib.RDF.type, DCAT.Distribution)):
+            for s2, p2, o2 in self.g.triples((s, DCT['format'], None)):
+                if o2.decode() in resource_formats_export():
+                    self.g.set((s, DCT['format'], rdflib.URIRef(
+                        resource_formats_export()[o2.decode()])))
+        for s, p, o in self.g.triples((None, DCT.language, None)):
+            if o.decode() in get_language():
+                self.g.set((s, p, rdflib.URIRef(get_language()[o.decode()])))
+            elif type(o) == rdflib.Literal and type(URIRefOrLiteral(o.decode())) == rdflib.URIRef:
+                self.g.set((s, p, rdflib.URIRef(o.decode())))
+
+        license = dataset_dict.get('license_id', None)
+        if license:
+            self.g.add((dataset_ref, DCT.license, rdflib.URIRef(license)))
+            for dist in self.g.objects(dataset_ref, DCAT.distribution):
+                self.g.add((dist, DCT.license, rdflib.URIRef(license)))
+
+
+_RESOURCE_FORMATS_IMPORT = None
+_RESOURCE_FORMATS_EXPORT = None
+
+def resource_formats():
+    global _RESOURCE_FORMATS_IMPORT
+    global _RESOURCE_FORMATS_EXPORT
+    _RESOURCE_FORMATS_IMPORT = {}
+    _RESOURCE_FORMATS_EXPORT = {}
+    g = rdflib.Graph()
+    # Something went wrong with trying to get the file formats online, try to use backup instead
+    try:
+        fallback_filepath = config.get(
+            'ckan.odsh.resource_formats_fallback_filepath')
+        g.parse(fallback_filepath)
+        assert len(set([s for s in g.subjects()])) > 120
+    except:
+        log.exception("failed to process resource_formats")
+        raise Exception('failed to load formats')
+    file_types = [subj.decode() for subj in g.subjects()]
+
+    for elem in sorted(set(file_types)):
+        if elem.split('/')[-1] != 'file-type':
+            _RESOURCE_FORMATS_EXPORT[elem.split('/')[-1]] = elem
+            _RESOURCE_FORMATS_IMPORT[elem] = elem.split('/')[-1]
+
+def resource_formats_export():
+    global _RESOURCE_FORMATS_EXPORT
+    if not _RESOURCE_FORMATS_EXPORT:
+        resource_formats()
+    return _RESOURCE_FORMATS_EXPORT
+
+def resource_formats_import():
+    global _RESOURCE_FORMATS_IMPORT
+    if not _RESOURCE_FORMATS_IMPORT:
+        resource_formats()
+    return _RESOURCE_FORMATS_IMPORT
+
+
+_LANGUAGES = None
+
+def get_language():
+    ''' When datasets are exported in rdf-format, their language-tag
+    should be given as
+    "<dct:language rdf:resource="http://publications.europa.eu/.../XXX"/>",
+    where XXX represents the language conforming to iso-639-3 standard.
+    However, some imported datasets represent their language as
+    "<dct:language>de</dct:language>", which will be interpreted here as
+    iso-639-1 values. As we do not display the language setting in the
+    web frontend, this function only assures the correct export format,
+    by using 'languages.json' as mapping table.
+    '''
+    global _LANGUAGES
+    if not _LANGUAGES:
+        _LANGUAGES = {}
+        languages_file_path = config.get('ckanext.odsh.language.mapping')
+        if not languages_file_path:
+            log.warning(
+                "Could not find config setting: 'ckanext.odsh.language.mapping', using fallback instead.")
+            languages_file_path = '/usr/lib/ckan/default/src/ckanext-odsh/languages.json'
+        with open(languages_file_path) as languages_file:
+            try:
+                language_mapping_table = json.loads(languages_file.read())
+            except ValueError, e:
+                # includes simplejson.decoder.JSONDecodeError
+                raise ValueError('Invalid JSON syntax in %s: %s' %
+                                 (languages_file_path, e))
+
+            for language_line in language_mapping_table:
+                _LANGUAGES[language_line[0]] = language_line[1]
+
+    return _LANGUAGES
\ No newline at end of file
diff --git a/ckanext/odsh/public/odsh.css b/ckanext/odsh/public/odsh.css
index 9efa2ecbf01d9a449778351ad4697382815d9bbf..25f377099fe17dc44152829a9b11367e87c9232b 100644
--- a/ckanext/odsh/public/odsh.css
+++ b/ckanext/odsh/public/odsh.css
@@ -1938,7 +1938,8 @@ body {
 }
 
 .field-organization .select2-container .select2-choice,
-.field-spatial_uri .select2-container .select2-choice 
+.field-spatial_uri .select2-container .select2-choice,
+.field-reference .select2-container .select2-choice 
 {
     background-color: #F6F7F9;
     background-image: none;
diff --git a/ckanext/odsh/templates/package/snippets/package_basic_fields.html b/ckanext/odsh/templates/package/snippets/package_basic_fields.html
index ada4778f2c438600cabce8295223a229ed2e87b6..7b1354747ac099d5b6cb3267797b3b9ce0492365 100644
--- a/ckanext/odsh/templates/package/snippets/package_basic_fields.html
+++ b/ckanext/odsh/templates/package/snippets/package_basic_fields.html
@@ -320,3 +320,10 @@ dataset_is_draft)) %}
         </div>
     </div>
 </div>
+
+            
+{# field reference #}
+{% set field = 'reference' %}
+{% set error_reference = h.odsh_extract_error(field, errors) %}
+{% set value = h.odsh_extract_value_from_extras(data.extras,field) or '' %}
+{{ form.select_autocomplete(field, label=_('Musterdatensatz'), selected=value, options=h.odsh_load_mdk_sample_dataset(), error=error_reference, is_required=False, classes=['control-full', 'field-reference'])}}
diff --git a/mdk_mapping.json b/mdk_mapping.json
new file mode 100644
index 0000000000000000000000000000000000000000..85077b17687d46b305a7a0dc7a042f9933bb8e01
--- /dev/null
+++ b/mdk_mapping.json
@@ -0,0 +1,307 @@
+{
+  "https://musterdatenkatalog.de/def/musterdatensatz/abfallwirtschaft/abfallkalender":"Abfallwirtschaft - Abfallkalender",
+  "https://musterdatenkatalog.de/def/musterdatensatz/abfallwirtschaft/abfallmengen":"Abfallwirtschaft - Abfallmengen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/abfallwirtschaft/abgabestellen":"Abfallwirtschaft - Abgabestellen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/abfallwirtschaft/beteiligungen":"Abfallwirtschaft - Beteiligungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/abfallwirtschaft/betriebe":"Abfallwirtschaft - Betriebe",
+  "https://musterdatenkatalog.de/def/musterdatensatz/abfallwirtschaft/container":"Abfallwirtschaft - Container",
+  "https://musterdatenkatalog.de/def/musterdatensatz/abfallwirtschaft/entwaesserung":"Abfallwirtschaft - Entwässerung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/abfallwirtschaft/gremien":"Abfallwirtschaft - Gremien",
+  "https://musterdatenkatalog.de/def/musterdatensatz/abfallwirtschaft/muellabfuhr":"Abfallwirtschaft - Müllabfuhr",
+  "https://musterdatenkatalog.de/def/musterdatensatz/abfallwirtschaft/muellgebuehren":"Abfallwirtschaft - Müllgebühren",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bau/baufertigstellungen":"Bau - Baufertigstellungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bau/baugenehmigungen":"Bau - Baugenehmigungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bau/bauprojekte":"Bau - Bauprojekte",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bau/gebaeude":"Bau - Gebäude",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bau/grundstueckbewertung":"Bau - Grundstückbewertung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/behoerden/einrichtungen":"Behörden - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bevoelkerung/arbeit":"Bevölkerung - Arbeit",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bevoelkerung/bedarfsgemeinschaften":"Bevölkerung - Bedarfsgemeinschaften",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bevoelkerung/demografie":"Bevölkerung - Demografie",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bevoelkerung/einwohnerzahl":"Bevölkerung - Einwohnerzahl",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bevoelkerung/fluechtlingszahlen":"Bevölkerung - Flüchtlingszahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bevoelkerung/geburtenUndSterbefaelle":"Bevölkerung - Geburten und Sterbefälle",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bevoelkerung/integration":"Bevölkerung - Integration",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bevoelkerung/menschenMitBehinderung":"Bevölkerung - Menschen mit Behinderung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bevoelkerung/migrationshintergrund":"Bevölkerung - Migrationshintergrund",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bevoelkerung/religionszugehoerigkeit":"Bevölkerung - Religionszugehörigkeit",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bevoelkerung/staatsangehoerigkeit":"Bevölkerung - Staatsangehörigkeit",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bevoelkerung/vornamen":"Bevölkerung - Vornamen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bevoelkerung/wohnen":"Bevölkerung - Wohnen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bibliotheken/ausleihen":"Bibliotheken - Ausleihen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bibliotheken/bestaende":"Bibliotheken - Bestände",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bibliotheken/besucherzahlen":"Bibliotheken - Besucherzahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bibliotheken/budget":"Bibliotheken - Budget",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bibliotheken/einrichtungen":"Bibliotheken - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bibliotheken/kennzahlen":"Bibliotheken - Kennzahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/bildungstraeger/einrichtungen":"Bildungsträger - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/buergerbeteiligung/buergerentscheid":"Bürgerbeteiligung - Bürgerentscheid",
+  "https://musterdatenkatalog.de/def/musterdatensatz/buergerbeteiligung/buergerhaushalt":"Bürgerbeteiligung - Bürgerhaushalt",
+  "https://musterdatenkatalog.de/def/musterdatensatz/buergerbeteiligung/information":"Bürgerbeteiligung - Information",
+  "https://musterdatenkatalog.de/def/musterdatensatz/buergerbeteiligung/umfrage":"Bürgerbeteiligung - Umfrage",
+  "https://musterdatenkatalog.de/def/musterdatensatz/buergerservice/anliegenmanagement":"Bürgerservice - Anliegenmanagement",
+  "https://musterdatenkatalog.de/def/musterdatensatz/buergerservice/produkte":"Bürgerservice - Produkte",
+  "https://musterdatenkatalog.de/def/musterdatensatz/buergerservice/telefonverzeichnis":"Bürgerservice - Telefonverzeichnis",
+  "https://musterdatenkatalog.de/def/musterdatensatz/buergerservice/termine":"Bürgerservice - Termine",
+  "https://musterdatenkatalog.de/def/musterdatensatz/buergerservice/wartezeiten":"Bürgerservice - Wartezeiten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/energiewirtschaft/energieberichte":"Energiewirtschaft - Energieberichte",
+  "https://musterdatenkatalog.de/def/musterdatensatz/energiewirtschaft/heizung":"Energiewirtschaft - Heizung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/energiewirtschaft/solar":"Energiewirtschaft - Solar",
+  "https://musterdatenkatalog.de/def/musterdatensatz/energiewirtschaft/strom":"Energiewirtschaft - Strom",
+  "https://musterdatenkatalog.de/def/musterdatensatz/energiewirtschaft/wasser":"Energiewirtschaft - Wasser",
+  "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/coworkingSpaces":"Externe Infrastruktur - Coworking Spaces",
+  "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/einkaufsfuehrer":"Externe Infrastruktur - Einkaufsführer",
+  "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/einzelhandel":"Externe Infrastruktur - Einzelhandel",
+  "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/kirchenKappellenUndKloester":"Externe Infrastruktur - Kirchen, Kapellen und Klöster",
+  "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/maerkte":"Externe Infrastruktur - Märkte",
+  "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/oeffnungszeiten":"Externe Infrastruktur - Öffnungszeiten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/polizei":"Externe Infrastruktur - Polizei",
+  "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/postfilialen":"Externe Infrastruktur - Postfilialen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/weihnachtsmaerkte":"Externe Infrastruktur - Weihnachtsmärkte",
+  "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/wochenmaerkte":"Externe Infrastruktur - Wochenmärkte",
+  "https://musterdatenkatalog.de/def/musterdatensatz/feuerwehr/einrichtungen":"Feuerwehr - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/feuerwehr/einsaetze":"Feuerwehr - Einsätze",
+  "https://musterdatenkatalog.de/def/musterdatensatz/feuerwehr/kennzahlen":"Feuerwehr - Kennzahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/freizeit/baeder":"Freizeit - Bäder",
+  "https://musterdatenkatalog.de/def/musterdatensatz/freizeit/einrichtungen":"Freizeit - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/freizeit/ferienangebot":"Freizeit - Ferienangebot",
+  "https://musterdatenkatalog.de/def/musterdatensatz/freizeit/grillplaetze":"Freizeit - Grillplätze",
+  "https://musterdatenkatalog.de/def/musterdatensatz/freizeit/sitzgelegenheiten":"Freizeit - Sitzgelegenheiten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/friedhoefe/ehrengraeber":"Friedhöfe - Ehrengräber",
+  "https://musterdatenkatalog.de/def/musterdatensatz/friedhoefe/einrichtungen":"Friedhöfe - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/friedhoefe/grabstaetten":"Friedhöfe - Grabstätten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/fuhrpark/kfzBestand":"Fuhrpark - KFZ-Bestand",
+  "https://musterdatenkatalog.de/def/musterdatensatz/geschichte/archivbestand":"Geschichte - Archivbestand",
+  "https://musterdatenkatalog.de/def/musterdatensatz/geschichte/entschaedigungen":"Geschichte - Entschädigungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/geschichte/historischeLuftaufnahmen":"Geschichte - Historische Luftaufnahmen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/geschichte/information":"Geschichte - Information",
+  "https://musterdatenkatalog.de/def/musterdatensatz/geschichte/personalverzeichnisHistorisch":"Geschichte - Personalverzeichnis historisch",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gesundheitseinrichtungen/apotheken":"Gesundheitseinrichtungen - Apotheken",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gesundheitseinrichtungen/baeder":"Gesundheitseinrichtungen - Bäder",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gesundheitseinrichtungen/drogenhilfe":"Gesundheitseinrichtungen - Drogenhilfe",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gesundheitseinrichtungen/hebammen":"Gesundheitseinrichtungen - Hebammen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gesundheitseinrichtungen/krankenhaeuser":"Gesundheitseinrichtungen - Krankenhäuser",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gesundheitseinrichtungen/pflege":"Gesundheitseinrichtungen - Pflege",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gewaesser/pegelstaende":"Gewässer - Pegelstände",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gewaesser/wasserflaechen":"Gewässer - Wasserflächen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/ausgleichsflaechen":"Grünflächen - Ausgleichsflächen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/baumbestandBaumkataster":"Grünflächen - Baumbestand/Baumkataster",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/baumfaellungen":"Grünflächen - Baumfällungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/biotopflaechen":"Grünflächen - Biotopflächen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/blumenampeln":"Grünflächen - Blumenampeln",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/brunnen":"Grünflächen - Brunnen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/gruenflaechenGruenflaechenkataster":"Grünflächen - Grünflächen/Grünflächenkataster",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/hundekottueten":"Grünflächen - Hundekottüten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/hundewiesen":"Grünflächen - Hundewiesen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/jagdbezirke":"Grünflächen - Jagdbezirke",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/kleingaerten":"Grünflächen - Kleingärten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/naturschutz":"Grünflächen - Naturschutz",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/parkanlagen":"Grünflächen - Parkanlagen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/urbanGardening":"Grünflächen - Urban Gardening",
+  "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/waldflaechen":"Grünflächen - Waldflächen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/ausserplanmaessigeAufwendungen":"Haushalt - Außerplanmäßige Aufwendungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/controlling":"Haushalt - Controlling",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/eckdaten":"Haushalt - Eckdaten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/einzeldarstellungen":"Haushalt - Einzeldarstellungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/ergebnisplan":"Haushalt - Ergebnisplan",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/finanzplan":"Haushalt - Finanzplan",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/foerderungen":"Haushalt - Förderungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/haushaltskonsolidierung":"Haushalt - Haushaltskonsolidierung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/haushaltsplan":"Haushalt - Haushaltsplan",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/jahresabschluss":"Haushalt - Jahresabschluss",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/metadaten":"Haushalt - Metadaten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/produktbereichsummen":"Haushalt - Produktbereichssummen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/produktgruppen":"Haushalt - Produktgruppen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/produktplaene":"Haushalt - Produktpläne",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/satzung":"Haushalt - Satzung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/sicherungskonzept":"Haushalt - Sicherungskonzept",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/sponsoring":"Haushalt - Sponsoring",
+  "https://musterdatenkatalog.de/def/musterdatensatz/haushalt/zuwendungenPolitischeGremien":"Haushalt - Zuwendungen Politische Gremien",
+  "https://musterdatenkatalog.de/def/musterdatensatz/hochschulen/gebaeude":"Hochschulen - Gebäude",
+  "https://musterdatenkatalog.de/def/musterdatensatz/hochschulen/studierendenzahlen":"Hochschulen - Studierendenzahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/individualverkehr/baustellen":"Individualverkehr - Baustellen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/individualverkehr/bussgelder":"Individualverkehr - Bußgelder",
+  "https://musterdatenkatalog.de/def/musterdatensatz/individualverkehr/carsharing":"Individualverkehr - Carsharing",
+  "https://musterdatenkatalog.de/def/musterdatensatz/individualverkehr/fahrzeugzulassungen":"Individualverkehr - Fahrzeugzulassungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/individualverkehr/kennzahlen":"Individualverkehr - Kennzahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/individualverkehr/kfzBestand":"Individualverkehr - KFZ-Bestand",
+  "https://musterdatenkatalog.de/def/musterdatensatz/individualverkehr/laerm":"Individualverkehr - Lärm",
+  "https://musterdatenkatalog.de/def/musterdatensatz/individualverkehr/messstellen":"Individualverkehr - Messstellen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/individualverkehr/schwerlastverkehr":"Individualverkehr - Schwerlastverkehr",
+  "https://musterdatenkatalog.de/def/musterdatensatz/individualverkehr/sondernutzungen":"Individualverkehr - Sondernutzungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/individualverkehr/strassenverkehr":"Individualverkehr - Straßenverkehr",
+  "https://musterdatenkatalog.de/def/musterdatensatz/individualverkehr/taxis":"Individualverkehr - Taxis",
+  "https://musterdatenkatalog.de/def/musterdatensatz/individualverkehr/unfaelle":"Individualverkehr - Unfälle",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/adressen":"Infrastruktur - Adressen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/ampelanlagen":"Infrastruktur - Ampelanlagen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/autobahnbindung":"Infrastruktur - Autobahnanbindung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/baustellen":"Infrastruktur - Baustellen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/beleuchtungen":"Infrastruktur - Beleuchtung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/bruecken":"Infrastruktur - Brücken",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/elektrotankstellen":"Infrastruktur - Elektrotankstellen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/fahrradstrassen":"Infrastruktur - Fahrradstraßen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/flughaefen":"Infrastruktur - Flughäfen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/fussgaengerzonen":"Infrastruktur - Fußgängerzonen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/laufstrecken":"Infrastruktur - Laufstrecken",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/oeffentlicheToiletten":"Infrastruktur - Öffentliche Toiletten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/parkplaetze":"Infrastruktur - Parkplätze",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/schiffsanlegestellen":"Infrastruktur - Schiffsanlegestellen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/strassen":"Infrastruktur - Straßen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/strassenreinigung":"Infrastruktur - Straßenreinigung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/tankstellen":"Infrastruktur - Tankstellen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/infrastruktur/wlanUndMobilfunk":"Infrastruktur - WLAN und Mobilfunk",
+  "https://musterdatenkatalog.de/def/musterdatensatz/jugend/einrichtungen":"Jugend - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/justiz/einrichtungen":"Justiz - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/justiz/gesetzestexte":"Justiz - Gesetzestexte",
+  "https://musterdatenkatalog.de/def/musterdatensatz/kindertageseinrichtungen/betreuungsplaetze":"Kindertageseinrichtungen - Betreuungsplätze",
+  "https://musterdatenkatalog.de/def/musterdatensatz/kindertageseinrichtungen/kindertagesstaetten":"Kindertageseinrichtungen - Kindertagestätten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/kultur/besucherzahlen":"Kultur - Besucherzahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/kultur/denkmaeler":"Kultur - Denkmäler",
+  "https://musterdatenkatalog.de/def/musterdatensatz/kultur/foerderungen":"Kultur - Förderungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/kultur/information":"Kultur - Information",
+  "https://musterdatenkatalog.de/def/musterdatensatz/kultur/kunstwerke":"Kultur - Kunstwerke",
+  "https://musterdatenkatalog.de/def/musterdatensatz/kultur/lehrUndWanderpfade":"Kultur - Lehr- und Wanderpfade",
+  "https://musterdatenkatalog.de/def/musterdatensatz/kultur/veranstaltungen":"Kultur - Veranstaltungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/liegenschaften/gebaeude":"Liegenschaften - Gebäude",
+  "https://musterdatenkatalog.de/def/musterdatensatz/liegenschaften/grundstuecke":"Liegenschaften - Grundstücke",
+  "https://musterdatenkatalog.de/def/musterdatensatz/liegenschaften/jahresberichte":"Liegenschaften - Jahresberichte",
+  "https://musterdatenkatalog.de/def/musterdatensatz/liegenschaften/satzungen":"Liegenschaften - Satzungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/museen/besucherzahlen":"Museen - Besucherzahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/museen/einrichtungen":"Museen - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/musikschulen/jahresrechnung":"Musikschulen - Jahresrechnung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/musikschulen/teilnehmer":"Musikschulen - Teilnehmer",
+  "https://musterdatenkatalog.de/def/musterdatensatz/musikschulen/unterrichtsangebot":"Musikschulen - Unterrichtsangebot",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oeffentlicheWirtschaft/ausschreibungenVergaben":"Öffentliche Wirtschaft - Ausschreibungen Vergaben",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oeffentlicheWirtschaft/beteiligungen":"Öffentliche Wirtschaft - Beteiligungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oeffentlichkeitsarbeit/amtsblatt":"Öffentlichkeitsarbeit - Amtsblatt",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oeffentlichkeitsarbeit/ehrenbuerrger":"Öffentlichkeitsarbeit - Ehrenbürger",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oeffentlichkeitsarbeit/fotos":"Öffentlichkeitsarbeit - Fotos",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oeffentlichkeitsarbeit/information":"Öffentlichkeitsarbeit - Information",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oeffentlichkeitsarbeit/pressemitteilungen":"Öffentlichkeitsarbeit - Pressemitteilungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/openData/information":"Open Data - Information",
+  "https://musterdatenkatalog.de/def/musterdatensatz/openData/wunschlisten":"Open Data - Wunschlisten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/openData/zugriffe":"Open Data - Zugriffe",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oepnv/aufzuegeUndRolltreppen":"ÖPNV - Aufzüge und Rolltreppen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oepnv/befragungen":"ÖPNV - Befragung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oepnv/fahrgastzahlen":"ÖPNV - Fahrgastzahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oepnv/haltestellen":"ÖPNV - Haltestellen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oepnv/liniennetz":"ÖPNV - Liniennetz",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oepnv/sollfahrdaten":"ÖPNV - Sollfahrdaten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oepnv/verkehrsnetz":"ÖPNV - Verkehrsnetz",
+  "https://musterdatenkatalog.de/def/musterdatensatz/oepnv/vertriebsstellen":"ÖPNV - Vertriebsstellen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/personal/stellenplan":"Personal - Stellenplan",
+  "https://musterdatenkatalog.de/def/musterdatensatz/politischeVertretung/buergermeister":"Politische Vertretung - Bürgermeister",
+  "https://musterdatenkatalog.de/def/musterdatensatz/politischeVertretung/gremien":"Politische Vertretung - Gremien",
+  "https://musterdatenkatalog.de/def/musterdatensatz/politischeVertretung/mandatstraeger":"Politische Vertretung - Mandatsträger",
+  "https://musterdatenkatalog.de/def/musterdatensatz/radverkehr/buergerbeteiligung":"Radverkehr - Bürgerbeteiligung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/radverkehr/fahrraeder":"Radverkehr - Fahrräder",
+  "https://musterdatenkatalog.de/def/musterdatensatz/radverkehr/foerderungen":"Radverkehr - Förderungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/radverkehr/ladestationen":"Radverkehr - Ladestationen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/radverkehr/messstellen":"Radverkehr - Messstellen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/radverkehr/radrouten":"Radverkehr - Radrouten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/radverkehr/stellplaetze":"Radverkehr - Stellplätze",
+  "https://musterdatenkatalog.de/def/musterdatensatz/raumordnung/adressen":"Raumordnung - Adressen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/raumordnung/baublockgrenzen":"Raumordnung - Baublockgrenzen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/raumordnung/bebauungsplaene":"Raumordnung - Bebauungspläne",
+  "https://musterdatenkatalog.de/def/musterdatensatz/raumordnung/bloecke":"Raumordnung - Blöcke",
+  "https://musterdatenkatalog.de/def/musterdatensatz/raumordnung/flaechennutzungen":"Raumordnung - Flächennutzungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/raumordnung/hausnummern":"Raumordnung - Hausnummern",
+  "https://musterdatenkatalog.de/def/musterdatensatz/raumordnung/liegenschaftskataster":"Raumordnung - Liegenschaftskataster",
+  "https://musterdatenkatalog.de/def/musterdatensatz/raumordnung/orthofotos":"Raumordnung - Orthofotos",
+  "https://musterdatenkatalog.de/def/musterdatensatz/raumordnung/ortsteile":"Raumordnung - Ortsteile",
+  "https://musterdatenkatalog.de/def/musterdatensatz/raumordnung/postleitzahlengebiete":"Raumordnung - Postleitzahlengebiete",
+  "https://musterdatenkatalog.de/def/musterdatensatz/raumordnung/sozialraeume":"Raumordnung - Sozialräume",
+  "https://musterdatenkatalog.de/def/musterdatensatz/raumordnung/stadtgebiet":"Raumordnung - Stadtgebiet",
+  "https://musterdatenkatalog.de/def/musterdatensatz/rettungsdienst/defibrillatoren":"Rettungsdienst - Defibrillatoren",
+  "https://musterdatenkatalog.de/def/musterdatensatz/rettungsdienst/einsaetze":"Rettungsdienst - Einsätze",
+  "https://musterdatenkatalog.de/def/musterdatensatz/rettungsdienst/reanimationen":"Rettungsdienst - Reanimationen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/rettungsdienst/rettungspunkt":"Rettungsdienst - Rettungspunkt",
+  "https://musterdatenkatalog.de/def/musterdatensatz/schulen/einrichtungen":"Schulen - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/schulen/internetanbindung":"Schulen - Internetanbindung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/schulen/schulangebot":"Schulen - Schulangebot",
+  "https://musterdatenkatalog.de/def/musterdatensatz/schulen/schuleingangsuntersuchungen":"Schulen - Schuleingangsunteruchungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/schulen/schulentwicklungsplan":"Schulen - Schulentwicklungsplan",
+  "https://musterdatenkatalog.de/def/musterdatensatz/schulen/schuelerzahlen":"Schulen - Schülerzahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/schulen/wunschschule":"Schulen - Wunschschule",
+  "https://musterdatenkatalog.de/def/musterdatensatz/senioren/einrichtungen":"Senioren - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sicherheit/karneval":"Sicherheit - Karneval",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sicherheit/kriminalitaetsstatistik":"Sicherheit - Kriminalitätsstatistik",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sicherheit/notinseln":"Sicherheit - Notinseln",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sicherheit/ordnungsamt":"Sicherheit - Ordnungsamt",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sicherheit/silvester":"Sicherheit - Silvester",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sozialeHilfen/asylbewerber":"Soziale Hilfen - Asylwerber",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sozialeHilfen/behindertenwohnheime":"Soziale Hilfen - Behindertenwohnheime",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sozialeHilfen/einrichtungen":"Soziale Hilfen - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sozialeHilfen/leistungsbezieher":"Soziale Hilfen - Leistungsbezieher",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sozialeHilfen/strassen":"Soziale Hilfen - Straßen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sozialeHilfen/wohngeld":"Soziale Hilfen - Wohngeld",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sportUndSpielstaetten/belegung":"Sport- und Spielstätten - Belegung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sportUndSpielstaetten/einrichtungen":"Sport- und Spielstätten - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/sportUndSpielstaetten/freibaeder":"Sport- und Spielstätten - Freibäder",
+  "https://musterdatenkatalog.de/def/musterdatensatz/stadtarchiv/bestaende":"Stadtarchiv - Bestände",
+  "https://musterdatenkatalog.de/def/musterdatensatz/stadtmarketing/information":"Stadtmarketing - Information",
+  "https://musterdatenkatalog.de/def/musterdatensatz/stadtmarketing/staedterankings":"Stadtmarketing - Städterankings",
+  "https://musterdatenkatalog.de/def/musterdatensatz/stadtmarketing/standortentwicklung":"Stadtmarketing - Standortentwicklung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/stadtmarketing/zahlenUndFakten":"Stadtmarketing - Zahlen und Fakten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/Stadtplan/Stadtmodell3d":"Stadtplan - Stadtmodell 3D",
+  "https://musterdatenkatalog.de/def/musterdatensatz/Stadtplan/stadtplaene":"Stadtplan - Stadtpläne",
+  "https://musterdatenkatalog.de/def/musterdatensatz/stadtwerke/ausschreibungenVergaben":"Stadtwerke - Ausschreibungen Vergaben",
+  "https://musterdatenkatalog.de/def/musterdatensatz/stadtwerke/immobilienangebote":"Stadtwerke - Immobilienangebote",
+  "https://musterdatenkatalog.de/def/musterdatensatz/stadtwerke/information":"Stadtwerke - Information",
+  "https://musterdatenkatalog.de/def/musterdatensatz/stadtwerke/kennzahlen":"Stadtwerke - Kennzahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/steuernUndAbgaben/hundesteuer":"Steuern und Abgaben - Hundesteuer",
+  "https://musterdatenkatalog.de/def/musterdatensatz/steuernUndAbgaben/nettoeinnahmen":"Steuern und Abgaben - Nettoeinnahmen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/theater/besucherzahlen":"Theater - Besucherzahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/tiefbau/geschaeftsberichte":"Tiefbau - Geschäftsberichte",
+  "https://musterdatenkatalog.de/def/musterdatensatz/tourismus/campingplaetze":"Tourismus - Campingplätze",
+  "https://musterdatenkatalog.de/def/musterdatensatz/tourismus/gaestezahlen":"Tourismus - Gästezahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/tourismus/privatunterkuenfte":"Tourismus - Privatunterkünfte",
+  "https://musterdatenkatalog.de/def/musterdatensatz/tourismus/sehenswuerdigkeiten":"Tourismus - Sehenswürdigkeiten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/tourismus/stadtfuehrungen":"Tourismus - Stadtführungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/tourismus/uebernachtungen":"Tourismus - Übernachtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/umweltschutz/grundwasser":"Umweltschutz - Grundwasser",
+  "https://musterdatenkatalog.de/def/musterdatensatz/umweltschutz/klimabilanz":"Umweltschutz - Klimabilanz",
+  "https://musterdatenkatalog.de/def/musterdatensatz/umweltschutz/messstellen":"Umweltschutz - Messstellen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/umweltschutz/nachhaltigkeit":"Umweltschutz - Nachhaltigkeit",
+  "https://musterdatenkatalog.de/def/musterdatensatz/umweltschutz/trinkwasser":"Umweltschutz - Trinkwasser",
+  "https://musterdatenkatalog.de/def/musterdatensatz/umweltschutz/umweltzonen":"Umweltschutz - Umweltzonen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/vereineVerbaende/einrichtungen":"Vereine, Verbände - Einrichtungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/volkshochschulen/information":"Volkshochschulen - Information",
+  "https://musterdatenkatalog.de/def/musterdatensatz/volkshochschulen/programm":"Volkshochschulen - Programm",
+  "https://musterdatenkatalog.de/def/musterdatensatz/volkshochschulen/teilnehmer":"Volkshochschulen - Teilnehmer",
+  "https://musterdatenkatalog.de/def/musterdatensatz/volkshochschulen/veranstaltungen":"Volkshochschulen - Veranstaltungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wahlen/kandidatenlisten":"Wahlen - Kandidatenlisten",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wahlen/kommunalwahl":"Wahlen - Kommunalwahl",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wahlen/strassen":"Wahlen - Straßen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wahlen/wahlbeteiligungBundestagswahlen":"Wahlen - Wahlbeteiligung Bundestagswahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wahlen/wahlbteiligungKommunalwahlen":"Wahlen - Wahlbeteiligung Kommunalwahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wahlen/wahlbezirke":"Wahlen - Wahlbezirke",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wahlen/wahlergebnisBeiratswahlen":"Wahlen - Wahlergebnis Beiratswahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wahlen/wahlergebnisBundestagswahlen":"Wahlen - Wahlergebnis Bundestagswahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wahlen/wahlergebnisEuropawahlen":"Wahlen - Wahlergebnis Europawahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wahlen/wahlergebnisKommunalwahlen":"Wahlen - Wahlergebnis Kommunalwahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wahlen/wahlergebnisLandtagswahlen":"Wahlen - Wahlergebnis Landtagswahlen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wahlen/wahlkreise":"Wahlen - Wahlkreise",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wahlen/wahllokale":"Wahlen - Wahllokale",
+  "https://musterdatenkatalog.de/def/musterdatensatz/websiten/zugriffe":"Website - Zugriffe",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wetter/hitze":"Wetter - Hitze",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wetter/messstellen":"Wetter - Messstellen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wirtschaft/bueroflaechen":"Wirtschaft - Büroflächen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wirtschaft/industrieUndGewerbeflaechen":"Wirtschaft - Industrie- und Gewerbeflächen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wirtschaft/meldungen":"Wirtschaft - Meldungen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wirtschaft/wirtschaftsfoerderung":"Wirtschaft - Wirtschaftsförderung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wirtschaft/wirtschaftsstandorte":"Wirtschaft - Wirtschaftsstandorte",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wohnen/bauprojekte":"Wohnen - Bauprojekte",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wohnen/flaechengroessen":"Wohnen - Flächengrößen",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wohnen/fluechtlingsunterbringung":"Wohnen - Flüchtlingsunterbringung",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wohnen/gefoerderterWohnbau":"Wohnen - geförderter Wohnbau",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wohnen/information":"Wohnen - Information",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wohnen/sozialraeume":"Wohnen - Sozialräume",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wohnen/studentenwohnheime":"Wohnen - Studentenwohnheime",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wohnen/wohnplaetze":"Wohnen - Wohnplätze",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wohnen/wohnquartiere":"Wohnen - Wohnquartiere",
+  "https://musterdatenkatalog.de/def/musterdatensatz/wohnen/wohnungseigentum":"Wohnen - Wohnungseigentum",
+  "https://musterdatenkatalog.de/def/musterdatensatz/zivilUndKatastrophenschutz/kampfmittelfunde":"Zivil- und Katastrophenschutz - Kampfmittelfunde",
+  "https://musterdatenkatalog.de/def/musterdatensatz/zivilUndKatastrophenschutz/sirenen":"Zivil- und Katastrophenschutz - Sirenen"
+}
+
diff --git a/out.uls b/out.uls
new file mode 100644
index 0000000000000000000000000000000000000000..de4db1551cc3abf0e549b6545439211fd1fe70df
--- /dev/null
+++ b/out.uls
@@ -0,0 +1,30 @@
+V;2019-04-25 12:18:36;ckan274;"ULS";"Exception";"traceback";"Text";"
+Traceback (most recent call last):
+File \\"/usr/lib/ckan/default/src/ckanext-odsh/ckanext/odsh/plugin.py\\", line 358, in before_search
+raise BaseException('boom')
+BaseException: boom
+";
+V;2019-04-25 12:18:37;ckan274;"ULS";"Exception";"traceback";"Text";"
+Traceback (most recent call last):
+File \\"/usr/lib/ckan/default/src/ckanext-odsh/ckanext/odsh/plugin.py\\", line 358, in before_search
+raise BaseException('boom')
+BaseException: boom
+";
+V;2019-04-25 12:18:38;ckan274;"ULS";"Exception";"traceback";"Text";"
+Traceback (most recent call last):
+File \\"/usr/lib/ckan/default/src/ckanext-odsh/ckanext/odsh/plugin.py\\", line 358, in before_search
+raise BaseException('boom')
+BaseException: boom
+";
+V;2019-04-25 12:18:40;ckan274;"ULS";"Exception";"traceback";"Text";"
+Traceback (most recent call last):
+File \\"/usr/lib/ckan/default/src/ckanext-odsh/ckanext/odsh/plugin.py\\", line 358, in before_search
+raise BaseException('boom')
+BaseException: boom
+";
+V;2019-04-25 12:18:41;ckan274;"ULS";"Exception";"traceback";"Text";"
+Traceback (most recent call last):
+File \\"/usr/lib/ckan/default/src/ckanext-odsh/ckanext/odsh/plugin.py\\", line 358, in before_search
+raise BaseException('boom')
+BaseException: boom
+";
diff --git a/setup.py b/setup.py
index 6a60a5112fb1134b4d6b28b47b44b2c4ed6cebcc..56287f08b92df2409200a83f764ab61a294c50df 100755
--- a/setup.py
+++ b/setup.py
@@ -96,6 +96,7 @@ setup(
         ckan = ckan.lib.extract:extract_ckan
 
         [ckan.rdf.profiles]
+        odsheuro_dcat_ap=ckanext.odsh.profiles:ODSHEuropeanDCATAPProfile
         odshdcatap_de=ckanext.odsh.profiles:ODSHDCATdeProfile
     ''',
 
diff --git a/validation.py b/validation.py
new file mode 100644
index 0000000000000000000000000000000000000000..e50cbb4394ddbcc447a7fe87d200e738ba6019e6
--- /dev/null
+++ b/validation.py
@@ -0,0 +1,241 @@
+# This Python file uses the following encoding: utf-8
+import logging
+import csv
+import re
+import urllib2
+import json
+from itertools import count
+from dateutil.parser import parse
+
+import ckan.plugins.toolkit as toolkit
+import ckan.model as model
+from ckan.lib.navl.dictization_functions import Missing
+
+from pylons import config
+
+import pdb
+
+_ = toolkit._
+
+log = logging.getLogger(__name__)
+
+
+def _extract_value(data, field):
+    key = None
+    for k in data.keys():
+        if data[k] == field:
+            key = k
+            break
+    if key is None:
+        return None
+    return data[(key[0], key[1], 'value')]
+
+
+def validate_extra_groups(data, requireAtLeastOne, errors):
+    value = _extract_value(data, 'groups')
+    if value != None:
+        # 'value != None' means the extra key 'groups' was found,
+        # so the dataset came from manual editing via the web-frontend.
+        if not value:
+            if requireAtLeastOne:
+                errors['groups'] = 'at least one group needed'
+            data[('groups', 0, 'id')] = ''
+            return
+
+        groups = [g.strip() for g in value.split(',') if value.strip()]
+        for k in data.keys():
+            if len(k) == 3 and k[0] == 'groups':
+                data[k] = ''
+                # del data[k]
+        if len(groups) == 0:
+            if requireAtLeastOne:
+                errors['groups'] = 'at least one group needed'
+            return
+
+        for num, group in zip(range(len(groups)), groups):
+            data[('groups', num, 'id')] = group
+    else:  # no extra-field 'groups'
+        # dataset might come from a harvest process
+        if not data.get(('groups', 0, 'id'), False) and \
+           not data.get(('groups', 0, 'name'), False):
+            errors['groups'] = 'at least one group needed'
+
+
+def validate_extras(key, data, errors, context):
+    extra_errors = {}
+    isStaNord = ('id',) in data and data[('id',)][:7] == 'StaNord'
+
+    validate_extra_groups(data, True, extra_errors)
+    validate_extra_date_new(key, 'issued', data, isStaNord, extra_errors)
+    validate_extra_date_new(key, 'temporal_start',
+                            data, isStaNord, extra_errors)
+    validate_extra_date_new(key, 'temporal_end', data, True, extra_errors)
+
+    if len(extra_errors.values()):
+        raise toolkit.Invalid(extra_errors)
+
+
+def _set_value(data, field, value):
+    key = None
+    for k in data.keys():
+        if data[k] == field:
+            key = k
+            break
+    if key is None:
+        return None
+    data[(key[0], key[1], 'value')] = value
+
+
+def validate_extra_date_new(key, field, data, optional, errors):
+    value = _extract_value(data, field)
+
+    if not value:
+        if not optional:
+            errors[field] = 'empty'
+        return
+    else:
+        if re.match(r'\d\d\d\d-\d\d-\d\d', value):
+            try:
+                dt = parse(value)
+                _set_value(data, field, dt.isoformat())
+                return
+            except ValueError:
+                pass
+        errors[field] = 'not a valid date'
+
+
+def validate_licenseAttributionByText(key, data, errors, context):
+    register = model.Package.get_license_register()
+    isByLicense = False
+    for k in data:
+        if len(k) > 0 and k[0] == 'license_id' and data[k] and not isinstance(data[k], Missing) and \
+                'Namensnennung' in register[data[k]].title:
+            isByLicense = True
+            break
+    hasAttribution = False
+    for k in data:
+        if data[k] == 'licenseAttributionByText':
+            if isinstance(data[(k[0], k[1], 'value')], Missing) or (k[0], k[1], 'value') not in data:
+                del data[(k[0], k[1], 'value')]
+                del data[(k[0], k[1], 'key')]
+                break
+            else:
+                value = data[(k[0], k[1], 'value')]
+                hasAttribution = value != ''
+                break
+    if not hasAttribution:
+        current_indexes = [k[1] for k in data.keys()
+                           if len(k) > 1 and k[0] == 'extras']
+
+        new_index = max(current_indexes) + 1 if current_indexes else 0
+        data[('extras', new_index, 'key')] = 'licenseAttributionByText'
+        data[('extras', new_index, 'value')] = ''
+
+    if isByLicense and not hasAttribution:
+        raise toolkit.Invalid(
+            'licenseAttributionByText: empty not allowed')
+
+    if not isByLicense and hasAttribution:
+        raise toolkit.Invalid(
+            'licenseAttributionByText: text not allowed for this license')
+
+
+def known_spatial_uri(key, data, errors, context):
+    value = _extract_value(data, 'spatial_uri')
+
+    if not value:
+        poly = None
+
+        # some harvesters might import a polygon directly...
+        # pdb.set_trace()
+        poly = _extract_value(data, 'spatial')
+
+        has_old_uri = False
+        pkg = context.get('package', None)
+        if pkg:
+            old_uri = pkg.extras.get('spatial_uri', None)
+            has_old_uri = old_uri != None and len(old_uri) > 0
+            if not poly:
+                poly = pkg.extras.get('spatial', None)
+        if not poly or has_old_uri:
+            raise toolkit.Invalid('spatial_uri: empty not allowed')
+        else:
+            if poly:
+                new_index = next_extra_index(data)
+                data[('extras', new_index+1, 'key')] = 'spatial'
+                data[('extras', new_index+1, 'value')] = poly
+            return
+
+    mapping_file = config.get('ckanext.odsh.spatial.mapping')
+    try:
+        mapping_file = urllib2.urlopen(mapping_file)
+    except Exception:
+        raise Exception("Could not load spatial mapping file!")
+
+    not_found = True
+    spatial_text = str()
+    spatial = str()
+    cr = csv.reader(mapping_file, delimiter="\t")
+    for row in cr:
+        if row[0].encode('UTF-8') == value:
+            not_found = False
+            spatial_text = row[1]
+            loaded = json.loads(row[2])
+            spatial = json.dumps(loaded['geometry'])
+            break
+    if not_found:
+        raise toolkit.Invalid(
+            'spatial_uri: uri unknown')
+
+    new_index = next_extra_index(data)
+
+    data[('extras', new_index, 'key')] = 'spatial_text'
+    data[('extras', new_index, 'value')] = spatial_text
+    data[('extras', new_index+1, 'key')] = 'spatial'
+    data[('extras', new_index+1, 'value')] = spatial
+
+
+def next_extra_index(data):
+    current_indexes = [k[1] for k in data.keys()
+                       if len(k) > 1 and k[0] == 'extras']
+
+    return max(current_indexes) + 1 if current_indexes else 0
+
+
+def tag_name_validator(value, context):
+    tagname_match = re.compile('[\w \-.\:\(\)\´\`]*$', re.UNICODE)
+    if not tagname_match.match(value):
+        raise toolkit.Invalid(_('Tag "%s" must be alphanumeric '
+                                'characters or symbols: -_.:()') % (value))
+    return value
+
+
+def tag_string_convert(key, data, errors, context):
+    '''Takes a list of tags that is a comma-separated string (in data[key])
+    and parses tag names. These are added to the data dict, enumerated. They
+    are also validated.'''
+    if isinstance(data[key], basestring):
+        tags = [tag.strip()
+                for tag in data[key].split(',')
+                if tag.strip()]
+    else:
+        tags = data[key]
+
+    current_index = max([int(k[1]) for k in data.keys()
+                         if len(k) == 3 and k[0] == 'tags'] + [-1])
+
+    for num, tag in zip(count(current_index+1), tags):
+        data[('tags', num, 'name')] = tag
+
+    for tag in tags:
+        toolkit.get_validator('tag_length_validator')(tag, context)
+        tag_name_validator(tag, context)
+
+
+def get_validators():
+    return {
+        'known_spatial_uri': known_spatial_uri,
+        'odsh_tag_name_validator': tag_name_validator,
+        'odsh_validate_extras': validate_extras,
+        'validate_licenseAttributionByText': validate_licenseAttributionByText
+    }