TweetyProject@Web
Defeasible Logic Programming Server status:

This webpage provides a web service for Defeasible Logic Programming (DeLP). For details see the main reference: Alejandro Garcia and Guillermo R. Simari. Defeasible Logic Programming: An Argumentative Approach. Theory and Practice of Logic Programming 4(1-2):95--138, 2004.


Online querying

Enter your knowledge base and query and hit the "submit" button.

Knowledge base:
Query:   



Knowledge base and query syntax

The syntax of knowlege bases for Defeasible Logic Programming is given via the following BNF:

THEORY ::== (EXPRESSION)*
EXPRESSION ::== FACT | STRICTRULE | DEFEASIBLERULE
FACT ::== LITERAL + "."
STRICTRULE ::== LITERAL + "<-" + RULEBODY + "."
DEFEASIBLERULE ::== LITERAL + "-<" + RULEBODY + "."
RULEBODY ::== LITERAL | LITERAL + "," + RULEBODY
LITERAL ::== "~" + ATOM | ATOM
ATOM ::== PREDNAME | PREDNAME + "(" + TERMLIST + ")"
TERMLIST ::== TERM | TERM + "," + TERMLIST
TERM ::== VARIABLE | CONSTANT


PREDNAME is a sequence of symbols from {a,...,z,A,...,Z,0,...,9,_,-} with an uppercase letter at the beginning.
VARIABALE is a sequence of symbols from {a,...,z,A,...,Z,0,...,9,_,-} with an uppercase letter at the beginning.
CONSTANT is a sequence of symbols from {a,...,z,A,...,Z,0,...,9,_,-} with an lowercase letter at the beginning.

The syntax of queries is that of the token LITERAL from above.


REST API and source code

The above web interface uses a REST API to remotely access the TweetyProject server for querying. If you need to integrate the web service in your own applications you can also use this REST API directly. Communication between a client and the server is done using JSON (in UTF-8), the URL of the server is . The API supports only one command at this point:

  1. Query a Defeasible Logic Program

    Querying a Defeasible Logic Program is done by issuing the request

    {
       "cmd": "query",
       "email": "<your e-mail>",
       "compcriterion": "<id>",
       "kb": "<your knowledge base>",
       "query": "<your query>"
    }

    to the server. The attribute compcriterion refers to the used comparison criterion for arguments, acceptable values are genspec (for generalized specificy, this is recommended) or empty. In response to this request the server will reply with a JSON of the form

    {
       "reply": "query",
       "email": "<your e-mail>",
       "compcriterion": "<id>",
       "kb": "<your knowledge base>",
       "query": "<your query>"
       "answer": "<boolean>"
    }

You may also want to look at scripts.js which is the JavaScript file underlying the web-based client on this page in order to see how the API is used from within JavaScript.

The source code of the server and the used solver for DeLP can be found in the TweetyProject collection of Java libraries for logical aspects of artificial intelligence and knowledge representation. More specifically, a good entry point for the server software is the package org.tweetyproject.web. All source code is published under the GNU Lesser General Public License version 3.0 except when this is noted otherwise.


Contact

This page and TweetyProject is maintained by Matthias Thimm. If you are interested in participating in the development of TweetyProject or have general comments and/or questions please write an e-mail to matthias@mthimm.de.



Last updated 13.12.2023, Matthias Thimm