MOEKA is a specialized user-interview based software system designed for expert knowledge acquisition and representation of monotone Boolean functions. It provides both a command-line interface and a graphical user interface for creating, visualizing, and analyzing monotone Boolean functions.
MOEKA solves the problem of efficiently capturing expert knowledge about monotone Boolean functions through an interactive process. It uses Hansel chains and various optimization algorithms to minimize the number of questions needed to reconstruct a complete monotone Boolean function from expert knowledge.
- Interactive Knowledge Acquisition: Guides experts through a systematic process of defining monotone Boolean functions
- Multiple Interface Options:
- Command-line interface for direct interaction
- Graphical user interface for visual representation and manipulation
- Optimization Algorithms:
- Hansel chain-based questioning strategies
- Binary search capabilities
- Chain jumping optimization
- Majority vector handling
- Visualization Tools:
- Multiple Disk Form (MDF) visualization
- Function hierarchy representation
- Mathematical notation display
- English language representation
- Function Management:
- Create and edit functions manually
- Compare multiple functions
- Hierarchical function organization
- Support for k-valued attributes
- C++17 compatible compiler
- CMake 3.15 or higher
- OpenGL development libraries
- GLFW3
- GLEW
- ImGui
# Create build directory
mkdir build && cd build
# Configure
cmake ..
# Build
cmake --build .
- Open
MOEKA.sln
in Visual Studio - Build the solution
The program can be run in two modes:
-
Console Mode: For direct command-line interaction
./moeka --console
-
GUI Mode: For visual interface and manipulation
./moeka
The GUI provides several key components:
- Model manipulation controls
- Function hierarchy tree view
- Help/Introduction window
- Quick access buttons for common operations
- Model scaling controls
- Model selection interface
- Use the Prep Window to define function attributes and parameters
- Create clauses and sub-functions in the Function Screen
- Use the Interview Screen for guided function creation
- Visualize and edit the resulting model
Please read the LICENSE file for details on our code of conduct and the process for submitting pull requests.
MOEKA is licensed under the MIT License, allowing free use for both personal and commercial purposes. For full terms, see the LICENSE
file.