@prefix bido: <http://purl.org/spar/bido/> .
@prefix cito: <http://purl.org/spar/cito/> .
@prefix co: <http://purl.org/co/> .
@prefix datacite: <http://purl.org/spar/datacite/> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix fabio: <http://purl.org/spar/fabio/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix frapo: <http://purl.org/cerif/frapo/> .
@prefix frbr: <http://purl.org/vocab/frbr/core#> .
@prefix literal: <http://www.essepuntato.it/2010/06/literalreification/> .
@prefix odrl: <http://www.w3.org/ns/odrl/2/> .
@prefix prism: <http://prismstandard.org/namespaces/basic/2.0/> .
@prefix pro: <http://purl.org/spar/pro/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix pso: <http://purl.org/spar/pso/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix schema: <https://schema.org/> .
@prefix scoro: <http://purl.org/spar/scoro/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix skg_sh_agent: <https://w3id.org/skg-if/shapes/agent/> .
@prefix skg_sh_data_source: <https://w3id.org/skg-if/shapes/data-source/> .
@prefix skg_sh_grant: <https://w3id.org/skg-if/shapes/grant/> .
@prefix skg_sh_research_product: <https://w3id.org/skg-if/shapes/research-product/> .
@prefix skg_sh_topic: <https://w3id.org/skg-if/shapes/topic/> .
@prefix skg_sh_venue: <https://w3id.org/skg-if/shapes/venue/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix ti: <http://www.ontologydesignpatterns.org/cp/owl/timeinterval.owl#> .
@prefix tvc: <http://www.essepuntato.it/2012/04/tvc/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

skg_sh_agent:PersonShape a sh:NodeShape ;
    sh:property [ sh:minCount 0 ;
            sh:node skg_sh_agent:RoleInTimeShape ;
            sh:path pro:holdsRoleInTime ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path foaf:givenName ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path foaf:familyName ] .

skg_sh_agent: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 ] .

skg_sh_agent:RoleInTimeShape a sh:NodeShape ;
    sh:property [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:node skg_sh_agent:OrganizationShape ;
            sh:path pro:relatesToOrganization ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:node skg_sh_agent:TimeIntervalShape ;
            sh:path tvc:atTime ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path pro:withRole ] .

skg_sh_agent:TimeIntervalShape a sh:NodeShape ;
    sh:property [ sh:datatype xsd:dateTime ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path ti:hasIntervalEndDate ],
        [ sh:datatype xsd:dateTime ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path ti:hasIntervalStartDate ] .

skg_sh_data_source:AudienceShape a sh:NodeShape ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path schema:audienceType ] .

skg_sh_data_source:DataServiceShape a sh:NodeShape ;
    sh:property [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:coverage ],
        [ sh:minCount 0 ;
            sh:node skg_sh_data_source:StandardShape ;
            sh:path dcterms:conformsTo ],
        [ sh:minCount 0 ;
            sh:node skg_sh_data_source:PolicyShape ;
            sh:path odrl:hasPolicy ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path foaf:name ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:subject ],
        [ sh:minCount 0 ;
            sh:node skg_sh_data_source:IdentifierShape ;
            sh:path datacite:hasIdentifier ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcat:theme ],
        [ sh:minCount 0 ;
            sh:node skg_sh_data_source:AudienceShape ;
            sh:path schema:audience ] ;
    sh:targetClass dcat:DataService .

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

skg_sh_data_source:PolicyShape a sh:NodeShape ;
    sh:property [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path odrl:action ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path foaf:page ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path dcterms:description ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path odrl:target ] .

skg_sh_data_source:StandardShape a sh:NodeShape ;
    sh:property [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:coverage ],
        [ sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:requires ] .

