Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notification, Request, and Consent Duties #6

Closed
benedictws opened this issue Jun 23, 2020 · 5 comments
Closed

Notification, Request, and Consent Duties #6

benedictws opened this issue Jun 23, 2020 · 5 comments

Comments

@benedictws
Copy link
Collaborator

benedictws commented Jun 23, 2020

Many licenses require the Assignee to notify the Assigner when they start to use a product.

This can easily be modeled by a Duty. Effectively the permission(s) to use the product only become valid once the notification duty is fulfilled. Notification only needs be done once to fulfill the duty.

In summary (and from the DBAG non-display license):

db:O4-1 a                   odrl:Duty ;
        nl:creditor         <https://permid.org/1-4298007872> ; # DBAG
        odrl:action         [   a                  md:Notify ;
                                md:actionScope     md:Usage ;
                                odrl:count         "1"^^xsd:int
                            ] .
@markabird
Copy link
Collaborator

Could Notification Duties be used to enforce prior approval before distributing to a third party, or would that be a different duty?

@benedictws
Copy link
Collaborator Author

benedictws commented Jun 24, 2020

Good point, @markabird. Enough to change the title of this issue!

One could create a single duty (on the assignee) to obtain consent. The action would be something like obtainConsent. But that doesn't really model the interaction between the assignee and the assigner that delivers consent.

The interaction involves the assignee requesting a desired state, and the assigner consenting to it. Here we have two duties: one on the assignee (to request) and one on the assigner (to consent).

@benedictws benedictws changed the title Notification Duties Notification and Approval Duties Jun 24, 2020
@benedictws benedictws changed the title Notification and Approval Duties Notification and Consent Duties Jun 24, 2020
@benedictws
Copy link
Collaborator Author

benedictws commented Jun 24, 2020

Take the example of obtaining consent for the use of a Service Facilitator in the DBAG license.

The first duty, the request, differs from the example at the top both in its action and in its actionScope. We're not notifying the exchange that we've started using their product, but that we want to use a Service Facilitator.

It's also not a "one-off" duty, but one that is conditional on achieving a desired state: that of giving a Service Facilitator access to the data. We can capture that in a constraint: we want the property recipient (i.e. additional parties with access to the data though no rights over it) to be satisfied by an external party with the role of Service Facilitator.

So:

db::D3     a                   odrl:Duty ;
        nl:creditor         <https://permid.org/1-4298007872> ; # DBAG
        odrl:action         [   a                       md:Request ;
                                md:actionScope          md:ServiceFacilitator ;
                                odrl:count              "1"^^xsd:int
                            ] ;
        md:recipient        [   a                       md:External ;
        			md:role                 md:ServiceFacilitator
                            ] .

But this takes us only halfway to consent.

@benedictws
Copy link
Collaborator Author

We now need the assigner (in this example, DBAG) to give consent. This is another duty, but DBAG is now the debtor - it needs to consent, or not:

db:O3   a                   odrl:Duty ;
        nl:debtor           <https://permid.org/1-4298007872> ; # DBAG
        odrl:action         [   a                       md:Consent ;
                                md:actionScope          md:ServiceFacilitator ;
                                odrl:count              "1"^^xsd:int
                            ] ;
        odrl:duty           db:D3 . 

Note how this duty is only activated when the notification duty db:D3 is fulfilled. It's analogous to issue 8 when the payment duty only becomes active on fulfillment of the invoicing duty.

@benedictws
Copy link
Collaborator Author

benedictws commented Jul 7, 2020

The notification duty at the top of these comments, db:O4-1, provides no criteria that specify under what conditions it becomes activated. In a sense, it's simple: notify DBAG when you start using their data. But how do we capture this with a property? What is the property?

@benedictws benedictws changed the title Notification and Consent Duties Notification, Request, and Consent Duties Jul 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants