SHARCS ODRL Example
SHARCS example is a collection of data, rules and validation steps to simulate a data clearing house use-case.
This code is an expansion of the SHARCS example. Instead of writing the policy rules in RDF Surfaces language we use the ODRL2 ontology examples provided by Inès Akaichi.
Requirements
- EYE version 4.4.3 or better
Architecture
This experiment contains the core knowledge base data.ttl
which can be accessed using RDF Surfaces policies (the .n3s
files). These policies are compiled from their Turtle source files:
data_consumer_policy.n3s
is compiled version of the Turtle sourcedata_consumer_policy.ttl
ODRL policies can contain zero or more constraints that are checked using a Notation3 constraint checker constraint_checker.n3
.
[KnowledgeBase] -->
{Compile .ttl policies into .n3s (surfaces)} -->
{Surface Reasoning with [KnowledgeBase] + [.n3s Policies] + [.q Query]} -->
{Notation3 Reasoning with [.n3 Constraints]} -->
[Output]
In this setup, the RDF Surfaces policies contain only existential rules, executing basic graph pattern queries over the data.
Execution steps
- Compile
data_consumer_policy.ttl
intodata_consumer_policy.n3s
. - Reason over
data.ttl
usingdata_consumer_policy.n3s
.
- Results in a
<urn:odrl-compiler:Result>
output with zero or more constraints when all policy conditions are met.
- Check if the reasoning ouput
<urn:odrl-compiler:Result>
satisfies all constraints.
Data Content
data.ttl
: a sample instance of the data modeldata_consumer_policy.ttl
: an ODRL policy for the data consumerodrl_sharcs_profile.ttl
: an ODRL profile for the SHARCS project
Compiler Content
compiler.n3
: an Notation3 ODRL Turtle to RDF Surfaces compilerutil.n3
: a set of Notation3 utility built-insconstraint_checker.n3
: a Notation3 constraint checkerdata_consumer_policy.q
: a query surface that defines which result data to expose to the worlddata_consumer_policy.n3s
: compiled RDF Surfaces ofdata_consumer_policy.ttl
Scripts
run.sh
: run all the execution steps as explained above