w3c / poe

Permissions & Obligations Expression WG
Other
23 stars 18 forks source link

Inconsistencies around prohibition, prohibition and obligation in a Policy #303

Open nitmws opened 4 years ago

nitmws commented 4 years ago

The definition of the Policy Class defines, among others:

A Policy MUST have at least one permission, prohibition, or obligation property values of type Rule

The ODRL Profile Mechanism defines, among others:

Additional Rule class: Create a subclass of the Rule class and define it as disjoint with all other Rule subclasses.

That does not fit:

Conclusion: the ODRL Information Model has internal inconsistencies.

nitmws commented 4 years ago

(Added on behalf of @simonstey) fwiw, I also pointed this out some time ago ->

ODRL Profile Definition Example
Additional Policy Subclasses: Create a subclass the ODRL Policy class. ex:myPolicyType rdfs:subClassOf odrl:Policy .
... ...
Additional Rule class: Create a subclass of the Rule class and define it as disjoint with the other Rule subclasses. ex:myRule rdfs:subClassOf odrl:Rule ; owl:disjointWith odrl:Prohibition, odrl:Duty, odrl:Permission .

that's inconsistent wrt. to the vocab, where we also state that all policy types are mutually disjoint. more on that -> w3c/poe#280 Originally posted by @simonstey in w3c/poe#271 (comment)

looking back, I probably should have followed up on the proposed resolution for this issue.

nitmws commented 4 years ago

In the ODRL Community teleconference on 2 March 2020 this change of the Information Model was raised to solve this issue:

The current specification of the Policy class includes:

A Policy MUST have at least one permission, prohibition, or obligation property values of type Rule. (See the Permission, Prohibition, and Obligation sections for more details.)

Note - the ODRL Vocabulary specifies for these three properties: the value of a permission must be an instance of Permission, the value of a prohibition must be an instance of Prohibition, the value of an obligation must be an instance of Duty.

The basic intention behind this "Policy MUST have ..." definition was: a Policy MUST relate to least one Rule. At the time of defining that the Rule sub-classes Permission, Prohibition and Duty were defined and the Policy class was related to them by these three listed properties. The feature "a profile may define its own sub-classes of Rule and may relate them to a Policy" was not defined at this point in time as defining the features of a Profile was done in the last round of development work. Therefore this issue is an Erratum.

Therefore a solution of this issue should stick to the basic intention but open the options to any related sub-class of Rule.

Suggested wording: A Policy MUST have at least one property with a value of type Rule. This is satisfied by the permission, prohibition, and obligation properties or properties defined by a Profile and requiring a value of type Rule.

riannella commented 4 years ago

To be more specific, should the first line be "A Policy MUST have at least one property, in which the property has a range of a subclass of Rule."

DavidFatDavidF commented 4 years ago

Action agreed in CG meeting on July 10th See https://lists.w3.org/Archives/Public/public-odrl/2020Jul/0003.html

riannella commented 3 months ago

Summary: In Section 2.1, the second bullet item is too specific in mentioning the three property values. More generally, the item should state: "A Policy MUST have at least one property, in which the property has a range of a subclass of Rule."