Path: utzoo!mnetor!uunet!husc6!bbn!rochester!udel!burdvax!sdcrdcf!trwrb!aero!srt From: srt@aero.ARPA (Scott R. Turner) Newsgroups: comp.ai Subject: Re: Student versions of OPS5 Message-ID: <28259@aero.ARPA> Date: 30 Mar 88 16:08:05 GMT References: <1110@pembina.UUCP> <1501@netmbx.UUCP> <27336@aero.ARPA> <1580@netmbx.UUCP> Reply-To: srt@aero.UUCP (Scott R. Turner) Organization: The Aerospace Corporation, El Segundo, CA Lines: 38 Keywords: OPS5, IBM PC/XT/AT In article <1580@netmbx.UUCP> morus@netmbx.UUCP (Thomas Muhr) writes: >In article <27336@aero.ARPA> srt@aero.UUCP (Scott R. Turner) writes: >>It should be possible to write an OPS5-like language in a lot less than >>100K. The only difficult part of OPS5 to implement is the RETE algorithm. > >Right, but after all the proposed deletions this code would hardly cover 2 >pages. Leaving Rete-match out is not just affecting run-time (the decrease >in performance is incredible!) - but it would eliminate all features which >make OPS5 an interesting language - mainly the heuristics for selecting >rule-instantiations intelligently. Actually, I think specificity and recency are fairly easy to implement. (Without using Rete, that is...) Specificity simply means you have to keep your rule database ordered. That's simple enough to do. Recency is a little bit harder. The "obvious" execution cycle is to fire the first available rule. To do recency, you have to keep the fact database ordered by recency (easy) and then find the first rule that fires on the first fact (and so on down the fact database). That's not particularly hard to do. I suspect OPS5 (with specificity and recency) could be written in a couple of pages of Prolog. The point is, if you just want a student version of OPS5 - something to play around with - then you don't need all the Rete trappings. They can be easily (and inefficiently) duplicated. >>(*) My experience is that most OPS5 programmers (not that there are many) > Is this right ? ---^^^^^^^^^^^^^^^^^^^^^^ >>ignore or actively counter the "pick the most specific/least recently used" >>rules anyway. My guess is that there are very few active OPS5 programmers out there. For the most part I would say it is a dead language. It is years out of date (in terms of representation power, etc.), has an awkward syntax, and promotes a rather strained coding style. The fact that there are only two or three people contributing to this topic should give you some idea of how popular it is in regards to the net. -- Scott Turner