ex:PDH1 a dpv:Process ;
    dpv:hasProcessing dpv:Collect ;
    dpv:hasPersonalData pd:Location ;
    dpv:hasDuration "P6M" ; # 6 months
    dpv:hasDuration [
        a dpv:TemporalDuration ;
        rdf:value "P6M"^^xsd:duration ; # 6 months - same as above, 
            # but more explicit that this is a duration
    ] ;
    dpv:hasDuration "2023-12-31" ;
    dpv:hasDuration [
        a dpv:UntilTimeDuration ;
        rdf:value "2023-12-31"^^xsd:date ; # same as above, 
            #  but more explicit that this is an end date
    ] ;
    dpv:hasDuration "1 time"@en ; # bad practice - not machine-readable
    dpv:hasDuration [
        a dpv:FixedOccurrencesDuration ; # good practice - unambiguous
        rdf:value "1"^^xsd:int ; 
    ] ;
    dpv:hasDuration "until account closure"@en ; # bad practice
    dpv:hasDuration [
        a dpv:UntilEventDuration ; # good practice - specifies an event
        rdf:value "Until Account Closure"@en ; 
    ] .        
