For Programmers: Free Programming Magazines  


Home > Archive > Prolog > March 2004 > Prolog-Java combo for programming multiagent system?









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Prolog-Java combo for programming multiagent system?
Michal Jakob

2004-03-27, 12:10 am

Hi,

In my research, I aim at incorporating inductive logic programming (ILP)
into a multiagent system platform written in Java (platform is given and I
have to use it). I am thus looking for a Prolog interpreter/compiler in
which I can implement agents' ILP components. The issues I am considering
are (in decreasing order of importance):

(1) Prolog-Java interface
- is the interface mature and well-debugged?
- is it bidirectional?
- is it well-documented? Is it clean and simple?

(2) Multi-Threading
- can there run multiple independent Prolog engines simulatneously (each
corresponding to a single agent)

(3) Debugging Capabilities
- how can I debug embedded Prolog code? (in fact, I know almost nothing
about this topic...which could turn to be a nightmare when developing an
asynchronous distributed system)

(4) Resource Requirements
- what is the intepreted and compiled program speed (compared to native
Prolog and/or other Prolog-Java combos)
- can I simultaneously start and run tens of Prolog engines?

(5) Portability
- would the combo work both on Windows and Unix/Linux platform?

(6) Cost
- how much is the license? (generally, I prefer free/open source software)

So far, I have considered the following options:
* SWI-Prolog - http://www.swi-prolog.org
* JINNI - http://www.binnetcorp.com/Jinni/index.html
* Amzi! Prolog - http://www.amzi.com
* other functional/declarative language (Mercury, Erlang,...?)

JINNI would seem to be an ideal choice, however it is commercial and the
documentation of Java-Prolog interface is sparse (at least in Jinni 2004
Prolog Compiler user guide). The biggest advantage is that it runs within
JVM and has bidirectional interface.

SWI-Prolog is the Prolog I use for standalone Prolog programming, for which
it is great. However, I am not sure about its Java interface since there
hasn't been any progress since version 1.0.1 from 2001. But perhaps it works
ok (any experience?)

Amzi! is reasonably priced and seems to have a mature and well-documented Ja
va interface.

I would be very grateful for your feedback, especially if you have
experience with developing a Prolog+Java-based system. What are other
options than those mentioned above? Which important aspects I haven't
included in my evaluation? Although there was a thread on Prolog+Java
integration some two months ago, the purpose was a bit different and some
issues have not been commented on (debugging, multi-threading).

Again, thanks a lot for your comments.

Michal Jakob
-------------------------------------
Gerstner Laboratory
FEE Czech Technical University Prague
http://gerstner.felk.cvut.cz






Andrzej Lewandowski

2004-03-27, 12:10 am

On Tue, 16 Mar 2004 12:03:52 +0100, "Michal Jakob"
<mj_public@centrum.cz> wrote:

>Hi,
>
>In my research, I aim at incorporating inductive logic programming (ILP)
>into a multiagent system platform written in Java (platform is given and I
>have to use it). I am thus looking for a Prolog interpreter/compiler in


>
>So far, I have considered the following options:
>* SWI-Prolog - http://www.swi-prolog.org
>* JINNI - http://www.binnetcorp.com/Jinni/index.html
>* Amzi! Prolog - http://www.amzi.com
>* other functional/declarative language (Mercury, Erlang,...?)


Check SICStus Prolog, ECLIPSE and B-Prolog

A.L.
Jan Wielemaker

2004-03-27, 12:10 am

Xref: kermit comp.lang.prolog:17759

In article <c36mut$qkv$1@ns.felk.cvut.cz>, Michal Jakob wrote:
> SWI-Prolog is the Prolog I use for standalone Prolog programming, for which
> it is great. However, I am not sure about its Java interface since there
> hasn't been any progress since version 1.0.1 from 2001. But perhaps it works
> ok (any experience?)


Paul Singleton is working on a new version. Check the mailinglist for
the current state. The old version runs pretty stable (though the
installation isn't trivial on some platforms), but cannot handle
multi-threading. The new interface is supposed to be much cleaner and
can handle multi-threading with multiple concurrent Prolog engines.

Once complete there is little reason to change it ever as both the Java
and Prolog interface to C is very stable. Only the introduction of
threads in SWI-Prolog has extended the interface and makes old
multi-threaded code accessing the same Prolog engine fail.

Enjoy --- Jan
Amzi! inc.

2004-03-27, 12:10 am

Here's some answers for you about Amzi!

1) The interface is mature and it is bi-directional with documentation and
samples.
2) Multi-threading is in the Developer and Professional Editions. You can
run multiple Prolog engines sequentially in the Free and Student Editions.
3) Our new Eclipse IDE provides source code debugging of embedded Prolog
components. So you can run your Java debugger at the same time as the Amzi!
Eclipse Prolog debugger. This lets you use the source debugger on your
compiled Prolog code. You can set breakpoints, single step, see variable
bindings at each level in the stack frame and more.
4) You can easily runs tens of Prolog engines. Depending upon how you handle
the threading, you could have hundreds of engines, one each in their own
thread or in a single process (which only loads one copy of the amzi dll).
Loading engines in separate processes under Windows loads multiple copies of
the dll.
5) Amzi! is source and object compatible across Windows and Unix.
6) Amzi! costs between $0 and $1499. We are flexible in working with
entrepreneurs and researchers to get them the software features they need.

