Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Usenet -> comp.databases.theory -> Re: Storing data and code in a Db with LISP-like interface

Re: Storing data and code in a Db with LISP-like interface

From: Nick Malik [Microsoft] <>
Date: Thu, 13 Apr 2006 16:48:22 -0700
Message-ID: <>

"Neo" <> wrote in message
>> Aren't you basically reinventing Prolog or one of its variants?
> Possibly and probably.
>> The notion of code in a database where the code modifies
>> itself as part of the data management is fundamental to Prolog.
>> How is this different?
> At the core, the difference is the data model used to represent things.
> LISP uses linked listed which can be nested. ProLog also seems to have
> lists, but I am unsure of its fundamental data methodology. My
> LISP-like interface (still in early dev) is built on top of a data
> model that more similar to RM in terms of functionality.

There is nothing novel about this. Prolog also uses linked lists which can be nested. In addition, you can place structures in the list, and the structures can contain atoms and lists and "lists of lists" and "lists of lists and atoms," etc. There is no 'program.' The system is an ordered database of assertions. You start the logic engine by asking a question. The engine attempts to answer the question using the information in the database, matching as it goes, using a depth-first tree search. The underlying math is predicate calculus and horn clauses. Primitives in the language allow you to assert data into the database, thus modifying the 'program'. This allows the system to learn.

Much of the work on semantic machine learning was done in Prolog in the 1980s. The problem that Prolog faced was that it was fairly easy, with early engines, to create perfectly legal programs that failed to evaluate because the logic engine wasn't sophisticated enough to prune the tree efficiently. This was solved by researchers at SUNY in New York with the XSB prolog system.

Versions of Prolog exist now for a wide array of platforms, including a version of Prolog that compiles to the .Net Framework called P#.

This allows you to associate P# directly with Oracle and SQL Server.

--- Nick Malik [Microsoft]
    MCSD, CFPS, Certified Scrummaster

Disclaimer: Opinions expressed in this forum are my own, and not 
representative of my employer.
   I do not answer questions on behalf of my employer.  I'm just a 
programmer helping programmers.
Received on Thu Apr 13 2006 - 18:48:22 CDT

Original text of this message