This document presents a new profile called ODRL Data Spaces (ODS) that extends the ODRL core vocabulary and expression models to support data spaces over big data and streaming systems.

ODS serves as a Rights Expression Language tailored for the global data space lifecycle, allowing data assets to be annotated with machine-readable policies that dictate permissions, prohibitions, and obligations across multi-phase workflows.

Acknowledgments

This document is the result of a collaborative team effort within the Eunomia research framework. Development, specification, and maintenance of the ODS profile are led by researchers at the Universidad Politécnica de Madrid (UPM) & Information Processing and Telecommunications Center (IPTC):

ODS specifications

This section extends the ODRL Recommendation [ODRL22] by terms required by Data Spaces.

ODS specifications

This section extends the ODRL Recommendation [ODRL22] by adding specialized actions, party functions, and execution constraints required across the data space data lifecycle[cite: 1].

Introduction

The ODRL Data Spaces (ODS) profile provides a cohesive extension for policy definition regarding continuous access and usage control[cite: 1]. It establishes a unified execution container designed to maintain data sovereignty across heterogeneous software implementations[cite: 1].

Unlike static enforcement models, this profile addresses a multi-phase data space lifecycle segmented into three distinct functional stages[cite: 1]:

Document Conventions

Prefix Namespace Description
odrl http://www.w3.org/ns/odrl/2/ [[odrl-vocab]] [[odrl-model]]
rdf http://www.w3.org/1999/02/22-rdf-syntax-ns# [[rdf11-concepts]]
rdfs http://www.w3.org/2000/01/rdf-schema# [[rdf-schema]]
owl http://www.w3.org/2002/07/owl# [[owl2-overview]]
xsd http://www.w3.org/2001/XMLSchema# [[xmlschema11-2]]
skos http://www.w3.org/2004/02/skos/core# [[skos-reference]]
dcterms http://purl.org/dc/terms/ [[dcterms]]
vcard http://www.w3.org/2006/vcard/ns# [[vcard-rdf]]
foaf http://xmlns.com/foaf/0.1/ [[foaf]]
schema http://schema.org/ schema.org
cc https://creativecommons.org/ns# creativecommons.org
ex http://example.com/ns#

Actions for Rules

For the class Action (http://www.w3.org/ns/odrl/2/Action), used with Rules, these instances are defined.

Query

Definition: To query some data asset.
Label: duc:Query
Identifier: http://www.w3.org/ns/odrl/2/acceptQuery
Included In: http://www.w3.org/ns/odrl/2/use

Publish

Definition: To write or publish some data.
Label: duc:Publish
Identifier: http://www.w3.org/ns/odrl/2/acceptPublish
Included In: http://www.w3.org/ns/odrl/2/use

Train

Definition: To train a machine learning model[cite: 1].
Label: duc:Train
Identifier: http://www.w3.org/ns/odrl/2/acceptTrain
Included In: http://www.w3.org/ns/odrl/2/use

Evaluate

Definition: To evaluate a machine learning model.
Label: duc:Evaluate
Identifier: http://www.w3.org/ns/odrl/2/acceptEvaluate
Included In: http://www.w3.org/ns/odrl/2/use

Anonymize

Definition: To anonymize the incoming data[cite: 1].
Label: duc:Anonymize
Identifier: http://www.w3.org/ns/odrl/2/acceptAnonymize
Included In: http://www.w3.org/ns/odrl/2/use

Transform

Definition: To transform, clean or filter data.
Label: duc:Transform
Identifier: http://www.w3.org/ns/odrl/2/acceptTransforme
Included In: http://www.w3.org/ns/odrl/2/use

Aggregate_by_consumer

Definition: The consumer has to aggregate the data before performing another operation[cite: 1].
Label: duc:AggregateByConsumer
Identifier: http://www.w3.org/ns/odrl/2/AggregateByConsumer
Included In: http://www.w3.org/ns/odrl/2/use

Aggregate_by_provider

Definition: The provider has to aggregate the data before publishing it.
Label: duc:AggregateByProvider
Identifier: http://www.w3.org/ns/odrl/2/AggregateByProvider
Included In: http://www.w3.org/ns/odrl/2/use

Remove_subscription

Definition: To remove the subscription.
Label: duc:RemoveSubscription
Identifier: http://www.w3.org/ns/odrl/2/RemoveSubscription
Included In: http://www.w3.org/ns/odrl/2/use

Kill_job

Definition: To kill the current executing job.
Label: duc:KillJob
Identifier: http://www.w3.org/ns/odrl/2/KillJob
Included In: http://www.w3.org/ns/odrl/2/use

Party Functions

For the class Party (http://www.w3.org/ns/odrl/2/Party), used with Rules, these instances are defined.

Provider

Definition: The Party is the issuer of the Rule.
Label: duc:Provider
Identifier: http://www.w3.org/ns/odrl/2/Provider
Parent property: function
Domain: Policy, Rule
Range: Party

Consumer

Definition: The Party is the recipient of the Rule.
Label: duc:Consumer
Identifier: http://www.w3.org/ns/odrl/2/Consumer
Parent property: function
Domain: Policy, Rule
Range: Party

Controller

Definition: The Party is monitoring the application of the Rule.
Label: duc:Controller
Identifier: http://www.w3.org/ns/odrl/2/Controller
Parent property: function
Domain: Policy, Rule
Range: Party

Broker

Definition: The Party that acts as a broker of the data.
Label: duc:Broker
Identifier: http://www.w3.org/ns/odrl/2/Broker
Parent property: function
Domain: Policy, Rule
Range: Party

Examples

Machine Learning (ML) example

Company A wants to share a dataset with Company B[cite: 1]. Company A only allows Company B to use the data for generating a ML model[cite: 1]. Company B cannot transfer any data to internal or external parties[cite: 1].

Example
{
  "@context": "http://www.w3.org/ns/odrl.jsonld",
  "@type": "Agreement",
  "uid": "http://example.com/policy:1010",
  "duc:provider": "http://oem.com/ids#me",
  "permission": [{
    "duc:consumer": "http://supplier.com/",
    "target": "http://oem.com/ids/inventory/dataset-1",
    "action": "duc:train"
  }],
  "obligation": [{
    "@type": "Duty",
    "target": "http://oem.com/ids/inventory/dataset-1",
    "action": "inform",
    "consequence": [{
      "target": "http://oem.com/ids/inventory/dataset-1",
      "action":[{
        "rdf:value": { "@id": "duc:KillJob" },
        "refinement": [{
          "leftOperand": "recipient",
          "operator": "eq",
          "rightOperand": {
            "@value": "flinkid00",
            "@type": "http://orion.fiware.org/Job"
          }
        }]
      }]
    }]
  }],
  "prohibition": [{
    "assignee": "http://supplier.com/",
    "target" : "http://oem.com/ids/inventory/dataset-1",
    "action": "print"
  }]
}