Regards,
Mary Kroening
Amzi! inc.

"Michal Jakob" <mj_public@centrum.cz> wrote in message
news:c36mut$qkv$1@ns.felk.cvut.cz...
> Hi,
>
> In my research, I aim at incorporating inductive logic programming (ILP)
> into a multiagent system platform written in Java (platform is given and I
> have to use it). I am thus looking for a Prolog interpreter/compiler in
> which I can implement agents' ILP components. The issues I am considering
> are (in decreasing order of importance):
>
> (1) Prolog-Java interface
> - is the interface mature and well-debugged?
> - is it bidirectional?
> - is it well-documented? Is it clean and simple?
>
> (2) Multi-Threading
> - can there run multiple independent Prolog engines simulatneously (each
> corresponding to a single agent)
>
> (3) Debugging Capabilities
> - how can I debug embedded Prolog code? (in fact, I know almost nothing
> about this topic...which could turn to be a nightmare when developing an
> asynchronous distributed system)
>
> (4) Resource Requirements
> - what is the intepreted and compiled program speed (compared to native
> Prolog and/or other Prolog-Java combos)
> - can I simultaneously start and run tens of Prolog engines?
>
> (5) Portability
> - would the combo work both on Windows and Unix/Linux platform?
>
> (6) Cost
> - how much is the license? (generally, I prefer free/open source software)
>
> So far, I have considered the following options:
> * SWI-Prolog - http://www.swi-prolog.org
> * JINNI - http://www.binnetcorp.com/Jinni/index.html
> * Amzi! Prolog - http://www.amzi.com
> * other functional/declarative language (Mercury, Erlang,...?)
>
> JINNI would seem to be an ideal choice, however it is commercial and the
> documentation of Java-Prolog interface is sparse (at least in Jinni 2004
> Prolog Compiler user guide). The biggest advantage is that it runs within
> JVM and has bidirectional interface.
>
> SWI-Prolog is the Prolog I use for standalone Prolog programming, for

which
> it is great. However, I am not sure about its Java interface since there
> hasn't been any progress since version 1.0.1 from 2001. But perhaps it

works
> ok (any experience?)
>
> Amzi! is reasonably priced and seems to have a mature and well-documented

Ja
> va interface.
>
> I would be very grateful for your feedback, especially if you have
> experience with developing a Prolog+Java-based system. What are other
> options than those mentioned above? Which important aspects I haven't
> included in my evaluation? Although there was a thread on Prolog+Java
> integration some two months ago, the purpose was a bit different and some
> issues have not been commented on (debugging, multi-threading).
>
> Again, thanks a lot for your comments.
>
> Michal Jakob
> -------------------------------------
> Gerstner Laboratory
> FEE Czech Technical University Prague
> http://gerstner.felk.cvut.cz
>
>
>
>
>
>



Kris De Schutter

2004-03-27, 12:10 am

Hi,

