@prefix dcls: <https://ontology.inferal.com/modules/data-classification/> .
@prefix duplo: <https://ontology.inferal.com/modules/data-usage-processing-lineage/> .
@prefix ex: <https://example.com/duplo/query/structural-gap/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

ex:context a dcls:ClassificationContext .
ex:shape a sh:NodeShape .
ex:shapes-v1 a prov:Entity .
ex:constraint a duplo:ClassificationConstraint ; duplo:requiresStructuralShape ex:shape .
ex:port a duplo:DataInputPort ; duplo:hasClassificationConstraint ex:constraint .
ex:specification a duplo:ProcessingSpecification ; duplo:hasInputPort ex:port .
ex:good-input a prov:Entity .
ex:bad-input a prov:Entity .
ex:good-usage a prov:Usage ; prov:entity ex:good-input ; prov:hadRole ex:port .
ex:bad-usage a prov:Usage ; prov:entity ex:bad-input ; prov:hadRole ex:port .
ex:good-run a duplo:ProcessingActivity ; duplo:realizesSpecification ex:specification ; duplo:processingContext ex:context ; prov:qualifiedUsage ex:good-usage .
ex:bad-run a duplo:ProcessingActivity ; duplo:realizesSpecification ex:specification ; duplo:processingContext ex:context ; prov:qualifiedUsage ex:bad-usage .
ex:validation a prov:Activity ; prov:generated ex:assessment, ex:report .
ex:report a sh:ValidationReport ; sh:conforms true .
ex:assessment
    a duplo:StructuralConformanceAssessment ;
    duplo:validatedResource ex:good-input ;
    duplo:validationShape ex:shape ;
    duplo:validationShapesGraph ex:shapes-v1 ;
    duplo:validationReport ex:report ;
    duplo:validationContext ex:context ;
    duplo:hasAssessmentOutcome duplo:Conformant ;
    prov:wasGeneratedBy ex:validation .
