From 02e8ffe1b1eb99c2a2aa7ef5d9062c087b29471b Mon Sep 17 00:00:00 2001 From: Pano Maria Date: Wed, 6 Mar 2024 10:47:23 +0100 Subject: [PATCH] configure optionaliteit further --- shapes/dcat-ap-OPT.ttl | 22 ++-- shapes/dcat-ap-nl-OPT.ttl | 209 +++++++++++++++++++++++++++++++++++- shapes/dcat-ap-nl-SHACL.ttl | 76 ++++++++++++- 3 files changed, 292 insertions(+), 15 deletions(-) diff --git a/shapes/dcat-ap-OPT.ttl b/shapes/dcat-ap-OPT.ttl index efe319a..c9fb8ce 100644 --- a/shapes/dcat-ap-OPT.ttl +++ b/shapes/dcat-ap-OPT.ttl @@ -1,3 +1,7 @@ +#################################################################### +# This file is derived from DCAT-AP 3.0.0 +# https://semiceu.github.io/DCAT-AP/releases/3.0.0/#quick-reference +#################################################################### @prefix adms: . @prefix dct: . @prefix dcat: . @@ -200,17 +204,17 @@ dcatapsh:DataServiceShape sh:property dcatapsh:dcatDataService_dcat-endpointURL , dcatapsh:dcatDataService_dct-title , - # dcatapsh:dcatDataService_dct-conformsTo , + dcatapsh:dcatDataService_dct-conformsTo , dcatapsh:dcatDataService_dcat-contactPoint , dcatapsh:dcatDataService_dcat-endpointDescription , - # dcatapsh:dcatDataService_dcat-keyword , - # dcatapsh:dcatDataService_dct-publisher , + dcatapsh:dcatDataService_dcat-keyword , + dcatapsh:dcatDataService_dct-publisher , dcatapsh:dcatDataService_dcat-servesDataset , - # dcatapsh:dcatDataService_dcat-theme , + dcatapsh:dcatDataService_dcat-theme , dcatapsh:dcatDataService_dct-accessRights , dcatapsh:dcatDataService_dct-description , dcatapsh:dcatDataService_dct-format , - # dcatapsh:dcatDataService_dcat-landingPage , + dcatapsh:dcatDataService_dcat-landingPage , dcatapsh:dcatDataService_dct-license . dcatapsh:dcatDataService_dcat-endpointURL @@ -283,7 +287,7 @@ dcatapsh:DatasetShape dcatapsh:dcatDataset_dct-temporal , dcatapsh:dcatDataset_dcat-theme , dcatapsh:dcatDataset_dct-accessRights , - # dcatapsh:dcatDataset_dcatap-applicableLegislation , + dcatapsh:dcatDataset_dcatap-applicableLegislation , dcatapsh:dcatDataset_dct-conformsTo , dcatapsh:dcatDataset_dct-creator , dcatapsh:dcatDataset_foaf-page , @@ -463,7 +467,7 @@ dcatapsh:DatasetSeriesShape dcatapsh:dcatDatasetSeries_dct-spatial , dcatapsh:dcatDatasetSeries_dct-publisher , dcatapsh:dcatDatasetSeries_dct-temporal , - # dcatapsh:dcatDatasetSeries_dcatap-applicableLegislation , + dcatapsh:dcatDatasetSeries_dcatap-applicableLegislation , dcatapsh:dcatDatasetSeries_dct-description , dcatapsh:dcatDatasetSeries_dct-accrualPeriodicity , dcatapsh:dcatDatasetSeries_dct-modified , @@ -517,7 +521,7 @@ dcatapsh:DistributionShape dcatapsh:dcatDistribution_dct-format , dcatapsh:dcatDistribution_dct-license , dcatapsh:dcatDistribution_dcat-accessService , - # dcatapsh:dcatDistribution_dcatap:applicableLegislation , + dcatapsh:dcatDistribution_dcatap-applicableLegislation , dcatapsh:dcatDistribution_dcatap-availability , dcatapsh:dcatDistribution_dcat-byteSize , dcatapsh:dcatDistribution_spdx-checksum , @@ -554,7 +558,7 @@ dcatapsh:dcatDistribution_dcat-accessService sh:path dcat:accessService ; todo_opt:optionaliteit todo_opt:optioneel . -dcatapsh:dcatDistribution_dcatap:applicableLegislation +dcatapsh:dcatDistribution_dcatap-applicableLegislation sh:path dcatap:applicableLegislation ; todo_opt:optionaliteit todo_opt:optioneel . diff --git a/shapes/dcat-ap-nl-OPT.ttl b/shapes/dcat-ap-nl-OPT.ttl index 29b732b..c9e5c76 100644 --- a/shapes/dcat-ap-nl-OPT.ttl +++ b/shapes/dcat-ap-nl-OPT.ttl @@ -107,5 +107,210 @@ dcatapnl:DatasetShape_theme_opt # dcat:Distribution ########################################### -# dcatapnl:DistributionShape -# . +dcatapnl:DistributionShape + sh:property + dcatapnl:DistributionShape_accessService_opt, + dcatapnl:DistributionShape_applicableLegislation_opt, + dcatapnl:DistributionShape_byteSize_opt, + dcatapnl:DistributionShape_downloadURL_opt, + dcatapnl:DistributionShape_format_opt, + dcatapnl:DistributionShape_language_opt, + dcatapnl:DistributionShape_license_opt, + dcatapnl:DistributionShape_linkedSchemas_opt, + dcatapnl:DistributionShape_mediaType_opt, + dcatapnl:DistributionShape_rights_opt +. + +dcatapnl:DistributionShape_accessService_opt + sh:path dcat:accessService; + todo_opt:optionaliteit todo_opt:aanbevolen +. + +dcatapnl:DistributionShape_applicableLegislation_opt + sh:path dcatap:applicableLegislation; + todo_opt:optionaliteit todo_opt:conditioneel +. + +dcatapnl:DistributionShape_byteSize_opt + sh:path dcat:byteSize; + todo_opt:optionaliteit todo_opt:conditioneel +. + +dcatapnl:DistributionShape_downloadURL_opt + sh:path dcat:downloadURL; + todo_opt:optionaliteit todo_opt:aanbevolen +. + +dcatapnl:DistributionShape_format_opt + sh:path dct:format; + todo_opt:optionaliteit todo_opt:conditioneel +. + +dcatapnl:DistributionShape_language_opt + sh:path dct:language; + todo_opt:optionaliteit todo_opt:aanbevolen +. + +dcatapnl:DistributionShape_license_opt + sh:path dct:license; + todo_opt:optionaliteit todo_opt:verplicht +. + +dcatapnl:DistributionShape_linkedSchemas_opt + sh:path dct:conformsTo; + todo_opt:optionaliteit todo_opt:aanbevolen +. + +dcatapnl:DistributionShape_mediaType_opt + sh:path dcat:mediaType; + todo_opt:optionaliteit todo_opt:conditioneel +. + +dcatapnl:DistributionShape_rights_opt + sh:path dct:rights; + todo_opt:optionaliteit todo_opt:conditioneel +. + + +########################################### +# dcat:DataService +########################################### + +dcatapnl:DataServiceShape + sh:property + dcatapnl:DataServiceShape_accessRights_opt, + dcatapnl:DataServiceShape_applicableLegislation_opt, + dcatapnl:DataServiceShape_applicationProfile_opt, + dcatapnl:DataServiceShape_contactPoint_opt, + dcatapnl:DataServiceShape_creator_opt, + dcatapnl:DataServiceShape_description_opt, + dcatapnl:DataServiceShape_documentation_opt, + dcatapnl:DataServiceShape_endpointDescription_opt, + dcatapnl:DataServiceShape_hvdCategory_opt, + dcatapnl:DataServiceShape_identifier_opt, + dcatapnl:DataServiceShape_keyword_opt, + dcatapnl:DataServiceShape_language_opt, + dcatapnl:DataServiceShape_license_opt, + dcatapnl:DataServiceShape_modified_opt, + dcatapnl:DataServiceShape_otherIdentifier_opt, + dcatapnl:DataServiceShape_publisher_opt, + dcatapnl:DataServiceShape_rights_opt, + dcatapnl:DataServiceShape_servesDataset_opt, + dcatapnl:DataServiceShape_theme_opt, + dcatapnl:DataServiceShape_title_opt +. + +dcatapnl:DataServiceShape_accessRights_opt + sh:path dct:accessRights; + todo_opt:optionaliteit todo_opt:verplicht +. + +dcatapnl:DataServiceShape_applicableLegislation_opt + sh:path dcatap:applicableLegislation; + todo_opt:optionaliteit todo_opt:conditioneel +. + +dcatapnl:DataServiceShape_applicationProfile_opt + sh:path dct:conformsTo; + todo_opt:optionaliteit todo_opt:aanbevolen +. + +dcatapnl:DataServiceShape_contactPoint_opt + sh:path dcat:contactPoint; + todo_opt:optionaliteit todo_opt:verplicht +. + +dcatapnl:DataServiceShape_creator_opt + sh:path dct:creator; + todo_opt:optionaliteit todo_opt:aanbevolen +. + +dcatapnl:DataServiceShape_description_opt + sh:path dct:description; + todo_opt:optionaliteit todo_opt:verplicht +. + +dcatapnl:DataServiceShape_documentation_opt + sh:path foaf:page; + todo_opt:optionaliteit todo_opt:conditioneel +. + +dcatapnl:DataServiceShape_endpointDescription_opt + sh:path dcat:endpointDescription; + todo_opt:optionaliteit todo_opt:verplicht +. + +dcatapnl:DataServiceShape_hvdCategory_opt + sh:path dcatap:hvdCategory; + todo_opt:optionaliteit todo_opt:conditioneel +. + +dcatapnl:DataServiceShape_identifier_opt + sh:path dct:identifier; + todo_opt:optionaliteit todo_opt:verplicht +. + +dcatapnl:DataServiceShape_keyword_opt + sh:path dcat:keyword; + todo_opt:optionaliteit todo_opt:aanbevolen +. + +dcatapnl:DataServiceShape_language_opt + sh:path dct:language; + todo_opt:optionaliteit todo_opt:aanbevolen +. + +dcatapnl:DataServiceShape_license_opt + sh:path dct:license; + todo_opt:optionaliteit todo_opt:verplicht +. + +dcatapnl:DataServiceShape_modified_opt + sh:path dct:modified; + todo_opt:optionaliteit todo_opt:optioneel +. + +dcatapnl:DataServiceShape_otherIdentifier_opt + sh:path adms:identifier; + todo_opt:optionaliteit todo_opt:optioneel +. + +dcatapnl:DataServiceShape_publisher_opt + sh:path dct:publisher; + todo_opt:optionaliteit todo_opt:verplicht +. + +dcatapnl:DataServiceShape_rights_opt + sh:path dct:rights; + todo_opt:optionaliteit todo_opt:optioneel +. + +dcatapnl:DataServiceShape_servesDataset_opt + sh:path dcat:servesDataset; + todo_opt:optionaliteit todo_opt:conditioneel +. + +dcatapnl:DataServiceShape_theme_opt + sh:path dcat:theme; + todo_opt:optionaliteit todo_opt:verplicht +. + +dcatapnl:DataServiceShape_title_opt + sh:path dct:title; + todo_opt:optionaliteit todo_opt:verplicht +. + + +########################################### +# dcat:DatasetSeries +########################################### + +dcatapnl:DatasetSeriesShape + sh:property + dcatapnl:DatasetSeriesShape_description_opt +. + +dcatapnl:DatasetSeriesShape_description_opt + sh:path dct:description; + todo_opt:optionaliteit todo_opt:verplicht +. diff --git a/shapes/dcat-ap-nl-SHACL.ttl b/shapes/dcat-ap-nl-SHACL.ttl index 9702204..667ca3b 100644 --- a/shapes/dcat-ap-nl-SHACL.ttl +++ b/shapes/dcat-ap-nl-SHACL.ttl @@ -238,6 +238,8 @@ dcatapnl:DataServiceShape a sh:NodeShape; dcatapnl:DataServiceShape_accessRights_minCount, dcatapnl:DataServiceShape_applicableLegislation_nodeKind, dcatapnl:DataServiceShape_applicableLegislation_class, + dcatapnl:DataServiceShape_applicationProfile_nodeKind, + dcatapnl:DataServiceShape_applicationProfile_class, dcatapnl:DataServiceShape_contactPoint_minCount, dcatapnl:DataServiceShape_contactPoint_maxCount, dcatapnl:DataServiceShape_creator_nodeKind, @@ -255,6 +257,10 @@ dcatapnl:DataServiceShape a sh:NodeShape; dcatapnl:DataServiceShape_identifier_nodeKind, dcatapnl:DataServiceShape_identifier_minCount, dcatapnl:DataServiceShape_identifier_maxCount, + dcatapnl:DataServiceShape_keyword_nodeKind, + dcatapnl:DataServiceShape_landingPage_nodeKind, + dcatapnl:DataServiceShape_landingPage_class, + dcatapnl:DataServiceShape_language_nodeKind, dcatapnl:DataServiceShape_language_nodeKind, dcatapnl:DataServiceShape_language_class, dcatapnl:DataServiceShape_license_minCount, @@ -267,6 +273,8 @@ dcatapnl:DataServiceShape a sh:NodeShape; dcatapnl:DataServiceShape_publisher_class, dcatapnl:DataServiceShape_publisher_minCount, dcatapnl:DataServiceShape_publisher_maxCount, + dcatapnl:DataServiceShape_rights_nodeKind, + dcatapnl:DataServiceShape_rights_class, dcatapnl:DataServiceShape_theme_nodeKind, dcatapnl:DataServiceShape_theme_class, dcatapnl:DataServiceShape_theme_minCount @@ -293,6 +301,20 @@ dcatapnl:DataServiceShape_applicableLegislation_class eush:message "The range of applicable legislation must be of type ."@en . +dcatapnl:DataServiceShape_applicationProfile_nodeKind + sh:name "application profile"@en; + sh:nodeKind sh:BlankNodeOrIRI; + sh:path dct:conformsTo; + eush:message "The expected value for application profile is a rdfs:Resource (URI or blank node)"@en +. + +dcatapnl:DataServiceShape_applicationProfile_class + sh:class eli:LegalResource; + sh:name "application profile"@en; + sh:path dct:conformsTo; + eush:message "The range of application profile must be of type ."@en +. + dcatapnl:DataServiceShape_contactPoint_minCount sh:minCount 1; sh:name "contact point"@en; @@ -346,7 +368,7 @@ dcatapnl:DataServiceShape_documentation_class sh:class foaf:Document; sh:name "documentation"@en; sh:path foaf:page; - eush:message "The range of documentation must be of type ."@en + eush:message "The range of documentation must be of type ."@en . dcatapnl:DataServiceShape_documentation_minCount @@ -414,11 +436,32 @@ dcatapnl:DataServiceShape_identifier_maxCount eush:message "Maximally 1 values are allowed for identifier"@en . +dcatapnl:DataServiceShape_keyword_nodeKind + sh:name "keyword"@en; + sh:nodeKind sh:Literal; + sh:path dcat:keyword; + eush:message "The expected value for language is a rdfs:Resource (URI or blank node)"@en +. + +dcatapnl:DataServiceShape_landingPage_nodeKind + sh:name "landing page"@en; + sh:nodeKind sh:BlankNodeOrIRI; + sh:path dcat:landingPage; + eush:message "The expected value for landing page is a Literal"@en +. + +dcatapnl:DataServiceShape_landingPage_class + sh:class foaf:Document; + sh:name "language"@en; + sh:path dcat:landingPage; + eush:message "The range of landing page must be of type ."@en +. + dcatapnl:DataServiceShape_language_nodeKind sh:name "language"@en; sh:nodeKind sh:BlankNodeOrIRI; sh:path dct:language; - eush:message "The expected value for language is a rdfs:Resource (URI or blank node)"@en + eush:message "The expected value for language is a Literal"@en . dcatapnl:DataServiceShape_language_class @@ -465,9 +508,9 @@ dcatapnl:DataServiceShape_otherIdentifier_nodeKind . dcatapnl:DataServiceShape_otherIdentifier_class - sh:class foaf:Document; + sh:class adms:Identifier; sh:name "other identifier"@en; - sh:path foaf:page; + sh:path adms:identifier; eush:message "The range of other identifier must be of type ."@en . @@ -588,6 +631,31 @@ dcatapnl:CatalogShape_dataset_minCount eush:message "Minimally 1 values are expected for dataset"@en . +########################################### +# dcat:DatasetSeries +########################################### + +dcatapnl:DatasetSeriesShape a sh:NodeShape; + sh:name "DatasetSeries"@en; + sh:targetClass dcat:DatasetSeries; + sh:property + dcatapnl:DatasetSeriesShape_applicableLegislation_nodeKind, + dcatapnl:DatasetSeriesShape_applicableLegislation_class +. + +dcatapnl:DatasetSeriesShape_applicableLegislation_nodeKind + sh:name "applicable legislation"@en; + sh:nodeKind sh:BlankNodeOrIRI; + sh:path dcatap:applicableLegislation; + eush:message "The expected value for applicable legislation is a rdfs:Resource (URI or blank node)"@en +. + +dcatapnl:DatasetSeriesShape_applicableLegislation_class + sh:class eli:LegalResource; + sh:name "applicable legislation"@en; + sh:path dcatap:applicableLegislation; + eush:message "The range of applicable legislation must be of type ."@en +. ########################################### # Temporal Literal