Open Digital Rights Language (ODRL) 3.0 Proposal

Living Document,

This version:
https://w3id.org/force/odrl3proposal
Previous Versions:
Issue Tracking:
GitHub
Inline In Spec
Editors:
(Ghent University - imec)
(Ghent University - imec)
(Ghent University - imec)
(Ghent University - imec)
License:
CC-BY-SA-4.0

Abstract

This document proposes a set of improvements to ODRL, to be integrated in a future version 3.0, derived from concrete use cases and requirements.

1. Introd­uction

TODO: write full text Mention ODRL [ODRL-model] [odrl-vocab]

Formal Semantics spec [odrl-formal-semantics]

1.1. Terminology

TODO

1.2. Namespaces

Commonly used namespace prefixes used in this specification:

@prefix dcterms:       <http://purl.org/dc/terms/> .
@prefix odrl:          <http://www.w3.org/ns/odrl/2/> .
@prefix odrl3proposal: <https://w3id.org/force/odrl3proposal#> .
@prefix report:        <https://w3id.org/force/compliance-report#> .
@prefix rdf:           <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos:          <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd:           <http://www.w3.org/2001/XMLSchema#> .

2. Use Cases

2.1. UC1 - Dynamic Asset Collection Materialization

In ODRL terms, an Asset Collection is defined as a single resource representing a set of member resources, considering that all members of the set are subject to a rule if this rule is defined with the asset collection as its target. To materialise which Assets belong to an Asset Collection, ODRL has the partOf property. However, if this materialisation is still to be done to enforce policies over a collection, i.e., there is still no information in the state of the world of which Assets are partOf the Asset Collection, a solution is required to materialise which resources are members of the collection depending on the relation between said resources and the collection.

2.2. UC2 - Dynamic Right Operand Constraint Value

An ODRL Constraint has two operands to which comparisons can be made with one relational operator:

The problem is that there is not enough information to dereference a value from the IRI of the odrl:rightOperandReference relation. There is a need for a solution that deterministically can fetch the value, such that proper comparisons can be made.

Note: Publication that introduced this problem and gave a theoretical solution(that requires major changes to ODRL 2.2): Akaichi et al., 2024, 'Interoperable and Continuous Usage Control Enforcement in Dataspaces'.

Note: As of 09/07/2025, there exists no formal method to materialize left operand values from their classes. This issue is known by the ODRL Community Group, more specific the people working on the ODRL Formal Semantics specification [odrl-formal-semantics].

3. Requirements

3.1. R1 - Define Asset Collection membership relation

To solve UC1, there is the need to describe the relation between the Asset Collection and its Asset members, which is needed to materialise which Assets belong to an Asset Collection using ODRL’s partOf property. For example, if we have an Asset Collection

@prefix ldp: <http://www.w3.org/ns/ldp#> .

ex:assetCollection a odrl:AssetCollection ;
    odrl:source <http://localhost:3000/container/> ;
    odrl3proposal:relation ldp:contains .

the term odrl3proposal:relation can be used to describe the relation of an Asset Collection with its members, which in this example is classified by the ldp:contains property. In this case, when the members of the Asset Collection, whose source is <http://localhost:3000/container/>, need to be materialised using the ldp:contains relation, if

@prefix ldp: <http://www.w3.org/ns/ldp#> .

<http://localhost:3000/container/> a ldp:Container;
    ldp:contains <http://localhost:3000/container/resource1.ttl> ;
    ldp:contains <http://localhost:3000/container/resource2.txt> ;
    ldp:contains <http://localhost:3000/container/resource3.png> .

then the following ODRL’s partOf memberships can be materialised

<http://localhost:3000/container/resource1.ttl> odrl:partOf <http://localhost:3000/container/> .
<http://localhost:3000/container/resource2.txt> odrl:partOf <http://localhost:3000/container/> .
<http://localhost:3000/container/resource3.png> odrl:partOf <http://localhost:3000/container/> .

3.2. R2 - Dynamic ODRL Specification

To solve UC2, there is a need for enough information and an algorithm to deterministically dereference the Right Operand Reference Value.

3.2.1. Proposed solution

Introduction of the class Operand Reference with two properties:

When the reference source is derefenced and the SHACL Property Path is executed on the source, this will always produce one value under the following assumptions (which MUST be conformed to):

As the policy remains static and the source can change over time, this solution proposes a method to add dynamic right operand values.

Note: Theoretical solution provided by the following publication(that requires major changes to ODRL 2.2): Akaichi et al., 2024, 'Interoperable and Continuous Usage Control Enforcement in Dataspaces'.