skg_sh_grant:GrantShape a sh:NodeShape ;
    sh:property [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path frapo:hasFundingAgency ],
        [ sh:minCount 0 ;
            sh:node skg_sh_agent:OrganizationShape ;
            sh:path frapo:supports ],
        [ sh:minCount 0 ;
            sh:node skg_sh_grant:RoleInTimeShape ;
            sh:path pro:isRelatedToRoleInTime ],
        [ sh:datatype xsd:float ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path frapo:hasCurrency ],
        [ sh:minCount 0 ;
            sh:node skg_sh_grant:IdentifierShape ;
            sh:path datacite:hasIdentifier ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path prism:keyword ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path frapo:hasGrantNumber ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path frapo:hasAcronym ],
        [ sh:datatype xsd:string ;
            sh:minCount 0 ;
            sh:path frapo:hasCurrencyCode ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:title ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path frapo:hasCallIdentifier ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:node skg_sh_grant:TimeIntervalShape ;
            sh:path dcterms:temporal ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:abstract ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path foaf:homepage ] ;
    sh:targetClass frapo:Grant .

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

skg_sh_grant:RoleInTimeShape a sh:NodeShape ;
    sh:property [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path pro:withRole ],
        [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:node skg_sh_agent:AgentShape ;
            sh:path pro:isHeldBy ] .

skg_sh_grant:TimeIntervalShape a sh:NodeShape ;
    sh:property [ sh:datatype xsd:dateTime ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path ti:hasIntervalEndDate ],
        [ sh:datatype xsd:dateTime ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path ti:hasIntervalStartDate ] .

skg_sh_research_product:ActivityShape a sh:NodeShape ;
    sh:property [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:node skg_sh_agent:AgentShape ;
            sh:path prov:wasAssociatedWith ],
        [ sh:datatype xsd:float ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path rdf:value ] .

skg_sh_research_product:BibliometricDataInTimeShape a sh:NodeShape ;
    sh:property [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:node skg_sh_topic:SubjectTermShape ;
            sh:path bido:withBibliometricData ],
        [ sh:minCount 0 ;
            sh:node skg_sh_research_product:ActivityShape ;
            sh:path prov:wasGeneratedBy ] .

skg_sh_research_product:ConceptShape 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 ] .

skg_sh_research_product:ContributionSituationShape a sh:NodeShape ;
    sh:property [ sh:datatype xsd:positiveInteger ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path co:index ],
        [ sh:minCount 0 ;
            sh:node skg_sh_agent:OrganizationShape ;
            sh:path pro:relatesToOrganization ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path scoro:withContribution ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path pro:withRole ],
        [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:node skg_sh_agent:AgentShape ;
            sh:path pro:isHeldBy ] .

skg_sh_research_product:ExpressionShape a sh:NodeShape ;
    sh:property [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path fabio:hasRetractionDate ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:node skg_sh_data_source:DataServiceShape ;
            sh:path dcat:accessService ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path fabio:hasDecisionDate ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path prism:edition ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path dcterms:issued ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path prism:volume ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:node skg_sh_venue:ExpressionCollectionShape ;
            sh:path frbr:partOf ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path fabio:hasCorrectionDate ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path fabio:hasRequestDate ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path dcterms:dateAccepted ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:node skg_sh_research_product:ConceptShape ;
            sh:path rdf:type ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path fabio:hasDateReceived ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path fabio:hasEmbargoDate ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path fabio:hasDepositDate ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path fabio:hasDateCollected ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path prism:issueIdentifier ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path dcterms:valid ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path dcterms:dateCopyrighted ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:node skg_sh_research_product:ManifestationShape ;
            sh:path frbr:embodiment ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path dcterms:created ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path dcterms:modified ],
        [ sh:minCount 0 ;
            sh:node skg_sh_research_product:StatusInTimeShape ;
            sh:path pso:holdsStatusInTime ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path fabio:hasSequenceIdentifier ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path fabio:hasDistributionDate ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path prism:versionIdentifier ],
        [ sh:datatype xsd:dateTime ;
            sh:minCount 0 ;
            sh:path fabio:hasAccessDate ],
        [ sh:minCount 0 ;
            sh:node skg_sh_research_product:IdentifierShape ;
            sh:path datacite:hasIdentifier ] .

skg_sh_research_product:ManifestationShape a sh:NodeShape ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path prism:startingPage ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path prism:endingPage ] .

skg_sh_research_product:RoleInTimeShape a sh:NodeShape ;
    sh:property [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path pro:withRole ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path scoro:withContribution ],
        [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:node skg_sh_agent:AgentShape ;
            sh:path pro:isHeldBy ],
        [ sh:minCount 0 ;
            sh:node skg_sh_agent:OrganizationShape ;
            sh:path pro:relatesToOrganization ],
        [ sh:datatype xsd:positiveInteger ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path co:index ] .

