From e2457af0ee451bf063571e4af19b70774cccfc5e Mon Sep 17 00:00:00 2001 From: giopaglia <24519853+giopaglia@users.noreply.github.com> Date: Thu, 7 Mar 2024 10:16:27 +0100 Subject: [PATCH] Update README.md --- README.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 1b856df..392c873 100644 --- a/README.md +++ b/README.md @@ -37,36 +37,37 @@ These levels of **transparency** (or *interpretability*) are generally not avail ## Sole.jl -*Sole.jl* is a collection of Julia packages for symbolic learning and reasoning; *Sole.jl* covers **a relatively wide range of functionality** that is of interest for the symbolic community, but it also fills some gaps with a few functionalities for standard machine learning pipelines (e.g., feature selection on multimodal (un)structured data). At the time of writing, the framework comprehends the following packages: -+ [*SoleLogics.jl*](https://github.com/aclai-lab/SoleLogics.jl) lays the **logical foundations** for symbolic learning. It provides a useful codebase for [*computational logic*](https://en.wikipedia.org/wiki/Computational_logic), which features easy manipulation of: +*Sole.jl* is a collection of Julia packages for symbolic learning and reasoning. +Although at an embryonic stage, *Sole.jl* covers a relatively wide range of functionality that is of interest for the symbolic community, but it also fills some gaps with a few functionalities for standard machine learning pipelines. At the time of writing, the framework comprehends the following packages: ++ [*SoleLogics.jl*](https://github.com/aclai-lab/SoleLogics.jl) provides the **logical layer** for symbolic learning. It provides a useful codebase for [*computational logic*](https://en.wikipedia.org/wiki/Computational_logic), which features easy manipulation of: + Propositional and (multi)modal logics (atoms, logical constants, alphabet, grammars, fuzzy algebras); + [Logical formulas](https://en.wikipedia.org/wiki/Well-formed_formula) (random generation, parsing, minimization); + [Logical interpretations](https://en.wikipedia.org/wiki/Interpretation_(logic)) (or models, e.g., [Kripke structures](https://en.wikipedia.org/wiki/Kripke_structure_(model_checking))); + Algorithms for [model checking](https://en.wikipedia.org/wiki/Model_checking) (that is, checking that a formula is satisfied by an interpretation). -+ [*SoleData.jl*](https://github.com/aclai-lab/SoleData.jl) provides a **data layer** built on top of DataFrames.jl/Tables.jl. Its codebase is machine learning oriented and allows to: - + Instantiate and manipulate [*multimodal*](https://en.wikipedia.org/wiki/Multimodal_learning) datasets for (un)supervised machine learning; - + Deal with [*(un)structured* data](https://en.wikipedia.org/wiki/Unstructured_data) (e.g., graphs, images, time-series, etc.); - + Describe datasets via basic statistical measures; - + Save to/load from *npy/npz* format, as well as a custom CSV-based format (with interesting features such as *lazy loading* of datasets); - + Perform basic data processing operations (e.g., windowing, moving average, etc.). ++ [*SoleData.jl*](https://github.com/aclai-lab/SoleData.jl) provides the **data layer** for representing *logisets*, that is, the logical counterpart to machine learning datasets: + + Optimized data structures, useful when learning models from datasets; + + Support for [multimodal data](https://en.m.wikipedia.org/wiki/Multimodal_learning). ++ [*SoleModels.jl*](https://github.com/aclai-lab/SoleModels.jl) defines the building blocks of **symbolic modeling**, featuring: + + Definitions for (logic-agnostic) symbolic models (mainly, decision rules/lists/trees/forests); + + Support for mixed, neuro-symbolic computation. + + Altogether, *Sole.jl* makes for a powerful tool built with an eye to **formal correctness**, and is of use for both machine learning practitioners and computational logicians. **Q:** Ok, so what symbolic learning methods do you people provide? -**A:** At the moment, [*ModalDecisionTrees.jl*](https://github.com/aclai-lab/ModalDecisionTrees.jl) is the only package compatible with Sole.jl, and it provides novel decision tree algorithms based on multimodal temporal and spatial logics for time-series and image classification. Checkout the related [talk at JuliaCon22](https://live.juliacon.org/talk/RQP9TG). +**A:** At the moment, [*ModalDecisionTrees.jl*](https://github.com/aclai-lab/ModalDecisionTrees.jl) is the only package compatible with Sole.jl, and it provides novel decision tree algorithms based on modal temporal and spatial logics for time-series and image classification. Checkout the related [talk at JuliaCon22](https://live.juliacon.org/talk/RQP9TG). **Q:** Why the name? **A:** *Sole* stands for SymbOlic LEarning; it also means "sun" in Italian, a hint to the enlightening power of transparent modeling.