Re: SUO: Re: CG: Negotiation Instead of Legislation
Peter,
I agree with you that there are many newer and nicer logic
programming languages that have come out in recent years.
>I just have one little nit to pick, if I may: why do you
>pick BinProlog as the implementation platform? Prolog has aged a bit
>as a language for logical calculation, e.g., it is not higher-order
>and it does not provide first-class search. BinProlog is a recent
>implementation that provides multiple search engines that can be
>distributed. But these abilities are not well-integrated; they just
>sit beside each other. This may be fine for short-term solutions,
>but I do not think it is a good basis for a fundamental, long-term
>solution to your problem. There is by now a long line of research on
>successors to Prolog that integrate first-class search, higher-order
>programming, concurrency, and distribution in a more fundamental way.
>This work has resulted in many languages that improve on Prolog in
>deep ways: GHC (1985), LIFE (1988), AKL (1990), KLIC (1994). The
>most recent example of this line of research is the Oz 3 language.
>Oz 3 combines both logic programming and distribution. It has both
>a high-quality implementation and a simple formal semantics. This
>is not hype; most people who encounter Oz for the first time are
>surprised to find something as nice "appear out of nowhere".
There are three reasons for picking BinProlog:
1. It has a highly optimized compiler that generates
either C or Java byte codes (the Java version is
comparable to the best interpreted versions of Prolog
and the C version is much faster).
2. Paul Tarau, the BinProlog developer, has been working
with Arun Majumdar to implement features to support
CGs directly and to tune the underlying implementation
to optimize the CG algorithms.
3. The higher-order, modal, metalevel, and contextual
features are supported by CGs. Any reasoning that
would use those features could be done in CGs instead
of the implementation language.
4. And in any case, the architecture that I recommend for
intelligent systems would allow multiple tools that
use different languages to be freely intermixed and
to communicate via a blackboard that uses Linda-like
operations (which are also supported by BinProlog).
See http://www.jfsowa.com/pubs/arch.htm
>There is an article explaining Oz from the logic programming viewpoint
>available at http://www.info.ucl.ac.be/people/PVR/tut200202.ps. This
>article will appear in Theory and Practice of Logic Programming. There
>is an open source implementation of Oz available from the Mozart
>Consortium Website at http://www.mozart-oz.org.
I put Paul Tarau and Arun Majumdar on the cc list for this
note. Perhaps they would be better qualified to comment
on these issues.
John Sowa