@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <http://data.europa.eu/r5r#> .
@prefix adms: <http://www.w3.org/ns/adms#> .
@prefix cc: <http://creativecommons.org/ns#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lcon: <http://www.w3.org/ns/locn#> .
@prefix org: <http://www.w3.org/ns/org#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix odrl: <http://www.w3.org/ns/odrl/2/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema: <http://schema.org/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix spdx: <http://spdx.org/rdf/terms#> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix vcard: <http://www.w3.org/2006/vcard/ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dcatap: <http://data.europa.eu/r5r> .
@prefix healthdcatap: <http://healthdataportal.eu/ns/health#> .
@prefix cv: <http://data.europa.eu/m8g/> .

<https://healthdcat-ap.github.io/mdr-vocabularies.shape.ttl> 
    dct:description "This file contains the controlled vocabulary constraints used in HealthDCAT-AP. It ensures that property values are taken from approved reference lists and code lists."@en.

#-------------------------------------------------------------------------
# The shapes in this file check the usage of controlled vocabularies 
# across HealthDCAT-AP properties.
#
# These constraints ensure that values conform to official code lists 
# and Named Authority Lists (NALs) as defined in the metadata registry.
#
#-------------------------------------------------------------------------	

:AvailabilityRestriction
    a sh:NodeShape ;
    rdfs:comment "Availability restriction" ;
    rdfs:label "Availability restriction" ;
    sh:property [
        sh:hasValue <http://publications.europa.eu/resource/authority/planned-availability> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .

:ContinentRestriction
    a sh:NodeShape ;
    rdfs:comment "Continent restriction" ;
    rdfs:label "Continent restriction" ;
    sh:property [
        sh:hasValue <http://publications.europa.eu/resource/authority/continent> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .

:CorporateBodyRestriction
    a sh:NodeShape ;
    rdfs:comment "Corporate Body Restriction" ;
    rdfs:label "Corporate Body Restriction" ;
    sh:property [
        sh:hasValue <http://publications.europa.eu/resource/authority/corporate-body> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .
	
:CountryRestriction
    a sh:NodeShape ;
    rdfs:comment "Country restriction" ;
    rdfs:label "Country restriction" ;
    sh:property [
        sh:hasValue <http://publications.europa.eu/resource/authority/country> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .

:DataThemeRestriction
    a sh:NodeShape ;
    rdfs:comment "Data Theme Restriction" ;
    rdfs:label "Data Theme Restriction" ;
    sh:property [
        sh:hasValue <http://publications.europa.eu/resource/authority/data-theme> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .

:AccessRightRestriction
    a sh:NodeShape ;
    rdfs:comment "Access Rights Restriction" ;
    rdfs:label "Data Theme Restriction" ;
    sh:property [
        sh:hasValue <http://publications.europa.eu/resource/authority/access-right> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .
 
:DatasetTypeRestriction
    a sh:NodeShape ;
    rdfs:comment "Dataset Type Restriction" ;
    rdfs:label "Dataset Type Restriction" ;
    sh:property [
        sh:hasValue <http://publications.europa.eu/resource/authority/dataset-type> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .	
	

:FileTypeRestriction
    a sh:NodeShape ;
    rdfs:comment "File Type Restriction" ;
    rdfs:label "File Type Restriction" ;
    sh:property [
        sh:hasValue <http://publications.europa.eu/resource/authority/file-type> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .

:FrequencyRestriction
    a sh:NodeShape ;
    rdfs:comment "Frequency Restriction" ;
    rdfs:label "Frequency Restriction" ;
    sh:property [
        sh:hasValue <http://publications.europa.eu/resource/authority/frequency> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .

:GeoNamesRestriction
    a sh:NodeShape ;
    rdfs:comment "Geo names restriction" ;
    rdfs:label "Geo names restriction" ;
    sh:property [
        sh:hasValue <http://sws.geonames.org> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .

:LanguageRestriction
    a sh:NodeShape ;
    rdfs:comment "Language Restriction" ;
    rdfs:label "Language Restriction" ;
    sh:property [
        sh:hasValue <http://publications.europa.eu/resource/authority/language> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .

:LicenceTypeRestriction
    a sh:NodeShape ;
    rdfs:comment "Licence type restriction" ;
    rdfs:label "Licence type restriction" ;
    sh:property [
        sh:hasValue <http://purl.org/adms/licencetype/1.0> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .

:PlaceRestriction
    a sh:NodeShape ;
    rdfs:comment "Place restriction" ;
    rdfs:label "Place restriction" ;
    sh:property [
        sh:class skos:ConceptScheme ;
        sh:hasValue <http://publications.europa.eu/resource/authority/place> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .

:PublisherTypeRestriction
    a sh:NodeShape ;
    rdfs:comment "Publisher type restriction" ;
    rdfs:label "Publisher type restriction" ;
    sh:property [
        sh:class skos:ConceptScheme ;
        sh:hasValue <http://purl.org/adms/publishertype/1.0> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .
	
#HealthDCAT-AP : new restriction
:HealthPublisherTypeRestriction
    a sh:NodeShape ;
    rdfs:comment "Publisher Types for EHDS Restriction" ;
    rdfs:label "Publisher Types for EHDS Restriction" ;
    sh:property [
        sh:hasValue <http://13.81.34.152:1101/resource/authority/publisher-type> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .
	
#HealthDCAT-AP : Modification of existing restriction
:StatusRestriction
    a sh:NodeShape ;
    rdfs:comment "Status restriction" ;
    rdfs:label "Status restriction" ;
    sh:property [
        sh:class skos:ConceptScheme ;
        #According to healthDCAT specefication the controlled vocabulary that should be used for adms:status is http://publications.europa.eu/resource/authority/distribution-status   : https://healthdcat-ap.github.io/#Distribution.status
        #sh:hasValue <http://purl.org/adms/status/1.0> ;
		sh:hasValue <http://publications.europa.eu/resource/authority/distribution-status>;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .

:ChecksumAlgorithmRestriction
    a sh:NodeShape ;
    rdfs:comment "Checksum algorithm restriction" ;
    rdfs:label "Checksum algorithm restriction" ;
	sh:class <http://spdx.org/rdf/terms#ChecksumAlgorithm>.
	
#HealthDCAT-AP : new restriction
:HealthCategoryRestriction
    a sh:NodeShape ;
    rdfs:comment "Health Category restriction" ;
    rdfs:label "Health Category restriction" ;
    sh:property [
        sh:class skos:ConceptScheme ;
        sh:hasValue <http://13.81.34.152:1101/resource/authority/healthcategories> ;
        sh:minCount 1 ;
        sh:nodeKind sh:IRI ;
        sh:path skos:inScheme
    ] .
	
#HealthDCAT-AP : new restriction
:HasCodingSystemRestriction
    a sh:NodeShape ;
    rdfs:comment "Coding systems in use (ex: ICD-10-CM, DGRs, SNOMED=CT, ...) restriction" ;
    rdfs:label "Coding systems in use (ex: ICD-10-CM, DGRs, SNOMED=CT, ...) restriction" ;	
    sh:property [
        sh:class skos:ConceptScheme ;		
        sh:nodeKind sh:IRI ;
		sh:minCount 1 ;
        sh:hasValue <http://13.81.34.152:1101/resource/authority/coding-system> ;
		sh:path skos:inScheme
    ] .
	
#HealthDCAT-AP : new restriction
:ConformsToRestriction
    a sh:NodeShape ;
    rdfs:comment "Established standard (FHIR, CDA ...) restriction" ;
    rdfs:label "Established standard (FHIR, CDA ...) restriction" ;
    sh:property [
        sh:class skos:ConceptScheme ;		
        sh:nodeKind sh:IRI ;
        sh:minCount 1 ;
        sh:hasValue <http://13.81.34.152:1101/resource/authority/standard> ;
		sh:path skos:inScheme
    ] .
	
#HealthDCAT-AP : new restriction
:HealthThemeRestriction
    a sh:NodeShape ;
    rdfs:comment "Health theme restriction" ;
    rdfs:label "Health theme restriction" ;
    sh:property [
        sh:class skos:ConceptScheme ;		
        sh:nodeKind sh:IRI ;
		sh:minCount 1 ;
        sh:hasValue <http://13.81.34.152:1101/resource/authority/health-theme> ;
		sh:path skos:inScheme
    ] .	
	
	
#HealthDCAT-AP : new restriction
:HealthActivityRestriction
    a sh:NodeShape ;
    rdfs:comment "Health activities restriction" ;
    rdfs:label "Health activities restriction" ;
    sh:property [
        sh:class skos:ConceptScheme ;		
        sh:nodeKind sh:IRI ;
		sh:minCount 1 ;
        sh:hasValue <http://13.81.34.152:1101/resource/authority/health-activity> ;
		sh:path skos:inScheme
    ] .		
	
#HealthDCAT-AP : new restriction
:IANARestriction
	a sh:NodeShape ;
    rdfs:comment "IANA media-types restriction" ;
    rdfs:label "IANA media-types restriction" ;    
    sh:pattern "^http.*://www.iana.org/assignments/media-types/" .

	
:Checksum_ShapeCV
    a sh:NodeShape ;
    sh:property [
        sh:node :ChecksumAlgorithmRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path spdx:algorithm
    ] ;
    sh:targetClass spdx:Checksum.

:LicenseDocument_ShapeCV
    a sh:NodeShape ;
    sh:property [
        sh:node :LicenceTypeRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dct:type
    ] ;
    sh:targetClass dct:LicenseDocument.




:Catalog_ShapeCV
    a sh:NodeShape ;
    sh:property [
        sh:node :LanguageRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dct:language ;
		#HealthDCAT-AP : modification of the message to be more clear
		sh:message "A non-EU managed concept is used to indicate the language. Please align with a concept from http://publications.europa.eu/resource/authority/language. If no match is found, inform the maintainer of the EU language NAL." ;
        sh:severity sh:Violation
    ], [
        sh:node :CorporateBodyRestriction ;
        sh:node :Publisher_ShapeCV ;
        sh:nodeKind sh:IRI ;
        sh:path dct:publisher ;
		sh:message "A non EU managed concept is used to indicate the publisher, check if a corresponding exists in the EU corporates bodies NAL" ; 
        sh:severity sh:Warning
    ], [
        sh:node [
            a sh:NodeShape ;
            sh:or (:CountryRestriction
                :PlaceRestriction
                :ContinentRestriction
                :GeoNamesRestriction
            )
        ] ;
        sh:nodeKind sh:IRI ;
        sh:path dct:spatial ;
		#HealthDCAT-AP : modification of the message to be more clear
		sh:message "A non-managed concept is used to indicate a spatial description. Please align with a concept from one of the following sources: https://publications.europa.eu/resource/authority/continent, https://publications.europa.eu/resource/authority/country, https://publications.europa.eu/resource/authority/place, https://sws.geonames.org/. check if a corresponding exists." ;
        sh:severity sh:Warning
    ], [
        sh:hasValue <http://publications.europa.eu/resource/authority/data-theme> ;
        sh:nodeKind sh:IRI ;
        sh:path dcat:themeTaxonomy ;
		sh:message "Multiple themes can be used but at least <http://publications.europa.eu/resource/authority/data-theme> should be present" ;
        sh:severity sh:Warning
    ] ;
    sh:targetClass dcat:Catalog.

:Dataset_ShapeCV
    a sh:NodeShape ;
    sh:property [
        sh:node :FrequencyRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dct:accrualPeriodicity ;
		#HealthDCAT-AP : modification of the message to be more clear
		sh:message "A non-EU managed concept is used to indicate the accrualPeriodicity frequency. Please align with a concept from http://publications.europa.eu/resource/authority/frequency. If no match is found, inform the maintainer of the EU frequency NAL." ; 
        sh:severity sh:Violation
    ], [
        sh:node :LanguageRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dct:language ;
		#HealthDCAT-AP : modification of the message to be more clear
		sh:message "A non-EU managed concept is used to indicate the language. Please align with a concept from http://publications.europa.eu/resource/authority/language. If no match is found, inform the maintainer of the EU language NAL." ;
        sh:severity sh:Violation
    ], [
		#HealthDCAT-AP
        sh:node :HealthPublisherAgent_ShapeCV ;
        sh:path dct:publisher ;			
		sh:message "A non-EU managed concept is used to indicate the publisher type. Please align with a concept from http://13.81.34.152:1101/resource/authority/publisher-type. If no match is found, inform the maintainer of the EU publisher-type NAL." ;
        sh:severity sh:Violation
    ], [
        sh:node [
            a sh:NodeShape ;
            sh:or (:CountryRestriction
                :PlaceRestriction
                :ContinentRestriction
                :GeoNamesRestriction
            )
        ] ;
        sh:nodeKind sh:IRI ;
        sh:path dct:spatial ;
		#HealthDCAT-AP : modification of the message to be more clear
		sh:message "A non-managed concept is used to indicate a spatial description. Please align with a concept from one of the following sources: https://publications.europa.eu/resource/authority/continent, https://publications.europa.eu/resource/authority/country, https://publications.europa.eu/resource/authority/place, https://sws.geonames.org/. check if a corresponding exists." ;
        sh:severity sh:Warning
    ], [
        sh:node :DataThemeRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dcat:theme ;
		#HealthDCAT-AP : modification of the message to be more clear
		sh:message "A non-EU managed concept is used to indicate the dataset theme. Please align with a concept from http://publications.europa.eu/resource/authority/data-theme If no match is found, inform the maintainer of the EU data-theme NAL." ;
        sh:severity sh:Violation
    ],  [
		#HealthDCAT-AP
        sh:hasValue <http://publications.europa.eu/resource/authority/data-theme/HEAL> ;
        sh:path dcat:theme ;
        sh:minCount 1 ;
        sh:message "Dataset must include theme http://publications.europa.eu/resource/authority/data-theme/HEAL." ;
        sh:severity sh:Violation
    ] , [
        sh:node :DatasetTypeRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dct:type ;
		sh:message "Multiple types can be used but it is recommended to also provide at least one concept of <http://publications.europa.eu/resource/authority/dataset-type> should be present" ;
        sh:severity sh:Warning
	], [
        sh:node :AccessRightRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dct:accessRights ;
		sh:message "A non-EU managed concept is used to indicate the access right. Please align with a concept from http://publications.europa.eu/resource/authority/access-right. If no match is found, inform the maintainer of the EU access rights NAL." ;
        sh:severity sh:Violation
    ], [
        sh:node :HealthCategoryRestriction;
        sh:nodeKind sh:IRI ;
        sh:path healthdcatap:healthCategory ;
	    sh:description "A health Category According to the Article 51 of EHDS regulation." ; 
		sh:message "A non-EU managed concept is used to indicate the health category. Please align with a concept from http://13.81.34.152:1101/resource/authority/healthcategories, based on Article 51 of the EHDS regulation." ;
        sh:severity sh:Violation
    ]
	#To be enabled when the controlled vocabularies are available
	#, [
    #    sh:node :HasCodingSystemRestriction;
    #    sh:nodeKind sh:IRI ;
    #    sh:path healthdcatap:hasCodingSystem ;
	#    sh:message "A non-EU managed concept is used to indicate the coding system. Please align with a concept from http://13.81.34.152:1101/resource/authority/coding-system. If no match is found, inform the vocabulary maintainer." ; 
    #    sh:severity sh:Violation
    #], [       
    #    sh:node :ConformsToRestriction;
    #    sh:nodeKind sh:IRI ;
    #    sh:path dct:conformsTo ;
	#    sh:message "A non-EU managed concept is used to indicate the standard (dct:conformsTo). Please align with a concept from http://13.81.34.152:1101/resource/authority/standard. If no match is found, inform the vocabulary maintainer." ;
    #    sh:severity sh:Violation
    #]
	, [       
        sh:node :HealthThemeRestriction;
        sh:nodeKind sh:IRI ;
        sh:path healthdcatap:healthTheme ;
	    sh:message "A non-EU managed concept is used to indicate the health theme. Please align with a concept from http://13.81.34.152:1101/resource/authority/health-theme. If no match is found, inform the maintainer of the EU health-theme NAL." ;
        sh:severity sh:Violation
    ], [
		 sh:node :HealthActivity_ShapeCV;
         sh:nodeKind sh:BlankNodeOrIRI  ;
         sh:path prov:wasGeneratedBy ;
		 sh:message "A non-EU managed concept is used to indicate the health activity type. Please align with a concept from http://13.81.34.152:1101/resource/authority/health-activity. If no match is found, inform the maintainer of the EU health-activity NAL." ;
         sh:severity sh:Violation    
	]
	;
    sh:targetClass dcat:Dataset.

# ------------------------------------------------------------------------------------------------------------------
# The constraints for dcat:mediaType, dcat:compressFormat, dcat:packageFormat which are limited to the IANA codelist 
# cannot be expressed in SHACL unless a copy in RDF for the IANA codelist is being created
# ------------------------------------------------------------------------------------------------------------------
:Distribution_ShapeCV
    a sh:NodeShape ;
    sh:property [
        sh:node :FileTypeRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dct:format ;
		#HealthDCAT-AP : modification of the message to be more clear
		sh:message "A non-EU managed concept is used to indicate the file format. Please align with a concept from http://publications.europa.eu/resource/authority/file-type. If no match is found, inform the maintainer of the EU file-type NAL." ;
        sh:severity sh:Violation
    ], [
        sh:node :LanguageRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dct:language ;
		#HealthDCAT-AP : modification of the message to be more clear
		sh:message "A non-EU managed concept is used to indicate the language. Please align with a concept from http://publications.europa.eu/resource/authority/language. If no match is found, inform the maintainer of the EU language NAL." ;
        sh:severity sh:Violation
    ], [
        sh:node :StatusRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path adms:status ;
		#HealthDCAT-AP : modification of the message to be more clear
		sh:message "A non-EU managed concept is used to indicate the distribution status. Please align with a concept from http://publications.europa.eu/resource/authority/distribution-status. If no match is found, inform the maintainer of the EU distribution-status NAL." ;
        sh:severity sh:Violation
    ], [
        sh:node :AvailabilityRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dcatap:availability ;
		#HealthDCAT-AP : modification of the message to be more clear
		sh:message "A non-EU managed concept is used to indicate the availability of the distribution. Please align with a concept from http://publications.europa.eu/resource/authority/planned-availability. If no match is found, inform the maintainer of the EU planned-availability NAL." ;
        sh:severity sh:Violation
    ] , [
		#HealthDCAT-AP
        sh:node :IANARestriction;
        sh:nodeKind sh:IRI ;
        sh:path dcat:mediaType ;		
	    sh:message "A non-IANA managed concept is used to indicate the mediaType. Please align with a value from IANA: https://www.iana.org/assignments/media-types/. If no match is found, inform the responsible maintainer." ;
        sh:severity sh:Warning
    ], [
		#HealthDCAT-AP
        sh:node :IANARestriction;
        sh:nodeKind sh:IRI ;
        sh:path dcat:compressFormat ;
	    sh:message "A non-IANA managed concept is used to indicate the compressFormat. Please align with a value from IANA: https://www.iana.org/assignments/media-types/. If no match is found, inform the responsible maintainer." ;
        sh:severity sh:Warning
    ], [
		#HealthDCAT-AP
        sh:node :IANARestriction;
        sh:nodeKind sh:IRI ;
        sh:path dcat:packageFormat ;
	    sh:message "A non-IANA managed concept is used to indicate the packageFormat. Please align with a value from IANA: https://www.iana.org/assignments/media-types/. If no match is found, inform the responsible maintainer." ;
        sh:severity sh:Warning
    ] ;
    sh:targetClass dcat:Distribution.

:DataService_ShapeCV
    a sh:NodeShape ;
	sh:property [
	    sh:node :AccessRightRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dct:accessRights ;
		#HealthDCAT-AP : modification of the message to be more clear
		sh:message "A non-EU managed concept is used to indicate the access right. Please align with a concept from http://publications.europa.eu/resource/authority/access-right. If no match is found, inform the maintainer of the EU access-right NAL." ;
        sh:severity sh:Violation
	] , [
        sh:node :FileTypeRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dct:format ;
		#HealthDCAT-AP : modification of the message to be more clear
		sh:message "A non-EU managed concept is used to indicate the file format. Please align with a concept from http://publications.europa.eu/resource/authority/file-type. If no match is found, inform the maintainer of the EU file-type NAL." ;
        sh:severity sh:Violation
    ]; 
	#HealthDCAT-AP fix: This is an error on DCAT AP , target class must be DataService and not Distribution
	#sh:targetClass dcat:Distribution.
	sh:targetClass dcat:DataService.

:Publisher_ShapeCV
    a sh:NodeShape ;
    sh:property [
        sh:node :PublisherTypeRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dct:type ;
	    sh:description "A non EU managed concept is used to indicate the type of the publisher. If no corresponding can be found inform the maintainer of the adms:publishertype codelist." ; 
        sh:severity sh:Violation
    ] .

#HealthDCAT-AP
:HealthActivity_ShapeCV
    a sh:NodeShape ;
    rdfs:label "Health Activity"@en ;
    sh:property [
        sh:node :HealthActivityRestriction;
        sh:nodeKind sh:IRI ;
        sh:path dct:type ;
		sh:description "A non-EU managed concept is used to indicate the health activity type. Please align with a concept from http://13.81.34.152:1101/resource/authority/health-activity. If no match is found, inform the maintainer of the EU health-activity NAL." ;
        sh:severity sh:Violation
    ] .
	
#To be enabled when the publisher type controlled vocabulary is available
:HealthPublisherAgent_ShapeCV
    a sh:NodeShape ;
    rdfs:label "Health Publisher Agent"@en ;
    sh:property [
        sh:node :HealthPublisherTypeRestriction ;
        sh:nodeKind sh:IRI ;
        sh:path dct:type ;
		sh:description "A non-EU managed concept is used to indicate the publisher type. Please align with a concept from http://13.81.34.152:1101/resource/authority/publisher-type. If no match is found, inform the maintainer of the EU publisher-type NAL." ;
        sh:severity sh:Violation
    ] .
	
	
:TemporalEntity_ShapeCV
    a sh:NodeShape ;
    rdfs:comment "Temporal Entity constraints for opening hours" ;
    rdfs:label "Temporal Entity" ;
    sh:property [
        sh:nodeKind sh:IRI ;
		sh:node :FrequencyRestriction ;
        sh:path cv:frequency ;		
        sh:severity sh:Violation ;
        sh:message "A non-EU managed concept is used to indicate the TemporalEntity frequency. Please align with a concept from http://publications.europa.eu/resource/authority/frequency. If no match is found, inform the maintainer of the EU frequency NAL." ; 
    ] ;
    sh:targetClass time:TemporalEntity .	

		