Copyright © 2025 the Contributors to the Rules Specification, published by the Data Privacy Vocabularies and Controls Community Group under the W3C Community Final Specification Agreement (FSA). A human-readable summary is available.
Contributors: (ordered alphabetically) Arthit Suriyawongkul (ADAPT Centre, Trinity College Dublin), Axel Polleres (Vienna University of Economics and Business), Beatriz Esteves (IDLab, IMEC, Ghent University), Bud Bruegger (Unabhängige Landeszentrum für Datenschutz Schleswig-Holstein), Damien Desfontaines (No affiliation provided), Danielle Welter (University of Luxembourg), David Hickey (Dublin City University), Delaram Golpayegani (ADAPT Centre, Trinity College Dublin), Elmar Kiesling (Vienna University of Technology), Fajar Ekaputra (Vienna University of Technology), Georg P. Krog (Signatu AS), Harshvardhan J. Pandit (AI Accountability Lab (AIAL), Trinity College Dublin), Iain Henderson (JLINC Labs), Javier Fernández (Vienna University of Economics and Business), Julian Flake (University of Koblenz), Julio Hernandez (Dublin City University), Mark Lizar (OpenConsent/Kantara Initiative), Maya Borges (Danish Agency for Digitisation), Paul Ryan (Uniphar PLC), Piero Bonatti (Università di Napoli Federico II), Rana Saniei (Universidad Politécnica de Madrid), Rob Brennan (University College Dublin), Rudy Jacob (Proximus), Simon Steyskal (Siemens), Steve Hickman (Epistimis LLC). NOTE: The affiliations are informative, do not represent formal endorsements, and may be outdated as this list is generated automatically from existing data.
This document provides additional details and examples for rules concepts for permission, prohibition, and obligation used in the Data Privacy Vocabulary [DPV], and is a companion to the [DPV] specification.
DPV Specifications: The [DPV] is the core specification within the DPV family, with the following extensions: Personal Data [PD], Locations [LOC], Risk Management [RISK], Technology [TECH] and [AI], [JUSTIFICATIONS], [SECTOR] specific extensions, and [LEGAL] extensions modelling specific jurisdictions and regulations. A [PRIMER] introduces the concepts and modelling of DPV specifications, and [GUIDES] describe application of DPV for specific applications and use-cases. The Search Index page provides a searchable hierarchy of all concepts. The Data Privacy Vocabularies and Controls Community Group (DPVCG) develops and manages these specifications through GitHub. For meetings, see the DPVCG calendar.
To cite and understand the structure of DPV, the article "Data Privacy Vocabulary (DPV) - Version 2.0" (2024) describes the current state of DPV and extensions from version 2.0 onwards (open access version here). The earlier article "Creating A Vocabulary for Data Privacy" (2019) describes how the DPV was developed (open access versions here, here, and here).
Contributing: The DPVCG welcomes participation to improve the DPV and associated resources, including expansion or refinement of concepts, requesting information and applications, and addressing open issues. See contributing guide for further information.
This specification was published by the Data Privacy Vocabularies and Controls Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups.
GitHub Issues are preferred for discussion of this specification.
DPV provides the concept Rule to specify requirements, constraints, and other forms of 'rules' that are associated with specific contexts (e.g., processing activities) using the relation hasRule. DPV provides two categories of rules to broadly represent what is acceptable (AcceptableRule) and unacceptable (UnacceptableRule). DPV also provides concepts to indicate the outcome of assessing the rules as statuses through RuleFulfilmentStatus with distinction between RuleFulfilled, RuleUnfulfilled, and RuleViolated.
DPV does not define additional semantics for rules and limits its scope and focus to provide a simple way to specify permissions, prohibitions, and obligations as common rules associated with activities, as well as recommendations and deterrence in assessments and guidelines. For a more extensive and richer set of semantics and concepts to represent rules, DPVCG suggests looking towards other languages, such as [ODRL], [SHACL], and [RuleML] that have been developed with the specific goal of representing and applying rules. We welcome contributions for aligning DPV with these, and for providing guidance on how to complement DPV's rule-based concepts with external languages.
DPV's Rules are broadly categorised as AcceptableRule to indicate something is desired and can or should be allowed to happen - including the undesirability of it not occurring, and UnacceptableRule to indicate the opposite i.e. something that is undesirable to occur or it is desirable for it to not occur. These categories are only indicative as a way to group the specific concepts together based on commonality of interpretation and application.
The rules concepts are based on specific phrasing defined in Request for Comments Summary RFC Numbers 2100-2199 that allows a standardised and consistent interpretation of the rules and provides a way to detect and represent them in textual forms and documentation. The table below summarises this association.
| Concept | RFC 2119 Keyword |
|---|---|
| Permission | MAY |
| Recommendation | SHOULD |
| Obligation | MUST |
| Prohibition | MUST NOT |
| Deterrence | SHOULD NOT |
| Not Provided | MAY NOT |
Permission refers to the indicated context being allowed or approved to be carried out. Permissions are only a 'permissive signal' i.e. it is not necessary to carry out an activity just because it is permitted (see obligation for this). Permissions can be used to record what has been permitted, such as in use-cases for policies, agreements, consent records, and risk assessments. Permission is indicated/associated using the relation hasPermission, and is typically indicated in textual form through the [RFC2199] keyword MAY.
A Permission means an optional acceptability, where the default or expectation is that something is not occurring and it is permissible to let it occur. Thus, when evaluating permissions, the only possible outcomes are whether it has or has not been utilised (see the fulfilment statuses).
Recommendation refers to the indicated context being suggested to be carried out. Recommendations are only a 'suggestion' i.e. it is not necessary (see obligation) to carry out an activity, but as it is being recommended, not carrying it out should be accompanied with a justification (see dpv:Justification
that explains why it was not carried out. Recommendations can be used to record what has identified as the 'default' to occur with the possibility that it may not be desirable or may not occur in some cases. Such uses are typical in policies and guidelines. Recommendation is indicated/associated using the relation hasRecommendation, and is typically indicated in textual form through the [RFC2199] keyword SHOULD.
A Recommendation means a desired acceptability, where the default or expectation is that it is permissible to let it occur and it should be occurring. Thus, when evaluating recommendations, the only possible outcomes are whether it has or has not been utilised (see the fulfilment statuses).
Obligation refers to the indicated context being necessary or mandatory to be carried out. Obligations are a 'requirement' i.e. it is necessary to carry out an activity, which implies it is permitted, and that not carrying it out will be a problem or issue or violation. Obligations can be used to issue requirements in use-cases for policies, agreements, consent records, and risk assessments. Obligation is indicated/associated using the relation hasObligation, and is typically indicated in textual form through the [RFC2199] keyword MUST.
An Obligation means a necessary acceptability, where the default or expectation is that something is not occurring and it is necessary to make it occur. Thus, when evaluating obligations, the only possible outcomes are whether it has been fulfilled (i.e. what was said has been carried out), unfulfilled (i.e. not carried out but there is scope to so), and violated (see the fulfilment statuses).
Prohibition refers to the indicated context being necessary or mandatory to NOT be carried out. Prohibitions are a 'requirement' i.e. it is necessary to NOT carry out an activity, which implies it is not permitted, and that carrying it out will be a problem or issue or violation. Prohibitions can be used to issue requirements that are different from obligations in that the implementer must ensure the prohibited part is not being carried out, whereas obligations require that part to be carried out. Prohibition is indicated/associated using the relation hasProhibition, and is typically indicated in textual form through the [RFC2199] keyword MUST NOT.
A Prohibition means a necessary unacceptability, where the default or expectation is that something is not occurring and it is prohibited to let it occur. Thus, when evaluating prohibitions, the only possible outcomes are whether it has been fulfilled (i.e. what was said has NOT been carried out) or violated (see the fulfilment statuses).
Deterrence refers to the indicated context being suggested to NOT be carried out. Deterrences are only a 'suggestion' i.e. it is not necessary (see prohibition) to prevent an activity, but as it is being deterred from being carrying out, it should be accompanied with a justification (see dpv:Justification
that explains why it was carried out. Deterrences can be used to record what has been identified as the 'default' that should not be occurring with the possibility that it may be desirable or may occur in some cases. Such uses are typical in policies and guidelines. Deterrence is indicated/associated using the relation hasDeterrence, and is typically indicated in textual form through the [RFC2199] keyword SHOULD NOT.
A Deterrence means a desired unacceptability, where the default or expectation is that it is not permissible to let it occur and it should be not occurring. Thus, when evaluating recommendations, the only possible outcomes are whether it has or has not been utilised (see the fulfilment statuses).
Rules can be expressed in two forms: (1) by directly declaring them as an instance of a specific rule concept; and (2) by using the relation to declare an interpretation/application of a rule. The example below shows both in use, where the first method uses a relation to indicate whether a process is permitted or prohibited, and the second contains the process itself being declared as permitted or prohibited.
Both methods have their advantages or utility. For Method 1 where relations are used, this allows existing processes to be contextually declared as permitted in one use-case and prohibited in another. For Method 2 where instances are used, this allows annotating processes or use-cases as being permitted or prohibited in entirely -- e.g. in reports. A note of caution: though Method 1 uses relations, it can be inferred that the process is being permitted/prohibited when running a reasoner (which is correct in context).
The DPVCG is exploring representing the state of rule fulfilment through concepts, for example to represent a prohibition has been violated, or an obligation has been fulfilled, or a permission has been utilised. The currently provided concepts for these, represented by the concept RuleFulfilmentStatus and its taxonomy, which are associated using the relation hasFulfilmentStatus, indicate the intent and scope of this work.
The DPVCG is working with ongoing efforts regarding similar modelling of concepts for ODRL implementations, in particular to ensure the concepts in DPV are in sync and compatible with those developed for ODRL. The below issue shows the progress for this.
In meeting SEP-10 the group agreed to include statuses for RuleFulfilmentStatus fulfilment and applicability. These are aimed to provide an overview of whether the rule applies (e.g. permission utilised) and whether it has been successful (e.g. obligation fulfilled). We aim to align this work with external efforts related to ODRL rules for Solid. Proposed future work involves describing rules in relation to:
Though DPV provides concepts representing deontic logic, it does not specify what should be the 'default' interpretation in relation to rules, i.e. it does not provide an interpretation of whether some rules apply automatically unless otherwise declared. For example, in declaring an instance of Process, the assumption is that the activities are modelled for what is happening or what is intended/planned to happen. The explicit annotation using a Permission rule adds information about whether some activity is permitted (and its associated information). Instead, if the use-case is using DPV to only document activities that are permitted, there is no need to explicitly specify the permissions. Similarly, just because something is happening or planned to happen, it cannot be assumed to be permitted (e.g. pending evaluation of legal requirements).
This lack of default interpretation enables modularity in the use of DPV concepts. For example, an instance of dpv:Process which does not have a dpv:hasRule declared within it, can be made part of a rule to specify permissions, prohibitions, or obligations regarding the process. If instead the process had a default interpretation (e.g. permission), then it would require creating a separate instance with the same information - leading to duplicated efforts. While an apparent solution is to create a mechanism whereby the rule in the process is overridden with the intended 'outer' rule or context e.g. to specify the prohibition in one process overrules permission in another process, this prevents the combination of rules to describe situations such as a permission for a larger context within which specific parts are prohibited or obligated.
In representing Rules, DPV only provides the concept and does not express any inherent semantics on what those rules mean in relation to each other. For example, DPV does not express Permission to be non-compatible or disjoint from Prohibition. This is to separate the interpretation and application of rules based on the necessities of a use-case. For example, in a legal investigation it may be prudent to specify permission and prohibition can never occur together, but this may not be true if there are different legal requirements that allow a prohibition to be resolved or deferred, such as through another permission that overrides the prohibition.
Further, as described earlier in the section on default interpretations, it is possible to mix or nest rules such as through processes. For example, if ProcessA is a permitted process and contains ProcessB which is a prohibited process, DPV does not dictate what should be default interpretation for this arrangement. The role of DPV concepts regarding rules, as of now, is to provide a simplified indication of whether something is permitted, prohibited, or obligated. Further interpretations require creation of a formal specification that dictates how rules should function together. For example, depending on the use-case, several interpretations are possible for the example described here:
ProcessA and ProcessB are prohibited because through ProcessA is permitted, ProcessB is within it and is prohibited - thereby prohibiting both processes. Such interpretations prevent modularity - everything is prohibited because something is prohibited, or it is permitted because there are no prohibitions.ProcessA and ProcessB are both permitted since ProcessA gives permission for the entire process and overrides the prohibition in ProcessB. Such interpretations also prevent modularity - everything is permitted because the higher/broader processes are permitted even though there are specific prohibitions at a granular level.ProcessB is prohibited as declared, and the rest of ProcessA without ProcessB is permitted. If there was a further ProcessC that is permitted, and is present within ProcessB, then ProcessC would still be prohibited as the broader prohibition from ProcessB overrides it. Such interpretations permit modularity with permission granted for parts as long as there is no prohibition overriding it from a broader context. In this, a prohibition within a permission still allows the permitted parts to be carried out, whereas a permission within a prohibition would still be prohibited.ProcessA is allowed through its permission, with ProcessB within it being prohibited, except for ProcessC within ProcessB - which is permitted.The above example interpretations only concerned permissions and prohibitions, and did not include obligations - or other concepts such as duties, dispensations, exceptions, and defeasibility. From this, it should be clear how the specification and interpretation of rules can be quite complex and has a large impact on the intended activities and information being documented.
DPV does not define how rules are 'triggered' i.e. how to specify under what conditions a rule should become applicable or is exempted from being applied. Some common triggers for rules to be applied are provided here as examples:
[ODRL] provides a W3C standardised representation for expressing policies containing rules such as for permissions, prohibitions, obligations over 'assets' and the involved 'parties'. While ODRL focuses on providing a general structure for policies without jurisdictional concepts or modelling, it complements DPV by enabling declaration of policies, agreements, and other similar documents in a structured, interoperable, and standardised manner. The DPV concepts enable specifying the exact information within the structure provided by ODRL - which can be useful for two entities to exchange information. For example, in a controller-processor agreement, ODRL can be used to define the agreement in terms of involved parties, their roles, and which entity is responsible for performing which actions, as well as the expected ex-post consequences of those actions - such as for reporting from processor to controller, or to indicate what should be done should a particular requirement is violated.
The DPVCG is interested in formally authorising a shared specification with the ODRL Community Group that outlines the use of DPV concepts for/with ODRL. The current proposal for this is to create an ODRL profile that declares DPV concepts in context of ODRL's conceptual model and through which DPV concepts can be correctly declared and used in ODRL. The current draft guidance document for use of DPV and ODRL is available at Guide for using DPV with ODRL, and the mapping of concepts between DPV and ODRL is available at Mapping DPV concepts to ODRL.
This issue is intended to create a list identifying the vocabularies whose mappings should be provided by the DPVCG.
Given that DPV takes a singularly domain-specific approach to defining terms (i.e. it does not consider semantics from other vocabularies), its use alongside or with other vocabularies is undefined. For example, dpv:hasName is semantically similar to foaf:name or rdfs:label. When an use-case or adopter requires use of other vocabularies, it is desirable to have an alignment between DPV and other vocabularies so as to have a data model/graph utilising both.
The proposal is to provide such mappings in a directory e.g. /mappings/dpv-foaf containing an RDF file representing the mapping which is expressed using SKOS (i.e. exact, close, related) and a HTML document explaining the rationale and implications.
Below are vocabularies proposed for producing mappings (section below is edited to keep the list updated)
In this issue, we will track the work being done on aligning DPV with the ODRL information model (being maintained by the ODRL CG) towards the publication of a joint report.
This issue is also being tracked in the ODRL CG repo and mappings from DPV to other vocabs are tracked here #31.
by @besteves4 in #301 (comment)
- RuleFulfilmentStatus Concepts — comments to align with ODRL naming
- dpv:DeterrenceUtilised: Status indicating a deterrence has been utilised i.e. the activity stated as being deterred has not been carried out -> Maybe just call it DeterrenceNotPerformed
- dpv:DeterrenceNotUtilised: Status indicating a deterrence has not been utilised i.e. the activity stated as being deterred has been carried out-> Maybe just call it DeterrencePerformed
- dpv:ProhibitionFulfilled -> dpv:ProhibitionNotPerformed
- dpv:PermissionNotUtilised -> dpv:PermissionNotPerformed
- dpv:PermissionUtilised -> dpv: PermissionPerformed
- dpv:RecommendationUtilised -> dpv:RecommendationPerformed
- dpv:RecommendationNotUtilised -> dpv:RecommendationPerformed
| Term | AcceptableRule | Prefix | dpv |
|---|---|---|---|
| Label | Acceptable Rule | ||
| IRI | https://w3id.org/dpv#AcceptableRule | ||
| Type | rdfs:Class, skos:Concept, dpv:Rule | ||
| Broader/Parent types | dpv:Rule | ||
| Object of relation | dpv:hasFulfilmentStatus, dpv:hasRule | ||
| Definition | A rule that is acceptable where it is either desirable if it occurs or it is not unacceptable if it does | ||
| Usage Note | Acceptable is a subjective concept that enables distinguishing with "unacceptable". By itself it does not signal any permission or obligation - for which further specific concepts are defined | ||
| Date Created | 2025-06-19 | ||
| Contributors | Arthit Suriyawongkul, Beatriz Esteves, Delaram Golpayegani, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake, Paul Ryan | ||
| See More: | section RULES in DPV |
| Term | Deterrence | Prefix | dpv |
|---|---|---|---|
| Label | Deterrence | ||
| IRI | https://w3id.org/dpv#Deterrence | ||
| Type | rdfs:Class, skos:Concept, dpv:Rule | ||
| Broader/Parent types | dpv:UnacceptableRule → dpv:Rule | ||
| Object of relation | dpv:hasDeterrence, dpv:hasFulfilmentStatus, dpv:hasRule | ||
| Definition | A rule describing a deterrence for performing an activity | ||
| Usage Note | Deterrences are aligned with the term SHOULD NOT in RFC2119 where specified activities should be avoided from being carried out but are not prohibitions | ||
| Date Created | 2025-06-19 | ||
| Contributors | Arthit Suriyawongkul, Beatriz Esteves, Delaram Golpayegani, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake, Paul Ryan | ||
| See More: | section RULES in DPV |
| Term | DeterrenceFollowed | Prefix | dpv |
|---|---|---|---|
| Label | Deterrence Followed | ||
| IRI | https://w3id.org/dpv#DeterrenceFollowed | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleFulfilled → dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating a deterrence has been followed i.e. the activity stated as being deterred has not been carried out | ||
| Date Created | 2025-08-06 | ||
| Contributors | Beatriz Esteves, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake | ||
| See More: | section RULES in DPV |
| Term | DeterrenceNotFollowed | Prefix | dpv |
|---|---|---|---|
| Label | Deterrence Not Followed | ||
| IRI | https://w3id.org/dpv#DeterrenceNotFollowed | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleUnfulfilled → dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating a deterrence has not been followed i.e. the activity stated as being deterred has been carried out | ||
| Date Created | 2025-08-06 | ||
| Contributors | Beatriz Esteves, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake | ||
| See More: | section RULES in DPV |
| Term | Obligation | Prefix | dpv |
|---|---|---|---|
| Label | Obligation | ||
| IRI | https://w3id.org/dpv#Obligation | ||
| Type | rdfs:Class, skos:Concept, dpv:Rule | ||
| Broader/Parent types | dpv:AcceptableRule → dpv:Rule | ||
| Object of relation | dpv:hasFulfilmentStatus, dpv:hasObligation, dpv:hasRule | ||
| Definition | A rule describing an obligation for performing an activity | ||
| Usage Note | Obligations are aligned with the term MUST in RFC2119 where specified activities are mandatory to be carried out | ||
| Date Created | 2022-10-19 | ||
| Date Modified | 2025-06-19 | ||
| Contributors | Arthit Suriyawongkul, Beatriz Esteves, Delaram Golpayegani, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake, Paul Ryan | ||
| See More: | section RULES in DPV |
| Term | ObligationFulfilled | Prefix | dpv |
|---|---|---|---|
| Label | Obligation Fulfilled | ||
| IRI | https://w3id.org/dpv#ObligationFulfilled | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleFulfilled → dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating an obligation has been fulfilled i.e. the activity stated as being required to be carried out has been successfully completed | ||
| Date Created | 2024-09-10 | ||
| Contributors | Harshvardhan J. Pandit | ||
| See More: | section RULES in DPV |
| Term | ObligationUnfulfilled | Prefix | dpv |
|---|---|---|---|
| Label | Obligation Unfulfilled | ||
| IRI | https://w3id.org/dpv#ObligationUnfulfilled | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleUnfulfilled → dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating an obligation has not been fulfilled i.e. the activity stated as being required to be carried out has not been carried out but this is not considered as a violation e.g. there is still time to conduct the activity | ||
| Date Created | 2024-09-10 | ||
| Contributors | Harshvardhan J. Pandit | ||
| See More: | section RULES in DPV |
| Term | ObligationViolated | Prefix | dpv |
|---|---|---|---|
| Label | Obligation Violated | ||
| IRI | https://w3id.org/dpv#ObligationViolated | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleViolated → dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating an obligation has been violated i.e. the activity stated as being required to be carried out has not been carried out and this is considered as a violation i.e. the activity can no longer be carried out to fulfil the obligation | ||
| Date Created | 2024-09-10 | ||
| Contributors | Harshvardhan J. Pandit | ||
| See More: | section RULES in DPV |
| Term | Permission | Prefix | dpv |
|---|---|---|---|
| Label | Permission | ||
| IRI | https://w3id.org/dpv#Permission | ||
| Type | rdfs:Class, skos:Concept, dpv:Rule | ||
| Broader/Parent types | dpv:AcceptableRule → dpv:Rule | ||
| Object of relation | dpv:hasFulfilmentStatus, dpv:hasPermission, dpv:hasRule | ||
| Definition | A rule describing a permission to perform an activity | ||
| Usage Note | Permissions are aligned with the term MAY in RFC2119 where specified activities may or may not be carried out | ||
| Examples | dex:E0028 :: Rule specifying permissiondex:E0066 :: Specifying permissions and prohibitions |
||
| Date Created | 2022-10-19 | ||
| Date Modified | 2025-06-19 | ||
| Contributors | Arthit Suriyawongkul, Beatriz Esteves, Delaram Golpayegani, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake, Paul Ryan | ||
| See More: | section RULES in DEX |
| Term | PermissionNotUtilised | Prefix | dpv |
|---|---|---|---|
| Label | Permission Not Utilised | ||
| IRI | https://w3id.org/dpv#PermissionNotUtilised | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleFulfilled → dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating a permission has not been utilised i.e. the activity stated as being permitted has not been carried out | ||
| Date Created | 2024-09-10 | ||
| Contributors | Harshvardhan J. Pandit | ||
| See More: | section RULES in DPV |
| Term | PermissionUtilised | Prefix | dpv |
|---|---|---|---|
| Label | Permission Utilised | ||
| IRI | https://w3id.org/dpv#PermissionUtilised | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleFulfilled → dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating a permission has been utilised i.e. the activity stated as being permitted has been carried out | ||
| Date Created | 2024-09-10 | ||
| Contributors | Harshvardhan J. Pandit | ||
| See More: | section RULES in DPV |
| Term | Prohibition | Prefix | dpv |
|---|---|---|---|
| Label | Prohibition | ||
| IRI | https://w3id.org/dpv#Prohibition | ||
| Type | rdfs:Class, skos:Concept, dpv:Rule | ||
| Broader/Parent types | dpv:UnacceptableRule → dpv:Rule | ||
| Object of relation | dpv:hasFulfilmentStatus, dpv:hasProhibition, dpv:hasRule | ||
| Definition | A rule describing a prohibition to perform an activity | ||
| Usage Note | Prohibitions are aligned with the term MUST NOT in RFC2119 where specified activities are prohibited from being carried out | ||
| Examples | dex:E0029 :: Rule specifying prohibitiondex:E0066 :: Specifying permissions and prohibitions |
||
| Date Created | 2022-10-19 | ||
| Date Modified | 2025-06-19 | ||
| Contributors | Arthit Suriyawongkul, Beatriz Esteves, Delaram Golpayegani, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake, Paul Ryan | ||
| See More: | section RULES in DEX |
| Term | ProhibitionUnviolated | Prefix | dpv |
|---|---|---|---|
| Label | Prohibition Unviolated | ||
| IRI | https://w3id.org/dpv#ProhibitionUnviolated | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleFulfilled → dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating a prohibition has not been violated i.e. the activity stated as being prohibited has not been carried out | ||
| Date Created | 2024-09-10 | ||
| Date Modified | 2025-08-06 | ||
| Contributors | Beatriz Esteves, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake | ||
| See More: | section RULES in DPV |
| Term | ProhibitionViolated | Prefix | dpv |
|---|---|---|---|
| Label | Prohibition Violated | ||
| IRI | https://w3id.org/dpv#ProhibitionViolated | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleViolated → dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating a prohibition has been violated i.e. the activity stated as being prohibited has been carried out | ||
| Date Created | 2024-09-10 | ||
| Contributors | Harshvardhan J. Pandit | ||
| See More: | section RULES in DPV |
| Term | Recommendation | Prefix | dpv |
|---|---|---|---|
| Label | Recommendation | ||
| IRI | https://w3id.org/dpv#Recommendation | ||
| Type | rdfs:Class, skos:Concept, dpv:Rule | ||
| Broader/Parent types | dpv:AcceptableRule → dpv:Rule | ||
| Object of relation | dpv:hasFulfilmentStatus, dpv:hasRecommendation, dpv:hasRule | ||
| Definition | A rule describing a recommendation for performing an activity | ||
| Usage Note | Recommendations are aligned with the term SHOULD in RFC2119 where specified activities should be carried out but are not obligations | ||
| Date Created | 2025-06-19 | ||
| Contributors | Arthit Suriyawongkul, Beatriz Esteves, Delaram Golpayegani, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake, Paul Ryan | ||
| See More: | section RULES in DPV |
| Term | RecommendationFollowed | Prefix | dpv |
|---|---|---|---|
| Label | Recommendation Followed | ||
| IRI | https://w3id.org/dpv#RecommendationFollowed | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleFulfilled → dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating a recommendation has been followed i.e. the activity stated as being recommended has been carried out | ||
| Date Created | 2025-08-06 | ||
| Contributors | Beatriz Esteves, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake | ||
| See More: | section RULES in DPV |
| Term | RecommendationNotFollowed | Prefix | dpv |
|---|---|---|---|
| Label | Recommendation Not Followed | ||
| IRI | https://w3id.org/dpv#RecommendationNotFollowed | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleUnfulfilled → dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating a recommendation has not been followed i.e. the activity stated as being recommended has not been carried out | ||
| Date Created | 2025-08-06 | ||
| Contributors | Beatriz Esteves, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake | ||
| See More: | section RULES in DPV |
| Term | Rule | Prefix | dpv |
|---|---|---|---|
| Label | Rule | ||
| IRI | https://w3id.org/dpv#Rule | ||
| Type | rdfs:Class, skos:Concept | ||
| Object of relation | dpv:hasFulfilmentStatus, dpv:hasRule | ||
| Definition | A rule describing a process or control that directs or determines if and how an activity should be conducted | ||
| Examples | dex:E0030 :: Rule combining DPV with ODRL |
||
| Date Created | 2022-10-19 | ||
| Contributors | Beatriz Esteves, Georg P. Krog, Harshvardhan J. Pandit, Paul Ryan | ||
| See More: | section RULES in DEX |
| Term | RuleFulfilled | Prefix | dpv |
|---|---|---|---|
| Label | Rule Fulfilled | ||
| IRI | https://w3id.org/dpv#RuleFulfilled | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating a rule has been fulfilled, completed, or satisfied | ||
| Date Created | 2024-09-10 | ||
| Contributors | Harshvardhan J. Pandit | ||
| See More: | section RULES in DPV |
| Term | RuleFulfilmentStatus | Prefix | dpv |
|---|---|---|---|
| Label | Rule Fulfilment Status | ||
| IRI | https://w3id.org/dpv#RuleFulfilmentStatus | ||
| Type | rdfs:Class, skos:Concept | ||
| Broader/Parent types | dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status associated with a rule for indicating whether it is applicable, or has been utilised, and whether the requirements of the rule have been fulfilled or violated | ||
| Examples | dex:E0084 :: Stating status of Rule fulfilment |
||
| Date Created | 2024-09-10 | ||
| Contributors | Harshvardhan J. Pandit | ||
| See More: | section RULES in DEX |
| Term | RuleUnfulfilled | Prefix | dpv |
|---|---|---|---|
| Label | Rule Unfulfilled | ||
| IRI | https://w3id.org/dpv#RuleUnfulfilled | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating a rule has not been fulfilled nor violated | ||
| Date Created | 2024-09-10 | ||
| Contributors | Harshvardhan J. Pandit | ||
| See More: | section RULES in DPV |
| Term | RuleViolated | Prefix | dpv |
|---|---|---|---|
| Label | Rule Violated | ||
| IRI | https://w3id.org/dpv#RuleViolated | ||
| Type | rdfs:Class, skos:Concept, dpv:RuleFulfilmentStatus | ||
| Broader/Parent types | dpv:RuleFulfilmentStatus → dpv:Status → dpv:Context | ||
| Object of relation | dpv:hasContext, dpv:hasStatus | ||
| Definition | Status indicating a rule has been violated, breached, broken, or infracted | ||
| Date Created | 2024-09-10 | ||
| Contributors | Harshvardhan J. Pandit | ||
| See More: | section RULES in DPV |
| Term | UnacceptableRule | Prefix | dpv |
|---|---|---|---|
| Label | Unacceptable Rule | ||
| IRI | https://w3id.org/dpv#UnacceptableRule | ||
| Type | rdfs:Class, skos:Concept, dpv:Rule | ||
| Broader/Parent types | dpv:Rule | ||
| Object of relation | dpv:hasFulfilmentStatus, dpv:hasRule | ||
| Definition | A rule that is unacceptable where it is not desirable if it occurs | ||
| Usage Note | Unacceptable is a subjective concept that enables specifying something is to be avoided as compared to "acceptable". By itself it does not signal any deterrence or prohibition - for which further specific concepts are defined | ||
| Date Created | 2025-06-19 | ||
| Contributors | Arthit Suriyawongkul, Beatriz Esteves, Delaram Golpayegani, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake, Paul Ryan | ||
| See More: | section RULES in DPV |
| Term | hasDeterrence | Prefix | dpv |
|---|---|---|---|
| Label | has deterrence | ||
| IRI | https://w3id.org/dpv#hasDeterrence | ||
| Type | rdf:Property, skos:Concept | ||
| Broader/Parent types | dpv:hasRule | ||
| Sub-property of | dpv:hasRule | ||
| Domain includes | dpv:Context | ||
| Range includes | dpv:Deterrence | ||
| Definition | Specifies applicability or inclusion of a deterrence rule within specified context | ||
| Date Created | 2025-06-19 | ||
| Contributors | Arthit Suriyawongkul, Beatriz Esteves, Delaram Golpayegani, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake, Paul Ryan | ||
| See More: | section RULES in DPV |
| Term | hasFulfilmentStatus | Prefix | dpv |
|---|---|---|---|
| Label | has fulfilment status | ||
| IRI | https://w3id.org/dpv#hasFulfilmentStatus | ||
| Type | rdf:Property, skos:Concept | ||
| Broader/Parent types | dpv:hasStatus | ||
| Sub-property of | dpv:hasStatus | ||
| Domain includes | dpv:Context | ||
| Range includes | dpv:Rule | ||
| Definition | Specifies the fulfillment status associated with a rule | ||
| Date Created | 2024-09-10 | ||
| Date Modified | 2025-06-19 | ||
| Contributors | Harshvardhan J. Pandit | ||
| See More: | section RULES in DPV |
| Term | hasObligation | Prefix | dpv |
|---|---|---|---|
| Label | has obligation | ||
| IRI | https://w3id.org/dpv#hasObligation | ||
| Type | rdf:Property, skos:Concept | ||
| Broader/Parent types | dpv:hasRule | ||
| Sub-property of | dpv:hasRule | ||
| Domain includes | dpv:Context | ||
| Range includes | dpv:Obligation | ||
| Definition | Specifies applicability or inclusion of an obligation rule within specified context | ||
| Date Created | 2022-10-19 | ||
| Contributors | Beatriz Esteves, Georg P. Krog, Harshvardhan J. Pandit, Paul Ryan | ||
| See More: | section RULES in DPV |
| Term | hasPermission | Prefix | dpv |
|---|---|---|---|
| Label | has permission | ||
| IRI | https://w3id.org/dpv#hasPermission | ||
| Type | rdf:Property, skos:Concept | ||
| Broader/Parent types | dpv:hasRule | ||
| Sub-property of | dpv:hasRule | ||
| Domain includes | dpv:Context | ||
| Range includes | dpv:Permission | ||
| Definition | Specifies applicability or inclusion of a permission rule within specified context | ||
| Examples | dex:E0066 :: Specifying permissions and prohibitions |
||
| Date Created | 2022-10-19 | ||
| Contributors | Beatriz Esteves, Georg P. Krog, Harshvardhan J. Pandit, Paul Ryan | ||
| See More: | section RULES in DEX |
| Term | hasProhibition | Prefix | dpv |
|---|---|---|---|
| Label | has prohibition | ||
| IRI | https://w3id.org/dpv#hasProhibition | ||
| Type | rdf:Property, skos:Concept | ||
| Broader/Parent types | dpv:hasRule | ||
| Sub-property of | dpv:hasRule | ||
| Domain includes | dpv:Context | ||
| Range includes | dpv:Prohibition | ||
| Definition | Specifies applicability or inclusion of a prohibition rule within specified context | ||
| Examples | dex:E0066 :: Specifying permissions and prohibitions |
||
| Date Created | 2022-10-19 | ||
| Contributors | Beatriz Esteves, Georg P. Krog, Harshvardhan J. Pandit, Paul Ryan | ||
| See More: | section RULES in DEX |
| Term | hasRecommendation | Prefix | dpv |
|---|---|---|---|
| Label | has recommendation | ||
| IRI | https://w3id.org/dpv#hasRecommendation | ||
| Type | rdf:Property, skos:Concept | ||
| Broader/Parent types | dpv:hasRule | ||
| Sub-property of | dpv:hasRule | ||
| Domain includes | dpv:Context | ||
| Range includes | dpv:Recommendation | ||
| Definition | Specifies applicability or inclusion of a recommendation rule within specified context | ||
| Date Created | 2025-06-19 | ||
| Contributors | Arthit Suriyawongkul, Beatriz Esteves, Delaram Golpayegani, Georg P. Krog, Harshvardhan J. Pandit, Julian Flake, Paul Ryan | ||
| See More: | section RULES in DPV |
| Term | hasRule | Prefix | dpv |
|---|---|---|---|
| Label | has rule | ||
| IRI | https://w3id.org/dpv#hasRule | ||
| Type | rdf:Property, skos:Concept | ||
| Domain includes | dpv:Context | ||
| Range includes | dpv:Rule | ||
| Definition | Specifies applicability or inclusion of a rule within specified context | ||
| Date Created | 2022-10-19 | ||
| Contributors | Beatriz Esteves, Georg P. Krog, Harshvardhan J. Pandit, Paul Ryan | ||
| See More: | section RULES in DPV |
DPV uses the following terms from [RDF] and [RDFS] with their defined meanings:
The following external concepts are re-used within DPV:
The DPVCG was established as part of the SPECIAL H2020 Project, which received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No. 731601 from 2017 to 2019. Continued developments have been funded under: RECITALS Project funded under the EU's Horizon program with grant agreement No. 101168490.
Harshvardhan J. Pandit was funded to work on DPV from 2020 to 2022 by the Irish Research Council's Government of Ireland Postdoctoral Fellowship Grant#GOIPD/2020/790.
The ADAPT SFI Centre for Digital Media Technology is funded by Science Foundation Ireland through the SFI Research Centres Programme and is co-funded under the European Regional Development Fund (ERDF) through Grant#13/RC/2106 (2018 to 2020) and Grant#13/RC/2106_P2 (2021 onwards).
The contributions of Harshvardhan J. Pandit have been made with the financial support of Science Foundation Ireland under Grant Agreement No. 13/RC/2106_P2 at the ADAPT SFI Research Centre; and the AI Accountability Lab (AIAL) which is supported by grants from following groups: the AI Collaborative, an Initiative of the Omidyar Group; Luminate; the Bestseller Foundation; and the John D. and Catherine T. MacArthur Foundation.
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words MAY, MUST, MUST NOT, SHOULD, and SHOULD NOT in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.