using OWL

This document describes how to use GOAL with OWL/SparQL.

Since OWL is  available only in the newgrammar branch of GOAL (not in the master branch), you will need to download and compile the source codes yourself.


The system works with Stardog 4.2.4 and higher (including Stardog 5). Downloads from https://www.stardog.com/. We recommend that you use a Community license, or else you will have either to pay or to download a new trial version every next month.

Step-by-step guide

We assume you are using Eclipse

  1. for each of the projects P in {https://bitbucket.org/goalhub/ krTools, grammar, mentalstate, runtime, simpleide} do

    1. File/Import/existing maven project  and enter P as project

    2. switch the imported project to the newgrammar branch
  2. Eclipse should now automatically build the project. If you get errors in the "Problems" tab, try right-click on an imported project and select Maven/update Project ,click "Select All", "Force Update of Snapshots/Releases" and click "Ok".
  3. open the simpleidemodules project in the Navigator or Package explorer
  4. Copy your stardog-license-key.bin file inside this drectory
  5. go to src/main/java/nl/tudelft/goal/SimpleIDE/SimpleIDE. Right click on that, and select Run As/Java Application.
  6. Open your OWL mas. Examples are in the owl project, in arc/test/resources/


By default, OWL uses an in-memory beliefbase that is separate for each agent. But if you put a line eg

use "http://localhost:5820/tradr" as beliefbase.

in a mod2g file, the system will use the remote database for beliefs. Beliefbases thus are shared between agents and at take-down the beliefbase will persist. You should of course run your stardog server on localhost port with this example.


The TRADR example assumes a stardog server running on localhost:5820/ and also assumes the database has been initialized properly. Check the README coming with that example.


Some junit tests assume a stardog server running on localhost:5820/tradr. Also some junit tests are failing currently because they are showing that specific SparQL implementations (Pellet, SAIL) are not supporting some functionality that we need.