Skip to content

Commit

Permalink
DPV v0.2 with documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
coolharsh55 committed Jan 13, 2021
1 parent 8062d7b commit cee6df0
Show file tree
Hide file tree
Showing 51 changed files with 30,016 additions and 25,728 deletions.
33 changes: 33 additions & 0 deletions changelog.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<!DOCTYPE html>
<html>
<head>
<title>Changelog for Data Privacy Vocabulary</title>
<style type="text/css">
body {
max-width: 38rem;
margin: auto;
line-height: 1.5;
}
</style>
</head>
<body>
<h1>Changelog - DPV</h1>
<section id="dpv-v0.2">
<h2>[v0.2] -<time datetime="2021-01-06">14 Jan 2021</time></h2>
<h3>Release Notes</h3>
<p>v0.2 represents an update to v0.1 in terms of added new concepts in the hierarchy, expanded base vocabulary, and some backwards-incompatible changes.</p>
<p>The <b>core/base vocabulary</b> has new concepts for <em>Risk</em>, <em>Right</em>, and <em>DataSubjectRight</em>. These are associated with <em>PersonalDataHandling</em> using the relations <em>hasRisk</em> and <em>hasRight</em> respectively.</p>
<p><b>Personal Data Categories</b> has new concepts for <em>BrowsingReferral</em>, <em>PaymentCard</em>, <em>PaymentCardNumber</em>, <em>PaymentCardExpiry</em>, <em>DeviceSoftware</em>, <em>DeviceOperatingSystem</em>, <em>DeviceApplications</em>, <em>AuthenticationHistory</em></p>
<p><b>Purposes</b> has new concepts for <em>Marketing</em>, <em>DirectMarketing</em>, <em>Advertising</em>, <em>PersonalisedAdvertising</em>, <em>UsageAnalytics</em>, <em>CommunicationForCustomerCare</em>, <em>LegalCompliance</em>, <em>Payment</em>, <em>SocialMediaMarketing</em>, <em>RegistrationAuthentication</em></p>
<p><b>Processing</b> attributes, such as those for indicating systematic monitoring, large scale, etc. have been removed as boolean properties and added as classes. Full list: <em>SystematicMonitoring</em>, <em>EvaluationScoring</em>, <em>MatchingCombining</em>, <em>AutomatedDecisionMaking</em>, <em>LargeScaleProcessing</em>, <em>InnovativeUseOfNewTechnologies</em>. This is so as to enable assocaiting additional information and semantics for concepts, such as specific types, categories, relations, and enable broader use in context of processing. For example, indicating the specific algorithm or process for automated decision making - which could not be indicated using a boolean value. In addition to these, the concept for <em>DataSource</em> has been added. Generic properties added are: <em>hasDataSource</em>, <em>hasAlgorithmicLogic</em>, <em>hasConsequences</em>, <em>hasHumanInvolvement</em>.</p>
<p><b>Technical and Organisational Measures</b> have new concepts for: <em>SingleSignOn</em>, <em>ImpactAssessment</em>, <em>PIA</em>, <em>DPIA</em>, <em>Consultation</em>, <em>ConsultationWithAuthority</em>. The concept <em>RiskMitigationMeasure</em> and its associated property <em>mitigatesRisk</em> has been added to indicate risk and mitigation. The existing properties for storage, location, duration, and measure implementation have been modified to avoid name duplication. For example, <em>storage</em> as a property and <em>Storage</em> as a concept are equivalent when used as HTML identifiers. To avoid this, the names have been prefixed, which also adds consistency to the vocabulary naming. The properties are: <em>measureImplementedBy</em>, <em>hasStorage</em>, <em>hasLocation</em>, <em>hasDuration</em>.</p>
<p><b>Entities</b> added as new concepts include <em>LegalEntity</em>, <em>DataSubProcessor</em>, <em>Child</em>, <em>DataProtectionOfficer</em>, <em>Representative</em>, <em>Authority</em>, <em>DataProtectionAuthority</em>, <em>VulnerableDataSubject</em>. Generic properties for expressing information about entities added are: <em>hasName</em>, <em>hasAddress</em>, <em>hasContact</em>, <em>hasIdentifier</em>, <em>hasRepresentative</em>.</p>
</section>
<section id="dpv-v0.1">
<h2>[v0.1] - <time datetime="2020-11-19">19 Nov 2020</time></h2>
<h3>Release Notes</h3>
<p>v0.1 consists of the first release in 18-JUN-2019, and includes subsequent updates till the last update on 19-NOV-2020. This version introduced the 'core' concepts of DPV, or the base vocabulary, and a taxonomical hierarchy of concepts expanding the vocabulary.</p>
<p>The various changes to the vocabulary have all been consolidated under a single version, namely v0.1. Moving forward, the vocabulary will utilise semantic versioning of the form MAJOR.MINOR.TRIVIAL. The v0.x notation denotes the ongoing progress towards a stable and mature vocabulary which will be finalised as v1.</p>
</section>
</body>
</html>
193 changes: 193 additions & 0 deletions diagrams/base_vocab_alternate_001.graphml
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
<!--Created by yEd 3.20.1-->
<key attr.name="Description" attr.type="string" for="graph" id="d0"/>
<key for="port" id="d1" yfiles.type="portgraphics"/>
<key for="port" id="d2" yfiles.type="portgeometry"/>
<key for="port" id="d3" yfiles.type="portuserdata"/>
<key attr.name="url" attr.type="string" for="node" id="d4"/>
<key attr.name="description" attr.type="string" for="node" id="d5"/>
<key for="node" id="d6" yfiles.type="nodegraphics"/>
<key for="graphml" id="d7" yfiles.type="resources"/>
<key attr.name="url" attr.type="string" for="edge" id="d8"/>
<key attr.name="description" attr.type="string" for="edge" id="d9"/>
<key for="edge" id="d10" yfiles.type="edgegraphics"/>
<graph edgedefault="directed" id="G">
<data key="d0"/>
<node id="n0">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="50.0" width="200.0" x="934.0" y="55.400000000000006"/>
<y:Fill color="#FFFF00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="22.625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="183.875" x="8.0625" y="13.6875">PersonalDataCategory</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n1">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="50.0" width="100.0" x="580.0" y="55.400000000000006"/>
<y:Fill color="#FFFF00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="22.625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="90.0703125" x="4.96484375" y="13.6875">Processing</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n2">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="50.0" width="100.0" x="301.6" y="55.400000000000006"/>
<y:Fill color="#FFFF00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="22.625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="68.4921875" x="15.75390625" y="13.6875">Purpose</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n3">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="50.0" width="100.0" x="1000.0" y="135.4"/>
<y:Fill color="#FFFF00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="22.625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="79.0625" x="10.46875" y="13.6875">Recipient</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n4">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="50.0" width="100.0" x="250.0" y="286.0"/>
<y:Fill color="#FFFF00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="22.625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="89.0625" x="5.46875" y="13.6875">LegalBasis</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n5">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="50.0" width="275.0" x="912.5" y="215.0"/>
<y:Fill color="#FFFF00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="22.625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="265.296875" x="4.8515625" y="13.6875">TechnicalOrganisationalMeasure</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n6">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="44.0" width="81.96822102864604" x="409.015889485677" y="289.0"/>
<y:Fill color="#FFFF00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="22.625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.1640625" x="22.402079264322992" y="10.6875">Risk</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<edge id="e0" source="n1" target="n0">
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="-100.0" ty="-0.0"/>
<y:LineStyle color="#000080" type="line" width="1.0"/>
<y:Arrows source="circle" target="delta"/>
<y:EdgeLabel alignment="center" backgroundColor="#FFFFFF" distance="2.0" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasLineColor="false" height="22.625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000080" verticalTextPosition="bottom" visible="true" width="212.15625" x="20.935546875" y="-11.312501525878929">hasPersonalDataCategory<y:LabelModel>
<y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartEdgeLabelModelParameter angle="0.0" distance="45.0" distanceToCenter="false" position="center" ratio="0.5" segment="0"/>
</y:ModelParameter>
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e1" source="n2" target="n1">
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000080" type="line" width="1.0"/>
<y:Arrows source="circle" target="delta"/>
<y:EdgeLabel alignment="center" backgroundColor="#FFFFFF" distance="2.0" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasLineColor="false" height="22.625" horizontalTextPosition="center" iconTextGap="4" modelName="centered" modelPosition="center" preferredPlacement="anywhere" ratio="0.5" textColor="#000080" verticalTextPosition="bottom" visible="true" width="118.3515625" x="30.03321533203126" y="-11.3125015258789">hasProcessing<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e2" source="n2" target="n4">
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000080" type="line" width="1.0"/>
<y:Arrows source="circle" target="delta"/>
<y:EdgeLabel alignment="center" backgroundColor="#FFFFFF" distance="2.0" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasLineColor="false" height="22.625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000080" verticalTextPosition="bottom" visible="true" width="117.34375" x="-86.1068580918689" y="111.29425556571746">hasLegalBasis<y:LabelModel>
<y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartEdgeLabelModelParameter angle="0.0" distance="10.0" distanceToCenter="false" position="center" ratio="0.7184935505416528" segment="-1"/>
</y:ModelParameter>
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e3" source="n1" target="n3">
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="3.7059837500000867" ty="2.36714000000012">
<y:Point x="840.0" y="162.76714000000013"/>
</y:Path>
<y:LineStyle color="#000080" type="line" width="1.0"/>
<y:Arrows source="circle" target="delta"/>
<y:EdgeLabel alignment="center" backgroundColor="#FFFFFF" distance="2.0" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasLineColor="false" height="22.625" horizontalTextPosition="center" iconTextGap="4" modelName="centered" modelPosition="center" preferredPlacement="anywhere" ratio="0.5" textColor="#000080" verticalTextPosition="bottom" visible="true" width="107.34375" x="30.877197265625" y="21.849718955799005">hasRecipient<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e4" source="n1" target="n5">
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="9.266609374999746" sy="5.6158781249997105" tx="0.0" ty="0.0">
<y:Point x="705.69" y="240.0"/>
</y:Path>
<y:LineStyle color="#000080" type="line" width="1.0"/>
<y:Arrows source="circle" target="delta"/>
<y:EdgeLabel alignment="center" backgroundColor="#FFFFFF" distance="2.0" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasLineColor="false" height="22.625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000080" verticalTextPosition="bottom" visible="true" width="293.578125" x="-70.1890322180858" y="160.21719007830916">hasTechnicalOrganisationalMeasure<y:LabelModel>
<y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartEdgeLabelModelParameter angle="0.0" distance="36.90636854510609" distanceToCenter="true" position="right" ratio="0.1791808359790547" segment="-1"/>
</y:ModelParameter>
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e5" source="n2" target="n6">
<data key="d9"/>
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="10.066609374999757" sy="5.215878124999705" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000080" type="line" width="1.0"/>
<y:Arrows source="circle" target="delta"/>
<y:EdgeLabel alignment="center" backgroundColor="#FFFFFF" distance="2.0" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasLineColor="false" height="22.625" horizontalTextPosition="center" iconTextGap="4" modelName="centered" modelPosition="center" preferredPlacement="anywhere" ratio="0.5" textColor="#000080" verticalTextPosition="bottom" visible="true" width="65.4453125" x="3.2569261745335325" y="80.48998565673827">hasRisk<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
</graph>
<data key="d7">
<y:Resources/>
</data>
</graphml>
Binary file added diagrams/base_vocab_alternate_001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit cee6df0

Please sign in to comment.