The Open Digital Rights Language (ODRL) is a policy expression language that provides a flexible and interoperable information model, vocabulary, and encoding mechanisms for representing statements about the usage of content and services.
This document constitutes an ODRL profile that adapts the ODRL Core Model and Vocabulary with concepts and terms to support regulatory compliance checking of business policies.
In essence, ODRL Regulatory Compliance Profile policies are used to represent regulatory permissions, prohibitions, obligations, and dispensations, which may be limited by constraints (e.g., temporal, spatial).
Significant portions of this document are reproduced from the ODRL Information Model standard. We would particularly like to thank Benedict Whittamsmith (Refinitiv) and Piero Bonatti (CeRICT) for their comments on this draft specification.
This document provides and overview of the ODRL Regulatory Compliance Profile classes and properties. The work is guided by our analysis of Article 6 "Lawfulness of processing" and and Article 46 "Transfers subject to appropriate safeguards" of the GDPR. At this stage we are not aiming to be exhaustive in terms of modelling the GDPR but rather to demonstrate the potential of ODRL for modelling regulatory obligations.
The primary aim of the ODRL Regulatory Compliance Profile model is to provide a model and vocabularies that can be used to express permissions, prohibitions, obligations, and dispensations in a manner such that they can be checked automatically.
The examples throughout the document are serialized as [[json-ld]]. and [[turtle]].
The examples presented here make use if the following prefixes:
@prefix orcp: <http://example.com/odrl:profile:regulatory-compliance/> .
@prefix odrl: <http://www.w3.org/ns/odrl/2/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
The ODRL Regulatory Compliance Profile model represents Policies that express Permissions, Prohibitions, Obligations, and Dispensations related to actions.
The figure below shows the ODRL Regulatory Compliance Profile model, which is an adaptation of the ODRL Information model.
The ODRL Regulatory Compliance Profile model has the following core classes:
Policy
- A non-empty Set
of Permissions
(via the permission property) and/or Prohibitions
(via the prohibition property) and/or Obligations
(via the obligation property) and/or Dispensations
(via the dispensation property).
ConflictTerm
- A means to specific the conflict resolution strategy.Rule
- An abstract concept that represents the common characteristics of Permissions, Prohibitions, Obligations and Dispensations.
Action
- An operation referred to in a Rule.
Resource
- An object referred to in a Rule.
Party
- An entity referred to in a Rule.
Constraint
- An abstract concept denoting constraints used to refine a Rule. The profile currently supports PredicateConstraints
.
The Policy class has the following properties:
uid
property value (of type IRI [[!rfc3987]]) to identify the Policy.permission
, prohibition
, obligation
or dispensation
property of type Rule. (See the Permission, Prohibition, Obligation and Dispensation sections for more details.)profile
property value (of type IRI [[!rfc3987]]) to identify the ODRL Regulatory Compliance Profile. inheritFrom
property values (of type IRI [[!rfc3987]]) to identify the parent Policy from which this child Policy inherits from. conflict
property values (of type ConflictTerm) for Conflict Strategy Preferences indicating how to handle Policy conflicts.An ODRL Policy of subclass Set
represents any combination of Rules. The Set
Policy subclass is also the default subclass of Policy (if none is specified).
The conflict
property is used to establish strategies to resolve conflicts that arise from the merging of Policies or conflicts between Permissions, Prohibitions and Obligations in the same Policy. Conflicts may arise when merging Policies as a result of policy inheritance and the resultant Rules are inconsistent.
A property which is used to cater for policies inheritance.
A property which is used to specify the policies profile.
Properties that relate rules of type Permission, Prohibition, Obligation, or Dispensation to a Policy.
The conflict
property is used to establish strategies to resolve conflicts that arise from the merging of Policies or conflicts between Permissions/Obligations and Prohibitions in the same Policy. Conflicts may arise when merging Policies, as a result of policy inheritance, or when Rules are inconsistent.
The conflict
property SHOULD take one of the following conflict strategy preference values (instances of the ConflictTerm class):
perm
: Permissions and Obligations MUST override the Prohibitionsprohibit
: Prohibitions MUST override the Permissions and Obligationsinvalid
: the entire Policy MUST be void if any conflict is detectedIf the conflict
property is not explicitly set, the default of invalid
will be used.
The conflict strategy requirements include:
conflict
property of perm
then any conflicting Permission/Obligation Rule MUST override the Prohibition Rule.conflict
property of prohibit
then any conflicting Prohibition Rule MUST override the Permission/Obligation Rule.conflict
property of invalid
then any conflicting Rules MUST void the entire Policy.conflict
property values (for example, after a Policy merge or inheritance) and there are conflicting Rules then the entire Policy MUST be void.An Action
class indicates an operation.
The ODRL Regulatory Compliance Profile model defines the following top-level Actions:
Processing
- actions that involve processing by parties. Transfer
- actions that involve transfers between parties.The Action class has the following properties:
uid
property value (of type IRI [[!rfc3987]]) to identify the Action.Based on the analysis of Articles 6 and 46 of the GDPR, we propose the following subclasses of the Processing class:
ProcessingEffectingFundamentalRightsAndFreedomsOfTheDataSubject
A Resource
class is a resource or a collection of resources that are the subject of a Rule. The Resource can be any form of identifiable resource, such as data/information, content/media, applications, services, or physical artefacts.
The Resource class has the following properties:
uid
property value (of type IRI [[!rfc3987]]) to identify the Resource.Based on the analysis of Articles 6 and 46 of the GDPR, we propose the following entities of type Resource
:
PersonalData
AppropriateSafeguards
EnforceableDataSubjectRights
LegallyBindingEnforceableInstrument
BindingCorporateRules
StandardDataProtectionClauses
ApprovedCodeOfConduct
An ODRL Policy class MAY also be referenced by the hasPolicy
property. This supports ODRL Policy Rules being the object of external metadata expressions (that identifies a Resource). When hasPolicy
has been asserted between a metadata expression and an ODRL Policy, the Resource being identified MUST be inferred to be the resource
of all the Rules of that Policy. If there are multiple Rules in the Policy, then the inferred Resource will be the target Resource to every Rule in the Policy.
A Party
is an entity or a collection of entities that undertake roles in a Rule, such as a person, collection of people, organisation, or agent. The Party
performs (or does not perform) Actions or has a function in an Obligation.
The Party class has the following properties:
uid
property value (of type IRI [[!rfc3987]]) to identify the Party.Based on the analysis of Articles 6 and 46 of the GDPR, we propose the following entities of type Party
:
Controller
Processor
PublicAuthority
InternationalOrganisation
A class denoting the legal basis for processing.
The profile has the following subclasses of type LegalBasis
that are associated with an action via the legalBasis
property:
Consent
Contract
LegalObligation
VitalInterest
PublicInterest
ExerciseOfficialAuthority
LegitimateInterest
A class denoting the location of the processing.
The profile has the following subclasses of type Location
that are associated with an action via the location
property:
ThirdCountry
EU
A class denoting the reason for the processing.
The profile has the following subclasses of type Purpose
that are associated with an action via the purpose
property:
PublicAuthorityTask
PersonalRecommendations
The Constraint
class is used to specify expressions that can be used to refine the semantics of an Action or declare the conditions applicable to a Rule. When multiple Constraints apply to the same Rule or Action, then they are interpreted as conjunction and all MUST be satisfied.
A PredicateConstraint class is used for expressions which compare two operands by one relational operator, where the leftOperand is a predicate and the rightOperand is an object. If the comparison returns a match the PredicateConstraint is satisfied, otherwise it is not satisfied. The Constraint class formulates a comparison expression, such as, orcp:organisationType (the leftOperand
) must be equal to (the operator
) orcp:InternationalOrganisation (the rightOperand
).
The Constraint class has the following properties:
uid
property value (of type IRI [[!rfc3987]]) to identify the Constraint.leftOperand
property value of type LeftOperand.operator
property value of type Operator.rightOperand
property value of type RightOperator.Used to define the predicate of the constraint which must be satisfied.
Used to define the operator for the constraint which must be satisfied.
This profile adopts the following top-level Operators:
isA
isAnyOf
Used to define the object of the constraint that must be satisfied.
The Rule
class is the parent of the Permission, Prohibition, Obligations and Dispensation classes. The Rule class represents the common characteristics of these five classes. A Rule class MUST be disjoint with all other Rule subclasses.
The Rule class has the following properties:
uid
property values (of type IRI [[!rfc3987]]) to identify the Rule so it MAY be referenced by other Rules.action
property value of type Action.permission
, prohibition
, obligation
or dispensation
property values of type Rule.constraint
property values of type Constraint.legalBasis
property values to identify the LegalBasis
for processing. purpose
property values to identify the Purpose
of the processing. location
property values to identify the Location
of the resource. We need to determine where we are going to host this page as it effects the namespace "@context": "https://ai.wu.ac.at/policies/orcp/odrl_regulatory_profile.jsonid",
A Permission allows an action to be exercised if all constraints are satisfied and if all obligations are fulfilled.
The Permission class is a subclass of, and inherits all the properties from, the Rule class.
Example: Article 6, Paragraph 1, of the GDPR.
"Processing shall be lawful only if and to the extent that at least one of the following applies:
(a) the data subject has given consent to the processing of his or her personal data for one or more specific purposes;
(b) processing is necessary for the performance of a contract to which the data subject is party or in order to take steps at the request of the data subject prior to entering into a contract;
(c) processing is necessary for compliance with a legal obligation to which the controller is subject;
(d) processing is necessary in order to protect the vital interests of the data subject or of another natural person;
(e) processing is necessary for the performance of a task carried out in the public interest or in the exercise of official authority vested in the controller;
(f) processing is necessary for the purposes of the legitimate interests pursued by the controller or by a third party....
For now we ignore the exception specified in Article 6, paragraph 1, point f. We will deal with this in examples 3 & 4.
{ "@context": "https://ai.wu.ac.at/policies/orcp/odrl_regulatory_profile.jsonid", "@type": "Set", "uid": "http://example.com/policy:gdpr-article6", "profile": "http://example.com/odrl:profile:regulatory-compliance", "permission": [{ "uid": "http://example.com/policy:gdpr-article6-para1", "action": "Processing", "data": "PersonalData", "predicateConstraint": { "leftOperand": "legalBasis", "operator": "isAnyOf", "rightOperand": { "@list": [ { "@id": "Consent" }, { "@id": "Contract" }, { "@id": "LegalObligation" }, { "@id": "VitalInterest" }, { "@id": "PublicInterest" }, { "@id": "ExerciseOfOfficialAuthority" }, { "@id": "LegitimateInterest" } ] } } }] }
<http://example.com/policy:gdpr-article6> a orcp:Set ; orcp:permission <http://example.com/policy:gdpr-article-para1> ; odrl:profile <http://example.com/odrl:profile:regulatory-compliance> . <http://example.com/policy:gdpr-article-para1> odrl:action orcp:Processing ; orcp:data orcp:PersonalData ; odrl:predicateConstraint [ odrl:leftOperand orcp:legalBasis ; odrl:operator odrl:isAnyOf ; odrl:rightOperand ( orcp:Consent orcp:Contract orcp:LegalObligation orcp:VitalInterest orcp:PublicInterest orcp:ExerciseOfOfficialAuthority orcp:LegitimateInterest ) ] .
A Prohibition disallows an action to be exercised if all constraints are satisfied.
The Prohibition class is a subclass of, and inherits all the properties from, the Rule class.
Example: Article 6, Paragraph 1, of the GDPR.
"Processing shall be lawful only if and to the extent that at least one of the following applies:
(a) the data subject has given consent to the processing of his or her personal data for one or more specific purposes;
(b) processing is necessary for the performance of a contract to which the data subject is party or in order to take steps at the request of the data subject prior to entering into a contract;
(c) processing is necessary for compliance with a legal obligation to which the controller is subject;
(d) processing is necessary in order to protect the vital interests of the data subject or of another natural person;
(e) processing is necessary for the performance of a task carried out in the public interest or in the exercise of official authority vested in the controller;
(f) processing is necessary for the purposes of the legitimate interests pursued by the controller or by a third party, except where such interests are overridden by the interests or fundamental rights and freedoms of the data subject which require protection of personal data, in particular where the data subject is a child.
{ "@context": "https://ai.wu.ac.at/policies/orcp/odrl_regulatory_profile.jsonid", "@type": "Set", "uid": "http://example.com/policy:gdpr-article6", "profile": "http://example.com/odrl:profile:regulatory-compliance", "permission": [{ "uid": "http://example.com/policy:gdpr-article6-para1", "action": "Processing", "data": "PersonalData", "predicateConstraint": { "leftOperand": "legalBasis", "operator": "isAnyOf", "rightOperand": { "@list": [ { "@id": "Consent" }, { "@id": "Contract" }, { "@id": "LegalObligation" }, { "@id": "VitalInterest" }, { "@id": "PublicInterest" }, { "@id": "ExerciseOfOfficialAuthority" }, { "@id": "LegitimateInterest" } ] } }, "prohibition": [{ "legalBasis": "LegitimateInterest", "predicateConstraint": [{ "leftOperand": "action", "operator": "isA", "rightOperand": "ProcessingEffectingFundamentalRightsAndFreedomsOfTheDataSubject" }] }] }] }
<http://example.com/policy:gdpr-article6> a orcp:Set ; orcp:permission <http://example.com/policy:gdpr-article-para1> ; odrl:profile <http://example.com/odrl:profile:regulatory-compliance> . <http://example.com/policy:gdpr-article-para1> odrl:action orcp:Processing ; orcp:data orcp:PersonalData ; odrl:predicateConstraint [ odrl:leftOperand orcp:legalBasis ; odrl:operator odrl:isAnyOf ; odrl:rightOperand ( orcp:Consent orcp:Contract orcp:LegalObligation orcp:VitalInterest orcp:PublicInterest orcp:ExerciseOfOfficialAuthority orcp:LegitimateInterest ) ] ; orcp:prohibition [ orcp:legalBasis orcp:LegitimateInterest ; odrl:predicateConstraint [ odrl:leftOperand odrl:action ; odrl:operator odrl:isA ; odrl:rightOperand orcp:ProcessingEffectingFundamentalRightsAndFreedomsOfTheDataSubject ] ].
An Obligation is requirement to perform an action. An Obligation is fulfilled if all constraints are satisfied and if its action has been exercised.
The Obligation class is a subclass of, and inherits all the properties from, the Rule class.
Example: transfers. Transfers are permitted if there are binding corporate rules in accordance with Article 47; ....
{ "@context": "https://ai.wu.ac.at/policies/orcp/odrl_regulatory_profile.jsonid", "@type": "Set", "uid": "http://example.com/policy:gdpr-article46", "profile": "http://example.com/odrl:profile:regulatory-compliance", "permission": [{ "action": "Transfer", "data": "PersonalData", "predicateConstraint": [{ "or": { "@list": [{ "leftOperand": "organisationType", "operator": "isA", "rightOperand": { "@id": "InternationalOrganisation" } },{ "leftOperand": "recipientLocation", "operator": "isA", "rightOperand": { "@id": "ThirdCountry" } }] } }], "obligation": [{ "predicateConstraint": [{ "leftOperand": "appropriateSafeguards", "operator": "isAnyOf", "rightOperand": { "@list": [ { "@id": "LegallyBindingEnforceableInstrument" }, { "@id": "BindingCorporateRules" }, { "@id": "StandardDataProtectionClauses" }, { "@id": "ApprovedCodeOfConduct" }, { "@id": "ApprovedCertificateMechanism" } ]} }] },{ "predicateConstraint": [{ "leftOperand": "dataSubjectProvisions", "operator": "isA", "rightOperand": { "@id": "EnforceableDataSubjectRights"} }] },{ "predicateConstraint": [{ "leftOperand": "dataSubjectProvisions", "operator": "isA", "rightOperand": { "@id": "LegalRemediesForDataSubjects"} }] }] }] }
<http://example.com/policy:gdpr-article46> a orcp:Set ; odrl:profile <http://example.com/odrl:profile:regulatory-compliance> ; orcp:permission [ odrl:action orcp:Transfer ; orcp:data orcp:PersonalData ; odrl:predicateConstraint [ odrl:or ( [ odrl:leftOperand orcp:organisationType ; odrl:operator odrl:isA ; odrl:rightOperand orcp:InternationalOrganisation ] [ odrl:leftOperand orcp:recipientLocation ; odrl:operator odrl:isA ; odrl:rightOperand orcp:ThirdCountry ] ) ] ; orcp:obligation [ odrl:predicateConstraint [ odrl:leftOperand orcp:dataSubjectProvisions ; odrl:operator odrl:isA ; odrl:rightOperand orcp:EnforceableDataSubjectRights ] ], [ odrl:predicateConstraint [ odrl:leftOperand orcp:dataSubjectProvisions ; odrl:operator odrl:isA ; odrl:rightOperand orcp:LegalRemediesForDataSubjects ] ], [ odrl:predicateConstraint [ odrl:leftOperand orcp:appropriateSafeguards ; odrl:operator odrl:isAnyOf ; odrl:rightOperand ( orcp:LegallyBindingEnforceableInstrument orcp:BindingCorporateRules orcp:StandardDataProtectionClauses orcp:ApprovedCodeOfConduct orcp:ApprovedCertificateMechanism ) ] ] ] .
A Dispensation is an exemption from the obligation to perform an action.
The Dispensation class is a subclass of, and inherits all the properties from, the Rule class.
Example: Article 6 paragraph 2. ...... Point f of the first subparagraph shall not apply to processing carried out by public authorities in the performance of their tasks.
{ "@context": "https://ai.wu.ac.at/policies/orcp/odrl_regulatory_profile.jsonid", "@type": "Set", "uid": "http://example.com/policy:gdpr-article6", "profile": "http://example.com/odrl:profile:regulatory-compliance", "permission": [{ "uid": "http://example.com/policy:gdpr-article6-para1", "action": "Processing", "data": "PersonalData", "predicateConstraint": { "leftOperand": "legalBasis", "operator": "isAnyOf", "rightOperand": { "@list": [ { "@id": "Consent" }, { "@id": "Contract" }, { "@id": "LegalObligation" }, { "@id": "VitalInterest" }, { "@id": "PublicInterest" }, { "@id": "ExerciseOfOfficialAuthority" }, { "@id": "LegitimateInterest" } ] } }, "prohibition": [{ "legalBasis": "LegitimateInterest", "predicateConstraint": [{ "leftOperand": "action", "operator": "isA", "rightOperand": "ProcessingEffectingFundamentalRightsAndFreedomsOfTheDataSubject" }], "dispensation": [{ "predicateConstraint": [{ "and": { "@list": [{ "leftOperand": "organisationType", "operator": "isA", "rightOperand": "PublicAuthority" },{ "leftOperand": "purpose", "operator": "isA", "rightOperand": "PublicAuthorityTask" }] } }] }] }] }] }
<http://example.com/policy:gdpr-article6> a orcp:Set ; orcp:permission <http://example.com/policy:gdpr-article-para1> ; odrl:profile <http://example.com/odrl:profile:regulatory-compliance> . <http://example.com/policy:gdpr-article-para1> odrl:action orcp:processing ; orcp:data orcp:PersonalData ; odrl:predicateConstraint [ odrl:leftOperand orcp:legalBasis ; odrl:operator odrl:isAnyOf ; odrl:rightOperand ( orcp:Consent orcp:Contract orcp:LegalObligation orcp:VitalInterest orcp:PublicInterest orcp:ExerciseOfOfficialAuthority orcp:LegitimateInterest ) ] ; orcp:prohibition [ orcp:legalBasis orcp:LegitimateInterest ; odrl:predicateConstraint [ odrl:leftOperand odrl:action ; odrl:operator odrl:isA ; odrl:rightOperand orcp:ProcessingEffectingFundamentalRightsAndFreedomsOfTheDataSubject ] ; orcp:dispensation [ odrl:predicateConstraint [ odrl:and ( [ odrl:leftOperand orcp:organisationType ; odrl:operator odrl:isA ; odrl:rightOperand orcp:PublicAuthority ] [ odrl:leftOperand orcp:purpose ; odrl:operator odrl:isA ; odrl:rightOperand orcp:PublicAuthorityTask ] ) ] ] ] .
A relation
property is used to link a Rule to a Resource. The relation
property itself is abstract; sub-properties represent explicit semantics of the relationship between the Resource and the Rule.
The profile has the following sub-properties of relation
:
data
: indicates the Resource referred to in the rule.A function
property is used to link a Rule to a Party, indicating the function undertaken by the Party in respect to the Rule that links to it. The function
property itself is abstract; sub-properties represent explicit semantics of the functional role between the Party and the Rule.
The profile has the following sub-properties of function
:
controller
processor
sender
recipient
responsibleParty
A property that is used to relate an Action to a Rule.
Specifies a constraint which must be satisfied in order for the rule to be valid.
A property that allows for the nesting of rules of type Permission, Prohibition, Obligation, or Dispensation.
A property used to assert the legal basis for processing. This property is used to link a Rule to a LegalBasis.
A property used to assert the purpose for the processing. This property is used to link a Rule to a Purpose.
A property used to assert the location of the processing. This property is used to link a Rule to a Location.
A property used to assert the location where the recipient is located. This property is used to link a Rule to a Location.
A property used to assert the type of organisation. This property is used to link a Rule to a Party.
A property used to assert the type of safeguards that are in place. This property is used to link a Rule to a Resource of type AppropriateSafeguards.
A property used to assert the data subject provisions that are in place. This property is used to link a Rule to a Resource of type DataSubjectProvisions.
In this chapter we demonstrate how Article 6 Lawfulness of processing and Article 46 Transfers subject to appropriate safeguards would be modelled using the proposed ODRL Regulatory Compliance Profile.
According to Article 6, Paragraph 1, of the GDPR:
"Processing shall be lawful only if and to the extent that at least one of the following applies:
(a) the data subject has given consent to the processing of his or her personal data for one or more specific purposes;
(b) processing is necessary for the performance of a contract to which the data subject is party or in order to take steps at the request of the data subject prior to entering into a contract;
(c) processing is necessary for compliance with a legal obligation to which the controller is subject;
(d) processing is necessary in order to protect the vital interests of the data subject or of another natural person;
(e) processing is necessary for the performance of a task carried out in the public interest or in the exercise of official authority vested in the controller;
(f) processing is necessary for the purposes of the legitimate interests pursued by the controller or by a third party, except where such interests are overridden by the interests or fundamental rights and freedoms of the data subject which require protection of personal data, in particular where the data subject is a child.
Point (f) of the first subparagraph shall not apply to processing carried out by public authorities in the performance of their tasks."
Example: Article 6 Lawfulness of processing.
{ "@context": "https://ai.wu.ac.at/policies/orcp/odrl_regulatory_profile.jsonid", "@type": "Set", "uid": "http://example.com/policy:gdpr-article6", "profile": "http://example.com/odrl:profile:regulatory-compliance", "permission": [{ "uid": "http://example.com/policy:gdpr-article6-para1", "action": "Processing", "data": "PersonalData", "predicateConstraint": { "leftOperand": "legalBasis", "operator": "isAnyOf", "rightOperand": { "@list": [ { "@id": "Consent" }, { "@id": "Contract" }, { "@id": "LegalObligation" }, { "@id": "VitalInterest" }, { "@id": "PublicInterest" }, { "@id": "ExerciseOfOfficialAuthority" }, { "@id": "LegitimateInterest" } ] } }, "prohibition": [{ "legalBasis": "LegitimateInterest", "predicateConstraint": [{ "leftOperand": "action", "operator": "isA", "rightOperand": "ProcessingEffectingFundamentalRightsAndFreedomsOfTheDataSubject" }], "dispensation": [{ "predicateConstraint": [{ "and": { "@list": [{ "leftOperand": "organisationType", "operator": "isA", "rightOperand": "PublicAuthority" },{ "leftOperand": "purpose", "operator": "isA", "rightOperand": "PublicAuthorityTask" }] } }] }] }] }] }
<http://example.com/policy:gdpr-article6> a orcp:Set ; orcp:permission <http://example.com/policy:gdpr-article-para1> ; odrl:profile <http://example.com/odrl:profile:regulatory-compliance> . <http://example.com/policy:gdpr-article-para1> odrl:action orcp:Processing ; orcp:data orcp:PersonalData ; odrl:predicateConstraint [ odrl:leftOperand orcp:legalBasis ; odrl:operator odrl:isAnyOf ; odrl:rightOperand ( orcp:Consent orcp:Contract orcp:LegalObligation orcp:VitalInterest orcp:PublicInterest orcp:ExerciseOfOfficialAuthority orcp:LegitimateInterest ) ] ; orcp:prohibition [ orcp:legalBasis orcp:LegitimateInterest ; odrl:predicateConstraint [ odrl:leftOperand odrl:action ; odrl:operator odrl:isA ; odrl:rightOperand orcp:ProcessingEffectingFundamentalRightsAndFreedomsOfTheDataSubject ] ; orcp:dispensation [ odrl:predicateConstraint [ odrl:and ( [ odrl:leftOperand orcp:organisationType ; odrl:operator odrl:isA ; odrl:rightOperand orcp:PublicAuthority ] [ odrl:leftOperand orcp:purpose ; odrl:operator odrl:isA ; odrl:rightOperand orcp:PublicAuthorityTask ] ) ] ] ] .
Example: Processing, inside the EU, with consent of the data subject.
{ "@context": "https://ai.wu.ac.at/policies/orcp/odrl_regulatory_profile.jsonid", "@type": "Set", "uid": "http://example.com/policy:bp-processing-withLegalBasis", "profile": "http://example.com/odrl:profile:regulatory-compliance", "permission": [{ "action": "Processing", "data": "PersonalData", "controller": "http://example.com/CompanyA", "purpose" : "PersonalRecommendations", "processingLocation" : "EU", "legalBasis": "Consent", "responsibleParty": "Controller" }] }
<http://example.com/policy:policy:bp-processing-withLegalBasis> a orcp:Set ; odrl:profile <http://example.com/odrl:profile:regulatory-compliance> ; orcp:permission [ odrl:action orcp:Processing ; orcp:data orcp:PersonalData ; orcp:controller <http://example.com/CompanyA> ; orcp:purpose orcp:PersonalRecommendations ; orcp:ProcessingLocation orcp:EU ; orcp:legalBasis orcp:Consent ; odrl:responsibleParty orcp:Controller ] .
Example: Processing, inside the EU, with consent of the data subject, without a legal basis.
{ "@context": "https://ai.wu.ac.at/policies/orcp/odrl_regulatory_profile.jsonid", "@type": "Set", "uid": "http://example.com/policy:bp-processing-withoutLegalBasis", "profile": "http://example.com/odrl:profile:regulatory-compliance", "permission": [{ "action": "Processing", "data": "PersonalData", "controller": "http://example.com/CompanyA", "purpose" : "PersonalRecommendations", "processingLocation" : "EU", "responsibleParty": "Controller" }] }
<http://example.com/policy:bp-processing-withoutLegalBasis> a orcp:Set ; odrl:profile <http://example.com/odrl:profile:regulatory-compliance> ; orcp:permission [ odrl:action orcp:Processing ; orcp:data orcp:PersonalData ; orcp:controller <http://example.com/CompanyA> ; orcp:purpose orcp:PersonalRecommendations ; orcp:ProcessingLocation orcp:EU ; odrl:responsibleParty orcp:Controller ] .
According to Article 46, of the GDPR:
1. In the absence of a decision pursuant to Article 45(3), a controller or processor may transfer personal data to a third country or an international organisation only if the controller or processor has provided appropriate safeguards, and on condition that enforceable data subject rights and effective legal remedies for data subjects are available.
2.The appropriate safeguards referred to in paragraph 1 may be provided for, without requiring any specific authorisation from a supervisory authority, by:
(a) a legally binding and enforceable instrument between public authorities or bodies;
(b) binding corporate rules in accordance with Article 47;
(c) standard data protection clauses adopted by the Commission in accordance with the examination procedure referred to in Article 93(2);
(d) standard data protection clauses adopted by a supervisory authority and approved by the Commission pursuant to the examination procedure referred to in Article 93(2);
(e) an approved code of conduct pursuant to Article 40 together with binding and enforceable commitments of the controller or processor in the third country to apply the appropriate safeguards, including as regards data subjects' rights; or
(f) an approved certification mechanism pursuant to Article 42 together with binding and enforceable commitments of the controller or processor in the third country to apply the appropriate safeguards, including as regards data subjects' rights.
Example: Article 46 Transfers subject to appropriate safeguards.
{ "@context": "https://ai.wu.ac.at/policies/orcp/odrl_regulatory_profile.jsonid", "@type": "Set", "uid": "http://example.com/policy:gdpr-article46", "profile": "http://example.com/odrl:profile:regulatory-compliance", "permission": [{ "action": "Transfer", "data": "PersonalData", "predicateConstraint": [{ "or": { "@list": [{ "leftOperand": "organisationType", "operator": "isA", "rightOperand": { "@id": "InternationalOrganisation" } },{ "leftOperand": "recipientLocation", "operator": "isA", "rightOperand": { "@id": "ThirdCountry" } }] } }], "obligation": [{ "predicateConstraint": [{ "leftOperand": "appropriateSafeguards", "operator": "isAnyOf", "rightOperand": { "@list": [ { "@id": "LegallyBindingEnforceableInstrument" }, { "@id": "BindingCorporateRules" }, { "@id": "StandardDataProtectionClauses" }, { "@id": "ApprovedCodeOfConduct" }, { "@id": "ApprovedCertificateMechanism" } ]} }] },{ "predicateConstraint": [{ "leftOperand": "dataSubjectProvisions", "operator": "isA", "rightOperand": { "@id": "EnforceableDataSubjectRights"} }] },{ "predicateConstraint": [{ "leftOperand": "dataSubjectProvisions", "operator": "isA", "rightOperand": { "@id": "LegalRemediesForDataSubjects"} }] }] }] }
<http://example.com/policy:gdpr-article46> a orcp:Set ; odrl:profile <http://example.com/odrl:profile:regulatory-compliance> ; orcp:permission [ odrl:action orcp:Transfer ; orcp:data orcp:PersonalData ; odrl:predicateConstraint [ odrl:or ( [ odrl:leftOperand orcp:organisationType ; odrl:operator odrl:isA ; odrl:rightOperand orcp:InternationalOrganisation ] [ odrl:leftOperand orcp:recipientLocation ; odrl:operator odrl:isA ; odrl:rightOperand orcp:ThirdCountry ] ) ] ; orcp:obligation [ odrl:predicateConstraint [ odrl:leftOperand orcp:dataSubjectProvisions ; odrl:operator odrl:isA ; odrl:rightOperand orcp:EnforceableDataSubjectRights ] ], [ odrl:predicateConstraint [ odrl:leftOperand orcp:dataSubjectProvisions ; odrl:operator odrl:isA ; odrl:rightOperand orcp:LegalRemediesForDataSubjects ] ], [ odrl:predicateConstraint [ odrl:leftOperand orcp:appropriateSafeguards ; odrl:operator odrl:isAnyOf ; odrl:rightOperand ( orcp:LegallyBindingEnforceableInstrument orcp:BindingCorporateRules orcp:StandardDataProtectionClauses orcp:ApprovedCodeOfConduct orcp:ApprovedCertificateMechanism ) ] ] ] .
Transfer outside the EU by an international organisation.
{ "@context": "https://ai.wu.ac.at/policies/orcp/odrl_regulatory_profile.jsonid", "@type": "Set", "uid": "http://example.com/policy:bp-transfer-withSafeguards", "profile": "http://example.com/odrl:profile:regulatory-compliance", "permission": [{ "action": "Transfer", "data": "PersonalData", "responsibleParty": "Controller", "organisationType": "InternationalOrganisation", "sender": "http://example.com/CompanyA_Ireland", "recipient": "http://example.com/CompanyA_USA", "recipientLocation": "ThirdCountry", "purpose": "PersonalRecommendations", "legalBasis": "Consent", "dataSubjectProvisions": "EnforceableDataSubjectRights", "dataSubjectProvisions": "LegalRemediesForDataSubjects", "appropriateSafeguards": "BindingCorporateRules" }] }
<http://example.com/policy:bp-transfer-withSafeguards> a orcp:Set ; odrl:profile <http://example.com/odrl:profile:regulatory-compliance> ; orcp:permission [ odrl:action orcp:Transfer ; orcp:data orcp:PersonalData ; orcp:responsibleParty orcp:Controller ; orcp:organisationType orcp:InternationalOrganisation ; orcp:sender <http://example.com/CompanyA_Ireland> ; orcp:recipient <http://example.com/CompanyA_USA> ; orcp:recipientLocation orcp:ThirdCountry ; orcp:purpose orcp:PersonalRecommendations ; orcp:legalBasis orcp:Consent ; odrl:dataSubjectProvisions orcp:EnforceableDataSubjectRights ; odrl:dataSubjectProvisions orcp:LegalRemediesForDataSubjects ; orcp:appropriateSafeguards orcp:BindingCorporateRules ] .
Transfer outside the EU by an international organisation without appropriate safeguards.
{ "@context": "https://ai.wu.ac.at/policies/orcp/odrl_regulatory_profile.jsonid", "@type": "Set", "uid": "http://example.com/policy:bp-transfer-withoutSafeguards", "profile": "http://example.com/odrl:profile:regulatory-compliance", "permission": [{ "action": "Transfer", "data": "PersonalData", "responsibleParty": "Controller", "organisationType": "InternationalOrganisation", "sender": "http://example.com/CompanyA_Ireland", "recipient": "http://example.com/CompanyA_USA", "recipientLocation": "ThirdCountry", "purpose": "PersonalRecommendations", "legalBasis": "Consent", "dataSubjectProvisions": "EnforceableDataSubjectRights", "dataSubjectProvisions": "LegalRemediesForDataSubjects" }] }
<http://example.com/policy:bp-transfer-withoutSafeguards> a orcp:Set ; odrl:profile <http://example.com/odrl:profile:regulatory-compliance> ; orcp:permission [ odrl:action orcp:Transfer ; orcp:data orcp:PersonalData ; orcp:responsibleParty orcp:Controller ; orcp:organisationType orcp:InternationalOrganisation ; orcp:sender <http://example.com/CompanyA_Ireland> ; orcp:recipient <http://example.com/CompanyA_USA> ; orcp:recipientLocation orcp:ThirdCountry ; orcp:purpose orcp:PersonalRecommendations ; orcp:legalBasis orcp:Consent ; odrl:dataSubjectProvisions orcp:EnforceableDataSubjectRights ; odrl:dataSubjectProvisions orcp:LegalRemediesForDataSubjects ] .