I can also suggest PrologCafe
(http://kaminari.istc.kobe-u.ac.jp/PrologCafe/). I've been using it in
my work for a while now, and it has proven stable and mature.
Documentation is sparse, but there are plenty of examples, and things
are simple enough to get going quickly.

Kind regards,

Kris


Michal Jakob wrote:
> Hi,
>
> In my research, I aim at incorporating inductive logic programming (ILP)
> into a multiagent system platform written in Java (platform is given and I
> have to use it). I am thus looking for a Prolog interpreter/compiler in
> which I can implement agents' ILP components. The issues I am considering
> are (in decreasing order of importance):
>
> (1) Prolog-Java interface
> - is the interface mature and well-debugged?
> - is it bidirectional?
> - is it well-documented? Is it clean and simple?
>
> (2) Multi-Threading
> - can there run multiple independent Prolog engines simulatneously (each
> corresponding to a single agent)
>
> (3) Debugging Capabilities
> - how can I debug embedded Prolog code? (in fact, I know almost nothing
> about this topic...which could turn to be a nightmare when developing an
> asynchronous distributed system)
>
> (4) Resource Requirements
> - what is the intepreted and compiled program speed (compared to native
> Prolog and/or other Prolog-Java combos)
> - can I simultaneously start and run tens of Prolog engines?
>
> (5) Portability
> - would the combo work both on Windows and Unix/Linux platform?
>
> (6) Cost
> - how much is the license? (generally, I prefer free/open source software)
>
> So far, I have considered the following options:
> * SWI-Prolog - http://www.swi-prolog.org
> * JINNI - http://www.binnetcorp.com/Jinni/index.html
> * Amzi! Prolog - http://www.amzi.com
> * other functional/declarative language (Mercury, Erlang,...?)
>
> JINNI would seem to be an ideal choice, however it is commercial and the
> documentation of Java-Prolog interface is sparse (at least in Jinni 2004
> Prolog Compiler user guide). The biggest advantage is that it runs within
> JVM and has bidirectional interface.
>
> SWI-Prolog is the Prolog I use for standalone Prolog programming, for which
> it is great. However, I am not sure about its Java interface since there
> hasn't been any progress since version 1.0.1 from 2001. But perhaps it works
> ok (any experience?)
>
> Amzi! is reasonably priced and seems to have a mature and well-documented Ja
> va interface.
>
> I would be very grateful for your feedback, especially if you have
> experience with developing a Prolog+Java-based system. What are other
> options than those mentioned above? Which important aspects I haven't
> included in my evaluation? Although there was a thread on Prolog+Java
> integration some two months ago, the purpose was a bit different and some
> issues have not been commented on (debugging, multi-threading).
>
> Again, thanks a lot for your comments.
>
> Michal Jakob
> -------------------------------------
> Gerstner Laboratory
> FEE Czech Technical University Prague
> http://gerstner.felk.cvut.cz
>
>
>
>
>
>

Oskar Bartenstein

2004-03-27, 12:10 am

For serious work with Prolog Java XML
look at proprietary and commercial MINERVA
http://www.ifcomputer.co.jp/MINERVA/
ISO-Prolog compiler in 100% Java with some
real world extensions beyond the ISO-standard.

You can use MINERVA as applet, servlet, Java class library or
standalone. Supports text, binary and XML i/o.

Some customers use MINERVA together with JADE/FIPA agents,
with JXTA components, and embedded in J2EE servlet driven web sites,
and for semantic web components.
Reference applications are e.g.
http://dialogengines.com web consulting dialog frontend
http://www.franchiseengine.com knowledge management web groupware
and the MINERVA web site itself.

Oskar Bartenstein oskar@ifcomputer.co.jp http://www.ifcomputer.co.jp
Ugo Chirico

2004-03-27, 12:11 am

Do you try JIProlog?
visit http://www.ugosweb.com/jiprolog

- it is Pure Java 100%
- it supplies prolog-java-prolog interface with documentation and samples
- it support multi-threading. you can run many Prolog engines in parallel.
- it runs on Windows, Unix, Linux, and on several PDAs and Java enabled
mobile phones: Windows CE, Epoc OS, Symbian, PalmOS, ecc.
- JIProlog Professional License costs only $200

Any comments on that are very appreciated.

Kind Regards,
Ugo Chirico
http://www.ugochirico.com

Michal Jakob wrote:
> Hi,
>
> In my research, I aim at incorporating inductive logic programming (ILP)
> into a multiagent system platform written in Java (platform is given and I
> have to use it). I am thus looking for a Prolog interpreter/compiler in
> which I can implement agents' ILP components. The issues I am considering
> are (in decreasing order of importance):
>
> (1) Prolog-Java interface
> - is the interface mature and well-debugged?
> - is it bidirectional?
> - is it well-documented? Is it clean and simple?
>
> (2) Multi-Threading
> - can there run multiple independent Prolog engines simulatneously (each
> corresponding to a single agent)
>
> (3) Debugging Capabilities
> - how can I debug embedded Prolog code? (in fact, I know almost nothing
> about this topic...which could turn to be a nightmare when developing an
> asynchronous distributed system)
>
> (4) Resource Requirements
> - what is the intepreted and compiled program speed (compared to native
> Prolog and/or other Prolog-Java combos)
> - can I simultaneously start and run tens of Prolog engines?
>
> (5) Portability
> - would the combo work both on Windows and Unix/Linux platform?
>
> (6) Cost
> - how much is the license? (generally, I prefer free/open source software)
>
> So far, I have considered the following options:
> * SWI-Prolog - http://www.swi-prolog.org
> * JINNI - http://www.binnetcorp.com/Jinni/index.html
> * Amzi! Prolog - http://www.amzi.com
> * other functional/declarative language (Mercury, Erlang,...?)
>
> JINNI would seem to be an ideal choice, however it is commercial and the
> documentation of Java-Prolog interface is sparse (at least in Jinni 2004
> Prolog Compiler user guide). The biggest advantage is that it runs within
> JVM and has bidirectional interface.
>
> SWI-Prolog is the Prolog I use for standalone Prolog programming, for which
> it is great. However, I am not sure about its Java interface since there
> hasn't been any progress since version 1.0.1 from 2001. But perhaps it works
> ok (any experience?)
>
> Amzi! is reasonably priced and seems to have a mature and well-documented Ja
> va interface.
>
> I would be very grateful for your feedback, especially if you have
> experience with developing a Prolog+Java-based system. What are other
> options than those mentioned above? Which important aspects I haven't
> included in my evaluation? Although there was a thread on Prolog+Java
> integration some two months ago, the purpose was a bit different and some
> issues have not been commented on (debugging, multi-threading).
>
> Again, thanks a lot for your comments.
>
> Michal Jakob
> -------------------------------------
> Gerstner Laboratory
> FEE Czech Technical University Prague
> http://gerstner.felk.cvut.cz
>
>
>
>
>
>

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com