Leveraging ODRL to represent data contracts

Hi, ODRL working group,

I am exploring the potential of leveraging ODRL to represent data contracts in a use case that my team is working on. The data contract I am dealing with is basically an agreement between data producer and data consumer that defines the following:


  1.
Data use constraints
  2.
Technical quality
  3.
Service Level Agreement (SLA)
  4.
......

In fact, I am taking inspirations from the open data contract standard (https://github.com/bitol-io/open-data-contract-standard) and trying to leverage ODRL to encode these fundamentals defined in a data contract.
[https://repository-images.githubusercontent.com/659425972/34933436-cecb-4350-b7eb-e78904c5d1fa]<https://github.com/bitol-io/open-data-contract-standard>
GitHub - bitol-io/open-data-contract-standard: Home of the Open Data Contract Standard (ODCS).<https://github.com/bitol-io/open-data-contract-standard>
Home of the Open Data Contract Standard (ODCS). Contribute to bitol-io/open-data-contract-standard development by creating an account on GitHub.
github.com

The target of an ODRL agreement is a dcat dataset in my use case. On the dcat side, a lot of metadata is captured such as data specifications, technical quality, and SLA. Our thought is when we create an agreement for a particular dataset, we can find its related technical quality, SLA from the dcat side.

For example, in our knowledge graph, we have a dataset instance, dataset1, shown below in turtle format.

example:dataset1 a dcat:Dataset ;
               dcterms:accrualPeriodicity <http://purl.org/cld/freq/continous> ;
                dcat:temporalResolution "PT1H"^^xsd:duration .

The data contract built for this dataset1:

example:contract1 a odrl:Agreement ;
            odrl:permission [  a odrl:Permission ;
                            odrl:target example:dataset1;
                            odrl:assigner example:provider1;
                            odrl:assignee example:consumer1
...........
]
                 
         
If we follow this approach, the agreement upon SLA and other fundamentals is seemingly inexplicit in this data contract as we have to further traverse the graph to find more metadata of the dataset1.

My question is what would be the best practice to utilize ODRL to document data contracts with requirements, including technical quality, SLA etc. Should we add additional constraints to the agreements to make the conditions more explicit, but somehow introduce data duplication?

     example:contract1 a odrl:Agreement ;
            odrl:permission [  a odrl:Permission ;
                            odrl:target example:dataset1;
                            odrl:assigner example:provider1;
                            odrl:assignee example:consumer1;
                            odrl:constraint [ a odrl:Constaint ;
                            odrl:leftOperand example:accrualPeriodicity ;
                            odrl:operator odrl:eq ;
                            odrl:rightOperand  <http://purl.org/cld/freq/continous>
]
...........
]


Please let me know if further information is needed.

Thanks,

Xin Li

Received on Wednesday, 3 July 2024 14:12:26 UTC