@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sg: <http://www.springernature.com/scigraph/ontologies/core/> .
@prefix sgg: <http://www.springernature.com/scigraph/graphs/> .
@prefix sgo: <http://www.springernature.com/scigraph/ontologies/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

@prefix shapes: <http://www.springernature.com/scigraph/shapes/> .

# shape - IndexCheckEvent

shapes:IndexCheckEvent
    a sh:Shape ;
    sh:targetClass sg:IndexCheckEvent ;
    rdfs:label "RDF shape for the sg:IndexCheckEvent model" ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type ) ;

    # Identity
    sh:property [
        sh:predicate sg:scigraphId ;
        sh:datatype xsd:string ; sh:minCount 1 ; sh:maxCount 1 ;
    ] ;

    # Date
    sh:property [
        sh:predicate sg:date ;
        sh:datatype xsd:date ; sh:pattern "^\\d{4}-\\d{2}-\\d{2}$" ; sh:maxCount 1 ;
    ] ;

    # Thing
    sh:property [
        sh:predicate sg:hasAnnotationThing ;
        sh:nodeKind sh:IRI ;
        sh:minCount 1 ; sh:maxCount 1 ;
    ] ;

    # Agent
    sh:property [
        sh:predicate sg:annotationAgent ;
        sh:datatype xsd:string ;
        sh:minCount 1 ; sh:maxCount 1 ;
        sh:in ( "Scopus" "Web of Science" ) ;
    ] ;
    # sh:property [
    #     sh:predicate sg:hasAnnotationAgent ;
    #     sh:nodeKind sh:IRI ;
    #     sh:minCount 1 ; sh:maxCount 1 ;
    # ] ;

    .
