@prefix gx: <https://registry.lab.gaia-x.eu/development/api/trusted-shape-registry/v1/shapes/jsonld/trustframework#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

gx:ParticipantShape
    a sh:NodeShape ;
    sh:targetClass gx:Participant, gx:LegalParticipant ;
    sh:nodeKind sh:IRI .

# TODO: simplify with https://github.com/zazuko/rdf-validate-shacl/issues/41#issuecomment-745803630

gx:LegalParticipantShape
    a sh:NodeShape ;
    sh:targetClass gx:LegalParticipant ;
    sh:property
        [
            sh:path gx:legalRegistrationNumber ;
            sh:node gx:legalRegistrationNumberShape ;
            sh:minCount 1 ;
        ],
        [
            sh:path gx:parentOrganization ;
            sh:node gx:LegalParticipantShape ;
        ],
        [
            sh:path gx:subOrganization ;
            sh:node gx:LegalParticipantShape ;
        ],
        [
            sh:path gx:headquarterAddress ;
            sh:minCount 1 ;
            sh:node gx:PostalAddressShape ;
        ],
        [
            sh:path gx:legalAddress ;
            sh:minCount 1 ;
            sh:node gx:PostalAddressShape ;
        ] .

gx:legalRegistrationNumberShape
    a sh:NodeShape ;
    sh:targetClass gx:legalRegistrationNumber ;
    sh:message "At least one of taxID, vatID, EUID, EORI or leiCode must be defined." ;
    sh:property
        [
            sh:path gx:taxID ;
            sh:datatype xsd:string ;
            sh:minLength 3 ;
        ] ;
    sh:property
        [
            sh:path gx:EUID ;
            sh:datatype xsd:string ;
            sh:minLength 3 ;
        ] ;
    sh:property
        [
            sh:path gx:EORI ;
            sh:datatype xsd:string ;
            sh:minLength 3 ;
        ] ;
    sh:property
        [
            sh:path gx:vatID ;
            sh:datatype xsd:string ;
            sh:minLength 3 ;
        ] ;
    sh:property
        [
            sh:path gx:leiCode ;
            sh:datatype xsd:string ;
            sh:minLength 3 ;
        ] ;
    sh:or
        (
            [
                sh:path gx:taxID ;
                sh:minCount 1 ;
            ] [
                  sh:path gx:EUID ;
                  sh:minCount 1 ;
              ] [
                    sh:path gx:EORI ;
                    sh:minCount 1 ;
                ] [
                      sh:path gx:vatID ;
                      sh:minCount 1 ;
                  ]
            [
                sh:path gx:leiCode ;
                sh:minCount 1 ;
            ]
        ) .

gx:PostalAddressShape
    a sh:NodeShape ;
    sh:targetClass gx:headquarterAddress, gx:legalAddress ;
    sh:property
        [
            sh:path gx:countrySubdivisionCode ;
            sh:datatype xsd:string ;
            sh:minCount 1 ;
            sh:pattern "^[A-Z]{2}-[A-Z0-9]{1,3}$" ;
            sh:flags "i" ;
            sh:message "an ISO 3166-2 format value is expected." ;
        ] .

gx:GaiaXTermsAndConditionsShape
    a sh:NodeShape ;
    sh:targetClass gx:GaiaXTermsAndConditions ;
    sh:property
        [
            sh:path gx:termsAndConditions ;
            sh:datatype xsd:string ;
            sh:minCount 1 ;
            sh:hasValue '''The PARTICIPANT signing the Self-Description agrees as follows:
- to update its descriptions about any changes, be it technical, organizational, or legal - especially but not limited to contractual in regards to the indicated attributes present in the descriptions.

The keypair used to sign Verifiable Credentials will be revoked where Gaia-X Association becomes aware of any inaccurate statements in regards to the claims which result in a non-compliance with the Trust Framework and policy rules defined in the Policy Rules and Labelling Document (PRLD).''' ;
        ] .

gx:DataAccountExportShape
    a sh:NodeShape ;
    sh:targetClass gx:dataAccountExport ;
    sh:property
        [
            sh:path gx:requestType ;
            sh:datatype xsd:string ;
            sh:name "Request type" ;
            sh:minCount 1 ;
            sh:maxCount 1 ;
            sh:in ( "API" "email" "webform" "unregisteredLetter" "registeredLetter" "supportCenter" )
        ] ;
    sh:property
        [
            sh:path gx:accessType ;
            sh:datatype xsd:string ;
            sh:name "Access type" ;
            sh:minCount 1 ;
            sh:maxCount 1 ;
            sh:description "type of data support: digital, physical." ;
            sh:in ( "digital" "physical" )
        ] ;
    sh:property
        [
            sh:path gx:formatType ;
            sh:datatype xsd:string ;
            sh:name "Format type" ;
            sh:minCount 1 ;
            sh:maxCount 1 ;
            sh:pattern "^\\w+/[-+.\\w]+$" ;
            sh:flags "i" ;
            sh:message "type of Media Types (formerly known as MIME types) as defined by the IANA." ;
        ] .

gx:SOTermsAndConditionsShape
    a sh:NodeShape ;
    sh:targetClass gx:SOTermsAndConditions ;
    sh:property
        [
            sh:path gx:URL ;
            sh:name "URL" ;
            sh:description "a resolvable link to document" ;
            sh:minCount 1 ;
            sh:maxCount 1 ;
            sh:datatype xsd:string
        ] ;
    sh:property
        [
            sh:path gx:hash ;
            sh:name "hash" ;
            sh:minCount 1 ;
            sh:maxCount 1 ;
            sh:description "sha256 hash of the above document." ;
            sh:datatype xsd:string
        ] .

gx:dependsOnExists
    sh:path gx:dependsOn ;
    sh:name "depends on" ;
    sh:description
        "a resolvable link to the service offering self-description related to the service and that can exist independently of it." ;
    sh:minCount 1 ;
    sh:node gx:ServiceOfferingShape ;
    sh:qualifiedValueShape [sh:class gx:ServiceOffering] ;
    sh:qualifiedMinCount 1 ;
.

gx:dependsOnNotExists
    sh:path gx:dependsOn ;  
    sh:name "depends on" ;
    sh:description
        "a resolvable link to the service offering self-description related to the service and that can exist independently of it." ;
    sh:maxCount 0 ;
.

gx:aggregationOfExists
    sh:path gx:aggregationOf ;
    sh:name "aggregation of" ;
    sh:description
        "a resolvable link to the resources self-description related to the service and that can exist independently of it." ;
    sh:minCount 1 ;
    sh:qualifiedValueShape [sh:or
        (
            [ sh:class gx:PhysicalResource ] 
            [ sh:class gx:VirtualResource ] 
            [ sh:class gx:DataResource ]
            [ sh:class gx:SoftwareResource]
        )] ;
    sh:qualifiedMinCount 1 ;
.

gx:aggregationOfNotExists
    sh:path gx:aggregationOf ;  
    sh:name "aggregation of" ;
    sh:description
        "a resolvable link to the resources self-description related to the service and that can exist independently of it." ;
    sh:maxCount 0 ;
.

gx:ServiceOfferingShape
    a sh:NodeShape ;
    sh:targetClass gx:ServiceOffering ;
    sh:property
        [
            sh:path gx:providedBy ;
            sh:name "provided by" ;
            sh:description "a resolvable link to the participant self-description providing the service." ;
            sh:minCount 1 ;
            sh:maxCount 1 ;
            sh:node gx:LegalParticipant
        ] ; # TODO add alternativePath to support all type of Participant
    sh:or ( [ sh:property gx:aggregationOfExists ] [ sh:property gx:aggregationOfNotExists ] ) ;
    sh:or ( [ sh:property gx:dependsOnExists ] [ sh:property gx:dependsOnNotExists ] ) ;
    sh:property
        [
            sh:path gx:termsAndConditions ;
            sh:name "terms & conditions" ;
            sh:minCount 1 ;
            sh:description
                "a resolvable link to the service offering self-description related to the service and that can exist independently of it." ;
            sh:node gx:SOTermsAndConditionsShape
        ] ;
    sh:property
        [
            sh:path gx:policy ;
            sh:name "policy" ;
            sh:minCount 1 ;
            sh:description
                "a list of policy expressed using a DSL (e.g., Rego or ODRL) (access control, throttling, usage, retention, …)." ;
            sh:datatype xsd:string
        ] ;
    sh:property
        [
            sh:path gx:dataProtectionRegime ;
            sh:name "data protection regime" ;
            sh:description "a list of data protection regime" ;
            sh:in ( "GDPR2016" "LGPD2019" "PDPA2012" "CCPA2018" "VCDPA2021" ) ;
            sh:message
                "Refer to https://gaia-x.gitlab.io/policy-rules-committee/trust-framework/service_and_subclasses/#service-offering Personal Data Protection Regimes" ;
            sh:datatype xsd:string
        ] ;
    sh:property
        [
            sh:path gx:dataAccountExport ;
            sh:name "data account export" ;
            sh:minCount 1 ;
            sh:description "list of methods to export data from your user’s account out of the service" ;
            sh:node gx:DataAccountExportShape ;
        ] .


# From SvcWG

gx:PhysicalResource a sh:NodeShape ;
    sh:closed false ;
    sh:description
        "A Physical resource is, but not limited to, a datacenter, a bare-metal service, a warehouse, a plant. Those are entities that have a weight and position in physical space." ;
    sh:name "Physical Resource" ;
    sh:property
        [
            sh:datatype xsd:string ;
            sh:description "A free text description of the entity." ;
            sh:maxCount 1 ;
            sh:name "description" ;
            sh:order 7 ;
            sh:path gx:description
        ],
        [
            sh:class gx:LegalParticipant ;
            sh:description "A list of resolvable links to Gaia-X Credentials of participant manufacturing the resource." ;
            sh:name "manufactured by" ;
            sh:nodeKind sh:IRI ;
            sh:order 2 ;
            sh:path gx:manufacturedBy
        ],
        [
            sh:description
                "A resolvable link of resources related to the resource and that can exist independently of it." ;
            sh:name "aggregation of" ;
            sh:or ( [ sh:class gx:VirtualResource ] [ sh:class gx:PhysicalResource ] ) ;
            sh:order 5 ;
            sh:path gx:aggregationOf
        ],
        [
            sh:class <http://www.w3.org/2006/vcard/ns#Address> ;
            sh:description "A list of physical locations." ;
            sh:minCount 0 ;
            sh:node <http://www.w3.org/2006/vcard/ns#Address> ;
            sh:order 3 ;
            sh:path gx:locationAddress
        ],
        [
            sh:datatype xsd:string ;
            sh:description "a list of physical GPS in ISO 6709:2008/Cor 1:2009 format." ;
            sh:minCount 0 ;
            sh:order 4 ;
            sh:path gx:location
        ],
        [
            sh:class gx:LegalParticipant ;
            sh:description "A list of resolvable links to Gaia-X Credentials of participant owning the resource." ;
            sh:name "owned by" ;
            sh:nodeKind sh:IRI ;
            sh:order 1 ;
            sh:path gx:ownedBy
        ],
        [
            sh:class gx:LegalParticipant ;
            sh:description
                "A list of resolvable links to Gaia-X Credentials of participants maintaining the resource in operational condition and thus having physical access to it." ;
            sh:minCount 1 ;
            sh:name "maintained by" ;
            sh:nodeKind sh:IRI ;
            sh:order 0 ;
            sh:path gx:maintainedBy
        ],
        [
            sh:datatype xsd:string ;
            sh:description "A human readable name of the entity." ;
            sh:maxCount 1 ;
            sh:name "name" ;
            sh:order 6 ;
            sh:path gx:name
        ] ;
    sh:targetClass gx:PhysicalResource .

