Skip to content

Latest commit

 

History

History
250 lines (210 loc) · 29.2 KB

ODRL-Support.md

File metadata and controls

250 lines (210 loc) · 29.2 KB

ODRL Evaluator Support

Rules

Permission

There is support in the ODRL Evaluator for odrl:Permission rules. This is achieved by checking whether all its properties are satisfied (as elaborated in the ODRL Formal Semantics spec).

The properties of the permission that are evaluated against a request and the state of the world are the following:

  • Asset: the odrl:target of the Permission
  • Party: the odrl:assignee of the Permission (the recipient)
  • Action: the odrl:action of the Permission
  • Constraints: the odrl:constraint(s) of the permission.
    • Note: when there are multiple constraints and no logical constraint is provided, it is assumed that odrl:and is expected.

Note that there the permission evaluation does not yet take into account Duty Reports. That is the (pre-)conditions.

Prohibition

There is support in the ODRL Evaluator for odrl:Prohibition rules.

Duty

No support (yet) in the ODRL Evaluator for odrl:Duty rules. Reason being that requests to duties do not seem to make sense. Therefore, we assume that working with duties rely them being part of the State of the World.

Action

Columns of the table elaborated:

  • Label: The rdfs:label as defined by ODRL
  • Identifier: The ODRL unique identifier for the term
  • Normative: Whether it is part of the official standard or not (hint)
  • Deprecated: An element that has been outdated by newer constructs (sometimes superseded by newer version).
  • Supported: Whether the ODRL Evaluator supports it.
  • Included in: Whether the action is encompassed by an other action. Note that this is a transitive property.
    • For more information, checkout ODRL IM §2.4 for odrl:includedIn
  • Exact Match: Whether the action has a similar meaning than the other, i.e., it is an exact match (Symmetric and Transitive)
Label Identifier Normative Deprecated Supported Included in Exact Match
Attribution cc:Attribution odrl:use
Commercial Use cc:CommercialUse odrl:use
Derivative Works cc:DerivativeWorks odrl:use
Distribution cc:Distribution odrl:use
Notice cc:Notice odrl:use
Reproduction cc:Reproduction odrl:use
Share Alike cc:ShareAlike odrl:use
Sharing cc:Sharing odrl:use
Source Code cc:SourceCode odrl:use
Accept Tracking odrl:acceptTracking odrl:use
Ad-hoc sharing odrl:adHocShare ?
Aggregate odrl:aggregate odrl:use
Annotate odrl:annotate odrl:use
Anonymize odrl:anonymize odrl:use
Append odrl:append ? odrl:modify
Append To odrl:appendTo ? odrl:modify
Archive odrl:archive odrl:use
Attach policy odrl:attachPolicy ? cc:Notice
Attach source odrl:attachSource ? cc:SourceCode
Attribute odrl:attribute odrl:use
Commercialize odrl:commercialize ? cc:CommercialUse
Compensate odrl:compensate odrl:use
Concurrent Use odrl:concurrentUse odrl:use
Copy odrl:copy ? odrl:reproduce
Delete odrl:delete odrl:use
Derive odrl:derive odrl:use
Digitize odrl:digitize odrl:use
Display odrl:display odrl:play
Distribute odrl:distribute odrl:use
Ensure Exclusivity odrl:ensureExclusivity odrl:use
Execute odrl:execute odrl:use
Export odrl:export ? odrl:transform
Extract odrl:extract odrl:reproduce
Extract character odrl:extractChar ?
Extract page odrl:extractPage ?
Extract word odrl:extractWord ?
Give odrl:give odrl:transfer
Grant Use odrl:grantUse odrl:use
Include odrl:include odrl:use
Index odrl:index odrl:use
Inform odrl:inform odrl:use
Install odrl:install odrl:use
Lease odrl:lease ?
Lend odrl:lend ?
License odrl:license ? odrl:grantUse
Modify odrl:modify odrl:use
Move odrl:move odrl:use
Next Policy odrl:nextPolicy odrl:use
Obtain Consent odrl:obtainConsent odrl:use
Pay odrl:pay ? odrl:compensate
Play odrl:play odrl:use
Present odrl:present odrl:use
Preview odrl:preview ?
Print odrl:print odrl:use
Read odrl:read odrl:use
Reproduce odrl:reproduce odrl:use
Review Policy odrl:reviewPolicy odrl:use
Secondary Use odrl:secondaryUse ?
Sell odrl:sell odrl:transfer
Share odrl:share ? cc:Sharing
Share-alike odrl:shareAlike ? cc:ShareAlike
Stream odrl:stream odrl:use
Synchronize odrl:synchronize odrl:use
Text-to-speech odrl:textToSpeech odrl:use
Transfer Ownership odrl:transfer
Transform odrl:transform odrl:use
Translate odrl:translate odrl:use
Uninstall odrl:uninstall odrl:use
Use odrl:use
Watermark odrl:watermark odrl:use
Write odrl:write ? odrl:modify
Write to odrl:writeTo ? odrl:modify

