@prefix dcls: <https://ontology.inferal.com/modules/data-classification/> .
@prefix duplo: <https://ontology.inferal.com/modules/data-usage-processing-lineage/> .
@prefix dpv: <https://w3id.org/dpv#> .
@prefix ex: <https://example.com/duplo/query/materialize-requirement/> .
@prefix pd: <https://w3id.org/dpv/pd#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

dpv:TechnicalMeasure rdfs:subClassOf dpv:TechnicalOrganisationalMeasure .
dpv:Encryption a rdfs:Class, dpv:TechnicalMeasure .
dpv:Pseudonymisation a rdfs:Class, dpv:TechnicalMeasure .

ex:context a dcls:ClassificationContext .
ex:element a dcls:DataElement .

ex:classification
    a dcls:DataClassification ;
    dcls:classifiesElement ex:element ;
    dcls:personalDataCategory pd:EmailAddress ;
    dcls:hasClassificationContext ex:context ;
    dcls:requiresMeasure dpv:Encryption, dpv:Pseudonymisation ;
    duplo:hasMitigationRequirement ex:existing-encryption-requirement .

ex:existing-encryption-requirement
    a duplo:MitigationRequirement ;
    duplo:originatingClassification ex:classification ;
    duplo:requiredMeasure dpv:Encryption ;
    duplo:hasRequirementScope duplo:OutputState ;
    duplo:requirementContext ex:context .