gx:VirtualResource a sh:NodeShape ;
    sh:closed false ;
    sh:description
        "It represents static data in any form and necessary information such as dataset, configuration file, license, keypair, an AI model, neural network weights, etc." ;
    sh:name "Virtual Resource" ;
    sh:property
        [
            sh:datatype xsd:string ;
            sh:description "A free text description of the entity." ;
            sh:maxCount 1 ;
            sh:name "description" ;
            sh:order 5 ;
            sh:path gx:description
        ],
        [
            sh:datatype xsd:string ;
            sh:description "A human readable name of the entity." ;
            sh:maxCount 1 ;
            sh:name "name" ;
            sh:order 4 ;
            sh:path gx:name
        ],
        [
            sh:datatype xsd:string ;
            sh:description
                "A  list of policy expressed using a DSL (e.g., Rego or ODRL) (access control, throttling, usage, retention, ...). If there is no specified usage policy constraints on the VirtualResource, the  policy should express a simple default: allow intent" ;
            sh:minCount 1 ;
            sh:order 2 ;
            sh:path gx:policy
        ],
        [
            sh:description
                "A resolvable link of resources related to the resource and that can exist independently of it." ;
            sh:name "aggregation of" ;
            sh:or ( [ sh:class gx:VirtualResource ] [ sh:class gx:PhysicalResource ] ) ;
            sh:order 3 ;
            sh:path gx:aggregationOf
        ],
        [
            sh:description "A list of SPDX identifiers or URL to document." ;
            sh:minCount 1 ;
            sh:or
                (
                    [
                        sh:in
                            (
                                "0BSD" "AAL" "Abstyles" "AdaCore-doc" "Adobe-2006" "Adobe-Glyph" "ADSL" "AFL-1.1"
                                "AFL-1.2" "AFL-2.0" "AFL-2.1" "AFL-3.0" "Afmparse" "AGPL-1.0-only" "AGPL-1.0-or-later"
                                "AGPL-3.0-only" "AGPL-3.0-or-later" "Aladdin" "AMDPLPA" "AML" "AMPAS" "ANTLR-PD"
                                "ANTLR-PD-fallback" "Apache-1.0" "Apache-1.1" "Apache-2.0" "APAFML" "APL-1.0" "App-s2p"
                                "APSL-1.0" "APSL-1.1" "APSL-1.2" "APSL-2.0" "Arphic-1999" "Artistic-1.0"
                                "Artistic-1.0-cl8" "Artistic-1.0-Perl" "Artistic-2.0" "ASWF-Digital-Assets-1.0"
                                "ASWF-Digital-Assets-1.1" "Baekmuk" "Bahyph" "Barr" "Beerware" "Bitstream-Charter"
                                "Bitstream-Vera" "BitTorrent-1.0" "BitTorrent-1.1" "blessing" "BlueOak-1.0.0" "Boehm-GC"
                                "Borceux" "Brian-Gladman-3-Clause" "BSD-1-Clause" "BSD-2-Clause" "BSD-2-Clause-Patent"
                                "BSD-2-Clause-Views" "BSD-3-Clause" "BSD-3-Clause-Attribution" "BSD-3-Clause-Clear"
                                "BSD-3-Clause-LBNL" "BSD-3-Clause-Modification" "BSD-3-Clause-No-Military-License"
                                "BSD-3-Clause-No-Nuclear-License" "BSD-3-Clause-No-Nuclear-License-2014"
                                "BSD-3-Clause-No-Nuclear-Warranty" "BSD-3-Clause-Open-MPI" "BSD-4-Clause"
                                "BSD-4-Clause-Shortened" "BSD-4-Clause-UC" "BSD-4.3RENO" "BSD-4.3TAHOE"
                                "BSD-Advertising-Acknowledgement" "BSD-Attribution-HPND-disclaimer" "BSD-Protection"
                                "BSD-Source-Code" "BSL-1.0" "BUSL-1.1" "bzip2-1.0.6" "C-UDA-1.0" "CAL-1.0"
                                "CAL-1.0-Combined-Work-Exception" "Caldera" "CATOSL-1.1" "CC-BY-1.0" "CC-BY-2.0"
                                "CC-BY-2.5" "CC-BY-2.5-AU" "CC-BY-3.0" "CC-BY-3.0-AT" "CC-BY-3.0-DE" "CC-BY-3.0-IGO"
                                "CC-BY-3.0-NL" "CC-BY-3.0-US" "CC-BY-4.0" "CC-BY-NC-1.0" "CC-BY-NC-2.0" "CC-BY-NC-2.5"
                                "CC-BY-NC-3.0" "CC-BY-NC-3.0-DE" "CC-BY-NC-4.0" "CC-BY-NC-ND-1.0" "CC-BY-NC-ND-2.0"
                                "CC-BY-NC-ND-2.5" "CC-BY-NC-ND-3.0" "CC-BY-NC-ND-3.0-DE" "CC-BY-NC-ND-3.0-IGO"
                                "CC-BY-NC-ND-4.0" "CC-BY-NC-SA-1.0" "CC-BY-NC-SA-2.0" "CC-BY-NC-SA-2.0-DE"
                                "CC-BY-NC-SA-2.0-FR" "CC-BY-NC-SA-2.0-UK" "CC-BY-NC-SA-2.5" "CC-BY-NC-SA-3.0"
                                "CC-BY-NC-SA-3.0-DE" "CC-BY-NC-SA-3.0-IGO" "CC-BY-NC-SA-4.0" "CC-BY-ND-1.0"
                                "CC-BY-ND-2.0" "CC-BY-ND-2.5" "CC-BY-ND-3.0" "CC-BY-ND-3.0-DE" "CC-BY-ND-4.0"
                                "CC-BY-SA-1.0" "CC-BY-SA-2.0" "CC-BY-SA-2.0-UK" "CC-BY-SA-2.1-JP" "CC-BY-SA-2.5"
                                "CC-BY-SA-3.0" "CC-BY-SA-3.0-AT" "CC-BY-SA-3.0-DE" "CC-BY-SA-3.0-IGO" "CC-BY-SA-4.0"
                                "CC-PDDC" "CC0-1.0" "CDDL-1.0" "CDDL-1.1" "CDL-1.0" "CDLA-Permissive-1.0"
                                "CDLA-Permissive-2.0" "CDLA-Sharing-1.0" "CECILL-1.0" "CECILL-1.1" "CECILL-2.0"
                                "CECILL-2.1" "CECILL-B" "CECILL-C" "CERN-OHL-1.1" "CERN-OHL-1.2" "CERN-OHL-P-2.0"
                                "CERN-OHL-S-2.0" "CERN-OHL-W-2.0" "CFITSIO" "checkmk" "ClArtistic" "Clips" "CMU-Mach"
                                "CNRI-Jython" "CNRI-Python" "CNRI-Python-GPL-Compatible" "COIL-1.0" "Community-Spec-1.0"
                                "Condor-1.1" "copyleft-next-0.3.0" "copyleft-next-0.3.1" "Cornell-Lossless-JPEG"
                                "CPAL-1.0" "CPL-1.0" "CPOL-1.02" "Crossword" "CrystalStacker" "CUA-OPL-1.0" "Cube"
                                "curl" "D-FSL-1.0" "diffmark" "DL-DE-BY-2.0" "DOC" "Dotseqn" "DRL-1.0" "DSDP" "dtoa"
                                "dvipdfm" "ECL-1.0" "ECL-2.0" "EFL-1.0" "EFL-2.0" "eGenix" "Elastic-2.0" "Entessa"
                                "EPICS" "EPL-1.0" "EPL-2.0" "ErlPL-1.1" "etalab-2.0" "EUDatagrid" "EUPL-1.0" "EUPL-1.1"
                                "EUPL-1.2" "Eurosym" "Fair" "FDK-AAC" "Frameworx-1.0" "FreeBSD-DOC" "FreeImage" "FSFAP"
                                "FSFUL" "FSFULLR" "FSFULLRWD" "FTL" "GD" "GFDL-1.1-invariants-only"
                                "GFDL-1.1-invariants-or-later" "GFDL-1.1-no-invariants-only"
                                "GFDL-1.1-no-invariants-or-later" "GFDL-1.1-only" "GFDL-1.1-or-later"
                                "GFDL-1.2-invariants-only" "GFDL-1.2-invariants-or-later" "GFDL-1.2-no-invariants-only"
                                "GFDL-1.2-no-invariants-or-later" "GFDL-1.2-only" "GFDL-1.2-or-later"
                                "GFDL-1.3-invariants-only" "GFDL-1.3-invariants-or-later" "GFDL-1.3-no-invariants-only"
                                "GFDL-1.3-no-invariants-or-later" "GFDL-1.3-only" "GFDL-1.3-or-later" "Giftware" "GL2PS"
                                "Glide" "Glulxe" "GLWTPL" "gnuplot" "GPL-1.0-only" "GPL-1.0-or-later" "GPL-2.0-only"
                                "GPL-2.0-or-later" "GPL-3.0-only" "GPL-3.0-or-later" "Graphics-Gems" "gSOAP-1.3b"
                                "HaskellReport" "Hippocratic-2.1" "HP-1986" "HPND" "HPND-export-US" "HPND-Markus-Kuhn"
                                "HPND-sell-variant" "HPND-sell-variant-MIT-disclaimer" "HTMLTIDY" "IBM-pibs" "ICU"
                                "IEC-Code-Components-EULA" "IJG" "IJG-short" "ImageMagick" "iMatix" "Imlib2" "Info-ZIP"
                                "Inner-Net-2.0" "Intel" "Intel-ACPI" "Interbase-1.0" "IPA" "IPL-1.0" "ISC" "Jam"
                                "JasPer-2.0" "JPL-image" "JPNIC" "JSON" "Kazlib" "Knuth-CTAN" "LAL-1.2" "LAL-1.3"
                                "Latex2e" "Latex2e-translated-notice" "Leptonica" "LGPL-2.0-only" "LGPL-2.0-or-later"
                                "LGPL-2.1-only" "LGPL-2.1-or-later" "LGPL-3.0-only" "LGPL-3.0-or-later" "LGPLLR"
                                "Libpng" "libpng-2.0" "libselinux-1.0" "libtiff" "libutil-David-Nugent" "LiLiQ-P-1.1"
                                "LiLiQ-R-1.1" "LiLiQ-Rplus-1.1" "Linux-man-pages-1-para" "Linux-man-pages-copyleft"
                                "Linux-man-pages-copyleft-2-para" "Linux-man-pages-copyleft-var" "Linux-OpenIB" "LOOP"
                                "LPL-1.0" "LPL-1.02" "LPPL-1.0" "LPPL-1.1" "LPPL-1.2" "LPPL-1.3a" "LPPL-1.3c"
                                "LZMA-SDK-9.11-to-9.20" "LZMA-SDK-9.22" "MakeIndex" "Martin-Birgmeier" "metamail"
                                "Minpack" "MirOS" "MIT" "MIT-0" "MIT-advertising" "MIT-CMU" "MIT-enna" "MIT-feh"
                                "MIT-Festival" "MIT-Modern-Variant" "MIT-open-group" "MIT-Wu" "MITNFA" "Motosoto"
                                "mpi-permissive" "mpich2" "MPL-1.0" "MPL-1.1" "MPL-2.0" "MPL-2.0-no-copyleft-exception"
                                "mplus" "MS-LPL" "MS-PL" "MS-RL" "MTLL" "MulanPSL-1.0" "MulanPSL-2.0" "Multics" "Mup"
                                "NAIST-2003" "NASA-1.3" "Naumen" "NBPL-1.0" "NCGL-UK-2.0" "NCSA" "Net-SNMP" "NetCDF"
                                "Newsletr" "NGPL" "NICTA-1.0" "NIST-PD" "NIST-PD-fallback" "NIST-Software" "NLOD-1.0"
                                "NLOD-2.0" "NLPL" "Nokia" "NOSL" "Noweb" "NPL-1.0" "NPL-1.1" "NPOSL-3.0" "NRL" "NTP"
                                "NTP-0" "O-UDA-1.0" "OCCT-PL" "OCLC-2.0" "ODbL-1.0" "ODC-By-1.0" "OFFIS" "OFL-1.0"
                                "OFL-1.0-no-RFN" "OFL-1.0-RFN" "OFL-1.1" "OFL-1.1-no-RFN" "OFL-1.1-RFN" "OGC-1.0"
                                "OGDL-Taiwan-1.0" "OGL-Canada-2.0" "OGL-UK-1.0" "OGL-UK-2.0" "OGL-UK-3.0" "OGTSL"
                                "OLDAP-1.1" "OLDAP-1.2" "OLDAP-1.3" "OLDAP-1.4" "OLDAP-2.0" "OLDAP-2.0.1" "OLDAP-2.1"
                                "OLDAP-2.2" "OLDAP-2.2.1" "OLDAP-2.2.2" "OLDAP-2.3" "OLDAP-2.4" "OLDAP-2.5" "OLDAP-2.6"
                                "OLDAP-2.7" "OLDAP-2.8" "OLFL-1.3" "OML" "OpenPBS-2.3" "OpenSSL" "OPL-1.0" "OPL-UK-3.0"
                                "OPUBL-1.0" "OSET-PL-2.1" "OSL-1.0" "OSL-1.1" "OSL-2.0" "OSL-2.1" "OSL-3.0"
                                "Parity-6.0.0" "Parity-7.0.0" "PDDL-1.0" "PHP-3.0" "PHP-3.01" "Plexus"
                                "PolyForm-Noncommercial-1.0.0" "PolyForm-Small-Business-1.0.0" "PostgreSQL" "PSF-2.0"
                                "psfrag" "psutils" "Python-2.0" "Python-2.0.1" "Qhull" "QPL-1.0" "QPL-1.0-INRIA-2004"
                                "Rdisc" "RHeCos-1.1" "RPL-1.1" "RPL-1.5" "RPSL-1.0" "RSA-MD" "RSCPL" "Ruby" "SAX-PD"
                                "Saxpath" "SCEA" "SchemeReport" "Sendmail" "Sendmail-8.23" "SGI-B-1.0" "SGI-B-1.1"
                                "SGI-B-2.0" "SGP4" "SHL-0.5" "SHL-0.51" "SimPL-2.0" "SISSL" "SISSL-1.2" "Sleepycat"
                                "SMLNJ" "SMPPL" "SNIA" "snprintf" "Spencer-86" "Spencer-94" "Spencer-99" "SPL-1.0"
                                "SSH-OpenSSH" "SSH-short" "SSPL-1.0" "SugarCRM-1.1.3" "SunPro" "SWL" "Symlinks"
                                "TAPR-OHL-1.0" "TCL" "TCP-wrappers" "TermReadKey" "TMate" "TORQUE-1.1" "TOSL" "TPDL"
                                "TPL-1.0" "TTWL" "TU-Berlin-1.0" "TU-Berlin-2.0" "UCAR" "UCL-1.0" "Unicode-DFS-2015"
                                "Unicode-DFS-2016" "Unicode-TOU" "UnixCrypt" "Unlicense" "UPL-1.0" "Vim" "VOSTROM"
                                "VSL-1.0" "W3C" "W3C-19980720" "W3C-20150513" "w3m" "Watcom-1.0" "Widget-Workshop"
                                "Wsuipa" "WTFPL" "X11" "X11-distribute-modifications-variant" "Xdebug-1.03" "Xerox"
                                "Xfig" "XFree86-1.1" "xinetd" "xlock" "Xnet" "xpp" "XSkat" "YPL-1.0" "YPL-1.1" "Zed"
                                "Zend-2.0" "Zimbra-1.3" "Zimbra-1.4" "Zlib" "zlib-acknowledgement" "ZPL-1.1" "ZPL-2.0"
                                "ZPL-2.1"
                            )
                    ] [ sh:datatype xsd:string ]
                ) ;
            sh:order 1 ;
            sh:path gx:license
        ],
        [
            sh:description
                "A list of copyright owners either as a free form string or as resolvable link to Gaia-X Credential of participants. A copyright owner is a person or organization that has the right to exploit the resource. Copyright owner does not necessarily refer to the author of the resource, who is a natural person and may differ from copyright owner." ;
            sh:minCount 1 ;
            sh:name "copyright owned by" ;
            sh:or ( [ sh:class gx:LegalParticipant ] [ sh:datatype xsd:string ] ) ;
            sh:order 0 ;
            sh:path gx:copyrightOwnedBy
        ] ;
    sh:targetClass gx:VirtualResource .

