skumar@cbnewsh.att.com (swaminathan.ravikumar) (07/18/90)
Could someone explain the differences between Relational DBMS and Expert Systems. I would like to know the kinds of things that cannot be done with RDBMS for which you need Expert Systems Technology. When I look at most of the Expert System Shells they provide a syntax for representing the domain specific data (or knowledge) and a way to use the data (conditional knowledge or inference mechanism). Can't the same thing be achieved with tables and queries in a RDBMS. Is the chaining through conditional knowledge possible in ES is missing in RDBMS? I always have trouble in explaining the differences between the two when someone asks. I have heard people saying relational algebra cannot do recursion (I don't know what this means). I would appreciate any clarification on this from the netters. Thanks. -- ravi skumar@hocus.att.com
jbeard@quintus.UUCP (Jeff Beard) (07/18/90)
> I have heard people saying relational > algebra cannot do recursion (I don't know what this means). > I would appreciate any clarification on this from the netters. To illustrate recursion, use the simple Prolog tail-recursion example: procHead([Head|Tail]) :- ... ... procHead(Tail). The procedure procHead/1 calls itself, or recurs. For relational DBMS, recursion is much more difficult. Take for example, a single table of employee info emp(EmpNum,EmpName,ManagerNum). To display the name of the manager for each employee requires a 'self-join' that is likened to recursion: select m.EmpName, e.EmpName, e.EmpNum from emp e, emp m where e.ManagerNum = m.EmpNum; the table emp/3 is qualified uniquely via {e,m} tags which give unique 'cursors' (or scan pointers if you will) to two instances of the single table. The WHERE constraint avoids the cartesian product and forces the correct pairing. The above SQL will produce a tabular report for every tuple(fact) of emp/3. But HOW does one create an organization tree for ALL managers at ALL levels AND in the proper organization hierarchy? eg: president:- vp1:- division1:- sales:- Western:- ... Eastern:- manager1:- ... managerN:- emp1 ... empN service:- division2:- ... ... ... vpN:- divisionN:- R&D:- mft:- ... -- ====== Opinions are the possession of the speaker and to assert otherwise is plagiarism. Jeff Beard, Quintus Computer Systems, Inc. e-mail ...!sun!quintus!jbeard or jbeard%quintus.com@sun.com
chandra@cs.tamu.edu (Chandrasekaran Periannan) (07/19/90)
>When I look at most of the Expert System Shells they provide a >syntax for representing the domain specific data (or knowledge) >and a way to use the data (conditional knowledge or inference >mechanism). Can't the same thing be achieved with tables and >queries in a RDBMS. Is the chaining through conditional knowledge >possible in ES is missing in RDBMS? > >I always have trouble in explaining the differences between the >two when someone asks. I have heard people saying relational >algebra cannot do recursion (I don't know what this means). >I would appreciate any clarification on this from the netters. > >Thanks. > Relational algebra cannot do recursion in the sense that it cannot compute the transitive closure of a relation; i.e., there is no relational algebra query of finite length that expresses the closure of a relation. I know almost nothing about expert systems; but I would presume that they usually provide the facilities similar to Prolog in which you can express recursive queries, which is all that you need for expressing the closure of a relation. Actually you don't need the power of Prolog to compute the closure, but only a strict subset of it, namely, datalog. chandra. chandra@sparc45.tamu.edu chandra@photon.tamu.edu
stefan@hpbbi4.HP.COM (#Stefan Bachert) (07/19/90)
Easy talking the difference between ExpertSystems and relational databases is: -RDB handles uniform and well structured data -ES can handle ill-structured data -ES should be able to explain the reason or better the way to come to particular answers -RDB did exactly what you ask for (Be sure that you ask for what you want to ask) You are right you can use RDB for some knowledge based system. (If the data is well structured). I did that for a component information database to classify component according to a set of rules. Stefan