IRList Digest Monday, 22 September 1986 Volume 2 : Issue 47 Today's Topics: Email - Change in address for M. Burke Announcement - New University of Rochester HORNE system available - U. Maryland parallel logic prog. sys. on McMOB multiproc. Article - Software Reuse Through Information Retrieval - Part 1 ---------------------------------------------------------------------- Date: 15 September 1986, 16:22:18 GMT From: MABURKE at IRLEARN.bitnet To: FOXEA at VTVAX3 Greetings from Ireland! I was formerly BURKE @ SUCASE and have now returned to UCD in Dublin where my I.D. is MABURKE @ IRLEARN. PL. send the I.R. digest to this location. Thanks ... Mary ------------------------------ Date: Sun, 14 Sep 86 18:37:42 edt From: miller%UR-ACORN.ARPA%UR-CASHEW.ARPA@UR-ACORN.ARPA Subject: New University of Rochester HORNE system available The University of Rochester HORNE reasoning system has just been rereleased in common-lisp form, currently running on a symbolics (though any common-lisp system should be able to run it with minor porting). Features: Horne Clause resolution prover (similar to PROLOG) with typed unification and specialized reasoner for equalities (e.g. A and B can be asserted to be equal, and so will unify). Equalities can be asserted between any ground forms including functions with ground terms. A forward chaining proof mechanism, and an interface between this system and arbitrary common-lisp forms are also provided. As part of the same release we are providing REP, a frame-like knowledge representation system built on top of the theorem prover, which uses sturctured types to represent sets of objects. A structured type may have relations (or "roles") between its set of objects and other sets. Arbitrary instances of an object may be asserted to be equal to another instance which will utelize the underlying HORNE equality mechanisms. HORNE is the product of several years of R&D in the Natural Language Understanding and Knowledge Representation projects supervised by Prof. James Allen at the University of Rochester, and forms the basis for much of our current implementation work. A tutorial introduction and manual, TR 126 "The HORNE reasoning system in Common-Lisp" by Allen and Miller is available for $2.50 from the following address: Ms. Peg Meeker Technical Reports Administrator Department of Computer Science 617 Hylan Building University of Rochester River Campus Rochester, NY 14627 In addition a DC300XL cartridge tape in Symbolics distribution format, or Symbolics carry-tape format (also suitable for TI Explorers), or a 1/2" 1600bpi reel in 4.2BSD TAR format (other formats are not available) is available from the above address for a charge of $100.00 which will include one copy of the TR. This charge is made to defray the cost of the tape, postage, and handling. The software itself is in the public domain. Larger contributions are, of course, welcome. Please specify which format tape you wish to receive. By default, we will send the Symbolics distribution format. All checks should be made payable to "University of Rochester, Computer Science Department". POs from other Universities are also acceptable. Refunds for any reason are not available. DISCLAIMER: The software is supplied "as-is" without any implied warrenties of merchantability or fitness for a particular purpose. We are not responsible for any consequential damages as the result of using this software. We are happy to accept bug reports, but promise to fix nothing. Updates are not included; future releases (if any) will probably be made available under a similar arrangement to this one, but need not be. In other words, what you get is what you get. Brad Miller Computer Science Department University of Rochester miller@rochester.arpa miller@ur-acorn.arpa ------------------------------ Date: Thu, 11 Sep 86 17:08:33 EDT From: Jack Minker Subject: Parallel Inference System at Maryland [Extracted from PROLOG Digest Monday, 15 Sep 1986v$ #50 - Ed] AI and Database Research Laboratory at the University of Maryland Jack Minker - Director The AI and Database Research Laboratory at the Univer- sity of Maryland is pleased to announce that a parallel logic programming system (PRISM) is now operational on the McMOB multiprocessosor. The system uses up to sixteen pro- cessors to exploit medium grained parallelism in logic pro- grams. The underlying ideas behind PRISM appeared in [Eis- inger et. al., 1982] and [Kasif et. al., 1983]. The McMOB multiprocessor is a direct offspring of ZMOB [Reiger et. al.,1980]. It consists of sixteen Motorola MC68010 processors interconnected via a high speed belt. PRISM consists of several parts: a user host interface that exists on the host machine; a set of machines (moblets) designated as problem solvers (PSMs); a set of machines designated as Extensional Database Machines (EDB) that store ground atomic formulae (relational database tables); and, a set of machines designated as Intensional Database Machines (IDB) that store procedures (the general rules in the sys- tem). The system can also optionally include Constraint Machines (CM) that use user-supplied constraints to prune unsatisfiable paths in the proof tree. The system supports both AND and OR parallelism. The user can specify control in terms of the sequence of atoms to be executed in a set of problems to be solved. Atoms can be executed in parallel, sequentially, or as specified by a partial ordering. Similarly procedures can be specified as being executed sequentially, in parallel, or as specified by a partial order. The PSM has been written in a modular fashion to permit alternative control structure programs to be incorporated in the system. Alternative node and literal selection algorithms may be incorporated as part of the con- trol structure. The user may specify the configuration (i.e., the number of moblets required as a minimum) in which a problem is to be run. If additional moblets are avail- able, the PRISM will automatically take advantage of them. A large number of problems are currently being pro- grammed in PRISM and experiments will be run with these to determine the effectiveness of PRISM as a problem solving system. The major research directions in the laboratory over the coming year will be devoted to the following areas: (1) Experimentation Using PRISM (2) Control Structure Investigations (3) Expert systems and PRISM (4) Parallel problem solving and Architecture Issues If you would like further information on PRISM, please contact MINKER@MARYLAND or MADHUR@MARYLAND. We would also be very interested in hearing from people who may have prob- lems we could run on PRISM. References: 1. Eisinger, N., Kasif, S., and Minker, J., "Logic Pro- gramming: A Parallel Approach", in Proceedings of the First International Logic Programming Conference, Mar- seilles, France, 1982. 2. Kasif, S., Kohli, M., and Minker, J., "PRISM - A Paral- lel Inference System for Problem Solving", in IJCAI-83, Karlsruhe, Germany, 1983. 3. Rieger, C., Bane, j., and Trigg, R., "ZMOB: A Highly Parallel Multiprocessor", University of Maryland, TR- 911, May 1980 ------------------------------ Date: Fri, 12 Sep 86 22:31:44 EDT From: seismo!allegra!hoqam!wbf Subject: Software Reuse through IR Ed, Thanks for the recent IR list about software reuse and IR. I've sent along a copy of the paper Brian and I wrote on the subject. I should say that we view this paper as extremely preliminary. There are many issues in reuse and IR that we do not discuss, and we feel that there must be experimentation to back up the proposals we put forward. Nonetheless, perhaps IR list readers will find the paper useful as the basis of discussion. Regards, Bill Frakes Software Reuse Through Information Retrieval W. B. Frakes B. A. Nejmeh AT&T Bell Laboratories Holmdel, New Jersey 07733 1. Introduction There is widespread need for safe, verifiable, efficient, and reliable software that can be delivered in a timely manner. Software reuse can make a valuable contribution toward this goal by increasing programmer productivity and software quality. Unfortunately, the amount of software reuse currently done is quite small. DeMarco [1] estimates that in the average software development environment only about five percent of code is reused. A fundamental problem in software reuse is the lack of tools to locate potential code for reuse. In this paper we argue that information retrieval (IR) systems have the power and flexibility to ameliorate this problem. We then discuss the issue of database design, and show the viability of our approach using the CATALOG information retrieval system [2] [3]. We conclude with a discussion of current research in IR that is likely to improve IR systems as tools for managing software reuse. 2. Motivation for Software Reuse The search for effective methods of promoting software reuse has a strong economic basis. The demand for software continues to rise sharply and the gap between the supply and demand for software continues to grow [4] Thus, effective means of promoting software reuse have become of paramount importance to the software engineering community. Software reliability has also become a problem of increasing importance as real-time applications of computers emerge in (for example) financial arenas, the military, and the medical profession. In these domains there is a critical need for software to operate without failure over long periods of time, so as not to cause significant economic loss or endanger human life. Reliability is also important because maintenance now accounts for the largest portion of system costs [5], and more reliable software should be cheaper to maintain. One potential means of increasing software reliability is through the use of existing software. This is because reusable software components have presumably been rigorously tested and verified. 3. Factors hindering software reuse A fundamental problem with software production in the US is that a new software system is typically constructed "from scratch" [6]. This is unfortunate because studies have shown that much of the code in a system is functionally identical to previously written code. For example, the Missile systems Division of Raytheon Company observed that 40-60% of code was repeated in more than one application [7]. The desirability of software reuse is contingent on the value and feasibility of reusing a particular type of software product [8]. The value of software reuse refers to whether it is more cost effective, in terms of time, money, or personnel, to reuse software as opposed to developing it from scratch each time it is needed. Since software reuse has its own costs, e.g. location, classification, documentation, and storage, the reuse of software is not always valuable. The feasibility of software reuse relates to the ease with which software can be effectively reused. Feasibility is dependent on the facilities provided by a software development environment, and the ease with which reusable software candidates can be identified. Frequently, software is not reused because the value of reusing software is low and the feasibility of reuse is minimal. The factors affecting the value and feasibility of software reuse can be classified as follows: o Differences in software development environments - if there are differences in programming languages or operating systems, the value and feasibility of reuse can be reduced because of excessive translation or porting costs. o Reuse support environment - if the retrieval and specification of software components are not automated, the amount of time required to locate reusable software increases greatly. If potentially reusable software components cannot be located, retrieved, and reviewed effectively, reuse is neither feasible nor valuable. 4. The Need for Support Tools in Reuse Support Environments The Japanese have been extremely successful in promoting and encouraging software reuse. Japanese software factories have cited reuse factors of 85 percent [9]. Moreover, the Japanese stress the use of keyword searching of software module abstracts to promote reuse [4]. Both the Japanese, and software researchers in the US, have argued that in order to effectively promote reuse we must learn how to organize, index, describe, and reference software components effectively. Standish [4] argues that "... a system of software components could be organized and indexed by conventional techniques for indexing papers in the computer science literature, and that by having each component in a software library an effective means of locating reusable software will be established." In addition, the Hughes Aircraft Company recently studied 19 software development methodologies to evaluate their usefulness with respect to promoting software reuse. In this study Hughes Aircraft concluded that "no methodology for large-scale software development provides a reliable storage and retrieval mechanism for a code-level library." [10] Finally, in a recent paper [6], Horowitz states that "... there are no tools to catalog, refine, and compose [software] components in an efficient manner." In short, there is strong support for the belief that to effectively promote software reuse we must develop tools to aid in the process of locating software components that are candidates for reuse. Such a tool must provide the user with an effective means of indexing, searching, retrieving, and reviewing software components. In the following sections of the paper we describe a tool to meet this need. [Note: to be continued in next IRList - Ed]