gx:SoftwareResource a sh:NodeShape ;
    sh:closed false ;
    sh:description
        "It represents static data in any form and necessary information such as dataset, configuration file, license, keypair, an AI model, neural network weights, etc." ;
    sh:name "Virtual Resource" ;
    sh:property
        [
            sh:datatype xsd:string ;
            sh:description "A free text description of the entity." ;
            sh:maxCount 1 ;
            sh:name "description" ;
            sh:order 5 ;
            sh:path gx:description
        ],
        [
            sh:datatype xsd:string ;
            sh:description "A human readable name of the entity." ;
            sh:maxCount 1 ;
            sh:name "name" ;
            sh:order 4 ;
            sh:path gx:name
        ],
        [
            sh:datatype xsd:string ;
            sh:description
                "A  list of policy expressed using a DSL (e.g., Rego or ODRL) (access control, throttling, usage, retention, ...). If there is no specified usage policy constraints on the VirtualResource, the  policy should express a simple default: allow intent" ;
            sh:minCount 1 ;
            sh:order 2 ;
            sh:path gx:policy
        ],
        [
            sh:description
                "A resolvable link of resources related to the resource and that can exist independently of it." ;
            sh:name "aggregation of" ;
            sh:or ( [ sh:class gx:VirtualResource ] [ sh:class gx:PhysicalResource ] ) ;
            sh:order 3 ;
            sh:path gx:aggregationOf
        ],
        [
            sh:description "A list of SPDX identifiers or URL to document." ;
            sh:minCount 1 ;
            sh:or
                (
                    [
                        sh:in
                            (
                                "0BSD" "AAL" "Abstyles" "AdaCore-doc" "Adobe-2006" "Adobe-Glyph" "ADSL" "AFL-1.1"
                                "AFL-1.2" "AFL-2.0" "AFL-2.1" "AFL-3.0" "Afmparse" "AGPL-1.0-only" "AGPL-1.0-or-later"
                                "AGPL-3.0-only" "AGPL-3.0-or-later" "Aladdin" "AMDPLPA" "AML" "AMPAS" "ANTLR-PD"
                                "ANTLR-PD-fallback" "Apache-1.0" "Apache-1.1" "Apache-2.0" "APAFML" "APL-1.0" "App-s2p"
                                "APSL-1.0" "APSL-1.1" "APSL-1.2" "APSL-2.0" "Arphic-1999" "Artistic-1.0"
                                "Artistic-1.0-cl8" "Artistic-1.0-Perl" "Artistic-2.0" "ASWF-Digital-Assets-1.0"
                                "ASWF-Digital-Assets-1.1" "Baekmuk" "Bahyph" "Barr" "Beerware" "Bitstream-Charter"
                                "Bitstream-Vera" "BitTorrent-1.0" "BitTorrent-1.1" "blessing" "BlueOak-1.0.0" "Boehm-GC"
                                "Borceux" "Brian-Gladman-3-Clause" "BSD-1-Clause" "BSD-2-Clause" "BSD-2-Clause-Patent"
                                "BSD-2-Clause-Views" "BSD-3-Clause" "BSD-3-Clause-Attribution" "BSD-3-Clause-Clear"
                                "BSD-3-Clause-LBNL" "BSD-3-Clause-Modification" "BSD-3-Clause-No-Military-License"
                                "BSD-3-Clause-No-Nuclear-License" "BSD-3-Clause-No-Nuclear-License-2014"
                                "BSD-3-Clause-No-Nuclear-Warranty" "BSD-3-Clause-Open-MPI" "BSD-4-Clause"
                                "BSD-4-Clause-Shortened" "BSD-4-Clause-UC" "BSD-4.3RENO" "BSD-4.3TAHOE"
                                "BSD-Advertising-Acknowledgement" "BSD-Attribution-HPND-disclaimer" "BSD-Protection"
                                "BSD-Source-Code" "BSL-1.0" "BUSL-1.1" "bzip2-1.0.6" "C-UDA-1.0" "CAL-1.0"
                                "CAL-1.0-Combined-Work-Exception" "Caldera" "CATOSL-1.1" "CC-BY-1.0" "CC-BY-2.0"
                                "CC-BY-2.5" "CC-BY-2.5-AU" "CC-BY-3.0" "CC-BY-3.0-AT" "CC-BY-3.0-DE" "CC-BY-3.0-IGO"
                                "CC-BY-3.0-NL" "CC-BY-3.0-US" "CC-BY-4.0" "CC-BY-NC-1.0" "CC-BY-NC-2.0" "CC-BY-NC-2.5"
                                "CC-BY-NC-3.0" "CC-BY-NC-3.0-DE" "CC-BY-NC-4.0" "CC-BY-NC-ND-1.0" "CC-BY-NC-ND-2.0"
                                "CC-BY-NC-ND-2.5" "CC-BY-NC-ND-3.0" "CC-BY-NC-ND-3.0-DE" "CC-BY-NC-ND-3.0-IGO"
                                "CC-BY-NC-ND-4.0" "CC-BY-NC-SA-1.0" "CC-BY-NC-SA-2.0" "CC-BY-NC-SA-2.0-DE"
                                "CC-BY-NC-SA-2.0-FR" "CC-BY-NC-SA-2.0-UK" "CC-BY-NC-SA-2.5" "CC-BY-NC-SA-3.0"
                                "CC-BY-NC-SA-3.0-DE" "CC-BY-NC-SA-3.0-IGO" "CC-BY-NC-SA-4.0" "CC-BY-ND-1.0"
                                "CC-BY-ND-2.0" "CC-BY-ND-2.5" "CC-BY-ND-3.0" "CC-BY-ND-3.0-DE" "CC-BY-ND-4.0"
                                "CC-BY-SA-1.0" "CC-BY-SA-2.0" "CC-BY-SA-2.0-UK" "CC-BY-SA-2.1-JP" "CC-BY-SA-2.5"
                                "CC-BY-SA-3.0" "CC-BY-SA-3.0-AT" "CC-BY-SA-3.0-DE" "CC-BY-SA-3.0-IGO" "CC-BY-SA-4.0"
                                "CC-PDDC" "CC0-1.0" "CDDL-1.0" "CDDL-1.1" "CDL-1.0" "CDLA-Permissive-1.0"
                                "CDLA-Permissive-2.0" "CDLA-Sharing-1.0" "CECILL-1.0" "CECILL-1.1" "CECILL-2.0"
                                "CECILL-2.1" "CECILL-B" "CECILL-C" "CERN-OHL-1.1" "CERN-OHL-1.2" "CERN-OHL-P-2.0"
                                "CERN-OHL-S-2.0" "CERN-OHL-W-2.0" "CFITSIO" "checkmk" "ClArtistic" "Clips" "CMU-Mach"
                                "CNRI-Jython" "CNRI-Python" "CNRI-Python-GPL-Compatible" "COIL-1.0" "Community-Spec-1.0"
                                "Condor-1.1" "copyleft-next-0.3.0" "copyleft-next-0.3.1" "Cornell-Lossless-JPEG"
                                "CPAL-1.0" "CPL-1.0" "CPOL-1.02" "Crossword" "CrystalStacker" "CUA-OPL-1.0" "Cube"
                                "curl" "D-FSL-1.0" "diffmark" "DL-DE-BY-2.0" "DOC" "Dotseqn" "DRL-1.0" "DSDP" "dtoa"
                                "dvipdfm" "ECL-1.0" "ECL-2.0" "EFL-1.0" "EFL-2.0" "eGenix" "Elastic-2.0" "Entessa"
                                "EPICS" "EPL-1.0" "EPL-2.0" "ErlPL-1.1" "etalab-2.0" "EUDatagrid" "EUPL-1.0" "EUPL-1.1"
                                "EUPL-1.2" "Eurosym" "Fair" "FDK-AAC" "Frameworx-1.0" "FreeBSD-DOC" "FreeImage" "FSFAP"
                                "FSFUL" "FSFULLR" "FSFULLRWD" "FTL" "GD" "GFDL-1.1-invariants-only"
                                "GFDL-1.1-invariants-or-later" "GFDL-1.1-no-invariants-only"
                                "GFDL-1.1-no-invariants-or-later" "GFDL-1.1-only" "GFDL-1.1-or-later"
                                "GFDL-1.2-invariants-only" "GFDL-1.2-invariants-or-later" "GFDL-1.2-no-invariants-only"
                                "GFDL-1.2-no-invariants-or-later" "GFDL-1.2-only" "GFDL-1.2-or-later"
                                "GFDL-1.3-invariants-only" "GFDL-1.3-invariants-or-later" "GFDL-1.3-no-invariants-only"
                                "GFDL-1.3-no-invariants-or-later" "GFDL-1.3-only" "GFDL-1.3-or-later" "Giftware" "GL2PS"
                                "Glide" "Glulxe" "GLWTPL" "gnuplot" "GPL-1.0-only" "GPL-1.0-or-later" "GPL-2.0-only"
                                "GPL-2.0-or-later" "GPL-3.0-only" "GPL-3.0-or-later" "Graphics-Gems" "gSOAP-1.3b"
                                "HaskellReport" "Hippocratic-2.1" "HP-1986" "HPND" "HPND-export-US" "HPND-Markus-Kuhn"
                                "HPND-sell-variant" "HPND-sell-variant-MIT-disclaimer" "HTMLTIDY" "IBM-pibs" "ICU"
                                "IEC-Code-Components-EULA" "IJG" "IJG-short" "ImageMagick" "iMatix" "Imlib2" "Info-ZIP"
                                "Inner-Net-2.0" "Intel" "Intel-ACPI" "Interbase-1.0" "IPA" "IPL-1.0" "ISC" "Jam"
                                "JasPer-2.0" "JPL-image" "JPNIC" "JSON" "Kazlib" "Knuth-CTAN" "LAL-1.2" "LAL-1.3"
                                "Latex2e" "Latex2e-translated-notice" "Leptonica" "LGPL-2.0-only" "LGPL-2.0-or-later"
                                "LGPL-2.1-only" "LGPL-2.1-or-later" "LGPL-3.0-only" "LGPL-3.0-or-later" "LGPLLR"
                                "Libpng" "libpng-2.0" "libselinux-1.0" "libtiff" "libutil-David-Nugent" "LiLiQ-P-1.1"
                                "LiLiQ-R-1.1" "LiLiQ-Rplus-1.1" "Linux-man-pages-1-para" "Linux-man-pages-copyleft"
                                "Linux-man-pages-copyleft-2-para" "Linux-man-pages-copyleft-var" "Linux-OpenIB" "LOOP"
                                "LPL-1.0" "LPL-1.02" "LPPL-1.0" "LPPL-1.1" "LPPL-1.2" "LPPL-1.3a" "LPPL-1.3c"
                                "LZMA-SDK-9.11-to-9.20" "LZMA-SDK-9.22" "MakeIndex" "Martin-Birgmeier" "metamail"
                                "Minpack" "MirOS" "MIT" "MIT-0" "MIT-advertising" "MIT-CMU" "MIT-enna" "MIT-feh"
                                "MIT-Festival" "MIT-Modern-Variant" "MIT-open-group" "MIT-Wu" "MITNFA" "Motosoto"
                                "mpi-permissive" "mpich2" "MPL-1.0" "MPL-1.1" "MPL-2.0" "MPL-2.0-no-copyleft-exception"
                                "mplus" "MS-LPL" "MS-PL" "MS-RL" "MTLL" "MulanPSL-1.0" "MulanPSL-2.0" "Multics" "Mup"
                                "NAIST-2003" "NASA-1.3" "Naumen" "NBPL-1.0" "NCGL-UK-2.0" "NCSA" "Net-SNMP" "NetCDF"
                                "Newsletr" "NGPL" "NICTA-1.0" "NIST-PD" "NIST-PD-fallback" "NIST-Software" "NLOD-1.0"
                                "NLOD-2.0" "NLPL" "Nokia" "NOSL" "Noweb" "NPL-1.0" "NPL-1.1" "NPOSL-3.0" "NRL" "NTP"
                                "NTP-0" "O-UDA-1.0" "OCCT-PL" "OCLC-2.0" "ODbL-1.0" "ODC-By-1.0" "OFFIS" "OFL-1.0"
                                "OFL-1.0-no-RFN" "OFL-1.0-RFN" "OFL-1.1" "OFL-1.1-no-RFN" "OFL-1.1-RFN" "OGC-1.0"
                                "OGDL-Taiwan-1.0" "OGL-Canada-2.0" "OGL-UK-1.0" "OGL-UK-2.0" "OGL-UK-3.0" "OGTSL"
                                "OLDAP-1.1" "OLDAP-1.2" "OLDAP-1.3" "OLDAP-1.4" "OLDAP-2.0" "OLDAP-2.0.1" "OLDAP-2.1"
                                "OLDAP-2.2" "OLDAP-2.2.1" "OLDAP-2.2.2" "OLDAP-2.3" "OLDAP-2.4" "OLDAP-2.5" "OLDAP-2.6"
                                "OLDAP-2.7" "OLDAP-2.8" "OLFL-1.3" "OML" "OpenPBS-2.3" "OpenSSL" "OPL-1.0" "OPL-UK-3.0"
                                "OPUBL-1.0" "OSET-PL-2.1" "OSL-1.0" "OSL-1.1" "OSL-2.0" "OSL-2.1" "OSL-3.0"
                                "Parity-6.0.0" "Parity-7.0.0" "PDDL-1.0" "PHP-3.0" "PHP-3.01" "Plexus"
                                "PolyForm-Noncommercial-1.0.0" "PolyForm-Small-Business-1.0.0" "PostgreSQL" "PSF-2.0"
                                "psfrag" "psutils" "Python-2.0" "Python-2.0.1" "Qhull" "QPL-1.0" "QPL-1.0-INRIA-2004"
                                "Rdisc" "RHeCos-1.1" "RPL-1.1" "RPL-1.5" "RPSL-1.0" "RSA-MD" "RSCPL" "Ruby" "SAX-PD"
                                "Saxpath" "SCEA" "SchemeReport" "Sendmail" "Sendmail-8.23" "SGI-B-1.0" "SGI-B-1.1"
                                "SGI-B-2.0" "SGP4" "SHL-0.5" "SHL-0.51" "SimPL-2.0" "SISSL" "SISSL-1.2" "Sleepycat"
                                "SMLNJ" "SMPPL" "SNIA" "snprintf" "Spencer-86" "Spencer-94" "Spencer-99" "SPL-1.0"
                                "SSH-OpenSSH" "SSH-short" "SSPL-1.0" "SugarCRM-1.1.3" "SunPro" "SWL" "Symlinks"
                                "TAPR-OHL-1.0" "TCL" "TCP-wrappers" "TermReadKey" "TMate" "TORQUE-1.1" "TOSL" "TPDL"
                                "TPL-1.0" "TTWL" "TU-Berlin-1.0" "TU-Berlin-2.0" "UCAR" "UCL-1.0" "Unicode-DFS-2015"
                                "Unicode-DFS-2016" "Unicode-TOU" "UnixCrypt" "Unlicense" "UPL-1.0" "Vim" "VOSTROM"
                                "VSL-1.0" "W3C" "W3C-19980720" "W3C-20150513" "w3m" "Watcom-1.0" "Widget-Workshop"
                                "Wsuipa" "WTFPL" "X11" "X11-distribute-modifications-variant" "Xdebug-1.03" "Xerox"
                                "Xfig" "XFree86-1.1" "xinetd" "xlock" "Xnet" "xpp" "XSkat" "YPL-1.0" "YPL-1.1" "Zed"
                                "Zend-2.0" "Zimbra-1.3" "Zimbra-1.4" "Zlib" "zlib-acknowledgement" "ZPL-1.1" "ZPL-2.0"
                                "ZPL-2.1"
                            )
                    ] [ sh:datatype xsd:string ]
                ) ;
            sh:order 1 ;
            sh:path gx:license
        ],
        [
            sh:description
                "A list of copyright owners either as a free form string or as resolvable link to Gaia-X Credential of participants. A copyright owner is a person or organization that has the right to exploit the resource. Copyright owner does not necessarily refer to the author of the resource, who is a natural person and may differ from copyright owner." ;
            sh:minCount 1 ;
            sh:name "copyright owned by" ;
            sh:or ( [ sh:class gx:LegalParticipant ] [ sh:datatype xsd:string ] ) ;
            sh:order 0 ;
            sh:path gx:copyrightOwnedBy
        ] ;
    sh:targetClass gx:SoftwareResource .

