Re: Recommendations for a free Prolog interpreter in Java
From: Cameron Hughes (cahughes_at_cc.ysu.edu)
Date: 02/03/04
- Next message: Galileo: "¿Prolog en español?"
- Previous message: Mats Carlsson: "Re: Run time complexity for the global constraints in SICStus"
- Next in thread: chavez: "Re: Recommendations for a free Prolog interpreter in Java"
- Maybe reply: chavez: "Re: Recommendations for a free Prolog interpreter in Java"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Tue, 03 Feb 2004 11:55:30 -0500
Oskar Bartenstein wrote:
>
> The original poster required "free" and "interpreter" but
> your questions do not seem the have these limitations, so I
> address your points with background Prolog-Compiler in Java,
> e.g. MINERVA http://www.ifcomputer.co.jp/MINERVA/
>
> Cameron Hughes <cahughes@cc.ysu.edu> wrote
> > What is the advantage of using Prolog in a Java environment?
>
> The advantage is Prolog for programmer efficiency, leveraged by
> Java for access to a rich system level environment.
> To get the full advantage, the interface from|to Prolog|Java
> must be good, and the Prolog must allow deployment
> as servlet, applet, standalone. I have seen any mix of those.
>
> > The JVM is already a layer or so on top of the instruction set
> > If the Prolog is interepreted and runs as a layer on top of Java this
> > seems like there would be some performance issues.
>
> Execution performance is why a practical Java-hosted Prolog
> is preferably a compiler. Maybe the original poster was not
> aware of the existance of decent Prolog compilers in Java.
>
> > Why would this be better than say using the JNI to connect
> > to native prolog code(e.g. using FLI of SWI-Prolog). If the
>
> If X is culture, and you want to leverage Prolog in X, then
> a detour through Y costs extra learning, integration, and maintenance.
> Why rebuild a Java+Prolog applications because of new C libraries?
>
> Prolog in C was good for the past UNIX / Standalone culture,
> but the performance advantage ceased to be decisive.
> Prolog in Java is good for the present Internet / distributed
> services culture. Application level in Prolog,
> system level in Java libraries with seamless Prolog API.
>
> > objective is to access Prolog in a web server then is performance
> > an issue?
>
> Think in performance as cost. Seperate into programmer cost,
> execution cost, networking cost, and maintenance cost,
> then you will get a good picture for YOUR case.
>
> > Even if the objective is to let a Java client have access to
> > Prolog, it just seems like it would be easier and possibly
> > more efficient to do a post from the Java client to Prolog native
> > code running on server.
>
> Assuming you are referring to "HTTP POST":
> Server side:
> Running Prolog native code off a HTTP server with CGI will
> quickly motivate you to switch to a servlet HTTP server
> like TOMCAT and use a servlet deployable Prolog like MINERVA.
> Client side:
> Accessing fine grained interaction with server side Prolog
> services through HTTP is impossible due to routing times
> even for very high bandwidth connections. A compute-intensive
> or highly interactive application can force you to deploy
> for client-side execution.
>
> > I guess I'm just trying to understand what's the attraction for
> > Prolog running on top of Java. Unless we're talking about JavaOS,
> > or dedicated Java machines where's the advantage?
>
> I think the beauty and economy is in the combi of
> Prolog as business logic engine, XML as business data
> notation and Java as system and network level environment.
>
> Oskar Bartenstein http://www.ifcomputer.co.jp
Most of this makes a lot of sense. Thanx. However I do
take exception to the statement:
> Prolog in C was good for the past UNIX / Standalone culture,
> but the performance advantage ceased to be decisive.
> Prolog in Java is good for the present Internet / distributed
> services culture. Application level in Prolog,
> system level in Java libraries with seamless Prolog API.
Unix is not a past culture and it certainly is not a standalone
environment (if that's what you meant)
The Internet protocols which we all have come to love
(http,ftp,telnet,smtp,irc etc) are all native
Unix protocols and have been the basis for Unix networks almost from the
beginning (i.e. 1973-76 +/-)
In many ways the Internet could be considered a big Unix network! In
fact,
no Unix, no Internet :-)
Also not everyone uses http as their Internet application deployment
protocol. In most
of the systems I'm involved with telnet is the preferred method.
X Servers are alive and well. Open Motif is alive and well. The Qt
toolkit is alive and well.
The AWT, Swing, SWT, are nice Open Motif/Qt are nicer :-) Although
there are some performance challenges, with X server/telnet
configurations the performance challenges are far less than the
quagmires that can be found in a lot of the web client/web server
configurations.
For telnet/X server based applications , things are a lot cleaner, and
using
Prolog in that configuration is a piece of cake. We use CORBA for
distributed services to enhance the
normal X Server/telnet pair. Our applications are highly scaleable and
fast (with proper resources!)
I do Java development also. So its not that I'm against Java. But if
you change
the protocol from (http,https) to telnet then Java doesn't really
bring many
advantages.Keep in mind their are several ways to serve applications in
a Unix/Linux
environment. Http is only one of them.
And from a support point of view, I'll take the problems encountered
with distributing
and installing X servers over the problems I encounter with JVMs/Web
Browsers any day.
That said, I now see why it would be advantagous to use Prolog in a
Java environment.
ThanX!!!
Cameron Hughes
Programmer/Analyst
Youngstown State University
http://www.cc.ysu.edu/~cahughes
- Next message: Galileo: "¿Prolog en español?"
- Previous message: Mats Carlsson: "Re: Run time complexity for the global constraints in SICStus"
- Next in thread: chavez: "Re: Recommendations for a free Prolog interpreter in Java"
- Maybe reply: chavez: "Re: Recommendations for a free Prolog interpreter in Java"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|