In this project, I try to create an usage control enforcement engine that is pluggable in an Authorization Server for a Resource Server as defined in the User Managed Access.
More specifically, it would plugged into user-managed-access at some point.
odrl:modify clearly states A new asset is not created by this action, so this one cannot be used
odrl:append states The act of adding to the end of an asset, indicating that an asset should already exist. Although this comes close, it doesn't matter as it is deprecated
odrl:use is a generic action. While yes, it includes creating a new asset, it allows for more than that.
odrl:write stated The act of writing to the Asset and is now deprecated. This one is the closest, but it also does not create a new asset
In this project, I try to create an usage control enforcement engine that is pluggable in an Authorization Server for a Resource Server as defined in the User Managed Access. More specifically, it would plugged into user-managed-access at some point.
To model Usage Control Rules, I am using Open Digital Rights Language (ODRL). For early tests, a focus was put on reading (for which
odrl:read
was used). When I got into writing, I ran into a problem: https://github.com/woutslabbinck/ucp-enforcement/blob/42b797b0d857b6bfd692e5b013e65448a411086e/rules/data-crud-rules.n3#L12 Basically, I could not find anodrl:Action
which encompasses creating something.odrl:modify
clearly statesA new asset is not created by this action
, so this one cannot be usedodrl:append
statesThe act of adding to the end of an asset
, indicating that an asset should already exist. Although this comes close, it doesn't matter as it is deprecatedodrl:use
is a generic action. While yes, it includes creating a new asset, it allows for more than that.odrl:write
statedThe act of writing to the Asset
and is now deprecated. This one is the closest, but it also does not create a new assetThere are two options right now for the demonstrator usage control engine:
odrl:Action
is misused and the explicit reason on how they are interpreted are written in the documentation.