skg_sh_research_product:StatusInTimeShape a sh:NodeShape ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path dcterms:description ],
        [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path pso:withStatus ] .

skg_sh_topic: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 ] .

skg_sh_topic:SubjectTermShape a sh:NodeShape ;
    sh:property [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ],
        [ sh:minCount 0 ;
            sh:node skg_sh_topic:IdentifierShape ;
            sh:path datacite:hasIdentifier ] ;
    sh:targetClass fabio:SubjectTerm .

skg_sh_venue:ExpressionCollectionShape a sh:NodeShape ;
    sh:property [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:title ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path frapo:hasAcronym ],
        [ sh:minCount 0 ;
            sh:node skg_sh_venue:RoleInTimeShape ;
            sh:path pro:isDocumentContextFor ],
        [ sh:datatype xsd:dateTime ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path dcterms:created ],
        [ sh:minCount 0 ;
            sh:node skg_sh_venue:IdentifierShape ;
            sh:path datacite:hasIdentifier ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path prism:seriesTitle ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:node skg_sh_venue:StatusInTimeShape ;
            sh:path pso:holdsStatusInTime ] ;
    sh:targetClass fabio:ExpressionCollection .

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

skg_sh_venue:RoleInTimeShape a sh:NodeShape ;
    sh:property [ sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path pro:withRole ] .

skg_sh_venue:StatusInTimeShape a sh:NodeShape ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:path dcterms:description ],
        [ sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path pso:withStatus ] .

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

skg_sh_agent:AgentShape a sh:NodeShape ;
    sh:property [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path foaf:name ],
        [ sh:minCount 0 ;
            sh:node skg_sh_agent:IdentifierShape ;
            sh:path datacite:hasIdentifier ] ;
    sh:targetClass foaf:Agent .

skg_sh_agent:OrganizationShape a sh:NodeShape ;
    sh:property [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path frapo:hasCountry ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path frapo:hasAcronym ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path skos:altLabel ],
        [ sh:maxCount 1 ;
            sh:minCount 0 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path foaf:homepage ] .

skg_sh_research_product:WorkShape a sh:NodeShape ;
    sh:property [ sh:minCount 0 ;
            sh:node skg_sh_research_product:IdentifierShape ;
            sh:path datacite:hasIdentifier ],
        [ sh:minCount 0 ;
            sh:node skg_sh_research_product:ExpressionShape ;
            sh:path frbr:realization ],
        [ sh:minCount 0 ;
            sh:node skg_sh_agent:OrganizationShape ;
            sh:path dcterms:relation ],
        [ sh:minCount 0 ;
            sh:node skg_sh_research_product:ContributionSituationShape ;
            sh:path pro:isRelatedToRoleInTime ],
        [ sh:minCount 0 ;
            sh:node skg_sh_research_product:WorkShape ;
            sh:path frbr:partOf ],
        [ sh:minCount 0 ;
            sh:node skg_sh_research_product:WorkShape ;
            sh:path frbr:revisionOf ],
        [ sh:minCount 0 ;
            sh:node skg_sh_research_product:WorkShape ;
            sh:path cito:cites ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:abstract ],
        [ sh:minCount 0 ;
            sh:node skg_sh_research_product:RoleInTimeShape ;
            sh:path pro:isRelatedToRoleInTime ],
        [ sh:minCount 0 ;
            sh:node skg_sh_grant:GrantShape ;
            sh:path frapo:isFundedBy ],
        [ sh:minCount 0 ;
            sh:node skg_sh_research_product:BibliometricDataInTimeShape ;
            sh:path bido:holdsBibliometricDataInTime ],
        [ sh:minCount 0 ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:title ],
        [ sh:minCount 0 ;
            sh:node skg_sh_research_product:WorkShape ;
            sh:path cito:isDocumentedBy ],
        [ sh:minCount 0 ;
            sh:node skg_sh_research_product:WorkShape ;
            sh:path frbr:supplement ] ;
    sh:targetClass fabio:Work .

