Copy Link
Add to Bookmark
Report

AIList Digest Volume 4 Issue 131

eZine's profile picture
Published in 
AIList Digest
 · 11 months ago

AIList Digest            Tuesday, 27 May 1986     Volume 4 : Issue 131 

Today's Topics:
Queries - Functional Programming and AI & Parallel Logic Programming &
Information Modeling for Real-Time/Asynch Processes
AI Tools - PROLOGs & Common LISPs & Common LISP Style Standards,
Expert Systems - Economics of Development and Deployment

----------------------------------------------------------------------

Date: 21 May 86 13:14:00 EST
From: "CUGINI, JOHN" <cugini@nbs-vms.ARPA>
Reply-to: "CUGINI, JOHN" <cugini@nbs-vms.ARPA>
Subject: Functional programming and AI


Here's a (dumb?) question for assorted AI wizards: how (if at all)
does functional programming support AI type applications?
By "functional programming", I mean the ability of a language
to treat functions (or some other embodiment of an algorithm) as
a data object: something that can be passed from one routine to
another, created or modified, and then applied, all at run-time.
Lisp functions are an example, as is C_Prolog's ability to
construct predicates from lists with the =.. operator, and the
OPS5 "build" action.

Do working AI programs really exploit these features a lot?
Eg, do "learning" programs construct unforeseen rules, perhaps
based on generalization from examples, and then use the rules?
Or is functional programming just a trick that happens to be
easy to implement in an interpreted language?

Thanks for any thoughts on this...

John Cugini <Cugini@NBS-VMS>
Institute for Computer Sciences and Technology
National Bureau of Standards

------------------------------

Date: 25 May 86 14:26:49 GMT
From: wisdom.BITNET!jaakov@ucbvax.berkeley.edu (Jacob Levy)
Subject: Parallel Logic Programming

Dear fellow AIListers and PrologListers,

I'm interested in obtaining the latest references you may have to articles
concerned with Parallel Logic Programming languages. If you have recently
written an article concerned with parallel execution of Prolog or about a
committed-choice non-deterministic LP language, I'm interested to read it,
or at least to receive a pointer to the article. By RECENT I mean articles
which have been published in 1985 and 1986 or which are about to appear. I
am interested in any and all sub-topics of the fields listed above.

Thank you very much ahead of time for your response,


Rusty Red (AKA Jacob Levy)

BITNET: jaakov@wisdom
ARPA: jaakov%wisdom.bitnet@wiscvm.ARPA
CSNET: jaakov%wisdom.bitnet@csnet-relay
UUCP: (if all else fails..) ..!ucbvax!jaakov%wisdom.bitnet

------------------------------

Date: 24 May 86 00:10:04 GMT
From: amdcad!cae780!leadsv!rtgvax!ramin@ucbvax.berkeley.edu
Subject: Information Modeling for Real-Time/Asynch processes


Sorry about all the cross-postings but I'm trying for the widest
circulation short of net.general (:-)

I am looking for any pointers to literature/specifications/ideas for
Modeling of asynchronous and/or real-time systems. These would be
very high-level design specification tools to help model parallel
real-time events and systems.

Intuitively, at least I think the way to go is Temporal Logics (hence
the net.philosophy posting...) however, that seems to be currently applied
only to hardware design (CIRCAL et al).
The problem with the standard dataflow diagram and associated descriptive
systems is their failure to capture at least simultaneous (ideally, parallel)
events.

On the other hand, the rigor with which one would want to model such an event
lends itself to creative Knowledge Representation techniques (hence
net.ai and net.cog-eng...) and even possibly many-valued logics...?

