Open-NARS is the open-source version of NARS, a general-purpose AI system, designed in the framework of a reasoning system. This project is an evolution of the v1.5 system. The mailing list discusses both its theory and implementation.
for each of the projects:
https://github.com/opennars/opennars-parent.git https://github.com/opennars/opennars.git https://github.com/opennars/opennars-lab.git https://github.com/opennars/opennars-applications.git https://github.com/opennars/opennars-gui.git git clone 'project' cd 'project_dir' mvn clean install
optionally append -Dmaven.javadoc.skip=true to skip documentation generation
cd 'project_dir' mvn exec:java
Alternatively, using IntelliJ IDE:
Install git https://git-scm.com/downloads
Install OpenJDK 11 https://jdk.java.net/11/
Install community edition IntelliJ https://www.jetbrains.com/idea/download/
You can either checkout within Intellij or use the Github desktop (available from the github clone button in the repo)
If this is a fresh install you will be prompted to enter the jdk path (where you installed it above) You may be prompted to update maven dependencies - do this if prompted
Select org.opennars.lab.launcher.Launcher as the main entry point
The launchers are the easiest way to run the various apps
Main GUI - Main user interface for NARS Test Chamber - Simulation environment for testing behaviours Micro world - Behaviour learning by simple insect like creature NAR Pong - The classic pong game Language Lab - For experimenting with parts of speech (POS) and grammar learning Perception Test - Pattern matching experiment Prediction Test - Predicts a waveform - Can be run directly from Intellij (Current issue with running with launcher) Vision - Vision experiment - Can be run direcly from Intellij (Current issue with running with launcher)
Main GUI - A simple MIT license GUI Crossing - A smart city traffic intersection simulation Identity mapping - An experimental setup for testing aspects of Relations Frame Theory (RFT)
Opennars Core is run directly by the Lab and Applications Launchers.
Here is a link to some Narses examples including:
Toothbrush example - how to use a toothbrush to undo a screw? Detective example - who is the criminal?
Non-Axiomatic Reasoning System (NARS) processes tasks imposed by its environment, which may include human users or other computer systems. Tasks can arrive at any time, and there is no restriction on their contents as far as they can be expressed in Narsese, the I/O language of NARS.
There are several types of tasks:
As a reasoning system, the architecture of NARS consists of a memory, an inference engine, and a control mechanism.
The memory contains a collection of concepts, a list of operators, and a buffer for new tasks. Each concept is identified by a term, and contains tasks and beliefs directly on the term, as well as links to related tasks and terms.
The inference engine carries out various type of inference, according to a set of built-in rules. Each inference rule derives certain new tasks from a given task and a belief that are related to the same concept.
The control mechanism repeatedly carries out the working cycle of the system, generally consisting of the following steps:
All the selections in steps 1 and 2 are probabilistic, in the sense that all the items (tasks, beliefs, or concepts) within the scope of the selection have priority values attached, and the probability for each of them to be selected at the current moment is proportional to its priority value. When an new item is produced, its priority value is determined according to its parent items, as well as the type of mechanism that produces it. At step 5, the priority values of all the involved items are adjusted, according to the immediate feedback of the current cycle.
At the current time, the most comprehensive description of NARS are the books Rigid Flexibility: The Logic of Intelligence and Non-Axiomatic Logic: A Model of Intelligent Reasoning . Various aspects of the system are introduced and discussed in many papers, most of which are available here.
Beginners can start at the following online materials:
The core is derived from the code of Pei Wang.