153 lines
5.9 KiB
HTML
153 lines
5.9 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta http-equiv="CONTENT-TYPE"
|
||
|
content="text/html; charset=windows-1252">
|
||
|
<title>JPL 3.0 documentation home page</title>
|
||
|
<meta name="GENERATOR" content="StarOffice 7 (Win32)">
|
||
|
<meta name="AUTHOR" content="Paul Singleton">
|
||
|
<meta name="CREATED" content="20040216;23081326">
|
||
|
<meta name="CHANGEDBY" content="Paul Singleton">
|
||
|
<meta name="CHANGED" content="20040216;23141923">
|
||
|
</head>
|
||
|
<body lang="en-US" dir="ltr">
|
||
|
<h1><span style="font-style: italic;">JPL 3.x</span> documentation home
|
||
|
page</h1>
|
||
|
<hr>
|
||
|
<h2>Introduction</h2>
|
||
|
<p><b style="font-style: italic;">JPL 3.x</b> is a dynamic,
|
||
|
bidirectional interface
|
||
|
between <i>SWI-Prolog 5.2.0</i> or later and <i>Java 2</i>
|
||
|
runtimes (see <a href="docs/objectives.html"><span
|
||
|
style="font-weight: bold;"><span style="font-style: italic;">JPL 3.x</span>
|
||
|
Objectives</span></a>). It offers two APIs: </p>
|
||
|
<ul>
|
||
|
<li>
|
||
|
<p style="margin-bottom: 0cm;"><span style="font-weight: bold;">Java
|
||
|
API</span><i> (Java-calls-Prolog)</i>: this
|
||
|
interface comprises public Java classes which support: </p>
|
||
|
<ul>
|
||
|
<li>
|
||
|
<p style="margin-bottom: 0cm;">constructing Java
|
||
|
representations of Prolog terms and queries </p>
|
||
|
</li>
|
||
|
<li>
|
||
|
<p style="margin-bottom: 0cm;">calling queries within <i>SWI-Prolog</i>
|
||
|
engines </p>
|
||
|
</li>
|
||
|
<li>
|
||
|
<p>retrieving (as Java representations of Prolog terms) any
|
||
|
bindings created by a call </p>
|
||
|
</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
</ul>
|
||
|
<ul>
|
||
|
<li>
|
||
|
<p style="margin-bottom: 0cm;"><span style="font-weight: bold;">Prolog
|
||
|
API</span><i> (Prolog-calls-Java)</i>: this
|
||
|
interface comprises Prolog library predicates which support: </p>
|
||
|
<ul>
|
||
|
<li>
|
||
|
<p style="margin-bottom: 0cm;">creating instances (objects) of
|
||
|
Java classes (built-in and user-defined) </p>
|
||
|
</li>
|
||
|
<li>
|
||
|
<p style="margin-bottom: 0cm;">calling methods of Java objects
|
||
|
(and static methods of classes), perhaps returning values or object
|
||
|
references </p>
|
||
|
</li>
|
||
|
<li>
|
||
|
<p>getting and setting the values of fields of Java objects and
|
||
|
classes </p>
|
||
|
</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
</ul>
|
||
|
<p style="margin-bottom: 0cm;">Calls to the two APIs can be nested,
|
||
|
e.g. Java code can call Prolog predicates which call Java methods
|
||
|
which call Prolog predicates etc. </p>
|
||
|
<hr>
|
||
|
<h2>Prerequisites</h2>
|
||
|
<p><b><i>JPL 3.x</i></b> currently requires <i>SWI-Prolog 5.2.0</i>
|
||
|
or later (it uses multi-threading FLI calls not available in older
|
||
|
versions). If you are using <i>SWI-Prolog 5.1.X</i>, then
|
||
|
you should probably upgrade to the latest stable <i>5.2.X</i>
|
||
|
release. Support for earlier versions may be added in the
|
||
|
future. </p>
|
||
|
<p><b><i>JPL 3.x</i></b> currently requires a <i>Java 2</i>
|
||
|
runtime (or development kit), and has been tested with
|
||
|
Sun's <font face="monospace">jdk1.3.1_01</font>. </p>
|
||
|
<p><b><i>JPL 3.x</i></b> contains a native library (<font
|
||
|
face="monospace">jpl.c</font>)
|
||
|
written in <i>ANSI/ISO C</i> and designed to be portable to many
|
||
|
operating system platforms for which suitable compilers are
|
||
|
available. It has, however, only been tested with <i>Microsoft
|
||
|
Visual C/C++ 5</i> under <i>Windows NT 4.0 (SP6a)</i>. I
|
||
|
shall be grateful if anyone can (show me how to) tidily adapt the
|
||
|
source and makefiles to build for other platforms. </p>
|
||
|
<hr>
|
||
|
<h2>Documentation</h2>
|
||
|
<p>This alpha release of <b><i>JPL 3.x</i></b> contains a
|
||
|
hotch-potch of documentation, some left over from Fred Dushin's
|
||
|
(Java-calls-Prolog)<i> JPL 1.0.1</i> and now obsolete or misleading,
|
||
|
some rewritten for <i>JPL 2.0.2</i> and still mostly applicable,
|
||
|
and some written for the first release of my Prolog-calls-Java
|
||
|
interface, now part of <b><i>JPL</i></b>, and also mostly still
|
||
|
relevant.<br>
|
||
|
</p>
|
||
|
<p>In addition to this document (index.html in jpl's root folder) there
|
||
|
are:<br>
|
||
|
</p>
|
||
|
<ul>
|
||
|
<li><a href="docs/release_notes.html"><b>Release Notes</b></a><b>
|
||
|
for 3.0.3, 3.0.2, 3.0.0 and 2.0.2</b></li>
|
||
|
<li><a href="docs/installation.html"><b>Installation</b></a></li>
|
||
|
<li><b>Java API:<br>
|
||
|
</b></li>
|
||
|
<ul>
|
||
|
<li><a href="docs/java_api/javadoc/index.html"><b>Reference
|
||
|
(Javadoc)</b></a></li>
|
||
|
<li><a href="docs/java_api/high-level_interface.html"><span
|
||
|
style="font-weight: bold;">Overview</span></a></li>
|
||
|
<li><b><a href="docs/java_api/gotchas.html"><b>Gotchas</b></a></b></li>
|
||
|
<li><b><a href="docs/java_api/getting_started.html"><b>Getting
|
||
|
Started</b></a></b></li>
|
||
|
</ul>
|
||
|
<li><b><b>Prolog API:</b></b></li>
|
||
|
<ul>
|
||
|
<li><a href="docs/prolog_api/api.html"><span
|
||
|
style="font-weight: bold;">Reference</span></a></li>
|
||
|
<li><a href="docs/prolog_api/overview/index.html"><b>Overview</b></a></li>
|
||
|
<li><a href="docs/prolog_api/gotchas.html"><b>Gotchas</b></a></li>
|
||
|
</ul>
|
||
|
</ul>
|
||
|
<p> </p>
|
||
|
<hr>
|
||
|
<h2>Installation</h2>
|
||
|
<p>Put the three library files (<var>jpl.dll</var>, <var>jpl.jar</var>
|
||
|
and <var>jpl.pl</var>) where they can be found by your OS, by your
|
||
|
Java apps and by SWI-Prolog respectively; for details, see <a
|
||
|
href="docs/installation.html"><b><i>JPL
|
||
|
3.x</i> Installation</b></a>.</p>
|
||
|
<hr>
|
||
|
<h2>Testing</h2>
|
||
|
<p>Each of the folders within <font face="monospace">jpl\examples\java</font>
|
||
|
contains a simple <i>Java </i>application which tests some
|
||
|
aspect of <b><i>JPL</i></b>. These applications are
|
||
|
already compiled, and each folder contains a (<i>DOS/Windows</i>)
|
||
|
script <font face="monospace">run.bat</font> which announces and
|
||
|
runs the demo.<br>
|
||
|
<br>
|
||
|
Each of the Prolog source files within <span
|
||
|
style="font-family: monospace;">jpl/examples/prolog</span> contains a
|
||
|
self-contained Prolog application which exercises JPL from within
|
||
|
Prolog; start an interactive SWI-Prolog session as usual, and then
|
||
|
consult and run these files.<br>
|
||
|
</p>
|
||
|
<hr>
|
||
|
<address><a href="mailto:paul.singleton@bcs.org.uk">Paul Singleton</a></address>
|
||
|
<address>February 2004</address>
|
||
|
</body>
|
||
|
</html>
|