eclipse-edc / Connector

EDC core services including data plane and control plane
Apache License 2.0
280 stars 235 forks source link

LeftOperand class is an enum which is not compliant with IDS or its use of ODRL #338

Closed jimmarino closed 2 years ago

jimmarino commented 2 years ago

The info model models the LeftOperand of a constraint as an enum. This means that the infomodel cannot express constraints other than those defined in the enum class. For example, it is impossible to express policies that include usage constraints other than the 17 defined in the enum class.

My understanding of IDS is it supports ODRL and extensible policy constraints so this is a bug in the info model. This is currently a severe blocker for the EDC and need to reach out to the infomodel folks for help.

.cf https://gist.github.com/jimmarino/0e4b1cddc6d42bd704c13e48881797ff

juliapampus commented 2 years ago

Tried to note down some observations, past discussion outcomes, and next steps @jimmarino.

Policy Language in IDS

Action: IDS vs ODRL

Taking a look at this documentation, this is the current status:

ODRL defines top-level actions (use, transfer). According to the documentation, Action terms must be defined using the includedIn property referring to an encompassing Action and either use or transfer as the top-level parent term by transitive means. Details on the includedIn and implies properties can be defined by ODRL profiles.

The ODRL vocabulary defines 72 action types. Some of them appear in IDS, a lot of them not. On top of that, IDS defines other actions (marked cursive).

LeftOperand: IDS vs ODRL

Taking a look at this documentation, this is the current status:

The ODRL vocabulary defines 34 operand types. Same as for actions, some of them appear in IDS, a lot of them not. On top of that, IDS defines other values.

Problem

Possible Solution

Long-Term

Challenges

Current Work

Short-Term ("Quick Fixes")

EDC

IDS java libraries

(not sure what can be implemented and how)

Contact

juliapampus commented 2 years ago

I will convert this to a discussion as this is no concrete todo for now. Rather, we need to define next steps from this.