# External prefix declarations
prefix foaf:
prefix rdf:
prefix sh:
prefix xsd:
prefix bibo:
prefix dct:
prefix skos:
# Project-specific prefix
prefix graph:
prefix shp:
prefix mcal:
mcal:model {
# Journal shape, for now a journal is just a a node of type bibo:Journal
# with a title and ISSN.
shp:Journal
a sh:NodeShape ;
sh:closed true ;
sh:ignoredProperties ( rdf:type );
sh:property
shp:title,
shp:issn ;
sh:targetClass bibo:Journal .
# Articles are open ended
shp:AcademicArticle
a sh:NodeShape ;
sh:closed false ; # set to true when this shape is complete
sh:property
shp:articlePartOfJournal ,
shp:hasVersion ,
shp:title ,
shp:researchQuestionType ,
shp:contentFeatureConcept ,
shp:contentAnalysisType ;
sh:targetClass bibo:AcademicArticle .
# title property used for journals and articles
shp:title
a sh:PropertyShape ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:path dct:title .
# ISSN property for journals
shp:issn
a sh:PropertyShape ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:nodeKind sh:IRI ;
sh:path bibo:issn .
# At the moment, every article needs to be published in a journal (debatable)
shp:articlePartOfJournal
a sh:PropertyShape ;
sh:minCount 1;
sh:maxCount 1;
sh:nodeKind sh:IRI ;
sh:path dct:isPartOf ;
sh:class bibo:Journal .
# Every article has at least one (online) version
shp:hasVersion
a sh:PropertyShape ;
sh:minCount 1;
sh:nodeKind sh:IRI ;
sh:path dct:hasVersion .
# Optional: Content Analysis Type values are based on a small SKOS vocabulary
shp:contentAnalysisType
a sh:PropertyShape ;
sh:minCount 0;
sh:nodeKind sh:IRI ;
sh:class skos:Concept ; # Temp. disabled due to slow down in current ETL
sh:path mcal:contentAnalysisType .
# Optional: Content Feature Concepts values are based on a small SKOS vocabulary
shp:contentFeatureConcept
a sh:PropertyShape ;
sh:minCount 0;
sh:nodeKind sh:IRI ;
sh:class skos:Concept ; # Temp. disabled due to slow down in current ETL
sh:path mcal:contentFeatureConcept .
# Optional: Research Question Type values are based on a small SKOS vocabulary
shp:researchQuestionType
a sh:PropertyShape ;
sh:minCount 0;
sh:nodeKind sh:IRI ;
sh:class skos:Concept ; # # Temp. disabled due to slow down in current ETL
sh:path mcal:researchQuestionType .
}