/metta-src-conversions

Many Decades of AI Algorithms translated (src-to-src) into the Hyperon MeTTa Language

Primary LanguageProlog

Project: Translated Machine Learning Algorithms

Welcome to the repository containing translations of various machine learning algorithms into MeTTa and new functional logic programming languages using type theory. This project aims to make these algorithms accessible in languages that leverage type theory for enhanced expressiveness and correctness.

Directories:

This directory contains the original source code for the AQ1 algorithm, along with its translation into MeTTa. AQ1 is a reimplementation of Michalski's AQ algorithm, specifically designed to handle attribute vectors. Created by Jeffrey M. Becker, AQ1 offers enhanced capabilities for dealing with complex attribute-based data structures, making it a valuable tool for various machine learning tasks.

Here you'll find the implementation of ARCH1, along with its translation into the new functional logic programming language using type theory. ARCH1, developed by Stefan Wrobel, is an incremental learning procedure based on Patrick Winston's work. This implementation provides a framework for dynamic model updates as new data becomes available, making it a powerful tool for tasks requiring adaptability and real-time learning.

ARCH2's original implementation resides here, along with its translation into MeTTa. ARCH2, devised by Ivan Bratko, offers a minimalistic version of Winston's incremental learning procedure. While more restricted in functionality compared to ARCH1, it provides a lightweight solution for scenarios where simplicity and efficiency are paramount.

The ATTDSC algorithm's source code is available here, along with its translation into the new functional logic programming language. Developed by Ivan Bratko, ATTDSC presents an algorithm specifically designed for learning attributional descriptions. By focusing on attributional attributes, this algorithm enables the extraction of meaningful patterns and insights from datasets characterized by attributional structures.

This directory holds the COBWEB algorithm's original implementation and its translation into MeTTa. COBWEB, implemented by Joerg-Uwe Kietz, is an algorithm for incremental concept formation. Based on Fisher's work, COBWEB dynamically constructs and refines concept hierarchies as new instances are encountered, making it suitable for tasks involving concept learning and categorization.

You can find the DISCR algorithm's original source code and its translation into the new functional logic programming language here. DISCR, created by Pavel Brazdil, provides a method for generating discriminants from derivation trees. This approach facilitates the extraction of discriminative features or rules from complex data representations, aiding in tasks such as pattern recognition and classification.

The EBG algorithm is available here, along with its translation into MeTTa. EBG offers implementations of Prolog meta-interpreters for Mitchell's explanation-based generalization. Developed as a tool for explanation-based learning, EBG facilitates the acquisition of generalized knowledge from specific instances, enhancing the efficiency of learning systems.

In this directory, you'll find the implementation of IDT and its translation into the new functional logic programming language using type theory. Crafted by Luis Torgo, IDT is an ID3-like program for inducing decision trees based on the gain-ratio measure. By employing a gain-ratio-based splitting criterion, IDT aims to construct decision trees that effectively capture the underlying structure of the data, enabling accurate classification and prediction.

Here, you can explore the original implementation of the INDEX system and its translation into MeTTa. INDEX is an experimental system for inductive data engineering, designed by Peter A. Flach. This system provides a platform for exploring innovative approaches to data engineering tasks, with a focus on inductive reasoning and knowledge discovery from data.

The INVERS algorithm's original source code and its translation into the new functional logic programming language are located here. INVERS is an implementation of Steven Muggleton's operators for inverse resolution. By applying absorption and intra-construction operators, INVERS facilitates the process of inverse resolution, which involves deriving hypotheses or explanations from observed data.

This directory contains a collection of logic procedures for learning, along with their translations into MeTTa. Logic is a foundational toolkit including procedures for determination of substitutions, implication, least general generalization, and generalized subsumption. These procedures serve essential functionalities for various learning systems.

Here, you'll find the Occam learning program's original implementation and its translation into the new functional logic programming language. Occam is a learning system that combines Explanation-Based Learning (EBL) and Similarity-Based Learning (SBL). By integrating these two learning paradigms, Occam aims to leverage both explanatory and similarity-based approaches to enhance learning efficiency and generalization performance.

The VS algorithm's original source code and its translation into MeTTa are available in this directory. Developed by Luc de Raeth, VS is a reimplementation of the version space algorithm for learning conjunctions. By implementing Mitchell's version space algorithm, VS provides a powerful tool for learning complex conjunctions from data, enabling accurate and interpretable rule discovery.

Feel free to explore each directory to access both the original implementations and their translations. If you have any questions or suggestions, please don't hesitate to reach out!