ahmed@alberta.UUCP (Ahmed Mohammed) (03/04/88)
Computer Thought Corp. has begun shipping students versions of the expert system lang. These are operational on IBM PC/XT/AT on one 5.25'' floppy drive The system should accomplish for rule-based systems what Borland's Turbo Prolog has already accomplished for logic programming: mass distribution and increased public understanding. The package costs $255 for Graduate student version, $90 for undergraduate version.
goebel@alberta.UUCP (Randy Goebel) (03/08/88)
It's nice that software is made available for students at reduced prices, but I'm a little worried that the OPS5 system would do what Turbo-Prolog does...Turbo-Prolog is just plan bad, and anyone who uses Turbo-Prolog as a method of understanding Prolog is doing damage to their logic skills. OPS5 is procedural, so maybe you will all be better off?
srt@aero.ARPA (Scott R. Turner) (03/09/88)
In article <1115@pembina.UUCP> goebel@pembina.UUCP (Randy Goebel) writes: > OPS5 is procedural, so maybe you will all be better off? In what way is OPS5 procedural? At any rate, there have been various cheap rule-based expert system tools available on PCs for quite some time. I don't think a $250 version of OPS5 is going to start any big revolution. Especially since OPS5 is somewhat dated even when fully implemented (Rete), and most micro versions of OPS5 aren't complete implementations. Indeed, I don't think the Vax version uses Rete (at least, it allows calculations in the LHS). -- Scott Turner
morus@netmbx.UUCP (Thomas M.) (03/11/88)
In article <1110@pembina.UUCP> ahmed@alberta.UUCP (Ahmed Mohammed) writes: >Computer Thought Corp. has begun shipping students versions >of the expert system lang. These are operational on IBM PC/XT/AT >The package costs $255 for Graduate student version, >$90 for undergraduate version. I would like to know about the capabilities of the above mentioned versions of OPS5. Are there any substantial differences between the "expensive" and the "cheap" version ? I think it is not really the same price-politics as Borland's - 255 $ is not a "Pappenstiel" for a student. By the way: All of you, who helped me with my request for a PC-public domain OPS5-version - thank you very much*. I have now available a few common-lisp sources (each about 100KB big) which I will try to convert to a PC-runnable version in the near future. There will be - I suppose - some difficulties to adapt the sources to PC-Scheme or XLISP. If anybody had experience with porting code from CL to XLisp or Scheme, I would like to contact you for an explanation for some of the more annoying transformations. * I will summarize later! Please - no e-mailing of long files to the above adress (..netmbx..)! For e-mailing of sources etc. please use my BITNET-adress: muhrth@db0tui11.BITNET Thank you very much, Thomas Muhr. -- @(^o^)@ @(^x^)@ @(^.^)@ @(^_^)@ @(*o*)@ @('o`)@ @(`!')@ @(^o^)@ @ Thomas Muhr Tel.: (Germany) 030 - 87 41 62 (voice!) @ @ NET-ADRESS: muhrth@db0tui11.bitnet or morus@netmbx.UUCP @ @ BTX: 030874162 @
morus@netmbx.UUCP (Thomas M.) (03/15/88)
In article <26695@aero.ARPA> srt@aero.UUCP (Scott R. Turner) writes: >In article <1115@pembina.UUCP> goebel@pembina.UUCP (Randy Goebel) writes: >> OPS5 is procedural, so maybe you will all be better off? > >In what way is OPS5 procedural? Maybe the intended meaning of 'procedural'in this case is 'opposite of decalarative', which is true for OPS5. You define Condition-Action pairs - the facilities for structured object representations are very limited. Furthermore there is no way of accessing the rule-definitions at }irun-time - because of the compilation, which makes OPS5-based systems the fastest (and therefor biggest) rule-based systems available (as far as I know). This absence of sources at run-time restricts the expressional power of OPS5 - no comfortable way of generating explanations, changing the control flow schemes explicitely and centralized. 'Procedurally' is definitely the activation of external procedures in the RHS - there are high chances of implicitely injecting a procedural style. > >At any rate, there have been various cheap rule-based expert system ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >tools available on PCs for quite some time. I don't think a $250 Which are these???? >I don't think the Vax version uses Rete (at least, it allows I think it uses Rete-match, although I'm not sure. I have been working with VAX-OPS5 for some time but have never found anything mentioning the RETE-Match. But because of the linearity of runtime-rulenumber relation there should be a precompilation similar to Rete. Who knows definitely? ---- Thomas Muhr -- @(^o^)@ @(^x^)@ @(^.^)@ @(^_^)@ @(*o*)@ @('o`)@ @(`!')@ @(^o^)@ @ Thomas Muhr Tel.: (Germany) 030 - 87 41 62 (voice!) @ @ NET-ADRESS: muhrth@db0tui11.bitnet or morus@netmbx.UUCP @ @ BTX: 030874162 @
) (03/16/88)
In article <26695@aero.ARPA> srt@aero.UUCP (Scott R. Turner) writes: > I don't think the Vax version [of OPS5] uses Rete (at least, it allows > calculations in the LHS). In fact, VAX OPS5 uses the high-performance compiled Rete, first used by OPS83, wherein each node in the network is represented by machine instructions. This makes it easy for the compiler to support inline expression evaluation and external function calls in the LHS. Bill Barabash DEC AI Advanced Systems & Tools barabash@rachel.dec.com
srt@aero.ARPA (Scott R. Turner) (03/17/88)
In article <1501@netmbx.UUCP> muhrth@db0tui11.BITNET (Thomas Muhr) writes: >I have now available a few common-lisp >sources (each about 100KB big) which I will try to convert to a PC-runnable >version in the near future. 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. Throw that out, ignore some of the rules for determining which rule out of all the applicable rules to use (*), and you should be able to implement OPS5 in a couple of days. Of course, this version will be slow and GC every few minutes or so, but those problems will be present to some extent in any version written in Lisp. (*) My experience is that most OPS5 programmers (not that there are many) ignore or actively counter the "pick the most specific/least recently used" rules anyway. -- Scott Turner
srt@aero.ARPA (Scott R. Turner) (03/26/88)
In article <8803161533.AA03130@decwrl.dec.com> barabash@midevl.dec.com (Digital has you now!) writes: > > In article <26695@aero.ARPA> srt@aero.UUCP (Scott R. Turner) writes: >> I don't think the Vax version [of OPS5] uses Rete (at least, it allows >> calculations in the LHS). > > In fact, VAX OPS5 uses the high-performance compiled Rete, first used > by OPS83, wherein each node in the network is represented by machine > instructions. This makes it easy for the compiler to support inline > expression evaluation and external function calls in the LHS. My understanding of the Rete algorithm (and admittedly, I don't have the paper at hand) was that speed was obtained by building an immediately executable tree of database checks. In essence, a compiled D-Net based on the contents of WM. So the speed increase isn't merely because you compile the LHS of all the rules (at some level every language represents things as machine instructions, after all), but because the Rete algorithm builds a discrimination tree that efficiently orders the tests and guarantees that a minimum number of tests will be taken to determine the applicable rules. Much of OPS5's conflict resolution strategy falls directly out of Rete, I think, in the order in which applicable rules are found. So, can executable functions be included in the LHS without ruining this scheme? I'd say no, with reservations. At the very least, two rules with an identical function call in the LHS will result in the function being executed twice (since the compiler can't guarantee that the function doesn't have a side-effect which will change its result between different invocation with identical arguments). So, in the Rete scheme, if two rules have an identical WM check in the LHS, that check is made only once each cycle of the OPS5 machine. If they have an executable in the LHS, that gets executed twice. If you allow functions which can change WM to exist in the LHS, things get much worse. -- Scott Turner
morus@netmbx.UUCP (Thomas M.) (03/26/88)
In article <27336@aero.ARPA> srt@aero.UUCP (Scott R. Turner) writes: >In article <1501@netmbx.UUCP> muhrth@db0tui11.BITNET (Thomas Muhr) writes: >>I have now available a few common-lisp >>sources (each about 100KB big) which I will try to convert to a PC-runnable >>version in the near future. > >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. >Throw that out, ignore some of the rules for determining which rule out >of all the applicable rules to use (*), and you should be able to implement >OPS5 in a couple of days. Of course, this version will be slow and GC >every few minutes or so, but those problems will be present to some extent >in any version written in Lisp. 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. > >(*) 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. Well, it would be fine to have a little more influence on conflict-resolution strategies - but the mentioned ones are very important: Default strategies via "specifity", controlling loops via "recency" are very powerful features. Ignoring these mechanisms means that they have chosen the wrong paradigm. -------- Thomas Muhr Knowledge Based Systems Group Technical University of Berlin -- @(^o^)@ @(^x^)@ @(^.^)@ @(^_^)@ @(*o*)@ @('o`)@ @(`!')@ @(^o^)@ @ Thomas Muhr Tel.: (Germany) 030 - 87 41 62 (voice!) @ @ NET-ADRESS: muhrth@db0tui11.bitnet or morus@netmbx.UUCP @ @ BTX: 030874162 @
srt@aero.ARPA (Scott R. Turner) (03/31/88)
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
prophet@nitro.ATT.COM (Mike Brooks) (04/06/88)
In article <28259@aero.ARPA> srt@aero.UUCP (Scott R. Turner) writes: >In article <1580@netmbx.UUCP> morus@netmbx.UUCP (Thomas Muhr) writes: >>In article <27336@aero.ARPA> srt@aero.UUCP (Scott R. Turner) writes: >>>(*) 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. I can't give an exact number for OPS5 programmers (active) who are out here but I personally have found OPS5 to be a stable and instructive rule-based programming environment (though not the only one!). I am working on a prototype system to handle resource and activity planning within a test lab. Although at first I was a little annoyed by the lacks that I initially perceived, I discovered that OPS5, as an environment to learn rule-based programming, is ideal because it doesn't have nifty full screen user interfaces or tons of libraries; it focuses your attention on the real beef: the innards of the of the system or project at hand. I find that at times, having so much to choose from confuses the issue of what needs to be done. When needs arose for functionality not terribly well handled in OPS5, it's simply another call to an external procedure which tests for some measure of success. I want to stress that I am not advocating OPS5 as a do-all, end-all tool, just that it is still useful, and if there are any OPS5 or OPS83 programmers out there I would love email from you detailing your experiences with these *dinosaurs*. Michael P. Brooks E-mail: {mtuxo,ihnp4}!attunix!nitro!prophet