├── .gitignore ├── tools └── banner-footer.html ├── validator └── resources │ ├── translations │ ├── labels_de.properties │ └── labels_en.properties │ ├── v1.0.2 │ └── shapes │ │ ├── dcat-ap-de-import-lists.ttl │ │ ├── dcat-ap-de-imports.ttl │ │ └── nal-lists.ttl │ ├── DCAT-AP │ └── v2.1.0-draft │ │ └── shapes │ │ └── dcat-ap_2.1.0_shacl_mdr_imports.ttl │ ├── v2.0 │ └── shapes │ │ ├── dcat-ap-de-imports.ttl │ │ ├── dcat-ap-de-deprecated.ttl │ │ └── dcat-ap-konventionen.ttl │ ├── v3.0 │ └── shapes │ │ ├── dcat-ap-de-imports.ttl │ │ ├── dcat-ap-de-deprecated.ttl │ │ └── dcat-ap-spec-german-additions.ttl │ ├── dashboard-alpha │ └── shapes │ │ └── db-shapes.ttl │ ├── dashboard-live │ └── shapes │ │ └── db-shapes.ttl │ └── config.properties ├── testcases ├── dataset-legalBasis.ttl ├── dataset-geocodingDescription.ttl ├── konventionen │ ├── konv-02.ttl │ ├── konv-12.ttl │ ├── konv-04_05_06_07.ttl │ ├── konv-32.ttl │ ├── konv-10.ttl │ ├── konv-09.ttl │ ├── konv-21.ttl │ ├── konv-11.ttl │ ├── konv-08.ttl │ ├── konv-30.ttl │ └── konv-01.ttl ├── distribution-licenseAttributionByText.ttl ├── dataset-qualityProcessURI.ttl ├── distribution-dct_changes.ttl ├── dataset-granularity.ttl ├── distribution-plannedAvailability.ttl ├── v2.0_shapes │ ├── dcat-ap-foaf_agent.ttl │ ├── konventionen │ │ ├── konv32.ttl │ │ ├── konv31.ttl │ │ ├── konv36.ttl │ │ ├── konv01.ttl │ │ ├── deprecated.ttl │ │ ├── perfect.ttl │ │ ├── ranges.ttl │ │ └── konv12_13.ttl │ ├── distribution-dct_format.ttl │ ├── catalog-dct_spatial.ttl │ ├── location.ttl │ ├── distribution-dcat_mediaType.ttl │ ├── dataset-dcatde_politicalGeocodingURI.ttl │ ├── dataset-dcat_theme.ttl │ ├── dataset-dct_issued.ttl │ ├── distribution-adms_status.ttl │ ├── catalog-dcat_themeTaxonomy.ttl │ ├── periodoftime.ttl │ └── quicktest.ttl ├── dataset-contributorID.ttl ├── dashboard │ ├── db-tests_licenses.ttl │ ├── db-tests_contributor.ttl │ ├── db-tests_keyword.ttl │ ├── destatis-catalog-dataset-extracted.rdf │ ├── bremen-catalog-dataset-extracted.ttl │ └── bremen-catalog-dataset-extracted.rdf ├── dataset-politicalGeocodingLevelURI.ttl ├── dataset-originator-maintainer-contributor-creator.ttl ├── dataset-politicalGeocodingURI.ttl ├── rewritten-example-simple.ttl ├── distribution-checksum.ttl ├── v3.0_shapes │ ├── deprecated.ttl │ └── quicktest.ttl └── rewritten-example-advanced.ttl └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | tools/*.jar 3 | tools/create-shacl-lists/ 4 | tools/report.0.ttl 5 | tools/validator.log 6 | -------------------------------------------------------------------------------- /tools/banner-footer.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GovDataOfficial/DCAT-AP.de-SHACL-Validation/HEAD/tools/banner-footer.html -------------------------------------------------------------------------------- /validator/resources/translations/labels_de.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GovDataOfficial/DCAT-AP.de-SHACL-Validation/HEAD/validator/resources/translations/labels_de.properties -------------------------------------------------------------------------------- /testcases/dataset-legalBasis.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | 7 | @base . 8 | 9 | <01-P-working> 10 | a dcat:Dataset ; 11 | dcatde:legalBasis "Text" . 12 | 13 | <02-P-multiple> 14 | a dcat:Dataset ; 15 | dcatde:legalBasis "Text 1" , "Text 2" . 16 | 17 | <03-I-nothing> 18 | a dcat:Dataset . 19 | 20 | <04-F-wrong_typ> 21 | a dcat:Dataset ; 22 | dcatde:legalBasis . -------------------------------------------------------------------------------- /validator/resources/v1.0.2/shapes/dcat-ap-de-import-lists.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # Based on the SHACL-imports for DCAT-AP: https://github.com/SEMICeu/DCAT-AP 3 | 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix xsd: . 8 | 9 | 10 | rdf:type owl:Ontology ; 11 | 12 | owl:imports ; # MDR NAL 13 | owl:imports ; # DCAT-AP.de Lizenzen 14 | . -------------------------------------------------------------------------------- /testcases/dataset-geocodingDescription.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | 7 | @base . 8 | 9 | <01-P-working> 10 | a dcat:Dataset ; 11 | dcatde:geocodingDescription "Berlin" . 12 | 13 | <02-P-multiple> 14 | a dcat:Dataset ; 15 | dcatde:geocodingDescription "Berlin" , "Brandenburg" . 16 | 17 | <03-I-nothing> 18 | a dcat:Dataset . 19 | 20 | <04-F-wrong_typ> 21 | a dcat:Dataset ; 22 | dcatde:geocodingDescription . -------------------------------------------------------------------------------- /testcases/konventionen/konv-02.ttl: -------------------------------------------------------------------------------- 1 | @prefix passing: . 2 | @prefix failing: . 3 | 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix schema: . 7 | @prefix xsd: . 8 | @prefix vcard: . 9 | @prefix dcat: . 10 | @prefix owl: . 11 | @prefix dcatde: . 12 | 13 | passing:full 14 | a dcat:Dataset ; 15 | dcatde:qualityProcessURI . 16 | 17 | failing:no_dcatde_qualityProcessURI 18 | a dcat:Dataset . -------------------------------------------------------------------------------- /testcases/distribution-licenseAttributionByText.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | 7 | @base . 8 | 9 | <01-P-working> 10 | a dcat:Distribution ; 11 | dcatde:licenseAttributionByText "Text" . 12 | 13 | <02-P-multiple> 14 | a dcat:Distribution ; 15 | dcatde:licenseAttributionByText "Text 1" , "Text 2" . 16 | 17 | <03-I-nothing> 18 | a dcat:Distribution . 19 | 20 | <04-F-wrong_typ> 21 | a dcat:Distribution ; 22 | dcatde:licenseAttributionByText . -------------------------------------------------------------------------------- /testcases/dataset-qualityProcessURI.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | 7 | @base . 8 | 9 | <01-P-working> 10 | a dcat:Dataset ; 11 | dcatde:qualityProcessURI . 12 | 13 | <02-I-No_qualityProcessURI> 14 | a dcat:Dataset . 15 | 16 | <03-Fs-multiple_qualityProcessURIs> 17 | a dcat:Dataset ; 18 | dcatde:qualityProcessURI , . 19 | 20 | <04-Fs-wrong_typ> 21 | a dcat:Dataset ; 22 | dcatde:qualityProcessURI "http://example.com/qualityProcess" . -------------------------------------------------------------------------------- /testcases/konventionen/konv-12.ttl: -------------------------------------------------------------------------------- 1 | @prefix passing: . 2 | @prefix failing: . 3 | 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix schema: . 7 | @prefix xsd: . 8 | @prefix vcard: . 9 | @prefix dcat: . 10 | @prefix owl: . 11 | @prefix dcatde: . 12 | @prefix dct: . 13 | 14 | passing:has_contributorID 15 | a dcat:Dataset ; 16 | dcatde:contributorID "http://dcat-ap.de/def/contributors/transparenzportalHamburg" ; 17 | . 18 | 19 | failing:no_contributorID 20 | a dcat:Dataset ; 21 | . -------------------------------------------------------------------------------- /testcases/distribution-dct_changes.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | @prefix xsd: . 7 | 8 | @base . 9 | 10 | <01-P-working> 11 | a dcat:Distribution ; 12 | dct:title "Ein Titel"@de ; 13 | dct:description "Eine Beschreibung"@de ; 14 | dct:modified "2020-01-15"^^xsd:date . 15 | 16 | <02-I-no_title> 17 | a dcat:Distribution ; 18 | dct:description "Eine Beschreibung"@de ; 19 | dct:modified "2020-01-15"^^xsd:date . 20 | 21 | <03-W-no_description> 22 | a dcat:Distribution ; 23 | dct:title "Ein Titel"@de ; 24 | dct:modified "2020-01-15"^^xsd:date . 25 | 26 | <04-W-no_modified> 27 | a dcat:Distribution ; 28 | dct:title "Ein Titel"@de ; 29 | dct:description "Eine Beschreibung"@de . -------------------------------------------------------------------------------- /testcases/konventionen/konv-04_05_06_07.ttl: -------------------------------------------------------------------------------- 1 | @prefix passing: . 2 | @prefix failing: . 3 | 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix schema: . 7 | @prefix xsd: . 8 | @prefix vcard: . 9 | @prefix dcat: . 10 | @prefix owl: . 11 | @prefix dcatde: . 12 | @prefix dct: . 13 | 14 | passing:dataset_no_spatial 15 | a dcat:Dataset . 16 | 17 | passing:catalog_no_spatial 18 | a dcat:Catalog . 19 | 20 | failing:dataset_with_spatial 21 | a dcat:Dataset ; 22 | dct:spatial . 23 | 24 | failing:catalog_with_spatial 25 | a dcat:Catalog ; 26 | dct:spatial . -------------------------------------------------------------------------------- /testcases/dataset-granularity.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | 7 | @base . 8 | 9 | <01-P-working> 10 | a dcat:Dataset ; 11 | dcat:granularity . 12 | 13 | <02-I-No_granularity> 14 | a dcat:Dataset . 15 | 16 | <03-F-granularity_wrong_type> 17 | a dcat:Dataset ; 18 | dcat:granularity "http://publications.europa.eu/resource/authority/frequency/WEEKLY" . 19 | 20 | <04-F-granularity_not_in_list> 21 | a dcat:Dataset ; 22 | dcat:granularity . 23 | 24 | <05-F-granularity_multiple> 25 | a dcat:Dataset ; 26 | dcat:granularity , . -------------------------------------------------------------------------------- /testcases/distribution-plannedAvailability.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | 7 | @base . 8 | 9 | <01-P-working> 10 | a dcat:Distribution ; 11 | dcatde:plannedAvailability . 12 | 13 | <02-I-nothing> 14 | a dcat:Distribution . 15 | 16 | <03-F-multiple> 17 | a dcat:Distribution ; 18 | dcatde:plannedAvailability , . 19 | 20 | <04-F-wrong_typ> 21 | a dcat:Distribution ; 22 | dcatde:plannedAvailability "https://de.wikipedia.org/wiki/Fehler" . 23 | 24 | <05-W-not_in_list> 25 | a dcat:Distribution ; 26 | dcatde:plannedAvailability . -------------------------------------------------------------------------------- /testcases/konventionen/konv-32.ttl: -------------------------------------------------------------------------------- 1 | @prefix passing: . 2 | @prefix failing: . 3 | 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix schema: . 7 | @prefix xsd: . 8 | @prefix vcard: . 9 | @prefix dcat: . 10 | @prefix owl: . 11 | @prefix dcatde: . 12 | @prefix dct: . 13 | 14 | 15 | passing:dataset_has_correct_license 16 | a dcat:Distribution ; 17 | dct:license ; 18 | . 19 | 20 | passing:dataset_has_no_license 21 | a dcat:Distribution ; 22 | . 23 | 24 | failing:dataset_license_not_dcatapde 25 | a dcat:Distribution ; 26 | dct:license ; 27 | . 28 | 29 | failing:dataset_license_not_iri 30 | a dcat:Distribution ; 31 | dct:license "some string" ; 32 | . -------------------------------------------------------------------------------- /testcases/v2.0_shapes/dcat-ap-foaf_agent.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | @prefix skos: . 7 | 8 | @base . 9 | 10 | 11 | a skos:Concept ; 12 | skos:prefLabel "aType" ; 13 | . 14 | 15 | 16 | a skos:Concept ; 17 | skos:prefLabel "bType" ; 18 | . 19 | 20 | 21 | a foaf:Agent ; 22 | dct:type ; 23 | foaf:name "A name." ; 24 | . 25 | 26 | 27 | a foaf:Agent ; 28 | foaf:name "A name." ; 29 | . 30 | 31 | 32 | a foaf:Agent ; 33 | dct:type , ; 34 | foaf:name "A name." ; 35 | . 36 | 37 | 38 | a foaf:Agent ; 39 | . 40 | 41 | 42 | a foaf:Agent ; 43 | foaf:name ; 44 | . 45 | 46 | 47 | a foaf:Agent ; 48 | dct:type , ; 49 | . -------------------------------------------------------------------------------- /testcases/konventionen/konv-10.ttl: -------------------------------------------------------------------------------- 1 | @prefix passing: . 2 | @prefix failing: . 3 | 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix schema: . 7 | @prefix xsd: . 8 | @prefix vcard: . 9 | @prefix dcat: . 10 | @prefix owl: . 11 | @prefix dcatde: . 12 | @prefix dct: . 13 | 14 | failing:dataset_no_geodata 15 | a dcat:Dataset ; 16 | . 17 | 18 | passing:dataset_spatial 19 | a dcat:Dataset ; 20 | dct:spatial ; 21 | . 22 | 23 | passing:dataset_geocodinguri 24 | a dcat:Dataset ; 25 | dcatde:politicalGeocodingURI ; 26 | . 27 | 28 | passing:dataset_geocodingdescription 29 | a dcat:Dataset ; 30 | dcatde:geocodingDescription "This is an description because other means are too complicated." ; 31 | . -------------------------------------------------------------------------------- /testcases/dataset-contributorID.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | 7 | @base . 8 | 9 | <01-P-working> 10 | a dcat:Dataset ; 11 | dcatde:contributorID . 12 | 13 | <02-I-No_contributorID> 14 | a dcat:Dataset . 15 | 16 | <03-F-contributorID_wrong_type> 17 | a dcat:Dataset ; 18 | dcatde:contributorID "http://dcat-ap.de/def/contributors/transparenzportalHamburg" . 19 | 20 | <04-PsFk-contributorID_not_in_list> 21 | a dcat:Dataset ; 22 | dcatde:contributorID . 23 | 24 | <05-PsFk-contributorID_with_other_IRI> 25 | a dcat:Dataset ; 26 | dcatde:contributorID , . 27 | 28 | <06-PsFk-contributorID_other_IRI> 29 | a dcat:Dataset ; 30 | dcatde:contributorID . 31 | 32 | <07-PsFk-contributorID_incorrect_IRI> 33 | a dcat:Dataset ; 34 | dcatde:contributorID . -------------------------------------------------------------------------------- /validator/resources/v1.0.2/shapes/dcat-ap-de-imports.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # Based on the SHACL-imports for DCAT-AP: https://github.com/SEMICeu/DCAT-AP 3 | 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix xsd: . 8 | 9 | 10 | rdf:type owl:Ontology ; 11 | owl:imports ; 12 | owl:imports ; 13 | owl:imports ; # added 14 | 15 | # owl:imports ; # no use-case yet 16 | # owl:imports ; # no use-case yet 17 | # owl:imports ; # no use-case yet 18 | # owl:imports ; # no use-case yet 19 | # owl:imports ; # no use-case yet 20 | # owl:imports ; # no use-case yet 21 | . -------------------------------------------------------------------------------- /testcases/konventionen/konv-09.ttl: -------------------------------------------------------------------------------- 1 | @prefix passing: . 2 | @prefix failing: . 3 | 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix schema: . 7 | @prefix xsd: . 8 | @prefix vcard: . 9 | @prefix dcat: . 10 | @prefix owl: . 11 | @prefix dcatde: . 12 | @prefix dct: . 13 | 14 | passing:dataset_no_spatial 15 | a dcat:Dataset . 16 | 17 | passing:dataset_spatial_level 18 | a dcat:Dataset ; 19 | dct:spatial ; 20 | dcatde:politicalGeocodingLevelURI ; 21 | . 22 | 23 | passing:dataset_geocodinguri_level 24 | a dcat:Dataset ; 25 | dcatde:politicalGeocodingURI ; 26 | dcatde:politicalGeocodingLevelURI ; 27 | . 28 | 29 | failing:dataset_spatial_no_level 30 | a dcat:Dataset ; 31 | dct:spatial ; 32 | . 33 | 34 | failing:dataset_geocodinguri_no_level 35 | a dcat:Dataset ; 36 | dcatde:politicalGeocodingURI ; 37 | . -------------------------------------------------------------------------------- /testcases/konventionen/konv-21.ttl: -------------------------------------------------------------------------------- 1 | @prefix passing: . 2 | @prefix failing: . 3 | 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix schema: . 7 | @prefix xsd: . 8 | @prefix vcard: . 9 | @prefix dcat: . 10 | @prefix owl: . 11 | @prefix dcatde: . 12 | @prefix dct: . 13 | 14 | passing:dataset_no_dct_source 15 | a dcat:Dataset . 16 | 17 | passing:catalogrecord_no_dct_source 18 | a dcat:CatalogRecord . 19 | 20 | passing:catalog_no_dct_source 21 | a dcat:Catalog . 22 | 23 | passing:distribution_no_dct_source 24 | a dcat:Distribution . 25 | 26 | failing:dataset_has_dct_source 27 | a dcat:Dataset ; 28 | dct:source . 29 | 30 | failing:catalogrecord_has_dct_source 31 | a dcat:CatalogRecord ; 32 | dct:source . 33 | 34 | failing:catalog_has_dct_source 35 | a dcat:Catalog ; 36 | dct:source . 37 | 38 | failing:distribution_has_dct_source 39 | a dcat:Distribution ; 40 | dct:source . -------------------------------------------------------------------------------- /testcases/konventionen/konv-11.ttl: -------------------------------------------------------------------------------- 1 | @prefix passing: . 2 | @prefix failing: . 3 | 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix schema: . 7 | @prefix xsd: . 8 | @prefix vcard: . 9 | @prefix dcat: . 10 | @prefix owl: . 11 | @prefix dcatde: . 12 | @prefix dct: . 13 | 14 | passing:dataset_no_geodata 15 | a dcat:Dataset ; 16 | . 17 | 18 | passing:dataset_geocodinguri_and_spatial 19 | a dcat:Dataset ; 20 | dcatde:politicalGeocodingURI ; 21 | dct:spatial ; 22 | . 23 | 24 | failing:dataset_geocodinguri_no_spatial 25 | a dcat:Dataset ; 26 | dcatde:politicalGeocodingURI ; 27 | . 28 | 29 | passing:catalog_no_geodata 30 | a dcat:Catalog ; 31 | . 32 | 33 | passing:catalog_geocodinguri_and_spatial 34 | a dcat:Catalog ; 35 | dcatde:politicalGeocodingURI ; 36 | dct:spatial ; 37 | . 38 | 39 | failing:catalog_geocodinguri_no_spatial 40 | a dcat:Catalog ; 41 | dcatde:politicalGeocodingURI ; 42 | . -------------------------------------------------------------------------------- /testcases/dashboard/db-tests_licenses.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | 7 | @base . 8 | 9 | # I = Invalid, no license property 10 | # L = Lincensed, license property exists, no matter what's behind 11 | # V = Valid license, given as correct GovData-URI 12 | # O = Open license, given as correct GovData-URI 13 | 14 | 15 | a dcat:Distribution ; 16 | . 17 | 18 | 19 | a dcat:Distribution ; 20 | dct:license ; 21 | dct:license ; 22 | . 23 | 24 | 25 | a dcat:Distribution ; 26 | dct:license "" ; 27 | dct:license "" ; 28 | . 29 | 30 | 31 | a dcat:Distribution ; 32 | dct:license "apache" ; 33 | . 34 | 35 | 36 | a dcat:Distribution ; 37 | dct:license ; 38 | . 39 | 40 | 41 | a dcat:Distribution ; 42 | dct:license ; 43 | . 44 | 45 | 46 | a dcat:Distribution ; 47 | dct:license ; 48 | . -------------------------------------------------------------------------------- /testcases/konventionen/konv-08.ttl: -------------------------------------------------------------------------------- 1 | @prefix passing: . 2 | @prefix failing: . 3 | 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix schema: . 7 | @prefix xsd: . 8 | @prefix vcard: . 9 | @prefix dcat: . 10 | @prefix owl: . 11 | @prefix dcatde: . 12 | @prefix dct: . 13 | 14 | passing:dataset_no_spatial 15 | a dcat:Dataset . 16 | 17 | passing:catalog_no_spatial 18 | a dcat:Catalog . 19 | 20 | passing:dataset_with_spatial_and_dcatde_politicalGeocodingURI 21 | a dcat:Dataset ; 22 | dct:spatial ; 23 | dcatde:politicalGeocodingURI . 24 | 25 | passing:catalog_with_spatial_and_dcatde_politicalGeocodingURI 26 | a dcat:Catalog ; 27 | dct:spatial ; 28 | dcatde:politicalGeocodingURI . 29 | 30 | failing:dataset_with_spatial_no_dcatde_politicalGeocodingURI 31 | a dcat:Dataset ; 32 | dct:spatial . 33 | 34 | failing:catalog_with_spatial_no_dcatde_politicalGeocodingURI 35 | a dcat:Catalog ; 36 | dct:spatial . -------------------------------------------------------------------------------- /testcases/konventionen/konv-30.ttl: -------------------------------------------------------------------------------- 1 | @prefix passing: . 2 | @prefix failing: . 3 | 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix schema: . 7 | @prefix xsd: . 8 | @prefix vcard: . 9 | @prefix dcat: . 10 | @prefix owl: . 11 | @prefix dcatde: . 12 | @prefix dct: . 13 | 14 | passing:dataset_has_no_theme 15 | a dcat:Dataset ; 16 | . 17 | 18 | passing:dataset_has_correct_theme 19 | a dcat:Dataset ; 20 | dcat:theme ; 21 | . 22 | 23 | passing:dataset_has_multiple_correct_theme 24 | a dcat:Dataset ; 25 | dcat:theme ; 26 | dcat:theme ; 27 | . 28 | 29 | failing:dataset_theme_not_mdr_1 30 | a dcat:Dataset ; 31 | dcat:theme ; 32 | . 33 | 34 | failing:dataset_theme_not_mdr_2 35 | a dcat:Dataset ; 36 | dcat:theme ; 37 | dcat:theme ; 38 | . 39 | 40 | failing:dataset_theme_not_iri 41 | a dcat:Dataset ; 42 | dcat:theme "some string" ; 43 | . -------------------------------------------------------------------------------- /testcases/dataset-politicalGeocodingLevelURI.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | 7 | @base . 8 | 9 | <01-P-working> 10 | a dcat:Dataset ; 11 | dcatde:politicalGeocodingLevelURI . 12 | 13 | <02-P-working_multiple> 14 | a dcat:Dataset ; 15 | dcatde:politicalGeocodingLevelURI , . 16 | 17 | <03-W-No_politicalGeocodingLevelURI> 18 | a dcat:Dataset . 19 | 20 | <04-F-politicalGeocodingLevelURI_wrong_type> 21 | a dcat:Dataset ; 22 | dcatde:politicalGeocodingLevelURI "http://dcat-ap.de/def/contributors/transparenzportalHamburg" . 23 | 24 | <05-W-politicalGeocodingLevelURI_not_in_list> 25 | a dcat:Dataset ; 26 | dcatde:politicalGeocodingLevelURI . 27 | 28 | <06-W-politicalGeocodingLevelURI_multiple_with_other_IRI> 29 | a dcat:Dataset ; 30 | dcatde:politicalGeocodingLevelURI , . 31 | 32 | <07-F-politicalGeocodingLevelURI_multiple_with_wrong_type> 33 | a dcat:Dataset ; 34 | dcatde:politicalGeocodingLevelURI , "https://opendata.umea.se/" . -------------------------------------------------------------------------------- /testcases/dashboard/db-tests_contributor.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | 7 | @base . 8 | 9 | # I = Invalid, V = Valid 10 | 11 | 12 | a dcat:Dataset ; 13 | dcatde:contributorID 14 | . 15 | 16 | 17 | a dcat:Dataset ; 18 | dcatde:contributorID , 19 | . 20 | 21 | 22 | a dcat:Dataset ; 23 | dcatde:contributorID , "string" 24 | . 25 | 26 | 27 | a dcat:Dataset ; 28 | . 29 | 30 | 31 | a dcat:Dataset ; 32 | dcatde:contributorID 33 | . 34 | 35 | 36 | a dcat:Dataset ; 37 | dcatde:contributorID "string" 38 | . 39 | 40 | 41 | a dcat:Dataset ; 42 | dcatde:contributorID , 43 | . 44 | 45 | 46 | a dcat:Dataset ; 47 | dcatde:contributorID , , 48 | . 49 | 50 | 51 | a dcat:Dataset ; 52 | dcatde:contributorID , , "string" 53 | . -------------------------------------------------------------------------------- /validator/resources/DCAT-AP/v2.1.0-draft/shapes/dcat-ap_2.1.0_shacl_mdr_imports.ttl: -------------------------------------------------------------------------------- 1 | @prefix owl: . 2 | @prefix rdf: . 3 | @prefix rdfs: . 4 | @prefix xsd: . 5 | 6 | # 7 | # This file provides the imports of the codelists recommended by the DCAT-AP application profile. 8 | # http://publications.europa.eu/resource/authority/dataset-type (TODO) 9 | 10 | 11 | 12 | rdf:type owl:Ontology ; 13 | owl:imports ; # 1 error . 14 | owl:imports ; # 1 error . 15 | owl:imports ; # 2 errors . 16 | owl:imports ; # 1 error . 17 | owl:imports ; # 1 error . 18 | owl:imports ; # 1 error . 19 | owl:imports ; # 1 error . 20 | owl:imports ; # 1 error . 21 | owl:imports ; # 6 errors ...... 22 | owl:imports # 1 error . 23 | . 24 | 25 | -------------------------------------------------------------------------------- /testcases/dataset-originator-maintainer-contributor-creator.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | 7 | @base . 8 | 9 | 10 | a foaf:Agent ; 11 | foaf:name "James Bond" . 12 | 13 | 14 | a foaf:Agent ; 15 | foaf:name "Smith" . 16 | 17 | 18 | a foaf:Person ; 19 | foaf:nick "Q" . 20 | 21 | 22 | a foaf:Organitation ; 23 | foaf:name "MI-6" . 24 | 25 | <01-P-working> 26 | a dcat:Dataset ; 27 | dcatde:originator ; 28 | dcatde:maintainer ; 29 | dct:contributor ; 30 | dct:creator . 31 | 32 | <01-P-working_multiple> 33 | a dcat:Dataset ; 34 | dcatde:originator , ; 35 | dcatde:maintainer , ; 36 | dct:contributor , ; 37 | dct:creator , . 38 | 39 | <04-I-Nothing> 40 | a dcat:Dataset . 41 | 42 | <05-Fs-wrong_type_1> 43 | a dcat:Dataset ; 44 | dcatde:originator "James Bond" ; 45 | dcatde:maintainer "James Bond" ; 46 | dct:contributor "James Bond" ; 47 | dct:creator "James Bond" . 48 | 49 | <04-Fs-wrong_type_2> 50 | a dcat:Dataset ; 51 | dcatde:originator ; 52 | dcatde:maintainer ; 53 | dct:contributor ; 54 | dct:creator . 55 | 56 | <05-Fs-wrong_type_3> 57 | a dcat:Dataset ; 58 | dcatde:originator ; 59 | dcatde:maintainer ; 60 | dct:contributor ; 61 | dct:creator . -------------------------------------------------------------------------------- /testcases/konventionen/konv-01.ttl: -------------------------------------------------------------------------------- 1 | @prefix passing: . 2 | @prefix failing: . 3 | 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix schema: . 7 | @prefix xsd: . 8 | @prefix vcard: . 9 | @prefix dcat: . 10 | @prefix owl: . 11 | 12 | 13 | 14 | a dcat:Dataset; 15 | dcat:contactPoint passing:full ; 16 | dcat:contactPoint passing:info_no_hasURL ; 17 | dcat:contactPoint failing:wrong_type ; 18 | dcat:contactPoint failing:no_tel_or_email ; 19 | dcat:contactPoint failing:no_fn ; 20 | dcat:contactPoint failing:not_closed ; 21 | . 22 | 23 | passing:full 24 | a vcard:Kind ; 25 | vcard:hasEmail "mail@example.org" ; 26 | vcard:hasURL ; 27 | vcard:fn "Mr. Smith" ; 28 | vcard:hasTelephone "030 123123" . 29 | 30 | passing:info_no_hasURL 31 | a vcard:Kind ; 32 | vcard:hasEmail "mail@example.org" ; 33 | vcard:fn "Mr. Smith" ; 34 | vcard:hasTelephone "030 123123" . 35 | 36 | failing:wrong_type 37 | a schema:Person ; 38 | vcard:hasEmail "mail@example.org" ; 39 | vcard:hasURL ; 40 | vcard:fn "Mr. Smith" ; 41 | vcard:hasTelephone "030 123123" . 42 | 43 | failing:no_tel_or_email 44 | a vcard:Kind ; 45 | vcard:hasURL ; 46 | vcard:fn "Mr. Smith" . 47 | 48 | failing:no_fn 49 | a vcard:Kind ; 50 | vcard:hasEmail "mail@example.org" ; 51 | vcard:hasURL ; 52 | vcard:hasTelephone "030 123123" . 53 | 54 | failing:not_closed 55 | a vcard:Kind ; 56 | vcard:hasEmail "mail@example.org" ; 57 | vcard:hasURL ; 58 | vcard:fn "Mr. Smith" ; 59 | vcard:hasTelephone "030 123123" ; 60 | vcard:nickbane "ERROR" . -------------------------------------------------------------------------------- /testcases/dataset-politicalGeocodingURI.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | 7 | @base . 8 | 9 | <01-P-working_district> 10 | a dcat:Dataset ; 11 | dcatde:politicalGeocodingURI . 12 | 13 | <02-P-working_region> 14 | a dcat:Dataset ; 15 | dcatde:politicalGeocodingURI . 16 | 17 | <03-P-working_state> 18 | a dcat:Dataset ; 19 | dcatde:politicalGeocodingURI . 20 | 21 | <04-P-working_d_r> 22 | a dcat:Dataset ; 23 | dcatde:politicalGeocodingURI , . 24 | 25 | <05-P-working_r_s> 26 | a dcat:Dataset ; 27 | dcatde:politicalGeocodingURI , . 28 | 29 | <06-P-working_d_r_s> 30 | a dcat:Dataset ; 31 | dcatde:politicalGeocodingURI , , . 32 | 33 | <07-W-No_politicalGeocodingURI> 34 | a dcat:Dataset . 35 | 36 | <08-F-multiple_one_wrong_type> 37 | a dcat:Dataset ; 38 | dcatde:politicalGeocodingURI , "http://dcat-ap.de/def/politicalGeocoding/districtKey/01001" . 39 | 40 | <09-W-multiple_one_unknown> 41 | a dcat:Dataset ; 42 | dcatde:politicalGeocodingURI , . -------------------------------------------------------------------------------- /testcases/v2.0_shapes/konventionen/konv32.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-konventionen.ttl -contentToValidate ../testcases/v2.0_shapes/konventionen/konv32.ttl 6 | 7 | @prefix dcat: . 8 | @prefix dct: . 9 | @prefix foaf: . 10 | @prefix dcatde: . 11 | @prefix vcard: . 12 | @prefix skos: . 13 | @prefix xsd: . 14 | 15 | @base . 16 | 17 | 18 | a dcat:Distribution ; 19 | dct:title "Test" ; 20 | dcat:accessURL ; 21 | dct:license ; 22 | 23 | dct:format ; 24 | . 25 | 26 | 27 | a dcat:Distribution ; 28 | dct:title "Test" ; 29 | dcat:accessURL ; 30 | dct:license ; 31 | . 32 | 33 | 34 | a dcat:Distribution ; 35 | dct:title "Test" ; 36 | dcat:accessURL ; 37 | dct:license ; 38 | 39 | dct:format ; 40 | . 41 | 42 | -------------------------------------------------------------------------------- /testcases/v2.0_shapes/konventionen/konv31.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-konventionen.ttl -contentToValidate ../testcases/v2.0_shapes/konventionen/konv31.ttl 6 | 7 | @prefix dcat: . 8 | @prefix dct: . 9 | @prefix foaf: . 10 | @prefix dcatde: . 11 | @prefix vcard: . 12 | @prefix skos: . 13 | @prefix xsd: . 14 | 15 | @base . 16 | 17 | 18 | a dcat:Distribution ; 19 | dct:title "Test" ; 20 | dcat:accessURL ; 21 | dct:format ; 22 | 23 | dct:license ; 24 | . 25 | 26 | 27 | a dcat:Distribution ; 28 | dct:title "Test" ; 29 | dcat:accessURL ; 30 | dct:format ; 31 | . 32 | 33 | 34 | a dcat:Distribution ; 35 | dct:title "Test" ; 36 | dcat:accessURL ; 37 | dct:format ; 38 | 39 | dct:license ; 40 | . 41 | -------------------------------------------------------------------------------- /testcases/v2.0_shapes/distribution-dct_format.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # cd C:\Users\lrinsche\Documents\GitHub\DCAT-AP.de-SHACL-Validation\tools 6 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -contentToValidate ../testcases/v2.0_shapes/quicktest.ttl 7 | 8 | @prefix : . 9 | @prefix dcat: . 10 | @prefix dcatde: . 11 | @prefix dct: . 12 | @prefix foaf: . 13 | @prefix skos: . 14 | @prefix vcard: . 15 | 16 | :ok-agent 17 | a foaf:Agent ; 18 | foaf:name "Ein Publishername" ; 19 | . 20 | 21 | :ok-contactPoint 22 | a vcard:Kind ; 23 | . 24 | 25 | :ok-1-distribution 26 | a dcat:Distribution ; 27 | dcat:accessURL ; 28 | . 29 | 30 | :ok-2-distribution 31 | a dcat:Distribution ; 32 | dcat:accessURL ; 33 | dct:format ; 34 | . 35 | 36 | :bad-1-dist-noIRI 37 | a dcat:Distribution ; 38 | dcat:accessURL ; 39 | dct:format "CSV" ; 40 | . 41 | 42 | :bad-2-dist-multipleFormats 43 | a dcat:Distribution ; 44 | dcat:accessURL ; 45 | dct:format ; 46 | dct:format ; 47 | . 48 | 49 | :bad-1-dist-notInList 50 | a dcat:Distribution ; 51 | dcat:accessURL ; 52 | dct:format ; 53 | . 54 | -------------------------------------------------------------------------------- /testcases/dashboard/db-tests_keyword.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | 7 | @base . 8 | 9 | # I = Invalid, V = Valid 10 | 11 | 12 | a dcat:Dataset ; 13 | dcat:keyword "A" 14 | . 15 | 16 | 17 | a dcat:Dataset ; 18 | dcat:keyword "A", "B", "C" 19 | . 20 | 21 | 22 | a dcat:Dataset ; 23 | dcat:keyword "A", 24 | . 25 | 26 | 27 | a dcat:Dataset ; 28 | dcat:keyword "A", , 29 | . 30 | 31 | 32 | a dcat:Dataset ; 33 | . 34 | 35 | 36 | a dcat:Dataset ; 37 | dcat:keyword 38 | . 39 | 40 | 41 | a dcat:Dataset ; 42 | dcat:keyword , 43 | . 44 | 45 | 46 | # <01-I-distribution-no_uri> 47 | # a dcat:Distribution ; 48 | # . 49 | 50 | # <02-I-distribution-uri_wrongtype> 51 | # a dcat:Distribution ; 52 | # dcat:accessURL "https://google.com" ; 53 | # . 54 | 55 | # <01-V-distribution-one_uri> 56 | # a dcat:Distribution ; 57 | # dcat:accessURL ; 58 | # . 59 | 60 | # <02-V-distribution-two_uris> 61 | # a dcat:Distribution ; 62 | # dcat:accessURL ; 63 | # dcat:accessURL ; 64 | # . 65 | 66 | # <03-V-distribution-two_uris_one_wrongtype> 67 | # a dcat:Distribution ; 68 | # dcat:accessURL ; 69 | # dcat:accessURL "" ; 70 | # . 71 | 72 | # <01-I-dataset-no_distributions> 73 | # a dcat:Dataset ; 74 | # . 75 | 76 | # <02-I-dataset-distribution-01-I> 77 | # a dcat:Dataset ; 78 | # dcat:distribution <01-I-distribution-no_uri> ; 79 | # . 80 | 81 | # <03-I-dataset-distribution-02-I> 82 | # a dcat:Dataset ; 83 | # dcat:distribution <02-I-distribution-uri_wrongtype> ; 84 | # . 85 | 86 | # <04-I-dataset-distribution-01-I-02-I> 87 | # a dcat:Dataset ; 88 | # dcat:distribution <01-I-distribution-no_uri> ; 89 | # dcat:distribution <02-I-distribution-uri_wrongtype> ; 90 | # . 91 | 92 | # <01-V-dataset-distribution-01-V> 93 | # a dcat:Dataset ; 94 | # dcat:distribution <01-V-distribution-one_uri> ; 95 | # . 96 | -------------------------------------------------------------------------------- /testcases/v2.0_shapes/catalog-dct_spatial.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -contentToValidate ../testcases/v2.0_shapes/quicktest.ttl 6 | 7 | @prefix dcat: . 8 | @prefix dcatde: . 9 | @prefix dct: . 10 | @prefix foaf: . 11 | @prefix skos: . 12 | @prefix vcard: . 13 | 14 | @base . 15 | 16 | 17 | a foaf:Agent ; 18 | foaf:name "Ein Pusblishername" ; 19 | . 20 | 21 | 22 | a dcat:Catalog ; 23 | dct:title "Ein Titel" ; 24 | dct:description "Eine Test-Beschreibung." ; 25 | dct:license ; 26 | dct:publisher ; 27 | 28 | dct:spatial ; 29 | . 30 | 31 | 32 | a dcat:Catalog ; 33 | dct:title "Ein Titel" ; 34 | dct:description "Eine Test-Beschreibung." ; 35 | dct:license ; 36 | dct:publisher ; 37 | 38 | dct:spatial [ 39 | a dct:Location ; 40 | foaf:name "Berlin" ; 41 | ] 42 | . 43 | 44 | 45 | a dcat:Catalog ; 46 | dct:title "Ein Titel" ; 47 | dct:description "Eine Test-Beschreibung." ; 48 | dct:license ; 49 | dct:publisher ; 50 | 51 | dct:spatial "Berlin!" ; 52 | . 53 | 54 | 55 | a dcat:Catalog ; 56 | dct:title "Ein Titel" ; 57 | dct:description "Eine Test-Beschreibung." ; 58 | dct:license ; 59 | dct:publisher ; 60 | 61 | dct:spatial [ 62 | a foaf:Agent ; 63 | foaf:name "Berlin" ; 64 | ] ; 65 | . 66 | -------------------------------------------------------------------------------- /testcases/rewritten-example-simple.ttl: -------------------------------------------------------------------------------- 1 | # Version 1.0.2, 01.03.2019, ]init[ AG dcat-ap.de einfache Beispielimplementation (C) CC BY 4.0 ']init[ AG und SID Sachsen fuer GovData' 2 | 3 | @prefix dcat: . 4 | @prefix dct: . 5 | @prefix foaf: . 6 | @prefix dcatde: . 7 | @prefix vcard: . 8 | 9 | 10 | # Minimalanforderungen DCAT-AP.de 11 | a dcat:Catalog ; 12 | dct:title "GovData" ; 13 | dct:description "Das Datenportal für Deutschland - Open Government: Verwaltungsdaten transparent, offen und frei nutzbar." ; 14 | dct:publisher ; 15 | dcat:dataset . 16 | 17 | 18 | # Minimalanforderungen DCAT-AP.de 19 | a foaf:Organization ; 20 | foaf:name "Geschäfts- und Koordinierungsstelle GovData" . 21 | 22 | 23 | # Minimalanforderungen DCAT-AP.de 24 | a dcat:Dataset ; 25 | dct:title "Badegewässer (Daten) Hamburg" ; 26 | dct:description "Darstellung der Badegewässer und ihrer Überwachungsmessstellen im Internet." ; 27 | 28 | # Empfohlen gemaeß DCAT-AP.de 29 | dcat:distribution ; 30 | 31 | # Konvention 1 { 32 | dcat:contactPoint [ 33 | a vcard:Individual ; 34 | vcard:fn "Meister, Thomas, Herr" ; 35 | vcard:hasTelephone "+49 40 123 45678" ; 36 | ] ; # } 37 | 38 | # Konvention 12 { 39 | dcatde:contributorID . # } 40 | 41 | 42 | # Minimalanforderungen DCAT-AP.de 43 | a dcat:Distribution ; 44 | dcat:accessURL ; 45 | 46 | # Optional gemaeß DCAT-AP.de 47 | dcat:downloadURL ; 48 | 49 | # Konvention 32 { 50 | dct:license ; # } 51 | # Konvention 35 { 52 | dcatde:licenseAttributionByText "Freie und Hansestadt Hamburg, Behoerde für Umwelt und Energie" . # } -------------------------------------------------------------------------------- /testcases/distribution-checksum.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dct: . 3 | @prefix foaf: . 4 | @prefix dcatde: . 5 | @prefix vcard: . 6 | @prefix xsd: . 7 | @prefix spdx: . 8 | 9 | @base . 10 | 11 | <01-P-working> 12 | a dcat:Distribution ; 13 | spdx:checksum [ 14 | a spdx:Checksum ; 15 | spdx:algorithm ; 16 | spdx:checksumValue "476a5533998c2b31c81c2d56a25b83a7"^^xsd:hexBinary ; 17 | ] . 18 | 19 | <02-I-not_in_list> 20 | a dcat:Distribution ; 21 | spdx:checksum [ 22 | a spdx:Checksum ; 23 | spdx:algorithm ; 24 | spdx:checksumValue "476a5533998c2b31c81c2d56a25b83a7"^^xsd:hexBinary ; 25 | ] . 26 | 27 | # <03-F-multiple> 28 | # a dcat:Distribution ; 29 | # spdx:checksum [ 30 | # a spdx:Checksum ; 31 | # spdx:algorithm ; 32 | # spdx:checksumValue "476a5533998c2b31c81c2d56a25b83a7"^^xsd:hexBinary ; 33 | # ] , [ 34 | # a spdx:Checksum ; 35 | # spdx:algorithm ; 36 | # spdx:checksumValue "442c0184eb4ce608ee5f721db7b4b1fc"^^xsd:hexBinary ; 37 | # ] . 38 | 39 | # <04-F-no_class> 40 | # spdx:checksum [ 41 | # spdx:algorithm ; 42 | # spdx:checksumValue "476a5533998c2b31c81c2d56a25b83a7"^^xsd:hexBinary ; 43 | # ] . 44 | 45 | # <05-F-wrong_class> 46 | # spdx:checksum [ 47 | # a foaf:Agent ; 48 | # spdx:algorithm ; 49 | # spdx:checksumValue "476a5533998c2b31c81c2d56a25b83a7"^^xsd:hexBinary ; 50 | # ] . 51 | 52 | # <06-F-algo_wrong_type> 53 | # a dcat:Distribution ; 54 | # spdx:checksum [ 55 | # a spdx:Checksum ; 56 | # spdx:algorithm "http://dcat-ap.de/def/hashAlgorithms/md/5" ; 57 | # spdx:checksumValue "476a5533998c2b31c81c2d56a25b83a7"^^xsd:hexBinary ; 58 | # ] . 59 | 60 | # <07-F-checksum_wrong_type> 61 | # a dcat:Distribution ; 62 | # spdx:checksum [ 63 | # a spdx:Checksum ; 64 | # spdx:algorithm ; 65 | # spdx:checksumValue ; 66 | # ] . 67 | 68 | # <08-F-checksum_wrong_type_2> 69 | # a dcat:Distribution ; 70 | # spdx:checksum [ 71 | # a spdx:Checksum ; 72 | # spdx:algorithm ; 73 | # spdx:checksumValue "1234567890"^^xsd:Integer ; 74 | # ] . 75 | 76 | # <09-I-nothing> 77 | # a dcat:Distribution . -------------------------------------------------------------------------------- /testcases/v2.0_shapes/location.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-konventionen.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-deprecated.ttl -contentToValidate ../testcases/v2.0_shapes/location.ttl 6 | 7 | @prefix adms: . 8 | @prefix dcat: . 9 | @prefix dcatap: . 10 | @prefix dcatde: . 11 | @prefix dct: . 12 | @prefix foaf: . 13 | @prefix locn: . 14 | @prefix vcard: . 15 | @prefix rdfs: . 16 | @prefix schema: . 17 | @prefix skos: . 18 | @prefix spdx: . 19 | @prefix time: . 20 | @prefix xsd: . 21 | 22 | @prefix : . 23 | 24 | :ok-1-bbox 25 | a dct:Location ; 26 | dcat:bbox "a dcat:bbox literal" ; 27 | . 28 | 29 | :ok-2-centroid 30 | a dct:Location ; 31 | dcat:centroid "a dcat:centroid literal" ; 32 | . 33 | 34 | :ok-3-geometry 35 | a dct:Location ; 36 | locn:geometry "a locn:geometry literal" ; 37 | . 38 | 39 | :bad-empty 40 | a dct:Location ; 41 | . 42 | 43 | :bad-multi-bbox 44 | a dct:Location ; 45 | dcat:bbox "a dcat:bbox literal 1" ; 46 | dcat:bbox "a dcat:bbox literal 2" ; 47 | . 48 | 49 | :bad-multi-centroid 50 | a dct:Location ; 51 | dcat:centroid "a dcat:centroid literal 1" ; 52 | dcat:centroid "a dcat:centroid literal 2" ; 53 | . 54 | 55 | :bad-multi-geometry 56 | a dct:Location ; 57 | locn:geometry "a locn:geometry literal 1" ; 58 | locn:geometry "a locn:geometry literal 2" ; 59 | . 60 | 61 | :bad-multi-mix 62 | a dct:Location ; 63 | dcat:bbox "a dcat:bbox literal 1" ; 64 | dcat:centroid "a dcat:centroid literal 1" ; 65 | locn:geometry "a locn:geometry literal 1" ; 66 | . 67 | -------------------------------------------------------------------------------- /testcases/v2.0_shapes/distribution-dcat_mediaType.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # cd C:\Users\lrinsche\Documents\GitHub\DCAT-AP.de-SHACL-Validation\tools 6 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -contentToValidate ../testcases/v2.0_shapes/quicktest.ttl 7 | 8 | @prefix : . 9 | @prefix dcat: . 10 | @prefix dcatde: . 11 | @prefix dct: . 12 | @prefix foaf: . 13 | @prefix skos: . 14 | @prefix vcard: . 15 | 16 | :ok-agent 17 | a foaf:Agent ; 18 | foaf:name "Ein Publishername" ; 19 | . 20 | 21 | :ok-contactPoint 22 | a vcard:Kind ; 23 | . 24 | 25 | :ok-1-distribution 26 | a dcat:Distribution ; 27 | dcat:accessURL ; 28 | . 29 | 30 | :ok-2-distribution-https 31 | a dcat:Distribution ; 32 | dcat:accessURL ; 33 | dcat:mediaType ; 34 | . 35 | 36 | :ok-2-distribution-http 37 | a dcat:Distribution ; 38 | dcat:accessURL ; 39 | dcat:mediaType ; 40 | . 41 | 42 | :gray-0-dist-notInListButNotFoundAsError 43 | a dcat:Distribution ; 44 | dcat:accessURL ; 45 | dcat:mediaType ; 46 | . 47 | 48 | :bad-1-dist-noIRI 49 | a dcat:Distribution ; 50 | dcat:accessURL ; 51 | dcat:mediaType "CSV" ; 52 | . 53 | 54 | :bad-2-dist-multipleFormats 55 | a dcat:Distribution ; 56 | dcat:accessURL ; 57 | dcat:mediaType ; 58 | dcat:mediaType ; 59 | . 60 | 61 | :bad-3-dist-notInList 62 | a dcat:Distribution ; 63 | dcat:accessURL ; 64 | dcat:mediaType ; 65 | . 66 | -------------------------------------------------------------------------------- /testcases/v2.0_shapes/konventionen/konv36.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-konventionen.ttl -contentToValidate ../testcases/v2.0_shapes/konventionen/konv36.ttl 6 | 7 | @prefix dcat: . 8 | @prefix dct: . 9 | @prefix foaf: . 10 | @prefix dcatde: . 11 | @prefix vcard: . 12 | @prefix skos: . 13 | @prefix xsd: . 14 | 15 | @base . 16 | a foaf:Agent ; foaf:name "example". 17 | a dcat:Distribution ; dct:title "Test" ; dcat:accessURL ; dct:license ; dct:format . 18 | 19 | 20 | a dcat:Dataset ; 21 | dct:title "Test" ; 22 | dct:description "Test" ; 23 | dcatde:contributorID ; 24 | dcat:theme ; 25 | dcat:keyword "Test" ; 26 | dcat:landingPage ; 27 | dct:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 28 | dct:identifier "http://example.com/#dataset" ; 29 | dct:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 30 | dcat:distribution ; 31 | 32 | dct:publisher ; 33 | . 34 | 35 | 36 | a dcat:Dataset ; 37 | dct:title "Test" ; 38 | dct:description "Test" ; 39 | dcatde:contributorID ; 40 | dcat:theme ; 41 | dcat:keyword "Test" ; 42 | dcat:landingPage ; 43 | dct:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 44 | dct:identifier "http://example.com/#dataset" ; 45 | dct:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 46 | dcat:distribution ; 47 | . -------------------------------------------------------------------------------- /testcases/v2.0_shapes/dataset-dcatde_politicalGeocodingURI.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -contentToValidate ../testcases/v2.0_shapes/quicktest.ttl 6 | 7 | @prefix dcat: . 8 | @prefix dcatde: . 9 | @prefix dct: . 10 | @prefix foaf: . 11 | @prefix skos: . 12 | @prefix vcard: . 13 | 14 | @base . 15 | 16 | 17 | a foaf:Agent ; 18 | foaf:name "Ein Publishername" ; 19 | . 20 | 21 | 22 | a dcat:Dataset ; 23 | dct:title "Ein Titel" ; 24 | dct:description "Eine Test-Beschreibung." ; 25 | . 26 | 27 | 28 | a dcat:Dataset ; 29 | dct:title "Ein Titel" ; 30 | dct:description "Eine Test-Beschreibung." ; 31 | 32 | dcatde:politicalGeocodingURI ; 33 | . 34 | 35 | 36 | a dcat:Dataset ; 37 | dct:title "Ein Titel" ; 38 | dct:description "Eine Test-Beschreibung." ; 39 | 40 | dcatde:politicalGeocodingURI ; 41 | dcatde:politicalGeocodingURI ; 42 | dcatde:politicalGeocodingURI ; 43 | dcatde:politicalGeocodingURI ; 44 | dcatde:politicalGeocodingURI ; 45 | dcatde:politicalGeocodingURI ; 46 | . 47 | 48 | 49 | a dcat:Dataset ; 50 | dct:title "Ein Titel" ; 51 | dct:description "Eine Test-Beschreibung." ; 52 | 53 | dcatde:politicalGeocodingURI "Berlin" ; 54 | . 55 | 56 | 57 | a dcat:Dataset ; 58 | dct:title "Ein Titel" ; 59 | dct:description "Eine Test-Beschreibung." ; 60 | 61 | dcatde:politicalGeocodingURI ; 62 | . 63 | -------------------------------------------------------------------------------- /testcases/v2.0_shapes/dataset-dcat_theme.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # cd C:\Users\lrinsche\Documents\GitHub\DCAT-AP.de-SHACL-Validation\tools 6 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -contentToValidate ../testcases/v2.0_shapes/dataset-dcat_theme.ttl 7 | 8 | @prefix : . 9 | @prefix dcat: . 10 | @prefix dcatde: . 11 | @prefix dct: . 12 | @prefix foaf: . 13 | @prefix skos: . 14 | @prefix vcard: . 15 | 16 | :ok-agent 17 | a foaf:Agent ; 18 | foaf:name "Ein Publishername" ; 19 | . 20 | 21 | :ok-1-dataset 22 | a dcat:Dataset ; 23 | dct:title "Ein Titel" ; 24 | dct:description "Eine Test-Beschreibung." ; 25 | . 26 | 27 | :ok-2-dataset 28 | a dcat:Dataset ; 29 | dct:title "Ein Titel" ; 30 | dct:description "Eine Test-Beschreibung." ; 31 | dcat:theme ; 32 | . 33 | 34 | :ok-3-dataset 35 | a dcat:Dataset ; 36 | dct:title "Ein Titel" ; 37 | dct:description "Eine Test-Beschreibung." ; 38 | dcat:theme ; 39 | dcat:theme ; 40 | . 41 | 42 | :bad-0-soon-good-dataset 43 | a dcat:Dataset ; 44 | dct:title "Ein Titel" ; 45 | dct:description "Eine Test-Beschreibung." ; 46 | dcat:theme ; 47 | dcat:theme ; 48 | . 49 | 50 | :bad-1-dataset 51 | a dcat:Dataset ; 52 | dct:title "Ein Titel" ; 53 | dct:description "Eine Test-Beschreibung." ; 54 | dcat:theme ; 55 | . 56 | 57 | :bad-2-dataset 58 | a dcat:Dataset ; 59 | dct:title "Ein Titel" ; 60 | dct:description "Eine Test-Beschreibung." ; 61 | dcat:theme ; 62 | . 63 | 64 | :bad-3-dataset 65 | a dcat:Dataset ; 66 | dct:title "Ein Titel" ; 67 | dct:description "Eine Test-Beschreibung." ; 68 | dcat:theme "Landwirtschaft" ; 69 | . 70 | -------------------------------------------------------------------------------- /testcases/v2.0_shapes/konventionen/konv01.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-konventionen.ttl -contentToValidate ../testcases/v2.0_shapes/konventionen/konv01.ttl 6 | 7 | @prefix dcat: . 8 | @prefix dct: . 9 | @prefix foaf: . 10 | @prefix dcatde: . 11 | @prefix vcard: . 12 | @prefix skos: . 13 | @prefix xsd: . 14 | 15 | @base . 16 | a foaf:Agent ; foaf:name "example" . 17 | a dcat:Distribution ; dct:title "Test" ; dcat:accessURL ; dct:license ; dct:format . 18 | 19 | 20 | a dcat:Dataset ; 21 | dct:title "Test" ; 22 | dct:description "Test" ; 23 | dcatde:contributorID ; 24 | dct:publisher ; 25 | dcat:theme ; 26 | dcat:keyword "Test" ; 27 | dcat:landingPage ; 28 | dct:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 29 | dct:identifier "http://example.com/#dataset" ; 30 | dct:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 31 | dcat:distribution ; 32 | 33 | dcat:contactPoint ; 34 | dcat:contactPoint ; 35 | dcat:contactPoint ; 36 | dcat:contactPoint ; 37 | dcat:contactPoint ; 38 | . 39 | 40 | 41 | a vcard:Kind ; 42 | vcard:hasURL ; 43 | vcard:hasTelephone "+49 40 123 45678" ; 44 | . 45 | 46 | 47 | a vcard:Kind ; 48 | vcard:hasURL ; 49 | . 50 | 51 | 52 | a vcard:Kind ; 53 | vcard:hasEmail ; 54 | . 55 | 56 | 57 | a vcard:Kind ; 58 | . 59 | 60 | 61 | a vcard:Kind ; 62 | vcard:hasTelephone "+49 40 123 45678" ; 63 | . 64 | -------------------------------------------------------------------------------- /validator/resources/v1.0.2/shapes/nal-lists.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | 3 | @prefix : . 4 | @prefix rdf: . 5 | @prefix dct: . 6 | @prefix owl: . 7 | 8 | :frequency_List 9 | a rdf:List ; 10 | dct:isVersionOf ; 11 | owl:versionIRI ; 12 | rdf:first rdf:nil ; 13 | rdf:rest ( 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | ) . 46 | 47 | -------------------------------------------------------------------------------- /testcases/dashboard/destatis-catalog-dataset-extracted.rdf: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | http://dcat-ap.de/def/contributors/destatis 13 | Verarbeitendes Gewerbe 14 | Volumenindex des Umsatzes, Verarbeitendes Gewerbe insgesamt 15 | Index 16 | 17 | 18 | 2021-01-06 19 | 20 | Tabellen und Diagramme mit Kalender- und Saisonbereinigung nach dem Berliner Verfahren (BV 4.1) sowie nach X13 JDemetra+ 21 | 22 | 2021-01-06 23 | 24 | Auftrag 25 | Umsatz 26 | 27 | 28 | 29 | 30 | 31 | Tabellen und Diagramme mit Kalender- und Saisonbereinigung nach dem Berliner Verfahren (BV 4.1) sowie nach X13 JDemetra+ 32 | http://publications.europa.eu/resource/authority/language/DEU 33 | 34 | 35 | 36 | Statistisches Bundesamt 37 | 38 | 39 | 40 | 41 | 42 | Statistisches Bundesamt 43 | 44 | -------------------------------------------------------------------------------- /validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # Based on the SHACL-imports for DCAT-AP: https://github.com/SEMICeu/DCAT-AP 3 | 4 | @prefix owl: . 5 | @prefix rdf: . 6 | 7 | 8 | rdf:type owl:Ontology ; 9 | owl:imports ; # mirror for ; 10 | owl:imports ; # mirror for ; 11 | owl:imports ; # mirror for ; 12 | 13 | owl:imports ; 14 | owl:imports ; 15 | owl:imports ; 16 | owl:imports ; 17 | owl:imports ; 18 | 19 | owl:imports ; # status, publishertype 20 | 21 | owl:imports ; 22 | owl:imports ; 23 | owl:imports ; 24 | owl:imports ; 25 | owl:imports ; 26 | owl:imports ; 27 | owl:imports ; 28 | owl:imports ; 29 | owl:imports ; 30 | owl:imports ; # wird nur für GovData-Anlieferung benötigt 31 | 32 | # owl:imports ; # kein Anwendunsfall 33 | # owl:imports ; # kein Anwendunsfall 34 | # owl:imports ; # kein Anwendunsfall 35 | # owl:imports ; # kein Anwendunsfall 36 | # owl:imports ; # kein Anwendunsfall 37 | # owl:imports ; # kein Anwendunsfall 38 | . -------------------------------------------------------------------------------- /testcases/v2.0_shapes/dataset-dct_issued.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # cd C:\Users\lrinsche\Documents\GitHub\DCAT-AP.de-SHACL-Validation\tools 6 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -contentToValidate ../testcases/v2.0_shapes/quicktest.ttl 7 | 8 | @prefix : . 9 | @prefix adms: . 10 | @prefix dc: . 11 | @prefix dcat: . 12 | @prefix dcatap: . 13 | @prefix dcatde: . 14 | @prefix dct: . 15 | @prefix foaf: . 16 | @prefix locn: . 17 | @prefix odrl: . 18 | @prefix org: . 19 | @prefix owl: . 20 | @prefix prov: . 21 | @prefix rdf: . 22 | @prefix rdfs: . 23 | @prefix schema: . 24 | @prefix sh: . 25 | @prefix skos: . 26 | @prefix skosxl: . 27 | @prefix spdx: . 28 | @prefix time: . 29 | @prefix vcard: . 30 | @prefix xml: . 31 | @prefix xsd: . 32 | 33 | :ok-agent 34 | a foaf:Agent ; 35 | foaf:name "Ein Publishername" ; 36 | . 37 | 38 | :ok-1-dataset 39 | a dcat:Dataset ; 40 | dct:title "Ein Titel" ; 41 | dct:description "Eine Test-Beschreibung." ; 42 | . 43 | 44 | :ok-2-dataset 45 | a dcat:Dataset ; 46 | dct:title "Ein Titel" ; 47 | dct:description "Eine Test-Beschreibung." ; 48 | dct:issued "2018-08-05"^^xsd:date ; 49 | . 50 | 51 | :bad-1-dataset-multipleIssueds 52 | a dcat:Dataset ; 53 | dct:title "Ein Titel" ; 54 | dct:description "Eine Test-Beschreibung." ; 55 | dct:issued "2018-08-04"^^xsd:date ; 56 | dct:issued "2018-08-05"^^xsd:date ; 57 | 58 | . 59 | 60 | :bad-2-dataset-IRI 61 | a dcat:Dataset ; 62 | dct:title "Ein Titel" ; 63 | dct:description "Eine Test-Beschreibung." ; 64 | dct:issued ; 65 | . 66 | 67 | :bad-3-dataset-wrongFormat 68 | a dcat:Dataset ; 69 | dct:title "Ein Titel" ; 70 | dct:description "Eine Test-Beschreibung." ; 71 | dct:issued "letzten Mittwoch" ; 72 | . -------------------------------------------------------------------------------- /validator/resources/translations/labels_en.properties: -------------------------------------------------------------------------------- 1 | # Labels to describe the defined types. 2 | validator.typeLabel.v30_de_spec = DCAT-AP.de 3.0 (BETA 2024-12-06) 3 | validator.typeLabel.v30_de_trans = DCAT-AP 3.0 - German Error Messages and Restrictions (BETA 2024-11-15) 4 | 5 | validator.typeLabel.v20_de_spec = DCAT-AP.de 2.0 - Specification (2023-01-23) 6 | validator.typeLabel.v20_de_spec_implr = DCAT-AP.de 2.0 - Specification & Conventions (2023-01-23) 7 | 8 | # validator.typeLabel.v11_de_spec = DCAT-AP.de 1.1 Specification 9 | # validator.typeLabel.v210d_ap_man_v11_de_spec = DCAT-AP.de 1.1 Specification + DCAT-AP 2.1 Mandatory 10 | # validator.typeLabel.v210d_ap_manrec_v11_de_spec = DCAT-AP.de 1.1 Specification + DCAT-AP 2.1 Mandatory & Recommended 11 | # validator.typeLabel.v11_de_konv = DCAT-AP.de 1.1 GovData-Guidelines (1, 2, 4-12, 21, 30, 32) 12 | # validator.typeLabel.all = DCAT-AP.de 1.1 Specification + GovData-Guidelines (s.o.) + DCAT-AP 2.1 Mandatory & Recommended 13 | validator.typeLabel.dashboard_alpha = GovData MQA (Alpha) 14 | validator.typeLabel.dashboard_live = GovData Quality Dashboard 15 | 16 | # The title to display for the validator's user interface. 17 | validator.uploadTitle = DCAT-AP.de Validator 18 | 19 | # The banner for the validator 20 | validator.bannerHtml =
DCAT-AP.de Logo

DCAT-AP.de Validator (BETA)

Note: This is the beta of a DCAT-AP.de 3.0 SHACL validator.

More information about this validator can be found at: https://github.com/GovDataOfficial/DCAT-AP.de-SHACL-Validation/. There you can also find information about additional profiles.

A quick guide for the validator can be found at: https://www.itb.ec.europa.eu/docs/guides/latest/validatingRDF/index.html#step-6-use-the-validator.

21 | 22 | # Localization 23 | validator.label.typeLabel = Profile to use 24 | validator.label.externalRulesTooltip = External shapes that should be used for validation in addition to those of the selected profile. 25 | validator.label.resultValidationTypeLabel = Profile used: 26 | validator.label.resultErrorsLabel = Errors (Violation): 27 | validator.label.resultWarningsLabel = Warnings (Warning): 28 | validator.label.resultMessagesLabel = Messages (Info): -------------------------------------------------------------------------------- /testcases/v2.0_shapes/distribution-adms_status.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # cd C:\Users\lrinsche\Documents\GitHub\DCAT-AP.de-SHACL-Validation\tools 6 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -contentToValidate ../testcases/v2.0_shapes/quicktest.ttl 7 | 8 | @prefix : . 9 | @prefix adms: . 10 | @prefix dc: . 11 | @prefix dcat: . 12 | @prefix dcatap: . 13 | @prefix dcatde: . 14 | @prefix dct: . 15 | @prefix foaf: . 16 | @prefix locn: . 17 | @prefix odrl: . 18 | @prefix org: . 19 | @prefix owl: . 20 | @prefix prov: . 21 | @prefix rdf: . 22 | @prefix rdfs: . 23 | @prefix schema: . 24 | @prefix sh: . 25 | @prefix skos: . 26 | @prefix skosxl: . 27 | @prefix spdx: . 28 | @prefix time: . 29 | @prefix vcard: . 30 | @prefix xml: . 31 | @prefix xsd: . 32 | 33 | :ok-agent 34 | a foaf:Agent ; 35 | foaf:name "Ein Publishername" ; 36 | . 37 | 38 | :ok-contactPoint 39 | a vcard:Kind ; 40 | . 41 | 42 | :ok-1-distribution 43 | a dcat:Distribution ; 44 | dcat:accessURL ; 45 | . 46 | 47 | :ok-2-distribution 48 | a dcat:Distribution ; 49 | dcat:accessURL ; 50 | adms:status ; 51 | . 52 | 53 | :gray-0-dist-byGovDataUnallowedIRI 54 | a dcat:Distribution ; 55 | dcat:accessURL ; 56 | adms:status ; 57 | . 58 | 59 | :bad-1-dist-noIRI 60 | a dcat:Distribution ; 61 | dcat:accessURL ; 62 | adms:status "completed"; 63 | . 64 | 65 | :bad-2-dist-multipleStatus 66 | a dcat:Distribution ; 67 | dcat:accessURL ; 68 | adms:status ; 69 | adms:status ; 70 | . 71 | 72 | :bad-3-dist-notInList 73 | a dcat:Distribution ; 74 | dcat:accessURL ; 75 | adms:status ; 76 | . 77 | -------------------------------------------------------------------------------- /testcases/v2.0_shapes/konventionen/deprecated.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-konventionen.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-deprecated.ttl -contentToValidate ../testcases/v2.0_shapes/konventionen/deprecated.ttl 6 | 7 | @prefix dcat: . 8 | @prefix dct: . 9 | @prefix foaf: . 10 | @prefix dcatde: . 11 | @prefix vcard: . 12 | @prefix skos: . 13 | @prefix xsd: . 14 | @prefix schema: . 15 | @prefix adms: . 16 | 17 | @base . 18 | 19 | 20 | a dcat:Catalog ; 21 | dct:title "Test" ; 22 | dct:description "Test" ; 23 | 24 | dct:publisher ; 25 | dcat:dataset ; 26 | dcat:record ; 27 | . 28 | 29 | 30 | a dcat:Dataset ; 31 | dct:title "Test" ; 32 | dct:description "Test" ; 33 | dcatde:contributorID ; 34 | dcat:theme ; 35 | dcat:keyword "Test" ; 36 | dcat:landingPage ; 37 | dct:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 38 | dct:identifier "http://example.com/#dataset" ; 39 | dct:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 40 | 41 | dct:publisher ; 42 | dcat:contactPoint ; 43 | dcat:distribution ; 44 | dct:temporal ; 45 | 46 | dct:type ; 47 | dcat:granularity ; 48 | . 49 | 50 | 51 | a dcat:Distribution ; 52 | dct:title "Test" ; 53 | dcat:accessURL ; 54 | dct:license ; 55 | dct:format ; 56 | 57 | dcat:plannedAvailability ; 58 | . 59 | 60 | 61 | a dcat:CatalogRecord ; 62 | dct:modified "2022-08-05T00:00:00"^^xsd:dateTime ; 63 | foaf:primaryTopic ; 64 | adms:status ; 65 | . 66 | 67 | 68 | a foaf:Agent ; 69 | foaf:name "example" ; 70 | . 71 | 72 | 73 | a vcard:Kind ; 74 | vcard:hasURL ; 75 | vcard:hasTelephone "+49 40 123 45678" ; 76 | . 77 | 78 | 79 | a dct:PeriodOfTime ; 80 | schema:startDate "1987-05-08"^^xsd:date ; 81 | schema:endDate "2090-05-08"^^xsd:date ; 82 | . -------------------------------------------------------------------------------- /testcases/v2.0_shapes/catalog-dcat_themeTaxonomy.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -contentToValidate ../testcases/v2.0_shapes/catalog-dcat_themeTaxonomy.ttl 6 | 7 | @prefix dcat: . 8 | @prefix dcatde: . 9 | @prefix dct: . 10 | @prefix foaf: . 11 | @prefix skos: . 12 | @prefix vcard: . 13 | 14 | @base . 15 | 16 | 17 | a foaf:Agent ; 18 | foaf:name "Ein Pusblishername" ; 19 | . 20 | 21 | 22 | a dcat:Catalog ; 23 | dct:title "Ein Titel" ; 24 | dct:description "Eine Test-Beschreibung." ; 25 | dct:license ; 26 | dct:publisher ; 27 | . 28 | 29 | 30 | a dcat:Catalog ; 31 | dct:title "Ein Titel" ; 32 | dct:description "Eine Test-Beschreibung." ; 33 | dct:license ; 34 | dct:publisher ; 35 | 36 | dcat:themeTaxonomy ; 37 | . 38 | 39 | 40 | a dcat:Catalog ; 41 | dct:title "Ein Titel" ; 42 | dct:description "Eine Test-Beschreibung." ; 43 | dct:license ; 44 | dct:publisher ; 45 | 46 | dcat:themeTaxonomy ; 47 | dcat:themeTaxonomy ; 48 | . 49 | 50 | 51 | a dcat:Catalog ; 52 | dct:title "Ein Titel" ; 53 | dct:description "Eine Test-Beschreibung." ; 54 | dct:license ; 55 | dct:publisher ; 56 | 57 | dcat:themeTaxonomy ; 58 | dcat:themeTaxonomy ; 59 | dcat:themeTaxonomy ; 60 | dcat:themeTaxonomy ; 61 | . 62 | 63 | 64 | a dcat:Catalog ; 65 | dct:title "Ein Titel" ; 66 | dct:description "Eine Test-Beschreibung." ; 67 | dct:license ; 68 | dct:publisher ; 69 | 70 | dcat:themeTaxonomy ; 71 | . 72 | 73 | 74 | a dcat:Catalog ; 75 | dct:title "Ein Titel" ; 76 | dct:description "Eine Test-Beschreibung." ; 77 | dct:license ; 78 | dct:publisher ; 79 | 80 | dcat:themeTaxonomy "" ; 81 | . 82 | -------------------------------------------------------------------------------- /validator/resources/v3.0/shapes/dcat-ap-de-imports.ttl: -------------------------------------------------------------------------------- 1 | # GovData - CC0 2 | # Based on the SHACL-imports for DCAT-AP: https://github.com/SEMICeu/DCAT-AP 3 | 4 | @prefix owl: . 5 | @prefix rdf: . 6 | 7 | 8 | rdf:type owl:Ontology ; 9 | owl:imports ; # mirror for ; 10 | owl:imports ; # mirror for ; 11 | owl:imports ; # mirror for ; 12 | 13 | owl:imports ; 14 | owl:imports ; 15 | owl:imports ; 16 | owl:imports ; 17 | owl:imports ; 18 | owl:imports ; 19 | owl:imports ; 20 | owl:imports ; 21 | 22 | owl:imports ; # wird nur für GovData-Anlieferung benötigt 23 | owl:imports ; 24 | owl:imports ; # dcatde:politicalGeocodingLevel 25 | 26 | owl:imports ; # Hash Algorithmen 27 | owl:imports # Publisher Type 28 | 29 | 30 | # owl:imports ; # deprecated 31 | # owl:imports ; # Kreis 32 | # owl:imports ; # Bezirk 33 | # owl:imports ; # Gemeindeverbände 34 | # owl:imports ; # Gemeindeschlüssel 35 | # owl:imports ; # Regionalschlüssel 36 | # owl:imports ; # Bundesland 37 | 38 | # owl:imports ; # kein Anwendunsfall 39 | # owl:imports ; # kein Anwendunsfall 40 | # owl:imports ; # kein Anwendunsfall 41 | # owl:imports ; # kein Anwendunsfall 42 | # owl:imports ; # kein Anwendunsfall 43 | . -------------------------------------------------------------------------------- /testcases/v2.0_shapes/periodoftime.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-konventionen.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-deprecated.ttl -contentToValidate ../testcases/v2.0_shapes/periodoftime.ttl 6 | 7 | @prefix adms: . 8 | @prefix dcat: . 9 | @prefix dcatap: . 10 | @prefix dcatde: . 11 | @prefix dct: . 12 | @prefix foaf: . 13 | @prefix vcard: . 14 | @prefix rdfs: . 15 | @prefix schema: . 16 | @prefix skos: . 17 | @prefix spdx: . 18 | @prefix time: . 19 | @prefix xsd: . 20 | 21 | @prefix : . 22 | 23 | :aTimeInstant 24 | a time:Instant ; 25 | . 26 | 27 | :anotherTimeInstant 28 | a time:Instant ; 29 | . 30 | 31 | :ok-1-both-dcat 32 | a dct:PeriodOfTime ; 33 | dcat:startDate "1987-05-08"^^xsd:date ; 34 | dcat:endDate "2090-05-08"^^xsd:date ; 35 | . 36 | 37 | :ok-2-start-dcat 38 | a dct:PeriodOfTime ; 39 | dcat:startDate "1987-05-08"^^xsd:date ; 40 | . 41 | 42 | :ok-3-end-dcat 43 | a dct:PeriodOfTime ; 44 | dcat:endDate "2090-05-08"^^xsd:date ; 45 | . 46 | 47 | :ok-4-both-time 48 | a dct:PeriodOfTime ; 49 | time:hasBeginning :aTimeInstant ; 50 | time:hasEnd :anotherTimeInstant ; 51 | . 52 | 53 | :ok-5-start-time 54 | a dct:PeriodOfTime ; 55 | time:hasBeginning :aTimeInstant ; 56 | . 57 | 58 | :ok-6-end-time 59 | a dct:PeriodOfTime ; 60 | time:hasEnd :aTimeInstant ; 61 | . 62 | 63 | :gray-1-both-schema 64 | a dct:PeriodOfTime ; 65 | schema:startDate "1987-05-08"^^xsd:date ; 66 | schema:endDate "2090-05-08"^^xsd:date ; 67 | . 68 | 69 | :gray-2-start-schema 70 | a dct:PeriodOfTime ; 71 | schema:startDate "1987-05-08"^^xsd:date ; 72 | . 73 | 74 | :gray-3-end-schema 75 | a dct:PeriodOfTime ; 76 | schema:endDate "2090-05-08"^^xsd:date ; 77 | . 78 | 79 | :bad-empty 80 | a dct:PeriodOfTime ; 81 | . 82 | 83 | :bad-double-dcat-start 84 | a dct:PeriodOfTime ; 85 | dcat:startDate "1987-05-08"^^xsd:date ; 86 | dcat:startDate "2090-05-08"^^xsd:date ; 87 | . 88 | 89 | :bad-double-dcat-end 90 | a dct:PeriodOfTime ; 91 | dcat:endDate "1987-05-08"^^xsd:date ; 92 | dcat:endDate "2090-05-08"^^xsd:date ; 93 | . 94 | 95 | :bad-double-schema-start 96 | a dct:PeriodOfTime ; 97 | schema:startDate "1987-05-08"^^xsd:date ; 98 | schema:startDate "2090-05-08"^^xsd:date ; 99 | . 100 | 101 | :bad-double-schema-end 102 | a dct:PeriodOfTime ; 103 | schema:endDate "1987-05-08"^^xsd:date ; 104 | schema:endDate "2090-05-08"^^xsd:date ; 105 | . 106 | 107 | :bad-double-time-start 108 | a dct:PeriodOfTime ; 109 | time:hasBeginning :aTimeInstant ; 110 | time:hasBeginning :anotherTimeInstant ; 111 | . 112 | 113 | :bad-double-time-end 114 | a dct:PeriodOfTime ; 115 | time:hasEnd :aTimeInstant ; 116 | time:hasEnd :anotherTimeInstant ; 117 | . -------------------------------------------------------------------------------- /testcases/dashboard/bremen-catalog-dataset-extracted.ttl: -------------------------------------------------------------------------------- 1 | @prefix dcat: . 2 | @prefix dcterms: . 3 | @prefix foaf: . 4 | @prefix locn: . 5 | @prefix dcatapde: . 6 | @prefix schema: . 7 | @prefix vcard: . 8 | @prefix xsd: . 9 | 10 | a dcat:Dataset ; 11 | dcatapde:contributorID ; 12 | dcatapde:maintainer [ a foaf:Person ; 13 | foaf:name "email: info@statistik.bremen.de" ] ; 14 | dcatapde:originator [ a foaf:Person ; 15 | foaf:name "Statistisches Landesamt Bremenemail: info@statistik.bremen.de" ] ; 16 | dcterms:accrualPeriodicity ; 17 | dcterms:description "

Statistischer Bericht

Der Bericht enthält Tabellen und Grafiken über die Empfänger nach dem 3. bis 9. Kapitel des Zwölften Buches Sozialgesetzbuch (SGB XII).Die Angaben liegen für das Land Bremen und die Städte Bremen und Bremerhaven vor. Der Bericht wird jährlich aktualisiert. Er ist als PDF-Datei verfügbar.Herausgegeben wird der Bericht vom Statistischen Landesamt Bremen.

" ; 18 | dcterms:issued "2020-03-25" ; 19 | dcterms:language ; 20 | dcterms:publisher ; 21 | dcterms:spatial [ a dcterms:Location ; 22 | locn:adminUnitL2 ] ; 23 | dcterms:temporal [ a dcterms:PeriodOfTime ; 24 | schema:endDate "9999-01-01"^^xsd:date ; 25 | schema:startDate "2020-03-25"^^xsd:date ] ; 26 | dcterms:title "Die Sozialhilfe im Land Bremen Teil II" ; 27 | dcat:contactPoint [ a vcard:Individual ; 28 | vcard:fn "Statistisches Landesamt Bremen" ; 29 | vcard:hasEmail ; 30 | vcard:hasLocality "Bremen" ; 31 | vcard:hasPostalCode "28195" ; 32 | vcard:hasStreetAddress "An der Weide 14-16" ] ; 33 | dcat:distribution 34 | , 35 | ; 36 | 37 | dcat:keyword 38 | "SGB", 39 | "Sozialgesetzbuch", 40 | "Sozialhilfe", 41 | "Wirtschaft" ; 42 | dcat:theme . 43 | 44 | a foaf:Organization ; 45 | dcterms:type ; 46 | foaf:name "Freie und Hansestadt Bremen" ; 47 | foaf:name "Freie und Hansestadt Bremen 2" ; 48 | # foaf:name ; 49 | . 50 | 51 | a dcat:Distribution ; 52 | dcterms:description "Statistischer Bericht, Sozialleistungen" ; 53 | dcterms:format ; 54 | dcterms:language ; 55 | # dcterms:license "Public Domain" ; 56 | # dcterms:license ; 57 | dcterms:license ; 58 | # dcterms:license ; 59 | dcat:accessURL "http://www.statistik.bremen.de/sixcms/detail.php?id=11569" . 60 | 61 | a dcat:Distribution ; 62 | dcterms:description "Statistischer Bericht, Sozialleistungen" ; 63 | dcterms:format ; 64 | dcterms:language ; 65 | # dcterms:license "Public Domain" ; 66 | # dcterms:license ; 67 | # dcterms:license ; 68 | dcterms:license ; 69 | dcterms:license ; 70 | dcat:accessURL "http://www.statistik.bremen.de/sixcms/detail.php?id=11569" . -------------------------------------------------------------------------------- /testcases/v2.0_shapes/konventionen/perfect.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-konventionen.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-deprecated.ttl -contentToValidate ../testcases/v2.0_shapes/konventionen/perfect.ttl 6 | 7 | @prefix dcat: . 8 | @prefix dct: . 9 | @prefix foaf: . 10 | @prefix dcatde: . 11 | @prefix vcard: . 12 | @prefix skos: . 13 | @prefix xsd: . 14 | @prefix schema: . 15 | @prefix adms: . 16 | @prefix prov: . 17 | @prefix odrl: . 18 | 19 | @base . 20 | 21 | 22 | a dcat:Catalog ; 23 | dct:title "Test" ; 24 | dct:description "Test" ; 25 | 26 | dct:publisher ; 27 | dcat:dataset ; 28 | dcat:record ; 29 | 30 | # Ranges: IRIorLiteral 31 | dct:rights ; 32 | 33 | # Ranges: IRI 34 | foaf:homepage ; 35 | . 36 | 37 | 38 | a dcat:Dataset ; 39 | dct:title "Test" ; 40 | dct:description "Test" ; 41 | dcatde:contributorID ; 42 | dcat:theme ; 43 | dcat:keyword "Test" ; 44 | dct:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 45 | dct:identifier "http://example.com/#dataset" ; 46 | dct:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 47 | 48 | dct:publisher ; 49 | dcat:contactPoint ; 50 | dcat:distribution ; 51 | dct:temporal ; 52 | 53 | # Ranges: IRIorLiteral 54 | dct:conformsTo "DCAT-AP.de Version 2.0" ; 55 | dct:accessRights ; 56 | dct:provenance "Die Provenance kann als Literal angegeben werden." ; 57 | 58 | # Ranges: IRI 59 | prov:wasGeneratedBy ; 60 | dcat:landingPage ; 61 | foaf:page ; 62 | . 63 | 64 | 65 | a dcat:Distribution ; 66 | dct:title "Test" ; 67 | dcat:accessURL ; 68 | dct:license ; 69 | dct:format ; 70 | 71 | # Ranges: IRIorLiteral 72 | dct:conformsTo "DCAT-AP.de Version 2.0" ; 73 | dct:accessRights ; 74 | 75 | # Ranges: IRI 76 | foaf:page ; 77 | odrl:hasPolicy ; 78 | . 79 | 80 | 81 | a dcat:DataService ; 82 | dct:title "Ein Test-Dataservice" ; 83 | dcat:endpointURL ; 84 | 85 | # Ranges: IRIorLiteral 86 | dct:accessRights ; 87 | . 88 | 89 | 90 | a dcat:CatalogRecord ; 91 | dct:modified "2022-08-05T00:00:00"^^xsd:dateTime ; 92 | foaf:primaryTopic ; 93 | 94 | # Ranges: IRIorLiteral 95 | dct:conformsTo "DCAT-AP.de Version 2.0" ; 96 | . 97 | 98 | 99 | a foaf:Agent ; 100 | foaf:name "example" ; 101 | . 102 | 103 | 104 | a vcard:Kind ; 105 | vcard:hasURL ; 106 | vcard:hasTelephone "+49 40 123 45678" ; 107 | . 108 | 109 | 110 | a dct:PeriodOfTime ; 111 | dcat:startDate "1987-05-08"^^xsd:date ; 112 | dcat:endDate "2090-05-08"^^xsd:date ; 113 | . -------------------------------------------------------------------------------- /testcases/dashboard/bremen-catalog-dataset-extracted.rdf: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | Die Sozialhilfe im Land Bremen Teil II 16 | 17 | 18 | 2020-03-25 19 | 20 | Wirtschaft 21 | 22 | 23 | SGB 24 | 25 | <p>Statistischer Bericht</p><p>Der Bericht enthält Tabellen und Grafiken über die Empfänger nach dem 3. bis 9. Kapitel des Zwölften Buches Sozialgesetzbuch (SGB XII).Die Angaben liegen für das Land Bremen und die Städte Bremen und Bremerhaven vor. Der Bericht wird jährlich aktualisiert. Er ist als PDF-Datei verfügbar.Herausgegeben wird der Bericht vom Statistischen Landesamt Bremen. </p> 26 | 27 | Sozialhilfe 28 | 29 | 30 | 31 | Sozialgesetzbuch 32 | 33 | 34 | 35 | 28195 36 | An der Weide 14-16 37 | Statistisches Landesamt Bremen 38 | Bremen 39 | 40 | 41 | 42 | http://www.statistik.bremen.de/sixcms/detail.php?id=11569 43 | 44 | Statistischer Bericht, Sozialleistungen 45 | 46 | 47 | 48 | 49 | 50 | 51 | Statistisches Landesamt Bremenemail: info@statistik.bremen.de 52 | 53 | 54 | 55 | 9999-01-01 56 | 2020-03-25 57 | 58 | 59 | 60 | 61 | 62 | 63 | email: info@statistik.bremen.de 64 | 65 | 66 | 67 | 68 | 69 | Freie und Hansestadt Bremen 70 | 71 | -------------------------------------------------------------------------------- /testcases/v3.0_shapes/deprecated.ttl: -------------------------------------------------------------------------------- 1 | @prefix adms: . 2 | @prefix dcat: . 3 | @prefix dcatap: . 4 | @prefix dcatde: . 5 | @prefix dcterms: . 6 | @prefix foaf: . 7 | @prefix owl: . 8 | @prefix rdfs: . 9 | @prefix schema: . 10 | @prefix skos: . 11 | @prefix spdx: . 12 | @prefix tel: <> . 13 | @prefix vcard: . 14 | @prefix xsd: . 15 | 16 | @base . 17 | 18 | 19 | a dcat:Catalog ; 20 | dcterms:title "Test" ; 21 | dcterms:description "Test" ; 22 | 23 | dcterms:publisher ; 24 | dcat:dataset ; 25 | dcat:dataservice ; 26 | 27 | dcterms:language ; 28 | 29 | dcterms:license ; 30 | dcatap:availability ; 31 | . 32 | 33 | 34 | a dcat:DataService ; 35 | dcterms:title "Test" ; 36 | dcat:endpointURL ; 37 | dcterms:publisher ; 38 | 39 | dcatap:availability ; 40 | dcterms:license ; 41 | . 42 | 43 | 44 | a dcat:Dataset ; 45 | dcterms:title "Test" ; 46 | dcterms:description "Test" ; 47 | dcatde:contributorID ; 48 | dcat:theme ; 49 | dcat:keyword "Test" ; 50 | dcat:landingPage ; 51 | foaf:page ; 52 | dcterms:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 53 | dcterms:identifier "http://example.com/#dataset" ; 54 | dcterms:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 55 | 56 | dcterms:publisher ; 57 | dcat:contactPoint ; 58 | dcat:distribution ; 59 | dcterms:temporal ; 60 | 61 | dcatap:availability ; 62 | dcatde:politicalGeocodingLevelURI ; 63 | dcterms:language ; 64 | dcterms:accrualPeriodicity ; 65 | 66 | adms:identifier [ 67 | a adms:Identifier ; 68 | skos:notation "someIdentifier" ; 69 | ] ; 70 | 71 | # Deprecated Eigenschaften 72 | 73 | dcatde:politicalGeocodingURI ; 74 | dcatde:geocodingDescription "dcatde:geocodingDescription ist in 3.0 deprecated!"@de ; 75 | owl:versionInfo "owl:versionInfo ist in 3.0 deprecated!"@de ; 76 | dcatde:legalBasis "dcatde:legalBasis ist in 3.0 deprecated!"@de ; 77 | dcatde:qualityProcessURI ; 78 | dcterms:hasVersion ; 79 | dcterms:isVersionOf ; 80 | dcatde:originator ; 81 | dcatde:maintainer ; 82 | . 83 | 84 | 85 | a dcat:Distribution ; 86 | dcterms:title "Test" ; 87 | dcat:accessURL ; 88 | dcterms:license ; 89 | dcterms:format ; 90 | 91 | spdx:checksum [ 92 | a spdx:Checksum ; 93 | spdx:checksumValue "a58d35bebefa4972898110b9f5da62bc"^^xsd:hexBinary ; 94 | 95 | # Deprecated Codeliste 96 | spdx:algorithm ; 97 | ] ; 98 | 99 | dcatap:availability ; 100 | dcterms:language ; 101 | 102 | # Deprecated Codeliste 103 | adms:status ; 104 | . 105 | 106 | 107 | a foaf:Agent ; 108 | dcterms:title "Hi123!" ; 109 | foaf:name "example" ; 110 | 111 | dcterms:type ; 112 | . 113 | 114 | 115 | a vcard:Kind ; 116 | vcard:hasURL ; 117 | vcard:hasTelephone ; 118 | . 119 | 120 | 121 | a dcterms:PeriodOfTime ; 122 | dcat:startDate "1987-05-08"^^xsd:date ; 123 | dcat:endDate "2090-05-08"^^xsd:date ; 124 | . -------------------------------------------------------------------------------- /testcases/v2.0_shapes/konventionen/ranges.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-konventionen.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-deprecated.ttl -contentToValidate ../testcases/v2.0_shapes/konventionen/ranges.ttl 6 | 7 | @prefix dcat: . 8 | @prefix dct: . 9 | @prefix foaf: . 10 | @prefix dcatde: . 11 | @prefix vcard: . 12 | @prefix skos: . 13 | @prefix xsd: . 14 | @prefix schema: . 15 | @prefix adms: . 16 | @prefix prov: . 17 | @prefix odrl: . 18 | 19 | @base . 20 | 21 | 22 | a dcat:Catalog ; 23 | dct:title "Test" ; 24 | dct:description "Test" ; 25 | 26 | dct:publisher ; 27 | dcat:dataset ; 28 | dcat:record ; 29 | 30 | # Ranges: IRIorLiteral 31 | dct:rights [ 32 | a dct:RightsStatement ; 33 | dct:title "Ein BlankNode-RightsStatement" ; 34 | ] ; 35 | 36 | # Ranges: IRI 37 | foaf:homepage "https://example.com"^^xsd:anyURI ; 38 | . 39 | 40 | 41 | a dcat:Dataset ; 42 | dct:title "Test" ; 43 | dct:description "Test" ; 44 | dcatde:contributorID ; 45 | dcat:theme ; 46 | dcat:keyword "Test" ; 47 | dct:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 48 | dct:identifier "http://example.com/#dataset" ; 49 | dct:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 50 | 51 | dct:publisher ; 52 | dcat:contactPoint ; 53 | dcat:distribution ; 54 | dct:temporal ; 55 | 56 | # Ranges: IRIorLiteral 57 | dct:conformsTo [ 58 | a dct:Standard ; 59 | dct:title "Ein BlankNode-Standard" ; 60 | ] ; 61 | dct:accessRights [ 62 | a dct:RightsStatement ; 63 | dct:title "Ein BlankNode-RightsStatement" ; 64 | ] ; 65 | dct:provenance [ 66 | a dct:ProvenanceStatement ; 67 | dct:title "Ein BlankNode-ProvenanceStatement" ; 68 | ] ; 69 | 70 | # Ranges: IRI 71 | prov:wasGeneratedBy "https://govdata.de/#generator"^^xsd:anyURI ; 72 | dcat:landingPage "https://example.com"^^xsd:anyURI ; 73 | foaf:page "https://example.com"^^xsd:anyURI ; 74 | . 75 | 76 | 77 | a dcat:Distribution ; 78 | dct:title "Test" ; 79 | dcat:accessURL ; 80 | dct:license ; 81 | dct:format ; 82 | 83 | # Ranges: IRIorLiteral 84 | dct:conformsTo [ 85 | a dct:Standard ; 86 | dct:title "Ein BlankNode-Standard" ; 87 | ] ; 88 | dct:rights [ 89 | a dct:RightsStatement ; 90 | dct:title "Ein BlankNode-RightsStatement" ; 91 | ] ; 92 | 93 | # Ranges: IRI 94 | foaf:page "https://example.com"^^xsd:anyURI ; 95 | odrl:hasPolicy "https://example.com/#policy"^^xsd:anyURI ; 96 | . 97 | 98 | 99 | a dcat:DataService ; 100 | dct:title "Ein Test-Dataservice" ; 101 | dcat:endpointURL ; 102 | 103 | # Ranges: IRIorLiteral 104 | dct:accessRights [ 105 | a dct:RightsStatement ; 106 | dct:title "Ein BlankNode-RightsStatement" ; 107 | ] ; 108 | . 109 | 110 | 111 | a dcat:CatalogRecord ; 112 | dct:modified "2022-08-05T00:00:00"^^xsd:dateTime ; 113 | foaf:primaryTopic ; 114 | 115 | # Ranges: IRIorLiteral 116 | dct:conformsTo [ 117 | a dct:Standard ; 118 | dct:title "Ein BlankNode-Standard" ; 119 | ] ; 120 | . 121 | 122 | 123 | a foaf:Agent ; 124 | foaf:name "example" ; 125 | . 126 | 127 | 128 | a vcard:Kind ; 129 | vcard:hasURL ; 130 | vcard:hasTelephone "+49 40 123 45678" ; 131 | . 132 | 133 | 134 | a dct:PeriodOfTime ; 135 | dcat:startDate "1987-05-08"^^xsd:date ; 136 | dcat:endDate "2090-05-08"^^xsd:date ; 137 | . -------------------------------------------------------------------------------- /testcases/v2.0_shapes/quicktest.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-konventionen.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-deprecated.ttl -contentToValidate ../testcases/v2.0_shapes/quicktest.ttl 6 | 7 | @prefix adms: . 8 | @prefix dcat: . 9 | @prefix dcatap: . 10 | @prefix dcatde: . 11 | @prefix dct: . 12 | @prefix foaf: . 13 | @prefix vcard: . 14 | @prefix rdfs: . 15 | @prefix schema: . 16 | @prefix skos: . 17 | @prefix spdx: . 18 | @prefix xsd: . 19 | 20 | @base . 21 | 22 | 23 | a dcat:Catalog ; 24 | dct:title "Test" ; 25 | dct:description "Test" ; 26 | 27 | dct:publisher ; 28 | dcat:dataset ; 29 | dcat:record ; 30 | dcat:dataservice ; 31 | 32 | dct:language ; 33 | 34 | dct:license ; 35 | dcatap:availability ; 36 | . 37 | 38 | 39 | a dcat:DataService ; 40 | dct:title "Test" ; 41 | dcat:endpointURL ; 42 | 43 | dcatap:availability ; 44 | dct:license ; 45 | . 46 | 47 | 48 | a dcat:Dataset ; 49 | dct:title "Test" ; 50 | dct:description "Test" ; 51 | dcatde:contributorID ; 52 | dcat:theme ; 53 | dcat:keyword "Test" ; 54 | dcat:landingPage ; 55 | foaf:page ; 56 | dct:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 57 | dct:identifier "http://example.com/#dataset" ; 58 | dct:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 59 | 60 | dct:publisher ; 61 | dcat:contactPoint ; 62 | dcat:distribution ; 63 | dct:temporal ; 64 | 65 | dcatap:availability ; 66 | dcatde:politicalGeocodingLevelURI ; 67 | dct:language ; 68 | dct:accrualPeriodicity ; 69 | . 70 | 71 | 72 | a dcat:Distribution ; 73 | dct:title "Test" ; 74 | dcat:accessURL ; 75 | dct:license ; 76 | dct:format ; 77 | 78 | spdx:checksum [ 79 | a spdx:Checksum ; 80 | spdx:algorithm ; 81 | spdx:checksumValue "a58d35bebefa4972898110b9f5da62bc"^^xsd:hexBinary 82 | ] ; 83 | 84 | dcatap:availability ; 85 | dct:language ; 86 | adms:status ; 87 | . 88 | 89 | 90 | a dcat:CatalogRecord ; 91 | dct:modified "2022-08-05T00:00:00"^^xsd:dateTime ; 92 | foaf:primaryTopic ; 93 | 94 | dct:language ; 95 | . 96 | 97 | 98 | a foaf:Agent ; 99 | foaf:name "example" ; 100 | 101 | dct:type ; 102 | . 103 | 104 | 105 | a vcard:Kind ; 106 | vcard:hasURL ; 107 | vcard:hasTelephone "+49 40 123 45678" ; 108 | . 109 | 110 | 111 | a dct:PeriodOfTime ; 112 | dcat:startDate "1987-05-08"^^xsd:date ; 113 | dcat:endDate "2090-05-08"^^xsd:date ; 114 | . -------------------------------------------------------------------------------- /validator/resources/v3.0/shapes/dcat-ap-de-deprecated.ttl: -------------------------------------------------------------------------------- 1 | # CC0 GovData 2 | # 3 | # Diese Datei prüft, ob in DCAT-AP.de 3.0 als deprecated gekennzeichnete Eigenschaften genutzt werden. 4 | 5 | @prefix : . 6 | @prefix adms: . 7 | @prefix dc: . 8 | @prefix dcat: . 9 | @prefix dcatap: . 10 | @prefix dcatde: . 11 | @prefix dcterms: . 12 | @prefix foaf: . 13 | @prefix locn: . 14 | @prefix odrl: . 15 | @prefix org: . 16 | @prefix owl: . 17 | @prefix prov: . 18 | @prefix rdf: . 19 | @prefix rdfs: . 20 | @prefix schema: . 21 | @prefix sh: . 22 | @prefix skos: . 23 | @prefix skosxl: . 24 | @prefix spdx: . 25 | @prefix time: . 26 | @prefix vcard: . 27 | @prefix xml: . 28 | @prefix xsd: . 29 | 30 | :Deprecated_dcatde_politicalGeocodingURI 31 | a sh:NodeShape ; 32 | sh:targetSubjectsOf dcatde:politicalGeocodingURI ; 33 | sh:property [ 34 | sh:message "Deprecated: dcatde:politicalGeocodingURI soll nicht mehr verwendet werden." ; 35 | sh:severity sh:Warning ; 36 | sh:path dcatde:politicalGeocodingURI ; 37 | sh:maxCount 0 ; 38 | ] . 39 | 40 | :Deprecated_dcatde_geocodingDescription 41 | a sh:NodeShape ; 42 | sh:targetSubjectsOf dcatde:geocodingDescription ; 43 | sh:property [ 44 | sh:message "Deprecated: dcatde:geocodingDescription soll nicht mehr verwendet werden." ; 45 | sh:severity sh:Warning ; 46 | sh:path dcatde:geocodingDescription ; 47 | sh:maxCount 0 ; 48 | ] . 49 | 50 | :Deprecated_owl_versionInfo 51 | a sh:NodeShape ; 52 | sh:targetClass dcat:Dataset ; 53 | sh:property [ 54 | sh:message "Deprecated: owl:versionInfo soll nicht mehr verwendet werden." ; 55 | sh:severity sh:Warning ; 56 | sh:path owl:versionInfo ; 57 | sh:maxCount 0 ; 58 | ] . 59 | 60 | :Deprecated_dcatde_legalBasis 61 | a sh:NodeShape ; 62 | sh:targetSubjectsOf dcatde:legalBasis ; 63 | sh:property [ 64 | sh:message "Deprecated: dcatde:legalBasis soll nicht mehr verwendet werden." ; 65 | sh:severity sh:Warning ; 66 | sh:path dcatde:legalBasis ; 67 | sh:maxCount 0 ; 68 | ] . 69 | 70 | :Deprecated_dcatde_qualityProcessURI 71 | a sh:NodeShape ; 72 | sh:targetSubjectsOf dcatde:qualityProcessURI ; 73 | sh:property [ 74 | sh:message "Deprecated: dcatde:qualityProcessURI soll nicht mehr verwendet werden." ; 75 | sh:severity sh:Warning ; 76 | sh:path dcatde:qualityProcessURI ; 77 | sh:maxCount 0 ; 78 | ] . 79 | 80 | :Deprecated_dcterms_hasVersion 81 | a sh:NodeShape ; 82 | sh:targetSubjectsOf dcterms:hasVersion ; 83 | sh:property [ 84 | sh:message "Deprecated: dcterms:hasVersion soll nicht mehr verwendet werden." ; 85 | sh:severity sh:Warning ; 86 | sh:path dcterms:hasVersion ; 87 | sh:maxCount 0 ; 88 | ] . 89 | 90 | :Deprecated_dcterms_isVersionOf 91 | a sh:NodeShape ; 92 | sh:targetSubjectsOf dcterms:isVersionOf ; 93 | sh:property [ 94 | sh:message "Deprecated: dcterms:isVersionOf soll nicht mehr verwendet werden." ; 95 | sh:severity sh:Warning ; 96 | sh:path dcterms:isVersionOf ; 97 | sh:maxCount 0 ; 98 | ] . 99 | 100 | :Deprecated_dcatde_originator 101 | a sh:NodeShape ; 102 | sh:targetSubjectsOf dcatde:originator ; 103 | sh:property [ 104 | sh:message "Deprecated: dcatde:originator soll nicht mehr verwendet werden." ; 105 | sh:severity sh:Warning ; 106 | sh:path dcatde:originator ; 107 | sh:maxCount 0 ; 108 | ] . 109 | 110 | :Deprecated_dcatde_maintainer 111 | a sh:NodeShape ; 112 | sh:targetSubjectsOf dcatde:maintainer ; 113 | sh:property [ 114 | sh:message "Deprecated: dcatde:maintainer soll nicht mehr verwendet werden." ; 115 | sh:severity sh:Warning ; 116 | sh:path dcatde:maintainer ; 117 | sh:maxCount 0 ; 118 | ] . 119 | 120 | :Deprecated_hashAlgorithms 121 | a sh:NodeShape ; 122 | sh:targetSubjectsOf spdx:algorithm ; 123 | sh:property [ 124 | sh:message "Deprecated: Die Codeliste 'http://dcat-ap.de/def/hashAlgorithms/' soll nicht mehr verwendet werden." ; 125 | sh:severity sh:Warning ; 126 | sh:path spdx:algorithm ; 127 | sh:not [ 128 | sh:pattern "dcat" ; 129 | ] ; 130 | ] . 131 | 132 | :Deprecated_adms_status 133 | a sh:NodeShape ; 134 | sh:targetSubjectsOf adms:status ; 135 | sh:property [ 136 | sh:message "Deprecated: Die Codeliste 'http://purl.org/adms/status/' soll nicht mehr verwendet werden." ; 137 | sh:severity sh:Warning ; 138 | sh:path adms:status ; 139 | sh:not [ 140 | sh:pattern "purl" ; 141 | ] ; 142 | ] . -------------------------------------------------------------------------------- /validator/resources/v2.0/shapes/dcat-ap-de-deprecated.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Diese Datei prüft, ob in DCAT-AP.de als deprecated gekennzeichnete Eigenschaften genutzt werden. 4 | 5 | @prefix : . 6 | @prefix adms: . 7 | @prefix dc: . 8 | @prefix dcat: . 9 | @prefix dcatap: . 10 | @prefix dcatde: . 11 | @prefix dct: . 12 | @prefix foaf: . 13 | @prefix locn: . 14 | @prefix odrl: . 15 | @prefix org: . 16 | @prefix owl: . 17 | @prefix prov: . 18 | @prefix rdf: . 19 | @prefix rdfs: . 20 | @prefix schema: . 21 | @prefix sh: . 22 | @prefix skos: . 23 | @prefix skosxl: . 24 | @prefix spdx: . 25 | @prefix time: . 26 | @prefix vcard: . 27 | @prefix xml: . 28 | @prefix xsd: . 29 | 30 | 31 | 32 | :Deprecated_dcat_Dataset_dct_type 33 | sh:message "Deprecated: dcat:Dataset: dct:type soll nicht mehr für Collections verwendet werden. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/implRules/#sammlungen-und-reihen-von-datensatzen "@de ; 34 | sh:severity sh:Warning ; 35 | sh:path dct:type ; 36 | sh:maxCount 0 ; 37 | . 38 | 39 | :Deprecated_dcat_Dataset_dcat_granularity 40 | sh:message "Deprecated: dcat:Dataset: dcat:granularity soll nicht mehr verwendet werden. Stattdessen z.B. dcat:temporalResolution. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/spec/#datensatz-zeitliche-auflosung "@de ; 41 | sh:severity sh:Warning ; 42 | sh:path dcat:granularity ; 43 | sh:maxCount 0 ; 44 | . 45 | 46 | :Deprecated_dcat_Dataset_dct_hasVersion 47 | sh:message "Deprecated: dcat:Dataset: dct:hasVersion soll nicht mehr für Collections verwendet werden. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/implRules/#sammlungen-und-reihen-von-datensatzen "@de ; 48 | sh:severity sh:Warning ; 49 | sh:path dct:hasVersion ; 50 | sh:maxCount 0 ; 51 | . 52 | 53 | :Deprecated_dcat_Dataset_Shape 54 | a sh:NodeShape ; 55 | sh:targetClass dcat:Dataset ; 56 | sh:name "Deprecated Eigenschaften beim dcat:Dataset gemäß DCAT-AP.de 2.0"@de ; 57 | 58 | sh:property :Deprecated_dcat_Dataset_dct_type ; 59 | sh:property :Deprecated_dcat_Dataset_dcat_granularity ; 60 | sh:property :Deprecated_dcat_Dataset_dct_hasVersion ; 61 | . 62 | 63 | :Deprecated_dcat_Distribution_dcat_plannedAvailability 64 | sh:message "Deprecated: dcat:Distribution: dcat:plannedAvailability soll nicht mehr verwendet werden. Stattdessen dcatap:availability. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/spec/#distribution-verfugbarkeit "@de ; 65 | sh:severity sh:Warning ; 66 | sh:path dcat:plannedAvailability ; 67 | sh:maxCount 0 ; 68 | . 69 | 70 | :Deprecated_dcat_Distribution_Shape 71 | a sh:NodeShape ; 72 | sh:targetClass dcat:Distribution ; 73 | sh:name "Deprecated Eigenschaften bei dcat:Distribution gemäß DCAT-AP.de 2.0"@de ; 74 | 75 | sh:property :Deprecated_dcat_Distribution_dcat_plannedAvailability ; 76 | . 77 | 78 | :Deprecated_dct_PeriodOfTime_schema_startDate 79 | sh:message "Deprecated: dct:PeriodOfTime: schema:startDate soll nicht mehr verwendet werden. Stattdessen dcat:startDate. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/spec/#zeitraum-startzeitpunkt "@de ; 80 | sh:severity sh:Warning ; 81 | sh:path schema:startDate ; 82 | sh:maxCount 0 ; 83 | . 84 | 85 | :Deprecated_dct_PeriodOfTime_schema_endDate 86 | sh:message "Deprecated: dct:PeriodOfTime: schema:endDate soll nicht mehr verwendet werden. Stattdessen dcat:endDate. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/spec/#zeitraum-endzeitpunkt "@de ; 87 | sh:severity sh:Warning ; 88 | sh:path schema:endDate ; 89 | sh:maxCount 0 ; 90 | . 91 | 92 | :Deprecated_dct_PeriodOfTime_Shape 93 | a sh:NodeShape ; 94 | sh:targetClass dct:PeriodOfTime ; 95 | sh:name "Deprecated Eigenschaften bei dct:PeriodOfTime gemäß DCAT-AP.de 2.0"@de ; 96 | 97 | sh:property :Deprecated_dct_PeriodOfTime_schema_startDate ; 98 | sh:property :Deprecated_dct_PeriodOfTime_schema_endDate ; 99 | . 100 | 101 | :Deprecated_CatalogRecord_adms_status 102 | sh:path adms:status ; 103 | sh:severity sh:Warning ; 104 | sh:message "Deprecated: dcat:CatalogRecord: adms:status wird von DCAT-AP.de nicht unterstützt, unter anderem, weil das eigentlich vorgesehene Vokabular nicht vorhanden ist."@de ; 105 | sh:maxCount 0 ; 106 | . 107 | 108 | :Deprecated_CatalogRecord_Shape 109 | a sh:NodeShape ; 110 | sh:targetClass dcat:CatalogRecord ; 111 | sh:name "Deprecated Eigenschaften bei dcat:CatalogRecord gemäß DCAT-AP.de 2.0"@de ; 112 | 113 | sh:property :Deprecated_CatalogRecord_adms_status ; 114 | . -------------------------------------------------------------------------------- /testcases/v2.0_shapes/konventionen/konv12_13.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'any.jar' abgelegt hat. 4 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl-offline/any/validator.jar bezogen werden. 5 | # java -Xss4m -jar any.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl -externalShapes https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl -externalShapes ../validator/resources/v2.0/shapes/dcat-ap-konventionen.ttl -contentToValidate ../testcases/v2.0_shapes/konventionen/konv12_13.ttl 6 | 7 | @prefix dcat: . 8 | @prefix dct: . 9 | @prefix foaf: . 10 | @prefix dcatde: . 11 | @prefix vcard: . 12 | @prefix skos: . 13 | @prefix xsd: . 14 | 15 | @base . 16 | a foaf:Agent ; foaf:name "example". 17 | a dcat:Distribution ; dct:title "Test" ; dcat:accessURL ; dct:license ; dct:format . 18 | 19 | 20 | a dcat:Dataset ; 21 | dct:title "Test" ; 22 | dct:description "Test" ; 23 | dct:publisher ; 24 | dcat:theme ; 25 | dcat:keyword "Test" ; 26 | dcat:landingPage ; 27 | dct:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 28 | dct:identifier "http://example.com/#dataset" ; 29 | dct:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 30 | dcat:distribution ; 31 | 32 | dcatde:contributorID ; 33 | . 34 | 35 | 36 | a dcat:Dataset ; 37 | dct:title "Test" ; 38 | dct:description "Test" ; 39 | dct:publisher ; 40 | dcat:theme ; 41 | dcat:keyword "Test" ; 42 | dcat:landingPage ; 43 | dct:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 44 | dct:identifier "http://example.com/#dataset" ; 45 | dct:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 46 | dcat:distribution ; 47 | 48 | dcatde:contributorID ; 49 | dcatde:contributorID ; 50 | . 51 | 52 | 53 | a dcat:Dataset ; 54 | dct:title "Test" ; 55 | dct:description "Test" ; 56 | dct:publisher ; 57 | dcat:theme ; 58 | dcat:keyword "Test" ; 59 | dcat:landingPage ; 60 | dct:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 61 | dct:identifier "http://example.com/#dataset" ; 62 | dct:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 63 | dcat:distribution ; 64 | . 65 | 66 | 67 | a dcat:Dataset ; 68 | dct:title "Test" ; 69 | dct:description "Test" ; 70 | dct:publisher ; 71 | dcat:theme ; 72 | dcat:keyword "Test" ; 73 | dcat:landingPage ; 74 | dct:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 75 | dct:identifier "http://example.com/#dataset" ; 76 | dct:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 77 | dcat:distribution ; 78 | 79 | dcatde:contributorID ; 80 | . 81 | 82 | 83 | a dcat:Dataset ; 84 | dct:title "Test" ; 85 | dct:description "Test" ; 86 | dct:publisher ; 87 | dcat:theme ; 88 | dcat:keyword "Test" ; 89 | dcat:landingPage ; 90 | dct:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 91 | dct:identifier "http://example.com/#dataset" ; 92 | dct:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 93 | dcat:distribution ; 94 | 95 | dcatde:contributorID ; 96 | dcatde:contributorID ; 97 | . 98 | 99 | 100 | a dcat:Dataset ; 101 | dct:title "Test" ; 102 | dct:description "Test" ; 103 | dct:publisher ; 104 | dcat:theme ; 105 | dcat:keyword "Test" ; 106 | dcat:landingPage ; 107 | dct:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 108 | dct:identifier "http://example.com/#dataset" ; 109 | dct:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 110 | dcat:distribution ; 111 | 112 | dcatde:contributorID ; 113 | dcatde:contributorID ; 114 | dcatde:contributorID ; 115 | dcatde:contributorID ; 116 | dcatde:contributorID ; 117 | . -------------------------------------------------------------------------------- /testcases/v3.0_shapes/quicktest.ttl: -------------------------------------------------------------------------------- 1 | # CC0 2 | # Der folgende Befehl geht davon aus, dass man sich im Ordner 'tools' befindet und dort die Offline-Java-Version des Blanko-SHACL-Validators unter dem Dateinamen 'validator.jar' abgelegt hat. 3 | # Der Blanko-SHACL-Validator kann unter https://www.itb.ec.europa.eu/shacl/any/upload bezogen werden. 4 | # 5 | # java -Xss4m -jar validator.jar -reportSyntax "text/turtle" -loadImports true -externalShapes ../validator/resources/v3.0/shapes/dcat-ap-de-imports.ttl -externalShapes ../validator/resources/v3.0/shapes/dcat-ap-SHACL-DE.ttl -externalShapes ../validator/resources/v3.0/shapes/dcat-ap-de-deprecated.ttl -externalShapes ../validator/resources/v3.0/shapes/dcat-ap-spec-german-additions.ttl -externalShapes ../validator/resources/v3.0/shapes/dcat-ap-de-controlledvocabularies.ttl -contentToValidate ../testcases/v3.0_shapes/quicktest.ttl 6 | 7 | @prefix : . 8 | @prefix adms: . 9 | @prefix dcat: . 10 | @prefix dcatap: . 11 | @prefix dcatde: . 12 | @prefix dcterms: . 13 | @prefix foaf: . 14 | @prefix prov: . 15 | @prefix rdfs: . 16 | @prefix schema: . 17 | @prefix skos: . 18 | @prefix spdx: . 19 | @prefix time: . 20 | @prefix tl: . 21 | @prefix vcard: . 22 | @prefix xsd: . 23 | 24 | @base . 25 | 26 | 27 | a dcat:Catalog ; 28 | dcterms:title "Test" ; 29 | dcterms:description "Test" ; 30 | 31 | dcterms:publisher ; 32 | dcat:dataset ; 33 | dcat:record ; 34 | dcat:dataservice ; 35 | 36 | dcterms:language ; 37 | 38 | dcterms:license ; 39 | dcatap:availability ; 40 | . 41 | 42 | 43 | a dcat:DataService ; 44 | dcterms:title "Test" ; 45 | dcat:endpointURL ; 46 | dcterms:publisher ; 47 | 48 | dcatap:availability ; 49 | dcterms:license ; 50 | 51 | dcterms:accessRights ; 52 | dcterms:format ; 53 | . 54 | 55 | 56 | a dcat:DatasetSeries ; 57 | dcterms:title "Test" ; 58 | dcterms:description "Description." ; 59 | dcterms:accrualPeriodicity ; 60 | . 61 | 62 | 63 | a dcat:Dataset, dcat:Resource ; 64 | dcterms:title "Test" ; 65 | dcterms:description "Test" ; 66 | dcatde:contributorID ; 67 | dcat:theme ; 68 | dcat:keyword "Test" ; 69 | dcat:landingPage ; 70 | foaf:page ; 71 | dcterms:issued "2022-08-05T00:00:00"^^xsd:dateTime ; 72 | dcterms:identifier "http://example.com/#dataset" ; 73 | dcterms:modified "2022-08-05T08:00:00"^^xsd:dateTime ; 74 | 75 | dcterms:publisher ; 76 | dcat:contactPoint ; 77 | dcat:distribution ; 78 | dcterms:temporal ; 79 | 80 | dcatap:availability ; 81 | dcatde:politicalGeocodingLevelURI ; 82 | dcterms:language ; 83 | dcterms:accrualPeriodicity ; 84 | dcterms:type ; 85 | dcterms:accessRights ; 86 | 87 | prov:qualifiedAttribution ; 88 | 89 | adms:identifier [ 90 | a adms:Identifier ; 91 | skos:notation "anIdentifier" ; 92 | ] ; 93 | . 94 | 95 | 96 | a dcat:Distribution ; 97 | dcterms:title "Test" ; 98 | dcat:accessURL ; 99 | dcterms:license ; 100 | dcatde:licenseAttributionByText "Attributionsvorschlag" ; 101 | dcterms:format ; 102 | 103 | dcat:mediaType ; 104 | dcat:compressFormat ; 105 | dcat:packageFormat ; 106 | 107 | spdx:checksum [ 108 | a spdx:Checksum ; 109 | spdx:algorithm ; 110 | spdx:checksumValue "a58d35bebefa4972898110b9f5da62bc"^^xsd:hexBinary 111 | ] ; 112 | 113 | dcatap:availability ; 114 | dcterms:language ; 115 | adms:status ; 116 | . 117 | 118 | 119 | a dcat:CatalogRecord ; 120 | dcterms:modified "2022-08-05T00:00:00"^^xsd:dateTime ; 121 | foaf:primaryTopic ; 122 | 123 | dcterms:language ; 124 | . 125 | 126 | 127 | a foaf:Agent ; 128 | dcterms:title "Hi123!" ; 129 | foaf:name "example" ; 130 | 131 | dcterms:type ; 132 | . 133 | 134 | 135 | a vcard:Kind ; 136 | vcard:fn "Tom" ; 137 | vcard:hasURL ; 138 | vcard:hasTelephone ; 139 | vcard:hasEmail ; 140 | . 141 | 142 | 143 | a dcterms:PeriodOfTime ; 144 | dcat:startDate "1987-05-08"^^xsd:date ; 145 | dcat:endDate "2090-05-08"^^xsd:date ; 146 | . 147 | 148 | 149 | a prov:Attribution ; 150 | prov:agent ; 151 | dcat:hadRole ; 152 | . -------------------------------------------------------------------------------- /validator/resources/dashboard-alpha/shapes/db-shapes.ttl: -------------------------------------------------------------------------------- 1 | # java -Xss4m -jar validator.jar -reportSyntax "text/turtle" -externalShapes ./db-shapes.ttl -externalShapes ./dcat-ap-de-contributors.rdf -externalShapes ./dcat-ap-de-licenses-open.rdf 2 | # -contentToValidate ../../../../testcases/dashboard/bremen-catalog-dataset-extracted.ttl 3 | 4 | @prefix : . 5 | @prefix rdf: . 6 | @prefix adms: . 7 | @prefix dc: . 8 | @prefix dcat: . 9 | @prefix dcatde: . 10 | @prefix dct: . 11 | @prefix foaf: . 12 | @prefix org: . 13 | @prefix owl: . 14 | @prefix prov: . 15 | @prefix rdfs: . 16 | @prefix schema: . 17 | @prefix sh: . 18 | @prefix skos: . 19 | @prefix skosxl: . 20 | @prefix spdx: . 21 | @prefix vcard: . 22 | @prefix xml: . 23 | @prefix xsd: . 24 | @prefix govdata: . 25 | 26 | :Dataset_has_Keyword 27 | a sh:NodeShape ; 28 | sh:targetClass dcat:Dataset ; 29 | sh:deactivated false ; 30 | 31 | sh:property [ 32 | sh:severity govdata:no_literal_keyword ; 33 | sh:message "Jedes Dataset muss über wenigstens ein Keyword verfügen. Dabei muss es sich um ein Literal handeln." ; 34 | 35 | sh:path dcat:keyword ; 36 | sh:qualifiedValueShape [ 37 | sh:nodeKind sh:Literal ; 38 | ] ; 39 | sh:qualifiedMinCount 1 ; 40 | ] 41 | . 42 | 43 | :Dataset_has_contributorID 44 | a sh:NodeShape ; 45 | sh:targetClass dcat:Dataset ; 46 | sh:deactivated false ; 47 | 48 | sh:property [ 49 | sh:severity govdata:no_correct_contributorID ; 50 | sh:message "Jedes Dataset muss über genau eine dcatde:contributorID verfügen, die auch auf dcat-ap.de veröffentlicht wurde. Weitere contributorIDs sind erlaubt, solange sie nicht auf dcat-ap.de veröffentlich wurden." ; 51 | 52 | sh:path dcatde:contributorID ; 53 | 54 | sh:qualifiedValueShape [ 55 | sh:hasValue ; 56 | sh:path skos:inScheme ; 57 | sh:nodeKind sh:IRI ; 58 | ] ; 59 | sh:qualifiedMinCount 1 ; 60 | sh:qualifiedMaxCount 1 ; 61 | ] 62 | . 63 | 64 | :Dataset_has_publisher 65 | a sh:NodeShape ; 66 | sh:targetClass dcat:Dataset ; 67 | sh:deactivated false ; 68 | 69 | sh:property [ 70 | sh:path dct:publisher ; 71 | sh:severity govdata:no_correct_publisher ; 72 | sh:message "Das Dataset muss über genau einen dct:publisher verfügen." ; 73 | 74 | sh:minCount 1 ; 75 | sh:maxCount 1 ; 76 | ] ; 77 | 78 | sh:property [ 79 | sh:path dct:publisher ; 80 | 81 | sh:property [ 82 | sh:severity govdata:no_correct_publisher ; 83 | sh:message "Der dct:publisher muss über mindestens einen foaf:name verfügen, der ein Literal ist." ; 84 | 85 | sh:path foaf:name ; 86 | 87 | sh:qualifiedValueShape [ 88 | sh:nodeKind sh:Literal ; 89 | ] ; 90 | sh:qualifiedMinCount 1 ; 91 | ] 92 | ] 93 | . 94 | 95 | 96 | :Distribution_count 97 | a sh:NodeShape ; 98 | sh:targetClass dcat:Distribution ; 99 | sh:deactivated false ; 100 | 101 | sh:property [ 102 | sh:severity govdata:count_Distributions ; 103 | sh:message "Diese Regel löst für jede Distribution aus, damit man ihre Anzahl bestimmen kann und zu den anderen Fehlermeldungen ins Verhältnis setzen kann." ; 104 | sh:path govdata:failnow ; 105 | sh:minCount 1 ; 106 | ] 107 | . 108 | 109 | :Distribution_Licenses_count 110 | a sh:NodeShape ; 111 | sh:targetClass dcat:Distribution ; 112 | sh:deactivated false ; 113 | 114 | sh:property [ 115 | sh:path dct:license ; 116 | 117 | sh:property [ 118 | sh:message "Diese Regel löst für jede Lizenz aller Distribution aus, damit man ihre Anzahl bestimmen kann und zu den anderen Fehlermeldungen ins Verhältnis setzen kann." ; 119 | sh:severity govdata:count_Distributions_Licenses ; 120 | sh:path govdata:failnow ; 121 | sh:minCount 1 ; 122 | ] ; 123 | ] 124 | . 125 | 126 | # Stufe 1: Jede Distribution des untersuchtenes Datasets hat exakt eine Lizenz. 127 | # Stufe 2: Jede Distribution des untersuchten Datasets hat eine Lizenz-URI aus der GovData Liste. 128 | # Stufe 3: Mindestens eine Distribution des untersuchten Datasets hat eine offene Lizenz. 129 | 130 | :Distribution_has_maximal_one_license 131 | a sh:NodeShape ; 132 | sh:targetClass dcat:Distribution ; 133 | sh:deactivated false ; 134 | 135 | sh:property [ 136 | sh:severity govdata:multiple_licenses ; 137 | sh:message "Eine Distribution darf NIEMALS über mehr als eine Lizenz verfügen!" ; 138 | 139 | sh:path dct:license ; 140 | sh:maxCount 1 ; 141 | ] 142 | . 143 | 144 | :Distribution_has_one_license 145 | a sh:NodeShape ; 146 | sh:targetClass dcat:Distribution ; 147 | sh:deactivated false ; 148 | 149 | sh:property [ 150 | sh:severity govdata:no_license ; 151 | sh:message "Jede Distribution muss über eine Lizenz verfügen." ; 152 | 153 | sh:path dct:license ; 154 | sh:minCount 1 ; 155 | ] 156 | . 157 | 158 | :Distribution_has_license_from_list 159 | a sh:NodeShape ; 160 | sh:targetClass dcat:Distribution ; 161 | sh:deactivated false ; 162 | 163 | sh:property [ 164 | sh:path dct:license ; 165 | 166 | sh:property [ 167 | sh:severity govdata:no_license_from_list ; 168 | sh:message "Die Lizenz der Distribution muss gemäß http://dcat-ap.de/def/licenses angegeben werden. Löst auch aus, wenn Lizenz als Literal angegeben wird." ; 169 | 170 | sh:path skos:inScheme ; 171 | sh:hasValue ; 172 | # sh:nodeKind sh:IRI ; 173 | ] ; 174 | ] 175 | . 176 | 177 | :Distribution_has_open_license_from_list 178 | a sh:NodeShape ; 179 | sh:targetClass dcat:Distribution ; 180 | sh:deactivated false ; 181 | 182 | sh:property [ 183 | sh:path dct:license ; 184 | 185 | sh:property [ 186 | sh:severity govdata:no_open_license_from_list ; 187 | sh:message "Die Lizenz der Distribution sollte eine offene Lizenz sein. Löst auch aus, wenn Lizenz als Literal angegeben wird." ; 188 | 189 | sh:path govdata:isOpenLicense ; 190 | sh:hasValue "true"^^ ; 191 | ]; 192 | ] 193 | . -------------------------------------------------------------------------------- /validator/resources/dashboard-live/shapes/db-shapes.ttl: -------------------------------------------------------------------------------- 1 | # java -Xss4m -jar validator.jar -reportSyntax "text/turtle" -externalShapes ./db-shapes.ttl -externalShapes ./dcat-ap-de-contributors.rdf -externalShapes ./dcat-ap-de-licenses-open.rdf 2 | # -contentToValidate ../../../../testcases/dashboard/bremen-catalog-dataset-extracted.ttl 3 | 4 | @prefix : . 5 | @prefix rdf: . 6 | @prefix adms: . 7 | @prefix dc: . 8 | @prefix dcat: . 9 | @prefix dcatde: . 10 | @prefix dct: . 11 | @prefix foaf: . 12 | @prefix org: . 13 | @prefix owl: . 14 | @prefix prov: . 15 | @prefix rdfs: . 16 | @prefix schema: . 17 | @prefix sh: . 18 | @prefix skos: . 19 | @prefix skosxl: . 20 | @prefix spdx: . 21 | @prefix vcard: . 22 | @prefix xml: . 23 | @prefix xsd: . 24 | @prefix govdata: . 25 | 26 | :Dataset_has_Keyword 27 | a sh:NodeShape ; 28 | sh:targetClass dcat:Dataset ; 29 | sh:deactivated false ; 30 | 31 | sh:property [ 32 | sh:severity govdata:no_literal_keyword ; 33 | sh:message "Jedes Dataset muss über wenigstens ein Keyword verfügen. Dabei muss es sich um ein Literal handeln." ; 34 | 35 | sh:path dcat:keyword ; 36 | sh:qualifiedValueShape [ 37 | sh:nodeKind sh:Literal ; 38 | ] ; 39 | sh:qualifiedMinCount 1 ; 40 | ] 41 | . 42 | 43 | :Dataset_has_contributorID 44 | a sh:NodeShape ; 45 | sh:targetClass dcat:Dataset ; 46 | sh:deactivated false ; 47 | 48 | sh:property [ 49 | sh:severity govdata:no_correct_contributorID ; 50 | sh:message "Jedes Dataset muss über genau eine dcatde:contributorID verfügen, die auch auf dcat-ap.de veröffentlicht wurde. Weitere contributorIDs sind erlaubt, solange sie nicht auf dcat-ap.de veröffentlich wurden." ; 51 | 52 | sh:path dcatde:contributorID ; 53 | 54 | sh:qualifiedValueShape [ 55 | sh:hasValue ; 56 | sh:path skos:inScheme ; 57 | sh:nodeKind sh:IRI ; 58 | ] ; 59 | sh:qualifiedMinCount 1 ; 60 | sh:qualifiedMaxCount 1 ; 61 | ] 62 | . 63 | 64 | :Dataset_has_publisher 65 | a sh:NodeShape ; 66 | sh:targetClass dcat:Dataset ; 67 | sh:deactivated false ; 68 | 69 | sh:property [ 70 | sh:path dct:publisher ; 71 | sh:severity govdata:no_correct_publisher ; 72 | sh:message "Das Dataset muss über genau einen dct:publisher verfügen." ; 73 | 74 | sh:minCount 1 ; 75 | sh:maxCount 1 ; 76 | ] ; 77 | 78 | sh:property [ 79 | sh:path dct:publisher ; 80 | 81 | sh:property [ 82 | sh:severity govdata:no_correct_publisher ; 83 | sh:message "Der dct:publisher muss über mindestens einen foaf:name verfügen, der ein Literal ist." ; 84 | 85 | sh:path foaf:name ; 86 | 87 | sh:qualifiedValueShape [ 88 | sh:nodeKind sh:Literal ; 89 | ] ; 90 | sh:qualifiedMinCount 1 ; 91 | ] 92 | ] 93 | . 94 | 95 | 96 | :Distribution_count 97 | a sh:NodeShape ; 98 | sh:targetClass dcat:Distribution ; 99 | sh:deactivated false ; 100 | 101 | sh:property [ 102 | sh:severity govdata:count_Distributions ; 103 | sh:message "Diese Regel löst für jede Distribution aus, damit man ihre Anzahl bestimmen kann und zu den anderen Fehlermeldungen ins Verhältnis setzen kann." ; 104 | sh:path govdata:failnow ; 105 | sh:minCount 1 ; 106 | ] 107 | . 108 | 109 | :Distribution_Licenses_count 110 | a sh:NodeShape ; 111 | sh:targetClass dcat:Distribution ; 112 | sh:deactivated false ; 113 | 114 | sh:property [ 115 | sh:path dct:license ; 116 | 117 | sh:property [ 118 | sh:message "Diese Regel löst für jede Lizenz aller Distribution aus, damit man ihre Anzahl bestimmen kann und zu den anderen Fehlermeldungen ins Verhältnis setzen kann." ; 119 | sh:severity govdata:count_Distributions_Licenses ; 120 | sh:path govdata:failnow ; 121 | sh:minCount 1 ; 122 | ] ; 123 | ] 124 | . 125 | 126 | # Stufe 1: Jede Distribution des untersuchtenes Datasets hat exakt eine Lizenz. 127 | # Stufe 2: Jede Distribution des untersuchten Datasets hat eine Lizenz-URI aus der GovData Liste. 128 | # Stufe 3: Mindestens eine Distribution des untersuchten Datasets hat eine offene Lizenz. 129 | 130 | :Distribution_has_maximal_one_license 131 | a sh:NodeShape ; 132 | sh:targetClass dcat:Distribution ; 133 | sh:deactivated false ; 134 | 135 | sh:property [ 136 | sh:severity govdata:multiple_licenses ; 137 | sh:message "Eine Distribution darf NIEMALS über mehr als eine Lizenz verfügen!" ; 138 | 139 | sh:path dct:license ; 140 | sh:maxCount 1 ; 141 | ] 142 | . 143 | 144 | :Distribution_has_one_license 145 | a sh:NodeShape ; 146 | sh:targetClass dcat:Distribution ; 147 | sh:deactivated false ; 148 | 149 | sh:property [ 150 | sh:severity govdata:no_license ; 151 | sh:message "Jede Distribution muss über eine Lizenz verfügen." ; 152 | 153 | sh:path dct:license ; 154 | sh:minCount 1 ; 155 | ] 156 | . 157 | 158 | :Distribution_has_license_from_list 159 | a sh:NodeShape ; 160 | sh:targetClass dcat:Distribution ; 161 | sh:deactivated false ; 162 | 163 | sh:property [ 164 | sh:path dct:license ; 165 | 166 | sh:property [ 167 | sh:severity govdata:no_license_from_list ; 168 | sh:message "Die Lizenz der Distribution muss gemäß http://dcat-ap.de/def/licenses angegeben werden. Löst auch aus, wenn Lizenz als Literal angegeben wird." ; 169 | 170 | sh:path skos:inScheme ; 171 | sh:hasValue ; 172 | # sh:nodeKind sh:IRI ; 173 | ] ; 174 | ] 175 | . 176 | 177 | :Distribution_has_open_license_from_list 178 | a sh:NodeShape ; 179 | sh:targetClass dcat:Distribution ; 180 | sh:deactivated false ; 181 | 182 | sh:property [ 183 | sh:path dct:license ; 184 | 185 | sh:property [ 186 | sh:severity govdata:no_open_license_from_list ; 187 | sh:message "Die Lizenz der Distribution sollte eine offene Lizenz sein. Löst auch aus, wenn Lizenz als Literal angegeben wird." ; 188 | 189 | sh:path govdata:isOpenLicense ; 190 | sh:hasValue "true"^^ ; 191 | ]; 192 | ] 193 | . -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DCAT-AP.de SHACL-Validation 2 | 3 | | :warning: Hinweis zur aktuellen Entwicklung :warning: | 4 | |:--------------------------------------------------------| 5 | | Die [DCAT-AP.de SHACL-Validation](https://www.itb.ec.europa.eu/shacl/dcat-ap.de/upload) wird aktuell mit Blick auf die [DCAT-AP.de 3.0 Spezifikation](https://www.dcat-ap.de/def/dcatde/3.0/spec/) weiterentwickelt.
Wenn Sie Fehler entdecken, dann freuen wir uns über Ihr Feedback! | 6 | 7 | ## DCAT-AP.de 3.0 - Spezifikation 8 | 9 | Basiert auf dem Profil `DCAT-AP 3.0 - Übersetzungen und Einschränkungen` und ergänzt es um folgende Aspekte: 10 | 11 | - Deprecated-Meldungen für Eigenschaften und Codelisten ([`dcat-ap-de-deprecated.ttl`](https://github.com/GovDataOfficial/DCAT-AP.de-SHACL-Validation/blob/master/validator/resources/v3.0/shapes/dcat-ap-de-deprecated.ttl)) 12 | - Deutsche Eigenschaften und Änderungn ([`dcat-ap-spec-german-additions.ttl`](https://github.com/GovDataOfficial/DCAT-AP.de-SHACL-Validation/blob/master/validator/resources/v3.0/shapes/dcat-ap-spec-german-additions.ttl)) 13 | - Verwendung der verlangten kontrollierten Vokabulare ([`dcat-ap-de-imports.ttl`](https://github.com/GovDataOfficial/DCAT-AP.de-SHACL-Validation/blob/master/validator/resources/v3.0/shapes/dcat-ap-de-imports.ttl) und [`dcat-ap-de-controlledvocabularies.ttl`](https://github.com/GovDataOfficial/DCAT-AP.de-SHACL-Validation/blob/master/validator/resources/v3.0/shapes/dcat-ap-de-controlledvocabularies.ttl)). 14 | 15 | ## DCAT-AP 3.0 - Übersetzungen und Einschränkungen 16 | 17 | Die SEMIC stellt ihren eigenen [DCAT-AP-Validator](https://www.itb.ec.europa.eu/shacl/dcat-ap/upload) zur Verfügung, der zuverlässig funktioniert. 18 | 19 | Dieses Validierungsprofil basiert auf de SEMIC Datei (`https://github.com/SEMICeu/DCAT-AP/blob/master/releases/3.0.0/shacl/dcat-ap-SHACL.ttl`) erweitert um die Datei [`dcat-ap-SHACL-DE.ttl`](https://github.com/GovDataOfficial/DCAT-AP.de-SHACL-Validation/blob/master/validator/resources/v3.0/shapes/dcat-ap-SHACL-DE.ttl). Die deutschen Erweiterungen verändern die Validierung wie folgt: 20 | 21 | - Hinzufügen deutschsprachiger Fehlermeldungen 22 | - Deaktivierung von Shapes, die eine nicht sinnvolle Range prüfen 23 | 24 | Betroffen sind die Klassen `dcterms:Frequency`, `dcterms:LicenseDocument`, `dcterms:LinguisticSystem`, `dcterms:MediaType`, `dcterms:MediaTypeOrExtent`, `dcterms:ProvenanceStatement`, `dcterms:RightsStatement`, `dcterms:Standard`, `eli:LegalResource`, `foaf:Document`, `locn:Geometry`, `odrl:Policy`, `prov:Activity`, `prov:Attribution`, `rdfs:Resource`, `skos:Concept`, `skos:ConceptScheme` und `spdx:ChecksumAlgorithm`. 25 | 26 | 27 | ## DCAT-AP.de 2.0 - Spezifikation 28 | Die SEMIC stellt ihren eigenen [DCAT-AP-Validator](https://www.itb.ec.europa.eu/shacl/dcat-ap/upload) zur Verfügung, der zuverlässig funktioniert. 29 | 30 | Der deutsche Validator verwendet die verpflichtenden Regeln der SEMIC und reichert sie mit deutschen Fehlernachrichten an. Dazu werden folgende Dateien verwendet: 31 | - https://github.com/init-dcat-ap-de/DCAT-AP/blob/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl 32 | - https://github.com/GovDataOfficial/DCAT-AP.de-SHACL-Validation/blob/master/validator/resources/v2.0/shapes/dcat-ap-spec-german-messages.ttl 33 | 34 | Die folgende Datei fügt zu den DCAT-AP-SHACL-Shapes deutsche Regeln hinzu, so dass DCAT-AP.de 2.0 geprüft wird. Dafür werden zum Teil auch widersprüchliche DCAT-AP-SHACL-Shapes deaktiviert: 35 | - https://github.com/GovDataOfficial/DCAT-AP.de-SHACL-Validation/blob/master/validator/resources/v2.0/shapes/dcat-ap-spec-german-additions.ttl 36 | 37 | Weitere externe Quellen, wie Ontologien, deren Kontext relevant sind oder kontrollierte Vokabulare, werden durch diese Datei importiert: 38 | - https://github.com/GovDataOfficial/DCAT-AP.de-SHACL-Validation/blob/master/validator/resources/v2.0/shapes/dcat-ap-de-imports.ttl 39 | 40 | ### Prüfungen 41 | - Verwendung aller Pflichteigenschaften 42 | - Min- und Max-Kardinalitäten 43 | - Verwendung (getypter) Literals, wenn zutreffend 44 | - Verwendung von URIs, wenn als Ziel eine Klasse erwartet wird 45 | - Verwendung von URIs, wenn als Ziel eine beliebige Webadresse erwartet wird 46 | - Verwendung der korrekten kontrollierten Vokabulare 47 | - Warnung bei der Verwendung von `deprecated`-Eigenschaften 48 | 49 | Ob das Objekt einer Eigenschaft die von DCAT-AP(.de) vorgegebene Klasse hat, wird geprüft, wenn der Aufbau des Objekts für den Anwendungsfall "Anlieferung an ein Metadatenportal" entscheidend ist. 50 | Dies betrifft die DCAT-AP-Kernklassen und Eigenschaften `dcat:catalog`, `dcat:dataset`, `dcat:service`, `dcat:record` und `dcat:distribution` sowie die Eigenschaften, die auf z.B. `foaf:Agent`, `dct:PeriodOfTime` oder `dct:Location` verweisen. 51 | 52 | Für die Eigenschaften `adms:sample`, `dct:source`, `dct:hasVersion`, `dct:isVersionOf`, `dct:hasPart` und `dct:isPartOf` wird davon ausgegangen, dass deren Objekte nicht im Kern der Validierung stehen. Daher wird lediglich gewarnt, wenn sie nicht die korrekte Klasse haben. 53 | 54 | 55 | ### Keine Prüfungen 56 | - Kategorie (da kontrolliertes Vokabular genutzt werden muss) 57 | - Kategorienschema (da kontrolliertes Vokabular genutzt werden muss) 58 | - Lizenzdokument (da kontrolliertes Vokabular genutzt werden muss) 59 | 60 | 61 | * * * 62 | 63 | 64 | ## DCAT-AP.de 2.0 - Spezifikation & Konventionen 65 | 66 | Dieses Profil prüft alles, was DCAT-AP.de SHACL-Validation prüft. Zusätzlich: 67 | 68 | ### Prüfung von Konventionen 69 | - `K01: dcat:contactPoint`: Kontaktinformationen MÜSSEN mindestens Angaben zur Email (vcard:hasEmail) oder einen Link zum Kontaktformular oder Chatbot (vcard:hasURL) enthalten. 70 | - `K12&13: dcat:Dataset`: `dcatde:contributorID` MUSS verwendet werden und DARF nur genau einmal eine IRI aus http://dcat-ap.de/def/contributors/ verwenden. 71 | - `K36: dcat:Dataset`: `dct:publisher` MUSS verwendet werden. 72 | - `K30: dcat:Dataset`: `dcat:theme`: Zur Steigerung der Metadatenqualität wird die Angabe von Kategorien empfohlen. 73 | - `K31: dcat:Distribution`: `dct:license` MUSS eine IRI aus http://dcat-ap.de/def/licenses/ verwenden. 74 | - `K32: dcat:Distribution`: `dct:format` MUSS eine IRI aus dem EU Vokabular 'File Type' verwenden. 75 | 76 | ### Prüfung besonders empfohlener Eigenschaften 77 | - `dcat:Dataset`: `dcat:distribution`: Es wird empfohlen, dass jedes Dataset über eine Distribution verfügt. 78 | - `dcat:Dataset`: `dcat:keyword`: Zur Steigerung der Metadatenqualität wird die Angabe von Schlagworten empfohlen. 79 | - `dcat:Dataset`: `dcat:landingPage`: Zur Steigerung der Metadatenqualität wird die Angabe der ursprünglichen Webseite empfohlen. 80 | - `dcat:Dataset`: `dct:issued`: Zur Steigerung der Metadatenqualität wird die Angabe des Veröffentlichungsdatums empfohlen. 81 | - `dcat:Distribution`: `dct:title`: Es wird empfohlen, dass jede Distribution über einen dct:title verfügt. 82 | 83 | ### Prüfung im Rahmen der Dublettenprüfung 84 | - `dcat:Dataset`: Ggf. MUSS `dct:identifier` zur Dublettenprüfung verwendet werden. 85 | - `dcat:Dataset`: Ggf. MUSS `dct:modified` zur Dublettenprüfung verwendet werden. 86 | 87 | ### Prüfung auf (ausgewählte) sinnvolle Ranges 88 | Die Auswahl erfolgte mit Blick auf die Verarbeitung im GovData-Frontend. 89 | - `dcat:Dataset`: **IRIorLiteral**: `dct:conformsTo`, `dct:accessRights`, `dct:provenance` 90 | - `dcat:Dataset`: **IRI**: `prov:wasGeneratedBy`, `dcat:landingPage`, `foaf:page` 91 | - `dcat:Catalog`: **IRIorLiteral**: `dct:rights` 92 | - `dcat:Catalog`: **IRI**: `foaf:homepage` 93 | - `dcat:DataService`: **IRIorLiteral**: `dct:accessRights` 94 | - `dcat:Distribution`: **IRIorLiteral**: `dct:conformsTo`, `dct:rights` 95 | - `dcat:Distribution`: **IRI**: `foaf:page`, `odrl:hasPolicy` 96 | - `dcat:CatalogRecord`: **IRIorLiteral**: `dct:conformsTo` 97 | 98 | * * * 99 | 100 | ## GovData MQA/Dashboard 101 | 102 | Diese Profile prüfen Eigenschaften, die auch im GovData-Dashboard zur Metadatenqualität angezeigt werden. 103 | 104 | * * * 105 | 106 | 107 | ## Weitere Informationen 108 | Feedback gerne als GitHub Issue oder per E-Mail an info@govdata.de. 109 | 110 | Bisherige Inhalte wurden in die Datei [README_v1X.md](README_v1X.md) verschoben. 111 | 112 | © CC BY 4.0 ']init[ AG für GovData' 113 | -------------------------------------------------------------------------------- /testcases/rewritten-example-advanced.ttl: -------------------------------------------------------------------------------- 1 | # Version 1.0.2, 01.03.2019, ]init[ AG dcat-ap.de ausfuehrliche Beispielimplementation. (C) CC BY 4.0 ']init[ AG und SID Sachsen fuer GovData' 2 | 3 | @prefix dcat: . 4 | @prefix dct: . 5 | @prefix foaf: . 6 | @prefix dcatde: . 7 | @prefix vcard: . 8 | @prefix spdx: . 9 | @prefix xsd: . 10 | 11 | 12 | # Minimalanforderungen DCAT-AP.de 13 | a dcat:Catalog ; 14 | dct:title "GovData" ; 15 | dct:description "Das Datenportal für Deutschland - Open Government: Verwaltungsdaten transparent, offen und frei nutzbar." ; 16 | dct:publisher ; 17 | dcat:dataset , 18 | ; 19 | 20 | # Empfohlen gemaeß DCAT-AP.de 21 | foaf:homepage ; 22 | dct:language ; 23 | dct:issued "2013-02-19T00:00:00"^^xsd:dateTime ; 24 | dcat:themeTaxonomy ; 25 | dct:license ; 26 | 27 | # Optional gemaeß DCAT-AP.de 28 | dct:hasPart ; 29 | dcat:record [ 30 | a dcat:CatalogRecord ; 31 | dct:modified "2018-04-01T00:00:00"^^xsd:dateTime ; 32 | dct:issued "2018-04-01T00:00:00"^^xsd:dateTime ; 33 | dct:description "Diese Metadaten wurden vor dem Datensatz veröffentlicht." ; 34 | foaf:primaryTopic 35 | ] ; 36 | dct:rights ; 37 | dct:spatial . 38 | 39 | 40 | # Minimalanforderungen DCAT-AP.de 41 | a foaf:Organization ; 42 | foaf:name "Geschäfts- und Koordinierungsstelle GovData" . 43 | 44 | 45 | # Minimalanforderungen DCAT-AP.de 46 | a foaf:Organization ; 47 | foaf:name "Behörde für Umwelt und Energie (BUE), Amt für Umweltschutz" . 48 | 49 | 50 | a foaf:Organization ; 51 | foaf:name "Behörde für Inneres und Sport, Polizei Hamburg" . 52 | 53 | 54 | # Minimalanforderungen DCAT-AP.de 55 | a dcat:Dataset ; 56 | dct:title "Badegewässer (Daten) Hamburg" ; 57 | dct:description "Darstellung der Badegewässer und ihrer Überwachungsmessstellen im Internet." ; 58 | 59 | # Empfohlen gemaeß DCAT-AP.de 60 | dcat:distribution , 61 | ; 62 | dcat:keyword "wasserbelastung", "gewaesserqualitaet", "umweltueberwachung", "wasser", "badestelle" ; 63 | dct:publisher ; 64 | dcat:theme ; 65 | dcatde:politicalGeocodingLevelURI ; 66 | dcatde:politicalGeocodingURI ; 67 | 68 | # Konvention 1 { 69 | dcat:contactPoint [ 70 | a ; 71 | vcard:fn "Meister, Thomas, Herr" ; 72 | vcard:hasTelephone "+49 40 123 45678" ; 73 | ] ; # } 74 | 75 | # Optional gemaeß DCAT-AP.de 76 | # Konvention 12 { 77 | dcatde:contributorID ; 78 | 79 | dcatde:originator ; 80 | dcatde:maintainer ; 81 | dcatde:geocodingDescription "Freie und Hansestadt Hamburg" . 82 | 83 | 84 | # Minimalanforderungen DCAT-AP.de 85 | a dcat:Distribution ; 86 | dcat:accessURL ; 87 | 88 | # Empfohlen gemaeß DCAT-AP.de 89 | dct:title "Download Badegewässer -Hisorische Messwerte Hamburg, 2004-2013 (CSV)" ; 90 | dct:modified "2018-09-04T19:39:09"^^xsd:dateTime ; 91 | # Konvention 31 { 92 | dcat:mediaType ; # } 93 | # Konvention 32 { 94 | dct:license ; # } 95 | 96 | # Optional gemaeß DCAT-AP.de 97 | dcat:downloadURL ; 98 | dct:conformsTo ; 99 | spdx:checksum [ 100 | a spdx:Checksum ; 101 | spdx:algorithm ; 102 | spdx:checksumValue "a58d35bebefa4972898110b9f5da62bc"^^xsd:hexBinary 103 | ] ; 104 | dct:issued "2018-07-28T00:00:00"^^xsd:dateTime ; 105 | dct:language ; 106 | dcat:byteSize "42702"^^xsd:decimal ; 107 | # Konvention 35 { 108 | dcatde:licenseAttributionByText "Freie und Hansestadt Hamburg, Behoerde für Umwelt und Energie" . # } 109 | 110 | 111 | # Minimalanforderungen DCAT-AP.de 112 | a dcat:Distribution ; 113 | dcat:accessURL ; 114 | 115 | # Empfohlen gemaeß DCAT-AP.de 116 | dct:title "Download Badegewässer (Daten) Hamburg, 2004-2013 (GML)" ; 117 | dct:modified "2018-09-04T19:26:09"^^xsd:dateTime ; 118 | # Konvention 31 { 119 | dcat:mediaType ; # } 120 | # Konvention 32 { 121 | dct:license ; # } 122 | 123 | # Optional gemaeß DCAT-AP.de 124 | dcat:downloadURL ; 125 | dct:conformsTo ; 126 | spdx:checksum [ 127 | a spdx:Checksum ; 128 | spdx:algorithm ; 129 | spdx:checksumValue "733d0612b5d3459bae57fc5059412ab8"^^xsd:hexBinary 130 | ] ; 131 | dct:issued "2018-07-27T00:00:00"^^xsd:dateTime ; 132 | dct:language ; 133 | dcat:byteSize "5056"^^xsd:decimal ; 134 | # Konvention 35 { 135 | dcatde:licenseAttributionByText "Freie und Hansestadt Hamburg, Behoerde für Umwelt und Energie" . # } 136 | 137 | # a foaf:Agent . 138 | # a foaf:Agent . 139 | 140 | 141 | # Minimalanforderungen DCAT-AP.de 142 | a dcat:Dataset ; 143 | dct:title "Gebietsgrenzen Polizeikommissariate" ; 144 | dct:description "Mit den Polizeikommissariatsgrenzen werden die örtlichen Zustaendigkeiten der Hamburger Polizeikommissariatsgebiete geregelt." ; 145 | 146 | # Empfohlen gemaeß DCAT-AP.de 147 | dcat:distribution ; 148 | dcat:keyword "Polizei", "Polizeikommissariatsgrenzen", "Polizeireviere" ; 149 | dct:publisher ; 150 | dcat:theme ; 151 | dcatde:politicalGeocodingLevelURI ; 152 | dcatde:politicalGeocodingURI ; 153 | 154 | # Konvention 1 { 155 | dcat:contactPoint [ 156 | a vcard:Individual ; 157 | vcard:fn "Koenig, Julia, Frau" ; 158 | vcard:hasTelephone "+49 40 123 45665" 159 | ] ; # } 160 | 161 | # Optional gemaeß DCAT-AP.de 162 | dct:accrualPeriodicity ; 163 | # Konvention 12 { 164 | dcatde:contributorID ; # } 165 | dcatde:legalBasis "Hamburgisches Transparenzgesetz (HmbTG)." ; 166 | dcatde:originator ; 167 | dcatde:maintainer ; 168 | dcatde:geocodingDescription "Freie und Hansestadt Hamburg" ; 169 | dcat:granularity . 170 | 171 | 172 | # Minimalanforderungen DCAT-AP.de 173 | a dcat:Distribution ; 174 | dcat:accessURL ; 175 | 176 | # Empfohlen gemaeß DCAT-AP.de 177 | dct:title "Download WFS Gebietsgrenzen Polizeikommissariate (GML)" ; 178 | dct:modified "2018-09-04T19:26:09"^^xsd:dateTime ; 179 | # Konvention 31 { 180 | dct:format ; # } 181 | 182 | # Optional gemaeß DCAT-AP.de 183 | dcat:downloadURL ; 184 | dct:conformsTo ; 185 | spdx:checksum [ 186 | a spdx:Checksum ; 187 | spdx:algorithm ; 188 | spdx:checksumValue "b05ef732323f43c8cd0b73cdc6a954ddee99763b3041c9ab8219c18abfd5185a"^^xsd:hexBinary 189 | ] ; 190 | dct:issued "2018-07-27T00:00:00"^^xsd:dateTime ; 191 | dct:language ; 192 | dcat:byteSize "935108"^^xsd:decimal . 193 | -------------------------------------------------------------------------------- /validator/resources/config.properties: -------------------------------------------------------------------------------- 1 | ###################################################################################################### 2 | # BASE VALIDATOR SETTINGS 3 | ###################################################################################################### 4 | 5 | validator.queryEndpoint = https://www.govdata.de/sparql 6 | validator.supportMinimalUserInterface = true 7 | validator.owlImportErrors = warn 8 | validator.remoteArtefactLoadErrors = warn 9 | validator.owlImportSkippedUris = http://publications.europa.eu/ontology/euvoc 10 | 11 | # Set ordering of the results 12 | validator.reportsOrdered = true 13 | 14 | # Language settings 15 | validator.locale.default = de 16 | validator.locale.available = de, en 17 | validator.locale.translations = translations 18 | 19 | # The different types of validation to support. These values are reflected in other properties. 20 | # removed: v11_de_spec, v210d_ap_man_v11_de_spec, v210d_ap_manrec_v11_de_spec, v11_de_konv, all, 21 | 22 | validator.type = v30_de_spec, v30_de_trans, v20_de_spec, v20_de_spec_implr, dashboard_alpha, dashboard_live 23 | 24 | ###################################################################################################### 25 | # "DCAT-AP 3.0.de - Deutsche Spezifikation" validation artefacts 26 | ###################################################################################################### 27 | 28 | # -- Import of DCAT-AP 3.0.0 shapes 29 | validator.shaclFile.v30_de_spec.remote.0.url = https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/master/releases/3.0.0/shacl/dcat-ap-SHACL.ttl 30 | validator.shaclFile.v30_de_spec.remote.0.type = text/turtle 31 | 32 | validator.shaclFile.v30_de_spec = v3.0/shapes/dcat-ap-de-imports.ttl, v3.0/shapes/dcat-ap-SHACL-DE.ttl, v3.0/shapes/dcat-ap-de-deprecated.ttl, v3.0/shapes/dcat-ap-spec-german-additions.ttl, v3.0/shapes/dcat-ap-de-controlledvocabularies.ttl 33 | 34 | ###################################################################################################### 35 | # "DCAT-AP 3.0 - Deutsche Anpassungen" validation artefacts 36 | ###################################################################################################### 37 | 38 | # -- Import of DCAT-AP 3.0.0 shapes 39 | validator.shaclFile.v30_de_trans.remote.0.url = https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/master/releases/3.0.0/shacl/dcat-ap-SHACL.ttl 40 | validator.shaclFile.v30_de_trans.remote.0.type = text/turtle 41 | 42 | validator.shaclFile.v30_de_trans = v3.0/shapes/dcat-ap-SHACL-DE.ttl 43 | 44 | 45 | ###################################################################################################### 46 | # "DCAT-AP.de 2.0 - Spezifikation (Beta)" validation artefacts 47 | ###################################################################################################### 48 | 49 | validator.shaclFile.v20_de_spec = v2.0/shapes/dcat-ap-de-imports.ttl, v2.0/shapes/dcat-ap-spec-german-messages.ttl, v2.0/shapes/dcat-ap-spec-german-additions.ttl, v2.0/shapes/dcat-ap-de-deprecated.ttl 50 | 51 | # -- Import of DCAT-AP 2.1.1 shapes testing everything mandatory other than ranges 52 | validator.shaclFile.v20_de_spec.remote.0.url = https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl 53 | validator.shaclFile.v20_de_spec.remote.0.type = text/turtle 54 | 55 | ###################################################################################################### 56 | # "DCAT-AP.de 2.0 - Spezifikation + Konventionen (Beta)" validation artefacts 57 | ###################################################################################################### 58 | 59 | validator.shaclFile.v20_de_spec_implr = v2.0/shapes/dcat-ap-de-imports.ttl, v2.0/shapes/dcat-ap-spec-german-messages.ttl, v2.0/shapes/dcat-ap-spec-german-additions.ttl, v2.0/shapes/dcat-ap-de-deprecated.ttl, v2.0/shapes/dcat-ap-konventionen.ttl 60 | 61 | # -- Import of DCAT-AP 2.1.1 shapes testing everything mandatory other than ranges 62 | validator.shaclFile.v20_de_spec_implr.remote.0.url = https://raw.githubusercontent.com/init-dcat-ap-de/DCAT-AP/2.1.1-draft/releases/2.1.1/dcat-ap_2.1.1_shacl_shapes.ttl 63 | validator.shaclFile.v20_de_spec_implr.remote.0.type = text/turtle 64 | 65 | ###################################################################################################### 66 | # "GovData MQA (Alpha)" validation artefacts 67 | ###################################################################################################### 68 | 69 | validator.shaclFile.dashboard_alpha = dashboard-alpha/shapes/db-shapes.ttl, dashboard-alpha/shapes/dcat-ap-de-contributors.rdf, dashboard-alpha/shapes/dcat-ap-de-licenses-open.rdf 70 | 71 | ###################################################################################################### 72 | # "GovData MQA (Live)" validation artefacts 73 | ###################################################################################################### 74 | 75 | validator.shaclFile.dashboard_live = dashboard-live/shapes/db-shapes.ttl, dashboard-live/shapes/dcat-ap-de-contributors.rdf 76 | 77 | # ###################################################################################################### 78 | # # "DCAT-AP.de 1.1 - nur Spezifikation" validation artefacts 79 | # ###################################################################################################### 80 | 81 | # validator.shaclFile.v11_de_spec = v1.0.2/shapes/dcat-ap-de-imports.ttl, v1.0.2/shapes/dcat-ap-de-shapes-specification.ttl, v1.0.2/shapes/dcat-ap-de-lists.ttl, v1.0.2/shapes/nal-lists.ttl 82 | 83 | # ###################################################################################################### 84 | # # "DCAT-AP.de 1.1 Spezifikation & DCAT-AP 2.1 Mandatory" validation artefacts 85 | # ###################################################################################################### 86 | 87 | # validator.shaclFile.v210d_ap_man_v11_de_spec = v1.0.2/shapes/dcat-ap-de-imports.ttl, v1.0.2/shapes/dcat-ap-de-shapes-specification.ttl, v1.0.2/shapes/dcat-ap-de-lists.ttl, v1.0.2/shapes/nal-lists.ttl, DCAT-AP/v2.1.0-draft/shapes/dcat-ap-reasonable-ranges.ttl 88 | 89 | # # -- Import of shapes testing everything mandatory other than ranges 90 | # validator.shaclFile.v210d_ap_man_v11_de_spec.remote.0.url = https://raw.githubusercontent.com/SEMICeu/DCAT-AP/2.1.0-draft/releases/2.1.0/dcat-ap_2.1.0_shacl_shapes.ttl 91 | # validator.shaclFile.v210d_ap_man_v11_de_spec.remote.0.type = text/turtle 92 | 93 | # # -- Import of external ontologies -- use DCAT-AP.de's small import footprint for now 94 | # # validator.shaclFile.v210d_ap_man_v11_de_spec.remote.-->NUMBER<--.url = https://raw.githubusercontent.com/SEMICeu/DCAT-AP/2.1.0-draft/releases/2.1.0/dcat-ap_2.1.0_shacl_imports.ttl 95 | # # validator.shaclFile.v210d_ap_man_v11_de_spec.remote.-->NUMBER<--.type = text/turtle 96 | # # -- Import of named authority lists 97 | # # validator.shaclFile.v210d_ap_man_v11_de_spec.remote.1.url = https://raw.githubusercontent.com/SEMICeu/DCAT-AP/2.1.0-draft/releases/2.1.0/dcat-ap_2.1.0_shacl_mdr_imports.ttl 98 | # # validator.shaclFile.v210d_ap_man_v11_de_spec.remote.1.type = text/turtle 99 | 100 | # ###################################################################################################### 101 | # # "DCAT-AP.de 1.1 Spezifikation & DCAT-AP 2.1 Mandatory & Recommended" validation artefacts 102 | # ###################################################################################################### 103 | 104 | # validator.shaclFile.v210d_ap_manrec_v11_de_spec = v1.0.2/shapes/dcat-ap-de-imports.ttl, v1.0.2/shapes/dcat-ap-de-shapes-specification.ttl, v1.0.2/shapes/dcat-ap-de-lists.ttl, v1.0.2/shapes/nal-lists.ttl, DCAT-AP/v2.1.0-draft/shapes/dcat-ap-reasonable-ranges.ttl 105 | 106 | # # -- Import of shapes testing everything mandatory other than ranges 107 | # validator.shaclFile.v210d_ap_manrec_v11_de_spec.remote.0.url = https://raw.githubusercontent.com/SEMICeu/DCAT-AP/2.1.0-draft/releases/2.1.0/dcat-ap_2.1.0_shacl_shapes.ttl 108 | # validator.shaclFile.v210d_ap_manrec_v11_de_spec.remote.0.type = text/turtle 109 | 110 | # # -- Import of shapes testing everything recommended other than ranges 111 | # validator.shaclFile.v210d_ap_manrec_v11_de_spec.remote.1.url = https://raw.githubusercontent.com/SEMICeu/DCAT-AP/2.1.0-draft/releases/2.1.0/dcat-ap_2.1.0_shacl_shapes_recommended.ttl 112 | # validator.shaclFile.v210d_ap_manrec_v11_de_spec.remote.1.type = text/turtle 113 | 114 | # # -- Import of external ontologies -- use DCAT-AP.de's small import footprint for now 115 | # # validator.shaclFile.v210d_ap_manrec_v11_de_spec.remote.-->NUMBER<--.url = https://raw.githubusercontent.com/SEMICeu/DCAT-AP/2.1.0-draft/releases/2.1.0/dcat-ap_2.1.0_shacl_imports.ttl 116 | # # validator.shaclFile.v210d_ap_manrec_v11_de_spec.remote.-->NUMBER<--.type = text/turtle 117 | # # -- Import of named authority lists 118 | # # validator.shaclFile.v210d_ap_manrec_v11_de_spec.remote.-->NUMBER<--.url = https://raw.githubusercontent.com/SEMICeu/DCAT-AP/2.1.0-draft/releases/2.1.0/dcat-ap_2.1.0_shacl_mdr_imports.ttl 119 | # # validator.shaclFile.v210d_ap_manrec_v11_de_spec.remote.-->NUMBER<--.type = text/turtle 120 | 121 | # ###################################################################################################### 122 | # # "DCAT-AP.de 1.1 Konventionen" validation artefacts 123 | # ###################################################################################################### 124 | 125 | # validator.shaclFile.v11_de_konv = v1.0.2/shapes/dcat-ap-de-imports.ttl, v1.0.2/shapes/dcat-ap-de-import-lists.ttl, v1.0.2/shapes/dcat-ap-de-shapes-impliedRules.ttl 126 | 127 | # ###################################################################################################### 128 | # # "alles zusammen 1.1" validation artefacts 129 | # ###################################################################################################### 130 | 131 | # validator.shaclFile.all = v1.0.2/shapes/dcat-ap-de-imports.ttl, v1.0.2/shapes/dcat-ap-de-import-lists.ttl, v1.0.2/shapes/dcat-ap-de-shapes-impliedRules.ttl, v1.0.2/shapes/dcat-ap-de-shapes-specification.ttl, v1.0.2/shapes/dcat-ap-de-lists.ttl, v1.0.2/shapes/nal-lists.ttl, DCAT-AP/v2.1.0-draft/shapes/dcat-ap-reasonable-ranges.ttl 132 | 133 | # # -- Import of shapes testing everything mandatory other than ranges 134 | # validator.shaclFile.all.remote.0.url = https://raw.githubusercontent.com/SEMICeu/DCAT-AP/2.1.0-draft/releases/2.1.0/dcat-ap_2.1.0_shacl_shapes.ttl 135 | # validator.shaclFile.all.remote.0.type = text/turtle 136 | 137 | # # -- Import of shapes testing everything recommended other than ranges 138 | # validator.shaclFile.all.remote.1.url = https://raw.githubusercontent.com/SEMICeu/DCAT-AP/2.1.0-draft/releases/2.1.0/dcat-ap_2.1.0_shacl_shapes_recommended.ttl 139 | # validator.shaclFile.all.remote.1.type = text/turtle 140 | 141 | # # -- Import of external ontologies -- use DCAT-AP.de's small import footprint for now 142 | # # validator.shaclFile.all.remote.-->NUMBER<--.url = https://raw.githubusercontent.com/SEMICeu/DCAT-AP/2.1.0-draft/releases/2.1.0/dcat-ap_2.1.0_shacl_imports.ttl 143 | # # validator.shaclFile.all.remote.-->NUMBER<--.type = text/turtle 144 | # # -- Import of named authority lists 145 | # # validator.shaclFile.all.remote.-->NUMBER<--.url = https://raw.githubusercontent.com/SEMICeu/DCAT-AP/2.1.0-draft/releases/2.1.0/dcat-ap_2.1.0_shacl_mdr_imports.ttl 146 | # # validator.shaclFile.all.remote.-->NUMBER<--.type = text/turtle 147 | -------------------------------------------------------------------------------- /validator/resources/v3.0/shapes/dcat-ap-spec-german-additions.ttl: -------------------------------------------------------------------------------- 1 | # CC0 GovData 2 | # 3 | # Diese Datei beinhaltet alle Ergänzungen, die in der Spezifikation als "Änderungen durch DCAT-AP.de" markiert sind. 4 | # Außerdem wird geprüft, dass dcterms:PeriodOfTime über mindestens eine Zeitangabe verfügt. 5 | 6 | @prefix : . 7 | @prefix adms: . 8 | @prefix dc: . 9 | @prefix dcat: . 10 | @prefix dcatap: . 11 | @prefix dcatde: . 12 | @prefix dcterms: . 13 | @prefix foaf: . 14 | @prefix geodcatap: . 15 | @prefix locn: . 16 | @prefix odrl: . 17 | @prefix org: . 18 | @prefix owl: . 19 | @prefix prov: . 20 | @prefix rdf: . 21 | @prefix rdfs: . 22 | @prefix schema: . 23 | @prefix sh: . 24 | @prefix skos: . 25 | @prefix skosxl: . 26 | @prefix spdx: . 27 | @prefix time: . 28 | @prefix vcard: . 29 | @prefix xml: . 30 | @prefix xsd: . 31 | 32 | 33 | # dcat:Catalog 34 | 35 | :Catalog_Shape 36 | a sh:NodeShape ; 37 | sh:targetClass dcat:Catalog ; 38 | sh:name "dcat:Catalog gemäß DCAT-AP.de Spezifikation 3.0"@de ; 39 | 40 | sh:property :DE_Catalog_dcatap_availability_v_Max ; 41 | sh:property :DE_Catalog_dcterms_isPartOf_w_Class ; 42 | sh:property :DE_Catalog_dcterms_isPartOf_v_Max ; 43 | . 44 | 45 | 46 | 47 | :DE_Catalog_dcatap_availability_v_Max 48 | sh:maxCount 1 ; 49 | sh:path dcatap:availability ; 50 | sh:severity sh:Violation ; 51 | sh:message "DE: dcat:Catalog: DARF maximal eine dcatap:availability haben."@de ; 52 | . 53 | 54 | :DE_Catalog_dcterms_isPartOf_w_Class 55 | sh:path dcterms:isPartOf ; 56 | sh:class dcat:Catalog ; 57 | sh:severity sh:Warning ; 58 | sh:message "DE: dcat:Catalog: dct:isPartOf MUSS auf einen dcat:Catalog verweisen. (Löst auch aus, wenn nur eine IRI angegeben wird, die verlinkte Ressource aber nicht mit validiert wird.)"@de ; 59 | . 60 | 61 | :DE_Catalog_dcterms_isPartOf_v_Max 62 | sh:maxCount 1 ; 63 | sh:path dcterms:isPartOf ; 64 | sh:severity sh:Violation ; 65 | sh:message "DE: dcat:Catalog: DARF maximal ein dcterms:isPartOf haben."@de ; 66 | . 67 | 68 | # dcat:Dataset 69 | 70 | :Dataset_Shape 71 | a sh:NodeShape ; 72 | sh:targetClass dcat:Dataset ; 73 | sh:name "dcat:Dataset gemäß DCAT-AP.de Spezifikation 3.0"@de ; 74 | 75 | sh:property :DE_Dataset_dcterms_publisher_v_Min ; 76 | sh:property :DE_Dataset_dcatde_politicalGeocodingLevelURI_v_IRI ; 77 | sh:property :DE_Dataset_dcatap_availability_v_Max ; 78 | sh:property :DE_Dataset_dcatde_contributorID_v_IRI ; 79 | sh:property :DE_Dataset_dcterms_references_v_IRI ; 80 | sh:property :DE_Dataset_dcterms_contributor_v_Class ; 81 | sh:property :DE_Dataset_geodcatap_originator_v_Class ; 82 | sh:property :DE_Dataset_geodcatap_custodian_v_Class ; 83 | . 84 | 85 | :DE_Dataset_dcterms_publisher_v_Min 86 | sh:minCount 1 ; 87 | sh:path dcterms:publisher ; 88 | sh:severity sh:Violation ; 89 | sh:message "DE: dcat:DataService: MUSS einen dcterms:publisher haben."@de ; 90 | . 91 | 92 | :DE_Dataset_dcatde_politicalGeocodingLevelURI_v_IRI 93 | sh:path dcatde:politicalGeocodingLevelURI ; 94 | sh:nodeKind sh:IRI ; 95 | sh:severity sh:Violation ; 96 | sh:message "DE: dcat:Dataset: dcatde:politicalGeocodingLevelURI MUSS eine IRI sein."@de ; 97 | . 98 | 99 | :DE_Dataset_dcatap_availability_v_Max 100 | sh:maxCount 1 ; 101 | sh:path dcatap:availability ; 102 | sh:severity sh:Violation ; 103 | sh:message "DE: dcat:Dataset: DARF maximal eine dcatap:availability haben."@de ; 104 | . 105 | 106 | :DE_Dataset_dcatde_contributorID_v_IRI 107 | sh:path dcatde:contributorID ; 108 | sh:nodeKind sh:IRI ; 109 | sh:severity sh:Violation ; 110 | sh:message "dcat:Dataset: dcatde:contributorID MUSS eine IRI sein."@de ; 111 | . 112 | 113 | :DE_Dataset_dcterms_references_v_IRI 114 | sh:path dcterms:references ; 115 | sh:nodeKind sh:IRI ; 116 | sh:severity sh:Violation ; 117 | sh:message "dcat:Dataset: dct:references MUSS eine IRI sein."@de ; 118 | . 119 | 120 | :DE_Dataset_dcterms_contributor_v_Class 121 | sh:path dcterms:contributor ; 122 | sh:class foaf:Agent ; 123 | sh:severity sh:Violation ; 124 | sh:message "dcat:Dataset: dct:contributor MUSS auf einen foaf:Agent verweisen."@de ; 125 | . 126 | 127 | :DE_Dataset_geodcatap_originator_v_Class 128 | sh:path geodcatap:originator ; 129 | sh:class foaf:Agent ; 130 | sh:severity sh:Violation ; 131 | sh:message "dcat:Dataset: geodcatap:originator MUSS auf einen foaf:Agent verweisen."@de ; 132 | . 133 | 134 | :DE_Dataset_geodcatap_custodian_v_Class 135 | sh:path geodcatap:custodian ; 136 | sh:class foaf:Agent ; 137 | sh:severity sh:Violation ; 138 | sh:message "dcat:Dataset: geodcatap:custodian MUSS auf einen foaf:Agent verweisen."@de ; 139 | . 140 | 141 | # dcat:DataService 142 | 143 | :DataService_Shape 144 | a sh:NodeShape ; 145 | sh:targetClass dcat:DataService ; 146 | sh:name "dcat:DataService gemäß DCAT-AP.de Spezifikation 3.0"@de ; 147 | 148 | sh:property :DE_DataService_dcterms_publisher_v_Min ; 149 | sh:property :DE_DataService_dcatap_availability_v_Max ; 150 | . 151 | 152 | :DE_DataService_dcterms_publisher_v_Min 153 | sh:minCount 1 ; 154 | sh:path dcterms:publisher ; 155 | sh:severity sh:Violation ; 156 | sh:message "DE: dcat:DataService: MUSS einen dcterms:publisher haben."@de ; 157 | . 158 | 159 | :DE_DataService_dcatap_availability_v_Max 160 | sh:maxCount 1 ; 161 | sh:path dcatap:availability ; 162 | sh:severity sh:Violation ; 163 | sh:message "dcat:DataService: DARF maximal eine dcatap:availability haben."@de ; 164 | . 165 | 166 | # dcat:DatasetSeries 167 | 168 | :DE_DatasetSeries_dcterms_publisher_v_Min 169 | sh:minCount 1 ; 170 | sh:path dcterms:publisher ; 171 | sh:severity sh:Violation ; 172 | sh:message "DE: dcat:DatasetSeries: MUSS einen dcterms:publisher haben."@de ; 173 | . 174 | 175 | # dcat:Distribution 176 | 177 | :Distribution_Shape 178 | a sh:NodeShape ; 179 | sh:targetClass dcat:Distribution ; 180 | sh:name "dcat:Distribution gemäß DCAT-AP.de Spezifikation 3.0"@de ; 181 | 182 | sh:property :DE_Distribution_dcterms_license_v_Min ; 183 | sh:property :DE_Distribution_dcatde_licenseAttributionByText_v_Literal ; 184 | . 185 | 186 | :DE_Distribution_dcterms_license_v_Min 187 | sh:minCount 1 ; 188 | sh:path dcterms:license ; 189 | sh:severity sh:Violation ; 190 | sh:message "DE: dcat:Distribution: MUSS eine dcterms:license haben."@de ; 191 | . 192 | 193 | :DE_Distribution_dcatde_licenseAttributionByText_v_Literal 194 | sh:path dcatde:licenseAttributionByText ; 195 | sh:nodeKind sh:Literal ; 196 | sh:severity sh:Violation ; 197 | sh:message "DE: dcat:Distribution: dcatde:licenseAttributionByText MUSS ein Literal sein."@de ; 198 | . 199 | 200 | # dcterms:PeriodOfTime 201 | :PeriodOfTime_Shape 202 | a sh:NodeShape ; 203 | sh:targetClass dcterms:PeriodOfTime ; 204 | sh:name "dcterms:PeriodOfTime gemäß DCAT-AP.de Spezifikation 3.0"@de ; 205 | 206 | sh:property :DE_PeriodOfTime_periodPoints_v_Min ; 207 | . 208 | :DE_PeriodOfTime_periodPoints_v_Min 209 | sh:message "dcterms:PeriodOfTime: MUSS mindestens eine der folgenden Eigenschaften besitzen: Empfohlen: dcat:startDate, dcat:endDate. Andere Möglichkeiten: time:hasBeginning, time:hasEnd."@de ; 210 | sh:severity sh:Violation ; 211 | 212 | sh:minCount 1 ; 213 | sh:path [ sh:alternativePath ( 214 | dcat:startDate 215 | dcat:endDate 216 | time:hasBeginning 217 | time:hasEnd 218 | ) ] ; 219 | . 220 | 221 | # dcterms:Location 222 | # nothing 223 | 224 | # vcard:Kind 225 | :Kind_Shape 226 | a sh:NodeShape ; 227 | sh:targetClass vcard:Kind ; 228 | sh:name "vcard:Kind gemäß DCAT-AP.de Spezifikation 3.0"@de ; 229 | 230 | sh:property :DE_Kind_vcard_fn_v_Max ; 231 | sh:property :DE_Kind_vcard_fn_v_Literal ; 232 | sh:property :DE_Kind_vcard_hasEmail_v_IRI ; 233 | sh:property :DE_Kind_vcard_hasURL_v_IRI ; 234 | sh:property :DE_Kind_vcard_hasTelephone_v_IRI ; 235 | sh:property :DE_Kind_vcard_hasEmail_hasURL_hasTelephone_v_Min ; 236 | . 237 | 238 | :DE_Kind_vcard_fn_v_Max 239 | sh:maxCount 1 ; 240 | sh:path vcard:fn ; 241 | sh:severity sh:Violation ; 242 | sh:message "DE: vcard:Kind: DARF maximal einen vcard:fn haben."@de ; 243 | . 244 | 245 | :DE_Kind_vcard_fn_v_Literal 246 | sh:path vcard:fn ; 247 | sh:nodeKind sh:Literal ; 248 | sh:severity sh:Violation ; 249 | sh:message "DE: vcard:Kind: vcard:fn MUSS ein Literal sein."@de ; 250 | . 251 | 252 | :DE_Kind_vcard_hasEmail_v_IRI 253 | sh:path vcard:hasEmail ; 254 | sh:nodeKind sh:IRI ; 255 | sh:severity sh:Violation ; 256 | sh:message "DE: vcard:Kind: vcard:hasEmail MUSS eine IRI sein."@de ; 257 | . 258 | 259 | :DE_Kind_vcard_hasURL_v_IRI 260 | sh:path vcard:hasURL ; 261 | sh:nodeKind sh:IRI ; 262 | sh:severity sh:Violation ; 263 | sh:message "DE: vcard:Kind: vcard:hasURL MUSS eine IRI sein."@de ; 264 | . 265 | 266 | :DE_Kind_vcard_hasTelephone_v_IRI 267 | sh:path vcard:hasTelephone ; 268 | sh:nodeKind sh:IRI ; 269 | sh:severity sh:Violation ; 270 | sh:message "DE: vcard:Kind: vcard:hasTelephone MUSS eine IRI sein."@de ; 271 | . 272 | 273 | :DE_Kind_vcard_hasEmail_hasURL_hasTelephone_v_Min 274 | sh:message "DE: vcard:Kind: MUSS über vcard:hasEmail, vcard:hasURL oder vcard:hasTelephone verfügen."@de ; 275 | sh:severity sh:Violation ; 276 | sh:minCount 1 ; 277 | sh:path [ sh:alternativePath ( 278 | vcard:hasEmail 279 | vcard:hasURL 280 | vcard:hasTelephone 281 | ) ] ; 282 | . 283 | 284 | # spdx:Checksum 285 | # nothing 286 | 287 | # dcat:CatalogRecord 288 | # nothing 289 | 290 | # dcat:Relationship 291 | # nothing 292 | 293 | # prov:Attribution 294 | 295 | :Attribution_Shape 296 | a sh:NodeShape ; 297 | sh:targetClass prov:Attribution ; 298 | sh:name "prov:Attribution gemäß DCAT-AP.de Spezifikation 3.0"@de ; 299 | 300 | sh:property :DE_Attribution_dcat_hadRole_v_Min ; 301 | sh:property :DE_Attribution_dcat_hadRole_v_IRI ; 302 | sh:property :DE_Attribution_prov_agent_v_Min ; 303 | sh:property :DE_Attribution_prov_agent_v_IRI ; 304 | . 305 | 306 | :DE_Attribution_dcat_hadRole_v_Min 307 | sh:minCount 1 ; 308 | sh:path dcat:hadRole ; 309 | sh:severity sh:Violation ; 310 | sh:message "DE: prov:Attribution: MUSS mindestens einmal dcat:hadRole haben." 311 | . 312 | 313 | :DE_Attribution_dcat_hadRole_v_IRI 314 | sh:path dcat:hadRole ; 315 | sh:nodeKind sh:IRI ; 316 | sh:severity sh:Violation ; 317 | sh:message "DE: prov:Attribution: dcat:hadRole MUSS eine IRI sein."@de ; 318 | . 319 | 320 | :DE_Attribution_prov_agent_v_Min 321 | sh:minCount 1 ; 322 | sh:path prov:agent ; 323 | sh:severity sh:Violation ; 324 | sh:message "DE: prov:Attribution: MUSS mindestens einmal prov:agent haben." 325 | . 326 | :DE_Attribution_prov_agent_v_IRI 327 | sh:path prov:agent ; 328 | sh:nodeKind sh:IRI ; 329 | sh:severity sh:Violation ; 330 | sh:message "DE: prov:Attribution: prov:agent MUSS eine IRI sein."@de ; 331 | . -------------------------------------------------------------------------------- /validator/resources/v2.0/shapes/dcat-ap-konventionen.ttl: -------------------------------------------------------------------------------- 1 | # (C) CC BY 4.0 ']init[ AG fuer GovData' 2 | # 3 | # Diese Datei fügt zu den DCAT-AP-SHACL-Shapes deutsche Regeln hinzu, so dass das Konventionenhandbuch 4 | # und Empfehlungen für die Anlieferung an GovData geprüft werden. 5 | 6 | @prefix : . 7 | @prefix adms: . 8 | @prefix dc: . 9 | @prefix dcat: . 10 | @prefix dcatap: . 11 | @prefix dcatde: . 12 | @prefix dct: . 13 | @prefix foaf: . 14 | @prefix locn: . 15 | @prefix odrl: . 16 | @prefix org: . 17 | @prefix owl: . 18 | @prefix prov: . 19 | @prefix rdf: . 20 | @prefix rdfs: . 21 | @prefix schema: . 22 | @prefix sh: . 23 | @prefix skos: . 24 | @prefix skosxl: . 25 | @prefix spdx: . 26 | @prefix time: . 27 | @prefix vcard: . 28 | @prefix xml: . 29 | @prefix xsd: . 30 | 31 | :Konv01_hasEmail_hasURL_v_Min 32 | sh:message "K01: Kontaktinformationen (dcat:contactPoint) MÜSSEN mindestens Angaben zur Email (vcard:hasEmail) oder einen Link zum Kontaktformular oder Chatbot (vcard:hasURL) enthalten. "@de ; 33 | sh:severity sh:Violation ; 34 | 35 | sh:minCount 1 ; 36 | sh:path [ sh:alternativePath ( 37 | vcard:hasURL 38 | vcard:hasEmail 39 | ) ] ; 40 | . 41 | 42 | :Konv_contactPoint_Shape 43 | a sh:NodeShape ; 44 | sh:targetObjectsOf dcat:contactPoint ; 45 | sh:name "Konventionen zum dcat:contactPoint gemäß DCAT-AP.de 2.0"@de ; 46 | 47 | sh:property :Konv01_hasEmail_hasURL_v_Min ; # Würde man hier auf sh:node wechseln, wäre es konform, die Fehlermeldung ginge aber verloren. 48 | . 49 | 50 | :Konv12_13_contributorID_v_List 51 | sh:message "K12&13: dcat:Dataset: dcatde:contributorID MUSS verwendet werden und DARF nur genau einmal eine IRI aus http://dcat-ap.de/def/contributors/ verwenden. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/implRules/#konvention-12 "@de ; 52 | sh:severity sh:Violation ; 53 | 54 | sh:path dcatde:contributorID ; 55 | 56 | sh:qualifiedValueShape [ 57 | sh:path skos:inScheme ; 58 | sh:hasValue ; 59 | ] ; 60 | sh:qualifiedMinCount 1 ; 61 | sh:qualifiedMaxCount 1 ; 62 | . 63 | 64 | :Konv36_dct_publisher_v_Min 65 | sh:message "K36: dcat:Dataset: dct:publisher MUSS verwendet werden. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/implRules/#konvention-36 "@de ; 66 | sh:severity sh:Violation ; 67 | 68 | sh:path dct:publisher ; 69 | sh:minCount 1 ; 70 | . 71 | 72 | :Konv30_dcat_theme_w_Min 73 | sh:message "K30: dcat:Dataset: dcat:theme: Zur Steigerung der Metadatenqualität wird die Angabe von Kategorien empfohlen. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/implRules/#angaben-zu-kategorien "@de ; 74 | sh:severity sh:Warning ; 75 | 76 | sh:path dcat:theme ; 77 | sh:minCount 1 ; 78 | . 79 | 80 | :KonvXX_dcat_keyword_w_Min 81 | sh:message "KXX: dcat:Dataset: dcat:keyword: Zur Steigerung der Metadatenqualität wird die Angabe von Schlagworten empfohlen. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/spec/#datensatz-schlagwort "@de ; 82 | sh:severity sh:Warning ; 83 | 84 | sh:path dcat:keyword ; 85 | sh:minCount 1 ; 86 | . 87 | 88 | :KonvXX_dcat_landingPage_w_Min 89 | sh:message "KXX: dcat:Dataset: dcat:landingPage: Zur Steigerung der Metadatenqualität wird die Angabe der ursprünglichen Webseite empfohlen. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/spec/#datensatz-ursprungliche-webseite "@de ; 90 | sh:severity sh:Warning ; 91 | 92 | sh:path dcat:landingPage ; 93 | sh:minCount 1 ; 94 | . 95 | 96 | :KonvXX_dct_issued_w_Min 97 | sh:message "KXX: dcat:Dataset: dct:issued: Zur Steigerung der Metadatenqualität wird die Angabe des Veröffentlichungsdatums empfohlen. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/spec/#datensatz-veroffentlichungsdatum "@de ; 98 | sh:severity sh:Warning ; 99 | 100 | sh:path dct:issued ; 101 | sh:minCount 1 ; 102 | . 103 | 104 | :Dubletten_dct_identifier_i_Min 105 | sh:message "dcat:Dataset: Ggf. MUSS dct:identifier zur Dublettenprüfung verwendet werden. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/implRules/#erkennung-von-dubletten "@de ; 106 | sh:severity sh:Info ; 107 | 108 | sh:path dct:identifier ; 109 | sh:minCount 1 ; 110 | . 111 | 112 | :Dubletten_dct_modified_i_Min 113 | sh:message "dcat:Dataset: Ggf. MUSS dct:modified zur Dublettenprüfung verwendet werden. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/implRules/#erkennung-von-dubletten "@de ; 114 | sh:severity sh:Info ; 115 | 116 | sh:path dct:modified ; 117 | sh:minCount 1 ; 118 | . 119 | 120 | :Dataset_dcat_distribution_i_Min 121 | sh:message "dcat:Dataset: dcat:distribution: Es wird empfohlen, dass jedes Dataset über eine Distribution verfügt."@de ; 122 | sh:severity sh:Info ; 123 | 124 | sh:path dcat:distribution ; 125 | sh:minCount 1 ; 126 | . 127 | 128 | :Konv_Dataset_Shape 129 | a sh:NodeShape ; 130 | sh:targetClass dcat:Dataset ; 131 | sh:name "Konventionen zum dcat:Dataset gemäß DCAT-AP.de 2.0"@de ; 132 | 133 | sh:property :Konv12_13_contributorID_v_List ; 134 | sh:property :Konv36_dct_publisher_v_Min ; 135 | sh:property :Konv30_dcat_theme_w_Min ; 136 | sh:property :KonvXX_dcat_keyword_w_Min ; 137 | sh:property :KonvXX_dcat_landingPage_w_Min ; 138 | sh:property :KonvXX_dct_issued_w_Min ; 139 | sh:property :Dubletten_dct_identifier_i_Min ; 140 | sh:property :Dubletten_dct_modified_i_Min ; 141 | sh:property :Dataset_dcat_distribution_i_Min ; 142 | . 143 | 144 | :Konv31_dct_license_v_List 145 | sh:message "K31: dcat:Distribution: dct:license MUSS eine IRI aus http://dcat-ap.de/def/licenses/ verwenden. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/implRules/#konvention-31 "@de ; 146 | sh:path dct:license ; 147 | 148 | sh:qualifiedValueShape [ 149 | sh:path skos:inScheme ; 150 | sh:hasValue ; 151 | ] ; 152 | sh:qualifiedMinCount 1 ; 153 | 154 | sh:severity sh:Violation ; 155 | . 156 | 157 | :Konv32_dct_format_v_List 158 | sh:path dct:format ; 159 | 160 | sh:property [ 161 | sh:path skos:inScheme ; 162 | sh:hasValue ; 163 | 164 | sh:message "K32: dcat:Distribution: dct:format MUSS eine IRI aus dem EU Vokabular 'File Type' verwenden. Siehe: https://www.dcat-ap.de/def/dcatde/2.0/implRules/#konvention-32 "@de ; 165 | sh:severity sh:Violation ; 166 | ] ; 167 | . 168 | 169 | :KonvXX_dct_title_w_Min 170 | sh:message "KXX: dcat:Distribution: dct:title: Es wird empfohlen, dass jede Distribution über einen dct:title verfügt."@de ; 171 | sh:severity sh:Warning ; 172 | 173 | sh:path dct:title ; 174 | sh:minCount 1 ; 175 | . 176 | 177 | :Konv_Distribution_Shape 178 | a sh:NodeShape ; 179 | sh:targetClass dcat:Distribution ; 180 | sh:name "Konventionen zur dcat:Distribution gemäß DCAT-AP.de 2.0"@de ; 181 | 182 | sh:property :Konv31_dct_license_v_List ; 183 | sh:property :Konv32_dct_format_v_List ; 184 | sh:property :KonvXX_dct_title_w_Min ; 185 | . 186 | 187 | #################################################### 188 | ######### Ranges zum dcat:Dataset ######### 189 | #################################################### 190 | 191 | :Range_Dataset_dct_conformsTo_w_IRIOrLiteral 192 | sh:path dct:conformsTo ; 193 | sh:nodeKind sh:IRIOrLiteral ; 194 | sh:severity sh:Warning ; 195 | sh:message "dcat:Dataset: dct:conformsTo SOLL eine IRI oder ein Literal sein."@de ; 196 | . 197 | 198 | :Range_Dataset_dct_accessRights_w_IRIOrLiteral 199 | sh:path dct:accessRights ; 200 | sh:nodeKind sh:IRIOrLiteral ; 201 | sh:severity sh:Warning ; 202 | sh:message "dcat:Dataset: dct:accessRights SOLL eine IRI oder ein Literal sein."@de ; 203 | . 204 | 205 | :Range_Dataset_dct_provenance_w_IRIOrLiteral 206 | sh:path dct:provenance ; 207 | sh:nodeKind sh:IRIOrLiteral ; 208 | sh:severity sh:Warning ; 209 | sh:message "dcat:Dataset: dct:provenance SOLL eine IRI oder ein Literal sein."@de ; 210 | . 211 | 212 | :Range_Dataset_prov_wasGeneratedBy_w_IRI 213 | sh:path prov:wasGeneratedBy ; 214 | sh:nodeKind sh:IRI ; 215 | sh:severity sh:Warning ; 216 | sh:message "dcat:Dataset: prov:wasGeneratedBy SOLL eine IRI sein."@de ; 217 | . 218 | 219 | :Range_Dataset_dcat_landingPage_w_IRI 220 | sh:path dcat:landingPage ; 221 | sh:nodeKind sh:IRI ; 222 | sh:severity sh:Warning ; 223 | sh:message "dcat:Dataset: dcat:landingPage SOLL eine IRI sein."@de ; 224 | . 225 | 226 | :Range_Dataset_foaf_page_w_IRI 227 | sh:path foaf:page ; 228 | sh:nodeKind sh:IRI ; 229 | sh:severity sh:Warning ; 230 | sh:message "dcat:Dataset: foaf:page SOLL eine IRI sein."@de ; 231 | . 232 | 233 | :Range_Dataset_Shape 234 | a sh:NodeShape ; 235 | sh:targetClass dcat:Dataset ; 236 | sh:name "Range-Bedingungen zum dcat:Dataset gemäß DCAT-AP.de 2.0"@de ; 237 | 238 | sh:property :Range_Dataset_dct_conformsTo_w_IRIOrLiteral ; 239 | sh:property :Range_Dataset_dct_accessRights_w_IRIOrLiteral ; 240 | sh:property :Range_Dataset_dct_provenance_w_IRIOrLiteral ; 241 | sh:property :Range_Dataset_prov_wasGeneratedBy_w_IRI ; 242 | sh:property :Range_Dataset_dcat_landingPage_w_IRI ; 243 | sh:property :Range_Dataset_foaf_page_w_IRI ; 244 | . 245 | 246 | #################################################### 247 | ######### Ranges zum dcat:Catalog ######### 248 | #################################################### 249 | 250 | :Range_Catalog_dct_rights_w_IRIOrLiteral 251 | sh:path dct:rights ; 252 | sh:nodeKind sh:IRIOrLiteral ; 253 | sh:severity sh:Warning ; 254 | sh:message "dcat:Catalog: dct:rights SOLL eine IRI oder ein Literal sein."@de ; 255 | . 256 | 257 | :Range_Catalog_foaf_homepage_w_IRI 258 | sh:path foaf:homepage ; 259 | sh:nodeKind sh:IRI ; 260 | sh:severity sh:Warning ; 261 | sh:message "dcat:Catalog: foaf:homepage SOLL eine IRI sein."@de ; 262 | . 263 | 264 | :Range_Catalog_Shape 265 | a sh:NodeShape ; 266 | sh:targetClass dcat:Catalog ; 267 | sh:name "Range-Bedingungen zum dcat:Catalog gemäß DCAT-AP.de 2.0"@de ; 268 | 269 | sh:property :Range_Catalog_dct_rights_w_IRIOrLiteral ; 270 | sh:property :Range_Catalog_foaf_homepage_w_IRI ; 271 | . 272 | 273 | #################################################### 274 | ####### Ranges zum dcat:DataService ####### 275 | #################################################### 276 | 277 | :Range_DataService_dct_accessRights_w_IRIOrLiteral 278 | sh:path dct:accessRights ; 279 | sh:nodeKind sh:IRIOrLiteral ; 280 | sh:severity sh:Warning ; 281 | sh:message "dcat:DataService: dct:accessRights SOLL eine IRI oder ein Literal sein."@de ; 282 | . 283 | 284 | :Range_DataService_Shape 285 | a sh:NodeShape ; 286 | sh:targetClass dcat:DataService ; 287 | sh:name "Range-Bedingungen zum dcat:DataService gemäß DCAT-AP.de 2.0"@de ; 288 | 289 | sh:property :Range_DataService_dct_accessRights_w_IRIOrLiteral ; 290 | . 291 | 292 | #################################################### 293 | ####### Ranges zur dcat:Distribution ####### 294 | #################################################### 295 | 296 | :Range_Distribution_dct_rights_w_IRIOrLiteral 297 | sh:path dct:rights ; 298 | sh:nodeKind sh:IRIOrLiteral ; 299 | sh:severity sh:Warning ; 300 | sh:message "dcat:Distribution: dct:rights SOLL eine IRI oder ein Literal sein."@de ; 301 | . 302 | 303 | :Range_Distribution_dct_conformsTo_w_IRIOrLiteral 304 | sh:path dct:conformsTo ; 305 | sh:nodeKind sh:IRIOrLiteral ; 306 | sh:severity sh:Warning ; 307 | sh:message "dcat:Distribution: dct:conformsTo SOLL eine IRI oder ein Literal sein."@de ; 308 | . 309 | 310 | :Range_Distribution_foaf_page_w_IRI 311 | sh:path foaf:page ; 312 | sh:nodeKind sh:IRI ; 313 | sh:severity sh:Warning ; 314 | sh:message "dcat:Distribution: foaf:page SOLL eine IRI sein."@de ; 315 | . 316 | 317 | :Range_Distribution_odrl_hasPolicy_w_IRI 318 | sh:path odrl:hasPolicy ; 319 | sh:nodeKind sh:IRI ; 320 | sh:severity sh:Warning ; 321 | sh:message "dcat:Distribution: odrl:hasPolicy SOLL eine IRI sein."@de ; 322 | . 323 | 324 | :Range_Distribution_Shape 325 | a sh:NodeShape ; 326 | sh:targetClass dcat:Distribution ; 327 | sh:name "Range-Bedingungen zur dcat:Distribution gemäß DCAT-AP.de 2.0"@de ; 328 | 329 | sh:property :Range_Distribution_dct_rights_w_IRIOrLiteral ; 330 | sh:property :Range_Distribution_dct_conformsTo_w_IRIOrLiteral ; 331 | sh:property :Range_Distribution_foaf_page_w_IRI ; 332 | sh:property :Range_Distribution_odrl_hasPolicy_w_IRI ; 333 | . 334 | 335 | #################################################### 336 | ####### Ranges zum dcat:CatalogRecord ####### 337 | #################################################### 338 | 339 | :Range_CatalogRecord_dct_conformsTo_w_IRIOrLiteral 340 | sh:path dct:conformsTo ; 341 | sh:nodeKind sh:IRIOrLiteral ; 342 | sh:severity sh:Warning ; 343 | sh:message "dcat:CatalogRecord: dct:conformsTo SOLL eine IRI oder ein Literal sein."@de ; 344 | . 345 | 346 | :Range_CatalogRecord_Shape 347 | a sh:NodeShape ; 348 | sh:targetClass dcat:CatalogRecord ; 349 | sh:name "Range-Bedingungen zur dcat:CatalogRecord gemäß DCAT-AP.de 2.0"@de ; 350 | 351 | sh:property :Range_CatalogRecord_dct_conformsTo_w_IRIOrLiteral ; 352 | . --------------------------------------------------------------------------------