HyperAgents / hmas

An ontology to describe Hypermedia Multi-Agent Systems, interactions, and organizations.
https://purl.org/hmas/
1 stars 0 forks source link

[MOTIVATING SCENARIO] Violation of a GDPR rule : represent a sanction associated with a norm #102

Closed DrLeturc closed 1 year ago

DrLeturc commented 1 year ago

Description

Art. 226-18

Collecting personal data by fraudulent, unfair or unlawful means is punishable by five years' imprisonment and a fine of 300,000 euros.

A company (Organization) didn't respect Art. 226-18 and must get penalties.

Competency Questions

ID Question in natural language
q1 How to list sanctions that must be applied ?

Glossary

Recommendations

Let us notice that a sanction is also a norm.

TBox

:Sanction rdf:type owl:Class ;
           rdfs:subClassOf :Norm ;
           rdfs:comment "A threatened penalty for disobeying a law or rule"@en ;
           rdfs:label "Sanction"@en .

:hasSanction rdf:type owl:ObjectProperty ;
        rdfs:domain :Norm ;
                rdfs:range :Sanction ;
                rdfs:comment "Infringement of a norm may be associated with some sanctions (it may depend on a context of violation)."@en ;
                rdfs:label "has sanction"@en .

ABox

:gdprNorm a hmas:Norm .
:fine a :Sanction .

# fine ? fee ? 

:gdprNorm :hasSanction :fine . 

:gdprNorm hmas:hasException _:e1 .

:itmFactoryX a hmas:Organization .
:medicalDataOfMyAgt a :MedicalData . 
:medicalDataOfMyAgt :hasBeenSharedTo :itmFactoryX .
:medicalDataOfMyAgt :hasBeenSharedBy :hmasCompanyY .
:myAgt a :Agent .
:medicalDataOfMyAgt  :belongsTo :myAgt . 

:fine :obliges [ a rdf:Bag ;
  rdf:li [ a sp:Ask ; sp:where ([ sp:subject _:entityM ; sp:predicate :pays ; sp:object "300000"^^xsd:integer ] ) ] .
] .

:gdprNorm hmas:permits 
[ a rdf:Bag ;
  rdf:li [ a sp:Ask ; sp:where ([ sp:subject _:dataE1 ; sp:predicate :hasBeenSharedTo ; sp:object _:entity ] ) ] ;
  rdf:li [ a sp:Ask ; sp:where ([ sp:subject _:dataE1 ; sp:predicate :hasBeenSharedBy ; sp:object _:entityM ] ) ] ;
  rdf:li [ a sp:Ask ; sp:where ([ sp:subject _:dataE1 ; sp:predicate a ; sp:object :ShareableData ] ) ] .
] .

:gdprNorm hmas:hasException _:e1 .

# Assumption that :ShareableData and :MedicalData are distinct classes
_:e1 a rdf:Bag ;
  rdf:li [ a sp:Ask ; sp:where ([ sp:subject _:dataE1 ; sp:predicate a ; sp:object :PersonalData ] ) ] ;
  rdf:li [ a sp:Ask ; sp:where ([ sp:subject _:dataE1 ; sp:predicate :belongsTo ; sp:object _:agt ] ) ] . 

_:e1 :hasException _:e2.

_:e2 a rdf:Bag ;
  rdf:li [ a sp:Ask ; sp:where ([ sp:subject _:dataE1 ; sp:predicate :isJustifiedBy ; sp:object _:justificationX ] ) ] .

_:e2 :hasException _:e3.

_:e3 a rdf:Bag ;
  rdf:li [ a sp:Ask ; sp:where ([ sp:subject _:dataE1 ; sp:predicate a ; sp:object :MedicalData ] ) ] .

_:e3 :hasException _:e4.

_:e4 a rdf:Bag ;
  rdf:li [ a sp:Ask ; sp:where ([ sp:subject _:agt ; sp:predicate :givesExplicitConsent ; sp:object _:dataE1 ] ) ] .

Questions

?

Related links

DrLeturc commented 1 year ago

Too complex motivating scenario. We need to break things down.

DrLeturc commented 1 year ago

Too complex motivating scenario. We need to break things down.