Welcome to Argumentum, a captivating card game that celebrates the intricate art of argumentation. This project not only involves the creation and distribution of the end product but also aims to facilitate content updating with ease.
Discover more about the game (currently in French) on the project's website.
Argumentum is an educational project that aims to teach the art of argumentation and raise awareness of fallacies through a card game. The project includes a complete system for generating cards, documentation, and validation in several languages (French, English, Russian, and Portuguese).
The system is composed of several interconnected components:
graph TD
A[Fallacy Taxonomy] --> B[Asset Converter]
B --> C[Web Card Generator]
B --> D[Mind Map Creator]
B --> E[OWL Ontology Generator]
B --> F[Validation Systems]
F --> G[Taxonomy Validation]
F --> H[Ontology Validation]
F --> I[Card Validation]
F --> J[Continuous Validation]
B --> K[Translation Coverage Report]
B --> L[Parallelism Optimizer]
C --> M[Generated Cards]
D --> N[Mind Maps]
E --> O[OWL Ontologies]
The repository is organized as follows:
-
Generation: Contains the core tools for the generation workflow:
- CardPen: A tailored version of M.C DeMarco's cardpen, used to generate templated cards from CSV data.
- Converters: A command-line utility that processes and assembles Cardpen scenarios to create print-ready documents.
-
Cards: Houses Cardpen configurations for the different decks in Argumentum, including assets for each card type.
-
DNNPlatform: The web application for the Argumentum website, built on DNN ASP.Net with 2Sxc and Open-store extensions.
We are open to contributions of many kinds. You don't have to be a developer to give a hand.
If you're interested in helping with the data at the heart of this project, consider contributing to these Google spreadsheets:
The content is regularly exported to CSV files in this repository. Direct Pull Requests are also welcome.
We aim to distribute our material to the widest possible audience. If you are fluent in a language not yet available, please let us know. We also welcome corrections and improvements to existing translations and content.
The pipeline for generating card and document assets is fully tested and automated.
To generate all assets, run the following command from the root of the repository:
dotnet run --project "Generation/Converters/Argumentum.AssetConverter/Argumentum.AssetConverter.csproj"
This command will:
- Compile the
Argumentum.AssetConverter
project. - If
AssetConverterConfig.json
is missing, it will be created with default settings. - Execute the generation pipeline, which includes "harvesting" card images and assembling them into final PDF documents.
All generated files, including the final PDFs, can be found in the following directory:
Generation/Converters/Argumentum.AssetConverter/bin/Debug/net8.0/Target/
The assets are organized by language within this directory (e.g., fr/
, en/
).
The entire generation pipeline is covered by a comprehensive suite of tests, ensuring the reliability and correctness of the generated assets.
The Argumentum.AssetConverter
application uses a configuration file named AssetConverterConfig.json
to control its behavior.
If this file is missing when the application starts, it will be automatically generated with default values. These defaults are sourced directly from the AssetConverterConfig.cs
file within the project.
To restore the default configuration, you can simply delete or rename the existing AssetConverterConfig.json
file. A new one will be created with the default settings the next time you run the application.
The DNN website's data and decryption key are not included in the current commit. If you're interested in running a copy of Argumentum.games, please contact us.
The project is licensed under the LGPL-3.0 license. See the LICENSE file for more details.
You can contact the project maintainers via the issues page.
The project is based on the work of M.C DeMarco's cardpen.
The Argumentum.AssetConverter
application was encountering an error related to the System.Diagnostics.StackTrace
dependency when using AnsiConsole.WriteException()
from Spectre.Console. To resolve this, Spectre.Console
was updated from version 0.47.0 to 0.50.0. The run_without_stacktrace_error.bat
script is no longer needed.
A DocumentDrawingException
was occurring due to a thread-safety issue in the QuestPDF library when generating multiple PDF documents in parallel. The issue was resolved by introducing a lock
statement around the PdfManager.GenerateDocument
call, ensuring that only one PDF is generated at a time, while still benefiting from parallelism for other tasks.