« AI is Taxonomies and Ontologies Coming to Life | Main | Achieving High Expressiveness on the Ontology Spectrum with XBRL »

Understanding Answer Set Programming

So you have a thick metadata layer that describes reports, you have highly-expressive ontologies that describe reported information, and you have all the reported facts themselves that are provided in the report.  But you are still missing two things from your knowledge based system.

  1. You need software to process all that information (i.e. rules engine).
  2. You need a mechanism to help the user of the software understand the results of the processing (i.e. justification mechanism).

As I pointed out before, XBRL Formula processors have specific defeciencies in their capabilities so they alone will not do.

So what do you do?

Well, you could build your own rules engine to process everything. After all, everything distills down to logic gates that are used for processing. What it is possible to build your own rules engine, creating a rules engine is not a trivial task.

What about using existing processing tools?  That can work.  You could convert everything to the semantic web stack of technologies and use existing semantic reasoners.  That could work.

I thought that PROLOG or DATALOG could work. Those could work, but as I understand it PROLOG uses backward chaining and you will need forward chaining for many of the types of problems you need to solve.

Another approach that I have heard of is answer set programming.  The best description of answer set programming that I have run across is this: (from Answer Set Programming: A Primerby Thomas Eiter, Giovambattista Ianni, and Thomas Krennwallner)

Answer Set Programming (ASP) is a declarative problem solving paradigm, rooted in Logic Programming and Nonmonotonic Reasoning, which has been gaining increasing attention during the last years.

The article Answer Set Programming at a Glance by GERHARD BREWKA, THOMAS EITER, AND MIROSLAW TRUSZCZYNSKI explains the motivation benind and key concepts of answer set programming which is a promising approach to declarative problem solving.

Answer set programming seems to be related to PROLOG.

There are free answer set programming processors such as Potassco. (you can download Potassco here) DLVHEX is another.  Here is a comparison of implementations.

You can do an online demo here.

Posted on Friday, May 10, 2019 at 02:41PM by Registered CommenterCharlie in | CommentsPost a Comment

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
All HTML will be escaped. Hyperlinks will be created for URLs automatically.