To put it in some more perspective, the model would be of some complicated
industrial processes that up to now have been modeled in a synchronous
i.e. serialized fashion. I would like to see if there are any references
out there to attempts at asynchronous modeling. Would definitely repost
(to where? (:-) if there are enough responses...

Thanks much...

ramin

: alias: ramin firoozye' : USps: Systems Control Inc. :
: uucp: ...!shasta \ : 1801 Page Mill Road :
: ...!lll-lcc \ : Palo Alto, CA 94303 :
: ...!ihnp4 \...!ramin@rtgvax : ^G: (415) 494-1165 x-1777 :

------------------------------

Date: 16 May 86 10:53:22 GMT
From: allegra!mit-eddie!genrad!panda!husc6!harvard!seismo!mcvax!ukc!kcl-cs
!glasgow!dunbar@ucbvax.berkeley.edu (Neil Dunbar)
Subject: Re: looking for Prolog

> I'm looking for a version of Prolog. The machines available to me
> include an AT&T 7300 (Unix PC), AT&T 3B5, AT&T 3B2, Plexus P/60, Plexus
> P/35, IBMPC, and AT&T 6300PC (IBMPC compatible). I've spoken with
> someone from AT&T who suggests that Quintus may be porting to the 7300.
> I've spoken with someone from Quintus who says there is no port and no
> contract at this time. I've heard of something called C-Prolog, but
> don't know for sure what it is. ...

Don't Borland make a version of Prolog to run on the PC, Turbo Prolog?
If you want a compiler there is the Arity compiler, again for MS-DOS systems,
but it costs a few thousand (dollars or pounds, depending on which side of
the Atlantic you're on).

CProlog V1.2 is the current prolog interpreter system from the University of
Edinburgh, running on our 11/780 under Unix. I don't know if it can be ported
onto the machines you describe, but you never know, anything's possible. If
you want to learn Prolog, try Clocksin & Mellish "Programming in Prolog",
which is an excellent tutorial guide.

Hope this helps,
Neil Dunbar.

------------------------------

Date: Sat, 24 May 86 02:35:00 +0200
From: enea!zyx!jeg@seismo.CSS.GOV
Subject: Re: Logic/Functional Languages?


In article <8605200626.AA27699@ucbvax.Berkeley.EDU> you write:
>Does anyone on the list know of available languages incorporating both
>logic and functional programming (preferably in a Unix 4.2 environment
>or possibly an IBM/PC)? ...


Answer to the questions:

1.) Does anyone on the list know of available languages incorporating both
logic and functional programming...?

2.) Some version of Prolog embedded within Common Lisp...?

3.) Has anyone produced any large applications with these hybrid systems?
Are the benefits derived from the systems *significant* (over using,
say, vanilla lisp or prolog)?

Hewlett-Packard have informally introduced HP Prolog to some customers and the
official introduction is scheduled to be sometime in August.

HP Prolog is residing on top of HP Common Lisp and this development environment
is therefore incorporating both Common Lisp and Prolog. Since I am affiliated
with HP, the following information is biased and might sound like an
advertisment, but I'll try to answer the third question without breaking
to many ethical rules for the net.

HP Development Environment is based on HP-UX (Unix V.2) and HP 9000 series
300, a 68020 based machine, with HP:s window system.

Top level for the Development Environment:
- A complete EMACS editor with some enhancements.
- A general browser.

Main features with the Development Environment are:
- The high level of integration
- The ability to use both Common Lisp and Prolog in the same process
and on the same objects and to mix Common Lisp and Prolog code.

HP Common Lisp has:
- Interpreter and compiler
- Objects package
- Ability to call C/Pascal/Fortran
- Debugger
- Interrupt handler

HP Prolog consists of two different environments:
- A "Common Lisp compatible" S-expression syntax
- Edinburgh C-Prolog syntax

HP Prolog has:
- Interpreter
- Incremental compiler
- Block optimzing compiler
- Debugger

Main features of HP Prolog are:
- A much extended Prolog
- Ability to mix Prolog and Common Lisp
- Macros
- Packages
- Mode declarations
- Declarative determinism
- Integration in the environment
- A well-designed and complete I/O system
- Other minor features like strings, graphics etc.
- An extended Definite Clause Grammar (DCG)
- Respectable performance

The Prolog system will soon be available with/without Common Lisp system
on other vendors machines.

Quite large applications on this system are currently under development.
There is definitely a significant advantage of being able to mix Common
Lisp and Prolog. Common Lisp and Prolog have both different advantages
and complement instead of excluding each other.

Jan-Erik Gustavsson, ZYX AB, Styrmansgatan 6, 114 54 Stockholm, Sweden
Phone: + 46 - 8 - 65 32 05
...mcvax!enea!zyx!jeg

------------------------------

Date: 18 May 86 00:52:32 GMT
From: allegra!mit-eddie!genrad!panda!husc6!harvard!caip!lll-crg!seismo
!mcvax!enea!kuling!martin@ucbvax.berkeley.edu (Erik Martin)
Subject: Re: Common LISP style standards.

In article <2784@jhunix.UUCP> ins_amrh@jhunix.UUCP writes:
>
> - How do you keep track of the side effects of destructive functions
> such as sort, nconc, replaca, mapcan, delete-if, etc?

Don't use them. I use destruction only when I need circular objects or
when I need to speed up a program. In the latter case I write it strictly
functional first and then substitute 'remove' with 'delete' and so on. This
should not affect the semantics of the program if it is 'correctly' written
from the beginning. But it's really a task for the compiler so You shouldn't
need to think about it.

> - When should you use macros vs. functions?

I only use macros when I need a new syntax or a 'unusuall' evaluation
of the arguments. (like FEXPR in Franz and MacLisp.)

