@prefix duplo: <https://ontology.inferal.com/modules/data-usage-processing-lineage/> .
@prefix dcls: <https://ontology.inferal.com/modules/data-classification/> .
@prefix ex: <https://example.com/duplo/query/trace/> .
@prefix pd: <https://w3id.org/dpv/pd#> .
@prefix prov: <http://www.w3.org/ns/prov#> .

ex:source-element a duplo:DataElementVersion .
ex:intermediate-element
    a duplo:DataElementVersion ;
    duplo:wasDirectlyDerivedFromElement ex:source-element .
ex:join-key-element a duplo:DataElementVersion .
ex:output-element
    a duplo:DataElementVersion ;
    duplo:wasDirectlyDerivedFromElement ex:intermediate-element ;
    duplo:wasIndirectlyInfluencedByElement ex:join-key-element .

ex:source-classification
    a dcls:DataClassification ;
    dcls:classifiesElement ex:source-element ;
    dcls:personalDataCategory pd:BrowsingBehaviour .

ex:join-key-classification
    a dcls:DataClassification ;
    dcls:classifiesElement ex:join-key-element ;
    dcls:personalDataCategory pd:AccountIdentifier .

ex:output-classification
    a dcls:DataClassification ;
    dcls:classifiesElement ex:output-element ;
    dcls:personalDataCategory pd:BrowsingBehaviour .

ex:run
    a duplo:ProcessingActivity ;
    duplo:hasLineageCoverage duplo:CompleteLineage ;
    duplo:lineageCoverageScope duplo:ElementDependencyLineageScope ;
    duplo:hasLineageCoverageAssessment ex:run-coverage ;
    prov:generated ex:output-element .

ex:upstream-run
    a duplo:ProcessingActivity ;
    duplo:hasLineageCoverage duplo:PartialLineage ;
    duplo:lineageCoverageScope duplo:ElementDependencyLineageScope ;
    duplo:hasLineageCoverageAssessment ex:upstream-coverage ;
    prov:generated ex:intermediate-element .

ex:coverage-review a prov:Activity ; prov:generated ex:run-coverage, ex:upstream-coverage .
ex:run-coverage
    a duplo:LineageCoverageAssessment ;
    duplo:assessesResource ex:run ;
    duplo:assessedLineageCoverage duplo:CompleteLineage ;
    duplo:assessedLineageScope duplo:ElementDependencyLineageScope ;
    duplo:coverageBoundary ex:run ;
    prov:wasGeneratedBy ex:coverage-review .
ex:upstream-coverage
    a duplo:LineageCoverageAssessment ;
    duplo:assessesResource ex:upstream-run ;
    duplo:assessedLineageCoverage duplo:PartialLineage ;
    duplo:assessedLineageScope duplo:ElementDependencyLineageScope ;
    duplo:coverageBoundary ex:upstream-run ;
    prov:wasGeneratedBy ex:coverage-review .
