@prefix af-p: <http://purl.allotrope.org/ontologies/process#> .
@prefix af-r: <http://purl.allotrope.org/ontologies/result#> .
@prefix af-s: <http://purl.allotrope.org/shape/> .
@prefix af-x: <http://purl.allotrope.org/ontologies/property#> .
@prefix bfo: <http://purl.obolibrary.org/obo/BFO> .
@prefix dct: <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 sh: <http://www.w3.org/ns/shacl#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

af-s:AFS_0000397 a sh:NodeShape ;
    rdfs:isDefinedBy <http://purl.allotrope.org/shapes/adm/liquid-chromatography/CR/2024/12/lc-data-processing.shapes> ;
    skos:prefLabel "LC data processing shape" ;
    sh:and ( af-s:AFS_0000001 ) ;
    sh:message "An LC data processing MUST have subprocesses of at least 1 integration and SHOULD have at most 1 peak identification. It SHOULD have a specification." ;
    sh:property [ sh:message "A chromatography data processing MUST have as an occurrent part at least 1 integration process." ;
            sh:path bfo:_0000117 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape af-s:AFS_0000398 ;
            sh:qualifiedValueShapesDisjoint true ],
        [ sh:message "A chromatography data processing SHOULD have as an occurrent part no more than 1 peak identification process." ;
            sh:path bfo:_0000117 ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedValueShape [ sh:class af-p:AFP_0003618 ] ;
            sh:qualifiedValueShapesDisjoint true ;
            sh:severity sh:Warning ] ;
    sh:targetClass af-p:AFP_0002089 .

af-s:AFS_0000398 a sh:NodeShape ;
    rdfs:isDefinedBy <http://purl.allotrope.org/shapes/adm/liquid-chromatography/CR/2024/12/lc-data-processing.shapes> ;
    skos:prefLabel "LC integration shape" ;
    sh:and ( af-s:AFS_0000001 ) ;
    sh:message "An LC integration process MUST have a data input of exactly 1 chromatogram AND a data output of at most 1 peak list. It SHOULD have a specification." ;
    sh:property [ sh:message "An integration process MUST have as a data input exactly 1 chromatogram." ;
            sh:path af-x:AFX_0000542 ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class af-r:AFR_0000236 ] ;
            sh:qualifiedValueShapesDisjoint true ],
        [ sh:message "An integration process MUST have as a data output no more than 1 peak list." ;
            sh:path af-x:AFX_0000544 ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedValueShape [ sh:class af-r:AFR_0000432 ] ;
            sh:qualifiedValueShapesDisjoint true ] ;
    sh:targetClass af-p:AFP_0000970 .

<http://purl.allotrope.org/shapes/adm/liquid-chromatography/CR/2024/12/lc-data-processing.shapes> a owl:Ontology ;
    dct:description "Main module of the Allotrope LC Data Processing Shape library." ;
    dct:license <http://purl.allotrope.org/voc/creative-commons-attribution-license> ;
    dct:publisher <http://www.allotrope.org> ;
    dct:rights <http://purl.allotrope.org/voc/attribution>,
        <http://purl.allotrope.org/voc/copyright> ;
    dct:title "Allotrope LC Data Processing Shape Library - (CR/2024/12)" ;
    owl:imports <http://purl.allotrope.org/shapes/adm/core/REC/2021/12/prefix.shacl>,
        <http://purl.allotrope.org/shapes/adm/core/REC/2022/06/common.shapes>,
        <http://purl.allotrope.org/shapes/adm/core/REC/2022/06/identifier.shapes>,
        <http://purl.allotrope.org/shapes/adm/core/REC/2022/06/process.shapes>,
        <http://purl.allotrope.org/shapes/qudt/REC/2022/06/qudt.shapes>,
        <http://purl.allotrope.org/shapes/qudt/REC/2022/06/unit.shapes> ;
    owl:priorVersion <http://purl.allotrope.org/shapes/adm/liquid-chromatography/CR/2021/09/lc-data-processing.shapes> ;
    owl:versionIRI <http://purl.allotrope.org/shapes/adm/liquid-chromatography/CR/2024/12/lc-data-processing.shapes> ;
    owl:versionInfo "CR/2024/12" ;
    skos:changeNote "[2020-11-17] Created ontology from LC-UV module in order to separate LC and UV. [Allotrope]" ;
    skos:prefLabel "LC data processing shapes" .

