@prefix dash: <http://datashapes.org/dash#> .
@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 sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix sarefsh: <https://saref.etsi.org/shape#> .
@prefix schema: <http://schema.org/> .

sarefsh:ExampleShape
  a sh:NodeShape ;
    sh:targetClass owl:Ontology ;
    sh:closed true ;
  sh:property [
    sh:path rdf:type ;
    sh:minCount 1 ;
    sh:hasValue owl:Ontology ;
  ] ;
  sh:property [
    sh:path owl:imports ;
    sh:nodeKind sh:IRI ;
    sh:minCount 1 ;
    sh:severity sh:Violation ;
    sh:message "The example should import at least one ontology.$`"
  ] ;
  sh:property [
    sh:path dcterms:title ;
    sh:nodeKind sh:Literal ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:severity sh:Warning ;
    sh:message "The example should have exactly one dcterms:title."
  ] ;  
  sh:property [
    sh:path dcterms:abstract ;
    sh:nodeKind sh:Literal ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:severity sh:Warning ;
    sh:message "The example should have exactly one dcterms:abstract."
  ] ;
  sh:property [
    sh:path dcterms:description ;
    sh:nodeKind sh:Literal ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:severity sh:Warning ;
    sh:message "The example should have exactly one dcterms:description."
  ] ;
  sh:property [
    sh:path dcterms:license ;
    sh:nodeKind sh:IRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:pattern "https://forge.etsi.org/etsi-software-license" ;
    sh:severity sh:Violation ;
    sh:message "There shall be exactly one dcterms:license annotation, with value <https://forge.etsi.org/etsi-software-license>."
  ] .
  