jason-lang / jason

Jason is a fully-fledged interpreter for an extended version of AgentSpeak, a BDI agent-oriented logic programming language.
http://jason-lang.github.io
GNU Lesser General Public License v3.0
215 stars 67 forks source link
agent agent-oriented-programming agentspeak bdi programming-language

= Jason :toc: right :icons: font :prewrap!:

Jason is an interpreter for an extended version of AgentSpeak. It implements the operational semantics of that language, and provides a platform for the development of multi-agent systems, with many user-customisable features. Jason is available as Open Source, and is distributed under GNU LGPL.

Jason is developed by http://https://jomifred.github.io[Jomi F. Hübner] and http://www.inf.pucrs.br/r.bordini[Rafael H. Bordini], based on previous work done with many colleagues, in particular Michael Fisher, Joyce Martins, Álvaro Moreira, Renata Vieira, Willem Visser, Mike Wooldridge, but also many others, as acknowledged in the manual (see the http://jason-lang.github.io/[documents] page).

== Documentation

Most of the Jason documentation is available xref:doc/readme.adoc[in the doc folder] and at the http://jason-lang.github.io[Jason web site].

== Installation

=== For Jason users

Follow the xref:doc/tutorials/getting-started/readme.adoc[getting started tutorial].

NOTE: In Jason 3.2 no IDE is included in Jason distribution. A link:jason-cli[command line interpreter] is now provided.

=== For Jason developers


git clone https://github.com/jason-lang/jason.git cd jason ./gradlew config // <1> <2>

<1> the config task builds the JasonCLI (Jason Command Line Interface). <2> this task also prints out the commands to set up the `JASON_HOME` and `PATH` variables. Examples can be run using the `jason` command, for example: cd examples/domestic-robot jason DomesticRobot.mas2j Other useful gradle tasks: ----- ./gradlew jar // <1> ./gradlew doc // <2> ./gradlew clean // <3> ./gradlew release // <4> ----- <1> generates a new jar files. <2> generates the javadoc and transforms asciidoc files into html (Docker must be running for the latter). <3> cleans all generated files. <4> produces a zip file in `build/distributions` to be distributed to users (including the executable of JasonCLI). You can use your IDE to change the Jason implementation by importing the Gradle project. == Jason as a Library You can add Jason in your Gradle project with: ---- dependencies { implementation 'io.github.jason-lang:jason-interpreter:3.2.0' } ----