@prefix this: . @prefix sub: . @prefix np: . @prefix rdf: . @prefix prov: . @prefix npx: . @prefix dc: . @prefix xsd: . sub:Head { this: a np:Nanopublication; np:hasAssertion sub:assertion; np:hasProvenance sub:provenance; np:hasPublicationInfo sub:pubinfo . } sub:assertion { sub:odrl-replication-walkthrough a , ; "Replication of FAIR2Adapt ODRL access control on synthetic biodiversity dataset"; , , , , ; "Uses synthetic biodiversity data instead of real sensitive research data. Consumer DID is a walkthrough identity (did:web:fair2adapt.github.io:fair-data-access:example-consumer) rather than a real researcher's DID. Access request is simulated locally rather than through the GitHub Actions automated workflow."; ; """Using the fair-data-access Python framework: (1) generate AES-256-GCM dataset key and encrypt a synthetic biodiversity CSV, (2) publish an ODRL Offer policy as a signed nanopub with Public Benefit purpose constraint, (3) simulate a consumer access request with a did:web identity, (4) evaluate the ODRL policy against the declared purpose, (5) wrap the dataset key using ECDH key agreement with the consumer's public key, (6) unwrap and decrypt on the consumer side, (7) verify data integrity by comparing decrypted output to the original."""; "End-to-end test: encrypt dataset, publish ODRL policy as nanopub, evaluate automated access request, wrap key for consumer DID, decrypt, verify integrity."; . } sub:provenance { sub:assertion prov:wasAttributedTo . } sub:pubinfo { " Anne Fouilloux" . this: a npx:ExampleNanopub; dc:created "2026-04-12T09:23:54.494Z"^^xsd:dateTime; dc:creator ; dc:license ; npx:introduces sub:odrl-replication-walkthrough; npx:wasCreatedAt ; "NP created using Declaring a replication study design according to FORRT"; . sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoDcOiD+jen8awiJ6DB2ewDw66PeG64hODmgNFwy7GrwQui4HKnHdvxd++1UhTgiOfycxyxBb7sXPSikLw/1TsSyPsEl0P3/+600szxpTGgLNzW+bZ2DVP3d8ERMV1aWpH0ci3B/5vmK+vXQZ4uCoq57NE0MiFg5c13Gy0gd6n7wZYEhYM4AjWSLL0QS/HY+TFZMYL9bCFeATennGrlB2UEjRlw21UB2Ah16ZZ6hxQlfctFJZE7TGnBJPB3ttTjfcOfamhjZVwQ0yV9mv7x6PGiSmkzpJTVLjn8hagoKT05YUwVQArFb+w7f6sXqvvljMigjd/Rbqgbye/lLUAZLfJSnFM58TubfpEJvXV4zNMDEoT3VQ7dokgoLgMrmjZCKATtQ7gomocoTJ1NhN2esRNtGzWaS2obL/mueUQlMlavssZnqL8WICkdAuDlwDVNbsbwEWKQ50kiPdAdduSigifxA4CM7TgvnxqZVoAResEGP6UhTTem3T4CsbEas1Caj9wa7M1jPjACu5LF5BwcVns3ZQHWLipjRjD+9/ur3G8QtuxbNhmXlDYQ6tXxB1lK+Oz7O519b3bA15ilzFl0SdvMBGTe46xaQ9DsJT18THKnPbUhNMy0dH0VtzpB+EEaXZ25Fp9VHMEUqo1lLS9e89eO3efiqkESKQ7wmB+/DlIRcCAwEAAQ=="; npx:hasSignature "TYn4dWDXiXRzPTmCtDTBDwinF4M0QAFjTYXHID2YFay5MuX29JmhETUWXj7GjZY3LbmnRzKmyl0Q0nUD38lgNOVl1i+TlXnuoPPaOFX8hCVyXlHnMaTh0zpW6xMvNzDjAuv0OivVTl1HTPiu3Kfdz9UifX5KBNi95G2hGW80SuGVJqIBe4xzb1rqP+05g9mf2Wuc3J7tvAkgHchPZD1OFskAQpdy7zuhBesaOG7CWoFoCJMZKlEQOeLtn3dzBCGgU6180KrMqYIhh5y51D8OA/245Q5dLk8GE0j48ZzC/rGr8f12ufJsC1FcfBqt22eWH1rqgdWVTFJ87QiGk9If3jgHq+fcSeTPONzSWmTTsbBCXtg/NLd1GJmDzz1vW23jKpgAxiGj4ZgweLA+8bBv8P4sIezl5EX0mbcxcbso+U4KZumaz+Zi7/HF9rDxNXFt02oFbLegqrjQn11Ouar6FrEupCG9hbEjpe42nv57MbaEAdPOLXn1vNrBw/DwN4cuNQQRwpsLk5rO3sczjQDP10f5DAhFlKv68dG3BYzCyS8Lj17qYlLLwIxfS8/QhCPdr+YNsPBJLm44FMW+qcCSRGGcpZTjHYtkstvjJMRB2l/jzI7hFXFSLo4KgEF2SGKH6tSdABLsSyuNHRUnohCYwa5HOjEqefJLLV1Vy73+APM="; npx:hasSignatureTarget this:; npx:signedBy . }