gx:InstantiatedVirtualResource a sh:NodeShape ;
    sh:closed false ;
    sh:description
        "An Instantiated Virtual Resource is an instance from a Virtual Resource, and is a running resource exposing endpoints such as, and not limited to, a running process, an online API, a network connection, a virtual machine, a container, an operating system. " ;
    sh:name "Instantiated Virtual Resource" ;
    sh:property
        [
            sh:class gx:LegalParticipant ;
            sh:description
                "A list of participant maintaining the resource in operational condition." ;
            sh:minCount 1 ;
            sh:name "maintained by" ;
            sh:nodeKind sh:IRI ;
            sh:order 0 ;
            sh:path gx:maintainedBy
        ],
        [
            sh:description
                "A resource where the process is located (physical server, datacenter, availability zone, …)." ;
            sh:minCount 1 ;
            sh:maxCount 1 ;
            sh:name "hosted on" ;
            sh:or ( [ sh:class gx:VirtualResource ] [ sh:class gx:PhysicalResource ] [ sh:class gx:DataResource ] [ sh:class gx:SoftwareResource ]) ;
            sh:order 1 ;
            sh:path gx:hostedOn
        ],
        [
            sh:description
                "A virtual resource (normally a software resource) this process is an instance of." ;
            sh:minCount 1 ;
            sh:maxCount 1 ;
            sh:name "instance of" ;
            sh:or ( [ sh:class gx:VirtualResource ] [ sh:class gx:DataResource ] [ sh:class gx:SoftwareResource ]) ;
            sh:order 2 ;
            sh:path gx:instanceOf
        ],
        [
            sh:class gx:LegalParticipant ;
            sh:description
                "A list of participant with contractual relation with the resource." ;
            sh:name "tenant owned by" ;
            sh:nodeKind sh:IRI ;
            sh:order 3 ;
            sh:path gx:tenantOwnedBy
        ],
        [
            sh:class gx:ServiceAccessPoint ;
            sh:description
                "A list of Service Access Point which can be an endpoint as a mean to access and interact with the resource." ;
            sh:minCount 1 ;
            sh:name "service access point" ;
            sh:nodeKind sh:IRI ;
            sh:order 4 ;
            sh:path gx:serviceAccessPoint
        ];
    sh:targetClass gx:InstantiatedVirtualResource .

