All Projects → opennars → Opennars

opennars / Opennars

Licence: mit
OpenNARS for Research 3.0+

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Opennars

Grakn
TypeDB: a strongly-typed database
Stars: ✭ 2,947 (+1016.29%)
Mutual labels:  graph, database, logic, inference
Openllet
Openllet is an OWL 2 reasoner in Java, build on top of Pellet.
Stars: ✭ 66 (-75%)
Mutual labels:  logic, inference, semantic
Amazon Sagemaker Examples
Example 📓 Jupyter notebooks that demonstrate how to build, train, and deploy machine learning models using 🧠 Amazon SageMaker.
Stars: ✭ 6,346 (+2303.79%)
Mutual labels:  learning, rl, inference
Gun
An open source cybersecurity protocol for syncing decentralized graph data.
Stars: ✭ 15,172 (+5646.97%)
Mutual labels:  graph, database, realtime
Djl Demo
Demo applications showcasing DJL
Stars: ✭ 126 (-52.27%)
Mutual labels:  ai, learning
Mac Graph
The MacGraph network. An attempt to get MACnets running on graph knowledge
Stars: ✭ 113 (-57.2%)
Mutual labels:  ai, graph
Atari
AI research environment for the Atari 2600 games 🤖.
Stars: ✭ 174 (-34.09%)
Mutual labels:  ai, rl
Rl trading
An environment to high-frequency trading agents under reinforcement learning
Stars: ✭ 205 (-22.35%)
Mutual labels:  ai, rl
Frigate
NVR with realtime local object detection for IP cameras
Stars: ✭ 1,329 (+403.41%)
Mutual labels:  ai, realtime
Clashjs
Javascript AI battle game. Create your own battleship.
Stars: ✭ 196 (-25.76%)
Mutual labels:  ai, learning
Dl inference
通用深度学习推理服务,可在生产环境中快速上线由TensorFlow、PyTorch、Caffe框架训练出的深度学习模型。
Stars: ✭ 209 (-20.83%)
Mutual labels:  ai, inference
Tableqa
AI Tool for querying natural language on tabular data.
Stars: ✭ 109 (-58.71%)
Mutual labels:  ai, database
Dopamine
Dopamine is a research framework for fast prototyping of reinforcement learning algorithms.
Stars: ✭ 9,681 (+3567.05%)
Mutual labels:  ai, rl
Dspp Keras
Protein order and disorder data for Keras, Tensor Flow and Edward frameworks with automated update cycle made for continuous learning applications.
Stars: ✭ 160 (-39.39%)
Mutual labels:  ai, database
Helix theory
螺旋论(theory of helix)—— “熵减机理论(可用来构建AGI、复杂性系统等)”
Stars: ✭ 98 (-62.88%)
Mutual labels:  ai, agi
Opensteer
OpenSteer is a C++ library to help build steering behaviors for autonomous characters in games and animation.
Stars: ✭ 202 (-23.48%)
Mutual labels:  ai, agent
barracuda-style-transfer
Companion code for the Unity Style Transfer blog post, showcasing realtime style transfer using Barracuda.
Stars: ✭ 126 (-52.27%)
Mutual labels:  realtime, inference
Models
Model Zoo for Intel® Architecture: contains Intel optimizations for running deep learning workloads on Intel® Xeon® Scalable processors
Stars: ✭ 248 (-6.06%)
Mutual labels:  ai, inference
typedb
TypeDB: a strongly-typed database
Stars: ✭ 3,152 (+1093.94%)
Mutual labels:  logic, inference
antares
Digital circuit learning platform
Stars: ✭ 15 (-94.32%)
Mutual labels:  learning, logic

OpenNARS Logo 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.

Build Status codecov Codacy Badge

How to build OpenNARS

Using mvn:

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/

Checkout https://github.com/opennars/opennars.git

Checkout https://github.com/opennars/opennars-lab.git

Checkout https://github.com/opennars/opennars-applications.git

You can either checkout within Intellij or use the Github desktop (available from the github clone button in the repo)

Build opennars

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

Build opennars-lab

Select org.opennars.lab.launcher.Launcher as the main entry point

Build opennars-applications

Select org.opennars.applications.Launcher

Application Launchers

The launchers are the easiest way to run the various apps

opennars-lab

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)

opennars-applications

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.

Example Narsese files

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?

https://github.com/opennars/opennars/tree/master/src/main/resources/nal/application

Theory Overview

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:

  • Judgment - To process it means to accept it as the system's belief, as well as to derive new beliefs and to revise old beliefs accordingly.
  • Question - To process it means to find the best answer to it according to current beliefs.
  • Goal - To process it means to carry out some system operations to realize it.

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:

  1. Select tasks in the buffer to insert into the corresponding concepts, which may include the creation of new concepts and beliefs, as well as direct processing on the tasks.
  2. Select a concept from the memory, then select a task and a belief from the concept.
  3. Feed the task and the belief to the inference engine to produce derived tasks.
  4. Add the derived tasks into the task buffer, and send report to the environment if a task provides a best-so-far answer to an input question, or indicates the realization of an input goal.
  5. Return the processed belief, task, and concept back to memory with feedback.

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:

Contents

  • core - reasoning engine
  • nal - examples/unit tests

The core is derived from the code of Pei Wang.

Run Requirements

  • Java 8+ (OpenJDK 10 recommended)

Example Files

For an overview of reasoning features, see working examples (tests) in the nal folder, also explained in SingleStepTestingCases and MultiStepExamples.

Development Requirements

  • Maven

Links

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].