Tiles is a framework to create formal configurations of constraints. Its classes are written in Soda and grouped in packages translated to Scala.
This is an example of a pipeline to detect equality.
The meaning is: for all agents (all-agent
), compute how much each agent accumulates (accumulates
),
and ensure that all of them received the same amount (all-equal
).
The notation (a)
denotes a sequence of agents, (m)
denotes a sequence of quantities, and b
denotes a single
Boolean value.
- 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 | Description |
---|---|
Equality | Determines whether every agent receives the same amount of resources. |
Equity | Determines whether all agents receive resources according to their needs. |
Envy-Freeness | Determines whether the distribution is envy-free. |
Group Fairness | Determines whether the distribution preserves fairness across groups. |
Individual Fairness | Determines whether the distribution preserves fairness for individuals. |
Scoring | Measures the correlation between false positives and a protected attribute. |
Jain's Index | Measures fairness according to the Jain's index. |
Complement of the Gini Index | Measures fairness using the complement of the Gini index. |
Child Care Subsidy | Represents a collection of possible pipelines for child care subsidies. |
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.