- From: Michael Steidl \(IPTC\) <mdirector@iptc.org>
- Date: Tue, 5 Sep 2017 22:00:54 +0200
- To: <benedict.whittamsmith@thomsonreuters.com>, <renato.iannella@monegraph.com>, <public-poe-wg@w3.org>
- Message-ID: <08ca01d32681$af1dd180$0d597480$@iptc.org>
. back to POE from other work: First to underline: for me, with my IPTC/RightsML hat on, interoperability is a key requirement. Talking to potential users of a REL on the news provider side I hear quite often: "how can it be secured that my clients get what I want to tell them" And the user of an asset (e.g. in the editorial of a news provider client) wants to know: * May I exercise this Permission? * Do (planned) actions regarding an asset violate a Prohibition? * Do I fulfil an obligation? ODRL will be accepted if its information model provides answers to this question. I think this is very close to what you, Ben, say below. But how to make the two implementation agree on the states - relevant is the final state - of rules? Therefore the IM should define Rule Processing rules for retrieving the required information from a Policy to answer the questions above. And different implementations should be enabled by that to generate the same results for the same policy and the same context (regarding assignee, target, parameters for constraints etc.) Because of that the Truth Tables on the Evaluator page are not sufficient. The examples there reflect only a small set out of the many variants of Rules - find attached 2 JSON files outlining some variants, and only a minority of them got an answer by the Truth Tables. And Truth Tables are a casuistic answer to questions. As the ODRL design covers many components (constraints of Rules, refinements of actions, the exercising of actions, duties, remedies, consequences) which can take different (sub-)states and this would result in many dozens of combinations which would all have to be covered by Truth Tables it would be much better to write down the rules how the states shown in such Truth Tables should be generated - rule driven, not case driven. But Result/Truth Tables generated by different implementations could help to check if they "agree on a the states of rules". The Active or Not-Active values in the Truth tables raised my question in Github issue #245: what does an "Active" state mean? Simply said: I see no chance for having an interoperable ODRL without quite strict rules (covering ambiguity as far as possible) for generating the final state of a Rules - answering the questions above. The (current) definition of the Classes define primarily their semantics and their structure but not the impact of its evaluation result on the Rules including/using them. Quick example: Constraint in a Rule (https://w3c.github.io/poe/model/#constraint-rule) Definition of a constraint property: "An Rule (.) may include the constraint property to indicate a condition on the Rule". But this section does not say any word about the impact of satisfying or not satisfying the constraint when evaluating the Rule. And I think it was a valuable decision to merge such statements into a single section, the Rule Processing section. Best, Michael From: benedict.whittamsmith@thomsonreuters.com [mailto:benedict.whittamsmith@thomsonreuters.com] Sent: Tuesday, September 5, 2017 4:17 PM To: renato.iannella@monegraph.com; public-poe-wg@w3.org Subject: RE: What exactly is stated by Non-/Active? Hi Renato, I agree with much of what you say. I'd only add one further criterion for interoperability: that two implementations that have a common understanding of the world must agree on the states of the rules in a policy. Now we have nothing to say on how an implementation comes to understand the world - this is likely to be domain (aka profile) specific. But if two happen to agree, then they should interpret the rules in a policy in the same way. This is why we need a 'standard' evaluator. It seems to me that the IM + the 'truth tables' to test against are enough to build an evaluator and enforce this second level of interoperability. Michael: is it only the line above that leaves you uncomfortable? Should we be saying more about how to build an evaluator? In which case I like Renato's idea of a Note to Implementors. Or are you asking for greater clarity in the IM? Ben _____ From: Renato Iannella [renato.iannella@monegraph.com] Sent: 05 September 2017 14:37 To: POE Public Subject: Re: What exactly is stated by Non-/Active? On 5 Sep 2017, at 20:08, Michael Steidl (IPTC) <mdirector@iptc.org <mailto:mdirector@iptc.org> > wrote: I've got the feeling that members of this group have different views on the role of the Non-/Active state of Rules and I raised the need of a clarification of that as new Github Issue <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_w3c_poe_iss ues_245&d=DwMFaQ&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=6zKsY0rYbam T39VLwFyiNRQq5kP9V8VfXNbeD0GwlqvjGIQo1uv383jKtxD77PlM&m=PMiwASO7bywlZnE5KU06 TXcdSYNo2MGorMP681_Fo3w&s=jgeKd0zb7KUwqUz4YhaFDYUd_Lc_Yt8YgizjM_AgYXE&e=> #245 I consider this as prerequisite for writing an agreed Rule Processing. Michael, thanks for your hard diligent work on this. It has been tough to understand the fluid viewpoints over this issue... But, I want to raise a bigger issue here.and that is the fundamental requirement of W3C specs: interoperability. Publishing and consuming ODRL Policies is the core aspect of interoperability. Two (independent) systems can interchange ODRL Policies knowing they are "valid" and conform to the IM spec. All the current discussion on "Rule Processing" is stuff that happens by individual implementations. Once a system has the ODRL Policy, then it can "evaluate" it and generate valid/satisfied/fulfilled states. But that is only for its own use, no other party sees that. (And as we just saw, the state is completely "black box" contextual. Another implementation with the same Policy could generate different states.) I don't want to discount "Rule Processing", its important to some, but I would argue that it is not important to all implementations. I can imagine an implementation that publishes/consumes ODRL policies, loads them into a graphDB, and hits it with all kinds of SPARQL queries: "Can Billie play music file X in Australia on a Wednesday?" Answer: "Only if she pays 0.005 bitcoins by Tuesday" Did this implementation needs these states? I am not convinced. I think that the best way forward is to focus the CR Exit Criteria on validity and conformance to the ODRL IM. (BTW, conformance still means that a Permission is allowed, a Duty must be fulfilled, a Prohibition is not allowed, and a Constraint satisfied.) I would strongly recommend those that favour the Rule Processing approach to document that as a NOTE for implementors. The other advantage to this approach is that we lower the barrier for implementors to address the CR criteria, thereby, enhancing the opportunity for greater participation and proof to the W3C to go to PR. Renato
Attachments
- application/octet-stream attachment: PermissionExamples_MS-2017-09-05.json
- application/octet-stream attachment: ProhibitionExamples_MS-2017-09-05.json
Received on Tuesday, 5 September 2017 20:01:28 UTC