[comp.lang.prolog] Need help in the differences between RDBMS and Expert Systems

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