Skip to content

MOEKA (Monotone Boolean Function Expert Knowledge Acquisition) 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.

License

Notifications You must be signed in to change notification settings

CWU-VKD-LAB/MOEKA

 
 

Repository files navigation

MOEKA (Monotone Boolean Function Expert Knowledge Acquisition)

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.

Software Purpose

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.

Key Features

  • 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

Getting Started

Prerequisites

  • C++17 compatible compiler
  • CMake 3.15 or higher
  • OpenGL development libraries
  • GLFW3
  • GLEW
  • ImGui

Building

Using CMake (Recommended)

# Create build directory
mkdir build && cd build

# Configure
cmake ..

# Build
cmake --build .

Using Visual Studio (Alternative)

  1. Open MOEKA.sln in Visual Studio
  2. Build the solution

Running

The program can be run in two modes:

  1. Console Mode: For direct command-line interaction

    ./moeka --console
  2. GUI Mode: For visual interface and manipulation

    ./moeka

Usage

GUI Interface

The GUI provides several key components:

  1. Model manipulation controls
  2. Function hierarchy tree view
  3. Help/Introduction window
  4. Quick access buttons for common operations
  5. Model scaling controls
  6. Model selection interface

Function Creation

  1. Use the Prep Window to define function attributes and parameters
  2. Create clauses and sub-functions in the Function Screen
  3. Use the Interview Screen for guided function creation
  4. Visualize and edit the resulting model

Contributing

Please read the LICENSE file for details on our code of conduct and the process for submitting pull requests.

License

MOEKA is licensed under the MIT License, allowing free use for both personal and commercial purposes. For full terms, see the LICENSE file.

About

MOEKA (Monotone Boolean Function Expert Knowledge Acquisition) 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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 93.7%
  • C 6.1%
  • Other 0.2%