Licences in ODRL

Dear all,

As I mentioned in the meeting the other day, I've been approached by 
Anna and Oleksandra (in cc) seeking comment and guidance on their 
expression of common licences in ODRL. I'm using this as an opportunity 
myself to really get my head around using ODRL in the wild, so to speak, 
and as a consequence, reviewing the clarity of the specs.

For background: Anna and Oleksandra are working on a project, BYTE, 
which is aligned with the Big Data Europe project. Their interest in 
this topic adds weight to my general desire to provide some 
documentation on how one might use ODRL used to express machine readable 
interpretations of common licences.

Thanks, Renato, for the pointer to previous work you've done in this 
space [3].

The BYTE project offers the following as an ODRL encoding of ccBy 4.0 
(copied verbatim from the files they've sent me). Also see attached notes.

@prefix odrl:<http://www.w3.org/ns/odrl/2/> .
@prefix : <http://dalicc.at/licence/> .
@prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

:CC-BY_4.0 a odrl:Policy;
     odrl:permission [
  a odrl:Permission;
         odrl:target <http://example.org/LicensedMaterial>, 
<http://example.org/AdaptedMaterial>, <http://example.org/DataBase>;
  odrl:action odrl:display;
  odrl:action odrl:distribute;
  odrl:action odrl:reproduce;
  odrl:action odrl:extract;
  odrl:action odrl:derive;
  odrl:action odrl:present;
          odrl:duty [
   a odrl:Duty;
   odrl:action odrl:attachSource;
   dalicc:action dalicc:attachLicense;
   odrl:action [
    a odrl:AttachPolicy;
                 dalicc:action dalicc:copyrightNotice;
    dalicc:action dalicc:licenseNotice;
                 dalicc:action dalicc:noWarrantyNotice;
                 dalicc:action dalicc:modificationNotice;
    dalicc:action dalicc:creatorNotice
               ];
   odrl:action [
    a odrl:Attribute;
                 dalicc:action dalicc:worldwide;
                 dalicc:action dalicc:royaltyFree;
    dalicc:action dalicc:nonSublicensable;
                 dalicc:action dalicc:nonExclusive;
    dalicc:action dalicc:irrevocable
   ]
          ]
     ].


Let me try and break this down, in the process of which I will make some 
amendments. I'm hoping for comment on whether those amendments are 
correct/justified.

I think we have a Policy identified as http://dalicc.at/licence/CC-BY_4.0

that applies to three Assets:

http://example.org/LicensedMaterial,
http://example.org/AdaptedMaterial,
http://example.org/DataBase

That's three specific assets, not general classes of asset. What I think 
is needed here, though, is the inverse target method [6] that was added 
following issue 61 [7]. That is, I think BYTE should probably be looking 
at using dcterms:license to point *from* any asset that is licensed as 
ccBy *to* <http://dalicc.at/licence/CC-BY_4.0 and then *not* including 
any target info in the Policy.

Correct?

And am I right that we should use the odrl:Set sub class of odrl:Policy?

So far then we have simply:

:CC-BY_4.0 a odrl:Set

Now to add the Permission, which has a number of permitted actions:

:CC-BY_4.0 a odrl:Set
   odrl:permission [
     a odrl:Permission;
     odrl:action odrl:display, odrl:distribute, odrl:reproduce,
        odrl:extract, odrl:derive, odrl:present
   ] .

So far so good I hope. Now to add in the duty, and I'll start with just 
one of them:

:CC-BY_4.0 a odrl:Set;
   odrl:permission [
     a odrl:Permission;
     odrl:action odrl:display, odrl:distribute, odrl:reproduce,
        odrl:extract, odrl:derive, odrl:present;

        odrl:duty [
          a odrl:Duty;
  odrl:action odrl:attachSource
        ]

   ] .

Hmm... odrl:attachSource is deprecated in favour of cc:SourceCode [8] 
but, more than that, it refers specifically to source code. Is that 
appropriate in an encoding of something as general as ccBY??

I'll skip that for now and start with dalicc:action dalicc:attachLicense 
so we have


:CC-BY_4.0 a odrl:Set;
   odrl:permission [
     a odrl:Permission;
       odrl:action odrl:display, odrl:distribute, odrl:reproduce,
       odrl:extract, odrl:derive, odrl:present;

       odrl:duty [
         a odrl:Duty;
         dalicc:action dalicc:attachLicense
       ]
   ] .

OK, I don't know what the dalicc terms mean so I'll take them as read, 
but a question for BYTE - how does dalicc:action differ from odrl:action?

Let's add in the rest:

@prefix odrl:<http://www.w3.org/ns/odrl/2/> .
@prefix : <http://dalicc.at/licence/> .
@prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix cc:<http://creativecommons.org/ns#> .
@prefix dalicc: <http://dalicc.at/licence/> .

:CC-BY_4.0 a odrl:Set;
   odrl:permission [
     a odrl:Permission;
     odrl:action odrl:display, odrl:distribute, odrl:reproduce,
        odrl:extract, odrl:derive, odrl:present;

        odrl:duty [
          a odrl:Duty;
          dalicc:action dalicc:attachLicense;
          odrl:action [
            a cc:Notice;
            dalicc:action dalicc:copyrightNotice, dalicc:licenseNotice,
            dalicc:noWarrantyNotice, dalicc:modificationNotice,
            dalicc:creatorNotice
          ], [
            a odrl:attribute;
            dalicc:action dalicc:worldwide, dalicc:royaltyFree,
            dalicc:nonSublicensable, dalicc:nonExclusive,
            dalicc:irrevocable
    ]
        ]
   ] .

Note that I used cc:Note as odrl:AttachPolicy is also deprecated. I've 
also used a more terse syntax throughout.

I can't tell if this is an accurate reflection of the ccBy licence - and 
that's up to the legal minds that provide the interpretation, but the 
question is - is this good ODRL? If not, what should change?

I haven't included provenance info but that would be important. 
Something like:

dcterms:creator [
   foaf:name "BYTE Project";
   foaf:homepage <http://byte-project.eu/>
]
dcterms:issued "2017-01-20"^^xsd:date;

etc.

Thanks

Phil


[1] http://byte-project.eu/
[2] https://www.big-data-europe.eu/
[3] https://www.w3.org/community/odrl/work/cc/
[4] https://w3c.github.io/poe/model/
[5] https://w3c.github.io/poe/vocab/
[6] https://w3c.github.io/poe/vocab/#targetAsset
[7] https://github.com/w3c/poe/issues/61
[8] https://w3c.github.io/poe/vocab/#deprecate


-- 


Phil Archer
Data Strategist, W3C
http://www.w3.org/

http://philarcher.org
+44 (0)7887 767755
@philarcher1

Received on Friday, 20 January 2017 17:28:53 UTC