Exact match and included in support

Support for skos:ExactMatch and odrl:includedIn is provided through inferences using simple Notation3 rules

Asset

Support for odrl:Asset is provided by either exact matching of the request with the policy or by doing an inference over the Asset Collection. For doing inferences over Asset Collection, these collections must be supplied by the state of the world. When this is not the case, no satisfaction of this constraint can be obtained.

To check for membership in an Asset Collection, the odrl:partOf property is used as stated in ODRL IM §2.2.2.

Example rule of Asset when Asset Collection is present: Note that the rule is a bit odd. This was also pointed out by Joshua Corenjo in a github issue.

Party

This is analogous to how Asset evaluation works.

Support for odrl:Party is provided by either exact matching of the request with the policy or by doing an inference over the Party Collection. For doing inferences over Party Collection, these collections must be supplied by the state of the world. When this is not the case, no satisfaction of this constraint can be obtained.

To check for membership in an Party Collection, the odrl:partOf property is used as stated in ODRL IM §2.2.2.

Constraints

Rules that implement the constraints can be found in constraints.n3.

Refinements

This is handled similar to constraints.

No support yet. Documentation and implementation is still required.

Logical

Columns of the table elaborated:

  • Label: The rdfs:label as defined by ODRL
  • Identifier: The ODRL unique identifier for the term
  • Normative: Whether it is part of the official standard or not (hint)
  • Deprecated: An element that has been outdated by newer constructs (sometimes superseded by newer version).
  • Supported: Whether the ODRL Evaluator supports it.
Label Identifier Normative Deprecated Supported
Only One odrl:xone
And odrl:and
And Sequence odrl:andSequence
Or odrl:or

Operators

Columns of the table elaborated:

  • Label: The rdfs:label as defined by ODRL
  • Identifier: The ODRL unique identifier for the term
  • Normative: Whether it is part of the official standard or not (hint)
  • Deprecated: An element that has been outdated by newer constructs (sometimes superseded by newer version).
  • Supported: Whether the ODRL Evaluator supports it.
Label Identifier Normative Deprecated Supported
Equal to odrl:eq
Greater than odrl:gt
Greater than or equal to odrl:gteq
Has part odrl:hasPart
Is a odrl:isA
Is all of odrl:isAllOf
Is any of odrl:isAnyOf
Is none of odrl:isNoneOf
Is part of odrl:isPartOf
Less than odrl:lt
Less than or equal to odrl:lteq
Not equal to odrl:neq

Left Operands

Columns of the table elaborated:

  • Label: The rdfs:label as defined by ODRL
  • Identifier: The ODRL unique identifier for the term
  • Normative: Whether it is part of the official standard or not (hint)
  • Deprecated: An element that has been outdated by newer constructs (sometimes superseded by newer version).
  • Supported: Whether the ODRL Evaluator supports it.
Label Identifier Normative Deprecated Supported
Absolute Asset Position odrl:absolutePosition
Absolute Asset Size odrl:absoluteSize
Absolute Spatial Asset Position odrl:absoluteSpatialPosition
Absolute Temporal Asset Position odrl:absoluteTemporalPosition
Count odrl:count
Datetime odrl:dateTime
Delay Period odrl:delayPeriod
Delivery Channel odrl:deliveryChannel
Device odrl:device
Elapsed Time odrl:elapsedTime
Event odrl:event
File Format odrl:fileFormat
Industry Context odrl:industry
Language odrl:language
Media Context odrl:media
Metered Time odrl:meteredTime
Payment Amount odrl:payAmount
Asset Percentage odrl:percentage
Product Context odrl:product
Purpose odrl:purpose
Recipient odrl:recipient
Relative Asset Position odrl:relativePosition
Relative Asset Size odrl:relativeSize
Relative Spatial Asset Position odrl:relativeSpatialPosition
Relative Temporal Asset Position odrl:relativeTemporalPosition
Rendition Resolution odrl:resolution
Geospatial Named Area odrl:spatial
Geospatial Coordinates odrl:spatialCoordinates
System odrl:system
System Device odrl:systemDevice
Recurring Time Interval odrl:timeInterval
Unit Of Count odrl:unitOfCount
Version odrl:version
Virtual IT Communication Location odrl:virtualLocation

In ODRL there is some notion about broader and narrower concepts (using skos notation). To the best of our knowledge, no additional reasoning support can be added.

  • odrl:spatial
    • broader (transitive) than odrl:spatialCoordinates
  • odrl:absolutePosition
    • broader (transitive) than odrl:absoluteSpatialPosition
    • broader (transitive) than odrl:absoluteTemporalPosition
  • odrl:relativePosition
    • broader (transitive) than odrl:relativeSpatialPosition
    • broader (transitive) than odrl:relativeTemporalPosition