[mercury-users] Mercury, NLP, SLP, and ILP

James Cussens jc at cs.york.ac.uk
Tue Sep 19 21:32:52 AEDT 2000


Hi Stephen,
 
Sorry for the late reply, I was in Lisbon at a natural language
learning event ...
 
I have also considered using Mercury to implement an ILP algorithm. The
attraction was speed and strong typing. Two students here have done
projects on applying Mercury to ILP.
 
There are a number of issues. An ILP algorithm implemented in Prolog
(most of them are, I think) will make extensive use "level-crossing":
 
GENERATE a term-representing-a-clause by eg adding a literal to some
previous (overly general) term-representing-a-clause
TEST by simply asserting the term-representing-a-clause as a new
clause and run through the examples

This sort of transmogrification isn't on in Mercury. We got round it
by writing a small Prolog interpreter in Mercury. The overhead of
using some interpretation should not be to great, at least as long as
you are not inducing recursive clauses. Essentially the interpreter
maps examples to conjunctions of calls to "background" predicates
which have previously been compiled. If the calls succeed the example
is positive else negative. We tried using higher order terms but found
them too inflexible for our purposes. One last thing: fact tables were
essential for sets of examples, without them compilation took forever
- well too long anyway.

I am pretty sure that Ralph's experiences using Prolog and Mercury
will prove to be typical. One issue, which I think is still not
resolved, is whether implementing partially instantiated terms is a
good idea for Mercury. Some people have said that they are prone to
produce confusion and errors. On the other hand they are often very
handy in Prolog - not least for NLP purposes as soon as you go beyond
context-free.

On SLPs: Stephen Muggleton introduced them and has implemented them
internally in his CProgol system:

http://www-users.cs.york.ac.uk/~stephen/progol.html

for learning from positive examples only. This idea was later
implemented in Srinivasan's Aleph (formerly P-Progol) system:

http://web.comlab.ox.ac.uk/oucl/research/areas/machlearn/Aleph/aleph.html

I have also written little Prolog programs to do the experiments
reported in e.g. James Cussens. Stochastic logic programs: Sampling,
inference and applications. In Proceedings of the Sixteenth
    Annual Conference on Uncertainty in Artificial Intelligence
(UAI-2000), pages 115-122, San Francisco, CA,
2000.(http://www-users.cs.york.ac.uk/~jc/research/pub.html). Basically
I just added an extra numerical argument to predicates just like a
Prolog implementation of a PCFG.

There is however, still much work to do on their
implementation. Fortunately, we have a project starting on just that
in a few weeks time. Too early to say whether we will go for Prolog or
Mercury for this. (Maybe both!)

SLPs are closely related to NLP work on loglinear (also know as
MAXENT) models. See Dehaspe's MACCENT system, described in ``Maximum
entropy modeling with clausal constraints'', available at:

http://www.cs.kuleuven.ac.be/~ldh/

Also Riezler's LoLIDa system from:

http://www.ims.uni-stuttgart.de/~riezler/

Hope this is useful,

James


Stephen Beauregard writes:
 > Greetings!
 > 
 > I am currently writing a Natural Language Processing 
 > application in Prolog for my master's thesis and
 > have experienced this language's strengths and weaknesses. For
 > future projects (NLP and machine learning), I'm considering
 > using Mercury as a robust, fast substitute for Prolog. An
 > interesting question is whether Mercury is a good platform for
 > implementing stochastic logic programs or inductive logic programs.
 > 
 > I'd like to chat with people who have actually used Mercury
 > on large projects.
 > 
 > Would there happen to be any Mercury developpers or users coming
 > to Montreal this September for ICFP2000? If so, please contact me.
 > 
 > Regards.
 > 
 > S.B.
 > 
 > --
 > Stéphane Beauregard, Étudiant de 2ème cycle / Graduate student
 > Département d'Informatique et recherche opérationnelle / Computer
 > science department
 > Université de Montréal, Montréal, Québec
 > Courriel / email: beaurs at iro.umontreal.ca
 > Page Web / Home page: http://www.iro.umontreal.ca/~beaurs
--------------------------------------------------------------------------
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the users mailing list