| @@ -41,7 +41,7 @@ an efficient and convenient toolkit to develop dual-driven ABL systems, | |||
| which leverage the power of both data and knowledge. | |||
| <p align="center"> | |||
| <img src="https://raw.githubusercontent.com/AbductiveLearning/ABLkit/main/docs/_static/img/ABLKit.png" alt="ABLkit" style="width: 80%;"/> | |||
| <img src="https://raw.githubusercontent.com/AbductiveLearning/ABLkit/main/docs/_static/img/ABLkit.png" alt="ABLkit" style="width: 80%;"/> | |||
| </p> | |||
| ## Installation | |||
| @@ -20,29 +20,28 @@ AI: data, models, and knowledge. Below is an overview of the ABLkit. | |||
| .. image:: ../_static/img/ABLkit.png | |||
| **Data** part manages the storage, operation, and evaluation of data efficiently. | |||
| **Data** part efficiently manages data storage, operations, and evaluations. | |||
| It includes the ``ListData`` class, which defines the data structures used in | |||
| ABL, and comprises common data operations like insertion, deletion, | |||
| ABLkit, and comprises common data operations like insertion, deletion, | |||
| retrieval, slicing, etc. Additionally, it contains a series of evaluation metrics | |||
| such as ``SymbolAccuracy`` and ``ReasoningMetric`` (both specialized metrics | |||
| inherited from the ``BaseMetric`` class), for evaluating model quality from a | |||
| inherited from the ``BaseMetric`` class), for evaluating performance from a | |||
| data perspective. | |||
| :blue-bold:`Learning` part focuses on the construction, training, and | |||
| prediction of machine learning models. The ``ABLModel`` class is the | |||
| central class that encapsulates the machine learning model. This class is | |||
| compatible with various frameworks, including those based on Scikit-learn | |||
| compatible with various frameworks, including those based on scikit-learn | |||
| or PyTorch neural networks constructed by the ``BasicNN`` class. | |||
| :green-bold:`Reasoning` part concentrates on constructing domain knowledge and | |||
| performing reasoning. The ``KBBase`` class allows users to define a | |||
| performing reasoning. The ``KBBase`` class allows users to customize a | |||
| domain knowledge base. For diverse types of knowledge, we also offer | |||
| implementations like ``GroundKB`` and ``PrologKB`` (both inherited | |||
| from the ``KBBase`` class). The latter, for instance, enables | |||
| knowledge bases to be imported in the form of Prolog files. | |||
| Upon building the knowledge base, the ``Reasoner`` class is | |||
| responsible for minimizing the inconsistency between the knowledge base | |||
| and data. | |||
| from the ``KBBase`` class). The latter, for instance, imports | |||
| knowledge bases via Prolog files. Upon building the knowledge base, | |||
| the ``Reasoner`` class is responsible for minimizing the inconsistency | |||
| between the knowledge base and data. | |||
| The integration of these three parts is achieved through the | |||
| :yellow-bold:`Bridge` part, which features the ``SimpleBridge`` class (derived | |||
| @@ -36,8 +36,8 @@ Building a knowledge base from ``KBBase`` | |||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |||
| For the user-built KB from ``KBBase`` (a derived subclass), it's only | |||
| required to pass the ``pseudo_label_list`` parameter in the ``__init__`` function | |||
| and override the ``logic_forward`` function: | |||
| required to pass the ``pseudo_label_list`` parameter in the ``__init__`` method | |||
| and override the ``logic_forward`` method: | |||
| - ``pseudo_label_list`` is the list of possible pseudo-labels (also, | |||
| the output of the machine learning model). | |||
| @@ -46,7 +46,7 @@ and override the ``logic_forward`` function: | |||
| .. note:: | |||
| Generally, the overridden function ``logic_forward`` provided by the user accepts | |||
| Generally, the overridden method ``logic_forward`` provided by the user accepts | |||
| only one parameter, ``pseudo_label`` (pseudo-labels of an example). However, for certain | |||
| scenarios, deductive reasoning in the knowledge base may necessitate information | |||
| from the input. In these scenarios, ``logic_forward`` can also accept two parameters: | |||
| @@ -93,7 +93,7 @@ Out: | |||
| Other optional parameters | |||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | |||
| We can also pass the following parameters in the ``__init__`` function when building our | |||
| We can also pass the following parameters in the ``__init__`` method when building our | |||
| knowledge base: | |||
| - ``max_err`` (float, optional), specifying the upper tolerance limit | |||
| @@ -119,7 +119,7 @@ When aiming to leverage knowledge base from an external Prolog file | |||
| (which contains how to perform reasoning), we can directly create an | |||
| instance of class ``PrologKB``. Upon instantiation of | |||
| ``PrologKB``, we are required to pass the ``pseudo_label_list`` (same as ``KBBase``) | |||
| and ``pl_file`` (the Prolog file) in the ``__init__`` function. | |||
| and ``pl_file`` (the Prolog file) in the ``__init__`` method. | |||
| .. admonition:: What is a Prolog file? | |||
| @@ -176,10 +176,10 @@ knowledge base. In this way, the knowledge built will have a Ground KB | |||
| accelerate abductive reasoning. | |||
| ``GroundKB`` is a subclass of ``GKBBase``. Similar to ``KBBase``, we | |||
| are required to pass the ``pseudo_label_list`` parameter in the ``__init__`` function and | |||
| override the ``logic_forward`` function, and are allowed to pass other | |||
| are required to pass the ``pseudo_label_list`` parameter in the ``__init__`` method and | |||
| override the ``logic_forward`` method, and are allowed to pass other | |||
| :ref:`optional parameters <other-par>`. Additionally, we are required pass the | |||
| ``GKB_len_list`` parameter in the ``__init__`` function. | |||
| ``GKB_len_list`` parameter in the ``__init__`` method. | |||
| - ``GKB_len_list`` is the list of possible lengths for pseudo-labels of an example. | |||