gx:ServiceAccessPoint a sh:NodeShape ;
    sh:closed false ;
    sh:description
        "A service access point is an identifying label for network endpoints used in the OSI model. The format below doesn’t represent all possible service access point types." ;
    sh:name "Service Access Point" ;
    sh:property
        [
            sh:path gx:name ;
            sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:order 0 ;

        ],
        [
            sh:path gx:host ;
            sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:order 1 ;
        ],
        [
            sh:path gx:protocol ;
            sh:datatype xsd:string ;
            sh:order 2 ;
        ],
        [
            sh:path gx:version ;
            sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:order 3 ;
        ],
        [
            sh:path gx:port ;
            sh:datatype xsd:string ;
            sh:order 4 ;
        ],
        [
            sh:path gx:openAPI ;
            sh:datatype xsd:string ;
            sh:order 5 ;
        ] ;
    sh:targetClass gx:ServiceAccessPoint .

gx:DataResource a sh:NodeShape ;
    sh:closed false ;
    sh:description
        "A data resource is extending the DCAT-3 Dataset class and primarily refers to an analytical dataset exposed via one or more InstantiatedVirtualResource service access points." ;
    sh:name "Data Resource" ;
    sh:property
        [
            sh:datatype xsd:string ;
            sh:description "A free text description of the entity." ;
            sh:maxCount 1 ;
            sh:name "description" ;
            sh:order 5 ;
            sh:path gx:description
        ],
        [
            sh:datatype xsd:string ;
            sh:description "A human readable name of the entity." ;
            sh:maxCount 1 ;
            sh:name "name" ;
            sh:order 4 ;
            sh:path gx:name
        ],
        [
            sh:datatype xsd:string ;
            sh:description
                "A  list of policy expressed using a DSL (e.g., Rego or ODRL) (access control, throttling, usage, retention, ...). If there is no specified usage policy constraints on the VirtualResource, the  policy should express a simple default: allow intent" ;
            sh:minCount 1 ;
            sh:order 2 ;
            sh:path gx:policy
        ],
        [
            sh:description
                "A resolvable link of resources related to the resource and that can exist independently of it." ;
            sh:name "aggregation of" ;
            sh:or ( [ sh:class gx:VirtualResource ] [ sh:class gx:PhysicalResource ] [sh:class gx:DataResource] ) ;
            sh:order 3 ;
            sh:path gx:aggregationOf
        ],
        [
            sh:description "A list of SPDX identifiers or URL to document." ;
            sh:minCount 1 ;
            sh:or
                (
                    [
                        sh:in
                            (
                                "0BSD" "AAL" "Abstyles" "AdaCore-doc" "Adobe-2006" "Adobe-Glyph" "ADSL" "AFL-1.1"
                                "AFL-1.2" "AFL-2.0" "AFL-2.1" "AFL-3.0" "Afmparse" "AGPL-1.0-only" "AGPL-1.0-or-later"
                                "AGPL-3.0-only" "AGPL-3.0-or-later" "Aladdin" "AMDPLPA" "AML" "AMPAS" "ANTLR-PD"
                                "ANTLR-PD-fallback" "Apache-1.0" "Apache-1.1" "Apache-2.0" "APAFML" "APL-1.0" "App-s2p"
                                "APSL-1.0" "APSL-1.1" "APSL-1.2" "APSL-2.0" "Arphic-1999" "Artistic-1.0"
                                "Artistic-1.0-cl8" "Artistic-1.0-Perl" "Artistic-2.0" "ASWF-Digital-Assets-1.0"
                                "ASWF-Digital-Assets-1.1" "Baekmuk" "Bahyph" "Barr" "Beerware" "Bitstream-Charter"
                                "Bitstream-Vera" "BitTorrent-1.0" "BitTorrent-1.1" "blessing" "BlueOak-1.0.0" "Boehm-GC"
                                "Borceux" "Brian-Gladman-3-Clause" "BSD-1-Clause" "BSD-2-Clause" "BSD-2-Clause-Patent"
                                "BSD-2-Clause-Views" "BSD-3-Clause" "BSD-3-Clause-Attribution" "BSD-3-Clause-Clear"
                                "BSD-3-Clause-LBNL" "BSD-3-Clause-Modification" "BSD-3-Clause-No-Military-License"
                                "BSD-3-Clause-No-Nuclear-License" "BSD-3-Clause-No-Nuclear-License-2014"
                                "BSD-3-Clause-No-Nuclear-Warranty" "BSD-3-Clause-Open-MPI" "BSD-4-Clause"
                                "BSD-4-Clause-Shortened" "BSD-4-Clause-UC" "BSD-4.3RENO" "BSD-4.3TAHOE"
                                "BSD-Advertising-Acknowledgement" "BSD-Attribution-HPND-disclaimer" "BSD-Protection"
                                "BSD-Source-Code" "BSL-1.0" "BUSL-1.1" "bzip2-1.0.6" "C-UDA-1.0" "CAL-1.0"
                                "CAL-1.0-Combined-Work-Exception" "Caldera" "CATOSL-1.1" "CC-BY-1.0" "CC-BY-2.0"
                                "CC-BY-2.5" "CC-BY-2.5-AU" "CC-BY-3.0" "CC-BY-3.0-AT" "CC-BY-3.0-DE" "CC-BY-3.0-IGO"
                                "CC-BY-3.0-NL" "CC-BY-3.0-US" "CC-BY-4.0" "CC-BY-NC-1.0" "CC-BY-NC-2.0" "CC-BY-NC-2.5"
                                "CC-BY-NC-3.0" "CC-BY-NC-3.0-DE" "CC-BY-NC-4.0" "CC-BY-NC-ND-1.0" "CC-BY-NC-ND-2.0"
                                "CC-BY-NC-ND-2.5" "CC-BY-NC-ND-3.0" "CC-BY-NC-ND-3.0-DE" "CC-BY-NC-ND-3.0-IGO"
                                "CC-BY-NC-ND-4.0" "CC-BY-NC-SA-1.0" "CC-BY-NC-SA-2.0" "CC-BY-NC-SA-2.0-DE"
                                "CC-BY-NC-SA-2.0-FR" "CC-BY-NC-SA-2.0-UK" "CC-BY-NC-SA-2.5" "CC-BY-NC-SA-3.0"
                                "CC-BY-NC-SA-3.0-DE" "CC-BY-NC-SA-3.0-IGO" "CC-BY-NC-SA-4.0" "CC-BY-ND-1.0"
                                "CC-BY-ND-2.0" "CC-BY-ND-2.5" "CC-BY-ND-3.0" "CC-BY-ND-3.0-DE" "CC-BY-ND-4.0"
                                "CC-BY-SA-1.0" "CC-BY-SA-2.0" "CC-BY-SA-2.0-UK" "CC-BY-SA-2.1-JP" "CC-BY-SA-2.5"
                                "CC-BY-SA-3.0" "CC-BY-SA-3.0-AT" "CC-BY-SA-3.0-DE" "CC-BY-SA-3.0-IGO" "CC-BY-SA-4.0"
                                "CC-PDDC" "CC0-1.0" "CDDL-1.0" "CDDL-1.1" "CDL-1.0" "CDLA-Permissive-1.0"
                                "CDLA-Permissive-2.0" "CDLA-Sharing-1.0" "CECILL-1.0" "CECILL-1.1" "CECILL-2.0"
                                "CECILL-2.1" "CECILL-B" "CECILL-C" "CERN-OHL-1.1" "CERN-OHL-1.2" "CERN-OHL-P-2.0"
                                "CERN-OHL-S-2.0" "CERN-OHL-W-2.0" "CFITSIO" "checkmk" "ClArtistic" "Clips" "CMU-Mach"
                                "CNRI-Jython" "CNRI-Python" "CNRI-Python-GPL-Compatible" "COIL-1.0" "Community-Spec-1.0"
                                "Condor-1.1" "copyleft-next-0.3.0" "copyleft-next-0.3.1" "Cornell-Lossless-JPEG"
                                "CPAL-1.0" "CPL-1.0" "CPOL-1.02" "Crossword" "CrystalStacker" "CUA-OPL-1.0" "Cube"
                                "curl" "D-FSL-1.0" "diffmark" "DL-DE-BY-2.0" "DOC" "Dotseqn" "DRL-1.0" "DSDP" "dtoa"
                                "dvipdfm" "ECL-1.0" "ECL-2.0" "EFL-1.0" "EFL-2.0" "eGenix" "Elastic-2.0" "Entessa"
                                "EPICS" "EPL-1.0" "EPL-2.0" "ErlPL-1.1" "etalab-2.0" "EUDatagrid" "EUPL-1.0" "EUPL-1.1"
                                "EUPL-1.2" "Eurosym" "Fair" "FDK-AAC" "Frameworx-1.0" "FreeBSD-DOC" "FreeImage" "FSFAP"
                                "FSFUL" "FSFULLR" "FSFULLRWD" "FTL" "GD" "GFDL-1.1-invariants-only"
                                "GFDL-1.1-invariants-or-later" "GFDL-1.1-no-invariants-only"
                                "GFDL-1.1-no-invariants-or-later" "GFDL-1.1-only" "GFDL-1.1-or-later"
                                "GFDL-1.2-invariants-only" "GFDL-1.2-invariants-or-later" "GFDL-1.2-no-invariants-only"
                                "GFDL-1.2-no-invariants-or-later" "GFDL-1.2-only" "GFDL-1.2-or-later"
                                "GFDL-1.3-invariants-only" "GFDL-1.3-invariants-or-later" "GFDL-1.3-no-invariants-only"
                                "GFDL-1.3-no-invariants-or-later" "GFDL-1.3-only" "GFDL-1.3-or-later" "Giftware" "GL2PS"
                                "Glide" "Glulxe" "GLWTPL" "gnuplot" "GPL-1.0-only" "GPL-1.0-or-later" "GPL-2.0-only"
                                "GPL-2.0-or-later" "GPL-3.0-only" "GPL-3.0-or-later" "Graphics-Gems" "gSOAP-1.3b"
                                "HaskellReport" "Hippocratic-2.1" "HP-1986" "HPND" "HPND-export-US" "HPND-Markus-Kuhn"
                                "HPND-sell-variant" "HPND-sell-variant-MIT-disclaimer" "HTMLTIDY" "IBM-pibs" "ICU"
                                "IEC-Code-Components-EULA" "IJG" "IJG-short" "ImageMagick" "iMatix" "Imlib2" "Info-ZIP"
                                "Inner-Net-2.0" "Intel" "Intel-ACPI" "Interbase-1.0" "IPA" "IPL-1.0" "ISC" "Jam"
                                "JasPer-2.0" "JPL-image" "JPNIC" "JSON" "Kazlib" "Knuth-CTAN" "LAL-1.2" "LAL-1.3"
                                "Latex2e" "Latex2e-translated-notice" "Leptonica" "LGPL-2.0-only" "LGPL-2.0-or-later"
                                "LGPL-2.1-only" "LGPL-2.1-or-later" "LGPL-3.0-only" "LGPL-3.0-or-later" "LGPLLR"
                                "Libpng" "libpng-2.0" "libselinux-1.0" "libtiff" "libutil-David-Nugent" "LiLiQ-P-1.1"
                                "LiLiQ-R-1.1" "LiLiQ-Rplus-1.1" "Linux-man-pages-1-para" "Linux-man-pages-copyleft"
                                "Linux-man-pages-copyleft-2-para" "Linux-man-pages-copyleft-var" "Linux-OpenIB" "LOOP"
                                "LPL-1.0" "LPL-1.02" "LPPL-1.0" "LPPL-1.1" "LPPL-1.2" "LPPL-1.3a" "LPPL-1.3c"
                                "LZMA-SDK-9.11-to-9.20" "LZMA-SDK-9.22" "MakeIndex" "Martin-Birgmeier" "metamail"
                                "Minpack" "MirOS" "MIT" "MIT-0" "MIT-advertising" "MIT-CMU" "MIT-enna" "MIT-feh"
                                "MIT-Festival" "MIT-Modern-Variant" "MIT-open-group" "MIT-Wu" "MITNFA" "Motosoto"
                                "mpi-permissive" "mpich2" "MPL-1.0" "MPL-1.1" "MPL-2.0" "MPL-2.0-no-copyleft-exception"
                                "mplus" "MS-LPL" "MS-PL" "MS-RL" "MTLL" "MulanPSL-1.0" "MulanPSL-2.0" "Multics" "Mup"
                                "NAIST-2003" "NASA-1.3" "Naumen" "NBPL-1.0" "NCGL-UK-2.0" "NCSA" "Net-SNMP" "NetCDF"
                                "Newsletr" "NGPL" "NICTA-1.0" "NIST-PD" "NIST-PD-fallback" "NIST-Software" "NLOD-1.0"
                                "NLOD-2.0" "NLPL" "Nokia" "NOSL" "Noweb" "NPL-1.0" "NPL-1.1" "NPOSL-3.0" "NRL" "NTP"
                                "NTP-0" "O-UDA-1.0" "OCCT-PL" "OCLC-2.0" "ODbL-1.0" "ODC-By-1.0" "OFFIS" "OFL-1.0"
                                "OFL-1.0-no-RFN" "OFL-1.0-RFN" "OFL-1.1" "OFL-1.1-no-RFN" "OFL-1.1-RFN" "OGC-1.0"
                                "OGDL-Taiwan-1.0" "OGL-Canada-2.0" "OGL-UK-1.0" "OGL-UK-2.0" "OGL-UK-3.0" "OGTSL"
                                "OLDAP-1.1" "OLDAP-1.2" "OLDAP-1.3" "OLDAP-1.4" "OLDAP-2.0" "OLDAP-2.0.1" "OLDAP-2.1"
                                "OLDAP-2.2" "OLDAP-2.2.1" "OLDAP-2.2.2" "OLDAP-2.3" "OLDAP-2.4" "OLDAP-2.5" "OLDAP-2.6"
                                "OLDAP-2.7" "OLDAP-2.8" "OLFL-1.3" "OML" "OpenPBS-2.3" "OpenSSL" "OPL-1.0" "OPL-UK-3.0"
                                "OPUBL-1.0" "OSET-PL-2.1" "OSL-1.0" "OSL-1.1" "OSL-2.0" "OSL-2.1" "OSL-3.0"
                                "Parity-6.0.0" "Parity-7.0.0" "PDDL-1.0" "PHP-3.0" "PHP-3.01" "Plexus"
                                "PolyForm-Noncommercial-1.0.0" "PolyForm-Small-Business-1.0.0" "PostgreSQL" "PSF-2.0"
                                "psfrag" "psutils" "Python-2.0" "Python-2.0.1" "Qhull" "QPL-1.0" "QPL-1.0-INRIA-2004"
                                "Rdisc" "RHeCos-1.1" "RPL-1.1" "RPL-1.5" "RPSL-1.0" "RSA-MD" "RSCPL" "Ruby" "SAX-PD"
                                "Saxpath" "SCEA" "SchemeReport" "Sendmail" "Sendmail-8.23" "SGI-B-1.0" "SGI-B-1.1"
                                "SGI-B-2.0" "SGP4" "SHL-0.5" "SHL-0.51" "SimPL-2.0" "SISSL" "SISSL-1.2" "Sleepycat"
                                "SMLNJ" "SMPPL" "SNIA" "snprintf" "Spencer-86" "Spencer-94" "Spencer-99" "SPL-1.0"
                                "SSH-OpenSSH" "SSH-short" "SSPL-1.0" "SugarCRM-1.1.3" "SunPro" "SWL" "Symlinks"
                                "TAPR-OHL-1.0" "TCL" "TCP-wrappers" "TermReadKey" "TMate" "TORQUE-1.1" "TOSL" "TPDL"
                                "TPL-1.0" "TTWL" "TU-Berlin-1.0" "TU-Berlin-2.0" "UCAR" "UCL-1.0" "Unicode-DFS-2015"
                                "Unicode-DFS-2016" "Unicode-TOU" "UnixCrypt" "Unlicense" "UPL-1.0" "Vim" "VOSTROM"
                                "VSL-1.0" "W3C" "W3C-19980720" "W3C-20150513" "w3m" "Watcom-1.0" "Widget-Workshop"
                                "Wsuipa" "WTFPL" "X11" "X11-distribute-modifications-variant" "Xdebug-1.03" "Xerox"
                                "Xfig" "XFree86-1.1" "xinetd" "xlock" "Xnet" "xpp" "XSkat" "YPL-1.0" "YPL-1.1" "Zed"
                                "Zend-2.0" "Zimbra-1.3" "Zimbra-1.4" "Zlib" "zlib-acknowledgement" "ZPL-1.1" "ZPL-2.0"
                                "ZPL-2.1"
                            )
                    ] [ sh:datatype xsd:string ]
                ) ;
            sh:order 1 ;
            sh:path gx:license
        ],
        [
            sh:description
                "A list of copyright owners either as a free form string or as resolvable link to Gaia-X Credential of participants. A copyright owner is a person or organization that has the right to exploit the resource. Copyright owner does not necessarily refer to the author of the resource, who is a natural person and may differ from copyright owner." ;
            sh:minCount 1 ;
            sh:name "copyright owned by" ;
            sh:or ( [ sh:class gx:LegalParticipant ] [ sh:datatype xsd:string ] ) ;
            sh:order 0 ;
            sh:path gx:copyrightOwnedBy
        ],
        [
            sh:class gx:LegalParticipant ;
            sh:description "a resolvable link to the participant self-description legally enabling the data usage." ;
            sh:name "produced by" ;
            sh:nodeKind sh:IRI ;
            sh:minCount 1;
            sh:maxCount 1;
            sh:order 2 ;
            sh:path gx:producedBy
        ],
        [
            sh:class gx:ServiceOffering ;
            sh:description "A resolvable link to the data exchange component that exposes the data resource." ;
            sh:minCount 1 ;
            sh:name "exposed through" ;
            sh:nodeKind sh:IRI ;
            sh:path gx:exposedThrough
        ],
        [
            sh:datatype xsd:dateTime ;
            sh:description "date time in ISO 8601 format after which data is obsolete." ;
            sh:name "obsolete date time" ;
            sh:minCount 0 ;
            sh:maxCount 1 ;
            sh:path gx:obsoleteDateTime
        ],
        [
            sh:datatype xsd:dateTime ;
            sh:description "date time in ISO 8601 format after which data is expired and shall be deleted." ;
            sh:name "expiration date time" ;
            sh:minCount 0 ;
            sh:maxCount 1 ;
            sh:path gx:expirationDateTime
        ],
        [
            sh:datatype xsd:boolean ;
            sh:description "Whether the service contains Personal Identifiable Informations." ;
            sh:name "contains PII" ;
            sh:minCount 1 ;
            sh:maxCount 1 ;
            sh:path gx:containsPII
        ] ;
    sh:targetClass gx:DataResource .

