DCPL (pronounced "disciple", standing for duty, claim, power, claim and liability, or digital contracts programming language) is a domain specific language that serves as an information model for specififying norms. As discussions on several aspects of normative concepts and normative systems are still open in the literature, DCPL (at first named DPCL) attempts to remain as much as neutral with respect to the actual semantics, yet aims to provide a minimal common ground to encode normative computational artefacts.
The documentation for DCPL information model can be found here.
- DPCL like ODRL (https://www.w3.org/TR/odrl-model/) aims to provive primarily an informational model, and is JSON-centred, but DPCL include power categories, and focuses on normative mechanisms (it does not include inherently concepts as assets);
- DPCL like FLINT/eFLINT (https://gitlab.com/eflint) takes as primitives frames constructed from Hohfeld's framework of normative concepts, but DPCL strictly separates conditional from normative aspects, and allow specifying a wider array of normative concepts;
- DPCL like Logical English (https://demo.logicalcontracts.com/) takes as primitives transformational and reactive rules to deal with conditional aspects, but DPCL includes explicit normative concepts.
This repository contains a JSON schema validating a DPCL program encoded in a json file.
DPCLschema.json
contains the current version of the information model of DPCL as a JSON schema.DPCLexamples.json
contains examples of code that are validated by the schemaDPCLtest.py
is a simple script based onjsonschema
used to validate both the schema definition and DPCL code in the fileDPCLexamples.json
against the schema.
pip install jsonschema
Sileno, G., van Binsbergen, T., Pascucci, M., van Engers, T., DPCL: a Language Template for Normative Specifications, Workshop on Programming Languages and the Law (ProLaLa 2022), co-located with POPL 2022 https://arxiv.org/abs/2201.04477