README
Euler is an inference engine supporting logic based proofs. It is a backward-chaining reasoner
enhanced with Euler path detection. It has implementations in Java, C#, Python, Javascript and Prolog.
Via N3 it is interoperable with W3C Cwm.
Installation of Euler
---------------------
When you use SVN see http://sourceforge.net/svn/?group_id=77046
and checkout modules 2004/01swap, 2005/11swap and 2006/02swap in EULER_SVNDIR
Stable file releases of the eulersharp package can be downloaded from
http://sourceforge.net/project/showfiles.php?group_id=77046
or the latest version can be downloaded from
http://eulersharp.sourceforge.net/2004/01swap/deployment/Euler.zip
and extract the downloaded file to EYE_HOME.
See also INSTALL.
Just running Euler via command line
-----------------------------------
Current engine
EYE - Euler Yap Engine
Get the self contained Euler.jar or get the jar file from the maven repository.
This jar file includes a 32 bit version of YAP for Windows and Linux and for any other usage
install YAP + SWI-Prolog + wget network utility and make sure that they are in the PATH environment variable.
Usage: eye <options>* <data>* <query>*
eye
java -jar Euler.jar[--no-install] [--swipl] [--yap]
swipl -q -f euler.yap -g main --
yap -q -f euler.yap -g main --
<options>
--nope no proof explanation
--no-branch no branch engine
--no-blank no blank nodes in output
--no-qvars no quantified variables in output
--no-qnames no qnames in output
--no-span no span control
--quiet incomplete e:falseModel explanation
--quick-false do not prove all e:falseModel
--quick-possible do not prove all e:possibleModel
--quick-answer do not prove all answers
--think generate e:consistentGives
--ances generate e:ancestorModel
--wcache <uri> <file> to tell that uri is cached as file
--tmp-file <file> temporary file used by N3 Socket
--wget-path <path> the path followed by wget
--ignore-syntax-error do not halt in case of syntax error
--n3p output N3 P-code
--image <file> output PVM code
--strings output log:outputString objects
--warn output warning info
--debug output debug info
--debug-pvm output debug info about PVM code
--profile output profile info
--statistics output statistics info
--version show version info
--license show license info
--help show help info
<data>
<n3_resource> N3 facts and rules
--plugin <n3p_resource> plugin N3 P-code
<query>
--query <n3_resource> output filtered with filter rules
--pass output deductive closure
--pass-all output deductive closure plus rules
Previous engines
Euler Java version: install JVM platform and either add
EULER_SVNDIR/2004/01swap/bin/Euler.jar or EYE_HOME/bin/Euler.jar
to the CLASSPATH
Some additional jar files might be required in the CLASSPATH
o RDF/XML support requires JENA_INSTALLDIR/lib jar files
o XSD support requires http://eulersharp.sourceforge.net/2004/01swap/lib/xercesImpl.jar
o SQLite support requires http://eulersharp.sourceforge.net/2004/01swap/lib/sqlitejdbc-v053.jar
o JSON support requires http://eulersharp.sourceforge.net/2004/01swap/lib/json.jar
Usage: java euler.EulerRunner <options> [--rules|--trules] uris --query|--tquery uri
options:
--prolog translate to prolog
--prolog-bchain translate to prolog backchain-only
--sem translate to SEM
--sql translate to SQL
--pass pass-thru the N3
--json translate to JSON
--prover9 translate to prover9
--nope no proof explanation
--nobe no belief explanation
--nefq no ex falso quodlibet
--think give all solutions
--step count maximum number of reasoning steps
--debug output debug info via stderr
--trace output trace info via stderr
--test output test run
--test-as output test run as service
--profile enable profiling
--help show help
Euler2 C# version: install .NET platform and either add
EULER_SVNDIR/2004/01swap/bin/Release/Euler.exe or EYE_HOME/bin/Release/Euler.exe to the PATH
Usage: mono Euler.exe [--step count] [--debug] [--trace] uris [--nope] [--think] --query uri
Euler3 Python version: install Python platform
Start Codd webizer service as described in "Just running Euler via RESTfull webservice"
Usage: java euler.EulerRunner --pass --test-as [--why] [--once] [--debug] uris --query uri
Euler4 Javascript version: install Javascript platform
Start Codd webizer service as described in "Just running Euler via RESTfull webservice"
Usage: java euler.EulerRunner --json --test-as uris --query uri
Euler5 SWI-Prolog version: install SWI-Prolog platform
For Windows add SWI_INSTALLDIR\pl\bin to PATH environment variable
For Linux sudo ln -s /usr/local/bin/pl /usr/local/bin/plcon
Start Codd webizer service as described in "Just running Euler via RESTfull webservice"
Usage: java euler.EulerRunner --prolog|--prolog-bchain|--sem --test-as [--nope] [--nobe] [--nefq] [--rules|--trules] uris --query|--tquery uri
Just running Euler via RESTfull webservice
------------------------------------------
This is done as "webized command line" so same steps as above and
start the Codd webizer in EULER_DATADIR (the subdirectory that will be web exposed) as
java euler.Codd
--chatty 0 is the default and use up to 99 to get more debug info
--port 80 is the default and check when the webizer starts with e.g.
20 Oct 2006 19:18:07 GMT http://yourhost.yourdomain:80/ Codd 1.5.34
--properties ./codd.properties is the default and check its contents
The configuration is done in EULER_DATADIR/codd.properties like for instance
http://eulersharp.sourceforge.net/2004/01swap/codd.properties
Following examples work as mapped services
o http://localhost/medService?WHO=Ann
o http://localhost/medic?why=think
or as straight webized command lines
o http://localhost/.cwm+http%3A%2F%2Fwww.agfa.com%2Fw3c%2Feuler%2FmedP.n3+http%3A%2F%2Fwww.agfa.com%2Fw3c%2Feuler%2Frpo-rules.n3+-think+-filter%3Dhttp%3A%2F%2Fwww.agfa.com%2Fw3c%2Feuler%2FmedF.n3+-why
o http://localhost/.euler5as+--prolog+http%3A%2F%2Fwww.agfa.com%2Fw3c%2Feuler%2Fmedic.n3+--query+http%3A%2F%2Fwww.agfa.com%2Fw3c%2Feuler%2FmedicF.n3
For all the tests run via Codd.java which uses Process.java to wrap
Yap, Cwm, SWI-Prolog, prover9, etc. To the external world it is then
also a primitive webservice (a URI standing for a set of N3 triples).