<http://www.w3.org/2006/vcard/ns#Address> a sh:NodeShape ;
    sh:closed false ;
    sh:description "Full address of the entity." ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property
        [
            sh:datatype xsd:string ;
            sh:description "String of a street-address" ;
            sh:maxCount 1 ;
            sh:order 3 ;
            sh:path <http://www.w3.org/2006/vcard/ns#postal-code>
        ],
        [
            sh:datatype xsd:string ;
            sh:description "the street address of a postal address" ;
            sh:maxCount 1 ;
            sh:order 2 ;
            sh:path <http://www.w3.org/2006/vcard/ns#street-address>
        ],
        [
            sh:description "Country code in ISO 3166-1 alpha2, alpha-3 or numeric format." ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:or
                (
                    [
                        sh:in
                            (
                                "AF" "EG" "AX" "AL" "DZ" "VI" "UM" "AS" "AD" "AO" "AI" "AQ" "AG" "GQ" "SY" "AR" "AM"
                                "AW" "AZ" "ET" "AU" "BS" "BH" "BD" "BB" "BE" "BZ" "BJ" "BM" "BT" "VE" "BQ" "BA" "BW"
                                "BV" "BR" "VG" "IO" "BN" "BG" "BF" "BI" "CV" "CL" "CN" "CK" "CR" "CI" "CW" "DK" "CD"
                                "KP" "LA" "DE" "DM" "DO" "DJ" "EC" "MK" "SV" "ER" "EE" "FK" "FO" "FJ" "FI" "FM" "FR"
                                "TF" "GF" "PF" "GA" "GM" "GE" "GH" "GI" "GD" "GR" "GL" "GP" "GU" "GT" "GG" "GN" "GW"
                                "GY" "HT" "HM" "HN" "HK" "IN" "ID" "IM" "IQ" "IE" "IR" "IS" "IL" "IT" "JM" "JP" "YE"
                                "JE" "JO" "KY" "KH" "CM" "CA" "KZ" "QA" "KE" "KG" "KI" "CC" "CO" "KM" "CG" "HR" "CU"
                                "KW" "LS" "LV" "LB" "LR" "LY" "LI" "LT" "LU" "MO" "MG" "MW" "MY" "MV" "ML" "MT" "MP"
                                "MA" "MH" "MQ" "MR" "MU" "YT" "MX" "MC" "MN" "MS" "ME" "MZ" "MM" "NA" "NR" "NP" "NC"
                                "NZ" "NI" "NL" "NE" "NG" "NU" "NF" "False" "OM" "AT" "PK" "PW" "PS" "PA" "PG" "PY" "PE"
                                "PH" "PN" "BO" "PL" "PT" "PR" "KR" "MD" "RE" "RW" "RO" "RU" "SB" "ZM" "WS" "SM" "ST"
                                "SA" "SE" "CH" "SN" "RS" "SC" "SL" "ZW" "SG" "SK" "SI" "SO" "ES" "LK" "BL" "SH" "KN"
                                "LC" "MF" "SX" "PM" "VC" "ZA" "SD" "GS" "SS" "SR" "SJ" "SZ" "TJ" "TW" "TH" "TL" "TG"
                                "TK" "TO" "TT" "TD" "CZ" "TN" "TR" "TM" "TC" "TV" "UG" "UA" "HU" "UY" "UZ" "VU" "VA"
                                "AE" "TZ" "US" "GB" "VN" "WF" "CX" "BY" "EH" "CF" "CY"
                            )
                    ] [
                          sh:in
                              (
                                  "AFG" "ALA" "ALB" "DZA" "ASM" "AND" "AGO" "AIA" "ATA" "ATG" "ARG" "ARM" "ABW" "AUS"
                                  "AUT" "AZE" "BHS" "BHR" "BGD" "BRB" "BLR" "BEL" "BLZ" "BEN" "BMU" "BTN" "BOL" "BES"
                                  "BIH" "BWA" "BVT" "BRA" "IOT" "BRN" "BGR" "BFA" "BDI" "KHM" "CMR" "CAN" "CPV" "CYM"
                                  "CAF" "TCD" "CHL" "CHN" "CXR" "CCK" "COL" "COM" "COG" "COD" "COK" "CRI" "CIV" "HRV"
                                  "CUB" "CUW" "CYP" "CZE" "DNK" "DJI" "DMA" "DOM" "ECU" "EGY" "SLV" "GNQ" "ERI" "EST"
                                  "ETH" "FLK" "FRO" "FJI" "FIN" "FRA" "GUF" "PYF" "ATF" "GAB" "GMB" "GEO" "DEU" "GHA"
                                  "GIB" "GRC" "GRL" "GRD" "GLP" "GUM" "GTM" "GGY" "GIN" "GNB" "GUY" "HTI" "HMD" "VAT"
                                  "HND" "HKG" "HUN" "ISL" "IND" "IDN" "IRN" "IRQ" "IRL" "IMN" "ISR" "ITA" "JAM" "JPN"
                                  "JEY" "JOR" "KAZ" "KEN" "KIR" "PRK" "KOR" "XKX" "KWT" "KGZ" "LAO" "LVA" "LBN" "LSO"
                                  "LBR" "LBY" "LIE" "LTU" "LUX" "MAC" "MKD" "MDG" "MWI" "MYS" "MDV" "MLI" "MLT" "MHL"
                                  "MTQ" "MRT" "MUS" "MYT" "MEX" "FSM" "MDA" "MCO" "MNG" "MNE" "MSR" "MAR" "MOZ" "MMR"
                                  "NAM" "NRU" "NPL" "NLD" "NCL" "NZL" "NIC" "NER" "NGA" "NIU" "NFK" "MNP" "NOR" "OMN"
                                  "PAK" "PLW" "PSE" "PAN" "PNG" "PRY" "PER" "PHL" "PCN" "POL" "PRT" "PRI" "QAT" "SRB"
                                  "REU" "ROU" "RUS" "RWA" "BLM" "SHN" "KNA" "LCA" "MAF" "SPM" "VCT" "WSM" "SMR" "STP"
                                  "SAU" "SEN" "SYC" "SLE" "SGP" "SXM" "SVK" "SVN" "SLB" "SOM" "ZAF" "SGS" "SSD" "ESP"
                                  "LKA" "SDN" "SUR" "SJM" "SWZ" "SWE" "CHE" "SYR" "TWN" "TJK" "TZA" "THA" "TLS" "TGO"
                                  "TKL" "TON" "TTO" "TUN" "TUR" "XTX" "TKM" "TCA" "TUV" "UGA" "UKR" "ARE" "GBR" "USA"
                                  "UMI" "URY" "UZB" "VUT" "VEN" "VNM" "VGB" "VIR" "WLF" "ESH" "YEM" "ZMB" "ZWE"
                              )
                      ] [
                            sh:in
                                (
                                    "4" "818" "248" "008" "10" "850" "581" "14" "16" "20" "660" "8" "028" "226" "760"
                                    "26" "41" "231" "30" "36" "048" "40" "42" "46" "084" "204" "48" "52" "58" "60" "62"
                                    "092" "086" "854" "108" "132" "152" "156" "184" "188" "384" "531" "208" "180" "408"
                                    "418" "276" "212" "214" "262" "218" "807" "222" "232" "233" "238" "234" "242" "246"
                                    "583" "250" "260" "254" "258" "266" "270" "268" "288" "292" "308" "300" "304" "312"
                                    "316" "320" "831" "324" "624" "328" "332" "334" "340" "344" "356" "360" "833" "368"
                                    "372" "364" "352" "376" "380" "388" "392" "887" "832" "400" "136" "116" "120" "124"
                                    "398" "634" "404" "417" "296" "166" "170" "174" "178" "191" "192" "414" "426" "428"
                                    "422" "430" "434" "438" "440" "442" "446" "450" "454" "458" "462" "466" "470" "580"
                                    "504" "584" "474" "478" "480" "175" "484" "492" "496" "500" "499" "508" "104" "516"
                                    "520" "524" "540" "554" "558" "528" "562" "566" "570" "574" "578" "512" "32" "586"
                                    "585" "275" "591" "598" "600" "604" "608" "612" "068" "616" "620" "630" "410" "498"
                                    "638" "646" "642" "643" "090" "894" "882" "674" "678" "682" "752" "756" "686" "688"
                                    "690" "694" "716" "702" "703" "705" "706" "724" "144" "652" "654" "659" "662" "663"
                                    "534" "666" "670" "710" "729" "239" "728" "740" "744" "748" "762" "158" "764" "626"
                                    "768" "772" "776" "780" "148" "203" "788" "792" "795" "796" "798" "800" "804" "348"
                                    "858" "860" "548" "336" "784" "834" "840" "826" "704" "876" "162" "112" "732" "140"
                                    "196"
                                )
                        ]
                ) ;
            sh:order 0 ;
            sh:path gx:countryCode
        ],
        [
            sh:datatype xsd:string ;
            sh:description "GPS in ISO 6709:2008/Cor 1:2009 format." ;
            sh:maxCount 1 ;
            sh:order 1 ;
            sh:path gx:gps
        ],
        [
            sh:datatype xsd:string ;
            sh:description "The v:locality property specifies the locality (e.g., city) of a postal address." ;
            sh:maxCount 1 ;
            sh:order 4 ;
            sh:path <http://www.w3.org/2006/vcard/ns#locality>
        ] ;
    sh:targetClass <http://www.w3.org/2006/vcard/ns#Address> .

