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

Payment Duties #8

Closed
benedictws opened this issue Jun 23, 2020 · 1 comment
Closed

Payment Duties #8

benedictws opened this issue Jun 23, 2020 · 1 comment

Comments

@benedictws
Copy link
Collaborator

Payment duties follow the same structure as reporting duties. They have a periodicity (pay monthly or annually) and a grace period (often pay one month in arrears). The payment action however differs:

:D6                 odrl:action         [   a                   odrl:Compensate ;
                                            odrl:unitOfCount    md:Device ;
                                            odrl:payAmount      "1150.00"^^xsd:float ;
                                            odrl:unit           <https://www.wikidata.org/wiki/Q4917> ; # US dollar
                                            odrl:count          "1"^^xsd:int
                                        ] ;

Here we need to specify how much to pay, in what currency, and, if relevant, per what unit of count. In the case above, we're paying by device. It might be by user ID. Sometimes in non-display agreements, this is not needed.

Assuming we pay the CME monthly, a month in arrears, the full payment duty looks so:

:D6                 a                   odrl:Duty ;
                    nl:creditor         <https://permid.org/1-4295899615> ; # CME
                    nl:hasDeadlineDelta [   a                   time:ProperInterval ;
                                            md:timeReference    time:Instant , md:TimeOfInvoicing ;
                                            time:hasXSDDuration "P1M"^^xsd:duration
                                        ] ;
                    odrl:timeInterval   [   a                   time:ProperInterval ;
                                            time:hasXSDDuration "P1M"^^xsd:duration 
                                        ] ;
                    odrl:action         [   a                   odrl:Compensate ;
                                            odrl:unitOfCount    md:Application ;
                                            odrl:payAmount      "1150.00"^^xsd:float ;
                                            odrl:unit           <https://www.wikidata.org/wiki/Q4917> ; # US dollar
                                            odrl:count          "1"^^xsd:int
                                        ] .
@benedictws
Copy link
Collaborator Author

benedictws commented Jun 23, 2020

We can go further, and model the dependency on an invoice.

Here we put the obligation on the creditor (in the case above, the CME) to send an invoice. Fulfilling this then activates the payment duty (and perhaps its thirty day payment terms).

We can model this in all its simplicity:

:D5                 a                   odrl:Duty ;
                    nl:debtor           <https://permid.org/1-4295899615> ; # CME
                    odrl:action         md:Invoice  . 

Notice how the obligation is now on the CME (i.e. the debtor).

We can now link the payment duty above to this invoicing duty so:

:D6 odrl:duty :D5 .

i.e. the payment duty :D6 does not become active until the invoicing duty :D5 is fulfilled.

Note: using duties in this way is probably an extension of the ODRL standard model.

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

1 participant