Tiles
Tiles is a framework to create formal configurations of constraints. Its classes are written in Soda and grouped in packages translated to Scala.
The fairness tiles are defined in package tile (Scala translation) and they use entities and other tools defined in package tool (Scala translation).
Publications
- Julian Alfredo Mendez, Timotheus Kampik, Andrea Aler Tubella, and Virginia Dignum. A Clearer View on Fairness: Visual and Formal Representation for Comparative Analysis. In Florian Westphal, Einav Peretz-Andersson, Maria Riveiro, Kerstin Bach, and Fredrik Heintz, editors, 14th Scandinavian Conference on Artificial Intelligence, SCAI 2024, pages 112-120. Swedish Artificial Intelligence Society, June 2024. DOI:10.3384/ecp208013 Abstract BibTeX PDF Implementation
- Julian Alfredo Mendez. Soda: An Object-Oriented Functional Language for Specifying Human-Centered Problems. arXiv DOI:10.48550/arXiv.2310.01961 Abstract BibTeX PDF Implementation
Example
This project includes an executable example of Child Care Subsidy pipelines.
The script makeall.sh
creates the file tiles
, which is an executable JAR file that can be
directly executed in Linux. Its input is a YAML configuration file, like the
configuration file provided for the unit tests. For more details, see the
Child Care Subsidy example.
Resource Allocation Scenarios
These are some of the implemented fairness tiles for resource allocation scenarios:
Tile | Class |
---|---|
all-actor (a) | AllActorTile |
(a) received (m) | ReceivedSigmaPTile |
(m) all-equal b | AllEqualTile |
(a) needed (m) | NeededPTile |
(m0), (m1) all-at-least b | AllAtLeastTile |
equality b | EqualityPipeline |
equity b | EquityPipeline |
A specific scenario is given as an example in ResourceAllocationScenarioExample. This scenario is used to test the equality tile with EqualityPipelineSpec and the equity tile with EquityPipelineSpec.
Example of Equality
graph LR
all-actor(all-actor) --> received
received(received) --> all-equal(all-equal)
Example of Equity
graph LR
all-actor(all-actor) --> received
all-actor --> needed
received(received) --> all-at-least(all-at-least)
needed(needed) --> all-at-least
Auxiliary Tiles
The auxiliary tiles are used in the construction of other tiles. Some of the auxiliary tiles are:
Tile | Class |
---|---|
(a) attribute (m) | AttributePTile |
(m0), (m1) σ (m) | SigmaTile |
(α0),(α1) zip (α0, α1) | ZipTile |
(α0, α1) unzip-0 (α0) | UnzipPairFstTile |
(α0, α1) unzip-1 (α1) | UnzipPairSndTile |