Re: Help with ODRL

Another approach maybe to define an event (in your Profile) for the "first publication of the article” (since the objective is an instant licence).
Then this can be combined with a logical constraint (andSequence to enforce the order) and followed by a 12 month delay.

    "permission": [{
       "action": "distribute",
       "constraint": {
               "andSequence": { 
            "@list": [ 
     {   "leftOperand": "event",
                       "operator": "eq",
                       "rightOperand": { "@id": "asf:firstPublication" } },
                   {   "leftOperand": "delayPeriod",
                       "operator": “gteq",
                       "rightOperand": { "@value": "P12M", "@type": "xsd:duration" } } ]
             }
            }
        }]


Cheers - Renato

> On 14 Apr 2021, at 03:39, Benedict Whittam Smith <ben@deonticdata.com> wrote:
> 
> Hi Vincent,
>  
> I’ve been working on an ODRL profile for market data. In that domain, timeliness of delivery is critical and embargoes common.
>  
> I use the OWL time ontology and the timelinessOfDelivery constraint (defined in the profile here: https://w3c.github.io/market-data-odrl-profile/md-odrl-profile.html#timeliness-of-delivery <https://w3c.github.io/market-data-odrl-profile/md-odrl-profile.html#timeliness-of-delivery>) to specify embargoes.
>  
> The following describes “end-of-day” data – data embargoed until market close (10:30pm CET):
>  
> {
>                 "@graph": [{
>                                 "@id": "cmere:S1-R1",
>                                 "@type": ["dcat:Dataset", "md:Resource"],
>                                 "contentNature": "rbim:staticEOD",
>                                 "description": "End-of-day Eurodollar Futures Contract embargoed until 10:30pm CET",
>                                 "title": "End-of-day Eurodollar Futures Contract traded on Globex",
>                                 "timelinessOfDelivery": {
>                                                 "@type": ["md:Embargo", "time:ProperInterval"],
>                                                 "description": "End-of-day",
>                                                 "after": {
>                                                                 "@type": ["time:Instant", “md:MarketClose”],
>                                                                 "inDateTime": {
>                                                                                 "@type": "time::DateTimeDescription",
>                                                                                 "description": "10:30pm CET",
>                                                                                 "timeZone": "https://www.wikidata.org/wiki/Q2086913 <https://www.wikidata.org/wiki/Q2086913>",
>                                                                                 "hour": "22",
>                                                                                 "minutes": "30"
>                                                                 }
>                                                 }
>                                 }
>                 }],
>                 "@context": {
>                                 "inDateTime": {
>                                                 "@id": "http://www.w3.org/2006/time#inDateTime <http://www.w3.org/2006/time#inDateTime>",
>                                                 "@type": "@id"
>                                 },
>                                 "timelinessOfDelivery": {
>                                                 "@id": "http://www.w3.org/md-odrl-profile/timelinessOfDelivery <http://www.w3.org/md-odrl-profile/timelinessOfDelivery>",
>                                                 "@type": "@id"
>                                 },
>                                 "contentNature": {
>                                                 "@id": "http://example.org/refinitiv/rbim/contentNature <http://example.org/refinitiv/rbim/contentNature>",
>                                                 "@type": "@id"
>                                 },
>                                 "description": "http://purl.org/dc/terms/description <http://purl.org/dc/terms/description>",
>                                 "title": "http://purl.org/dc/terms/title <http://purl.org/dc/terms/title>",
>                                 "after": {
>                                                 "@id": "http://www.w3.org/2006/time#after <http://www.w3.org/2006/time#after>",
>                                                 "@type": "@id"
>                                 },
>                                 "timeZone": {
>                                                 "@id": "http://www.w3.org/2006/time#:timeZone <http://www.w3.org/2006/time#:timeZone>",
>                                                 "@type": "@id"
>                                 },
>                                 "minutes": {
>                                                 "@id": "http://www.w3.org/2006/time#minutes <http://www.w3.org/2006/time#minutes>",
>                                                 "@type": "http://www.w3.org/2001/XMLSchema#int <http://www.w3.org/2001/XMLSchema#int>"
>                                 },
>                                 "hour": {
>                                                 "@id": "http://www.w3.org/2006/time#hour <http://www.w3.org/2006/time#hour>",
>                                                 "@type": "http://www.w3.org/2001/XMLSchema#int <http://www.w3.org/2001/XMLSchema#int>"
>                                 }
>                 }
> }
>  
> I’ve applied some syntactic sugar to the constraint syntax, but timelinessOfDelivery is the left operand and interval defined by the time:after property is the right operand.
>  
> Ben

Received on Friday, 16 April 2021 13:20:40 UTC