De meest recente aanpassing aan deze specificatie is:
§ 9.1 [2.2.0] dataclass atribuut toegevoegd (2023-01-12)
De meest recente aanpassing aan deze specificatie is:
§ 10.1 [2.3.0] filterAuth attribuut toegevoegd (2025-01-12)
1. Introductie
Doelstelling
Alle data van gemeente Amsterdam binnen één machine verwerkbaar universeel format beschrijven, @@ -2358,7 +2477,7 @@1.
Dit document legt uit hoe een dataset volgens de Amsterdam Schema-standaard beschreven wordt.
- Neem bijvoorbeeld een dataset over monumenten.
Van deze dataset kan worden vastgelegd: + Neem bijvoorbeeld een dataset over monumenten.
Van deze dataset kan worden vastgelegd:
dat het de object typen standbeelden en gebouwen heeft,
@@ -2371,7 +2490,7 @@1. Note: Een actueel overzicht van gepubliceerde Amsterdam Schema’s is te vinden op GitHub.
Note: Amsterdam Schema is gebaseerd op JSON Schema’s.
1.1. Overzicht
- Een dataset wordt beschreven in één of meer JSON bestanden. + Een dataset wordt beschreven in één of meer JSON bestanden.Binnen deze bestanden bestaan de volgende niveaus:
-
- dataset @@ -2387,32 +2506,32 @@
Beschrijft de eigenschappen van rijen in een tabel, zoals de naam en het datatype van een eigenschap. Vergelijkbaar met de kolommen van een database.
Note: Binnen Amsterdam Schema wordt de Data Catalog Vocabulary (hierna DCAT) standaard gebruikt. DCAT is een naamgevingsstandaard voor het publiceren van datacatalogi op het web.
+Note: Binnen Amsterdam Schema wordt de Data Catalog Vocabulary (hierna DCAT) standaard gebruikt. DCAT is een naamgevingsstandaard voor het publiceren van datacatalogi op het web.
2. Dataset
- Met een dataset wordt een dataset zoals gedefinieerd in DCAT bedoeld. DCAT definieert een dataset als volgt: + Met een dataset wordt een dataset zoals gedefinieerd in DCAT bedoeld. DCAT definieert een dataset als volgt:Dataset A collection of data, published or curated by a single agent or identifiable community. The notion of dataset in DCAT is broad and inclusive, with the intention of accommodating resource types arising from all communities. Data comes in many forms including numbers, text, pixels, imagery, sound and other multi-media, and potentially other types, -any of which might be collected into a dataset. (From Data Catalog Vocabulary (DCAT) - Version 2 § dcat-scope)
+any of which might be collected into a dataset. (From Data Catalog Vocabulary (DCAT) - Version 3 § dcat-scope)2.1. Verplichte attributen
- Een dataset binnen Amsterdam Schema bestaat uit een JSON bestand met in ieder geval de volgende velden: + Een dataset binnen Amsterdam Schema bestaat uit een JSON bestand met in ieder geval de volgende velden:
- id
-identifier
-Unieke identifier voor deze dataset. Moet voldoen aan § 5 Naamgeving. Conform DCAT § resource_identifier. + id
+identifier
+Unieke identifier voor deze dataset. Moet voldoen aan § 5 Naamgeving. Conform DCAT § resource_identifier. - type
-schema-type
-Type van dit bestand, in dit geval . +
"dataset" type
+schema-type
+Type van dit bestand, in dit geval .
"dataset" - status
-string + status
+string - Publicatiestatus van de dataset + Publicatiestatus van de dataset Toegestane waarden
@@ -2423,30 +2542,30 @@
- auth
-string | array - geautoriseerde scope(s). Voor openbare data: . zie § 7.2 Autorisatie +
"OPENBAAR" auth
+string | array + geautoriseerde scope(s). Voor openbare data: . zie § 7 Autorisatie
"OPENBAAR" - authorizationGrantor
-string - E-mailadres van de afdeling verantwoordelijk voor autorisatie op deze dataset. Dit is meestal de bronhouder. Aan dit adres worden authorisatie verzoeken gericht. + authorizationGrantor
+string + E-mailadres van de afdeling verantwoordelijk voor autorisatie op deze dataset. Dit is meestal de bronhouder. Aan dit adres worden authorisatie verzoeken gericht. - creator
-string - Team, afdeling of organisatie die de data produceert, meestal de bronhouder. Wanneer data van meerdere bronhouders wordt gecomineerd, wordt hier de opdrachtgever bedoelt. + creator
+string + Team, afdeling of organisatie die de data produceert, meestal de bronhouder. Wanneer data van meerdere bronhouders wordt gecomineerd, wordt hier de opdrachtgever bedoelt. - owner
-string - Juridisch eigenaar van de data. Bijvoorbeeld of
"Gemeente Amsterdam, Directie Wonen" Default:
"Centraal Bureau voor de Statistiek" +
"Gemeente Amsterdam" owner
+string + Juridisch eigenaar van de data. Bijvoorbeeld of
"Gemeente Amsterdam, Directie Wonen" Default:
"Centraal Bureau voor de Statistiek"
"Gemeente Amsterdam" - publisher
-string | publisher-ref - Het team verantwoordelijk voor het technisch ontsluiten van de data. Meestal het datateam. Conform DCAT § resource_publisher + publisher
+string | publisher-ref + Het team verantwoordelijk voor het technisch ontsluiten van de data. Meestal het datateam. Conform DCAT § resource_publisher - tables
-array + tables
+array - Tabellen in deze dataset. Moet minimaal 1 element bevatten. + Tabellen in deze dataset. Moet minimaal 1 element bevatten. Valide elementen
@@ -2462,7 +2581,7 @@
Note: Als een dataset nog niet klaar is voor publicatie, zet de
status
dan op. Zo wordt de dataset nog niet zichtbaar in doelsystemen.
"niet_beschikbaar" Een minimale dataset definitie. De 'title' en 'description' velden zijn niet verplicht, - maar het is best practice ze toe te voegen. + maar het is best practice ze toe te voegen.-{ "id" : "bekendeAmsterdammers" , "type" : "dataset" , @@ -2484,47 +2603,46 @@}
Best Practice Zet bij datasets met meer dan één tabel alle tabellen in hun een eigen bestand en gebruik tabel referenties. Dit komt de leesbaarheid ten goede en maakt versioning mogelijk.-2.2. Optionele attributen
- Naast bovenstaande verplichte attributen mag een dataset ook de volgende eigenschappen bevatten. + Naast bovenstaande verplichte attributen mag een dataset ook de volgende eigenschappen bevatten.-
- contactPoint
-contact
-Contactgegevens van de persoon of afdeling verantwoordelijk voor eerstelijns ondersteuning bij deze dataset. Hier kunnen mensen met vragen over de dataset terecht. (Deze gegevens worden publiek zichtbaar.) Wanneer dit veld niet is gegeven, is impliciet de default waarde van toepassing. Default: +
{ "name" : "Datapunt" , "email" : "datapunt@amsterdam.nl" } contactPoint
+contact
+Contactgegevens van de persoon of afdeling verantwoordelijk voor eerstelijns ondersteuning bij deze dataset. Hier kunnen mensen met vragen over de dataset terecht. (Deze gegevens worden publiek zichtbaar.) Wanneer dit veld niet is gegeven, is impliciet de default waarde van toepassing. Default:
{ "name" : "Datapunt" , "email" : "datapunt@amsterdam.nl" } - title
-string - zie § 7.1 Omschrijving DCAT § Property:resource_title + title
+string + zie § 8.1 Omschrijving DCAT § Property:resource_title - description
-string - zie § 7.1 Omschrijving DCAT § Property:resource_description + description
+string + zie § 8.1 Omschrijving DCAT § Property:resource_description - provenance
-string - zie § 7.3 Provenance + provenance
+string + zie § 8.2 Provenance - reasonsNonPublic
-array( nonPubReason
) -een of meer gronden voor het niet openbaar maken van data obv uitzonderingen in Hoofdstuk 5 van de [Woo]. (Vanaf 1 mei 2022 verplicht wanneer auth
niet gelijk is aan) zie § 7.2 Autorisatie +
"OPENBAAR" reasonsNonPublic
+array( nonPubReason
) +een of meer gronden voor het niet openbaar maken van data obv uitzonderingen in Hoofdstuk 5 van de [Woo]. + Verplicht wanneer auth
niet gelijk is aan) zie § 7 Autorisatie
"OPENBAAR" - version
-version-string
-Het versie nummer van deze dataset. + version
+version-string
+Het versie nummer van deze dataset. - homepage
-uri
-Homepage van de dataset + homepage
+uri
+Homepage van de dataset - crs
-enum(string) + crs
+enum(string) - Coordinate reference System + Coordinate reference System Dit veld is verplicht voor datasets waarvan één of meerdere tabellen één of meer § 4.3.6 geometrie velden bevatten en waarvan de crs niet al in de tabel of veld gedefinieerd is. - Zie SDOW best practices § CRS-background voor meer informatie. + Zie SDOW best practices § CRS-background voor meer informatie.Opties
@@ -2537,108 +2655,106 @@
Best Practice Voeg altijd op zijn minst een title en description toe.-2.2.1. DCAT velden
Het is mogelijk op dataset niveau extra eigenschappen met meta-gegevens mee te geven. -Dit kan indien gewenst worden gebruikt om automatisch een DCAT catalogus te genereren. -De volgende velden zijn toegestaan: +Dit kan indien gewenst worden gebruikt om automatisch een DCAT catalogus te genereren. +De volgende velden zijn toegestaan:-
- language
-string - Taal van de dataset volgens ISO 639-1 of ISO 639-2 Conform DCAT § resource_language + language
+string + Taal van de dataset volgens ISO 639-1 of ISO 639-2 Conform DCAT § resource_language - dateCreated
-date-time
-Datum van publicatie. Conform DCAT § resource_release_date + dateCreated
+date-time
+Datum van publicatie. Conform DCAT § resource_release_date - dateModified
-date-time
-Meest recente datum waarop de dataset is aangepast. Conform DCAT § resource_update_date + dateModified
+date-time
+Meest recente datum waarop de dataset is aangepast. Conform DCAT § resource_update_date - accrualPeriodicity
-string - Frequentie waarmee de dataset gepubliceerd wordt. Conform DCAT § dataset_frequency + accrualPeriodicity
+string + Frequentie waarmee de dataset gepubliceerd wordt. Conform DCAT § dataset_frequency - spatialDescription
-string + spatialDescription
+string - spatialCoordinates
-Geometry - Een GeoJSON geometry + spatialCoordinates
+Geometry + Een GeoJSON geometry - theme
-array (string) - Array van themas Conform DCAT § resource_theme + theme
+array (string) + Array van themas Conform DCAT § resource_theme - hasBeginning
-date-time
+hasBeginning
+date-time
- hasEnd
-date-time
+hasEnd
+date-time
- objective
-string + objective
+string - temporalUnit
-string - Eenheid van temporaliteit Conform? DCAT § dataset_temporal_resolution + temporalUnit
+string + Eenheid van temporaliteit Conform? DCAT § dataset_temporal_resolution - spatial
-string + spatial
+string - legalBasis
-string + legalBasis
+string - keywords
-array (string) - Array van keywords Conform DCAT § resource_keyword + keywords
+array (string) + Array van keywords Conform DCAT § resource_keyword - license
-string - Licentie Conform DCAT § resource_license + license
+string + Licentie Conform DCAT § resource_license Note: De intentie is dat alle relevante DCAT velden te modelleren zijn. Wanneer velden ontbreken - die wel in de DCAT zijn opgenomen, zullen deze worden toegevoegd.
+Note: De intentie is dat alle relevante DCAT velden te modelleren zijn. Wanneer velden ontbreken + die wel in de DCAT zijn opgenomen, zullen deze worden toegevoegd.
Niet alle DCAT velden zijn gemodelleerd. Daarnaast zijn komt van sommige velden de naamgeving niet overeen met de DCAT spec.
Sommige velden missen een beschrijving
2.3. Tabelreferenties
Tabelreferenties zijn verwijzingen naar JSON-bestanden waarin een tabel gedefinieerd wordt. Dit maakt het mogelijk om elke tabel in een dataset in een eigen bestand te definieeren. -Tabel referenties zijn gebaseerd op JSON Schema § ref. +Tabel referenties zijn gebaseerd op JSON Schema § ref.Een tabel referentie is een JSON object met in ieder geval de volgende attributen:
- id
-identifier
-Binnen deze dataset unieke identifier voor deze tabel. Zou gelijk moeten zijn aan tabel.id. Moet voldoen aan § 5 Naamgeving. + id
+identifier
+Binnen deze dataset unieke identifier voor deze tabel. Zou gelijk moeten zijn aan tabel.id. Moet voldoen aan § 5 Naamgeving. - $ref
-uri-reference
+$ref
+uri-reference
URI-Reference naar JSON bestand met de tabel definitie zonder de bestandsextensie. - De reference is altijd relatief aan de locatie van het dataset bestand. + De reference is altijd relatief aan de locatie van het dataset bestand. Optioneel kan een object met actieve versies van de tabel worden meegegeven. Actieve versies zijn alle versies die actief worden onderhouden en ondersteund.
- activeVersions
-object + activeVersions
+object - Dit object bevat elementen van de vorm: + Dit object bevat elementen van de vorm: "MAJOR.MINOR.PATCH" : "path/to/tableVersion/file" activeVersions moet in iedergeval een element bevatten voor de versie waaraan wordt verwezen in het
@@ -2654,47 +2770,47 @@$ref
veld.
Van deze bestandsnaam en padstructuur moet niet worden afgeweken behalve als daar een zwaarwegende reden voor is.
2.4. Publisherreferenties
Publisherreferenties zijn verwijzingen naar JSON-bestanden waarin een publisher gedefinieerd wordt. -Publisher referenties zijn gebaseerd op JSON Schema § ref. -Een publisher referentie is een JSON object met 1 attribuut:
+Publisher referenties zijn gebaseerd op JSON Schema § ref. +Een publisher referentie is een JSON object met 1 attribuut:
- $ref
-uri-reference
+$ref
+uri-reference
URI-Reference naar JSON bestand met de publisher definitie zonder de bestandsextensie. - De reference is altijd van de vorm publishers
. Bijvoorbeeld:/< BESTANDSNAAM> publishers
+ De reference is altijd van de vorm/ SOEBpublishers
. Bijvoorbeeld:/< BESTANDSNAAM> publishers
/ SOEB3. Tabel
Een tabel definitie bevat het schema waaraan de er toe behorende datarijen moeten voldoen. Binnen het schema worden velden gedefinieerd die datarijen moeten of mogen bezitten. Daarnaast kan aan een tabel meta informatie en autorisatie instellingen worden meegegeven.
3.1. Verplichte attributen
- Een tabel binnen Amsterdam Schema is een JSON object met in ieder geval de volgende attributen. + Een tabel binnen Amsterdam Schema is een JSON object met in ieder geval de volgende attributen.
- id
-identifier
-Naam van de tabel. Unieke (binnen de parent dataset) identifier voor deze tabel. Moet voldoen aan § 5 Naamgeving. + id
+identifier
+Naam van de tabel. Unieke (binnen de parent dataset) identifier voor deze tabel. Moet voldoen aan § 5 Naamgeving. - type
-schema-type
-Type van dit bestand, in dit geval . +
"table" type
+schema-type
+Type van dit bestand, in dit geval .
"table" - version
-version-string
-Het versie nummer van deze tabel. Zie § 3.5 Versionering + version
+version-string
+Het versie nummer van deze tabel. Zie § 3.5 Versionering - schema
-object + schema
+object - Het schema van objecten in de tabel. zie § 3.3 Schema + Het schema van objecten in de tabel. zie § 3.3 Schema Valide elementen
@@ -2708,63 +2824,63 @@
Let op: Zie § 5 Naamgeving voor de eisen waaraan
id
moet voldoen.3.2. Optionele attributen
- Een tabel mag daarnaast de volgende attributen bezitten: + Een tabel mag daarnaast de volgende attributen bezitten:-
- title
-string - zie § 7.1 Omschrijving Default: Gelijk aan id
. +title
+string + zie § 8.1 Omschrijving Default: Gelijk aan id
.- description
-string - zie § 7.1 Omschrijving + description
+string + zie § 8.1 Omschrijving - shortname
-string - Verkorte unieke naam van de tabel. zie § 5 Naamgeving + shortname
+string + Verkorte unieke naam van de tabel. zie § 5 Naamgeving - derivedFrom
+derivedFrom
array - De datasets waar deze view op gebaseerd is. e.g. . Dit attribuut is enkel noodzakelijk wanneer de dataset een view is. +
< dataset>:< tabel> De datasets waar deze view op gebaseerd is. e.g. . Dit attribuut is enkel noodzakelijk wanneer de dataset een view is.
< dataset>:< tabel> - auth
-string | array - geautoriseerde scope(s). Default: gelijk aan waarde in dataset/ auth
, zie § 7.2 Autorisatie. +auth
+string | array + geautoriseerde scope(s). Default: gelijk aan waarde in dataset/ auth
, zie § 7 Autorisatie.- reasonsNonPublic
-array( nonPubReason
) +reasonsNonPublic
+array( nonPubReason
)een of meer gronden voor het niet openbaar maken van data obv uitzonderingen in Hoofdstuk 5 van de [Woo]. - (Vanaf 1 mei 2022 verplicht wanneer de dataset openbaar is maar het auth
atribuut van de tabel niet gelijk is aan "OPENBAAR") zie § 7.2 Autorisatie + Verplicht wanneer de dataset openbaar is maar hetauth
attribuut van de tabel niet gelijk is aan "OPENBAAR". zie § 7 Autorisatie- provenance
-string - zie § 7.3 Provenance + provenance
+string + zie § 8.2 Provenance - dateCreated
-date-time
-Datum van publicatie. + dateCreated
+date-time
+Datum van publicatie. - dateModified
-date-time
-Meest recente datum waarop de tabel is aangepast. + dateModified
+date-time
+Meest recente datum waarop de tabel is aangepast. - license
-string - Licentie + license
+string + Licentie - temporal
-temporal-object - Definieert tijdsafhankelijke geldigheid van objecten. zie § 3.4 Temporaliteit + temporal
+temporal-object + Definieert tijdsafhankelijke geldigheid van objecten. zie § 3.4 Temporaliteit - crs
-enum(string) + crs
+enum(string) - Coordinate reference System + Coordinate reference System Dit veld is verplicht voor tabellen waarin één of meer § 4.3.6 geometrie velden zitten en waarvoor niet op dataset-of veldniveau al een crs gedefinieerd is. - Zie SDOW best practices § CRS-background voor meer informatie. + Zie SDOW best practices § CRS-background voor meer informatie.Opties
@@ -2777,12 +2893,12 @@
- dataclass
-enum(string) + dataclass
+enum(string) - Soort data in de tabel + Soort data in de tabel - Default:Opties
@@ -2794,69 +2910,67 @@
"event"
+ Default:
"structured"
"structured" Best Practice Voeg altijd op zijn minst een-title
endescription
toe.3.3. Schema
Het schema object beschrijft de eigenschappen van rijen in de tabel.
Een schema object moet in ieder geval de volgende attributen bezitten:
- $schema
-string - constant +
"http://json-schema.org/draft-07/schema#" $schema
+string + constant
"http://json-schema.org/draft-07/schema#" - type
-string - constant +
"object" type
+string + constant
"object" - required
-array (string) - Namen van velden die niet mogen bevatten. Bevat minstens
null . +
"schema" required
+array (string) + Namen van velden die niet mogen bevatten. Bevat minstens
null .
"schema" - display
-string + display
+string De naam van het veld dat titel van objecten bevat. Voor afnemers die een samenvattende titel van een object willen tonen. Default: gelijk aan identifier
. - Het veld dat hier genoemd wordt mag geenauth
attribuut bevatten. + Het veld dat hier genoemd wordt mag geenauth
attribuut bevatten.- properties
-object + properties
+object Collectie van velden die rijen in de tabel mogen bezitten. Bevat daarnaast een 'schema.$ref' attribuut. - Veldnamen moeten beginnen met een kleine letter gevolgd door een alfanumerieke reeks en moeten voldoen aan § 5 Naamgeving. + Veldnamen moeten beginnen met een kleine letter gevolgd door een alfanumerieke reeks en moeten voldoen aan § 5 Naamgeving. - properties
-. schema§ref - constant +
{ "$ref" : "https://schemas.data.amsterdam.nl/schema@v1.2.0#/definitions/schema" } properties
+. schema§ref + constant
{ "$ref" : "https://schemas.data.amsterdam.nl/schema@v1.2.0#/definitions/schema" } Daarnaast mag een schema object de volgende attributen bezitten:
- $id
-string + $id
+string - additionalProperties
-bool - constant Geeft aan dat objecten extra velden mogen hebben. +
false additionalProperties
+bool + constant Geeft aan dat objecten extra velden mogen hebben.
false - mainGeometry
-string - De naam van het primaire geometrie veld. Default: zie § 4.3.6 geometrie +
"geometry" mainGeometry
+string + De naam van het primaire geometrie veld. Default: zie § 4.3.6 geometrie
"geometry" - identifier
-string | array (string) + identifier
+string | array (string) Naam van het veld dat de unieke identifier van een rij is, of een array van veldnamen die samen een unieke key vormen. Het veld of de velden waar hier naar verwezen wordt moeten van het type string of het type integer zijn. - en mogen geen auth
attribuut bevatten. + en mogen geenauth
attribuut bevatten.Het identifier veld moet string zijn. De array optie wordt binnenkort verwijderd.
@@ -2867,14 +2981,14 @@
- identifier
-string + identifier
+string Naam van het veld dat de versie van een object identificeert. - De combinatie van dit veld en het veld waarnaar wordt verwezen in het identifier
attribuut van schema moet uniek zijn voor elke regel in de tabel. + De combinatie van dit veld en het veld waarnaar wordt verwezen in hetidentifier
attribuut van schema moet uniek zijn voor elke regel in de tabel.- dimensions
+. geldigOpdimensions
. geldigOparray (string) - De namen van de velden die de geldigheid van een object begrenzen. Heeft 2 elementen. + De namen van de velden die de geldigheid van een object begrenzen. Heeft 2 elementen. Note: Momenteel wordt alleen de dimensie "geldigOp" ondersteund. In de toekomst kunnen hier andere dimensies zoals "inWerkingOp" en "beschikbaarOp" aan toegevoegd worden.
@@ -2882,7 +2996,7 @@
Als een tabel niet temporeel is kan het temporal object worden weggelaten.
- Voorbeeld van een temporal object. + Voorbeeld van een temporal object."temporal" : { "identifier" : "volgnummer" , "dimensions" : { @@ -2892,7 +3006,7 @@3.5. Versionering
- Verschillende versies van een tabel worden van elkaar onderscheiden door middel van versienummers. + Verschillende versies van een tabel worden van elkaar onderscheiden door middel van versienummers.Een geversioneerde tabel moet in een eigen bestand staan. De bestandsnaam van de tabel zou gelijk moeten zijn aan het versienummer van de tabel voorafgegaan door 'v' met een '.json' extensie. Zie § 2.3 Tabelreferenties voor hoe in de dataset naar een tabel bestand moet worden verwezen.
@@ -2933,7 +3047,7 @@
Niet backwards compatible zijn alle andere aanpassingen.
- Voorbeelden van niet backwards compatible aanpassingen: + Voorbeelden van niet backwards compatible aanpassingen:
een nieuw verplicht veld is toegevoegd
@@ -2948,77 +3062,77 @@
Zie § 2.3 Tabelreferenties voor het toevoegen van verschillende versies van een tabel.
Note: Deze semantic versioning standaard is geinspireerd door SchemaVer wat weer is gebaseerd op SemVer.
4. Veld
Een veld beschrijft een eigenschap die een rij in de tabel mag of moet (zierequired
) bezitten. -Een veld is een concrete JSON Schema-typedefinitie waaraan ook meta-informatie kan worden meegegeven. +Een veld is een concrete JSON Schema-typedefinitie waaraan ook meta-informatie kan worden meegegeven.Zie § 4.3 Data types voor een overzicht van modelleerbare typen en hoe deze binnen Amsterdam Schema uitgedrukt kunnen worden.
Note: veld gebruikt een subset van [json-schema-validation]. Een aantal JSON Schema features waaronder union types wordt niet ondersteund.
Let op: Zie § 5 Naamgeving voor de eisen waaraan de namen van velden moeten voldoen.
4.1. Verplichte attributen
- Een veld is een JSON object met in ieder geval één en niet meer dan één van de volgende twee attributen. + Een veld is een JSON object met in ieder geval één en niet meer dan één van de volgende twee attributen.
- type
-string + type
+string - Data type van het veld. Volgens JSON Schema § rfc.section.6.1.1. Zie § 4.3 Data types voor details. + Data type van het veld. Volgens JSON Schema § rfc.section.6.1.1. Zie § 4.3 Data types voor details. Toegestane waarden
@@ -3039,10 +3153,10 @@
- $ref
-enum( uri
) +$ref
+enum( uri
)- URI van een GeoJSON geometry schema definitie. zie § 4.3.6 geometrie + URI van een GeoJSON geometry schema definitie. zie § 4.3.6 geometrie Opties
@@ -3065,52 +3179,57 @@
Note: Let op, een veld moet dus een
type
of een$ref
attribuut hebben, beide is niet toegestaan.4.2. Toegestane attributen
- Een veld definitie mag naast het verplichte attribuut optioneel de volgende meta-data attributen bevatten: + Een veld definitie mag naast het verplichte attribuut optioneel de volgende meta-data attributen bevatten:-
- title
-string - zie § 7.1 Omschrijving Default: Gelijk aan de naam van het veld. + title
+string + zie § 8.1 Omschrijving Default: Gelijk aan de naam van het veld. + + description
+string + zie § 8.1 Omschrijving - description
-string - zie § 7.1 Omschrijving + auth
+string | array + geautoriseerde scope(s). Default: gelijk aan waarde in tabel/ auth
, zie § 7 Autorisatie. + Niet toegestaan in velden waarnaar wordt verwezen inidentifier
ofdisplay
.- auth
-string | array - geautoriseerde scope(s). Default: gelijk aan waarde in tabel/ auth
, zie § 7.2 Autorisatie. - Niet toegestaan in velden waarnaar wordt verwezen inidentifier
ofdisplay
. +filterAuth
+string | array + geautoriseerde scope(s) die dit veld in zoekvragen mogen gebruiken. + De gebruiker moet daarnaast leestoegang hebben tot het veld via auth
of § 7.3 Profielen.- reasonsNonPublic
-array( nonPubReason
) +reasonsNonPublic
+array( nonPubReason
)een of meer gronden voor het niet openbaar maken van data obv uitzonderingen in Hoofdstuk 5 van de [Woo]. - (Vanaf 1 mei 2022 verplicht wanneer de tabel openbaar is maar het auth
atribuut van het veld niet gelijk is aan "OPENBAAR") zie § 7.2 Autorisatie + Verplicht wanneer de tabel openbaar is maar hetauth
attribuut van het veld niet gelijk is aan "OPENBAAR". zie § 7 Autorisatie- provenance
-string - zie § 7.3 Provenance + provenance
+string + zie § 8.2 Provenance - shortname
-string - zie § 5 Naamgeving + shortname
+string + zie § 5 Naamgeving - unit
-string | object - De eenheid van de waarden in dit veld. zie § 4.5 Eenheden + unit
+string | object + De eenheid van de waarden in dit veld. zie § 4.5 Eenheden - relation
-string - Beschrijft relaties tussen velden. zie § 4.4 Relaties + relation
+string + Beschrijft relaties tussen velden. zie § 4.4 Relaties - uri
-uri-reference
-Een verwijzing de definitie van de waarden in dit veld. + uri
+uri-reference
+Een verwijzing de definitie van de waarden in dit veld. - crs
-enum(string) + crs
+enum(string) - Coordinate reference System + Coordinate reference System Dit veld is verplicht voor § 4.3.6 geometrie velden waarvoor niet op dataset-of tabelniveau al een crs gedefinieerd is. - Zie SDOW best practices § CRS-background voor meer informatie. + Zie SDOW best practices § CRS-background voor meer informatie.Opties
@@ -3123,64 +3242,62 @@
Best Practice Voeg altijd op zijn minst een '-title
' en 'description
' toe.Naast bovenstaande attributen mag een veld uitsluitend de volgende subset van attributen uit JSON Schema bevatten:
- $comment
-string - Developer commentaar bij het veld. + $comment
+string + Developer commentaar bij het veld. - items
-veld + items
+veld JSON Schema van de elementen in de array. (verplicht voor array type) - In tegenstelling tot JSON Schema wordt een array
hier niet ondersteund. Zie [#data-types-array]. + In tegenstelling tot JSON Schema wordt eenarray
hier niet ondersteund. Zie [#data-types-array].- maximum
-number - Inclusieve maximum waarde (voor integer en number type) + maximum
+number + Inclusieve maximum waarde (voor integer en number type) - minimum
-number - Inclusieve minimum waarde (voor integer en number type) + minimum
+number + Inclusieve minimum waarde (voor integer en number type) - exclusiveMaximum
-integer - Exclusieve maximum waarde (voor integer en number type) + exclusiveMaximum
+integer + Exclusieve maximum waarde (voor integer en number type) - multipleOf
-number - Waarde moet meervoud zijn van (voor integer en number type) + multipleOf
+number + Waarde moet meervoud zijn van (voor integer en number type) - minLength
-integer - Mimimum lengte (voor string type) + minLength
+integer + Mimimum lengte (voor string type) - maxLength
-integer - Maximum lengte (voor string type) + maxLength
+integer + Maximum lengte (voor string type) - contentEncoding
-string - Encoding (voor string type) + contentEncoding
+string + Encoding (voor string type) - properties
-object - Attributen van objecten (voor object type) + properties
+object + Attributen van objecten (voor object type) - -
enum array - Lijst van maximaal 1024 toegestane waarden. + +
enum array + Lijst van maximaal 1024 toegestane waarden. - format
-string/object + format
+string/object - String formats (voor string type) Conform JSON Schema § rfc.section.7.3. + String formats (voor string type) Conform JSON Schema § rfc.section.7.3. Opties
@@ -3217,7 +3334,7 @@
Object format (voor object type): "json"
- Voorbeeld van een veld. + Voorbeeld van een veld."type" : "string" , "description" : "Volledige naam van de persoon" }, @@ -3227,7 +3344,7 @@
- Voorbeeld van een geometrie veld. + Voorbeeld van een geometrie veld."locatie" : { "title" : "Locatie" , "description" : "Coordinaten van het middelpunt van het plein" , @@ -3244,30 +3361,30 @@
- § 4.3.1 integer - § 4.3.5 tijd + § 4.3.1 integer + § 4.3.5 tijd - § 4.3.2 number - § 4.3.6 geometrie + § 4.3.2 number + § 4.3.6 geometrie - § 4.3.3 boolean - § 4.3.7 object + § 4.3.3 boolean + § 4.3.7 object - § 4.3.4 string - § 4.3.8 array + § 4.3.4 string + § 4.3.8 array Note: UNION types worden niet ondersteund: een kolom kan niet meerdere typen waardes bevatten, behalve
. - De anyOf operater is dus niet toegestaan
null
+ De anyOf operater is dus niet toegestaan
{ "anyOf" : [{ "type" : "integer" }, { "type" : "string" }]} Note: Elk veld is nullable tenzij het als
required
property is opgegeven, zierequired
.4.3.1. integer
Een integer bevat de (decimale representatie van) een 64-bits signed integer. Een integer in Amsterdam Schema heeft dus een range van, maar gebruik van getallen buiten het bereik
[ - ( 2 ^ 63 ), ( 2 ^ 63 ) - 1 ] wordt in lijn met RFC7159 § section-6 afgeraden omdat dit door veelgebruikte doelsystemen ([IEEE754]) - niet wordt ondersteund. Als een
[ - ( 2 ^ 53 ) + 1 , ( 2 ^ 53 ) - 1 ] maximum
en/ofminimum
buiten de laatst genoemde range is ingesteld wordt een waarschuwing gegeven. + niet wordt ondersteund. Als eenmaximum
en/ofminimum
buiten de laatst genoemde range is ingesteld wordt een waarschuwing gegeven.- Dit veld bevat een 64-bits signed integer, zoals een "BIGINT" in SQL. + Dit veld bevat een 64-bits signed integer, zoals een "BIGINT" in SQL."aantalDuivenOpDeDam" : { "title" : "aantal duiven op de Dam" , "description" : "Het gemeten aantal duiven op de de Dam" , @@ -3276,7 +3393,7 @@- Dit veld resulteert in een waarschuwing. + Dit veld resulteert in een waarschuwing.
"zandkorrelsOpBlijburg" : { "title" : "zandkorrels op Blijburg" , "description" : "Het aantal aantal zandkorrels op het strand van Blijburg." , @@ -3288,7 +3405,7 @@maximum,
minimum
ofexclusiveMaximum
kan een native datatype met een geschikt bereik worden toegepast. Zo kan eeninteger
met eenexclusiveMaximum
en
< 2 ^ ( N- 1 ) minimum
altijd worden geinterpreteerd als een N-bits signed integer.
>= 2 ^ ( N- 1 ) - Dit veld kan veilig als 32 bit signed integer (zoals een SQLINTEGER
) worden geinterpreteerd. () + Dit veld kan veilig als 32 bit signed integer (zoals een SQL
2147483648 = 2 ^ ( 32 - 1 ) INTEGER
) worden geinterpreteerd. ()
2147483648 = 2 ^ ( 32 - 1 ) "hoogteTenOpzichteVanNormaalAmsterdamsPijl" : { "title" : "Hoogte ten opzichte van NAP" , "shortname" : "hoogteNAP" @@ -3302,7 +3419,7 @@minimum
en een
>= 0 exclusiveMaximum
kan altijd worden geinterpreteerd als een N-bits unsigned integer.
< 2 ^ N- Dit veld kan veilig als 8 bit unsigned integer zoals een SQLTINYINT
worden geinterpreteerd. + Dit veld kan veilig als 8 bit unsigned integer zoals een SQLTINYINT
worden geinterpreteerd."weeknummer" : { "title" : "weeknummer" , "description" : "weeknummer" , @@ -3325,7 +3442,7 @@4.3.2. number
Number wordt gebruikt voor velden met reële getallen. Als geenmultipleOf
attribuut is meegegeven moet eennumber
veld worden geinterpreteerd als een 64bits floating-point getal () zoals een SQL
double DOUBLE
. - Dit veld moet worden geinterpreteerd als een Double zoals een SQLDOUBLE
. + Dit veld moet worden geinterpreteerd als een Double zoals een SQLDOUBLE
."gevelHoek" : { "title" : "gevel hoek" , "description" : "Hoek van de gevel met de verticaal in graden" , @@ -3335,7 +3452,7 @@Wanneer aan een
number
veld eenmultipleOf
attribuut is meegegeven moet dit veld worden geinterpreteerd als fixed-point type metschaal
(zodat= log( multipleOf) / log( 0.1 ) multipleOf
).
= 0.1 ^ schaal- Dit veld moet worden geinterpreteerd als een fixed-point type met schaal=2 zoals een SQLDECIMAL
. + Dit veld moet worden geinterpreteerd als een fixed-point type met schaal=2 zoals een SQL( 10 , 2 ) DECIMAL
.( 10 , 2 ) "gevelHoek" : { "title" : "gevel hoek" , "description" : "Hoek van de gevel met de verticaal in graden" , @@ -3346,7 +3463,7 @@
Als een maximum attribuut is meegegeven kan een native type met een geschikte precisie worden gebruikt.
precisie
(zodat= log( maximum+ 1 ) / log( 10 ) + schaalmaximum
).
= 10 ^ ( precisie- schaal) - 1 - Dit veld moet worden geinterpreteerd als een fixed-point type met schaal=2 en precisie>=4 zoals een SQL-DECIMAL
. + Dit veld moet worden geinterpreteerd als een fixed-point type met schaal=2 en precisie>=4 zoals een SQL( 4 , 2 ) DECIMAL
.( 4 , 2 ) "gevelHoek" : { "title" : "gevel hoek" , "description" : "Hoek van de gevel met de verticaal in graden" , @@ -3357,12 +3474,10 @@}
Best Practice Beperk numerieke velden altijd tot realistische waarden met-maximum
,minimum
ofexclusiveMaximum
om fouten te voorkomen, en doelsystemen de juiste datatypen te laten gebruiken.4.3.3. boolean
- Een veld van het typewordt gebruikt voor boolean, (
"boolean" ,
true ) waarden. + Een veld van het type
false wordt gebruikt voor boolean, (
"boolean" ,
true ) waarden.
false "isGepubliceerd" : { "title" : "Is gepubliceerd" , "description" : "Dit artikel is gepubliceerd." , @@ -3371,7 +3486,7 @@
4.3.4. string
String velden worden gebruikt voor tekst, enums, tijd, datum en binary data. - Waarden in eenstring
veld moeten standaard worden geinterpreteerd als van een string type zoals een SQLTEXT
. + Waarden in eenstring
veld moeten standaard worden geinterpreteerd als van een string type zoals een SQLTEXT
."beschrijving" : { "title" : "Beschrijving" , "description" : "Beschrijving van het pand." , @@ -3399,7 +3514,7 @@Wanneer in een
text
veld een beperkte set waarden is toegestaan door middel van hetenum
attribuut, zou het veld moeten worden geinterpreteerd als een enumerator type zoals een SQLENUM
.- Dit veld zou moeten worden geinterpreteerd als een enumerator zoals een SQLENUM
. + Dit veld zou moeten worden geinterpreteerd als een enumerator zoals een SQLENUM
."beroep" : { "title" : "beroep" , "description" : "Beroep van de persoon." , @@ -3410,7 +3525,7 @@
Een text veld met
contentEncoding
gelijk aan "base64" zou moeten worden geinterpreteerd als binary data.- Dit veld zou moeten worden geinterpreteerd als binary data, zoals een SQLVARBINARY
. + Dit veld zou moeten worden geinterpreteerd als binary data, zoals een SQLVARBINARY
."hash" : { "title" : "hash" , "description" : "SHA512 hash" , @@ -3422,7 +3537,7 @@Wanneer een
maxLength
attribuut is meegegeven aan eenstring
veld zou het veld moeten worden geinterpreteerd als een fixed width binary type zoals een SQLBINARY
, metmaxLength
.
= 4 * ceil( bytes/ 3 ) - Dit veld zou moeten worden geinterpreteerd als fixed length binary data, zoals een SQLBINARY
. + Dit veld zou moeten worden geinterpreteerd als fixed length binary data, zoals een SQLBINARY
."hash" : { "title" : "hash" , "description" : "SHA512 hash" , @@ -3433,11 +3548,11 @@
4.3.5. tijd
- Met hetformat
attribuut kan eenstring
veld worden geformatteerd als tijds of datum eenheid. Eenstring
veld met eenformat
gelijk aan,
"time" ,
"date" of
"date-time" zou moeten worden geinterpreteerd als een [ISO8601] conform Datum of tijd type zoals een SQL
"duration" DATE
,TIME
ofDATETIME
. + Met hetformat
attribuut kan eenstring
veld worden geformatteerd als tijds of datum eenheid. Eenstring
veld met eenformat
gelijk aan,
"time" ,
"date" of
"date-time" zou moeten worden geinterpreteerd als een [ISO8601] conform Datum of tijd type zoals een SQL
"duration" DATE
,TIME
ofDATETIME
.Note: De maximale precisie van de tijdseenheden is microseconde.
Note: Bij een
wordt aangeraden om een tijdszone op te geven. Wanneer de tijdszone ontbreekt wordt een data-kwaliteit waarschuwing gegeven.
"date-time" - Dit veld zou moeten worden geinterpreteerd als een [ISO8601] Datum type in het format YYYY-MM-DD, zoals een SQLDATE
. + Dit veld zou moeten worden geinterpreteerd als een [ISO8601] Datum type in het format YYYY-MM-DD, zoals een SQLDATE
."publicatieDatum" : { "title" : "publicatie datum" , "description" : "Datum van publicatie" , @@ -3447,7 +3562,7 @@
- Dit veld zou moeten worden geinterpreteerd als een [ISO8601] conform tijd type, zoals een SQLTIME
. + Dit veld zou moeten worden geinterpreteerd als een [ISO8601] conform tijd type, zoals een SQLTIME
."publicatieTijd" : { "title" : "publicatie tijd" , "description" : "Tijd van publicatie" , @@ -3457,7 +3572,7 @@
- Dit veld zou moeten worden geinterpreteerd als een [ISO8601] conform datum-tijd type, zoals een SQLDATETIME
. + Dit veld zou moeten worden geinterpreteerd als een [ISO8601] conform datum-tijd type, zoals een SQLDATETIME
."tijdEnDatumVanPublicatie" : { "title" : "Tijd en datum van publicatie" , "description" : "Tijd en datum van publicatie" , @@ -3467,7 +3582,7 @@
- Dit veld zou moeten worden geinterpreteerd als een [ISO8601] conform tijdsduur type, zoals een postgreSQLINTERVAL
. + Dit veld zou moeten worden geinterpreteerd als een [ISO8601] conform tijdsduur type, zoals een postgreSQLINTERVAL
."duur" : { "title" : "Evenements duur" , "description" : "Tijdsduur dat het evenement open is voor publiek." , @@ -3479,9 +3594,9 @@4.3.6. geometrie
Een geometrie veld wordt gedefinieerd als een verwijzing naar de relevante GeoJSON Schema definitie. Alle GeoJSON geometrie typen (Point, Polygon, Line String, Multi Point, Multi LineString, - en Multi Polygon) worden ondersteund. + en Multi Polygon) worden ondersteund.- Voorbeeld van een geometrie veld. + Voorbeeld van een geometrie veld."lokatie" : { "title" : "Lokatie" , "description" : "Coordinaten van het middelpunt van het plein" , @@ -3499,7 +3614,7 @@crs attribuut.
4.3.7. object
@@ -3507,11 +3622,11 @@format
json
mag willekeurige JSON-data bevatten. Alle overige objectenvelden moeten een attribuutproperties
bezitten waarin de structuur van de waarden in het veld wordt vastgelegd. - Hetproperties
attribuut is een object met daarin de veld definities van de eigenschappen van de datawaarden. + Hetproperties
attribuut is een object met daarin de veld definities van de eigenschappen van de datawaarden.Note: Het
properties
attribuut moet geenobject
ofarray
velden bevatten. Geneste data is in een gestructureerd object veld niet toegestaan.- Een voorbeeld van een object veld. + Een voorbeeld van een object veld."adres" : { "title" : "Adres" , "description" : "Het adres." , @@ -3552,13 +3667,13 @@object veld.
4.3.8. array
Een veld van typearray
kan meerdere elementen van hetzelfde type bevatten, met mogelijke duplicatie. - Eenarray
veld moet eenitems
attribuut hebben, dit moet een veld object zijn. + Eenarray
veld moet eenitems
attribuut hebben, dit moet een veld object zijn.Note: De optie van een
-items
array uit de JSON Schema specificatie wordt niet ondersteund. Eenarray
kan dus slechts één type waarde bevatten (geen UNION types).Het
+items
attribuut is een veld object, maar de meta-data attributentitle
,description
,auth
,provenance
,shortname
enrelation
hebben initems
geen effect en zouden moeten worden weggelaten.Het
items
attribuut is een veld object, maar de meta-data attributentitle
,description
,auth
,provenance
,shortname
enrelation
hebben initems
geen effect en zouden moeten worden weggelaten.Note: Een array van arrays is niet toegestaan. Dus
items
mag zelf niet het typearray
hebben.- Een array van integers. + Een array van integers."weeknummers" : { "title" : "weeknummers" , "description" : "Weeknummers." , @@ -3572,7 +3687,7 @@
- Een array van objecten. + Een array van objecten."metingen" : { "title" : "metingen" , "description" : "Uitgevoerde metingen." , @@ -3601,7 +3716,7 @@relation attribuut van een veld kunnen relaties tussen tabellen worden gedefinieerd. Dit kan zowel een relatie tussen tabellen in één dataset als tussen tabellen in verschillende datasets zijn. Met het relation-attribuut wordt verwezen naar het identifierveld van de andere tabel. -Dit is vergelijkbaar met een foreign key relatie in SQL. +Dit is vergelijkbaar met een foreign key relatie in SQL.
Het attribuut
relation
moet altijd een string bevatten van de vorm. Van de waarden in een relation veld wordt verwacht dat ze gelijk zijn aan @@ -3613,7 +3728,7 @@
"<dataset-id>:<tabel-id>"
Voorbeeld van een relatie veld voor een enkelvoudige relatie met de tabel "meetbouten" in de - dataset "meetbouten". + dataset "meetbouten"."hoortBijMeetbout" : { "title" : "hoort bij meetbout" , "description" : "De meetbout waarop de meting is gedaan." @@ -3628,7 +3743,7 @@properties bevatten, met namen en types die overeenkomen met de
identifier
en detemporal
van het object waarnaar verwezen wordt.Voorbeeld van een relatie veld voor een enkelvoudige relatie met de temporele tabel "wijken" in de - dataset "gebieden". + dataset "gebieden"."ligtInWijk" : { "title" : "ligt in wijk" , "description" : "De wijk waar de buurt in ligt." , @@ -3648,7 +3763,7 @@Voor meervoudige (Many-To-Many) relaties wordt een array veld gebruikt met een relation attibuut.
Voorbeeld van een relatieveld voor een meervoudige relatie met de tabel "referentiepunten" - in de dataset "meetbouten". + in de dataset "meetbouten"."refereertAanReferentiepunten" : { "shortname" : "referentiepunten" , "title" : "refereert aan referentiepunten" , @@ -3663,7 +3778,7 @@
Voorbeeld van een relatieveld voor een meervoudige relatie met een temporele tabel "panden" - in de dataset "bag". + in de dataset "bag"."ligtInPanden" : { "title" : "ligt in panden" , "relation" : "bag:panden" , @@ -3700,46 +3815,44 @@4.5.
- type
-string - de eenheidscodering + type
+string + de eenheidscodering - value
-string - de eenheid + value
+string + de eenheid "unit" : { "type" : "ucum" , "value" : "{EUR}/h" } Zo kunnen ook andere eenheidscoderingen gebruikt worden.
-"unit" : { "type" : "pint" , "value" : "meter" } Best Practice Gebruik de UCUM-standaard om eenheden te coderen. Niet-standaard-coderingssystemen worden afgeraden.-5. Naamgeving
De data die in Amsterdam Schema wordt beschreven wordt publiek ontsloten en heeft veel externe afnemers. Het is dus heel belangrijk dat naamgeving correct, helder en eenduidig is, ook voor mensen die niet dagelijks met deze gegevens werken. Amsterdam Schema is ontworpen om door automatische systemen verwerkt te kunnen worden, ook daarom is het belangrijk dat de naamgeving -aan een strak stramien voldoet. +aan een strak stramien voldoet.Namen van datasets, tabellen en velden moeten:
-
- De namen van tabellen (zoals gegeven in- 1. gebruik maken van camelCase. +
- 1. gebruik maken van camelCase.
- 2. geen afkortingen of afbrekingen bevatten. -
- 3. bestaan uit zelfstandige naamwoorden (met uitzondering van de namen van relatievelden). -
- 4. uniek zijn binnen hun scope. (respectievelijk: De hele catalogus, de dataset of de tabel) +
- 3. bestaan uit zelfstandige naamwoorden (met uitzondering van de namen van relatievelden). +
- 4. uniek zijn binnen hun scope. (respectievelijk: De hele catalogus, de dataset of de tabel)
id
) en velden worden onderdeel van de URI waarop deze entiteiten ontsloten worden, en moeten daarom aan extra eisen voldoen. -5. Namen van tabellen moeten in meervoudsvorm zijn, behalve als sprake is van een enkelvoudige entiteit. Conform REST-API Design Rules § api-54.
-6. Namen van velden moeten geen herhaling van de tabel naam bevatten. (Dus niet
+ De namen van tabellen (zoals gegeven incontainer
, maar. containerNummmercontainer
.). nummerid
) en velden worden onderdeel van de URI waarop deze entiteiten ontsloten worden, en moeten daarom aan extra eisen voldoen. +5. Namen van tabellen moeten in meervoudsvorm zijn, behalve als sprake is van een enkelvoudige entiteit. Conform REST-API Design Rules § api-54.
+6. Namen van velden moeten geen herhaling van de tabel naam bevatten. (Dus niet
container
, maar. containerNummmercontainer
.). nummerNote: Gebruik duidelijke en begrijpelijke namen voor zowel datasets, tabellen als velden. De data wordt onsloten op een publieke API, dus de naamgeving moet zonder veel uitleg duidelijk zijn voor externe afnemers.
5.1. Shortname
Te lange namen in het schema kunnen problemen geven bij het aanmaken van tabellen en kolommen op basis van het schema. -PostgreSQL staat bijvoorbeeld niet meer dan 63 tekens toe voor tabelnamen. +PostgreSQL staat bijvoorbeeld niet meer dan 63 tekens toe voor tabelnamen.Op zowel tabel als veld niveau is het mogelijk om een alternatieve verkorte naam op te geven met het attribuut
shortname
. Het shortname attribuut mag wel afkortingen bevatten (regel 2 geldt niet) maar moet verder aan dezelfde eisen voldoen als de naam die erdoor wordt afgekort.- Gebruik van shortname in een tabel. + Gebruik van shortname in een tabel.{ "id" : "maatschappelijkeActiviteiten" , "shortname" : "activiteiten" , @@ -3749,7 +3862,7 @@
- Gebruik van shortname in een veld. + Gebruik van shortname in een veld."registratieTijdstipMaatschappelijkeActiviteit" : { "shortname" : "registratieTijdstip" , "type" : "string" , @@ -3760,101 +3873,98 @@
6. Publisher
Een publisher definitie bevat een publisher object. Deze word onder andere gebruikt voor billing en tagging van resources die via het amsterdam schema worden aangevraagd.
++ Voorbeeld van een publisher object. ++{ +"id" : "NOBODY" , +"type" : "publisher" +"name" : "Datateam Nobody" , +"shortname" : "nobody" , +"tags" : { +"costcenter" : "00000000.0000" +"team" : "nobody" , +}, +} +6.1. Verplichte attributen
- Een publisher binnen Amsterdam Schema is een JSON object met in ieder geval de volgende attributen. + Een publisher binnen Amsterdam Schema is een JSON object met in ieder geval de volgende attributen.-
- id
-identifier
-Identifier van de publisher. Moet globaal uniek zijn en gelijk aan de file waarin het publisher object is opgeslagen. + id
+identifier
+Identifier van de publisher. Moet globaal uniek zijn en gelijk aan de file waarin het publisher object is opgeslagen. - type
-constante - Type van dit bestand, in dit geval . +
"publisher" type
+constante + Type van dit bestand, in dit geval .
"publisher" - name
-string - Naam van de publisher. + name
+string + Naam van de publisher. - shortname
-resource-identifier
-Verkorte naam van de publisher (voor resources). + shortname
+resource-identifier
+Verkorte naam van de publisher (voor resources). - tags
-object + tags
+object - Labels met metagegevens die aan resources van deze publisher moeten worden gehangen. + Labels met metagegevens die aan resources van deze publisher moeten worden gehangen. 7. Generieke attributen
- Deze attributen kunnen op elk niveau bestaan. -7.1. Omschrijving
-Op elk niveau kan een semantische omschrijving toegevoegd worden d.m.v. de attributen
+title
endescription
.7. Autorisatie
+Confirm the Wet Open Overheid (Woo) zijn gegevens standaard openbaar. +Er zijn twee mechanismen om de toegang te beperken en authorisatie in te regelen:
++
+- +
De
+-attributen in het Amsterdam-schema beperken de toegang. zie § 7.2 Auth-attributen.
"auth" - +
De profielen geven grunulair toegang op basis van een gebruikersprofiel. zie § 7.3 Profielen.
+Beide mechanismen gebruiken doorvoor scopes om te koppelen met gebruikersgroepen in de bestaande architectuur. +Deze scopes worden bijvoorbeeld verkregen vanuit een bestaande OAuth-flow die een JSON Web Token (JWT) aanbiedt.
+7.1. Scopes
+Een scope is een groep gebruikers (medewerkers) met gedeelde rechten. Een gebruiker kan meerdere scopes hebben. +Een scope is een string bestaande uit een reeks lower of uppercase letters eventueel gescheiden door een forward slash (
+/
), +bijvoorbeeld.
"BRP/RO" 7.2. Auth-attributen
+Op zowel dataset, tabel als veld niveau kan een
-attribuut worden meegegeven om toegang tot een entitieit te beperken.
"auth" -
- title - (string) - Naam van dit item. - - description - (string) - Beschrijving van dit item, vrije tekst. Mag escape characters zoals newlines bevaten. - De
-title
kan bijvoorbeeld in frontendapplicaties worden gebruikt als label voor een invoerveld. -Hetdescription
veld is bedoeld voor bijvoorbeeld contextmenu’s (mouseover) bij een invoerveld of voor informatievelden.--title
endescription
van een Dataset. --"title" : "Bekende Amsterdammers" , -"description" : "Bekende historische personen die in Amsterdam hebben gewoond.\n (Een voorbeeld dataset)" , --- -title
endescription
van een Tabel. --"title" : "Locaties" , -"description" : "Adressen in Amsterdam geassocieerd met een bekende Amsterdammer. \nBijvoorbeeld een voormalige woon of verblijfplaats" , -Note: Als een veld geen
-title
-attibuut heeft, wordt de naam van het veld gebruikt.7.2. Autorisatie
-Op zowel dataset, tabel als veld niveau kan een
--attribuut worden meegegeven om toegang tot een entitieit te beperken.
"auth" - +
-auth + string | array + geautoriseerde scope(s). - auth - string | array - geautoriseerde scope(s). + reasonsNonPublic + array( nonPubReason
) +een of meer gronden voor het niet openbaar maken van data obv uitzonderingen in Hoofdstuk 5 van de [Woo]. + Verplicht op het eerste niveau waar de niet gelijk is aan
"auth" .
"OPENBAAR" Het
--attribuut bevat één of meer scopes, die leesrechten hebben op de entiteit waarop
"auth" is gedefinieerd. -Een scope is een groep gebruikers (medewerkers) met gedeelde rechten. Een gebruiker kan meerdere scopes hebben.
"auth" Een scope is een string bestaande uit een reeks lower of uppercase letters eventueel gescheiden door een forward slash (
+/
).Het
+-attribuut bevat één of meer scopes, die leesrechten hebben op de entiteit waarop
"auth" is gedefinieerd.
"auth" 7.2.1. Meerdere scopes
Als het
+Dus een gebruiker heeft slechts één van de scopes in een array nodig voor toegang.-attribuut een array bevat is elke scope in de array afzonderlijk geautoriseerd. -Dus een gebruiker heeft slechts één van de scopes in een array nodig voor toegang.
"auth" - Voorbeeld van een "auth" array op een veld. - Zowel scope- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + \ No newline at end of file + +// TODO: shared util +// Returns the root-level absolute position {left and top} of element. +function getBounds(el, relativeTo=document.body) { + const relativeRect = relativeTo.getBoundingClientRect(); + const elRect = el.getBoundingClientRect(); + const top = elRect.top - relativeRect.top; + const left = elRect.left - relativeRect.left; + return { + top, + left, + bottom: top + elRect.height, + right: left + elRect.width, + } +} + +function showRefHintListener(e) { + // If the target isn't in a link (or is a link), + // just ignore it. + let link = e.target.closest("a"); + if(!link) return; + + // If the target is in a ref-hint panel + // (aka a link in the already-open one), + // also just ignore it. + if(link.closest(".ref-hint")) return; + + // Otherwise, show the panel for the link. + showRefHint(link); +} + +function hideAllHintsListener(e) { + // If the click is inside a ref-hint panel, ignore it. + if(e.target.closest(".ref-hint")) return; + // Otherwise, close all the current panels. + hideAllRefHints(); +} + +document.addEventListener("DOMContentLoaded", () => { + document.body.addEventListener("mousedown", showRefHintListener); + document.body.addEventListener("focus", showRefHintListener); + + document.body.addEventListener("click", hideAllHintsListener); +}); + +window.addEventListener("resize", () => { + // Hide any open ref hint. + hideAllRefHints(); +}); +} +als scope
"LEVEL/X" toegang tot het veld. Een gebruiker hoeft niet beide scopes te bezitten. + Voorbeeld van een
"LEVEL/Y" array op een veld. + Zowel scope
"auth" als scope
"LEVEL/X" toegang tot het veld. Een gebruiker hoeft niet beide scopes te bezitten.
"LEVEL/Y" "aantalDuivenOpDeDam" : { "title" : "aantal duiven op de Dam" , "description" : "Het gemeten aantal duiven op de de Dam" , @@ -3863,70 +3973,265 @@auth attribuut verplicht. Bij een openbare dataset krijgt het
auth
attribuut -de waarde. -
"OPENBAAR" Als een tabel geen
-attribuut heeft is de scope van de tabel gelijk aan die van de dataset.
"auth" Als een veld geen
-attribuut heeft is de scope van het veld gelijk aan die van de tabel.
"auth" Op het eerste niveau waarop data niet openbaar wordt gemaakt moet met ingang van 1 mei 2022 een '"reasonsNonPublic"' attribuut bestaan. +
7.2.2. Meerdere niveau’s
+Op dataset niveau is het
+auth
attribuut verplicht. +Bij een openbare dataset krijgt hetauth
attribuut de waarde.
"OPENBAAR" Als een tabel geen
+attribuut heeft, is de scope van de tabel gelijk aan die van de dataset.
"auth" Als een veld geen
+attribuut heeft, is de scope van het veld gelijk aan die van de tabel.
"auth" Om toegang tot een veld te krijgen, moet de gebruiker op alle niveau’s toegang krijgen; op veld-, tabel- en datasetniveau.
+Op het eerste niveau waarop data niet openbaar wordt gemaakt moet een
--attribuut bestaan. Dus als een dataset openbaar is, maar deze een tabel bevat waarop een
"reasonsNonPublic" auth
attribuut met een andere waarde dan "OPENBAAR" bestaat. Moet in de betreffende tabel of tabellen eenreasonsNonPublic
attribuut bestaan.- In dit voorbeeld vindt autorisatie plaats op 3 niveaus. -Scopeheeft dataset level autorisatie op gebieden, scope
"LEVEL/A" heeft tabel level autorisatie op bouwblokken en scope
"LEVEL/B" heeft autorisatie op veld beginGeldigheid. +
"LEVEL/C" + In dit voorbeeld vindt autorisatie plaats op 3 niveaus. +Scope+heeft dataset level autorisatie op gebieden, scope
"LEVEL/A" heeft tabel level autorisatie op bouwblokken en scope
"LEVEL/B" heeft autorisatie op veld beginGeldigheid.
"LEVEL/C" -
- -
Een user met scope
+mag alles uit de dataset gebieden zien, behalve tabel bouwblokken.
"LEVEL/A" Een user met scope
mag alles uit de dataset
"LEVEL/A" gebieden
zien, behalve tabelbouwblokken
.- -
Een user met scope
+mag alle velden van tabel bouwblokken zien, behalve beginGeldigheid.
"LEVEL/B" Een user met scope
en
"LEVEL/A" mag alle velden van tabel
"LEVEL/B" bouwblokken
zien, behalvebeginGeldigheid
.- -
Een user met scope
+mag veld beginGeldigheid zien.
"LEVEL/C" Een user met scope
en
"LEVEL/A" en
"LEVEL/B" mag het veld
"LEVEL/C" beginGeldigheid
ook zien.+{ "type" : "dataset" , "id" : "gebieden" , "title" : "gebieden" , "auth" : "LEVEL/A" , "status" : "beschikbaar" , "crs" : "EPSG:28992" , "tables" : [ { "id" : "bouwblokken" , "mainGeometry" : "geometrie" , "type" : "table" , "version" : "1.0.0" , "auth" : "LEVEL/B" , "schema" : { "$id" : "https://github.com/Amsterdam/schemas/gebieden/bouwblokken.json" , "$schema" : "http://json-schema.org/draft-07/schema#" , "type" : "object" , "additionalProperties" : false , "identifier" : [ "id" ], "required" : [ "schema" , "id" ], "display" : "id" , "properties" : { "schema" : { "$ref" : "https://schemas.data.amsterdam.nl/schema@v1.1.1#/definitions/schema" }, "id" : { "type" : "string" , "description" : "Unieke identificatie voor dit object, inclusief volgnummer" }, "beginGeldigheid" : { "type" : "string" , "format" : "date" , "title" : "Begin geldigheid" , "description" : "De datum waarop het object is gecreëerd." , "auth" : "LEVEL/C" }, "eindGeldigheid" : { "type" : "string" , "format" : "date" , "title" : "Eind geldigheid" , "description" : "De datum waarop het object is komen te vervallen." , "provenance" : "eindgeldigheid" }, "ligtInBuurt" : { "type" : "string" , "relation" : "gebieden:buurten" , "provenance" : "ligtinbuurt" , "title" : "Ligt in buurt" , "description" : "De buurt waar het bouwblok in ligt." } } } } ] } +{ "type" : "dataset" , "id" : "gebieden" , "title" : "gebieden" , "auth" : "LEVEL/A" , "reasonsNonPublic" : [ "5.1 1b: Gevaar voor staatsveiligheid" ], "status" : "beschikbaar" , "crs" : "EPSG:28992" , "tables" : [ { "id" : "bouwblokken" , "mainGeometry" : "geometrie" , "type" : "table" , "version" : "1.0.0" , "auth" : "LEVEL/B" , "schema" : { "$id" : "https://github.com/Amsterdam/schemas/gebieden/bouwblokken.json" , "$schema" : "http://json-schema.org/draft-07/schema#" , "type" : "object" , "additionalProperties" : false , "identifier" : [ "id" ], "required" : [ "schema" , "id" ], "display" : "id" , "properties" : { "schema" : { "$ref" : "https://schemas.data.amsterdam.nl/schema@v1.1.1#/definitions/schema" }, "id" : { "type" : "string" , "description" : "Unieke identificatie voor dit object, inclusief volgnummer" }, "beginGeldigheid" : { "type" : "string" , "format" : "date" , "title" : "Begin geldigheid" , "description" : "De datum waarop het object is gecreëerd." , "auth" : "LEVEL/C" }, "eindGeldigheid" : { "type" : "string" , "format" : "date" , "title" : "Eind geldigheid" , "description" : "De datum waarop het object is komen te vervallen." , "provenance" : "eindgeldigheid" }, "ligtInBuurt" : { "type" : "string" , "relation" : "gebieden:buurten" , "provenance" : "ligtinbuurt" , "title" : "Ligt in buurt" , "description" : "De buurt waar het bouwblok in ligt." } } } } ] } 7.3. Profielen
+Waar een
+-attribuut de toegang ontzegt, geeft een profiel gralunair toegang onder voorwaarden. +Een profiel wordt alleen toegepast als er geen authorisatie verkregen is via de
"auth" -attributen.
"auth" + Voorbeeld van een profiel, wat het functieprofiel "parkeerwachter" toegang geeft tot "parkeervakken". +++{ +"id" : "parkeerwachter" , +"type" : "profile" , +"name" : "Parkeerwacht toegang" , +"scopes" : [ "FP/PARKEERWACHTER" ], +"datasets" : { +"parkeervakken" : { +"tables" : { +"parkeervakken" : { +"permissions" : "read" , +} +} +} +} +} +Een profiel kan toegang geven op dataset-, tabel- en veldniveau. +Daarbij kan ook een zoekvraag (
+) verplicht zijn om toegang te krijgen.
"mandatoryFilterSets" + Voorbeeld van een profiel wat slechts toegang geeft tot een paar velden, en een zoekvraag verplicht. +++{ +"id" : "parkeerwachter" , +"type" : "profile" , +"name" : "Parkeerwacht toegang beperkt" , +"scopes" : [ "FP/PARKEERWACHTER-B" ], +"datasets" : { +"parkeervakken" : { +"tables" : { +"parkeervakken" : { +"fields" : { +"type" : "read" , +"grootte" : "read" , +"opmerking" : "letters:10" , +}, +"mandatoryFilterSets" : [ +[ "id" , "volgnummer" ], +[ "buurtcode" , "type" ], +], +} +} +} +} +} +7.4. Verplichte attributen
+ Een profiel binnen Amsterdam Schema is een JSON object met in ieder geval de volgende attributen. ++ +
++ id
+identifier
+Identifier van de publisher. Moet globaal uniek zijn en gelijk aan de file waarin het publisher object is opgeslagen. + + type
+constante + Type van dit bestand, in dit geval . +
"profile" + name
+string + Naam van het gebruikersprofiel. + + scopes
+resource-identifier
+De geautoriseerde scope(s) die de gebruiker moet hebben om dit profiel te activeren. + + datasets
+object + Mapping van alle datasets, waarbij iedere sleutel verwijst naar het id
van een dataset. +Iedere dataset in een profiel kan de volgende waarden bevatten:
++ +
++ permissions
+string + De waarde voor leestoegang. +
"read" + tables
+object + Een mapping van tabellen, waarbij iedere sleutel verwijst naar het id
van een tabel. +Iedere tabel in een profiel kan over de volgende waarden bevatten:
++ +
++ permissions
+string + De waarde voor leestoegang. +
"read" + fields
+object + Een mapping van velden, waarbij iedere sleutel verwijst naar het id
van een veld. ++ mandatoryFilterSets
+array + Een array van tuples met verplichte zoekvelden. + Ieder veld in een profiel kan over de volgende waarden bevatten:
++ +
++ permissions
+string + Het toegangsniveau tot het veld. + Mogelijke waarden: voor leestoegang,
"read" geeft toegang tot de eerste aantal karakters van het veld. +
"letters:##" 7.4.1. Verplichte zoekvragen
+De mandatoryFilterSets verplicht het gebruik van een zoekvraag om de tabel te raadplegen. +De waarde bevat een lijst van mogelijke toegestane vragen. +Operatoren zijn alleen toegestaan als deze letterlijk opgegeven worden, bijvoorbeeld
+.
"regimes.aantal[gte]" + Voorbeeld van verplicht zoeken op id+volgnummer óf buurtcode+type. + In een REST API betekend dit bijvoorbeeld dat de resource alleen inzichtelijk is + met de zoekvraag+óf
? id= ... & amp; volgnummer= ... . +
? buurtcode= ... & amp; type= ... +"mandatoryFilterSets" : [ +[ "id" , "volgnummer" ], +[ "buurtcode" , "type" ] +] +7.4.2. Toegangsregels
+Een gebruiker heeft toegang tot een dataset indien deze:
++
+- +
Toegang krijgt via
+regel.
"auth" - +
Of een profiel heeft met
+op dataset niveau.
"permissions" : "read" Een gebruiker heeft toegang tot een tabel indien deze:
++
+- +
Toegang krijgt via
+regels op de tabel én dataset.
"auth" - +
Of volledige toegang heeft tot de dataset door middel van een profiel met
+op dataset niveau.
"permissions" : "read" - +
Of een profiel heeft met
+op tabel niveau, én voldoet aan de mandatoryFilterSets indien deze aanwezig zijn. +Toegang tot het openen van dataset wordt daarmee impliciet verkregen.
"permissions" : "read" Een gebruiker heeft toegang tot een veld indien deze:
++
+- +
Toegang krijgt via
+regels op de dataset, tabel én het veld.
"auth" - +
Of volledige toegang heeft tot de dataset door middel van een profiel met
+op dataset niveau.
"permissions" : "read" - +
Of volledige toegang heeft tot een tabel door middel van een profiel heeft met
+op het tabel niveau, waarbij de de mandatoryFilterSets voldaan zijn indien deze aanwezig zijn.
"permissions" : "read" - +
Of een profiel heeft met
+op het veld niveau, én voldoet aan de mandatoryFilterSets vam de tabel indien deze aanwezig zijn. +Toegang tot het openen van de dataset en tabel wordt daarmee impliciet verkregen.
"permissions" 8. Generieke attributen
+ Deze attributen kunnen op elk niveau bestaan. +8.1. Omschrijving
+Op elk niveau kan een semantische omschrijving toegevoegd worden d.m.v. de attributen
+title
endescription
.+ +
++ title + (string) + Naam van dit item. + + description + (string) + Beschrijving van dit item, vrije tekst. Mag escape characters zoals newlines bevaten. + De
+title
kan bijvoorbeeld in frontendapplicaties worden gebruikt als label voor een invoerveld. +Hetdescription
veld is bedoeld voor bijvoorbeeld contextmenu’s (mouseover) bij een invoerveld of voor informatievelden.++title
endescription
van een Dataset. ++"title" : "Bekende Amsterdammers" , +"description" : "Bekende historische personen die in Amsterdam hebben gewoond.\n (Een voorbeeld dataset)" , +++ -title
endescription
van een Tabel. ++"title" : "Locaties" , +"description" : "Adressen in Amsterdam geassocieerd met een bekende Amsterdammer. \nBijvoorbeeld een voormalige woon of verblijfplaats" , +7.3. Provenance
+Note: Als een veld geen
+title
-attibuut heeft, wordt de naam van het veld gebruikt.8.2. Provenance
Provenance als veld wordt gebruikt om programmatisch informatie op te slaan over de oorsprong van bepaalde data.
In beperkte vorm kan provenance ook gebruikt worden om automatisch verwerking van brongegevens in andere formaten te bewerkstelligen.
Provenance is beschikbaar op zowel dataset-, tabel- als veld-niveau. Het is een vrij veld maar door een object met 'type' te specificeren kunnen specifieke machine readable profielen geactiveerd worden t.b.v. automatische bronverwerking
-7.3.1. Vrije invoer
+8.2.1. Vrije invoer
Dataset:
"provenance" : "Deze dataset wordt handmatig verwerkt door ..." Tabel:
"provenance" : "Deze tabel is gebaseerd op een CSV bestand aangeleverd door ..." Veld:
-
"provenance" : "Ontbrekende IDs zijn m.b.v TextEdit vervangen door UUID hashes van de naam in UTF-8." 7.3.2. Postgres
+8.2.2. Postgres
Dataset:
"provenance" : { "type" : "postgres" , "schema" : "ruimte" } Tabel:
"provenance" : { "table" : "verhardingen" } Veld:
-
"provenance" : { "field" : "lengte_m" , "type" : "NUMERIC(10,2)" } 7.3.3. Shapefile
+8.2.3. Shapefile
Dataset:
"provenance" : { "type" : "shapefile" } Tabel:
"provenance" : { "file" : "asbestdaken_daken.zip" } Veld:
-
"provenance" : { "field" : "perceel_id" } 8. Attribuuttypen
+9. Attribuuttypen
-
- identifier
-string - Een unieke identifier in de vorm van één of meer letters, startend met een kleine letter en eventueel gevolgd door een cijferreeks. + identifier
+string + Een unieke identifier in de vorm van één of meer letters, startend met een kleine letter en eventueel gevolgd door een cijferreeks. - resource
-- identifierstring - Een unieke identifier in de vorm van één tot en met twaalf kleine letters. + resource
+- identifierstring + Een unieke identifier in de vorm van één tot en met twaalf kleine letters. - date
-- time(string) - Een als datetime geformatteerde string. Conform JSON Schema § rfc.section.7.3.1. + date
+- time(string) + Een als datetime geformatteerde string. Conform JSON Schema § rfc.section.7.3.1. - uri
-(string) - Een als URI geformatteerde string. Conform JSON Schema § rfc.section.7.3.5. + uri
+(string) + Een als URI geformatteerde string. Conform JSON Schema § rfc.section.7.3.5. - uri
-- reference(string) - Een als URI Reference geformatteerde string. Conform JSON Schema § rfc.section.7.3.5. + uri
+- reference(string) + Een als URI Reference geformatteerde string. Conform JSON Schema § rfc.section.7.3.5. - schema
-- type(enum-string) + schema
+- type(enum-string) - Het binnen Amsterdam Schema bekende JSON Schema type waaraan het object voldoet. + Het binnen Amsterdam Schema bekende JSON Schema type waaraan het object voldoet. Opties
@@ -3939,10 +4244,10 @@
8
- reden
-- niet- publiek(enum-string) + reden
+- niet- publiek(enum-string) - Grond voor het niet openbaar maken van data op basis van de uitzonderingen in Hoofdstuk 5 van de Wet Open Overheid (Woo). + Grond voor het niet openbaar maken van data op basis van de uitzonderingen in Hoofdstuk 5 van de Wet Open Overheid (Woo). Met
@@ -3950,47 +4255,47 @@, wordt bedoeld Wet Open Overheid Artikel 5.1, eerste lid, onderdeel a. De beschrijvingen volgend op de wetsverwijzing zijn niet volledig en dienen slechts ter illustratie. Kijk voor de exacte definitie van een uitzondering in hoofdstuk 5 van de Woo.
"5.1 1a" 8
Opties
- De laatste optie ("nader te bepalen") is niet toegestaan wanneer
- -
"5.1 1a: Gevaar voor eenheid van de Kroon",
+"5.1 1a: Gevaar voor eenheid van de Kroon"
- -
"5.1 1b: Gevaar voor staatsveiligheid",
+"5.1 1b: Gevaar voor staatsveiligheid"
- -
"5.1 1c: Vertrouwelijke of concurrentiegevoelige bedrijfs- en fabricagegegevens",
+"5.1 1c: Vertrouwelijke of concurrentiegevoelige bedrijfs- en fabricagegegevens"
- -
"5.1 1d: Bevat persoonsgegevens",
+"5.1 1d: Bevat persoonsgegevens"
- -
"5.1 1e: Bevat nationaal identificatienummer",
+"5.1 1e: Bevat nationaal identificatienummer"
- -
"5.1 2a: Zwaarwegend belang: internationale betrekkingen",
+"5.1 2a: Zwaarwegend belang: internationale betrekkingen"
- -
"5.1 2b: Zwaarwegende economische of financiële belangen van publiekrechtelijke lichamen (bevat geen mileu-informatie)",
+"5.1 2b: Zwaarwegende economische of financiële belangen van publiekrechtelijke lichamen (bevat geen mileu-informatie)"
- -
"5.1 2b: Zwaarwegende economische of financiële belangen van publiekrechtelijke lichamen (bevat mileu-informatie met betrekking op handelingen met een vertrouwelijk karakter)",
+"5.1 2b: Zwaarwegende economische of financiële belangen van publiekrechtelijke lichamen (bevat mileu-informatie met betrekking op handelingen met een vertrouwelijk karakter)"
- -
"5.1 2c: Zwaarwegend belang: opsporing en vervolging van strafbare feiten",
+"5.1 2c: Zwaarwegend belang: opsporing en vervolging van strafbare feiten"
- -
"5.1 2d: Zwaarwegend belang: inspectie, controle en toezicht door bestuursorganen",
+"5.1 2d: Zwaarwegend belang: inspectie, controle en toezicht door bestuursorganen"
- -
"5.1 2e: Zwaarwegend belang: eerbiediging van de persoonlijke levenssfeer",
+"5.1 2e: Zwaarwegend belang: eerbiediging van de persoonlijke levenssfeer"
- -
"5.1 2f: Zwaarwegend belang: vertrouwelijke of concurrentiegevoelige bedrijfs- en fabricagegegevens",
+"5.1 2f: Zwaarwegend belang: vertrouwelijke of concurrentiegevoelige bedrijfs- en fabricagegegevens"
- -
"5.1 2g: Zwaarwegend belang: bescherming van het milieu waarop deze informatie betrekking heeft",
+"5.1 2g: Zwaarwegend belang: bescherming van het milieu waarop deze informatie betrekking heeft"
- -
"5.1 2h: Zwaarwegend belang: beveiliging van personen en bedrijven en het voorkomen van sabotage",
+"5.1 2h: Zwaarwegend belang: beveiliging van personen en bedrijven en het voorkomen van sabotage"
- -
"5.1 2i: Zwaarwegend belang: het goed functioneren van de Staat, andere publiekrechtelijke lichamen of bestuursorganen",
+"5.1 2i: Zwaarwegend belang: het goed functioneren van de Staat, andere publiekrechtelijke lichamen of bestuursorganen"
- -
"5.2 1: Bevat persoonlijke beleidsopvattingen (bevat geen milieu-informatie)",
+"5.2 1: Bevat persoonlijke beleidsopvattingen (bevat geen milieu-informatie)"
- -
"5.2 4: Zwaarwegend belang: persoonlijke beleidsopvattingen (bevat milieu-informatie)",
+"5.2 4: Zwaarwegend belang: persoonlijke beleidsopvattingen (bevat milieu-informatie)"
"nader te bepalen"
status
=. + De laatste optie ("nader te bepalen") is niet toegestaan wanneer
"beschikbaar" status
=.
"beschikbaar" - version
-(string) + version
+(string) Version string van de vorm " @@ -4007,30 +4312,40 @@ 8
- contact
-(object) + contact
+(object) - Contactgegevens. Een object met de volgende optionele velden: + Contactgegevens. Een object met de volgende optionele velden: 9. Changelog
+10. Changelog
Dit is een chronologisch overzicht van aanpassingen aan de amsterdam-schema specificatie. Uitsluitend normatieve aanpassingen aan de specificatie worden vermeld. Aanpassingen aan voorbeelden, -waarschuwingen of uitleg verschijnen dus niet in dit overzicht. -9.1. [2.2.0] dataclass atribuut toegevoegd (2023-01-12)
+waarschuwingen of uitleg verschijnen dus niet in dit overzicht. +10.1. [2.3.0] filterAuth attribuut toegevoegd (2025-01-12)
-+Doelstelling
+
UItzonderingsgronden WOO in lijn gebracht met versie van WOO die nu van kracht is.Doelstelling
+
Betere afscherming van velden bij speciale zoekacties.+
+- +
Het
+filterAuth
attribuut is toegevoegd.- +
De § 7.3 Profielen zijn gedocumenteerd.
+10.2. [2.2.0] dataclass attribuut toegevoegd (2023-01-12)
++Doelstelling
Uitzonderingsgronden WOO in lijn gebracht met versie van WOO die nu van kracht is.-
Het
dataclass
attribuut is toegevoegd.9.2. [2.1.5] dataclass atribuut toegevoegd (2023-01-10)
+10.3. [2.1.5] dataclass attribuut toegevoegd (2023-01-10)
@@ -4040,7 +4355,7 @@Doelstelling
Beschrijving en relatering van ongestructureerde data mogelijk maken.9
Verwijzing Wet Open Overheid geupdate.
-9.3. [2.1.4] Publishers zijn zelfstandige objecten geworden (2022-12-21)
+10.4. [2.1.4] Publishers zijn zelfstandige objecten geworden (2022-12-21)
@@ -4050,7 +4365,7 @@Doelstelling
Publishers zijn zelfstandige objecten geworden.9
Het publisher object is toegevoegd.
-9.4. [2.1.3] Auth attribuut verplicht op dataset niveau (2022-04-13)
+10.5. [2.1.3] Auth attribuut verplicht op dataset niveau (2022-04-13)
Doelstelling
Alle datasets zijn openbaar tenzij obv de Wet Open Overheid. Maar om onbedoelde openbaarmaking te voorkomen, moet dit altijd expliciet @@ -4066,17 +4381,17 @@
Het veld attribuut
-reasonsNonPublic
is toegevoegd.9.5. [2.1.2] Auth attribuut niet toegestaan bij identifier en display velden (2022-04-13)
+10.6. [2.1.2] Auth attribuut niet toegestaan bij identifier en display velden (2022-04-13)
Doelstelling
+die toegang heeft tot de tabel. Deze velden mogen dus geen
De velden waar naar verwezen wordt inidentifier
endisplay
moeten zichtbaar zijn voor iedereen -die toegang heeft tot de tabel. Deze velden mogen dus geenauth
bevatten.auth
bevatten.-
De velden waar naar verwezen wordt in de
+mogen geenidentifier
endisplay
attributen -mogen geenauth
attribuut bevatten.auth
attribuut bevatten.9.6. [2.1.1] Crs attribuut verplicht bij geometrie velden (2022-03-23)
+10.7. [2.1.1] Crs attribuut verplicht bij geometrie velden (2022-03-23)
Doelstelling
@@ -4085,7 +4400,7 @@
Het coordinaat referentie systeem van een dataset met geo data moet bekend zijn voor correct functioneren van doelsystemen.crs veld is verplicht geworden wanneer één of meerdere tabellen een § 4.3.6 geometrie veld bevatten. -
9.7. [2.1.0] Dataset contact gegevens (2022-03-17)
+10.8. [2.1.0] Dataset contact gegevens (2022-03-17)
Doelstelling
Meerdere aanpassingen aan dataset velden voor contactgegevens. Met als doel om alle teams en organisaties die een rol hebben bij het ontsluiten van een dataset @@ -4113,16 +4428,16 @@attribute for dataset, in § 2.1
- attribute for tabel, in § 3.2
- attribute for veld, in § 4.2 -
- definition of, in § 7.2 +
- definition of, in § 7.2
- authorizationGrantor, in § 2.1
- camelCase, in § 5
- $comment, in § 4.2 -
- contact, in § 8 +
- contact, in § 9
- contactPoint
-
- (typedef), in § 8 +
- (typedef), in § 9
- attribute for dataset, in § 2.2
- contentEncoding, in § 4.2 @@ -4137,6 +4452,7 @@
dataclass, in § 3.2
- dataset, in § 2.1 +
- datasets, in § 7.4
- dateCreated
@@ -4149,7 +4465,7 @@
-attribute for dataset, in § 2.2.1
- attribute for tabel, in § 3.2
- date-time, in § 8 +
- date-time, in § 9
- derivedFrom, in § 3.2
- description @@ -4160,9 +4476,11 @@
dimensions.geldigOp, in § 3.4
- display, in § 3.3 -
- email, in § 8 +
- email, in § 9
- enum, in § 4.2
- exclusiveMaximum, in § 4.2 +
- fields, in § 7.4 +
- filterAuth, in § 4.2
- format, in § 4.2
- hasBeginning, in § 2.2.1
- hasEnd, in § 2.2.1 @@ -4171,8 +4489,9 @@
(typedef), in § 8 +
- (typedef), in § 9
- attribute for dataset, in § 2.1 +
- attribute for profiel, in § 7.4
- attribute for publisher, in § 6.1
- attribute for tabel, in § 3.1
- attribute for table-ref, in § 2.3 @@ -4183,7 +4502,7 @@
attribute for schema, in § 3.3
- attribute for temporal, in § 3.4 -
- id-type, in § 8 +
- id-type, in § 9
- items, in § 4.2
- keywords, in § 2.2.1
- language, in § 2.2.1 @@ -4195,6 +4514,12 @@
attribute for tabel, in § 3.2
- mainGeometry, in § 3.3 +
- + mandatoryFilterSets +
+
- attribute for profiletable, in § 7.4 +
- definition of, in § 7.4.1 +
- maximum, in § 4.2
- maxLength, in § 4.2
- minimum, in § 4.2 @@ -4203,16 +4528,25 @@
attribute for contact, in § 8 +
- attribute for contact, in § 9 +
- attribute for profiel, in § 7.4
- attribute for publisher, in § 6.1
- noAbrev, in § 5 -
- nonPubReason, in § 8 +
- nonPubReason, in § 9
- noRepeat, in § 5
- nouns, in § 5
- objective, in § 2.2.1
- owner, in § 2.1 +
- + permissions +
+
- attribute for profiledataset, in § 7.4 +
- attribute for profilefield, in § 7.4 +
- attribute for profiletable, in § 7.4 +
- plural, in § 5 +
- profiel, in § 7.4
- properties
@@ -4240,6 +4574,7 @@
attribute for dataset, in § 2.2
- attribute for tabel, in § 3.2
- attribute for veld, in § 4.2 +
- definition of, in § 7.2
- ref @@ -4250,8 +4585,8 @@
relation, in § 4.2
- required, in § 3.3 -
- resource-identifier, in § 8 -
- resource-identifier-type, in § 8 +
- resource-identifier, in § 9 +
- resource-identifier-type, in § 9
- $schema, in § 3.3
- schema @@ -4260,8 +4595,9 @@
definition of, in § 3.3
- schema-object, in § 3.3 -
- schema-type, in § 8 -
- scope, in § 7.2 +
- schema-type, in § 9 +
- scope, in § 7.1 +
- scopes, in § 7.4
- shortname
@@ -4275,7 +4611,12 @@
-status, in § 2.1
- tabel, in § 3.1
- tabel referentie, in § 2.3 -
- tables, in § 2.1 +
- + tables +
+
- attribute for dataset, in § 2.1 +
- attribute for profiledataset, in § 7.4 +
- tags, in § 6.1
- team, in § 6.1
- @@ -4297,8 +4638,9 @@
(typedef), in § 8 +
- (typedef), in § 9
- attribute for dataset, in § 2.1 +
- attribute for profiel, in § 7.4
- attribute for publisher, in § 6.1
- attribute for schema, in § 3.3
- attribute for tabel, in § 3.1 @@ -4310,21 +4652,21 @@
(typedef), in § 8 +
- (typedef), in § 9
- attribute for veld, in § 4.2
- uri-reference, in § 8 -
- uri-type, in § 8 +
- uri-reference, in § 9 +
- uri-type, in § 9
- value, in § 4.5
- veld, in § 4.1
- version
-
-- (typedef), in § 8 +
- (typedef), in § 9
- attribute for dataset, in § 2.2
- attribute for tabel, in § 3.1
- version-string, in § 8 +
- version-string, in § 9
References
Normative References
@@ -4341,8 +4683,8 @@N
- SDOW best practices. URL: https://www.w3.org/TR/sdw-bp/
- [UCUM]
- The Unified Code for Units of Measure. URL: https://unitsofmeasure.org/ucum.html -
- [VOCAB-DCAT-2] -
- Riccardo Albertoni; et al. Data Catalog Vocabulary (DCAT) - Version 2. URL: https://w3c.github.io/dxwg/dcat/ +
- [VOCAB-DCAT-3] +
- Simon Cox; et al. Data Catalog Vocabulary (DCAT) - Version 3. URL: https://w3c.github.io/dxwg/dcat/
Informative References
@@ -4366,552 +4708,991 @@
Het identifier veld moet string zijn. De array optie wordt binnenkort verwijderd. ↵
Het is onduidelijk ofunit
in een array moet worden meegegeven in het items attribuut alsveld
of in het hoofd object als. items. unitveld
. ↵. unit