Return-Path: Received: from GLINDA.OZ.CS.CMU.EDU by A.GP.CS.CMU.EDU id aa06302; 10 Mar 94 4:08:33 EST Received: from dir.bris.ac.uk by GLINDA.OZ.CS.CMU.EDU id aa03481; 10 Mar 94 4:07:56 EST Received: from irix.bristol.ac.uk by dir.bris.ac.uk with SMTP (PP) id <02558-0@dir.bris.ac.uk>; Thu, 10 Mar 1994 09:05:56 +0000 From: "TP. Martin" Message-Id: <19391.9403100906@irix.bris.ac.uk> Subject: Re: FRIL To: Mark.Kantrowitz@GLINDA.OZ.CS.CMU.EDU Date: Thu, 10 Mar 1994 09:06:06 +0000 (GMT) In-Reply-To: <15621.9403100414@irix.bris.ac.uk> from "Mark.Kantrowitz@GLINDA.OZ.CS.CMU.EDU" at Mar 9, 94 11:10:15 pm X-Mailer: ELM [version 2.4 PL21] Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 10336 > > I'm told that you're the developer of FRIL, a fuzzy logic version of Prolog. > > I maintain the Fuzzy FAQ and the Prolog Resource Guide, two monthly postings > of answers to frequently asked questions in fuzzy logic and prolog, > respectively. If you feel that FRIL is appropriate for this list, could you > send me some information about FRIL for inclusion in the FAQ postings? I have enclosed a file with a brief outline of the language below - let me know if it is too much/not enough and I will cut it down or expand as necessary. I could supply a list of references for further info if that would be helpful. > > Also, if you're willing to make FRIL available to other researchers, I > also maintain the CMU AI Repository, a 1.6 gigabyte anonymous ftp collection > of materials of interest to AI researchers. > Unfortunately (or fortunately, depending on your point of view) Fril was taken on commercially in 1986, and so is not available as share/free ware. Details at the end of the file below. There is a book coming out on Fril which will have a demo disk for macintosh/windows 3 included - I think it is due for release late summer 94 Thanks for your interest Trevor Martin ---------------------------------------------------------------------------- Dr.T.P.Martin Advanced Computing Research Centre,University of Bristol trevor.martin@bristol.ac.uk Tel: (+44) 272 288200 Fax: (+44) 272 251154 ---------------------------------------------------------------------------- FRIL - fuzzy relational inference language Fril is an AI programming language running on a wide range of hardware platforms and incorporating a consistent method for handling uncertainty, based on Baldwin's theories of support logic, mass assignments, and evidential reasoning . Mass assignments give a consistent way of manipulating fuzzy and probabilistic uncertainties, enabling different forms of uncertainty to be integrated within a single framework. Fril uses a logic programming style, and allows uncertain data and inferences to be modelled very naturally. In addition, the procedural and meta-programming aspects of the language make creation of a knowledge-based system straightforward. Fril has a list-based syntax, similar to the early micro-Prolog from LPA. Prolog is a special case of Fril, in which programs involve no uncertainty. A. UNCERTAINTY IN DATA VALUES The fundamental data types of Fril include the usual logic programming terms, namely integers, real numbers, constants, and lists. In addition, fuzzy sets can be used where there is uncertainty as to the actual value of a parameter. For example, the fuzzy height "tall" might be represented in Fril by the definition (tall [68:0 72:1 74:1 76:0]) which represents a trapezoidal fuzzy number. The fact that "John is tall" can then be represented by the fact ((height John tall)) Fuzzy numbers can be manipulated by standard set operations and also used in arithmetic expressions. In addition they allow uncertain inferences to be made when fuzzy numbers partially match, e.g. if it is known that John is tall, a query to find people with a height of "around 70" inches would return the answer John with a degree of support, calculated from the match between the two fuzzy sets "tall" and "around 70" inches. Discrete fuzzy sets can also be used, e.g. one could use the fuzzy set {cola : 0.8, lager:1.0, wine:0.3} to express a possibility distribution for refreshing cold drinks. B. UNCERTAINTY IN THE RELATION BETWEEN DATA ITEMS In logic programming, a relation between two or more objects is represented by a fact. For example if we have the domains car and speed , we can define the relation "top-speed" as a subset of car x speed, with entries such as ((top-speed Rolls 125)) Now consider the relation "Comfortable-speed" which is also a subset of car x speed. For any given tuple there is no uncertainty in the attribute values, but there may be uncertainty as to how well a particular tuple satisfies the relation. Fril models uncertainty in a relation by means of support pairs. We can say that travelling in a mini at 50 mph is reasonably comfortable. Thus ((Comfortable-speed Mini 50)) :(0.8 0.8) indicates that the pair (Mini, 50) has a membership of 0.8 in the relation "Comfortable-speed". There is no uncertainty here in the attribute values; the uncertainty is the degree to which any particular tuple satisfies the relation Comfortable-speed. More generally, Fril allows the uncertainty associated with a tuple to be expressed as a support pair. This may be of a probabilistic nature, for example we may know that at least 80% of Minis have a top speed of 90mph. This can be represented by a support pair giving the probability that the fact is true, e.g. ((top-speed Mini 90)) : (0.8 1) where the support pair (0.8 1) represents the probability "at least 80%", i.e. between 80% and 100%. It is possible to combine uncertainty in attribute values and in the relation holding between attribute values, i.e. to have a fuzzy tuple or probabilistic fact with a possibility distribution as one of its attribute values. For example, the information that "Mary is most likely to be in her late twenties" could be represented as age-of Mary is [25:0 27:1 29:1 31:0] with support (0.9 1) where the qualifier "most likely" is represented by the support pair (0.9 1) The calculus used to combine supports is (by default) probabilistic, and may or may not assume independence. In version 5 of the language which is shipping in the summer, the user may define his own calculus. In the current release (version 4) it is possible to write a meta-program to customise the calculus. C. UNCERTAINTY IN RULES The facts in a Fril program, described in the previous section, are unconditionally true, or unconditionally true to some degree. Fril also allows rules, which are conditionally true statements (again, to some degree in general). A simple example of a rule is ((illness of X is flu) (temp of X is high) (strength of X is weak) (throat of X is sore)) : (0.9 1) where the conclusion (illness of X is flu) is dependent on three conditions (temp of X is high), (strength of X is weak), and (throat of X is sore). There is a high degree of confidence in this rule, as the conclusion is supported to a degree [0.9 1] if the conditions are satisfied. In the case of partial satisfaction of the conditions (i.e. conditions whose truth is given by a support pair), the support logic calculus is used to compute a degree of support for the conclusion automatically. Fril allows three different rules for knowledge representation involving uncertainty : 1. the basic rule (illustrated above) 2. the extended rule 3. the evidential logic rule The basic rule is a special case of the extended rule. These two rules use an inference procedure based on an interval version of Jeffrey's rule derived from mass assignment theory. The evidential logic rule uses a different inference procedure based on evidential logic. It allows a conclusion to be drawn from a number of conditions (features), not all of which need to be satisfied in order for an inference to be made. For example, in classifying an article as worth reading, we may take into account features such as length being acceptable, publication date being recent, keywords being relevant, authors being well-known, etc. The absence of one feature may still allow the conclusion "article is worth reading" to be drawn, but with a lower support than would otherwise be the case. D. SYSTEMS PROGRAMMING IN FRIL As Fril is a logic programming language, it is straightforward to write programs that manipulate other Fril programs as data. The ease with which shells and program analysis tools may be written in logic programming languages is well known. Additionally, Fril facilitates the design and implementation of an easy-to-use and intuitive interface by means of its dialog compiler. This uses declarative descriptions of dialog boxes, with the facility to attach Fril procedures to components of the dialog. The Fril system can also be linked to code written in other high-level languages, either with a tight binding so that the external code and Fril become part of the same application, or in a looser fashion by means of the Fril inter-application communication package. Fril also has an application generator. This package allows arbitrary Fril code to be added to the standard Fril core, creating an integrated application which can be run without the user needing any knowledge of the underlying Fril system. HISTORY Fril arose as a consequence of early work on fuzzy relations by Baldwin. Version 1 was implemented in the early 1980's using Lisp. It was a relational language incorporating fuzzy extensions to the relational algebra, and could deal with uncertainty in attribute values and in tables of facts (relations). A second version, capable of running on an IBM-PC, was implemented in Forth at around the same time. This was used to develop a monitoring system for electricity generating plant. The Lisp version of Fril was subsequently extended by the addition of a fuzzy Prolog module, FPROLOG, which extended the range of execution strategies available, and gave a procedural programming capability to the system. In 1986, the commercial possibilities fo the language became apparent, and subsequent development work was carried out by Fril Systems Ltd (originally known as Equipu A.I. Research), who released version 3 of Fril in 1987, with version 4 following in 1989. These were implemented as compilers based on the abstract Fril machine, with additional components of the core system implemented in Fril. Version 5 is scheduled for release this summer and includes substantial enhancements to the uncertainty-modelling features of the system. AVAILABILITY Fril runs on Unix, Macintosh, MS-DOS, and Windows 3.1 platforms. Prices (e.g.) 195 pounds for a small DOS version (no use of extended memory), 595 pounds for a Macintosh, 2500 pounds for a Sun (these are exclusive of VAT and may be subject to change). Further details and up-to-date prices from Dr B.W. Pilsworth Fril Systems Ltd Bristol Business Centre, Maggs House, 78 Queens Rd, Bristol BS8 1QX, UK.