gx:LegitimateInterest
    a sh:NodeShape ;
    sh:targetClass gx:LegitimateInterest ;
    sh:property
        [
            sh:path gx:legalBasis ;
            sh:name "legal basis" ;
            sh:description "Reasons to process PII as detailed in your personal data protection regime" ;
            sh:minCount 1 ;
            sh:maxCount 1 ;
            sh:datatype xsd:string
        ] ;
    sh:property
        [
            sh:path gx:dataProtectionContact ;
            sh:name "data protection contact" ;
            sh:minCount 1 ;
            sh:maxCount 1 ;
            sh:description "an URL pointing to a contact form or an emailaddress." ;
            sh:datatype xsd:string
        ] .


gx:ServiceOfferingLabelShape  a sh:NodeShape ;
  sh:targetClass gx:ServiceOfferingLabelLevel1 ;
  sh:property [
    sh:or ([sh:node gx:ServiceOfferingShape; sh:class gx:ServiceOffering]) ;
    sh:path gx:assignedTo ;
    sh:name "Assigned to" ;
    sh:description "a resolvable link to the service offering self-description to which label level is assigned to." ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;

  sh:property [
    sh:path gx:criteria ;
    sh:name "Criteria" ;
    sh:description "Gaia-X Policy Rules and Labelling Criteria for Providers" ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:node gx:ServiceOfferingCriteriaShape
  ] .

gx:ServiceOfferingCriteriaShape a sh:NodeShape ;
    sh:targetClass gx:ServiceOfferingCriteria ;
    sh:property [
        sh:path gx:P1.1.1 ;
        sh:name "Criterion P1.1.1" ;
        sh:description "The Provider shall offer the ability to establish a legally binding act. This legally binding act shall be documented." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.1.2 ;
        sh:name "Criterion P1.1.2" ;
        sh:description "The Provider shall have an option for each legally binding act to be governed by EU/EEA/Member State law." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.1.3 ;
        sh:name "Criterion P1.1.3" ;
        sh:description "The Provider shall clearly identify for which parties the legal act is binding." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.1.4 ;
        sh:name "Criterion P1.1.4" ;
        sh:description "The Provider shall ensure that the legally binding act covers the entire provision of the Service Offering." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.2.1 ;
        sh:name "Criterion P1.2.1" ;
        sh:description "The Provider shall ensure there are specific provisions regarding service interruptions and business continuity (e.g., by means of a service level agreement), Provider’s bankruptcy or any other reason by which the Provider may cease to exist in law." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.2.2 ;
        sh:name "Criterion P1.2.2" ;
        sh:description "The Provider shall ensure there are provisions governing the rights of the parties to use the service and any Customer Data therein." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.2.3 ;
        sh:name "Criterion P1.2.3" ;
        sh:description "The Provider shall ensure there are provisions governing changes, regardless of their kind." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.2.4 ;
        sh:name "Criterion P1.2.4" ;
        sh:description "The Provider shall ensure there are provisions governing aspects regarding copyright or any other intellectual property rights." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.2.5 ;
        sh:name "Criterion P1.2.5" ;
        sh:description "The Provider shall declare the location of the processing of any Customer Data at urban area level." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.2.6 ;
        sh:name "Criterion P1.2.6" ;
        sh:description "The Provider shall explain how information about subcontractors and related Customer Data localization will be communicated." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.2.7 ;
        sh:name "Criterion P1.2.7" ;
        sh:description "The Provider shall communicate to the Customer where the applicable jurisdiction(s) of subcontractors will be." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.2.8 ;
        sh:name "Criterion P1.2.8" ;
        sh:description "The Provider shall include in the contract the contact details where Customer may address any queries regarding the Service Offering and the contract." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.2.9 ;
        sh:name "Criterion P1.2.9" ;
        sh:description "The Provider shall adopt the Gaia-X Trust Framework, by which Customers may verify Provider’s Service Offering." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.2.10 ;
        sh:name "Criterion P1.2.10" ;
        sh:description "The Provider shall provide transparency on the environmental impact of the Service Offering provided" ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.3.1 ;
        sh:name "Criterion P1.3.1" ;
        sh:description "Service Offering shall include a policy using a common Domain-Specific Language (DSL) to describe Permissions, Requirements and Constraints." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.3.2 ;
        sh:name "Criterion P1.3.2" ;
        sh:description "Service Offering requires being operated by Service Offering Provider with a verified identity." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.3.3 ;
        sh:name "Criterion P1.3.3" ;
        sh:description "Service Offering must provide a conformant self-description." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.3.4 ;
        sh:name "Criterion P1.3.4" ;
        sh:description "Self-Description attributes need to be consistent across linked Self-Descriptions." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P1.3.5 ;
        sh:name "Criterion P1.3.5" ;
        sh:description "The Provider shall ensure that the Consumer uses a verified identity provided by the Federator." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P2.1.1 ;
        sh:name "Criterion P2.1.1" ;
        sh:description "The Provider shall offer the ability to establish a contract under Union or EU/EEA/Member State law and specifically addressing GDPR requirements." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P2.1.2 ;
        sh:name "Criterion P2.1.2" ;
        sh:description "The Provider shall define the roles and responsibilities of each party." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P2.1.3 ;
        sh:name "Criterion P2.1.3" ;
        sh:description "The Provider shall clearly define the technical and organizational measures in accordance with the roles and responsibilities of the parties, including an adequate level of detail." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P2.2.1 ;
        sh:name "Criterion P2.2.1" ;
        sh:description "The Provider shall be ultimately bound to instructions of the Customer." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P2.2.2 ;
        sh:name "Criterion P2.2.2" ;
        sh:description "The Provider shall clearly define how Customer may instruct, including by electronic means such as configuration tools or APIs." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P2.2.3 ;
        sh:name "Criterion P2.2.3" ;
        sh:description "The Provider shall clearly define if and to which extent third country transfer will take place." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P2.2.4 ;
        sh:name "Criterion P2.2.4" ;
        sh:description "The Provider shall clearly define if and to the extent third country transfers will take place, and by which means of Chapter V GDPR these transfers will be protected." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P2.2.5 ;
        sh:name "Criterion P2.2.5" ;
        sh:description "The Provider shall clearly define if and to which extent sub-processors will be involved." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P2.2.6 ;
        sh:name "Criterion P2.2.6" ;
        sh:description "The Provider shall clearly define if and to the extent sub-processors will be involved, and the measures that are in place regarding sub-processors management." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P2.2.7 ;
        sh:name "Criterion P2.2.7" ;
        sh:description "The Provider shall define the audit rights for the Customer." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P2.3.1 ;
        sh:name "Criterion P2.3.1" ;
        sh:description "In case of a joint controllership, the Provider shall ensure an arrangement pursuant to Art. 26 (1) GDPR is in place." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P2.3.2 ;
        sh:name "Criterion P2.3.2" ;
        sh:description "In case of a joint controllership, at a minimum, the Provider shall ensure that the very essence of such agreement is communicated to data subjects." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P2.3.3 ;
        sh:name "Criterion P2.3.3" ;
        sh:description "In case of a joint controllership, the Provider shall publish a point of contact for data subjects." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.1 ;
        sh:name "Criterion P3.1.1" ;
        sh:description "Organization of information security: Plan, implement, maintain and continuously improve the information security framework within the organisation." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.2 ;
        sh:name "Criterion P3.1.2" ;
        sh:description "Information Security Policies: Provide a global information security policy, derived into policies and procedures regarding security requirements and to support business requirements." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.3 ;
        sh:name "Criterion P3.1.3" ;
        sh:description "Risk Management: Ensure that risks related to information security are properly identified, assessed, and treated, and that the residual risk is acceptable to the CSP." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.4 ;
        sh:name "Criterion P3.1.4" ;
        sh:description "Human Resources: Ensure that employees understand their responsibilities, are aware of their responsibilities with regard to information security, and that the organisation’s assets are protected in the event of changes in responsibilities or termination." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.5 ;
        sh:name "Criterion P3.1.5" ;
        sh:description "Asset Management: Identify the organisation’s own assets and ensure an appropriate level of protection throughout their lifecycle." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.6 ;
        sh:name "Criterion P3.1.6" ;
        sh:description "Physical Security: Prevent unauthorised physical access and protect against theft, damage, loss and outage of operations." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape
    ] ;
    sh:property [
        sh:path gx:P3.1.7 ;
        sh:name "Criterion P3.1.7" ;
        sh:description "Operational Security: Ensure proper and regular operation, including appropriate measures for planning and monitoring capacity, protection against malware, logging and monitoring events, and dealing with vulnerabilities, malfunctions and failures." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.8 ;
        sh:name "Criterion P3.1.8" ;
        sh:description "Identity, Authentication and access control management: Limit access to information and information processing facilities." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape
    ] ;
    sh:property [
        sh:path gx:P3.1.9 ;
        sh:name "Criterion P3.1.9" ;
        sh:description "Cryptography and Key management: Ensure appropriate and effective use of cryptography to protect the confidentiality, authenticity or integrity of information." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.10 ;
        sh:name "Criterion P3.1.10" ;
        sh:description "Communication Security: Ensure the protection of information in networks and the corresponding information processing systems." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape
    ] ;
    sh:property [
        sh:path gx:P3.1.11 ;
        sh:name "Criterion P3.1.11" ;
        sh:description "Portability and Interoperability: The CSP shall provide a means by which a customer can obtain their stored customer data, and provide documentation on how (where appropriate, through documented API’s) the CSC can obtain the stored data at the end of the contractual relationship and shall document how the data will be securely deleted from the Cloud Service Provider in what timeframe." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.12 ;
        sh:name "Criterion P3.1.12" ;
        sh:description "Change and Configuration Management: Ensure that changes and configuration actions to information systems guarantee the security of the delivered cloud service." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape
    ] ;
    sh:property [
        sh:path gx:P3.1.13 ;
        sh:name "Criterion P3.1.13" ;
        sh:description "Development of Information systems: Ensure information security in the development cycle of information systems." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.14 ;
        sh:name "Criterion P3.1.14" ;
        sh:description "Procurement Management: Ensure the protection of information that suppliers of the CSP can access and monitor the agreed services and security requirements." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.15 ;
        sh:name "Criterion P3.1.15" ;
        sh:description "Incident Management: Ensure a consistent and comprehensive approach to the capture, assessment, communication and escalation of security incidents." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.16 ;
        sh:name "Criterion P3.1.16" ;
        sh:description "Business Continuity: Plan, implement, maintain and test procedures and measures for business continuity and emergency management." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.17 ;
        sh:name "Criterion P3.1.17" ;
        sh:description "Compliance: Avoid non-compliance with legal, regulatory, self-imposed or contractual information security and compliance requirements." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.18 ;
        sh:name "Criterion P3.1.18" ;
        sh:description "User documentation: Provide up-to-date information on the secure configuration and known vulnerabilities of the cloud service for cloud customers." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.19 ;
        sh:name "Criterion P3.1.19" ;
        sh:description "Dealing with information requests from government agencies: Ensure appropriate handling of government investigation requests for legal review, information to cloud customers, and limitation of access to or disclosure of Customer Data." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P3.1.20 ;
        sh:name "Criterion P3.1.20" ;
        sh:description "Product safety and security: Provide appropriate mechanisms for cloud customers to enable product safety and security." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P4.1.1 ;
        sh:name "Criterion P4.1.1" ;
        sh:description "The Provider shall implement practices for facilitating the switching of Providers and the porting of Customer Data in a structured, commonly used and machine-readable format including open standard formats where required or requested by the Customer." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape
    ] ;
    sh:property [
        sh:path gx:P4.1.2 ;
        sh:name "Criterion P4.1.2" ;
        sh:description "The Provider shall ensure pre-contractual information exists, with sufficiently detailed, clear and transparent information regarding the processes of Customer Data portability, technical requirements, timeframes and charges that apply in case a professional user wants to switch to another Provider or port Customer Data back to its own IT systems." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape
    ] ;
    sh:property [
        sh:path gx:P5.1.1 ;
        sh:name "Criterion P5.1.1" ;
        sh:description "For Label Level 2, the Provider shall provide the option that all Customer Data are processed and stored exclusively in EU/EEA." ;
        sh:maxCount 1 ;
        sh:minCount 0 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P5.1.2 ;
        sh:name "Criterion P5.1.2" ;
        sh:description "For Label Level 3, the Provider shall process and store all Customer Data exclusively in the EU/EEA." ;
        sh:maxCount 1 ;
        sh:minCount 0 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P5.1.3 ;
        sh:name "Criterion P5.1.3" ;
        sh:description "For Label Level 3, where the Provider or subcontractor is subject to legal obligations to transmit or disclose Customer Data on the basis of a non-EU/EEA statutory order, the Provider shall have verified safeguards in place to ensure that any access request is compliant with EU/EEA/Member State law." ;
        sh:maxCount 1 ;
        sh:minCount 0 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P5.1.4 ;
        sh:name "Criterion P5.1.4" ;
        sh:description "For Label Level 3, the Provider’s registered head office, headquarters and main establishment shall be established in a Member State of the EU/EEA." ;
        sh:maxCount 1 ;
        sh:minCount 0 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P5.1.5 ;
        sh:name "Criterion P5.1.5" ;
        sh:description "For Label Level 3, Shareholders in the Provider, whose registered head office, headquarters and main establishment are not established in a Member State of the EU/EEA shall not, directly or indirectly, individually or jointly, hold control of the CSP. Control is defined as the ability of a natural or legal person to exercise decisive influence directly or indirectly on the CSP through one or more intermediate entities, de jure or de facto. (cf. Council Regulation No 139/2004 and Commission Consolidated Jurisdictional Notice under Council Regulation (EC) No 139/2004 for illustrations of decisive control)." ;
        sh:maxCount 1 ;
        sh:minCount 0 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P5.1.6 ;
        sh:name "Criterion P5.1.6" ;
        sh:description "For Label Level 3, in the event of recourse by the Provider, in the context of the services provided to the Customer, to the services of a third-party company - including a subcontractor - whose registered head office, headquarters and main establishment is outside of the European Union or who is owned or controlled directly or indirectly by another third-party company registered outside the EU/EEA, the third-party company shall have no access over the Customer Data nor access and identity management for the services provided to the Customer. The Provider, including any of its sub-processor, shall push back any request received from non-European authorities to obtain communication of Customer Data relating to European Customers, except if request is made in execution of a court judgment or order that is valid and compliant under Union law and applicable Member States law as provided by Article 48 GDPR." ;
        sh:maxCount 1 ;
        sh:minCount 0 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P5.1.7 ;
        sh:name "Criterion P5.1.7" ;
        sh:description "For Label Level 3, the Provider must maintain continuous operating autonomy for all or part of the services it provides. The concept of operating autonomy shall be understood as the ability to maintain the provision of the cloud computing service by drawing on the provider’s own skills or by using adequate alternatives" ;
        sh:maxCount 1 ;
        sh:minCount 0 ;
        sh:node    gx:CriteriaResponseShape ;
    ] ;
    sh:property [
        sh:path gx:P5.2.1 ;
        sh:name "Criterion P5.2.1" ;
        sh:description "The Provider shall not access Customer Data unless authorized by the Customer or when the access is in accordance with EU/EEA/Member State law." ;
        sh:maxCount 1 ;
        sh:minCount 1 ;
        sh:node    gx:CriteriaResponseShape
    ] .

gx:CriteriaResponseShape a sh:NodeShape ;
    sh:targetClass  gx:CriteriaResponse;
    sh:property [
        sh:path gx:response ;
        sh:name "Response" ;
        sh:in ("Confirm" "Deny" "Not applicable" );
        sh:minCount 1 ;
        sh:maxCount 1 ;
    ] ;
    sh:property [
        sh:path gx:reason ;
        sh:name "Optional reason when not applicable" ;
        sh:datatype xsd:string ;
        sh:maxCount 1 ;
    ] ;
    sh:property [
        sh:path gx:evidence ;
        sh:name "Evidence" ;
        sh:maxCount 1 ;
        sh:node    gx:CriteriaEvidenceShape ;
    ] .

gx:CriteriaEvidenceShape a sh:NodeShape ;
    sh:targetClass  gx:CriteriaEvidence ;
    sh:property [
        sh:path gx:website ;
        sh:name "Website" ;
        sh:description "Link to website to complete evidence information";
        sh:datatype xsd:string ;
        sh:maxCount 1 ;
    ] ;
    sh:property [
        sh:path gx:pdf ;
        sh:name "Attestation PDF" ;
        sh:description "Link to attestation PDF to complete evidence information";
        sh:datatype xsd:string ;
        sh:maxCount 1 ;
    ] .

