Copyright (c) 1991-2012 Francois Felix Ingrand and LAAS-CNRS.
All rights reserved.

This README is somehow outdated. Please see this page for more update
information, in particular with respect to installation wich is now quite easy using robotpkg.

http://www.openrobots.org/wiki/openprs/

Open PRS is an open source version of PRS (Procedural Reasoning Systems) / Propice. 

It is based on C-PRS and Propice... which were themselves inspired from the
Lisp PRS originaly developped at SRI International.

PRS has been used for a wide variety of application, from Mobile robot
execution control to Space Shuttle operational procedure execution.

If you have not idea at all what it is doing... well, you should probably
just stop here and look at other fun open source tools.


LICENCE
-------

I am not really an expert in Licence, but I believe that what I am using is
what people call BSD like licence... i.e. you can do whatever you do with
it, providing the original copyright and licence are included...

Anyway, it is not that long, so I put it here again (please read it once, at
least):

 Copyright (c) 1991-2012 Francois Felix Ingrand and LAAS/CNRS
 All rights reserved.

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:

    - Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    - Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided
      with the distribution.

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE.


PREREQUISITES
-------------

Now that we use autotools, all prerequisites are taken care of... just install whatever configure instruct you too.

SUPPORTED PLATFORMS
-------------------

Open PRS is known to run on many platforms (in fact, I still have to find a
Unix on which it does not run):

GETTING Open PRS
----------------

The latest Open PRS version is available for download from:
<http://softs.laas.fr/openrobots/tools/openprs.php>. 

INSTALLATION INSTRUCTIONS
-------------------------

./configure
make

you may build openprs in a specific directory:
mkdir build 
cd build
../configure
make

Note that if you do not intend to install OpenPRS in the standard
/usr/local directory you may have to specify the --prefix=<dir>
Similarly, if you plan to have more than one architecture-dependent file in
the same tree you may want to specify the  --exec-prefix=<bindir>

You can test the result with something like:

cd src
./xoprs -n fact -a -A -x data/fact-meta-if-par.inc

A window should appear...

Go in the Oprs menu and select Add Fact or Goal

type 
(! (PRINT-FACTORIAL 10.0)) 
(it is case sensitive)

The result should show up..

If you think that everything seems to work, type:
	make install


RUNNING Open PRS
----------------

There are a number of environment variable of interest to control Open PRS:

OPRS_DATA_PATH
OPRS_ID_CASE
OPRS_MP_HOST
OPRS_MP_PORT
OPRS_SERVER_HOST
OPRS_SERVER_PORT
OPRS_DOC_DIR

Check the full documentation to see what value they should take. The most
critical one is OPRS_DATA_PATH which should point to a column separated list
of directories where Open PRS will look for data files.

if you're using the C-Shell:

setenv OPRS_DATA_PATH ./data:/usr/local/open-prs/data

if you're using a Bourne shell variant (sh, ksh, bash): 

export OPRS_DATA_PATH=./data:/usr/local/open-prs/data

You can start an OP Editor with:

ope

an Open XPRS with:

xoprs -n foo -a -A

etc... 

(I think it is time for you to look at the full documentation or at the
primer... if I can find where I put it).

Known Problems
--------------


Reporting Problems / Getting Help
---------------------------------

A mailing list has been created for Open-PRS users. Please subscribe to
this list if you want to send problem reports or support requests.
To subscribe, go to <http://sympa.laas.fr/wws/open-prs/>. 

Submitting Patches and Code
---------------------------

Open PRS is open... thus if you have some code to submit which fix bugs or
improve it, you can submit me a patch (make sure your patch has the proper
licence, i.e. the same one I am using to distribute Open PRS, so I can
include it in the distribution).

-- 
Felix Ingrand <felix@laas.fr>

$Id$

