@prefix bido: <http://purl.org/spar/bido/> .
@prefix cito: <http://purl.org/spar/cito/> .
@prefix datacite: <http://purl.org/spar/datacite/> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix literal: <http://www.essepuntato.it/2010/06/literalreification/> .
@prefix schema: <https://schema.org/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix srv: <https://w3id.org/skg-if/extension/srv/ontology/> .
@prefix srv_sh: <https://w3id.org/skg-if/shapes/srv/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

srv_sh:ServiceShape a sh:NodeShape ;
    sh:property [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path srv:isPartOfResearchInfrastructure ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path foaf:homepage ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path cito:isDocumentedBy ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path cito:isCitedBy ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path srv:intendedAudienceRole ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path srv:eoscLifeCycleStatus ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path srv:hasHostingOrganisation ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path srv:invocationType ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path srv:hasVenue ],
        [ sh:datatype xsd:string ;
            sh:minCount 0 ;
            sh:path schema:keyword ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:subject ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:node srv_sh:FacilityPortalShape ;
            sh:path schema:provider ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path srv:isDeploymentOf ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path srv:geographicalAvailability ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path skos:altLabel ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path srv:supportedLanguage ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:node srv_sh:APIProfileShape ;
            sh:path dcterms:conformsTo ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path srv:hasHostingLegalEntity ],
        [ sh:minCount 0 ;
            sh:node srv_sh:IdentifierShape ;
            sh:path datacite:hasIdentifier ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:description ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path srv:isDeploymentOf ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:relation ],
        [ sh:datatype xsd:boolean ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path schema:isAccessibleForFree ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path srv:isDeploymentOf ],
        [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:path foaf:name ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path srv:relatedResearchProduct ],
        [ sh:minCount 0 ;
            sh:node srv_sh:BibliometricDataInTimeShape ;
            sh:path bido:holdsBibliometricDataInTime ],
        [ sh:datatype xsd:string ;
            sh:minCount 0 ;
            sh:path srv:audienceJurisdiction ] ;
    sh:targetClass srv:Service .

srv_sh:StandardShape a sh:NodeShape ;
    sh:property [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ] ;
    sh:targetClass dcterms:Standard .

srv_sh:APIProfileShape a sh:NodeShape ;
    sh:property [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path schema:url ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcat:endpointURL ] .

srv_sh:BibliometricDataInTimeShape a sh:NodeShape ;
    sh:property [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:node srv_sh:SubjectTermShape ;
            sh:path bido:withBibliometricData ] .

srv_sh:FacilityPortalShape a sh:NodeShape ;
    sh:property [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path schema:provider ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path skos:altLabel ],
        [ sh:minCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ] .

srv_sh:IdentifierShape a sh:NodeShape ;
    sh:property [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:path literal:hasLiteralValue ],
        [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path datacite:usesIdentifierScheme ] .

srv_sh:SubjectTermShape a sh:NodeShape ;
    sh:property [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path skos:inScheme ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ] .

