diff --git a/CHANGELOG.md b/CHANGELOG.md
index ab3c905..7072e86 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
# Changelog
-## xxxx-xx-xx - dev
+## 2024-04-29 - 0.2.0
* [Codelist] Extend `plu:docType` to describe values from https://www.xrepository.de/details/urn:xoev-de:xplanverfahren:codeliste:verfahrensunterlagentyp
* [Website] Fix links to DCAT-AP.PLU documentation
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 2d49f89..ac11e48 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -1,7 +1,7 @@
FROM alpine:3.18.6
ENV LIGHTTPD_VERSION=1.4.73-r0
-ENV DCATAPPLU_VERSION=../drafts/0.0.1-draft-0.1
+ENV DCATAPPLU_VERSION=0.2.0
RUN addgroup -S --gid 1000 lighttpd \
&& adduser -S -G lighttpd --uid 1000 lighttpd
diff --git a/releases/0.2.0/DCAT-AP-PLU.JPG b/releases/0.2.0/DCAT-AP-PLU.JPG
new file mode 100644
index 0000000..179b3ee
Binary files /dev/null and b/releases/0.2.0/DCAT-AP-PLU.JPG differ
diff --git a/releases/0.2.0/README.md b/releases/0.2.0/README.md
new file mode 100644
index 0000000..7f4b30d
--- /dev/null
+++ b/releases/0.2.0/README.md
@@ -0,0 +1,12 @@
+# DCAT-AP.PLU 0.2.0
+
+This release of DCAT-AP.PLU consists of
+- an OpenAPI specification: [api-plu.yml](api-plu.yml)
+- a ReSpec documentation: [doc-plu.html](doc-plu.html)
+- with an accompanying `UML` diagram: [dcat-ap-plu.eapx](dcat-ap-plu.eapx) and [DCAT-AP-PLU.JPG](DCAT-AP-PLU.JPG)
+- a `SHACL` shapefile for validation purposes: [shacl/dcat-ap-plu_shacl-shapes.ttl](shacl/dcat-ap-plu_shacl-shapes.ttl)
+- example DCAT-AP.PLU `RDF/XML` files [examples/plu-example-full.xml](examples/plu-example-full.xml), [examples/plu-example-03.xml](examples/plu-example-03.xml)
+
+## Licence
+
+DCAT-AP.PLU 0.2.0 is distributed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
diff --git a/releases/0.2.0/api-plu.yml b/releases/0.2.0/api-plu.yml
new file mode 100644
index 0000000..8afb0b7
--- /dev/null
+++ b/releases/0.2.0/api-plu.yml
@@ -0,0 +1,1222 @@
+openapi: 3.0.3
+info:
+ title: PLU API
+ version: 0.2.0
+ description: This is the API for the Information System on Planned Land Use. Find information on different types of spatially-related plans and procedures for the production of spatially-related plans.
+ contact:
+ name: wemove digital solutions GmbH
+ url: https://www.wemove.com
+ email: contact@wemove.com
+ license:
+ name: CC BY 4.0
+ url: https://creativecommons.org/licenses/by/4.0/
+servers:
+ - url: '{baseUrl}/v1'
+ description: Development server
+tags:
+ - name: Capabilities
+ - name: Collections
+ - name: Records
+paths:
+ /:
+ get:
+ tags:
+ - Capabilities
+ summary: landing page
+ description: |-
+ The landing page provides links to the API definition, the conformance
+ statements and to the catalogs and datasets available.
+ operationId: getLandingPage
+ responses:
+ '200':
+ $ref: '#/components/responses/LandingPage'
+ '500':
+ $ref: '#/components/responses/500GenericError'
+ /conformance:
+ get:
+ tags:
+ - Capabilities
+ summary: information about specifications that this API conforms to
+ description: |-
+ A list of all conformance classes specified in a standard that the
+ server conforms to.
+ operationId: getConformanceDeclaration
+ responses:
+ '200':
+ $ref: '#/components/responses/ConformanceDeclaration'
+ '500':
+ $ref: '#/components/responses/500GenericError'
+ /version:
+ get:
+ tags:
+ - Capabilities
+ summary: version information
+ description:
+ The version number of the current API specification for the Information System on Planned Land Use.
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Version'
+ '500':
+ $ref: '#/components/responses/500GenericError'
+ /collections:
+ get:
+ tags:
+ - Collections
+ summary: the catalogs accessible through this API
+ description:
+ A list of all catalogs that are accessible through this API in DCAT-AP-PLU format via the specified file format
+ operationId: getCollections
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/collections'
+ application/rdf+xml:
+ schema:
+ allOf:
+ - $ref: '#/components/schemas/rdf'
+ - type: object
+ properties:
+ collections:
+ $ref: '#/components/schemas/collections'
+ '500':
+ $ref: '#/components/responses/500GenericError'
+ post:
+ tags:
+ - Collections
+ summary: post a new collection
+ description:
+ Add the collection specified in the request body
+ operationId: postCollection
+ requestBody:
+ required: true
+ content:
+ application/rdf+xml:
+ schema:
+ allOf:
+ - $ref: '#/components/schemas/rdf'
+ - $ref: '#/components/schemas/collection'
+ responses:
+ '200':
+ $ref: '#/components/responses/200Success'
+ '400':
+ $ref: '#/components/responses/400InvalidInput'
+ '500':
+ $ref: '#/components/responses/500GenericError'
+ /collections/{collectionId}:
+ get:
+ tags:
+ - Collections
+ summary: |-
+ describe the catalog with id `collectionId`
+ operationId: describeCollection
+ parameters:
+ - $ref: '#/components/parameters/collectionId'
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/collection'
+ application/rdf+xml:
+ schema:
+ allOf:
+ - $ref: '#/components/schemas/rdf'
+ - type: object
+ properties:
+ collection:
+ $ref: '#/components/schemas/collection'
+ '404':
+ $ref: '#/components/responses/404NotFound'
+ '415':
+ $ref: '#/components/responses/415UnsupportedMediaType'
+ '500':
+ $ref: '#/components/responses/500GenericError'
+ put:
+ tags:
+ - Collections
+ summary: overwrite an existing collection
+ description: |-
+ Update an existing collection with id `collectionId` by overwriting it.
+ Expects a complete DCAT-AP-PLU document as payload.
+ operationId: putCollection
+ parameters:
+ - $ref: '#/components/parameters/collectionId'
+ requestBody:
+ required: true
+ content:
+ application/rdf+xml:
+ schema:
+ allOf:
+ - $ref: '#/components/schemas/rdf'
+ - type: object
+ properties:
+ record:
+ $ref: '#/components/schemas/collection'
+ responses:
+ '200':
+ $ref: '#/components/responses/200Success'
+ '400':
+ $ref: '#/components/responses/400InvalidInput'
+ '404':
+ $ref: '#/components/responses/404NotFound'
+ '500':
+ $ref: '#/components/responses/500GenericError'
+ delete:
+ tags:
+ - Collections
+ summary: delete a single collection
+ description: |-
+ Delete the collection with id `collectionId`.
+ operationId: deleteCollection
+ parameters:
+ - $ref: '#/components/parameters/collectionId'
+ responses:
+ '200':
+ $ref: '#/components/responses/200Success'
+ '404':
+ $ref: '#/components/responses/404NotFound'
+ '500':
+ $ref: '#/components/responses/500GenericError'
+ # brauchen wir das noch: /collections/{collectionId}/sortables
+ # evtl. /collections/{collectionId}/queryables
+ /collections/{collectionId}/items:
+ get:
+ tags:
+ - Records
+ summary: fetch records
+ description: |-
+ Fetch records of the catalog with id `collectionId`.
+ The response is a document consisting of records in the catalog.
+ The records included in the response are determined by the server
+ based on the query parameters of the request. To support access to
+ larger collections without overloading the client, the API supports
+ paged access with links to the next page, if more records are selected
+ that the page size.
+ Different parameters can be used to select only a
+ subset of the records in the catalog.
+ The `bbox` parameter matches all records in the catalog that are not associated with a location, too. The
+ `datetime` parameter matches all records in the catalog that are
+ not associated with a time stamp or interval, too.
+ The `limit` parameter may be used to control the subset of the
+ selected records that should be returned in the response, the page size.
+ Each page may include information about the number of selected and
+ returned records (`numberMatched` and `numberReturned`) as well as
+ links to support paging (link relation `next`).
+ operationId: getRecords
+ parameters:
+ - $ref: '#/components/parameters/collectionId'
+ - $ref: '#/components/parameters/q'
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/rdf+xml:
+ schema:
+ allOf:
+ - $ref: '#/components/schemas/rdf'
+ - type: object
+ properties:
+ collections:
+ $ref: '#/components/schemas/collections'
+ records:
+ $ref: '#/components/schemas/records'
+ '404':
+ $ref: '#/components/responses/404NotFound'
+ '500':
+ $ref: '#/components/responses/500GenericError'
+ post:
+ tags:
+ - Records
+ summary: post a new record
+ description: |-
+ Post a record into the collection with id `collectionId`.
+ operationId: postRecord
+ parameters:
+ - $ref: '#/components/parameters/collectionId'
+ requestBody:
+ required: true
+ content:
+ application/rdf+xml:
+ schema:
+ allOf:
+ - $ref: '#/components/schemas/rdf'
+ - type: object
+ properties:
+ record:
+ $ref: '#/components/schemas/record'
+ responses:
+ '200':
+ $ref: '#/components/responses/200Success'
+ '400':
+ $ref: '#/components/responses/400InvalidInput'
+ '404':
+ $ref: '#/components/responses/404NotFound'
+ '500':
+ $ref: '#/components/responses/500GenericError'
+ /collections/{collectionId}/items/{recordId}:
+ get:
+ tags:
+ - Records
+ summary: fetch a single record
+ description: |-
+ Fetch the record with id `recordId` in the catalog
+ with id `collectionId`.
+ operationId: getRecord
+ parameters:
+ - $ref: '#/components/parameters/collectionId'
+ - $ref: '#/components/parameters/recordId'
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/rdf+xml:
+ schema:
+ allOf:
+ - $ref: '#/components/schemas/rdf'
+ - type: object
+ properties:
+ record:
+ $ref: '#/components/schemas/record'
+ '404':
+ $ref: '#/components/responses/404NotFound'
+ '500':
+ $ref: '#/components/responses/500GenericError'
+ put:
+ tags:
+ - Records
+ summary: overwrite an existing record
+ description: |-
+ Update an existing record with id `recordId` in the collection with id `collectionId` by overwriting it.
+ Expects a complete DCAT-AP-PLU document as payload.
+ operationId: putRecord
+ parameters:
+ - $ref: '#/components/parameters/collectionId'
+ - $ref: '#/components/parameters/recordId'
+ requestBody:
+ required: true
+ content:
+ application/rdf+xml:
+ schema:
+ allOf:
+ - $ref: '#/components/schemas/rdf'
+ - type: object
+ properties:
+ record:
+ $ref: '#/components/schemas/record'
+ responses:
+ '200':
+ $ref: '#/components/responses/200Success'
+ '400':
+ $ref: '#/components/responses/400InvalidInput'
+ '404':
+ $ref: '#/components/responses/404NotFound'
+ '500':
+ $ref: '#/components/responses/500GenericError'
+ delete:
+ tags:
+ - Records
+ summary: delete a single record
+ description: |-
+ Delete the record with id `recordId` in the catalog
+ with id `collectionId`.
+ operationId: deleteRecord
+ parameters:
+ - $ref: '#/components/parameters/collectionId'
+ - $ref: '#/components/parameters/recordId'
+ responses:
+ '200':
+ $ref: '#/components/responses/200Success'
+ '404':
+ $ref: '#/components/responses/404NotFound'
+ '500':
+ $ref: '#/components/responses/500GenericError'
+components:
+ parameters:
+ collectionId:
+ name: collectionId
+ in: path
+ description: local identifier of a catalog
+ required: true
+ schema:
+ type: string
+ example: hh
+ recordId:
+ name: recordId
+ in: path
+ description: local identifier of a spatial-related plan or procedure
+ required: true
+ schema:
+ type: string
+ example: f08a255e-2c11-49dd-bdf9-88a0dcbe2aa6
+ q:
+ name: q
+ in: query
+ description: The optional q parameter supports keyword searching. Only records whose text fields contain one or more of the specified search terms are selected. The specific set of text keys/fields/properties of a record to which the q operator is applied is up to the description of the server. Implementations should, however, apply the q operator to the title, description and keywords keys/fields/properties.
+ required: false
+ schema:
+ type: array
+ items:
+ type: string
+ minLength: 3
+ example: Hafen-City
+ schemas:
+ agent:
+ description: An agent; i.e. a person or an organisation
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ description: Name of the agent (e.g. full personal name or organisation name)
+ type: string
+ example: Behörde für beispielhafte Bebauungspläne
+ xml:
+ prefix: foaf
+ name: name
+ type:
+ description: Type of the agent
+ type: string
+ example: http://purl.org/adms/publishertype/LocalAuthority
+ format: uri
+ xml:
+ prefix: dct
+ name: type
+ xml:
+ prefix: foaf
+ name: Agent
+ collection:
+ description: |-
+ Information about the catalog with id `collectionId`.
+ The response contains a link to the items in the catalog
+ (path `/collections/{collectionId}/items`, link relation `items`)
+ as well as key information about the catalog. This information
+ includes:
+ * A local identifier for the catalog that is unique for the +
+ catalogue;
+ * An optional title and description for the catalog;
+ * An optional indicator about the type of the items in the catalog +
+ (the default value, if the indicator is not provided, is 'record').
+ type: object
+ required:
+ - description
+ - id
+ - publisher
+ - title
+ properties:
+ id:
+ description: identifier of the catalog used, for example, in URIs
+ type: string
+ example: hh
+ xml:
+ prefix: dct
+ name: identifier
+ title:
+ description: human readable title of the catalog
+ type: string
+ example: Stadt- und Landschaftsplanung Online (Planportal)
+ xml:
+ prefix: dct
+ name: title
+ description:
+ description: a description of the records in the catalog
+ type: string
+ xml:
+ prefix: dct
+ name: description
+ themeTaxonomy:
+ description: Schema for the classification of datasets listed in the catalog
+ type: string
+ example: TODO
+ xml:
+ prefix: dcat
+ name: themeTaxonomy
+ issued:
+ description: Date of creation of this collection.
+ type: string
+ format: date-time
+ example: '2022-06-07T12:22:11Z'
+ xml:
+ prefix: dct
+ name: issued
+ language:
+ description: The language of the collection and its records.
+ type: string
+ example: german
+ xml:
+ prefix: dct
+ name: language
+ modified:
+ description: The most recent date on which the collection was changed.
+ type: string
+ format: date-time
+ example: '2022-06-07T12:22:11Z'
+ xml:
+ prefix: dct
+ name: modified
+ homepage:
+ description: A website with additional information about this collection.
+ type: string
+ format: uri
+ example: https://portal.diplanung.de/my-catalog
+ xml:
+ prefix: foaf
+ name: homepage
+ publisher:
+ description: The publisher of this collection
+ type: object
+ properties:
+ agent:
+ $ref: '#/components/schemas/agent'
+ xml:
+ prefix: dct
+ name: publisher
+ xml:
+ prefix: dcat
+ name: Catalog
+ collections:
+ description: |-
+ The catalogs shared by this API.
+ This resource provides information about and access to these catalogs.
+ The response contains the list of catalogs (itemType=record).
+ For each catalog, a link to the items in the catalog
+ (path `/collections/{collectionId}/items`, link relation `items`) as
+ well as key information about the catalog. This information
+ includes...
+ * A local identifier for the catalog that is unique for the +
+ catalogue;
+ * An optional title and description for the catalog;
+ * An optional extent that can be used to provide an indication of the +
+ spatial and temporal extent of the catalog - typically derived +
+ from the data;
+ * An optional indicator about the type of the items in the catalog +
+ (the default value, if the indicator is not provided, is 'record').
+ type: array
+ items:
+ $ref: '#/components/schemas/collection'
+ confClasses:
+ type: object
+ required:
+ - conformsTo
+ properties:
+ conformsTo:
+ type: array
+ items:
+ type: string
+ distribution:
+ type: object
+ required:
+ - accessURL
+ properties:
+ accessURL:
+ description: URL of the resource providing access to a distribution of the dataset (e.g. landing page)
+ type: string
+ format: uri
+ example: https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf
+ xml:
+ prefix: dcat
+ name: accessURL
+ downloadURL:
+ description: URL of a resource that provides a download of a distribution of the dataset
+ type: string
+ format: uri
+ example: https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf
+ xml:
+ prefix: dcat
+ name: downloadURL
+ description:
+ description: Description of the distribution as free text
+ type: string
+ example: Test-Dokument
+ xml:
+ prefix: dct
+ name: description
+ docType:
+ description: Type of document in relation to spatial planning or participation procedures
+ type: string
+ enum: [announcement, explanatoryReport, planDrawing, participationURL, procedureURL, xplanArchive, xplanGML, unknown]
+ example: announcement
+ xml:
+ prefix: plu
+ name: docType
+ format:
+ description: Format in which the distribution is available
+ type: string
+ example: application/pdf
+ xml:
+ prefix: dct
+ name: format
+ issued:
+ description: Date of creation of this distribution
+ type: string
+ format: date-time
+ example: '2023-04-04T00:00:00.000Z'
+ xml:
+ prefix: dct
+ name: issued
+ mapLayerNames:
+ description: Comma-separated list of layer names, e.g. in case this distribution represents a WMS
+ type: string
+ example: map_layer_name,some_other_layer_name
+ xml:
+ prefix: plu
+ name: mapLayerNames
+ modified:
+ description: The most recent date on which the distribution was changed
+ type: string
+ format: date-time
+ example: '2023-04-04T00:00:00.000Z'
+ xml:
+ prefix: dct
+ name: modified
+ title:
+ description: Title of the distribution
+ type: string
+ example: Test-Dokument
+ xml:
+ prefix: dct
+ name: title
+ temporal:
+ description: Period of time during which the distribution is available or time from or until which the distribution is available
+ type: object
+ properties:
+ periodOfTime:
+ $ref: '#/components/schemas/period'
+ xml:
+ prefix: dct
+ name: temporal
+ xml:
+ prefix: dcat
+ name: Distribution
+ Error:
+ description: An error that is returned by the API
+ properties:
+ msg:
+ description: The error message
+ type: string
+ example: A detailed error message
+ landingPage:
+ type: object
+ required:
+ - links
+ properties:
+ title:
+ type: string
+ description:
+ type: string
+ location:
+ type: object
+ example: >
+
+
+ {"type": "LineString", "coordinates": [[54.9, 14.5], [55.4, 15.3]]}
+
+
+ {"type": "Polygon", "coordinates": [[[55.22, 14.78], [55.2, 14.96], [55.14, 15.01], [55.124, 14.91], [55.102, 14.73]]]}
+
+
+ {"type": "Point", "coordinates": [55.07, 14.92] }
+
+ Bornholm
+
+ properties:
+ bbox:
+ description: The bounding box of the dataset
+ type: string
+ # not possible with openapi as of April 2023
+ # type: object
+ # properties:
+ # typo:
+ # type: string
+ # example: https://www.iana.org/assignments/media-types/application/vnd.geo+json
+ # xml:
+ # attribute: true
+ # prefix: rdf
+ # name: datatype
+ example: '{"type": "LineString", "coordinates": [[54.9, 14.5], [55.4, 15.3]]}'
+ xml:
+ prefix: dcat
+ name: bbox
+ geometry:
+ description: Describes the geometry of the dataset
+ type: string
+ # not possible with openapi as of April 2023
+ # type: object
+ # properties:
+ # typo:
+ # type: string
+ # example: https://www.iana.org/assignments/media-types/application/vnd.geo+json
+ # xml:
+ # attribute: true
+ # prefix: rdf
+ # name: datatype
+ example: '{"type": "Polygon", "coordinates": [[55.22, 14.78], [55.2, 14.96], [55.14, 15.01], [55.124, 14.91], [55.102, 14.73]]]}'
+ xml:
+ prefix: locn
+ name: geometry
+ centroid:
+ description: The geographic center (centroid) of the dataset's geometry
+ type: string
+ # not possible with openapi as of April 2023
+ # type: object
+ # properties:
+ # typo:
+ # type: string
+ # example: https://www.iana.org/assignments/media-types/application/vnd.geo+json
+ # xml:
+ # attribute: true
+ # prefix: rdf
+ # name: datatype
+ example: {"type": "Point", "coordinates": [55.07, 14.92] }
+ xml:
+ prefix: dcat
+ name: centroid
+ geographicName:
+ description: Preferred name of the location
+ type: string
+ example: Bornholm
+ xml:
+ prefix: locn
+ name: geographicName
+ xml:
+ prefix: dct
+ name: Location
+ organization:
+ type: object
+ required:
+ - fn
+ properties:
+ fn:
+ type: string
+ example: Behörde für Wasserstraßen (BW) Beispielstadt
+ xml:
+ prefix: vcard
+ name: fn
+ countryName:
+ type: string
+ example: Deutschland
+ xml:
+ prefix: vcard
+ name: hasCountryName
+ locality:
+ type: string
+ example: Beispielstadt
+ xml:
+ prefix: vcard
+ name: hasLocality
+ postalCode:
+ type: string
+ example: 12345
+ xml:
+ prefix: vcard
+ name: hasPostalCode
+ region:
+ type: string
+ example: Hessen
+ xml:
+ prefix: vcard
+ name: hasRegion
+ streetAddress:
+ type: string
+ example: Beispielstraße 42
+ xml:
+ prefix: vcard
+ name: hasStreetAddress
+ email:
+ type: string
+ example: poststelle@bw.beispielstadt.de
+ xml:
+ prefix: vcard
+ name: hasEmail
+ telephone:
+ type: string
+ example: 01234 56789
+ xml:
+ prefix: vcard
+ name: hasTelephone
+ uid:
+ type: string
+ example: 62B5B8AD-DC4B-11D2-9A86-080000507261
+ xml:
+ prefix: vcard
+ name: hasUID
+ url:
+ type: string
+ format: uri
+ example: https://wassserstrassen.beispielstadt.de
+ xml:
+ prefix: vcard
+ name: hasURL
+ xml:
+ prefix: vcard
+ name: Organization
+ period:
+ type: object
+ properties:
+ startDate:
+ description: Start of a time period
+ type: string
+ format: date-time
+ example: 2023-06-30
+ xml:
+ prefix: dcat
+ name: startDate
+ endDate:
+ description: End of a time period
+ type: string
+ format: date-time
+ example: 2023-07-31
+ xml:
+ prefix: dcat
+ name: endDate
+ xml:
+ prefix: dct
+ name: PeriodOfTime
+ person:
+ type: object
+ required:
+ - fn
+ properties:
+ fn:
+ type: string
+ xml:
+ prefix: vcard
+ name: fn
+ countryName:
+ type: string
+ xml:
+ prefix: vcard
+ name: hasCountryName
+ locality:
+ type: string
+ xml:
+ prefix: vcard
+ name: hasLocality
+ postalCode:
+ type: string
+ xml:
+ prefix: vcard
+ name: hasPostalCode
+ region:
+ type: string
+ xml:
+ prefix: vcard
+ name: hasRegion
+ streetAddress:
+ type: string
+ xml:
+ prefix: vcard
+ name: hasStreetAddress
+ email:
+ type: string
+ xml:
+ prefix: vcard
+ name: hasEmail
+ telephone:
+ type: string
+ xml:
+ prefix: vcard
+ name: hasTelephone
+ uid:
+ type: string
+ xml:
+ prefix: vcard
+ name: hasUID
+ url:
+ type: string
+ format: uri
+ xml:
+ prefix: vcard
+ name: hasURL
+ xml:
+ prefix: vcard
+ name: Person
+ processStep:
+ type: object
+ required:
+ - processStepType
+ properties:
+ id:
+ description: Unique identifier of the process step
+ type: string
+ example: ProcStep-0123
+ xml:
+ prefix: dct
+ name: identifier
+ passNumber:
+ description: Pass number of the process step (e.g. in participation procedures)
+ type: string
+ example: 2
+ xml:
+ prefix: plu
+ name: passNumber
+ processStepType:
+ description: Type of the process step for spatial planning and participation procedures
+ type: string
+ enum: [earlyInvolveAuth, earlyPublicPart, publicAgencies, publicDisclosure, internal, completed, unknown]
+ example: earlyInvolveAuth
+ xml:
+ prefix: plu
+ name: processStepType
+ temporal:
+ description: Period in which the process step takes place
+ type: object
+ properties:
+ periodOfTime:
+ $ref: '#/components/schemas/period'
+ xml:
+ prefix: dct
+ name: temporal
+ title:
+ description: Title of the processstep
+ type: string
+ example: Titel des Verfahrensschrittes
+ xml:
+ prefix: dct
+ name: title
+ distribution:
+ description: A distribution referenced by the process step
+ type: array
+ items:
+ properties:
+ distribution:
+ $ref: '#/components/schemas/distribution'
+ xml:
+ prefix: dcat
+ name: distribution
+ xml:
+ prefix: plu
+ name: ProcessStep
+ rdf:
+ description: The RDF root
+ type: object
+ properties:
+ namespace-adms:
+ type: string
+ example: http://www.w3.org/ns/adms#
+ xml:
+ name: xmlns:adms
+ attribute: true
+ namespace-dcat:
+ type: string
+ example: http://www.w3.org/ns/dcat#
+ xml:
+ name: xmlns:dcat
+ attribute: true
+ namespace-dcatde:
+ type: string
+ example: http://dcat-ap.de/def/dcatde/
+ xml:
+ name: xmlns:dcatde
+ attribute: true
+ namespace-dct:
+ type: string
+ example: http://purl.org/dc/terms/
+ xml:
+ name: xmlns:dct
+ attribute: true
+ namespace-foaf:
+ type: string
+ example: http://xmlns.com/foaf/0.1/
+ xml:
+ name: xmlns:foaf
+ attribute: true
+ namespace-gml:
+ type: string
+ example: http://www.opengis.net/gml/3.2#
+ xml:
+ name: xmlns:gml
+ attribute: true
+ namespace-locn:
+ type: string
+ example: http://www.w3.org/ns/locn#
+ xml:
+ name: xmlns:locn
+ attribute: true
+ namespace-plu:
+ type: string
+ example: http://specs.diplanung.de/plu/
+ xml:
+ name: xmlns:plu
+ attribute: true
+ namespace-vcard:
+ type: string
+ example: http://www.w3.org/2006/vcard/ns#
+ xml:
+ name: xmlns:vcard
+ attribute: true
+ namespace-spdx:
+ type: string
+ example: http://spdx.org/rdf/terms#
+ xml:
+ name: xmlns:spdx
+ attribute: true
+ xml:
+ namespace: http://www.w3.org/1999/02/22-rdf-syntax-ns#
+ prefix: rdf
+ name: RDF
+ records:
+ type: array
+ items:
+ $ref: '#/components/schemas/record'
+ record:
+ type: object
+ required:
+ - contact
+ - description
+ - id
+ - planState
+ - procedureState
+ - publisher
+ - spatial
+ - title
+ properties:
+ admsId:
+ description: |-
+ A global, catalog-agnostic identifier comprised of
+ the ID of the data management authority and the ID of the dataset
+ type: string
+ example: https://specs.diplanung.de/resource/authority#hh/1234-567890abd-9876
+ xml:
+ prefix: adms
+ name: identifier
+ planName:
+ description: Name of the spatial plan
+ type: string
+ example: HafenCity14
+ xml:
+ prefix: plu
+ name: planName
+ planType:
+ description: Type of the spatial plan
+ type: string
+ enum: [developmentPlan, landUsePlan, urbanPlanningStatutes, specialUrbanPlanningLaw, landscapePlanning, spatialPlan, spatialPlanningProcedure, planApprovalProcedure, other, unknown]
+ example: developmentPlan
+ xml:
+ prefix: plu
+ name: planType
+ planTypeFine:
+ description: Detailed type of the spatial plan
+ type: string
+ example: 6_3_EinfacherBPlan
+ xml:
+ prefix: plu
+ name: planTypeFine
+ procedureType:
+ description: Type of the procedure for the establishment of the spatial plan
+ type: string
+ enum: [regular, simplified, innerDevPlan, outdoorArea, revision, partialExtrapolation, newPreparation, completeExtrapolation, update, newAnnouncement, unknown]
+ example: regular
+ xml:
+ prefix: plu
+ name: procedureType
+ contact:
+ description: Contact for the dataset. Use of vCard is recommended
+ type: object
+ properties:
+ organization:
+ $ref: '#/components/schemas/organization'
+ xml:
+ prefix: dcat
+ name: contactPoint
+ description:
+ description: A description of the dataset as free text
+ type: string
+ example: Eine Beschreibung des Datensatzes
+ xml:
+ prefix: dct
+ name: description
+ id:
+ description: Unique identifier of the record in the context of the respective catalog
+ type: string
+ example: e7ced9a0-1076-4aee-af39-e6a2e7ff30b2
+ xml:
+ prefix: dct
+ name: identifier
+ title:
+ description: Title of the dataset
+ type: string
+ example: Titel des Datensatzes
+ xml:
+ prefix: dct
+ name: title
+ planState:
+ description: Status of the plan
+ type: string
+ enum: [inPreparation, fixed, unknown]
+ example: inPreparation
+ xml:
+ prefix: plu
+ name: planState
+ procedureState:
+ description: Status of the procedure
+ type: string
+ enum: [planned, ongoing, completed, unknown]
+ example: ongoing
+ xml:
+ prefix: plu
+ name: procedureState
+ issued:
+ description: Date of issue / publication of the dataset
+ type: string
+ format: date-time
+ example: 2023-01-01T00:00:00.000Z
+ xml:
+ prefix: dct
+ name: issued
+ modified:
+ description: Date of the last update or modification of the dataset
+ type: string
+ format: date-time
+ example: 2023-03-01T00:00:00.000Z
+ xml:
+ prefix: dct
+ name: modified
+ relation:
+ description: Reference to another dataset
+ type: string
+ example: TODO
+ xml:
+ prefix: dct
+ name: relation
+ procedurePeriod:
+ description: Period of the procedure
+ type: object
+ properties:
+ periodOfTime:
+ $ref: '#/components/schemas/period'
+ xml:
+ prefix: plu
+ name: procedurePeriod
+ developmentFreezePeriod:
+ description: Period of a development freeze
+ type: object
+ properties:
+ periodOfTime:
+ $ref: '#/components/schemas/period'
+ xml:
+ prefix: plu
+ name: developmentFreezePeriod
+ publisher:
+ description: The publisher of the dataset
+ type: object
+ properties:
+ agent:
+ $ref: '#/components/schemas/agent'
+ xml:
+ prefix: dct
+ name: publisher
+ maintainer:
+ description: Administrator of the dataset
+ type: array
+ items:
+ properties:
+ agent:
+ $ref: '#/components/schemas/agent'
+ xml:
+ prefix: dcatde
+ name: maintainer
+ contributor:
+ description: Contributor to the dataset
+ type: array
+ items:
+ properties:
+ agent:
+ $ref: '#/components/schemas/agent'
+ xml:
+ prefix: dct
+ name: constributor
+ spatial:
+ description: Spatial reference of the dataset
+ type: object
+ properties:
+ location:
+ $ref: '#/components/schemas/location'
+ xml:
+ prefix: dct
+ name: spatial
+ distribution:
+ description: A distribution referenced by the dataset
+ type: array
+ items:
+ properties:
+ distribution:
+ $ref: '#/components/schemas/distribution'
+ xml:
+ prefix: dcat
+ name: distribution
+ processStep:
+ description: A process step of the process
+ type: array
+ items:
+ properties:
+ distribution:
+ $ref: '#/components/schemas/processStep'
+ xml:
+ prefix: plu
+ name: processStep
+ xml:
+ prefix: dcat
+ name: Dataset
+ Version:
+ type: object
+ description: A version
+ properties:
+ build:
+ type: object
+ description: A build description
+ properties:
+ version:
+ type: string
+ date:
+ type: string
+ commit_id:
+ type: string
+ required:
+ - version
+ - date
+ responses:
+ ConformanceDeclaration:
+ description: |-
+ The URIs of all conformance classes supported by the server. To support "generic" clients that want to access multiple OGC API Records implementations - and not "just" a specific API / server, the server declares the conformance classes it implements and conforms to.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/confClasses'
+ text/html:
+ schema:
+ type: string
+ LandingPage:
+ description: |-
+ The OGC API landing page for the PLU metadata information system. The landing page provides links to the API definition and the Record
+ Collections (path `/collections`), the conformance declaration (path '/conformance') and other resources in the API.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/landingPage'
+ text/html:
+ schema:
+ type: string
+ 200Success:
+ description: Successful operation
+ 400InvalidInput:
+ description: Invalid input
+ 401UnauthorizedRequest:
+ description: Unauthorized request
+ 404NotFound:
+ description: Not found
+ 415UnsupportedMediaType:
+ description: Unsupported media type
+ 500GenericError:
+ description: Unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
\ No newline at end of file
diff --git a/releases/0.2.0/codelists/authority.xml b/releases/0.2.0/codelists/authority.xml
new file mode 100644
index 0000000..f28b2c6
--- /dev/null
+++ b/releases/0.2.0/codelists/authority.xml
@@ -0,0 +1,150 @@
+
+
+ 1.0
+
+
+Zur kodierten Angabe der Bundesländer als datenhaltende Stellen.
+
+
+
+ Liste der datenhaltenden Stellen
+ Liste der datenhaltenden Stellen
+ List of authorities
+ https://specs.diplanung.de/resource/authority
+
+
+ bw
+
+
+ Baden-Württemberg
+ Baden-Württemberg
+
+
+
+ by
+
+
+ Bayern (Freistaat)
+ Bavaria (Free State)
+
+
+
+ be
+
+
+ Berlin
+ Berlin
+
+
+
+ bb
+
+
+ Brandenburg
+ Brandenburg
+
+
+
+ hb
+
+
+ Bremen (Hansestadt)
+ Bremen (Hanseatic City)
+
+
+
+ hh
+
+
+ Hamburg (Hansestadt)
+ Hamburg (Hanseatic City)
+
+
+
+ he
+
+
+ Hessen
+ Hesse
+
+
+
+ mv
+
+
+ Mecklenburg-Vorpommern
+ Mecklenburg-Western Pomerania
+
+
+
+ ni
+
+
+ Niedersachsen
+ Lower Saxony
+
+
+
+ nw
+
+
+ Nordrhein-Westfalen
+ North Rhine-Westfalia
+
+
+
+ rp
+
+
+ Rheinland-Pfalz
+ Rhineland-Palatinate
+
+
+
+ sl
+
+
+ Saarland
+ Saarland
+
+
+
+ sn
+
+
+ Sachsen (Freistaat)
+ Saxony (Free State)
+
+
+
+ st
+
+
+ Sachsen-Anhalt
+ Saxony-Anhalt
+
+
+
+ sh
+
+
+ Schleswig-Holstein
+ Schleswig-Holstein
+
+
+
+ th
+
+
+ Thüringen (Freistaat)
+ Thuringia (Free State)
+
+
+
\ No newline at end of file
diff --git a/releases/0.2.0/codelists/docType.xml b/releases/0.2.0/codelists/docType.xml
new file mode 100644
index 0000000..d59baaa
--- /dev/null
+++ b/releases/0.2.0/codelists/docType.xml
@@ -0,0 +1,302 @@
+
+
+ 1.0
+
+
+Zur kodierten Angabe der Art eines Dokuments:
+
+
+
+ Liste der Arten von Dokumenten
+ Liste der Arten von Dokumenten
+ List of document types
+ https://specs.diplanung.de/resource/docType
+
+
+ announcement
+
+
+ Auslegungsinformationen
+ announcement documentation
+
+
+
+ explanatoryReport
+
+
+ Erläuterungsbericht
+ explanatory report
+
+
+
+ planDrawing
+
+
+ Planzeichnung
+ plan drawing
+
+
+
+ participationURL
+
+
+ Beteiligungs-URL
+ participation URL
+
+
+
+ procedureURL
+
+
+ Planverfahrens-URL
+ procedure URL
+
+
+
+ xplanArchive
+
+
+ XPlan-Archive
+ XPlan archive
+
+
+
+ xplanGML
+
+
+ XPlan-GML
+ XPlan GML
+
+
+
+ functionalPlan
+
+
+ Funktionsplan
+ functional plan
+
+
+
+ costAssumptionContract
+
+
+ Kostenübernahmevertrag / Vorvertrag
+ cost assumption contract
+
+
+
+ urbanDevelopmentContract
+
+
+ Städtebaulicher Vertrag
+ urban development contract
+
+
+
+ implementationContract
+
+
+ Durchführungsvertrag
+ implementation contract
+
+
+
+ propertyDevelopmentContract
+
+
+ Erschließungsvertrag
+ property development contract
+
+
+
+ contract
+
+
+ Vertrag
+ contract
+
+
+
+ expertReport
+
+
+ Gutachten
+ expert report
+
+
+
+ roughCoordinationPaper
+
+
+ Grobabstimmungspapier
+ rough coordination paper
+
+
+
+ supplementaryDocument
+
+
+ ergänzende Unterlage
+ supplementary document
+
+
+
+ ordinanceDesignation
+
+
+ Verordnung / Festsetzung
+ ordinance / designation
+
+
+
+ coverLetter
+
+
+ Anschreiben
+ cover letter
+
+
+
+ coverLetterParticipationProcedure
+
+
+ Anschreiben Beteiligungsverfahren
+ cover letter participation procedure
+
+
+
+ transcript
+
+
+ Niederschrift
+ transcript
+
+
+
+ summaryStatement
+
+
+ zusammenfassende Erklärung
+ summary statement
+
+
+
+ finalNotice
+
+
+ Schlussmitteilung
+ final notice
+
+
+
+ preliminaryPlanningApproval
+
+
+ Aufstellungsbeschluss
+ preliminary planning approval by resolution
+
+
+
+ decisionForPublicDisplay
+
+
+ Auslegungsbeschluss
+ decision for public display
+
+
+
+ declaratoryDecision
+
+
+ (Plan) Feststellungsbeschluss
+ declaratory decision
+
+
+
+ resolutionOnRevocation
+
+
+ Aufhebungsbeschluss
+ resolution on revocation
+
+
+
+ statement
+
+
+ Stellungnahme
+ statement
+
+
+
+ publication
+
+
+ Veröffentlichung
+ publication
+
+
+
+ printedMatter
+
+
+ Drucksache
+ printedMatter
+
+
+
+ presentation
+
+
+ Präsentation
+ presentation
+
+
+
+ substantiation
+
+
+ Begründung
+ substantiation
+
+
+
+ internalMemo
+
+
+ interner Vermerk
+ internal memo
+
+
+
+ meetingDocuments
+
+
+ Sitzungsunterlagen
+ meeting documents
+
+
+
+ otherDocuments
+
+
+ Sonstige Unterlage
+ other documents
+
+
+
+ unknown
+
+
+ unbekannt
+ unknown
+
+
+
\ No newline at end of file
diff --git a/releases/0.2.0/codelists/planState.xml b/releases/0.2.0/codelists/planState.xml
new file mode 100644
index 0000000..914d293
--- /dev/null
+++ b/releases/0.2.0/codelists/planState.xml
@@ -0,0 +1,46 @@
+
+
+ 1.0
+
+
+Zur kodierten Angabe des Status eines raumbezogenen Planwerks sind folgende Optionen möglich:
+
+
+
+ Liste der Stati eines raumbezogenen Planwerks
+ Liste der Stati eines raumbezogenen Planwerks
+ List of states of a spatial plan
+ https://specs.diplanung.de/resource/planState
+
+
+ inPreparation
+
+
+ in Aufstellung
+ in preparation
+
+
+
+ fixed
+
+
+ festgesetzt
+ fixed
+
+
+
+ unknown
+
+
+ unbekannt
+ unknown
+
+
+
\ No newline at end of file
diff --git a/releases/0.2.0/codelists/planType.xml b/releases/0.2.0/codelists/planType.xml
new file mode 100644
index 0000000..a49f73a
--- /dev/null
+++ b/releases/0.2.0/codelists/planType.xml
@@ -0,0 +1,102 @@
+
+
+ 1.0
+
+
+Zur kodierten Angabe der Art des raumbezogenen Planwerks:
+
+
+
+ Liste der Arten raumbezogener Planwerke
+ Liste der Arten raumbezogener Planwerke
+ List of types of spatial plans
+ https://specs.diplanung.de/resource/planType
+
+
+ developmentPlan
+
+
+ Bebauungsplan
+ Development plan
+
+
+
+ landUsePlan
+
+
+ Flaechennutzungsplan
+ Land use plan
+
+
+
+ urbanPlanningStatutes
+
+
+ Städtebauliche Satzungen
+ Urban planning statutes
+
+
+
+ specialUrbanPlanningLaw
+
+
+ Planwerke besonderes Städtebaurecht
+ Plans under special urban planning law
+
+
+
+ landscapePlanning
+
+
+ Planwerke der Landschaftsplanung
+ Landscape planning
+
+
+
+ spatialPlan
+
+
+ Raumordnungsplan
+ Spatial development plan
+
+
+
+ spatialPlanningProcedure
+
+
+ Raumordnungsverfahren
+ Spatial planning procedure
+
+
+
+ planApprovalProcedure
+
+
+ Planfeststellungsverfahren
+ Plan approval procedure
+
+
+
+ other
+
+
+ Sonstige raumbezogene Planwerke
+ Other spatial plans
+
+
+
+ unknown
+
+
+ unbekannt
+ unknown
+
+
+
\ No newline at end of file
diff --git a/releases/0.2.0/codelists/procedureState.xml b/releases/0.2.0/codelists/procedureState.xml
new file mode 100644
index 0000000..4bacbbf
--- /dev/null
+++ b/releases/0.2.0/codelists/procedureState.xml
@@ -0,0 +1,54 @@
+
+
+ 1.0
+
+
+Zur kodierten Angabe des übergeordneten Status eines Verfahrens sind folgende Optionen möglich:
+
+
+
+ Liste der übergeordneten Stati eines Verfahrens
+ Liste der übergeordneten Stati eines Verfahrens
+ List of superordinate states of a procedure
+ https://specs.diplanung.de/resource/procedureState
+
+
+ planned
+
+
+ geplant
+ planned
+
+
+
+ ongoing
+
+
+ laufend
+ ongoing
+
+
+
+ completed
+
+
+ abgeschlossen
+ completed
+
+
+
+ unknown
+
+
+ unbekannt
+ unknown
+
+
+
\ No newline at end of file
diff --git a/releases/0.2.0/codelists/procedureType.xml b/releases/0.2.0/codelists/procedureType.xml
new file mode 100644
index 0000000..4d515a5
--- /dev/null
+++ b/releases/0.2.0/codelists/procedureType.xml
@@ -0,0 +1,110 @@
+
+
+ 1.0
+
+
+Zur kodierten Angabe der jeweiligen Verfahrensart bei der Aufstellung raumbezogener Planwerke sind folgende Optionen möglich:
+
+
+
+ Liste der Verfahrensarten bei der Aufstellung raumbezogener Planwerke
+ Liste der Verfahrensarten bei der Aufstellung raumbezogener Planwerke
+ List of types of procedures for the preparation of spatial plans
+ https://specs.diplanung.de/resource/procedureType
+
+
+ regular
+
+
+ normales Verfahren
+ regular procedure
+
+
+
+ simplified
+
+
+ vereinfachtes Verfahren
+ simplified procedure
+
+
+
+ innerDevPlan
+
+
+ Bebauungsplan der Innenentwicklung
+ Inner development plan
+
+
+
+ outdoorArea
+
+
+ Einbeziehung von Außenbereichsflächen in das beschleunigte Verfahren
+ Inclusion of outdoor areas in the accelerated process
+
+
+
+ revision
+
+
+ Änderung
+ Revision
+
+
+
+ partialExtrapolation
+
+
+ Teilfortschreibung
+ Partial extrapolation
+
+
+
+ newPreparation
+
+
+ Neuaufstellung
+ New preparation
+
+
+
+ completeExtrapolation
+
+
+ Gesamtfortschreibung
+ Complete extrapolation
+
+
+
+ update
+
+
+ Aktualisierung
+ Update
+
+
+
+ newAnnouncement
+
+
+ Neubekanntmachung
+ New announcement
+
+
+
+ unknown
+
+
+ unbekannt
+ unknown
+
+
+
\ No newline at end of file
diff --git a/releases/0.2.0/codelists/processStepType.xml b/releases/0.2.0/codelists/processStepType.xml
new file mode 100644
index 0000000..a653392
--- /dev/null
+++ b/releases/0.2.0/codelists/processStepType.xml
@@ -0,0 +1,78 @@
+
+
+ 1.0
+
+
+Zur kodierten Angabe der Art des Verfahrensschrittes:
+
+
+
+ Liste der Arten von Verfahrensschritten
+ Liste der Arten von Verfahrensschritten
+ List of types of process steps
+ https://specs.diplanung.de/resource/processStepType
+
+
+ earlyInvolveAuth
+
+
+ Frühzeitige Behördenbeteiligung
+ Early involvement of the authorities
+
+
+
+ earlyPublicPart
+
+
+ Frühzeitige Öffentlichkeitsbeteiligung
+ Early public participation
+
+
+
+ publicAgencies
+
+
+ Beteiligung der Träger öffentlicher Belange
+ Participation of public agencies
+
+
+
+ publicDisclosure
+
+
+ Öffentliche Auslegung
+ Public disclosure
+
+
+
+ interal
+
+
+ Interne Bearbeitung
+ Internal processing
+
+
+
+ completed
+
+
+ abgeschlossen
+ completed
+
+
+
+ unknown
+
+
+ unbekannt
+ unknown
+
+
+
\ No newline at end of file
diff --git a/releases/0.2.0/dcat-ap-plu.eapx b/releases/0.2.0/dcat-ap-plu.eapx
new file mode 100644
index 0000000..6fc230a
Binary files /dev/null and b/releases/0.2.0/dcat-ap-plu.eapx differ
diff --git a/releases/0.2.0/doc-plu.html b/releases/0.2.0/doc-plu.html
new file mode 100644
index 0000000..b82ebf6
--- /dev/null
+++ b/releases/0.2.0/doc-plu.html
@@ -0,0 +1,1168 @@
+
+
+
+
+ Beschreibung Metadatenmodell
+
+
+
+
+
+
+
+
+
+
+
+
+ Dieses Dokument ist ein Entwurf einer potentiellen Spezifikation zur Beschreibung von Metadaten raumbezogener Planwerke sowie Beteiligungsverfahren zur Aufstellung raumbezogener Planwerke.
+
+
+
+
+
+ Definitionen und Terminologie
+
+
+
+ Verwendete Spezifikationen
+
+ Das vorliegende Metadatenmodell baut auf das europäische Metadatenaustauschschema DCAT-AP auf und erweitert dieses mit einzelnen Klassen und Eigenschaften. In DCAT bzw. DCAT-AP wird auf Klassen und Eigenschaften vieler anderer Vokabulare zurückgegriffen, insbesondere Dublin Core DCTERMS. Weiterhin wurde für den deutschen Nutzungskontext die standardkonforme Anpassung DCAT-AP.de entwickelt. Diese hat den Zweck des Austauschs von Metadaten offener Verwaltungsdaten für deutsche Open Data-Portale (https://www.dcat-ap.de). Im vorliegenden Modell wird, soweit vorhanden, auf Klassen und Eigenschaften zurückgegriffen, wie sie in der aktuellen Spezifikation DCAT-AP.de definiert sind.
+ Namensräume und Präfixe auf die im vorliegenden Datenmodell zurückgegriffen wird, sind in der folgenden Tabelle aufgelistet.
+
+ Präfix Namensraum
+
+ adms
https://www.w3.org/ns/adms#
+ dcat
http://www.w3.org/ns/dcat#
+ dct
http://purl.org/dc/terms/
+ dctype
http://purl.org/dc/dcmitype/
+ foaf
http://xmlns.com/foaf/0.1/
+ locn
http://www.w3.org/ns/locn#
+ plu
http://specs.diplanung.de/plu/
+ rdf
http://www.w3.org/1999/02/22-rdf-syntax-ns#
+ rdfs
http://www.w3.org/2000/01/rdf-schema#
+ skos
http://www.w3.org/2004/02/skos/core#
+ time
http://www.w3.org/2006/time#
+ vcard
http://www.w3.org/2006/vcard/ns#
+ xsd
http://www.w3.org/2001/XMLSchema#
+
+
+
+
+
+
+ UML-Diagramm
+
+ Das UML-Diagramm des DCAT-PLU-Datenmodells.
+
+
+ UML-Diagramm der verwendeten DCAT-AP-Klassen sowie der DCAT-AP.PLU Erweiterungen
+
+
+
+
+ Spezifikation des Vokabulars
+
+
+ Klasse: Katalog
+
+ URI der Klasse: dcat:Catalog
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Eine Sammlung oder Quelle, welche die beschriebenen Datensätze, Datenservices oder Kataloge zur Verfügung stellt
+ Anwendungshinweis: Ein web-basierter Datenkatalog wird i.d.R. durch eine Instanz dieser Klasse repräsentiert.
+
+
+
+
+ Eigenschaft: Titel
+
+ URI: dct:title
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Name / Bezeichnung des Katalogs, Freitext
+ Typ/Wertebereich: rdfs:Literal
+ Anwendungshinweis: Diese Eigenschaft bezeichnet den einem Katalog zugewiesenen Titel. Sie kann für parallele Sprachversionen des Katalogtitels wiederholt werden.
+
+
+
+
+ Eigenschaft: Beschreibung
+
+ URI: dct:description
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Name / Bezeichnung des Katalogs, Freitext
+ Typ/Wertebereich: rdfs:Literal
+ Anwendungshinweis: Diese Eigenschaft enthält eine Beschreibung des Kataloges als Freitext. Sie kann für parallel existierende Sprachversionen der Katalogbeschreibung wiederholt werden.
+
+
+
+
+
+ Eigenschaft: Herausgeber
+
+ URI: dct:publisher
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Diejenige Stelle / Organisation, die für die Bereitstellung des Katalogs verantwortlich ist.
+ Typ/Wertebereich: foaf:Agent
+ Anwendungshinweis: Es wird empfohlen, Ressourcen vom Typ foaf:Agent
+ für diese Eigenschaft zu verwenden.
+
+
+
+
+
+ Eigenschaft: Homepage
+
+ URI: foaf:homepage
+
+ Verbindlichkeit: Optional
+ Definition: Homepage des Katalogs (Webdokument, idR als HTML verfügbar)
+ Typ/Wertebereich: foaf:Document
+ Anwendungshinweis: Diese Eigenschaft verweist auf eine Homepage, welche die zentrale Homepage des Kataloges ist.
+
+
+
+
+
+ Eigenschaft: Veröffentlichungsdatum
+
+ URI: dct:issued
+
+ Verbindlichkeit: Empfohlen
+ Definition: Datum der Herausgabe / Veröffentlichung des Katalogs
+ Typ/Wertebereich: rdfs:Literal
als xsd:date
oder xsd:dateTime
+ Anwendungshinweis: Diese Eigenschaft enthält das Datum der Herausgabe/Emission (z.B. in Form einer Veröffentlichung) des Katalogs.
+
+
+
+
+
+ Eigenschaft: Veränderungsdatum
+
+
+
+
+ Eigenschaft: Sprache
+
+ URI: dct:language
+
+ Verbindlichkeit: Empfohlen
+ Definition: Sprache des Katalogs, in der die Textelemente der Metadaten verfasst sind (z.B. Titel, Beschreibung)
+ Typ/Wertebereich:
+ dct:LinguisticSystem
+ Anwendungshinweis: Die Eigenschaft kann wiederholt werden, falls die Datensätze in mehreren Sprachen vorhanden sind.
+
+
+
+
+
+ Eigenschaft: Kategorien
+
+ URI: dcat:themeTaxonomy
+
+ Verbindlichkeit: Empfohlen
+ Definition: Schema zur Klassifizierung der im Katalog verzeichneten Datensätze
+ Typ/Wertebereich: skos:ConceptScheme
+ Anwendungshinweis:
+ Diese Eigenschaft verweist auf das Schema mit dem die dem Katalog zugewiesenen Datenstrukturen in Form von Kategorien klassifiziert werden.
+
+
+
+
+
+
+ Eigenschaft: Identifikator
+
+ URI: dct:identifier
+
+ Verbindlichkeit: Empfohlen
+ Definition: Eineindeutiger Identifikator des Katalogs
+ Typ/Wertebereich: rdfs:Literal
+
+
+
+
+
+ Eigenschaft: Dataset
+
+ URI: dcat:dataset
+
+ Verbindlichkeit: Empfohlen
+ Definition: Eine logische Entität, welche die veröffentlichten Informationen repräsentiert. Verknüpft den Katalog mit einem Datensatz, welcher somit Teil des Katalogs wird.
+ Typ/Wertebereich: dcat:Dataset
+ Anwendungshinweis: Ein Datensatz beschreibt ein raumbezogenes Planwerk oder ein Beteiligungsverfahren zur Aufstellung eines raumbezogenen Planwerks.
+
+
+
+
+
+
+
+ Klasse: Katalogeintrag
+
+ URI der Klasse: dcat:CatalogRecord
+
+ Verbindlichkeit: Optional
+ Definition: Die Beschreibung des Eintrags in einem Katalog.
+ Anwendungshinweis: Diese optionale Klasse kann verwendet werden für Kataloge, bei denen eine Unterscheidung gemacht werden soll oder muss zwischen den Metadaten eines Datensatzes und Metadaten über den Eintrag des Datensatzes in den Katalog.
+
+
+
+
+ Eigenschaft: Aktualisierungs- oder Veränderungsdatum
+
+
+
+
+ Katalogeintrag
+
+ URI: foaf:primaryTopic
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Diese Eigenschaft verknüpft den Katalogeintrag mit dem im Eintrag beschriebenen dcat:Dataset
+ Typ/Wertebereich: dcat:Dataset
+
+
+
+
+
+ Eigenschaft: Titel
+
+ URI: dct:title
+
+ Verbindlichkeit: Empfohlen
+ Definition: Name / Bezeichnung des Katalogeintrags als Freitext
+ Typ/Wertebereich: rdfs:Literal
+
+
+
+
+
+ Eigenschaft: Veröffentlichungsdatum
+
+ URI: dct:issued
+
+ Verbindlichkeit: Empfohlen
+ Definition: Datum an dem der Katalogeintrag erstellt wurde
+ Typ/Wertebereich: rdfs:Literal
als xsd:date
oder xsd:dateTime
+ Anwendungshinweis: Diese Eigenschaft enthält das Datum an dem der Katalogeintrag im Katalog erstellt wurde.
+
+
+
+
+
+
+
+ Klasse: Datensatz
+
+ URI der Klasse: dcat:Dataset
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Eine logische Entität, welche die veröffentlichten Informationen repräsentiert
+ Anwendungshinweis: Im vorliegenden Anwendungsfall beschreibt ein Datensatz ein raumbezogenes Planwerk oder ein Beteiligungsverfahren zur Aufstellung eines raumbezogenen Planwerks.
+
+
+
+
+ Eigenschaft: Titel
+
+ URI: dct:title
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Name / Bezeichnung des Datensatzes als Freitext
+ Typ/Wertebereich: rdfs:Literal
+
+
+
+
+
+ Eigenschaft: Beschreibung
+
+ URI: dct:description
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Beschreibung des Datensatzes als Freitext
+ Typ/Wertebereich: rdfs:Literal
+
+
+
+
+
+ Eigenschaft: Veröffentlichungsdatum
+
+ URI: dct:issued
+
+ Verbindlichkeit: Optional
+ Definition: Datum der Herausgabe / Veröffentlichung des Datensatzes
+ Typ/Wertebereich: rdfs:Literal
als xsd:date
oder xsd:dateTime
+ Anwendungshinweis: Diese Eigenschaft enthält das Datum der Herausgabe/Emission (z.B. in Form einer Veröffentlichung) des Datensatzes
+
+
+
+
+
+ Eigenschaft: Aktualisierungs- oder Veränderungsdatum
+
+
+
+
+ Eigenschaft: Identifikator
+
+ URI: dct:identifier
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Eineindeutiger Identifikator des Datensatzes im Kontext des jeweiligen Katalogs
+ Typ/Wertebereich: rdfs:Literal
+
+
+
+
+
+ Eigenschaft: Katalogübergreifender Identifikator
+
+ URI: adms:identifier
+
+ Verbindlichkeit: Empfohlen
+ Definition: Diese Eigenschaft verweist auf eine katalogübergreifende ID des Datensatzes und setzt sich aus der ID der datenhaltenden Stelle (siehe entsprechende Codeliste ) und der ID des Datensatzes (dct:identifier, eine UUID) zusammen.
+ Typ/Wertebereich: adms:Identifier
+ Anwendungshinweis: Beispiel für die Angabe eines adms:identifier
https://specs.diplanung.de/resource/authority#hh/abde-efgh-0123-4567
+
+
+
+
+
+
+
+ Eigenschaft: Art des Verfahrens
+
+ URI: plu:procedureType
+
+ Verbindlichkeit: Empfohlen
+ Definition: Art des Verfahrens bei der Aufstellung raumbezogener Planwerke
+ Typ/Wertebereich: rdfs:Resource
+ Anwendungshinweis: Mit dieser Eigenschaft werden die Verfahren nach ihrer Art kategorisiert, z.B. "Vereinfachtes Verfahren", "Normales Verfahren". Die möglichen Verfahrensarten sind durch eine Codeliste festgelegt. Der zu verwendende IRI in der rdf:resource setzt sich zusammen aus https://specs.diplanung.de/resource/procedureType#
und dem gewünschten Codelistenwert.
+
+
+
+
+
+ Eigenschaft: Status des Verfahrens
+
+ URI: plu:procedureState
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Status in dem sich ein Verfahren befindet
+ Typ/Wertebereich: rdfs:Resource
+ Anwendungshinweis: Mit dieser Eigenschaft wird der übergeordnete Status eines Verfahrens kategorisiert, z.B. "geplant", "laufend" oder "abgeschlossen". Die möglichen Stati sind in einer Codeliste festgelegt. Der zu verwendende IRI in der rdf:resource setzt sich zusammen aus https://specs.diplanung.de/resource/procedureState#
und dem gewünschten Codelistenwert.
+
+
+
+
+
+ Eigenschaft: Name des Plans
+
+ URI: plu:planName
+
+ Verbindlichkeit: Empfohlen
+ Definition: Name des raumbezogenen Planwerks
+ Typ/Wertebereich: rdfs:Literal
+ Anwendungshinweis: Mit dieser Eigenschaft wird der Name des raumbezogenen Planwerks dargestellt, z.B. "HafenCity14".
+
+
+
+
+
+ Eigenschaft: Art des Plans
+
+ URI: plu:planType
+
+ Verbindlichkeit: Empfohlen
+ Definition: Art des raumbezogenen Planwerks
+ Typ/Wertebereich: rdfs:Resource
+ Anwendungshinweis: Mit dieser Eigenschaft wird die Art des raumbezogenen Planwerks ausgedrückt, z.B. Bebauungsplan, Regionalplan. Die möglichen Arten sind in einer Codeliste festgelegt. Der zu verwendende IRI in der rdf:resource setzt sich zusammen aus https://specs.diplanung.de/resource/planType#
und dem gewünschten Codelistenwert.
+
+
+
+
+
+ Eigenschaft: Art des Plans (Detail)
+
+ URI: plu:planTypeFine
+
+ Verbindlichkeit: Empfohlen
+ Definition: Art des raumbezogenen Planwerks
+ Typ/Wertebereich: rdfs:Resource
+ Anwendungshinweis: Mit dieser Eigenschaft wird die Art des raumbezogenen Planwerks auf einer detaillierteren Ebene ausgedrückt, z.B. Einfacher Bebauungsplan, Qualifizierter Bebauungsplan. Die möglichen Arten sind in der INSPIRE-PLU Codeliste für Plan Type Name festgelegt (die Spalte ID listet die erlaubten Werte). Der zu verwendende IRI in der rdf:resource setzt sich zusammen aus https://registry.gdi-de.org/codelist/de.xleitstelle.inspire_plu/PlanTypeNameValue/
und dem gewünschten Codelistenwert.
+
+
+
+
+
+ Eigenschaft: Status des Plans
+
+ URI: plu:planState
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Status in dem sich ein Plan befindet
+ Typ/Wertebereich: rdfs:Resource
+ Anwendungshinweis: Mit dieser Eigenschaft wird der Status eines Plans kategorisiert, z.B. "in Aufstellung" oder "festgesetzt". Die möglichen Stati sind in einer Codeliste festgelegt. Der zu verwendende IRI in der rdf:resource setzt sich zusammen aus https://specs.diplanung.de/resource/planState#
und dem gewünschten Codelistenwert.
+
+
+
+
+
+ Eigenschaft: Verfahrenszeitraum
+
+ URI: plu:procedurePeriod
+
+ Verbindlichkeit: Empfohlen
+ Definition: Verfahrenszeitraum
+ Typ/Wertebereich: dct:PeriodOfTime
+ Anwendungshinweis: Diese Eigenschaft beschreibt den Zeitraum des Verfahrens. dct:startDate enthält das Datum des Verfahrensbeginns. Für festgestellte oder untergegangene Pläne enthält dct:endDate das Datum des Verfahrensendes (d.h. der Planfeststellung oder des Untergangs), für Pläne in Aufstellung entfällt dct:endDate.
+
+
+
+
+
+ Eigenschaft: Verweis
+
+ URI: dct:relation
+
+ Verbindlichkeit: Optional
+ Definition: Verweis auf einen anderen Datensatz.
+ Typ/Wertebereich: rdfs:Resource
+ Anwendungshinweis: Über diese Eigenschaft kann eine Verknüpfung mit einem anderen Verfahren dargestellt werden.
+
+
+
+
+
+ Eigenschaft: Raumbezug
+
+ URI: dct:spatial
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Raumbezug des Datensatzes
+ Typ/Wertebereich: dct:Location
+ Anwendungshinweis: Ein räumlicher Bereich oder ein bezeichneter Ort. Er kann durch ein kontrolliertes Vokabular oder mit geographischen Koordinaten repräsentiert werden. Im letzteren Fall wird die Verwendung des Core Location Vocabulary empfohlen, wie in der GeoDCAT-AP-Spezifikation beschrieben.
+
+
+
+
+
+ Eigenschaft: Distribution
+
+ URI: dcat:distribution
+
+ Verbindlichkeit: Empfohlen
+ Definition: Distribution
+ Typ/Wertebereich: dcat:Distribution
+ Anwendungshinweis: Diese Eigenschaft verknüpft den Datensatz mit einer verfügbaren Distribution.
+
+
+
+
+
+ Eigenschaft: Herausgeber
+
+ URI: dct:publisher
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Herausgeber des Datensatzes.
+ Typ/Wertebereich: foaf:Agent
+ Anwendungshinweis: Diese Eigenschaft verweist auf die Stelle oder Person, die für Bereitstellung
+ des Datensatzes verantwortlich ist.
+
+
+
+
+
+ Eigenschaft: Verwalter
+
+ URI: dcatde:maintainer
+
+ Verbindlichkeit: Optional
+ Definition: Verwalter des Datensatzes
+ Typ/Wertebereich: foaf:Agent
+ Anwendungshinweis: Diese Eigenschaft verweist auf die Stellen oder Personen, die Verantwortung und
+ Rechenschaftspflicht für die Daten und ihre angemessene Pflege übernehmen.
+
+
+
+
+
+ Eigenschaft: Bearbeiter
+
+ URI: dct:contributor
+
+ Verbindlichkeit: Optional
+ Definition: Bearbeiter des Datensatzes
+ Typ/Wertebereich: foaf:Agent
+ Anwendungshinweis: Diese Eigenschaft verweist auf Stellen oder Personen, die die Daten bearbeitet haben (z.B. durch Formatierung derselben).
+
+
+
+
+
+ Eigenschaft: Verfahrensschritt
+
+ URI: plu:processStep
+
+ Verbindlichkeit: Empfohlen
+ Definition: Verfahrensschritt
+ Typ/Wertebereich: plu:processStep
+ Anwendungshinweis: Diese Eigenschaft verknüpft ein Verfahren mit einem Verfahrensschritt.
+
+
+
+
+
+ Eigenschaft: Veränderungssperre
+
+ URI: plu:developmentFreezePeriod
+
+ Verbindlichkeit: Optional
+ Definition: Zeitraum einer Veränderungssperre
+ Typ/Wertebereich: dct:PeriodOfTime
+ Anwendungshinweis: Diese Eigenschaft beschreibt den Zeitraum, in dem eine Veränderungssperre wirksam ist.
+
+
+
+
+
+ Eigenschaft: Aktuelle Mitteilungen
+
+ URI: plu:notification
+
+ Verbindlichkeit: Optional
+ Definition: Aktuelle Mitteilungen zum Datensatz
+ Typ/Wertebereich: rdfs:Literal
+ Anwendungshinweis: Über diese Eigenschaft können aktuelle Mitteilungen zum Datensatz erfasst werden, z.B. über einen anstehenden Informationsabend.
+
+
+
+
+
+
+
+ Klasse: Distribution
+
+ URI der Klasse: dcat:Distribution
+
+ Verbindlichkeit: Empfohlen
+ Definition: Eine Repräsentation eines Datensatzes in einem bestimmten Format
+ Anwendungshinweis: Die Distribution stellt die generelle Verfügbarkeit eines Datensatzes dar aber beinhaltet nicht zwangsweise eine Zugangsmöglichkeit zu den Daten wie z.B.durch direkten Download, API , oder durch eine Internetseite.
+ Die Benutzung der Eigenschaft dcat:downloadURL
zeigt eine direkt herunterladbare Distribution an.
+
+
+
+
+ Eigenschaft: access URL
+
+ URI: dcat:accessURL
+
+ Verbindlichkeit: Verpflichtend
+ Definition: URL der Ressource die den Zugang zu einer Distribution des Datensatzes bietet (z.B. landing page)
+ Typ/Wertebereich: rdfs:Resource
+ Anwendungshinweis:
+ Die mit der Zugangs-URL erreichbare Ressource kann Informationen zur
+ Verfügung stellen, wie die Distribution erreicht werden kann oder direkt auf eine Datei verweisen, die die Daten im angegebenen Format beinhaltet.
+ dcat:accessURL
sollte für die URL eines Services oder eines Ortes benutzt werden, der Zugang zu dieser Distribution bietet, typischerweise durch ein digitales Formular, eine Anfrage oder einen API Abruf.
+ dcat:downloadURL
ist für direkte Links zu herunterladbaren Ressourcen zu bevorzugen.
+
+
+
+
+
+ Eigenschaft: download URL
+
+ URI: dcat:downloadURL
+
+ Verbindlichkeit: Optional
+ Definition: URL der Ressource die den Zugang zu einer Distribution des Datensatzes bietet. (Z.B. landing page)
+ Typ/Wertebereich: rdfs:Resource
+ Anwendungshinweis:
+ Diese Eigenschaft enthält eine URL-Adresse, welche einen direkten Zugriff/Link auf die herunterladbare Datei im beschriebenen Format liefert.
+
+
+
+
+
+
+ Eigenschaft: Titel
+
+ URI: dct:title
+
+ Verbindlichkeit: Empfohlen
+ Definition: Name / Bezeichnung der Distribution als Freitext
+ Typ/Wertebereich: rdfs:Literal
+
+
+
+
+
+ Eigenschaft: Beschreibung
+
+ URI: dct:description
+
+ Verbindlichkeit: Optional
+ Definition: Beschreibung der Distribution als Freitext
+ Typ/Wertebereich: rdfs:Literal
+
+
+
+
+
+ Eigenschaft: Veröffentlichungsdatum
+
+ URI: dct:issued
+
+ Verbindlichkeit: Empfohlen
+ Definition: Datum der Herausgabe / Veröffentlichung der Distribution
+ Typ/Wertebereich: rdfs:Literal
als xsd:date
oder xsd:dateTime
+ Anwendungshinweis: Diese Eigenschaft enthält das Datum der Herausgabe/Emission (z.B. in Form einer Veröffentlichung) der Distribution.
+
+
+
+
+
+ Eigenschaft: Veränderungsdatum
+
+ URI: dct:modified
+
+ Verbindlichkeit: Empfohlen
+ Definition: Aktualisierungs- bzw. Veränderungsdatum der Distribution
+ Typ/Wertebereich: rdfs:Literal
als xsd:date
oder xsd:dateTime
+ Anwendungshinweis: Diese Eigenschaft erfasst das Datum der letzten Aktualisierung bzw. Modifikation der Distribution.
+
+
+
+
+
+ Eigenschaft: Dokumententyp
+
+ URI: plu:docType
+
+ Verbindlichkeit: Optional
+ Definition: Art eines Dokuments im Zusammenhang mit raumbezogenen Planwerken oder Beteiligungsverfahren
+ Typ/Wertebereich: rdfs:Resource
+ Anwendungshinweis: Über den Dokumententyp wird die Art der verfügbaren Dokumente ausgedrückt, die zu einem raumbezogenen Planwerk oder zu einem Beteiligungsverfahren zur Verfügung gestellt werden können. Die Arten von Dokumenten sind durch eine Codeliste definiert. Der zu verwendende IRI in der rdf:resource setzt sich zusammen aus https://specs.diplanung.de/resource/docType#
und dem gewünschten Codelistenwert.
+
+
+
+
+
+
+
+ Eigenschaft: Zeitbezug
+
+ URI: dct:PeriodOfTime
+
+ Verbindlichkeit: Empfohlen
+ Definition: Zeitraum, in dem die Distribution zur Verfügung steht oder Zeitpunkt, ab dem oder bis zu dem die Distribution zur Verfügung steht.
+ Typ/Wertebereich: dct:temporal
+ Anwendungshinweis: Über diese Eigenschaft kann der Zeitraum, in dem eine Distribution verfügbar sein soll, definiert werden.
+
+
+
+
+
+ Eigenschaft: Bezeichnung Kartenlayer
+
+ URI: plu:mapLayerNames
+
+ Verbindlichkeit: Optional
+ Definition: Bezeichnung der Kartenlayer
+ Typ/Wertebereich: rdfs:Literal
+ Anwendungshinweis: Mit dieser Eigenschaft können die Bezeichnungen einzelner Kartenlayer durch eine Liste von Komma-separierten Layernamen mitgegeben werden, wenn die Distribution z.B. einen WMS darstellt.
+
+
+
+
+
+
+ Klasse: Verfahrensschritt
+
+
+ URI der Klasse: plu:processStep
+
+ Verbindlichkeit: Empfohlen
+ Definition: Verfahrensschritt
+ Anwendungshinweis Eine Instanz dieser Klasse bildet einen Verfahrensschritt ab.
+
+
+
+
+ Eigenschaft: Identifikator
+
+ URI: dct:identifier
+
+ Verbindlichkeit: Empfohlen
+ Definition: Eineindeutiger Identifikator des Verfahrensschrittes
+ Typ/Wertebereich: rdfs:Literal
+ Anwendungshinweis: Falls der Verfahrensschritt ein Beteiligungsverfahren beschreibt, kann hier die ID des Beteiligungsverfahrens angegeben werden. Auch in anderen Fällen können über die Angabe einer jeweils eindeutigen ID Verfahrensschritte besser erkannt bzw. differenziert werden.
+
+
+
+
+
+ Eigenschaft: Titel
+
+ URI: dct:title
+
+ Verbindlichkeit: Empfohlen
+ Definition: Name / Bezeichnung des Verfahrensschrittes als Freitext
+ Typ/Wertebereich: rdfs:Literal
+ Anwendungshinweis: Der Titel des Verfahrensschrittes, falls er sich vom Titel des übergeordneten Planverfahrens unterscheidet.
+
+
+
+
+
+ Eigenschaft: Art des Prozessschrittes
+
+ URI: plu:processStepType
+
+ Verbindlichkeit: Empfohlen
+ Definition: Art des Prozessschrittes bei raumbezogenen Planwerken und Beteiligungsverfahren
+ Typ/Wertebereich: rdfs:Resource
+ Anwendungshinweis: Mit dieser Eigenschaft wird die Art des Prozessschrittes bei raumbezogenen Planwerken und Beteiligungsverfahren beschrieben. Die Arten von Prozessschritten sind durch eine Codeliste definiert. Der zu verwendende IRI in der rdf:resource setzt sich zusammen aus https://specs.diplanung.de/resource/processStepType#
und dem gewünschten Codelistenwert.
+
+
+
+
+
+ Eigenschaft: Distribution
+
+ URI: dcat:distribution
+
+ Verbindlichkeit: Empfohlen
+ Definition: Distribution
+ Typ/Wertebereich: dcat:Distribution
+ Anwendungshinweis: Diese Eigenschaft verknüpft den Verfahrensschritt mit einer verfügbaren Distribution.
+
+
+
+
+
+ Eigenschaft: Zeitbezug
+
+ URI: dct:PeriodOfTime
+
+ Verbindlichkeit: Empfohlen
+ Definition: Zeitraum, in dem der Prozessschritt stattfindet.
+ Typ/Wertebereich: dct:temporal
+ Anwendungshinweis: Über diese Eigenschaft kann der Zeitraum, in dem der Prozessschritt stattfindet, definiert werden, falls es sich um einen zeitgebundenen Prozessschritt handelt.
+
+
+
+
+
+ Eigenschaft: Durchgangsnummer
+
+ URI: plu:passNumber
+
+ Verbindlichkeit: Optional
+ Definition: Durchgangsnummer
+ Typ/Wertebereich: rdfs:Literal als xsd:integer
+ Anwendungshinweis: Über diese Eigenschaft wird die Durchgangsnummer eines Beteiligungsverfahrens angegeben.
+
+
+
+
+
+
+ Klasse: Zeitraum
+
+
+ URI der Klasse: dct:PeriodOfTime
+
+ Verbindlichkeit: Empfohlen
+ Definition: Zeitraum der durch einen Anfang und ein Ende definiert ist.
+
+ Anwendungshinweis:
+ Start und Ende des Zeitraums SOLLTEN durch die Eigenschaften
+ dcat:startDate
+ oder time:hasBeginning
,
+ und dcat:endDate
+ oder time:hasEnd
beschrieben werden.
+ Das Intervall kann auch offen sein, d.h. nur ein Start- oder nur ein Enddatum haben.
+
+
+
+
+
+ Eigenschaft: Startdatum
+
+
+ URI: dcat:startDate
+
+ Verbindlichkeit: Empfohlen
+ Definition: Startdatum des Zeitraums
+ Domain: dct:PeriodOfTime
+ Typ/Wertebereich: rdfs:Literal als xsd:gYear, xsd:gYearMonth, xsd:date oder xsd:dateTime.
+
+
+
+
+
+
+ Eigenschaft: Enddatum
+
+
+ URI: dcat:endDate
+
+ Verbindlichkeit: Empfohlen
+ Definition: Enddatum des Zeitraums
+ Domain: dct:PeriodOfTime
+ Typ/Wertebereich: rdfs:Literal als xsd:gYear, xsd:gYearMonth, xsd:date oder xsd:dateTime
+
+
+
+
+
+
+
+ Klasse: Raumbezug
+
+
+ URI der Klasse: dct:Location
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Ein räumlicher Bereich oder ein bezeichneter Ort.
+ Anwendungshinweis: Die Eigenschaft kann durch ein kontrolliertes Vokabular oder mit geographischen Koordinaten repräsentiert werden.
+
+
+
+
+ Eigenschaft: Geometrie
+
+
+ URI: locn:geometry
+
+ Verbindlichkeit: Empfohlen
+ Definition: Beschreibt die Geometrie einer Ressource.
+ Typ/Wertebereich: rdfs:Literal
+ Anwendungshinweis: Die Geometrie muss im GeoJSON Format beschrieben werden.
+
+
+
+
+
+ Eigenschaft: Bounding Box
+
+
+ URI: dcat:bbox
+
+ Verbindlichkeit: Empfohlen
+ Definition: Die Bounding Box einer Ressource
+ Typ/Wertebereich: rdfs:Literal
+ Anwendungshinweis: Die Bounding Box muss im GeoJSON Format beschrieben werden.
+
+
+
+
+
+ Eigenschaft: Geografisches Zentrum
+
+
+ URI: dcat:centroid
+
+ Verbindlichkeit: Optional
+ Definition: Das geografische Zentrum (Schwerpunkt) einer Ressource.
+ Typ/Wertebereich: rdfs:Literal
+ Anwendungshinweis: Das geografische Zentrum muss im GeoJSON Format beschrieben werden.
+
+
+
+
+
+ Eigenschaft: Benennung
+
+
+ URI: locn:geographicName
+
+ Verbindlichkeit: Optional
+ Definition: Bevorzugte Bezeichnung des Ortes
+ Typ/Wertebereich: rdfs:Literal
+
+
+
+
+
+
+
+ Klasse: Organisation
+
+
+ URI der Klasse: foaf:Agent
+
+ Verbindlichkeit: Verpflichtend
+ Definition: Eine Stelle oder Person, welche mit Katalogen und Datensätzen in unterschiedlichen Rollenausprägungen assoziiert ist.
+ Anwendungshinweis:
+
+
+
+
+ Eigenschaft: Name
+
+
+ URI: foaf:name
+
+ Verbindlichkeit: Optional
+ Definition: Diese Eigenschaft enthält den Namen der verantwortlichen Stelle.
+ Typ/Wertebereich: rdfs:Literal
+
+
+
+
+
+ Eigenschaft: Typ
+
+
+ URI: dct:type
+
+ Verbindlichkeit: Optional
+ Definition: Diese Eigenschaft bezieht sich auf den Typ der verantwortlichen Stelle,
+ die die Ressource bereitstellt.
+ Typ/Wertebereich: skos:Concept; zu beachten sind hier die Vorgaben aus DCAT-AP.de zum zulässigen ADMS Vokabular (siehe auch den entsprechenden Eintrag im Konventionenhandbuch )
+
+
+
+
+
+
+
+
+
+ Verwendete Codelisten
+
+ Im Folgenden sind die innerhalb dieses Datenmodells verwendeten Codelisten dokumentiert.
+
+
+ Codeliste für die Arten von Verfahren zur Aufstellung raumbezogener Planwerke
+
+ Code Beschreibung
+
+ regular normales Verfahren
+ simplified vereinfachtes Verfahren
+ innerDevPlan Bebauungsplan der Innenentwicklung
+ outdoorArea Einbeziehung von Außenbereichsflächen in das beschleunigte Verfahren
+ revision Änderung
+ partialExtrapolation Teilfortschreibung
+ newPreparation Neuaufstellung
+ completeExtrapolation Gesamtfortschreibung
+ update Aktualisierung
+ newAnnouncement Neubekanntmachung
+ unknown unbekannt
+
+
+
+
+
+ Codeliste für den übergeordneten Status eines Verfahrens
+
+ Code Beschreibung
+
+ planned geplant
+ ongoing laufend
+ completed abgeschlossen
+ unknown unbekannt
+
+
+
+
+
+ Codeliste für den Status eines Plans
+
+ Code Beschreibung
+
+ inPreparation in Aufstellung
+ fixed festgesetzt
+ unknown unbekannt
+
+
+
+
+
+ Codeliste für die Arten von raumbezogenen Planwerken
+
+ Code Beschreibung
+
+ developmentPlan Bebauungsplan
+ landUsePlan Flächennutzungsplan
+ urbanPlanningStatutes Städtebauliche Satzungen
+ specialUrbanPlanningLaw Planwerke besonderes Städtebaurecht
+ landscapePlanning Planwerke der Landschaftsplanung
+ spatialPlan Raumordnungsplan
+ spatialPlanningProcedure Raumordnungsverfahren
+ planApprovalProcedure Planfeststellungsverfahren
+ other Sonstige raumbezogene Planwerke
+ unknown unbekannt
+
+
+
+
+
+ Codeliste für die Arten von Verfahrensschritten bei raumbezogenen Verfahren
+
+ Code Beschreibung
+
+ earlyInvolveAuth Frühzeitige Behördenbeteiligung
+ earlyPublicPart Frühzeitige Öffentlichkeitsbeteiligung
+ publicAgencies Beteiligung der Träger öffentlicher Belange
+ publicDisclosure Öffentliche Auslegung
+ internal Interne Bearbeitung
+ completed abgeschlossen
+ unknown unbekannt
+
+
+
+
+
+ Codeliste für die Arten von Dokumenten
+
+ Code Beschreibung
+
+ announcement Auslegungsinformationen
+ explanatoryReport Erläuterungsbericht
+ planDrawing Planzeichnung
+ participationURL Beteiligungs-URL
+ procedureURL Planverfahrens-URL
+ xplanArchive XPlan-Archiv
+ xplanGML XPlan-GML
+ functionalPlan Funktionsplan
+ costAssumptionContract Kostenübernahmevertrag
+ urbanDevelopmentContract Städtebaulicher Vertrag
+ implementationContract Durchführungsvertrag
+ propertyDevelopmentContract Erschließungsvertrag
+ contract Vertrag
+ expertReport Gutachten
+ roughCoordinationPaper Grobabstimmungspapier
+ supplementaryDocument Ergänzende Unterlage
+ ordinanceDesignation Verordnung / Festsetzung
+ coverLetter Anschreiben
+ coverLetterParticipationProcedure Anschreiben Beteiligungsverfahren
+ transcript Niederschrift
+ summaryStatement Zusammenfassende Erklärung
+ finalNotice Schlussmitteilung
+ preliminaryPlanningApproval Aufstellungsbeschluss
+ decisionForPublicDisplay Auslegungsbeschluss
+ declaratoryDecision (Plan) Feststellungsbeschluss
+ resolutionOnRevocation Aufhebungsbeschluss
+ statement Stellungnahme
+ publication Veröffentlichung
+ printedMatter Drucksache
+ presentation Präsentation
+ substantiation Begründung
+ internalMemo Interner Vermerk
+ meetingDocuments Sitzungsunterlagen
+ otherDocuments Sonstige Unterlagen
+ unknown unbekannt
+
+
+
+
+
+ Codeliste für die datenhaltenden Stellen
+
+ Code Beschreibung
+
+ bw Baden-Württemberg
+ by Bayern (Freistaat)
+ be Berlin
+ bb Brandenburg
+ hb Bremen (Hansestadt)
+ hh Hamburg (Hansestadt)
+ he Hessen
+ mv Mecklenburg-Vorpommern
+ ni Niedersachsen
+ nw Nordrhein-Westfalen
+ rp Rheinland-Pfalz
+ sl Saarland
+ sn Sachsen (Freistaat)
+ st Sachsen-Anhalt
+ sh Schleswig-Holstein
+ th Thüringen (Freistaat)
+
+
+
+
+
+
+
+
diff --git a/releases/0.2.0/examples/plu-example-03.xml b/releases/0.2.0/examples/plu-example-03.xml
new file mode 100644
index 0000000..bc719f9
--- /dev/null
+++ b/releases/0.2.0/examples/plu-example-03.xml
@@ -0,0 +1,145 @@
+
+
+
+
+ Dies ist das Portal für die Recherche von Bauleitplanungen des Landes Hamburg. Hier finden Sie viele Informationen rund um das Themenfeld der Stadt- und Bauleitplanung. Zudem haben wir Ihnen verschiedene Hilfestellungen und Anleitungen für die Arbeit mit Bauleitplanung online bereitgestellt.
+ Bauleitplanung online
+
+
+ Freie und Hansestadt Hamburg
+
+
+
+
+
+
+
+ Altona-Nord27-Bahrenfeld72
+
+ Planungsanlass
+ Der Bebauungsplan Altona-Nord 27 / Bahrenfeld 72 soll ergänzend zu einem Planfeststellungsbeschluss für Bahnbetriebs- und Verkehrsanlagen die planungsrechtlichen Voraussetzungen für die Entwicklung eines Empfangsgebäudes für den neuen Fern- und Regionalbahnhof schaffen. Darüber hinaus sollen öffentliche Vorplatzflächen sowie die notwendigen Flächen zur Herstellung der äußeren Verkehrserschließung des Bahnhofs planungsrechtlich gesichert werden.
+
+ Aktuelle Mitteilungen
+ Der Bebauungsplan-Entwurf Altona-Nord 27 / Bahrenfeld 72 wird vom
+ 03. März 2022 bis 11. April 2022
+ öffentlich ausgelegt. Alle relevanten Informationen können Sie hier einsehen. Sie finden hier zudem den Veröffentlichungstext aus dem Amtlichen Anzeiger zur öffentlichen Auslegung des Bebauungsplan-Entwurfs als PDF-Dokument (Link oben rechts in diesem Feld). Diesem können Sie allgemeine Informationen zum Bebauungsplanverfahren sowie den Auslegungsort im Bezirksamt mit Sprechzeiten vor Ort entnehmen.
+
+
+
+ Behörde für Stadtentwicklung und Wohnen
+ Amt für Landesplanung und Stadtentwicklung
+ Projektgruppe Planung Mitte Altona
+
+ 21109
+ Neuenfelder Straße 19
+ Hamburg
+ Deutschland
+ info@bsw.hamburg.de
+
+
+
+
+ 17b94f6a-28ba-11e7-af94-0050568a354d
+
+
+
+ {"type": "Polygon", "coordinates": [[[9.97, 53.54], [10.00, 53.54], [10.00, 53.56], [9.97, 53.56], [9.97, 53.54]]]}
+
+
+ {"type": "Polygon", "coordinates": [[[9.97, 53.54], [10.00, 53.54], [10.00, 53.56], [9.97, 53.56], [9.97, 53.54]]]}
+
+
+ {"type": "Point", "coordinates": [9.985, 53.55] }
+
+ Altona Nord 27 / Bahrenfeld 72
+
+
+
+
+ Freie und Hansestadt Hamburg
+
+
+
+ 2022-05-01T00:00:00.000Z
+ 2022-06-01T00:00:00.000Z
+
+
+
+
+ 2022-04-01
+ 2022-05-11
+
+
+
+
+
+
+
+
+
+
+
+
+ ProcStep-0123
+
+
+
+
+ 2022-03-03
+ 2022-05-11
+
+
+
+
+
+ ProcStep-1123
+
+
+
+
+ 2022-05-12
+ 2022-05-12
+
+
+
+
+
+ ProcStep-2123
+
+
+
+
+ 2022-05-13
+ 2022-06-13
+
+
+
+
+
+ Planzeichnung
+ Planzeichnung
+
+ PDF
+
+
+ 2022-06-01T00:00:00.000Z
+
+
+
+ Verordnung
+ Hier finden Sie die Verordnung über den Bebauungsplan Altona-Nord 27 / Bahrenfeld 72.
+
+ PDF
+
+
+ 2022-06-01T00:00:00.000Z
+
+
\ No newline at end of file
diff --git a/releases/0.2.0/examples/plu-example-full.xml b/releases/0.2.0/examples/plu-example-full.xml
new file mode 100644
index 0000000..dda55f4
--- /dev/null
+++ b/releases/0.2.0/examples/plu-example-full.xml
@@ -0,0 +1,117 @@
+
+
+
+ Vollständiger beispielhafter Bebauungsplan
+
+ Hier steht die Beschreibung eines beispielhaften Bebauungsplanes
+
+ 2023-01-01T00:00:00.000Z
+ 2023-03-01T00:00:00.000Z
+ e7ced9a0-1076-4aee-af39-e6a2e7ff30b2
+
+ Bebauungsplan123
+
+
+ Behörde für beispielhafte Bebauungspläne
+
+ 12345
+ Planstraße 1
+ Planstadt
+ Deutschland
+ beispiel@behoerde.de
+
+
+
+
+
+
+
+
+
+ 2023-01-01T00:00:00.000Z
+
+
+ Eine Notiz für Planverfahren
+
+
+
+
+ {"type": "LineString", "coordinates": [[54.9, 14.5], [55.4, 15.3]]}
+
+
+ {"type": "Polygon", "coordinates": [[[55.22, 14.78], [55.2, 14.96], [55.14, 15.01], [55.124, 14.91], [55.102, 14.73], [55.22, 14.78]]]}
+
+
+ {"type": "Point", "coordinates": [55.07, 14.92] }
+
+ Bornholm
+
+
+
+
+
+ Behörde für beispielhafte Bebauungspläne
+
+
+
+
+
+ Behörde für beispielhafte Bebauungspläne
+
+
+
+
+
+ Untergeordnete Einheit für bestimmte Bebauungspläne
+
+
+
+
+
+
+ 2023-06-30
+ 2023-07-31
+
+
+
+
+ ProcStep-0123
+ Titel des Verfahrensschrittes 0123
+
+ 3
+
+
+
+ 2023-01-01
+ 2023-01-31
+
+
+
+
+ Test-Dokument
+ Test-Dokument
+
+
+ PDF
+
+ 2023-04-04T00:00:00.000Z
+
+
+ Test-Dokument
+ Test-Dokument
+
+
+ PDF
+
+ 2023-04-04T00:00:00.000Z
+
+
\ No newline at end of file
diff --git a/releases/0.2.0/shacl/README.md b/releases/0.2.0/shacl/README.md
new file mode 100644
index 0000000..1e0a675
--- /dev/null
+++ b/releases/0.2.0/shacl/README.md
@@ -0,0 +1,7 @@
+# DCAT-AP.PLU SHACL shape file
+
+* To validate the DCAT-AP.PLU SHACL shapefile itself:
+ * https://www.itb.ec.europa.eu/shacl/shacl/upload
+* To validate e.g. RDF/XML files against the DCAT-AP.PLU SHACL shapefile:
+ * https://www.itb.ec.europa.eu/shacl/any/upload
+ * https://www.itb.ec.europa.eu/shacl-offline/any/validator.zip
\ No newline at end of file
diff --git a/releases/0.2.0/shacl/dcat-ap-plu_shacl-shapes.ttl b/releases/0.2.0/shacl/dcat-ap-plu_shacl-shapes.ttl
new file mode 100644
index 0000000..95b4ca9
--- /dev/null
+++ b/releases/0.2.0/shacl/dcat-ap-plu_shacl-shapes.ttl
@@ -0,0 +1,592 @@
+@prefix rdf: .
+@prefix : .
+@prefix adms: .
+@prefix cc: .
+@prefix dc: .
+@prefix dcat: .
+@prefix dcatap: .
+@prefix dcatde: .
+@prefix dct: .
+@prefix foaf: .
+@prefix locn: .
+@prefix org: .
+@prefix owl: .
+#@prefix odrl: .
+@prefix plu: .
+#@prefix prov: .
+@prefix rdfs: .
+@prefix schema: .
+@prefix sh: .
+@prefix skos: .
+#@prefix spdx: .
+#@prefix time: .
+@prefix vcard: .
+@prefix xsd: .
+
+
+ dcat:accessURL ;
+ dcat:downloadURL ;
+ dcatap:availability ;
+ dct:format ;
+ dct:conformsTo ;
+ dct:creator [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Bert Van Nuffelen"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Natasa Sofou"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Eugeniu Costetchi"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Makx Dekkers"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Nikolaos Loutas"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Vassilios Peristeras"
+ ] ;
+ dct:license ;
+ cc:attributionURL ;
+ dct:modified "2019-11-15"^^xsd:date ;
+ dct:publisher ;
+ dct:relation ;
+ dct:description "This document specifies the constraints on properties and classes expressed by DCAT-AP in SHACL."@en ;
+ dct:title "The constraints of DCAT Application Profile for Data Portals in Europe"@en ;
+ owl:versionInfo "2.0.0" ;
+ foaf:homepage ;
+ foaf:maker [
+ foaf:mbox ;
+ foaf:name "DCAT-AP Working Group" ;
+ foaf:page ,
+ ] .
+
+
+
+#-------------------------------------------------------------------------
+# The shapes in this file cover all classes in DCAT-AP-PLU.
+#
+#
+#-------------------------------------------------------------------------
+
+:Agent_Shape
+ a sh:NodeShape ;
+ sh:name "Agent"@en ;
+ # mandatory
+ sh:property [
+ sh:path foaf:name ;
+ sh:nodeKind sh:Literal ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] ;
+ # optional
+ sh:property [
+ sh:path dct:type ;
+ # sh:class skos:Concept ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:closed true ;
+ sh:ignoredProperties (rdf:type) ;
+ sh:targetClass foaf:Agent .
+
+:CatalogRecord_Shape
+ a sh:NodeShape ;
+ sh:name "Catalog Record"@en ;
+ # mandatory
+ sh:property [
+ sh:path dct:modified ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path foaf:primaryTopic ;
+ sh:node :DcatResource_Shape ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] ;
+ # recommended
+ sh:property [
+ sh:path dct:issued ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:title ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:closed true ;
+ sh:ignoredProperties (rdf:type) ;
+ sh:targetClass dcat:CatalogRecord .
+
+:Catalog_Shape
+ a sh:NodeShape ;
+ sh:name "Catalog"@en ;
+ # mandatory
+ sh:property [
+ sh:path dcat:dataset ;
+ sh:class dcat:Dataset ;
+ sh:minCount 1 ;
+ ], [
+ sh:path dct:description ;
+ sh:nodeKind sh:Literal ;
+ sh:minCount 1 ;
+ ], [
+ sh:path dct:publisher ;
+ sh:class foaf:Agent ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:title ;
+ sh:nodeKind sh:Literal ;
+ sh:minCount 1 ;
+ ] ;
+ # reommended
+ sh:property [
+ sh:path dcat:themeTaxonomy ;
+ sh:class skos:ConceptScheme ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:identifier ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:issued ;
+ sh:shape :DateOrDateTimeDataType_Shape ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:language ;
+ # sh:class dct:LinguisticSystem ;
+ ], [
+ sh:path dct:modified ;
+ sh:shape :DateOrDateTimeDataType_Shape ;
+ sh:maxCount 1 ;
+ ] ;
+ # optional
+ sh:property [
+ sh:path dcat:record ;
+ sh:class dcat:CatalogRecord ;
+ ], [
+ sh:path foaf:homepage ;
+ # sh:class foaf:Document ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:closed true ;
+ sh:ignoredProperties (rdf:type) ;
+ sh:targetClass dcat:Catalog .
+
+:CategoryScheme_Shape
+ a sh:NodeShape ;
+ sh:name "Category Scheme"@en ;
+ sh:property [
+ sh:path dct:title ;
+ sh:nodeKind sh:Literal ;
+ sh:minCount 1 ;
+ ] ;
+ sh:targetClass skos:ConceptScheme .
+
+:Category_Shape
+ a sh:NodeShape ;
+ sh:name "Category"@en ;
+ sh:property [
+ sh:path skos:prefLabel ;
+ sh:nodeKind sh:Literal ;
+ sh:minCount 1 ;
+ ] ;
+ sh:closed true ;
+ sh:ignoredProperties (rdf:type) ;
+ sh:targetClass skos:Concept .
+
+# :Checksum_Shape
+# a sh:NodeShape ;
+# sh:name "Category"@en ;
+# sh:property [
+# sh:hasValue spdx:checksumAlgorithm_sha1 ;
+# sh:maxCount 1 ;
+# sh:minCount 1 ;
+# sh:path spdx:algorithm ;
+# sh:severity sh:Violation
+# ], [
+# sh:dateTime xsd:hexBinary ;
+# sh:maxCount 1 ;
+# sh:minCount 1 ;
+# sh:path spdx:checksumValue ;
+# sh:severity sh:Violation
+# ] ;
+# sh:targetClass spdx:Checksum .
+
+# :DataService_Shape
+# a sh:NodeShape ;
+# sh:name "Data Service"@en ;
+# sh:property [
+# sh:minCount 1 ;
+# sh:nodeKind sh:Literal ;
+# sh:path dct:title ;
+# sh:severity sh:Violation
+# ], [
+# sh:minCount 1 ;
+# sh:nodeKind sh:BlankNodeOrIRI ;
+# sh:path dcat:endpointURL ;
+# sh:severity sh:Violation
+# ], [
+# sh:class dcat:Dataset ;
+# sh:path dcat:servesDataset ;
+# sh:severity sh:Violation
+# ], [
+# sh:nodeKind sh:Literal ;
+# sh:path dct:description ;
+# sh:severity sh:Violation
+# ], [
+# sh:nodeKind sh:BlankNodeOrIRI ;
+# sh:path dcat:endpointDescription ;
+# sh:severity sh:Violation
+# ], [
+# sh:class dct:LicenseDocument ;
+# sh:maxCount 1 ;
+# sh:path dct:licence ;
+# sh:severity sh:Violation
+# ], [
+# sh:class dct:RightsStatement ;
+# sh:maxCount 1 ;
+# sh:path dct:accessRights ;
+# sh:severity sh:Violation
+# ] ;
+# sh:targetClass dcat:DataService .
+
+:Dataset_Shape
+ a sh:NodeShape ;
+ sh:name "Dataset"@en ;
+ # mandatory
+ sh:property [
+ sh:path dcat:contactPoint ;
+ sh:class vcard:Organization ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:description ;
+ sh:nodeKind sh:Literal ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:identifier ;
+ sh:nodeKind sh:Literal ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:publisher ;
+ sh:class foaf:Agent ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:spatial ;
+ sh:class dct:Location ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:title ;
+ sh:nodeKind sh:Literal ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path plu:planState ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path plu:procedureState ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] ;
+ # recommended
+ sh:property [
+ sh:path adms:identifier ;
+ # sh:class adms:Identifier ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dcat:distribution ;
+ sh:class dcat:Distribution ;
+ ], [
+ sh:path plu:planName ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path plu:planType ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path plu:planTypeFine ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path plu:procedurePeriod ;
+ sh:class dct:PeriodOfTime ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path plu:procedureType ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path plu:processStep ;
+ sh:class plu:ProcessStep ;
+ ] ;
+ # optional
+ sh:property [
+ sh:path dcatde:maintainer ;
+ sh:class foaf:Agent ;
+ ], [
+ sh:path dct:contributor ;
+ sh:class foaf:Agent ;
+ ], [
+ sh:path dct:issued ;
+ sh:shape :DateOrDateTimeDataType_Shape ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:modified ;
+ sh:shape :DateOrDateTimeDataType_Shape ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:relation ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path plu:developmentFreezePeriod ;
+ sh:class dct:PeriodOfTime ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path plu:notification ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:closed true ;
+ sh:ignoredProperties (rdf:type) ;
+ sh:targetClass dcat:Dataset .
+
+:DateOrDateTimeDataType_Shape
+ a sh:NodeShape ;
+ rdfs:comment "Date time date disjunction shape checks that a datatype property receives a date or a dateTime literal" ;
+ rdfs:label "Date time date disjunction" ;
+ sh:message "The values must be data typed as either xsd:date or xsd:dateTime" ;
+ sh:or ([
+ sh:datatype xsd:date
+ ]
+ [
+ sh:datatype xsd:dateTime
+ ]
+ ) ;
+ sh:closed true ;
+ sh:ignoredProperties (rdf:type) .
+
+:DcatResource_Shape
+ a sh:NodeShape ;
+ rdfs:comment "the union of Catalog and Dataset" ;
+ rdfs:label "dcat:Resource" ;
+ sh:message "The node is either a Catalog or Dataset" ;
+ sh:or ([
+ sh:class dcat:Catalog
+ ]
+ [
+ sh:class dcat:Dataset
+ ]
+ ) ;
+ sh:closed true ;
+ sh:ignoredProperties (rdf:type) .
+
+:Distribution_Shape
+ a sh:NodeShape ;
+ sh:name "Distribution"@en ;
+ # mandatory
+ sh:property [
+ sh:path dcat:accessURL ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] ;
+ # recommended
+ sh:property [
+ sh:path dct:format ;
+ # sh:class dct:MediaTypeOrExtent ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:issued ;
+ sh:shape :DateOrDateTimeDataType_Shape ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:modified ;
+ sh:shape :DateOrDateTimeDataType_Shape ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:temporal ;
+ sh:class dct:PeriodOfTime ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:title ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ] ;
+ # optional
+ sh:property [
+ sh:path dcat:downloadURL ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:description ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path plu:docType ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path plu:mapLayerNames ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:closed true ;
+ sh:ignoredProperties (rdf:type) ;
+ sh:targetClass dcat:Distribution .
+
+:Identifier_Shape
+ a sh:NodeShape ;
+ sh:name "Identifier"@en ;
+ sh:property [
+ sh:path skos:notation ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:closed true ;
+ sh:ignoredProperties (rdf:type) ;
+ sh:targetClass adms:Identifier .
+
+# :LicenceDocument_Shape
+# a sh:NodeShape ;
+# sh:name "Licence Document"@en ;
+# sh:property [
+# sh:path dct:type ;
+# sh:class skos:Concept ;
+# ] ;
+# sh:closed true ;
+# sh:ignoredProperties (rdf:type) ;
+# sh:targetClass dct:LicenseDocument .
+
+:Location_Shape
+ a sh:NodeShape ;
+ sh:name "Location"@en ;
+ # recommended
+ sh:property [
+ sh:path dcat:bbox ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path locn:geometry ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ] ;
+ # optional
+ sh:property [
+ sh:path dcat:centroid ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path locn:geographicName ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:closed true ;
+ sh:ignoredProperties (rdf:type) ;
+ sh:targetClass dct:Location .
+
+# :MediaTypeOrExtent_Shape
+# a sh:NodeShape ;
+# sh:name "MediaTypeOrExtent"@en ;
+# sh:property [
+# sh:nodeKind sh:BlankNodeOrIRI;
+# sh:path dcat:accessURL ;
+# ] ;
+# sh:targetClass dct:MediaTypeOrExtent .
+
+:PeriodOfTime_Shape
+ a sh:NodeShape ;
+ sh:name "PeriodOfTime"@en ;
+ # recommended
+ sh:property [
+ sh:path dcat:endDate ;
+ sh:shape :DateOrDateTimeDataType_Shape ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dcat:startDate ;
+ sh:shape :DateOrDateTimeDataType_Shape ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:closed true ;
+ sh:ignoredProperties (rdf:type) ;
+ sh:targetClass dct:PeriodOfTime .
+
+:ProcessStep_Shape
+ a sh:NodeShape ;
+ sh:name "ProcessStep"@en ;
+ # mandatory
+ sh:property [
+ sh:path plu:processStepType ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] ;
+ # recommended
+ sh:property [
+ sh:path dcat:distribution ;
+ sh:class dcat:Distribution ;
+ ], [
+ sh:path dct:identifier ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:temporal ;
+ sh:class dct:PeriodOfTime ;
+ sh:maxCount 1 ;
+ ], [
+ sh:path dct:title ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ] ;
+ # optional
+ sh:property [
+ sh:path plu:passNumber ;
+ sh:nodeKind sh:Literal ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:closed true ;
+ sh:ignoredProperties (rdf:type) ;
+ sh:targetClass plu:ProcessStep .
+
+# :Relationship_Shape
+# a sh:NodeShape ;
+# sh:name "Relationship"@en ;
+# sh:property [
+# sh:class dcat:Role ;
+# sh:minCount 1 ;
+# sh:path dct:relation ;
+# sh:severity sh:Violation
+# ], [
+# sh:minCount 1 ;
+# sh:nodeKind :DcatResource_Shape ;
+# sh:path dcat:hadRole ;
+# sh:severity sh:Violation
+# ] ;
+# sh:targetClass dcat:Relationship .
diff --git a/releases/0.2.0/shacl/dcat-ap_2.0.0_shacl_shapes.ttl b/releases/0.2.0/shacl/dcat-ap_2.0.0_shacl_shapes.ttl
new file mode 100644
index 0000000..9189185
--- /dev/null
+++ b/releases/0.2.0/shacl/dcat-ap_2.0.0_shacl_shapes.ttl
@@ -0,0 +1,696 @@
+@prefix rdf: .
+@prefix : .
+@prefix adms: .
+@prefix cc: .
+@prefix dc: .
+@prefix dcat: .
+@prefix dct: .
+@prefix foaf: .
+@prefix lcon: .
+@prefix org: .
+@prefix owl: .
+@prefix odrl: .
+@prefix prov: .
+@prefix rdfs: .
+@prefix schema: .
+@prefix sh: .
+@prefix skos: .
+@prefix spdx: .
+@prefix time: .
+@prefix vcard: .
+@prefix xsd: .
+@prefix dcatap: .
+
+
+ dcat:accessURL ;
+ dcat:downloadURL ;
+ dcatap:availability ;
+ dct:format ;
+ dct:conformsTo ;
+ dct:creator [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Bert Van Nuffelen"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Natasa Sofou"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Eugeniu Costetchi"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Makx Dekkers"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Nikolaos Loutas"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Vassilios Peristeras"
+ ] ;
+ dct:license ;
+ cc:attributionURL ;
+ dct:modified "2019-11-15"^^xsd:date ;
+ dct:publisher ;
+ dct:relation ;
+ dct:description "This document specifies the constraints on properties and classes expressed by DCAT-AP in SHACL."@en ;
+ dct:title "The constraints of DCAT Application Profile for Data Portals in Europe"@en ;
+ owl:versionInfo "2.0.0" ;
+ foaf:homepage ;
+ foaf:maker [
+ foaf:mbox ;
+ foaf:name "DCAT-AP Working Group" ;
+ foaf:page ,
+ ] .
+
+
+
+#-------------------------------------------------------------------------
+# The shapes in this file cover all classes in DCAT-AP 2.0.0.
+#
+#
+#-------------------------------------------------------------------------
+
+:Agent_Shape
+ a sh:NodeShape ;
+ sh:name "Agent"@en ;
+ sh:property [
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path foaf:name ;
+ sh:severity sh:Violation
+ ], [
+ sh:class skos:Concept ;
+ sh:maxCount 1 ;
+ sh:path dct:type ;
+ sh:severity sh:Violation
+ ] ;
+ sh:targetClass foaf:Agent .
+
+:CatalogRecord_Shape
+ a sh:NodeShape ;
+ sh:name "Catalog Record"@en ;
+ sh:property [
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:node :DcatResource_Shape ;
+ sh:path foaf:primaryTopic ;
+ sh:severity sh:Violation
+ ], [
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path dct:modified ;
+ sh:severity sh:Violation ;
+ sh:shape :DateOrDateTimeDataType_Shape
+ ], [
+ sh:class dct:Standard ;
+ sh:maxCount 1 ;
+ sh:path dct:conformsTo ;
+ sh:severity sh:Violation
+ ], [
+ sh:maxCount 1 ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:path dct:issued ;
+ sh:severity sh:Violation
+ ], [
+ sh:class skos:Concept ;
+ sh:maxCount 1 ;
+ sh:path adms:status ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:LinguisticSystem ;
+ sh:path dct:language ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:CatalogRecord ;
+ sh:maxCount 1 ;
+ sh:path dct:source ;
+ sh:severity sh:Violation
+ ], [
+ sh:nodeKind sh:Literal ;
+ sh:path dct:title ;
+ sh:severity sh:Violation
+ ], [
+ sh:nodeKind sh:Literal ;
+ sh:path dct:description ;
+ sh:severity sh:Violation
+ ] ;
+ sh:targetClass dcat:CatalogRecord .
+
+:Catalog_Shape
+ a sh:NodeShape ;
+ sh:name "Catalog"@en ;
+ sh:property [
+ sh:class dct:LinguisticSystem ;
+ sh:path dct:language ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:LicenseDocument ;
+ sh:maxCount 1 ;
+ sh:path dct:license ;
+ sh:severity sh:Violation
+ ], [
+ sh:maxCount 1 ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:path dct:issued ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:Location ;
+ sh:path dct:spatial ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:Catalog ;
+ sh:path dct:hasPart ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:Catalog ;
+ sh:maxCount 1 ;
+ sh:path dct:isPartOf ;
+ sh:severity sh:Violation
+ ], [
+ sh:maxCount 1 ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:path dct:modified ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:RightsStatement ;
+ sh:maxCount 1 ;
+ sh:path dct:rights ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:CatalogRecord ;
+ sh:path dcat:record ;
+ sh:severity sh:Violation
+ ], [
+ sh:class skos:ConceptScheme ;
+ sh:path dcat:themeTaxonomy ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:DataService ;
+ sh:path dcat:service ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:Catalog ;
+ sh:path dcat:catalog ;
+ sh:severity sh:Violation
+ ], [
+ sh:class foaf:Agent ;
+ sh:maxCount 1 ;
+ sh:path dct:creator ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:Dataset ;
+ sh:minCount 1 ;
+ sh:path dcat:dataset ;
+ sh:severity sh:Violation
+ ], [
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dct:description ;
+ sh:severity sh:Violation
+ ], [
+ sh:class foaf:Agent ;
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path dct:publisher ;
+ sh:severity sh:Violation
+ ], [
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dct:title ;
+ sh:severity sh:Violation
+ ], [
+ sh:class foaf:Document ;
+ sh:maxCount 1 ;
+ sh:path foaf:homepage ;
+ sh:severity sh:Violation
+ ] ;
+ sh:targetClass dcat:Catalog .
+
+:CategoryScheme_Shape
+ a sh:NodeShape ;
+ sh:name "Category Scheme"@en ;
+ sh:property [
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dct:title ;
+ sh:severity sh:Violation
+ ] ;
+ sh:targetClass skos:ConceptScheme .
+
+:Category_Shape
+ a sh:NodeShape ;
+ sh:name "Category"@en ;
+ sh:property [
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path skos:prefLabel ;
+ sh:severity sh:Violation
+ ] ;
+ sh:targetClass skos:Concept .
+
+:Checksum_Shape
+ a sh:NodeShape ;
+ sh:name "Category"@en ;
+ sh:property [
+ sh:hasValue spdx:checksumAlgorithm_sha1 ;
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path spdx:algorithm ;
+ sh:severity sh:Violation
+ ], [
+ sh:dateTime xsd:hexBinary ;
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path spdx:checksumValue ;
+ sh:severity sh:Violation
+ ] ;
+ sh:targetClass spdx:Checksum .
+
+:DataService_Shape
+ a sh:NodeShape ;
+ sh:name "Data Service"@en ;
+ sh:property [
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dct:title ;
+ sh:severity sh:Violation
+ ], [
+ sh:minCount 1 ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:path dcat:endpointURL ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:Dataset ;
+ sh:path dcat:servesDataset ;
+ sh:severity sh:Violation
+ ], [
+ sh:nodeKind sh:Literal ;
+ sh:path dct:description ;
+ sh:severity sh:Violation
+ ], [
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:path dcat:endpointDescription ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:LicenseDocument ;
+ sh:maxCount 1 ;
+ sh:path dct:licence ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:RightsStatement ;
+ sh:maxCount 1 ;
+ sh:path dct:accessRights ;
+ sh:severity sh:Violation
+ ] ;
+ sh:targetClass dcat:DataService .
+
+:Dataset_Shape
+ a sh:NodeShape ;
+ sh:name "Dataset"@en ;
+ sh:property [
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dct:description ;
+ sh:severity sh:Violation
+ ], [
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dct:title ;
+ sh:severity sh:Violation
+ ], [
+ sh:nodeKind sh:Literal ;
+ sh:path dct:identifier ;
+ sh:severity sh:Violation
+ ], [
+ sh:class vcard:Kind ;
+ sh:path dcat:contactPoint ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:Distribution ;
+ sh:path dcat:distribution ;
+ sh:severity sh:Violation
+ ], [
+ sh:nodeKind sh:Literal ;
+ sh:path dcat:keyword ;
+ sh:severity sh:Violation
+ ], [
+ sh:class foaf:Agent ;
+ sh:maxCount 1 ;
+ sh:path dct:publisher ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:Location ;
+ sh:path dct:spatial ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:PeriodOfTime ;
+ sh:path dct:temporal ;
+ sh:severity sh:Violation
+ ], [
+ sh:class skos:Concept ;
+ sh:path dcat:theme ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:RightsStatement ;
+ sh:maxCount 1 ;
+ sh:path dct:accessRights ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:Frequency ;
+ sh:maxCount 1 ;
+ sh:path dct:accrualPeriodicity ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:Standard ;
+ sh:path dct:conformsTo ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:Dataset ;
+ sh:path dct:hasVersion ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:Dataset ;
+ sh:path dct:isVersionOf ;
+ sh:severity sh:Violation
+ ], [
+ sh:maxCount 1 ;
+ sh:path dct:issued ;
+ sh:severity sh:Violation ;
+ sh:shape :DateOrDateTimeDataType_Shape
+ ], [
+ sh:class dct:LinguisticSystem ;
+ sh:path dct:language ;
+ sh:severity sh:Violation
+ ], [
+ sh:maxCount 1 ;
+ sh:path dct:modified ;
+ sh:severity sh:Violation ;
+ sh:shape :DateOrDateTimeDataType_Shape
+ ], [
+ sh:class dct:ProvenanceStatement ;
+ sh:path dct:provenance ;
+ sh:severity sh:Violation
+ ], [
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:path dct:relation ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:Dataset ;
+ sh:path dct:source ;
+ sh:severity sh:Violation
+ ], [
+ sh:class skos:Concept ;
+ sh:path dct:type ;
+ sh:severity sh:Violation
+ ], [
+ sh:maxCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path owl:versionInfo ;
+ sh:severity sh:Violation
+ ], [
+ sh:nodeKind sh:Literal ;
+ sh:path adms:versionNotes ;
+ sh:severity sh:Violation
+ ], [
+ sh:class adms:Identifier ;
+ sh:path adms:identifier ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:Distribution ;
+ sh:path adms:sample ;
+ sh:severity sh:Violation
+ ], [
+ sh:class foaf:Document ;
+ sh:path dcat:landingPage ;
+ sh:severity sh:Violation
+ ], [
+ sh:class foaf:Document ;
+ sh:path foaf:page ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:Relationship ;
+ sh:path dcat:qualifiedRelation ;
+ sh:severity sh:Violation
+ ], [
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:path dc:isReferencedBy ;
+ sh:severity sh:Violation
+ ], [
+ sh:class prov:Attribution ;
+ sh:path prov:qualifiedAttribution ;
+ sh:severity sh:Violation
+ ], [
+ sh:class prov:Activity ;
+ sh:path prov:wasGeneratedBy ;
+ sh:severity sh:Violation
+ ], [
+ sh:datatype xsd:duration ;
+ sh:path dcat:temporalResolution ;
+ sh:severity sh:Violation
+ ], [
+ sh:datatype xsd:decimal ;
+ sh:path dcat:spatialResolutionInMeters ;
+ sh:severity sh:Violation
+ ], [
+ sh:class foaf:Agent ;
+ sh:maxCount 1 ;
+ sh:path dct:creator ;
+ sh:severity sh:Violation
+ ] ;
+ sh:targetClass dcat:Dataset .
+
+:DateOrDateTimeDataType_Shape
+ a sh:NodeShape ;
+ rdfs:comment "Date time date disjunction shape checks that a datatype property receives a date or a dateTime literal" ;
+ rdfs:label "Date time date disjunction" ;
+ sh:message "The values must be data typed as either xsd:date or xsd:dateTime" ;
+ sh:or ([
+ sh:datatype xsd:date
+ ]
+ [
+ sh:datatype xsd:dateTime
+ ]
+ ) .
+
+:DcatResource_Shape
+ a sh:NodeShape ;
+ rdfs:comment "the union of Catalog, Dataset and DataService" ;
+ rdfs:label "dcat:Resource" ;
+ sh:message "The node is either a Catalog, Dataset or a DataService" ;
+ sh:or ([
+ sh:class dcat:Catalog
+ ]
+ [
+ sh:class dcat:Dataset
+ ]
+ [
+ sh:class dcat:DataService
+ ]
+ ) .
+
+:Distribution_Shape
+ a sh:NodeShape ;
+ sh:name "Distribution"@en ;
+ sh:property [
+ sh:class dct:Standard ;
+ sh:path dct:conformsTo ;
+ sh:severity sh:Violation
+ ], [
+ sh:maxCount 1 ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:path dct:issued ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:LinguisticSystem ;
+ sh:path dct:language ;
+ sh:severity sh:Violation
+ ], [
+ sh:maxCount 1 ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:path dct:modified ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:RightsStatement ;
+ sh:maxCount 1 ;
+ sh:path dct:rights ;
+ sh:severity sh:Violation
+ ], [
+ sh:nodeKind sh:Literal ;
+ sh:path dct:title ;
+ sh:severity sh:Violation
+ ], [
+ sh:class spdx:Checksum ;
+ sh:maxCount 1 ;
+ sh:path spdx:checksum ;
+ sh:severity sh:Violation
+ ], [
+ sh:class skos:Concept ;
+ sh:maxCount 1 ;
+ sh:path adms:status ;
+ sh:severity sh:Violation
+ ], [
+ sh:datatype xsd:decimal ;
+ sh:maxCount 1 ;
+ sh:path dcat:byteSize ;
+ sh:severity sh:Violation
+ ], [
+ sh:nodeKind sh:BlankNodeOrIRI;
+ sh:path dcat:downloadURL ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:MediaType ;
+ sh:maxCount 1 ;
+ sh:path dcat:mediaType ;
+ sh:severity sh:Violation
+ ], [
+ sh:class foaf:Document ;
+ sh:path foaf:page ;
+ sh:severity sh:Violation
+ ], [
+ sh:class odrl:Policy ;
+ sh:maxCount 1 ;
+ sh:path odrl:hasPolicy ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dcat:DataService ;
+ sh:path dcat:accessService ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:MediaType ;
+ sh:maxCount 1 ;
+ sh:path dcat:compressFormat ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:MediaType ;
+ sh:maxCount 1 ;
+ sh:path dcat:packageFormat ;
+ sh:severity sh:Violation
+ ], [
+ sh:datatype xsd:duration ;
+ sh:path dcat:temporalResolution ;
+ sh:severity sh:Violation
+ ], [
+ sh:datatype xsd:decimal ;
+ sh:path dcat:spatialResolutionInMeters ;
+ sh:severity sh:Violation
+ ], [
+ sh:minCount 1 ;
+ sh:nodeKind sh:BlankNodeOrIRI;
+ sh:path dcat:accessURL ;
+ sh:severity sh:Violation
+ ], [
+ sh:nodeKind sh:Literal ;
+ sh:path dct:description ;
+ sh:severity sh:Violation
+ ], [
+ sh:class skos:Concept ;
+ sh:maxCount 1 ;
+ sh:path dcatap:availability ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:MediaTypeOrExtent ;
+ sh:maxCount 1 ;
+ sh:path dct:format ;
+ sh:severity sh:Violation
+ ], [
+ sh:class dct:LicenseDocument ;
+ sh:maxCount 1 ;
+ sh:path dct:license ;
+ sh:severity sh:Violation
+ ] ;
+ sh:targetClass dcat:Distribution .
+
+:Identifier_Shape
+ a sh:NodeShape ;
+ sh:name "Identifier"@en ;
+ sh:property [
+ sh:maxCount 1 ;
+ sh:path skos:notation ;
+ sh:severity sh:Violation
+ ] ;
+ sh:targetClass adms:Identifier .
+
+:LicenceDocument_Shape
+ a sh:NodeShape ;
+ sh:name "Licence Document"@en ;
+ sh:property [
+ sh:class skos:Concept ;
+ sh:path dct:type ;
+ sh:severity sh:Violation
+ ] ;
+ sh:targetClass dct:LicenseDocument .
+
+:Location_Shape
+ a sh:NodeShape ;
+ sh:name "Location"@en ;
+ sh:property [
+ sh:maxCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dcat:bbox ;
+ sh:severity sh:Violation
+ ], [
+ sh:maxCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dcat:centroid ;
+ sh:severity sh:Violation
+ ], [
+ sh:maxCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path lcon:geometry ;
+ sh:severity sh:Violation
+ ] ;
+ sh:targetClass dct:Location .
+
+:PeriodOfTime_Shape
+ a sh:NodeShape ;
+ sh:name "PeriodOfTime"@en ;
+ sh:property [
+ sh:maxCount 1 ;
+ sh:path dcat:endDate ;
+ sh:severity sh:Violation ;
+ sh:shape :DateOrDateTimeDataType_Shape
+ ], [
+ sh:class time:Instant ;
+ sh:maxCount 1 ;
+ sh:path time:hasBeginning ;
+ sh:severity sh:Violation
+ ], [
+ sh:class time:Instant ;
+ sh:maxCount 1 ;
+ sh:path time:hasEnd ;
+ sh:severity sh:Violation
+ ], [
+ sh:maxCount 1 ;
+ sh:path dcat:startDate ;
+ sh:severity sh:Violation ;
+ sh:shape :DateOrDateTimeDataType_Shape
+ ] ;
+ sh:targetClass dct:PeriodOfTime .
+
+:Relationship_Shape
+ a sh:NodeShape ;
+ sh:name "Relationship"@en ;
+ sh:property [
+ sh:class dcat:Role ;
+ sh:minCount 1 ;
+ sh:path dct:relation ;
+ sh:severity sh:Violation
+ ], [
+ sh:minCount 1 ;
+ sh:nodeKind :DcatResource_Shape ;
+ sh:path dcat:hadRole ;
+ sh:severity sh:Violation
+ ] ;
+ sh:targetClass dcat:Relationship .
+
diff --git a/releases/0.2.0/shacl/dcat-ap_2.1.1_shacl_shapes.ttl b/releases/0.2.0/shacl/dcat-ap_2.1.1_shacl_shapes.ttl
new file mode 100644
index 0000000..6e6e820
--- /dev/null
+++ b/releases/0.2.0/shacl/dcat-ap_2.1.1_shacl_shapes.ttl
@@ -0,0 +1,856 @@
+@prefix rdf: .
+@prefix : .
+@prefix adms: .
+@prefix cc: .
+@prefix dc: .
+@prefix dcat: .
+@prefix dct: .
+@prefix foaf: .
+@prefix locn: .
+@prefix org: .
+@prefix owl: .
+@prefix odrl: .
+@prefix prov: .
+@prefix rdfs: .
+@prefix schema: .
+@prefix sh: .
+@prefix skos: .
+@prefix spdx: .
+@prefix time: .
+@prefix vcard: .
+@prefix xsd: .
+@prefix dcatap: .
+
+
+ dcat:accessURL ;
+ dcat:downloadURL ;
+ dcatap:availability ;
+ dct:format ;
+ dct:conformsTo ;
+ dct:creator [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Bert Van Nuffelen"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Natasa Sofou"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Eugeniu Costetchi"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Makx Dekkers"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Nikolaos Loutas"
+ ], [
+ rdfs:seeAlso ;
+ org:memberOf ;
+ foaf:homepage ;
+ foaf:name "Vassilios Peristeras"
+ ] ;
+ dct:license ;
+ cc:attributionURL ;
+ dct:modified "2021-12-01"^^xsd:date ;
+ dct:publisher ;
+ dct:relation ;
+ dct:description "This document specifies the constraints on properties and classes expressed by DCAT-AP in SHACL."@en ;
+ dct:title "The constraints of DCAT Application Profile for Data Portals in Europe"@en ;
+ owl:versionInfo "2.1.1" ;
+ foaf:homepage ;
+ foaf:maker [
+ foaf:mbox ;
+ foaf:name "DCAT-AP Working Group" ;
+ foaf:page ,
+ ] .
+
+
+
+#-------------------------------------------------------------------------
+# The shapes in this file cover all classes in DCAT-AP 2.1.1.
+# It covers all constraints that must be satisfied except those checking the ranges.
+#
+#-------------------------------------------------------------------------
+
+:Agent_Property_dct_type
+ sh:maxCount 1 ;
+ sh:path dct:type ;
+ sh:severity sh:Violation .
+
+:Agent_Property_foaf_name
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path foaf:name ;
+ sh:severity sh:Violation .
+
+:Agent_Shape
+ a sh:NodeShape ;
+ sh:name "Agent"@en ;
+ sh:property :Agent_Property_dct_type ;
+ sh:property :Agent_Property_foaf_name ;
+ sh:targetClass foaf:Agent .
+
+
+:CatalogRecord_Property_foaf_primaryTopic
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:node :DcatResource_Shape ;
+ sh:path foaf:primaryTopic ;
+ sh:severity sh:Violation .
+
+:CatalogRecord_Property_dct_modified
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path dct:modified ;
+ sh:severity sh:Violation ;
+ sh:node :DateOrDateTimeDataType_Shape .
+
+:CatalogRecord_Property_dct_conformsTo
+ sh:maxCount 1 ;
+ sh:path dct:conformsTo ;
+ sh:severity sh:Violation .
+
+:CatalogRecord_Property_dct_issued
+ sh:maxCount 1 ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:path dct:issued ;
+ sh:severity sh:Violation .
+
+:CatalogRecord_Property_adms_status
+ sh:maxCount 1 ;
+ sh:path adms:status ;
+ sh:severity sh:Violation .
+
+:CatalogRecord_Property_dct_language
+ sh:path dct:language ;
+ sh:severity sh:Violation .
+
+:CatalogRecord_Property_dct_source
+ sh:maxCount 1 ;
+ sh:path dct:source ;
+ sh:severity sh:Violation .
+
+:CatalogRecord_Property_dct_title
+ sh:nodeKind sh:Literal ;
+ sh:path dct:title ;
+ sh:severity sh:Violation .
+
+:CatalogRecord_Property_dct_description
+ sh:nodeKind sh:Literal ;
+ sh:path dct:description ;
+ sh:severity sh:Violation .
+
+:CatalogRecord_Shape
+ a sh:NodeShape ;
+ sh:name "Catalog Record"@en ;
+ sh:property :CatalogRecord_Property_adms_status ;
+ sh:property :CatalogRecord_Property_dct_conformsTo ;
+ sh:property :CatalogRecord_Property_dct_description ;
+ sh:property :CatalogRecord_Property_dct_issued ;
+ sh:property :CatalogRecord_Property_dct_language ;
+ sh:property :CatalogRecord_Property_dct_modified ;
+ sh:property :CatalogRecord_Property_dct_source ;
+ sh:property :CatalogRecord_Property_dct_title ;
+ sh:property :CatalogRecord_Property_foaf_primaryTopic ;
+ sh:targetClass dcat:CatalogRecord .
+
+
+:Catalog_Property_dct_language
+ sh:path dct:language ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dct_license
+ sh:maxCount 1 ;
+ sh:path dct:license ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dct_issued
+ sh:maxCount 1 ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:path dct:issued ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dct_spatial
+ sh:path dct:spatial ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dct_hasPart
+ sh:path dct:hasPart ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dct_isPartOf
+ sh:maxCount 1 ;
+ sh:path dct:isPartOf ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dct_modified
+ sh:maxCount 1 ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:path dct:modified ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dct_rights
+ sh:maxCount 1 ;
+ sh:path dct:rights ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dcat_record
+ sh:path dcat:record ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dcat_themeTaxonomy
+ sh:path dcat:themeTaxonomy ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dcat_service
+ sh:path dcat:service ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dcat_catalog
+ sh:path dcat:catalog ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dct_creator
+ sh:path dct:creator ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dcat_dataset
+ sh:path dcat:dataset ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dct_description
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dct:description ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dct_publisher
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path dct:publisher ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_dct_title
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dct:title ;
+ sh:severity sh:Violation .
+
+:Catalog_Property_foaf_homepage
+ sh:maxCount 1 ;
+ sh:path foaf:homepage ;
+ sh:severity sh:Violation .
+
+:Catalog_Shape
+ a sh:NodeShape ;
+ sh:name "Catalog"@en ;
+ sh:property :Catalog_Property_dcat_catalog ;
+ sh:property :Catalog_Property_dcat_dataset ;
+ sh:property :Catalog_Property_dcat_record ;
+ sh:property :Catalog_Property_dcat_service ;
+ sh:property :Catalog_Property_dcat_themeTaxonomy ;
+ sh:property :Catalog_Property_dct_creator ;
+ sh:property :Catalog_Property_dct_description ;
+ sh:property :Catalog_Property_dct_hasPart ;
+ sh:property :Catalog_Property_dct_isPartOf ;
+ sh:property :Catalog_Property_dct_issued ;
+ sh:property :Catalog_Property_dct_language ;
+ sh:property :Catalog_Property_dct_license ;
+ sh:property :Catalog_Property_dct_modified ;
+ sh:property :Catalog_Property_dct_publisher ;
+ sh:property :Catalog_Property_dct_rights ;
+ sh:property :Catalog_Property_dct_spatial ;
+ sh:property :Catalog_Property_dct_title ;
+ sh:property :Catalog_Property_foaf_homepage ;
+ sh:targetClass dcat:Catalog .
+
+
+:CategoryScheme_Property_dct_title
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dct:title ;
+ sh:severity sh:Violation .
+
+:CategoryScheme_Shape
+ a sh:NodeShape ;
+ sh:name "Category Scheme"@en ;
+ sh:property :CategoryScheme_Property_dct_title ;
+ sh:targetClass skos:ConceptScheme .
+
+
+:Category_Property_skos_prefLabel
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path skos:prefLabel ;
+ sh:severity sh:Violation .
+
+:Category_Shape
+ a sh:NodeShape ;
+ sh:name "Category"@en ;
+ sh:property :Category_Property_skos_prefLabel ;
+ sh:targetClass skos:Concept .
+
+
+:Checksum_Property_spdx_algorithm
+ sh:hasValue spdx:checksumAlgorithm_sha1 ;
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path spdx:algorithm ;
+ sh:severity sh:Violation .
+
+:Checksum_Property_spdx_checksumValue
+ sh:datatype xsd:hexBinary ;
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path spdx:checksumValue ;
+ sh:severity sh:Violation .
+
+:Checksum_Shape
+ a sh:NodeShape ;
+ sh:name "Checksum"@en ;
+ sh:property :Checksum_Property_spdx_algorithm ;
+ sh:property :Checksum_Property_spdx_checksumValue ;
+ sh:targetClass spdx:Checksum .
+
+
+:DataService_Property_dct_title
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dct:title ;
+ sh:severity sh:Violation .
+
+:DataService_Property_dcat_endpointURL
+ sh:minCount 1 ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:path dcat:endpointURL ;
+ sh:severity sh:Violation .
+
+:DataService_Property_dcat_servesDataset
+ sh:path dcat:servesDataset ;
+ sh:severity sh:Violation .
+
+:DataService_Property_dct_description
+ sh:nodeKind sh:Literal ;
+ sh:path dct:description ;
+ sh:severity sh:Violation .
+
+:DataService_Property_dcat_endpointDescription
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:path dcat:endpointDescription ;
+ sh:severity sh:Violation .
+
+:DataService_Property_dct_license
+ sh:maxCount 1 ;
+ sh:path dct:license ;
+ sh:severity sh:Violation .
+
+:DataService_Property_dct_accessRights
+ sh:maxCount 1 ;
+ sh:path dct:accessRights ;
+ sh:severity sh:Violation .
+
+:DataService_Shape
+ a sh:NodeShape ;
+ sh:name "Data Service"@en ;
+ sh:property :DataService_Property_dcat_endpointDescription ;
+ sh:property :DataService_Property_dcat_endpointURL ;
+ sh:property :DataService_Property_dcat_servesDataset ;
+ sh:property :DataService_Property_dct_accessRights ;
+ sh:property :DataService_Property_dct_description ;
+ sh:property :DataService_Property_dct_license ;
+ sh:property :DataService_Property_dct_title ;
+ sh:targetClass dcat:DataService .
+
+
+:Dataset_Property_dct_description
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dct:description ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_title
+ sh:minCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dct:title ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_identifier
+ sh:nodeKind sh:Literal ;
+ sh:path dct:identifier ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dcat_contactPoint
+ sh:path dcat:contactPoint ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dcat_distribution
+ sh:path dcat:distribution ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dcat_keyword
+ sh:nodeKind sh:Literal ;
+ sh:path dcat:keyword ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_publisher
+ sh:maxCount 1 ;
+ sh:path dct:publisher ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_spatial
+ sh:path dct:spatial ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_temporal
+ sh:path dct:temporal ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dcat_theme
+ sh:path dcat:theme ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_accessRights
+ sh:maxCount 1 ;
+ sh:path dct:accessRights ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_accrualPeriodicity
+ sh:maxCount 1 ;
+ sh:path dct:accrualPeriodicity ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_conformsTo
+ sh:path dct:conformsTo ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_hasVersion
+ sh:path dct:hasVersion ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_isVersionOf
+ sh:path dct:isVersionOf ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_issued
+ sh:maxCount 1 ;
+ sh:path dct:issued ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_language
+ sh:path dct:language ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_modified
+ sh:maxCount 1 ;
+ sh:path dct:modified ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_provenance
+ sh:path dct:provenance ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_relation
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:path dct:relation ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_source
+ sh:path dct:source ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_type
+ sh:path dct:type ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_owl_versionInfo
+ sh:maxCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path owl:versionInfo ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_adms_versionNotes
+ sh:nodeKind sh:Literal ;
+ sh:path adms:versionNotes ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_adms_identifier
+ sh:path adms:identifier ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_adms_sample
+ sh:path adms:sample ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dcat_landingPage
+ sh:path dcat:landingPage ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_foaf_page
+ sh:path foaf:page ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dcat_qualifiedRelation
+ sh:path dcat:qualifiedRelation ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dc_isReferencedBy
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:path dc:isReferencedBy ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_prov_qualifiedAttribution
+ sh:path prov:qualifiedAttribution ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_prov_wasGeneratedBy
+ sh:path prov:wasGeneratedBy ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dcat_temporalResolution
+ sh:datatype xsd:duration ;
+ sh:maxCount 1 ;
+ sh:path dcat:temporalResolution ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dcat_spatialResolutionInMeters
+ sh:datatype xsd:decimal ;
+ sh:maxCount 1 ;
+ sh:path dcat:spatialResolutionInMeters ;
+ sh:severity sh:Violation .
+
+:Dataset_Property_dct_creator
+ sh:path dct:creator ;
+ sh:severity sh:Violation .
+
+:Dataset_Shape
+ a sh:NodeShape ;
+ sh:name "Dataset"@en ;
+ sh:property :Dataset_Property_adms_identifier ;
+ sh:property :Dataset_Property_adms_sample ;
+ sh:property :Dataset_Property_adms_versionNotes ;
+ sh:property :Dataset_Property_dc_isReferencedBy ;
+ sh:property :Dataset_Property_dcat_contactPoint ;
+ sh:property :Dataset_Property_dcat_distribution ;
+ sh:property :Dataset_Property_dcat_keyword ;
+ sh:property :Dataset_Property_dcat_landingPage ;
+ sh:property :Dataset_Property_dcat_qualifiedRelation ;
+ sh:property :Dataset_Property_dcat_spatialResolutionInMeters ;
+ sh:property :Dataset_Property_dcat_temporalResolution ;
+ sh:property :Dataset_Property_dcat_theme ;
+ sh:property :Dataset_Property_dct_accessRights ;
+ sh:property :Dataset_Property_dct_accrualPeriodicity ;
+ sh:property :Dataset_Property_dct_conformsTo ;
+ sh:property :Dataset_Property_dct_creator ;
+ sh:property :Dataset_Property_dct_description ;
+ sh:property :Dataset_Property_dct_hasVersion ;
+ sh:property :Dataset_Property_dct_identifier ;
+ sh:property :Dataset_Property_dct_isVersionOf ;
+ sh:property :Dataset_Property_dct_issued ;
+ sh:property :Dataset_Property_dct_language ;
+ sh:property :Dataset_Property_dct_modified ;
+ sh:property :Dataset_Property_dct_provenance ;
+ sh:property :Dataset_Property_dct_publisher ;
+ sh:property :Dataset_Property_dct_relation ;
+ sh:property :Dataset_Property_dct_source ;
+ sh:property :Dataset_Property_dct_spatial ;
+ sh:property :Dataset_Property_dct_temporal ;
+ sh:property :Dataset_Property_dct_title ;
+ sh:property :Dataset_Property_dct_type ;
+ sh:property :Dataset_Property_foaf_page ;
+ sh:property :Dataset_Property_owl_versionInfo ;
+ sh:property :Dataset_Property_prov_qualifiedAttribution ;
+ sh:property :Dataset_Property_prov_wasGeneratedBy ;
+ sh:targetClass dcat:Dataset .
+
+
+:Distribution_Property_dct_conformsTo
+ sh:path dct:conformsTo ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dct_issued
+ sh:maxCount 1 ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:path dct:issued ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dct_language
+ sh:path dct:language ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dct_modified
+ sh:maxCount 1 ;
+ sh:node :DateOrDateTimeDataType_Shape ;
+ sh:path dct:modified ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dct_rights
+ sh:maxCount 1 ;
+ sh:path dct:rights ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dct_title
+ sh:nodeKind sh:Literal ;
+ sh:path dct:title ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_spdx_checksum
+ sh:maxCount 1 ;
+ sh:path spdx:checksum ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_adms_status
+ sh:maxCount 1 ;
+ sh:path adms:status ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dcat_byteSize
+ sh:datatype xsd:decimal ;
+ sh:maxCount 1 ;
+ sh:path dcat:byteSize ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dcat_downloadURL
+ sh:nodeKind sh:BlankNodeOrIRI;
+ sh:path dcat:downloadURL ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dcat_mediaType
+ sh:maxCount 1 ;
+ sh:path dcat:mediaType ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_foaf_page
+ sh:path foaf:page ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_odrl_hasPolicy
+ sh:maxCount 1 ;
+ sh:path odrl:hasPolicy ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dcat_accessService
+ sh:path dcat:accessService ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dcat_compressFormat
+ sh:maxCount 1 ;
+ sh:path dcat:compressFormat ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dcat_packageFormat
+ sh:maxCount 1 ;
+ sh:path dcat:packageFormat ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dcat_temporalResolution
+ sh:datatype xsd:duration ;
+ sh:maxCount 1 ;
+ sh:path dcat:temporalResolution ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dcat_spatialResolutionInMeters
+ sh:datatype xsd:decimal ;
+ sh:maxCount 1 ;
+ sh:path dcat:spatialResolutionInMeters ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dcat_accessURL
+ sh:minCount 1 ;
+ sh:nodeKind sh:BlankNodeOrIRI;
+ sh:path dcat:accessURL ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dct_description
+ sh:nodeKind sh:Literal ;
+ sh:path dct:description ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dcatap_availability
+ sh:maxCount 1 ;
+ sh:path dcatap:availability ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dct_format
+ sh:maxCount 1 ;
+ sh:path dct:format ;
+ sh:severity sh:Violation .
+
+:Distribution_Property_dct_license
+ sh:maxCount 1 ;
+ sh:path dct:license ;
+ sh:severity sh:Violation .
+
+
+:Distribution_Shape
+ a sh:NodeShape ;
+ sh:name "Distribution"@en ;
+ sh:property :Distribution_Property_adms_status ;
+ sh:property :Distribution_Property_dcat_accessService ;
+ sh:property :Distribution_Property_dcat_accessURL ;
+ sh:property :Distribution_Property_dcat_byteSize ;
+ sh:property :Distribution_Property_dcat_compressFormat ;
+ sh:property :Distribution_Property_dcat_downloadURL ;
+ sh:property :Distribution_Property_dcat_mediaType ;
+ sh:property :Distribution_Property_dcat_packageFormat ;
+ sh:property :Distribution_Property_dcat_spatialResolutionInMeters ;
+ sh:property :Distribution_Property_dcat_temporalResolution ;
+ sh:property :Distribution_Property_dcatap_availability ;
+ sh:property :Distribution_Property_dct_conformsTo ;
+ sh:property :Distribution_Property_dct_description ;
+ sh:property :Distribution_Property_dct_format ;
+ sh:property :Distribution_Property_dct_issued ;
+ sh:property :Distribution_Property_dct_language ;
+ sh:property :Distribution_Property_dct_license ;
+ sh:property :Distribution_Property_dct_modified ;
+ sh:property :Distribution_Property_dct_rights ;
+ sh:property :Distribution_Property_dct_title ;
+ sh:property :Distribution_Property_foaf_page ;
+ sh:property :Distribution_Property_odrl_hasPolicy ;
+ sh:property :Distribution_Property_spdx_checksum ;
+ sh:targetClass dcat:Distribution .
+
+
+:Identifier_Property_skos_notation
+ sh:maxCount 1 ;
+ sh:path skos:notation ;
+ sh:severity sh:Violation .
+
+:Identifier_Shape
+ a sh:NodeShape ;
+ sh:name "Identifier"@en ;
+ sh:property :Identifier_Property_skos_notation ;
+ sh:targetClass adms:Identifier .
+
+
+:LicenceDocument_Property_dct_type
+ sh:path dct:type ;
+ sh:severity sh:Violation .
+
+:LicenceDocument_Shape
+ a sh:NodeShape ;
+ sh:name "Licence Document"@en ;
+ sh:property :LicenceDocument_Property_dct_type ;
+ sh:targetClass dct:LicenseDocument .
+
+
+:Location_Property_dcat_bbox
+ sh:maxCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dcat:bbox ;
+ sh:severity sh:Violation .
+
+:Location_Property_dcat_centroid
+ sh:maxCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path dcat:centroid ;
+ sh:severity sh:Violation .
+
+:Location_Property_locn_geometry
+ sh:maxCount 1 ;
+ sh:nodeKind sh:Literal ;
+ sh:path locn:geometry ;
+ sh:severity sh:Violation .
+
+:Location_Shape
+ a sh:NodeShape ;
+ sh:name "Location"@en ;
+ sh:property :Location_Property_dcat_bbox ;
+ sh:property :Location_Property_dcat_centroid ;
+ sh:property :Location_Property_locn_geometry ;
+ sh:targetClass dct:Location .
+
+
+:PeriodOfTime_Property_dcat_startDate
+ sh:maxCount 1 ;
+ sh:path dcat:startDate ;
+ sh:severity sh:Violation ;
+ sh:node :DateOrDateTimeDataType_Shape .
+
+:PeriodOfTime_Property_dcat_endDate
+ sh:maxCount 1 ;
+ sh:path dcat:endDate ;
+ sh:severity sh:Violation ;
+ sh:node :DateOrDateTimeDataType_Shape .
+
+:PeriodOfTime_Property_time_hasBeginning
+ sh:maxCount 1 ;
+ sh:path time:hasBeginning ;
+ sh:severity sh:Violation .
+
+:PeriodOfTime_Property_time_hasEnd
+ sh:maxCount 1 ;
+ sh:path time:hasEnd ;
+ sh:severity sh:Violation .
+
+:PeriodOfTime_Shape
+ a sh:NodeShape ;
+ sh:name "PeriodOfTime"@en ;
+ sh:property :PeriodOfTime_Property_dcat_startDate ;
+ sh:property :PeriodOfTime_Property_dcat_endDate ;
+ sh:property :PeriodOfTime_Property_time_hasBeginning ;
+ sh:property :PeriodOfTime_Property_time_hasEnd ;
+ sh:targetClass dct:PeriodOfTime .
+
+
+:Relationship_Property_dct_relation
+ sh:minCount 1 ;
+ sh:path dct:relation ;
+ sh:severity sh:Violation .
+
+:Relationship_Property_dcat_hadRole
+ sh:minCount 1 ;
+ sh:path dcat:hadRole ;
+ sh:severity sh:Violation .
+
+:Relationship_Shape
+ a sh:NodeShape ;
+ sh:name "Relationship"@en ;
+ sh:property :Relationship_Property_dcat_hadRole ;
+ sh:property :Relationship_Property_dct_relation ;
+ sh:targetClass dcat:Relationship .
+
+
+:DateOrDateTimeDataType_Shape
+ a sh:NodeShape ;
+ rdfs:comment "Date time date disjunction shape checks that a datatype property receives a temporal value: date, dateTime, gYear or gYearMonth literal"@en ;
+ rdfs:label "Date time date disjunction"@en ;
+ sh:message "The values must be data typed as either xsd:date, xsd:dateTime, xsd:gYear or xsd:gYearMonth"@en ;
+ sh:or ([
+ sh:datatype xsd:date
+ ]
+ [
+ sh:datatype xsd:dateTime
+ ]
+ [
+ sh:datatype xsd:gYear
+ ]
+ [
+ sh:datatype xsd:gYearMonth
+ ]
+ ) .
+
+:DcatResource_Shape
+ a sh:NodeShape ;
+ rdfs:comment "the union of Catalog, Dataset and DataService"@en ;
+ rdfs:label "dcat:Resource"@en ;
+ sh:message "The node is either a Catalog, Dataset or a DataService"@en ;
+ sh:or ([
+ sh:class dcat:Catalog
+ ]
+ [
+ sh:class dcat:Dataset
+ ]
+ [
+ sh:class dcat:DataService
+ ]) .
\ No newline at end of file
diff --git a/releases/0.2.0/styles/small.css b/releases/0.2.0/styles/small.css
new file mode 100644
index 0000000..f2dc546
--- /dev/null
+++ b/releases/0.2.0/styles/small.css
@@ -0,0 +1,20 @@
+
+#respecDocument {
+ padding-left: 30px;
+ padding-right: 2px;
+}
+
+div.specterm {
+ padding-left: 2px;
+ padding-right: 2px;
+}
+
+.specterm table {
+ max-width: calc( 100% - 4px);
+ word-wrap: break-word ;
+ overflow-wrap: break-word;
+}
+
+.specterm table tbody th, .specterm table tbody td {
+ padding: 2px;
+}
\ No newline at end of file
diff --git a/releases/0.2.0/styles/style.css b/releases/0.2.0/styles/style.css
new file mode 100644
index 0000000..739b3d0
--- /dev/null
+++ b/releases/0.2.0/styles/style.css
@@ -0,0 +1,149 @@
+/* Force W3C logo to site side by side with OGC logo */
+.head img[src*="logos/W3C"] {
+ display: inherit !important;
+}
+.head a:hover > img[src*='ogc'] {
+ opacity: 0.8;
+}
+
+/* Styles to replicate key LODS styles */
+
+ul.hlist {
+ list-style-type:none;
+ background-color: #eee;
+}
+ul.hlist li {
+ display:inline;
+ margin-right: 1em;
+ font-size:smaller;
+}
+.entity {
+ border: 0px solid black;
+ padding: 1.5em;
+ margin-top: 1.5em;
+}
+.entity h4 {
+ margin-top:0;
+}
+.entity dl {
+ border: dashed thin black;
+ border-width:0px 0;
+ background-color:#eee;
+ margin: 0 0.5em;
+}
+p.iri::before {
+ content: "IRI: ";
+ font-weight: bold;
+ font-family:sans-serif;
+}
+p.iri {
+ font-family:monospace;
+}
+span.logic {
+ font-weight:bold;
+ color:purple;
+}
+span.dotted {
+ text-decoration-line:underline;
+ text-decoration-style: dotted;
+ text-decoration-color:black;
+}
+
+/* Styles to replicate key SpecGen styles */
+
+.specterm {
+ margin-top: 1em;
+}
+
+.specterm h4 {
+ margin-top: 1em;
+}
+
+.specterm table {
+ margin-top: 0.5em;
+}
+
+section.specterm {
+ padding-left: 1.5em;
+ padding-right: 1.5em;
+ padding-top: 0.1ex;
+ padding-bottom: 0.1ex;
+}
+
+.azlist {
+ margin-top: 10pt;
+ padding: 5px;
+ border: 1px solid #e3dcf2;
+}
+
+
+/* Styles added by Kerry for formatting code including ttl */
+.tab1 {
+ text-indent: 24pt;
+}
+.tab2 {
+ text-indent: 48pt;
+}
+.tab3 {
+ text-indent: 72pt;
+}
+.tab4 {
+ text-indent: 96pt;
+}
+.tab5 {
+ text-indent: 120pt;
+}
+
+/* Styles added by Simon for clean table borders */
+
+table {
+ width: 100%;
+ border-collapse: collapse;
+}
+
+th {
+ background-color: #f2f2f2;
+}
+
+th, td {
+ border: 1px solid #ddd;
+}
+
+th, td {
+ padding: 10px;
+ text-align: left;
+}
+
+.specterm h5 , .specterm h6 {
+ font-weight: bold;
+ font-style: normal;
+ font-variant: normal;
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+section.specterm, section.specterm th{
+ background-color: #c7eae5;
+}
+
+section.specterm.sosa, section.specterm.sosa th{
+ background-color: #c7eae5;
+}
+
+section.specterm.ssn, section.specterm.ssn th, section.specterm.sosa tr.ssn, section.specterm.sosa tr.ssn th {
+ background-color: #67a9cf;
+}
+
+
+.buttonpanel {
+ display: flex;
+ justify-content: flex-end ;
+ margin-top: 1ex;
+ margin-bottom: 1ex;
+ padding-left: 1ex;
+ padding-right: 1ex;
+ padding-top: 1ex;
+ padding-bottom: 0.6ex;
+ border: 0px dotted black;
+ font-size: small;
+}