Path: utzoo!attcan!uunet!lll-winken!lll-tis!helios.ee.lbl.gov!pasteur!ucbvax!decwrl!labrea!sri-unix!teknowledge-vaxc!shardy From: shardy@teknowledge-vaxc.ARPA (Steve Hardy) Newsgroups: comp.lang.prolog Subject: Re: Knowledge representation and Prolog Message-ID: <23253@teknowledge-vaxc.ARPA> Date: 17 Jun 88 02:44:14 GMT References: <121@quintus.UUCP> <6648@burdvax.PRC.Unisys.COM> Organization: Teknowledge, Inc., Palo Alto CA Lines: 49 In-reply-to: finin@antares.PRC.Unisys.COM's message of 16 Jun 88 18:13:38 GMT Jerry Harper asks about knwoledge representation languages written in Prolog (besides APES.) Teknowledge developed a prolog-based expert system shell called M.1. It was released in June 1984 and has sold close to 4,000 copies. M.1 is unusual in that it is a complete logic programming language as well as being an easy-to-use expert system shell. For example: /* --- simple EMYCIN-like heuristic rule --- */ if main-component-of-meal = beef then best-color-of-wine = red cf 75. /* --- list processing --- */ infix <>. /* for "append" */ [] <> LIST = LIST. if LIST1 <> LIST2 = LIST3 then [ITEM|LIST1] <> LIST2 = [ITEM|LIST3]. /* --- objects and inheritance --- */ issquare(obj-22). size(obj-22) = 5. if isrectangle(X) and height(X) = H and width(X) = W and H * W = R then area(X) = R. if issquare(X) then isrectangle(X). if issquare(X) and size(X) = S then height(X) = S. if issquare(X) and size(X) = S then width(X) = S. After releasing four versions of M.1 in Prolog, Teknowledge recoded the system in C. This led to the system being approximately five times faster and able to handle knowledge systems five times larger (up to 2000 rules on a 640K IBM-PC.) It was easier to work out the design of M.1 with Prolog than it would have been with C. Steve Hardy, Teknowledge Inc., (415) 424-0500 DISCLAIMER: My opinioins are not necessarily those of Teknowledge.