[comp.lang.prolog] Object Oriented Prolog question

mourad@IRO.UMontreal.CA (Shibl Mourad) (02/27/91)

I am looking for an Object Oriented Prolog to develop a Natural Languages application.

Please mail me any info about the available Prologs and your critiques. I will send a suumary of the replies.

Thanks.

			Shibl

ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) (02/27/91)

In article <1991Feb26.175218.9997@IRO.UMontreal.CA>, mourad@IRO.UMontreal.CA (Shibl Mourad) writes:
> I am looking for an Object Oriented Prolog to develop a Natural
> Languages application.

I am very interested in the application of Prolog to Natural Language
processing.  (I'm teaching a course on it.)  Just as a matter of
curiosity, why on earth do you want an *Object-Oriented* Prolog
(whatever that is)?  "Pure" Prolog fits rather nicely with the
declarative formalisms used by linguists (and the way that a
"coroutining" system like NU Prolog or SICStus lets constraints
from several levels interleave can be rather useful).  PATR is an
example of the kind of thing I have in mind.  Objects are things with
state, side-effects elevated to a principle.  Isn't that rather a bad
fit with linguistics?

-- 
The purpose of advertising is to destroy the freedom of the market.

ciancarini-paolo@cs.yale.edu (paolo ciancarini) (02/27/91)

In article <4835@goanna.cs.rmit.oz.au> ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes:
>In article <1991Feb26.175218.9997@IRO.UMontreal.CA>, mourad@IRO.UMontreal.CA (Shibl Mourad) writes:
>> I am looking for an Object Oriented Prolog to develop a Natural
>> Languages application.
>
>I am very interested in the application of Prolog to Natural Language
>processing.  (I'm teaching a course on it.)  Just as a matter of
>curiosity, why on earth do you want an *Object-Oriented* Prolog
>(whatever that is)?  "Pure" Prolog fits rather nicely with the
>declarative formalisms used by linguists (and the way that a
>"coroutining" system like NU Prolog or SICStus lets constraints
================================================================
>from several levels interleave can be rather useful).  PATR is an
                                              ======
>example of the kind of thing I have in mind.  Objects are things with
>state, side-effects elevated to a principle.  Isn't that rather a bad
>fit with linguistics?

Just as a matter of curiosity, what is a "coroutining system"
if it is not a system of things with independent states (i.e. objects) ?

Paolo Ciancarini

mourad@IRO.UMontreal.CA (Shibl Mourad) (02/28/91)

In article <4835@goanna.cs.rmit.oz.au> ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes:
>> I am looking for an Object Oriented Prolog to develop a Natural
>> Languages application.
>
> Just as a matter of curiosity, why on earth do you want an *Object-Oriented* 
> Prolog (whatever that is)?
 
The application involves information retreival through interviewing a human expert; the required information could be represented by a hierarchy of objects. On the surface it seems useful to have the advantages of Prolog for NL processing combined with an Object Oriented representation.

ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) (02/28/91)

In article <29107@cs.yale.edu>, ciancarini-paolo@cs.yale.edu (paolo ciancarini) writes:
> Just as a matter of curiosity, what is a "coroutining system"
> if it is not a system of things with independent states (i.e. objects) ?

A "coroutining" Prolog is one which is capable of executing goals out of
order.  That is, if we have
	p :- q, r.
	q :- a, b.
	r :- c, d.
(ignoring parameters), then the query
	?- p.
may be solved in the order c, b, d, a.  There is *nothing* in here
corresponding to a mutable state, there are *no* objects (no notion
of "object identity" is useful or definable, and without object
identity you haven't got objects).  In fact, coroutining Prologs
encourage pure coding, because it is hard to rely on the execution order
of side-effective commands like assert/1 and retract/1.
-- 
The purpose of advertising is to destroy the freedom of the market.

ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) (02/28/91)

In article <1991Feb27.223550.22645@IRO.UMontreal.CA>, mourad@IRO.UMontreal.CA (Shibl Mourad) writes:
> In article <4835@goanna.cs.rmit.oz.au> ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes:
> >> I am looking for an Object Oriented Prolog to develop a Natural
> >> Languages application.
> >
> > Just as a matter of curiosity, why on earth do you want an *Object-Oriented* 
> > Prolog (whatever that is)?
>  
> The application involves information retreival through interviewing a
> human expert; the required information could be represented by a
> hierarchy of objects.  On the surface it seems useful to have the
> advantages of Prolog for NL processing combined with an> Object Oriented
> representation.

You must clearly distinguish between OBJECTS and inheritance.
It is possible to have objects without inheritance.
It is possible to have inheritance without objects.
(For example, E.F.Codd presented an extension of relational data
bases having inheritance, years and years ago.)
You say that "the required information could be represented by a
hierarchy of objects", but what do these objects DO?  How do they
change?  What are their side effects?  What is inherited in this
hierarchy?  Why is a declarative formalism inappropriate?

Can you say more about your application?  Can you for example give a
transcript of the kind of human/machine interaction you'd like to see?
-- 
The purpose of advertising is to destroy the freedom of the market.