> - How do you reference global variables? Usually you enclose it
> in "*"s, but how do you differentiate between your own vars and
> Common LISP vars such as *standard-input*, *print-level*, etc?

Always "*"s. No differentiation.

> - Documentation ideas?

An 'overview' description in the file header, more detailed on top of each
function. Very few comments inline, use long function and variable names
instead. Documentation strings in global variables and top level (user)
functions.

> - When to use DOLIST vs MAPCAR?

Quite obvious. Use DOLIST when you want to scan through a list, i.e. just
look at it. At the end of the list it returns NIL or the optional return form.
You can also return something with en explicit RETURN. Use MAPCAR when you
want to build a *new* list with a function applied to each element.

> - DO vs LOOP?

Write what you mean. If you mean 'repeat until doomsday' (without any
variables bound) then use LOOP.

> - Indentation/format ideas? Or do you always write it like the
> pretty-printer would print it?

A lot of white space in the code. The rest is very personal and hard to set
up rules for. Nice editors usually have good ideas about how it should look.

> - NULL vs ENDP, FIRST vs CAR, etc. Some would say "FIRST" is
> more mnemonic, but does that mean you need to use
> (first (rest (first X))) instead of (cadar X) ??

Again, write what you mean. If you mean 'is this the end of the list
we are just working with?' then use ENDP, if you mean 'is this NIL (an empty
list)?', use NULL, and if you mean 'is this false?' use NOT.
Write FIRST if you mean the first element of a list, SECOND for the second,
THIRD for the third...and combinations of these when appropriate. At some
limit this gets very messy though, and C*R is better. But in that case you
perhaps should write your own accessor functions. When working with cons'es
I always use CAR and CDR.


My general rule is : Write what you mean and leave the task of efficiency
to the implementation and compiler.


Per-Erik Martin
--
Per-Erik Martin, Uppsala University, Sweden
UUCP: martin@kuling.UUCP (...!{seismo,mcvax}!enea!kuling!martin)

------------------------------

Date: Sat, 24 May 86 08:23:25 est
From: munnari!psych.uq.oz!ross@seismo.CSS.GOV (Ross Gayler)
Subject: economics of expert systems - summary of replies

A while back I put out a request for information on the economics of the
development and deployment of expert systems. This is a summary of the replies
I have received.

I received around ten replies, most of which were of the 'please let me know'
variety. Some of these went to some length to indicate that they felt this
was an important area. It does seem that there is a need for this information
and it either doesn't exist or somebody is not sharing it.

There were three substantive replies which told of:

1 A company which attempted to develop three expert systems.

One took twice as long to develop as the FORTRAN program it replaced,
the second was too slow to be usable, and the other was abandoned for
lack of an expert.

2 A successful family of expert systems that are widely used in-house.

The point made here was that the development cost was an insignificant
fraction of the cost of packaging the product for deployment and the
continuing cost of training the users.

3 A pointer to the November 1985 IEEE Transactions on Software
Engineering which was a special issue on "Artificial intelligence and
software engineering"
.

I found the articles by Doyle, Bobrow, Balzer, and Neches et al to be
the most relevant to my needs. Doyle argues that the productivity
advantage of the artificial intelligence approach comes from the tools
and techniques used to construct the product, not from the ultimate
form of the product itself. The other papers do not explicitly address
the modelling of costs. However, an implicit model is discernible from
the areas they choose to emphasize.

I will send a request to the software engineering list and see if I can get any
joy there. If not it looks like I might be forced to do some work for myself.
What I would like is a predictive model which will give me the costs to
implement and deploy an expert system or conventional system as functions of
various features of the problem, the tools available, and the development and
deployment environments. As I do not have any empirical data the best I can
aim for is a set of statements on the qualitative shapes of the cost curves for
various factors. Using these curves backwards would allow me to say what
problem characteristics are a lot more conducive to an expert system solution
being cheaper than a conventional solution. I will probably start with the cost
models in Tom de Marco's book, "Controlling software projects" and try to
identify expert systems analogues of the cost factors he identifies for
conventional systems.

If I manage to get anywhere with this I will let you know.

Ross Gayler | ACSnet: ross@psych.uq.oz
Division of Research & Planning | ARPA: ross%psych.uq.oz@seismo.css.gov
Queensland Department of Health | CSNET: ross@psych.uq.oz
GPO Box 48 | JANET: psych.uq.oz!ross@ukc
Brisbane 4001 | UUCP: ..!seismo!munnari!psych.uq.oz!ross
AUSTRALIA | Phone: +61 7 227 7060

------------------------------

End of AIList Digest
********************

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT