2BFAIR-framework is a framework for automated FAIRness assessment of digital resources according to the FAIR principles. These principles correspond to 15 recommendations for improving the Findability, Accessibility, Interoperability, and Reusability of data objects but also algorithms, vocabularies, tools, workflows, and other data-related services insofar as they are made available as digital objects. FAIRness corresponds to a grade indicating how close a digital object is to abiding by the FAIR principles considered relevant for a community or task.
2BFAIR was designed as a framework to support full customization of the FAIRness evaluation. Customization is a crucial requirement partially addressed by existing automated tools. As a framework, 2BFAIR implements frozen spots, which encapsulate common complex logic required by any evaluation. For customization, it provides hot spots that users can adjust to fit specific needs. Besides, 2BFAIR teaches FAIR during its use and gives recommendations about how to improve the FAIR of digital objects according to the user's community priorities.
Packages descriptions:
tobefair_frameworkmain code of 2BFAIR.tobefair_framework/model: implementation of the data types used through the code, e.g., for configuration, fairness evaluation, identifier, metadata, request, results.tobefair_framework/core: implementation of the classes for, e.g., getting the configuration (configuration) collecting the resource (collector), executing the evaluation (evaluator).tobefair_framework/core/controller: classes to execute the use case required to perform evaluations, i.e., it calls the other components to execute the whole evaluation workflow.tobefair_framework/tool_example: an example of an application to call 2BFAIR-framework components. The users of the framework can start running this application to understand the 2BFAIR-framework code. The main code is in the filemain_example.py. The filetobefair_framework/tool_example/readme.mdexplains how the tool example was implemented.
AZEVEDO, L. G., CAROLI, E., CORRÊA, B. S., DA SILVA, V. T. “2BFAIR: Framework for Automated FAIRness assessment”. In: 2nd International Workshop on Natural Scientific Language Processing and Research Knowledge Graphs (NSLP 2025), co-located with ESWC 2025, June 01–02, Portorož, Slovenia, 2025.
Using a virtual environment for all commands.
-
We are using Python 3.11. If you are using pyenv, you can install Python 3.11 running:
pyenv install 3.11. -
Create a virtual environment:
pyenv virtualenv 3.11.12 tobefair_framework -
Start the environment running
pyenv shell tobefair_framework -
Run
pyenv local tobefair_frameworkto generate a.python-versionwith the Python version of the environment. -
Other useful commands:
pyenv versionspyenv virtualenvs
-
To start VS Code with the environment set, ensure that the following commands are in your
~/.zshrcfile.
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
# assuming you have an SSH key set up on GitHub
pip install "git+ssh://git@github.com/IBM/2BFAIR-framework.git@main"pip install --upgrade pip setuptools wheel
pip install -r requirements.txt
pip install -r dev_requirements.txt
pip install -e .
pre-commit installTo run 2BFAIR_backend implementation.
- Install the required libraries:
pip install -r tobefair_backend_requirements.txt - Using Visual Studio Code, configure the following debug option:
"configurations": [
{
"name": "Python Debugger: FastAPI",
"type": "debugpy",
"request": "launch",
"module": "uvicorn",
"args": [
"tobefair_backend.service.main:app",
"--reload"
],
"jinja": true,
},