{
    "$id": "https://datenregister.berlin.de/schema/berlin_od_schema.json",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "dateModified": "2019-08-15",
    "description": "Schema to describe and validate dataset descriptions for the <a href='https://daten.berlin.de'>Berlin Open Data Portal</a>.",
    "properties": {
        "attribution_text": {
            "description": "Der exakte Text, der im Rahmen der Namensnennung anzugeben ist.",
            "type": "string"
        },
        "author": {
            "description": "Ver\u00f6ffentlichende Stelle: Die Beh\u00f6rde, von der die Daten stammen. Bei Apps der App-Hersteller.",
            "type": "string"
        },
        "author_email": {
            "_format": "uri",
            "description": "Ver\u00f6ffentlichende Stelle Email: Email-Adresse oder Kontaktformular der Ver\u00f6ffentlichenden Stelle.",
            "type": "string"
        },
        "berlin_source": {
            "description": "Intern genutztes Merkmal, das die Eingabeart des Datensatzes unterscheidet. Werte k\u00f6nnen etwa 'api-xyz' (\u00fcber die CKAN API ins Datenregister gepusht), 'harvest-xyz' (\u00fcber einen Harvester vom Datenregister gepullt), 'simplesearch' (\u00fcber das Imperia CMS erzeugt) oder 'webform' (direkt im Datenregister \u00fcber das Webformular erzeugt) sein.",
            "type": "string"
        },
        "berlin_type": {
            "description": "Typ: Zeigt an, ob ein Datensatz, ein Dokument, eine App beschrieben wird. Entscheidet dar\u00fcber, in welchem Bereich diese Metadaten angezeigt werden.",
            "enum": [
                "datensatz",
                "dokument",
                "app"
            ],
            "type": "string",
            "validator": "is_berlin_type"
        },
        "date_released": {
            "_format": "date-time",
            "description": "Ver\u00f6ffentlichungsdatum: Wann wurden dieser Datensatz erstmalig angelegt/erzeugt? Wichtig: dies beschreibt nicht zwingend den Zeitpunkt, an dem der Datensatz in das Datenregister eingepflegt wurde, sondern kann auch davor liegen.",
            "type": "string",
            "validator": "isodate_notime"
        },
        "date_updated": {
            "_format": "date-time",
            "description": "\u00c4nderungsgsdatum: Wann wurden dieser Datensatz ge\u00e4ndert? Wichtig: dies beschreibt nicht zwingend den Zeitpunkt, an dem die ge\u00e4nderten Daten in das Datenregister eingepflegt wurde, sondern kann auch davor liegen.",
            "type": "string",
            "validator": "isodate_notime"
        },
        "geographical_coverage": {
            "description": "R\u00e4umliche Abdeckung: der geographische Bereich, der von dem Datensatz, dem Dokument oder der App abgedeckt wird. Wird zum Filtern verwendet.",
            "enum": [
                "Keine",
                "Adlershof",
                "Alt-Hohensch\u00f6nhausen",
                "Alt-Treptow",
                "Altglienicke",
                "Baumschulenweg",
                "Berlin",
                "Biesdorf",
                "Blankenburg",
                "Blankenfelde",
                "Bohnsdorf",
                "Britz",
                "Buch",
                "Buckow",
                "Charlottenburg",
                "Charlottenburg-Nord",
                "Charlottenburg-Wilmersdorf",
                "Dahlem",
                "Deutschland",
                "Friedenau",
                "Friedrichsfelde",
                "Friedrichshagen",
                "Friedrichshain",
                "Friedrichshain-Kreuzberg",
                "Frohnau",
                "Gatow",
                "Gesundbrunnen",
                "Gropiusstadt",
                "Grunewald",
                "Gr\u00fcnau",
                "Hakenfelde",
                "Halensee",
                "Hansaviertel",
                "Haselhorst",
                "Heiligensee",
                "Heinersdorf",
                "Hellersdorf",
                "Hermsdorf",
                "Hohensch\u00f6nhausen",
                "Johannisthal",
                "Karlshorst",
                "Karow",
                "Kaulsdorf",
                "Kladow",
                "Lichtenberg",
                "Lichtenrade",
                "Lichterfelde",
                "L\u00fcbars",
                "Mahlsdorf",
                "Malchow",
                "Mariendorf",
                "Marienfelde",
                "Marzahn",
                "Marzahn-Hellersdorf",
                "Mitte",
                "Moabit",
                "M\u00e4rkisches Viertel",
                "M\u00fcggelheim",
                "Neu-Hohensch\u00f6nhausen",
                "Neuk\u00f6lln",
                "Niedersch\u00f6neweide",
                "Niedersch\u00f6nhausen",
                "Nikolassee",
                "Obersch\u00f6neweide",
                "Pankow ",
                "Pankow",
                "Pl\u00e4nterwald",
                "Prenzlauer Berg",
                "Rahnsdorf",
                "Reinickendorf",
                "Schm\u00f6ckwitz",
                "Sch\u00f6neberg",
                "Siemensstadt",
                "Spandau",
                "Staaken",
                "Stadtrandsiedlung Malchow",
                "Steglitz",
                "Steglitz-Zehlendorf",
                "Tegel",
                "Tempelhof",
                "Tempelhof-Sch\u00f6neberg",
                "Tiergarten",
                "Treptow-K\u00f6penick",
                "Waidmannslust",
                "Wannsee",
                "Wartenberg",
                "Wedding",
                "Wei\u00dfensee",
                "Westend",
                "Wilhelmsruh",
                "Wilhelmstadt",
                "Wilmersdorf",
                "Wittenau",
                "Zehlendorf"
            ],
            "type": "string",
            "validator": "is_geo_feature"
        },
        "geographical_granularity": {
            "description": "R\u00e4umliche Aufl\u00f6sung: Die geographische Granularit\u00e4t des Datensatzes, eines Dokuments, einer App. Wird sp\u00e4ter zum Filtern verwendet.",
            "enum": [
                "Keine",
                "Deutschland",
                "Berlin",
                "Bezirk",
                "Ortsteil",
                "Prognoseraum",
                "Bezirksregion",
                "Planungsraum",
                "Block",
                "Einschulbereich",
                "Kontaktbereich",
                "PLZ",
                "Stimmbezirk",
                "Quartiersmanagement",
                "Wohnanlage",
                "Wahlkreis",
                "Hausnummer",
                "GPS-Koordinaten"
            ],
            "type": "string",
            "validator": "is_geo_granularity"
        },
        "groups": {
            "description": "Kategorien: Kategorien f\u00fcr die Datens\u00e4tze und Dokumente. Die Kategorien sind statisch und werden vom Portalbetreiber langfristig gepflegt.",
            "items": {
                "properties": {
                    "name": {
                        "enum": [
                            "arbeit",
                            "bildung",
                            "demographie",
                            "erholung",
                            "gesundheit",
                            "jugend",
                            "justiz",
                            "kultur",
                            "oeffentlich",
                            "sicherheit",
                            "sozial",
                            "tourismus",
                            "transport",
                            "umwelt",
                            "verbraucher",
                            "verentsorgung",
                            "verkehr",
                            "verwaltung",
                            "wahl",
                            "wirtschaft",
                            "wohnen"
                        ],
                        "labels": [
                            "Arbeitsmarkt",
                            "Bildung",
                            "Demographie",
                            "Erhohlung",
                            "Gesundheit",
                            "Jugend",
                            "Justiz",
                            "Kunst und Kultur",
                            "\u00d6ffentliche Verwaltung, Haushalt und Steuern",
                            "Sicherheit",
                            "Sozialleistungen",
                            "Tourismus",
                            "Transport",
                            "Umwelt und Klima",
                            "Verbraucherschutz",
                            "Ver- und Entsorgung",
                            "Verkehr",
                            "Verwaltung",
                            "Wahlen",
                            "Wirtschaft",
                            "Wohnen und Immobilien"
                        ],
                        "type": "string"
                    }
                },
                "required": [
                    "name"
                ],
                "type": "object"
            },
            "type": "array"
        },
        "license_id": {
            "description": "Lizenz-ID: Lizenz aus einer festen Liste, s.u. bzw. <a href='http://datenregister.berlin.de/licenses/berlin-od-portal.json'>http://datenregister.berlin.de/licenses/berlin-od-portal.json</a>",
            "enum": [
                "cc-by",
                "cc-zero",
                "cc-by-sa",
                "cc-by-nc",
                "dl-de-zero-2.0",
                "dl-de-by-2.0",
                "geonutzv",
                "geonutz-be-2013-10-01",
                "odc-odbl",
                "other-closed"
            ],
            "labels": [
                "Creative Commons Attribution",
                "Creative Commons Zero",
                "Creative Commons Attribution Share-Alike",
                "Creative Commons Non-Commercial (Any)",
                "Datenlizenz Deutschland \u2013 Zero \u2013 Version 2.0",
                "Datenlizenz Deutschland \u2013 Namensnennung \u2013 Version 2.0",
                "GeoNutzV",
                "GeoNutzV-Berlin",
                "Open Data Commons Open Database License (ODbL)",
                "Siehe Website des Datensatzes"
            ],
            "type": "string",
            "validator": "is_license_id"
        },
        "maintainer": {
            "description": "Datenverantwortliche Stelle: Dieser Ansprechpartner kann bei Fragen und Anmerkungen zu den Daten kontaktiert werden.",
            "type": "string"
        },
        "maintainer_email": {
            "_format": "uri",
            "description": "Datenverantwortliche Stelle Email: Email-Adresse oder Kontaktformular der Datenverantwortlichen Stelle.",
            "type": "string"
        },
        "name": {
            "description": "Name: Ein f\u00fcr Menschen lesbarer Bezeichner des Datensatzes, des Dokuments oder der Apps, der f\u00fcr eine Identifizierung genutzt werden kann (einfache ASCII-Pra\u0308sentation des Titels, auch f\u00fcr die Pretty-Link-URL, Linked Data URIs)",
            "pattern": "^[a-z0-9_-]{2,}$",
            "type": "string"
        },
        "notes": {
            "description": "Beschreibung: Beschreibung und weitere Informationen zum Datensatz, zum Dokument oder zur App, wird auf der Detailseite dargestellt und kann mehrere Abs\u00e4tze umfassen.",
            "type": "string"
        },
        "resources": {
            "description": "Ressourcen: Folgende Felder k\u00f6nnen f\u00fcr jede Ressource individuell angegeben werden.",
            "items": {
                "properties": {
                    "description": {
                        "description": "Beschreibung: Erl\u00e4uterung, welche Rolle die Ressource f\u00fcr den Datensatz, das Dokument bzw. die App spielt (z. B. ob es sich dabei um eine bestimmte Zeitscheibe oder Schl\u00fcsselliste handelt. Der Beschreibungstext, wird mit dem Link zur Ressource unterlegt.)",
                        "type": "string"
                    },
                    "format": {
                        "description": "Format: Typ der Ressource (MIME Types)",
                        "type": "string"
                    },
                    "hash": {
                        "description": "Pr\u00fcfsumme: Bei statischen Dateien die SHA2-Pr\u00fcfsumme bzw. bei dynamischen Daten ein Zertifikat zur \u00dcberpr\u00fcfung der Integrit\u00e4t.",
                        "type": "string"
                    },
                    "language": {
                        "description": "Sprache: Sprache als ISO 639-1-Code, in der die Ressource verfasst ist.",
                        "pattern": "^[a-z]{2}$",
                        "type": "string"
                    },
                    "url": {
                        "_format": "uri",
                        "description": "URL: Verweis auf die eigentliche Datendatei, das Dokument oder die Anwendung.",
                        "type": "string"
                    }
                },
                "required": [
                    "url",
                    "format"
                ],
                "type": "object"
            },
            "type": "array"
        },
        "tags": {
            "description": "Schlagw\u00f6rter: Freie Schl\u00fcsselw\u00f6rter des Datensatzes, des Dokuments oder der App",
            "items": {
                "properties": {
                    "name": {
                        "type": "string"
                    }
                },
                "required": [
                    "name"
                ],
                "type": "object"
            },
            "type": "array"
        },
        "temporal_coverage_from": {
            "_format": "date-time",
            "description": "Start-Datum: Der Zeitpunkt, von dem an der Datensatz, das Dokument oder die App einschlie\u00dflich Daten entha\u0308lt. Wird insb. zum Filtern verwendet.",
            "type": "string",
            "validator": "isodate_notime"
        },
        "temporal_coverage_to": {
            "_format": "date-time",
            "description": "End-Datum: Der Zeitpunkt, bis zu dem der Datensatz, das Dokument oder die App einschlie\u00dflich Daten enth\u00e4lt. Wird insb. zum Filtern verwendet.",
            "type": "string",
            "validator": "isodate_notime"
        },
        "temporal_granularity": {
            "description": "Zeitliche Aufl\u00f6sung: Die zeitliche Aufl\u00f6sung der enthaltenen Daten, des Dokuments oder der App. Wird sp\u00e4ter zum Filtern verwendet.",
            "enum": [
                "Keine",
                "5 Jahre",
                "Jahr",
                "Quartal",
                "Monat",
                "Woche",
                "Tag",
                "Stunde",
                "Minute",
                "Sekunde"
            ],
            "type": "string",
            "validator": "is_temporal_granularity"
        },
        "title": {
            "description": "Titel: Der Titel beschreibt den Datensatz, das Dokument oder die App pra\u0308gnant und wird z. B. in Suchergebnissen und Listen angezeigt.",
            "type": "string"
        },
        "url": {
            "_format": "uri",
            "description": "Website: Die urspru\u0308ngliche Webadresse des Datensatzes, Dokuments oder der App, um zu weiteren Informationen u\u0308ber den Datensatz, das Dokument oder die App zu gelangen. Wird auf der Detailseite als Link angezeigt.",
            "type": "string",
            "validator": "is_valid_url"
        },
        "username": {
            "description": "Ver\u00f6ffentlichende Person: Person, die lediglich f\u00fcr Ver\u00f6ffentlichung zust\u00e4ndig ist.",
            "type": "string"
        }
    },
    "required": [
        "title",
        "name",
        "berlin_type",
        "berlin_source",
        "author",
        "maintainer_email",
        "notes",
        "license_id",
        "groups",
        "date_released"
    ],
    "title": "Berlin Open Data Schema",
    "type": "object",
    "version": "2.2.1"
}