[Attempto] question regarding Satchmo theorem prover
Tany Gao
gao.tany at gmail.com
Wed May 13 16:16:56 CEST 2015
Thank you, Professor Fuchs, for such detailed explanation. It helps me a
lot.
-- Tany
On Wed, May 13, 2015 at 6:24 AM, Norbert E. Fuchs <fuchs at ifi.uzh.ch> wrote:
>
> > On 13 May 2015, at 4:36 , Tiantian Gao <gao.tany at gmail.com> wrote:
> >
> > Satchmo theorem prover is coded in Prolog. I am curious where I can get
> its open source code for Satchmo? BTW, which version of Satchmo RACE
> reasoner is based on to conduct reasoning?
>
> Hi Tiantian Gao
>
> I am the author of RACE.
>
> Currently I am about to make RACE shipshape, i.e. cleaning the code,
> updating the documentation, and collecting and organising the many text
> cases, before I will submit it to GitHub with a GNU Lesser General Public
> License.
>
> I do not quite understand your question
>
> > which version of Satchmo RACE reasoner is based on to conduct reasoning?
>
>
> Do you mean the version of Prolog in which RACE is coded? If yes, I am
> currently using the latest stable version of SWI Prolog, i.e. the Unix
> version 6.4.1, respectively the Mac application version 6.6.6. But RACE
> should run with most other versions of SWI Prolog. If you mean which
> version of the original Satchmo RACE is based on, I cannot give you a
> concrete answer. I based RACE many years ago on the following version of
> the original Satchmo
>
> > satisfiable :-
> > setof(Clause, violated_instance(Clause), Clauses),
> > !,
> > satisfy_all(Clauses),
> > satisfiable.
> >
> > satisfiable.
> >
> >
> > violated_instance((satchmo_clause(B,H))) :-
> > satchmo_clause(B,H),
> > B,
> > \+ H.
> >
> >
> > satisfy_all([]).
> >
> > satisfy_all([(satchmo_clause(_B,H)) | RestClauses]) :-
> > H,
> > !,
> > satisfy_all(RestClauses).
> > satisfy_all([satchmo_clause(_B,H) | RestClauses]) :-
> > satisfy(H),
> > satisfy_all(RestClauses).
> >
> > /*
> > satisfy((A,B)) :-
> > !,
> > satisfy(A),
> > satisfy(B).
> > */
> >
> > satisfy((A;B)) :-
> > !,
> > (satisfy(A) ; satisfy(B)).
> >
> > satisfy(Atom) :-
> > \+ Atom = fail,
> > (
> > predicate_property(Atom, built_in)
> > ->
> > call(Atom)
> > ;
> > assume(Atom)
> > ).
> >
> >
> > assume(Atom) :-
> > nl, write(['Asserting ': Atom]),
> > asserta(Atom).
> >
> > assume(Atom) :-
> > nl, write(['Retracting ': Atom]),
> > retract(Atom),
> > !,
> > fail.
>
> but have since strongly modified and expanded RACE's code – keeping only
> the basic idea of forward reasoning with clauses/rules – as you can see
> from the size of the respective programs. While the original Satchmo
> consists of some 20 lines, RACE consists of 9 modules with altogether 350k,
> not counting the ACE parsing engine APE that translates ACE axioms and
> theorems into the logic form of discourse representation structures.
>
> Let me know if you have further questions. I am also interested to learn
> about your experience with the web-interface of RACE – which by the way is
> always up to date.
>
> Regards.
>
> Norbert E. Fuchs
> Department of Informatics & Institute of Computational Linguistics
> University of Zurich
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ifi.uzh.ch/pipermail/attempto/attachments/20150513/8cfa12c1/attachment.html>
More information about the attempto
mailing list