Example: Constraint with dynamic Right Operand value being resolved Dynamic constraint: If the current date time is less than the right operand value, the constraint is satisfied.

@prefix ex: <http://example.org/> .

<urn:uuid:constraint:ab67b414-d0c8-48f6-8554-524130561f84> a odrl:Constraint;
  odrl:leftOperand odrl:dateTime ;
  odrl:operator odrl:lt ;
  odrl:rightOperandReference ex:operandReference1 .

ex:operandReference1 a odrl3proposal:OperandReference ;
    odrl3proposal:reference ex:externalSource ;
    odrl3proposal:path ex:updatedValue .

External source hosted at http://example.org/externalSource contains following data (represented as text/turtle)

@prefix ex: <http://example.org/> .

ex:externalSource ex:updatedValue "2018-02-12T11:20:10.999Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .

So when following the SHACL Property Path, the Literal ("2018-02-12T11:20:10.999Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>) is retrieved. This literal can then be compared against the left operand of the constraint.

4. ODRL 3.0 Proposal

4.1. Adding new terms to the ODRL vocabulary

4.1.1. Relation

IRI https://w3id.org/force/odrl3proposal#relation
Label relation
Type rdf:Property, skos:Concept
Definition The relation property is used to classify the relation between the odrl:Assets that are odrl:partOf a odrl:AssetCollection and the odrl:source of said collection.
Domain odrl:AssetCollection
Range rdf:Property

4.1.2. Scope

IRI https://w3id.org/force/odrl3proposal#scope
Label scope
Type rdf:Property, skos:Concept
Definition The scope property indicates the actions on which a odrl:Policy, with the subject odrl:Asset as odrl:target, can be defined.
Domain odrl:Asset
Range odrl:Action

4.1.3. Operand Reference

IRI odrl3proposal:OperandReference
Label Operand Reference
Type rdfs:Class, skos:Concept
Definition The Operand Reference class is used to to represent a Right Operand Value that has to be dynamically be materialized based on its properties.

4.1.4. Path

IRI odrl3proposal:path
Label path
Type skos:Concept, rdf:Property
Definition The path property indicates the SHACL Property Path which describes the path from a specific focus node to a value it describes.
Domain odrl3proposal:OperandReference
Range sh:path
Note There is an extra constraint to the SHACL Property Path: It MUST only resolve to one value.

4.1.5. Reference

IRI odrl3proposal:reference
Label reference
Type skos:Concept, rdf:Property
Definition The reference property indicates external source that has to be dereferenced.
Domain odrl3proposal:OperandReference
Range xsd:anyURI
Note The source MUST have a valid RDF presentation.

4.2. Changing existing terms of the ODRL vocabulary

UID identifier in ODRL: UID needs to be out of ODRL somehow, it is not nice

<urn:uuid:e30bcd34-0d5c-43d1-b229-bf68afcae5ae> a odrl:Set ;
    odrl:uid <urn:uuid:e30bcd34-0d5c-43d1-b229-bf68afcae5ae>

5. Supporting Materials

Conformance

Conformance requirements are expressed with a combination of descriptive assertions and RFC 2119 terminology. The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this document are to be interpreted as described in RFC 2119. However, for readability, these words do not appear in all uppercase letters in this specification.

All of the text of this specification is normative except sections explicitly marked as non-normative, examples, and notes. [RFC2119]

Examples in this specification are introduced with the words “for example” or are set apart from the normative text with class="example", like this:

This is an example of an informative example.

Informative notes begin with the word “Note” and are set apart from the normative text with class="note", like this:

Note, this is an informative note.

References

Normative References

[ODRL-FORMAL-SEMANTICS]
Nicoletta Fornara; et al. ODRL Formal Semantics. URL: https://w3c.github.io/odrl/formal-semantics/
[ODRL-model]
Renato Iannella; Serena Villata. ODRL Information Model 2.2. URL: https://w3c.github.io/poe/model/
[ODRL-VOCAB]
Renato Iannella; et al. ODRL Vocabulary & Expression 2.2. URL: https://w3c.github.io/poe/vocab/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119

Issues Index

UID identifier in ODRL: UID needs to be out of ODRL somehow, it is not nice

<urn:uuid:e30bcd34-0d5c-43d1-b229-bf68afcae5ae> a odrl:Set ;
    odrl:uid <urn:uuid:e30bcd34-0d5c-43d1-b229-bf68afcae5ae>