SQL and a logic-based firstname.lastname@example.org
Date: Thu, 19 Dec 91 13:56:02 EST
Cc: email@example.com, firstname.lastname@example.org, email@example.com,
firstname.lastname@example.org, email@example.com, firstname.lastname@example.org,
email@example.com, firstname.lastname@example.org, email@example.com,
firstname.lastname@example.org, email@example.com, firstname.lastname@example.org,
email@example.com, firstname.lastname@example.org, email@example.com
Subject: SQL and a logic-based standard
I fully agree that we must support SQL in one way or another.
As Michael Stonebreaker has remarked, SQL is Intergalactic Dataspeak,
and we cannot ignore it. However, only the original SQL language has
received any serious level of support. It is documented in 99 pages
of English prose, has many implementations, but only two actually
conform to the "standard".
SQL2, however, consists of 872 pages of inconsistent and barely
intelligible English prose that has never been implemented by anyone.
Chris Date, who has probably done more than anyone else to popularize
relational DB, considers SQL2 to be a disaster. Its only saving grace
is that no one has ever implemented it, and no one is ever likely to
implement it within the Twentieth Century.
The main objection to the original SQL is not with what it lacks, but
with all the implementation-dependent kludges that it contains. SQL2
is far, far worse than SQL in being incomprehensible, inconsistent,
and dependent on a non-existent implementation.
My recommended strategy:
1. Acknowledge that we must support the original SQL as one of the
languages for accessing a database.
2. Promise to support SQL2 as soon as there is any implementation of
it that conforms to the ISO standard. (This is easy, because we
will have at least 10 years before the standard is ever implemented.)
3. Emphasize to ISO, ANSI, and everybody else that relational databases
and SQL are based on logic. By going to a logic-based approach, we
will make it far easier to support SQL, EXPRESS, and other standards.
4. Point out that by going back to the fundamentals of logic, we will
be supporting a de facto international standard that has been
in use since 1879 with many, many implementations.
Some comments on your comments:
> You have written in many of your messages about the need for a standard
> logic-based language that will be adequate to the needs of the knowledge
> sharing community as well as those of the STEP community and the traditional
> database community. With this objective I fully agree, and so do Mark Jones
> and others here at Boeing, as well as my colleagues in the PDES Dictionary/
> Methodology committee.
> You have also written that such a language must be developed as an
> alternative to SQL. With this we are not sure. Suppose that we could
> take advantage of the current willingness of the SQL committee to consider
> object-oriented extensions, and get them also to consider the incorporation
> of extensions that would make SQL (or some dialect thereof) adequate to
> the needs of the first-order predicate calculus, extended to encompass
> the kinds of extensions that have been explored by the CG, KIF and PDES
We are not proposing logic as an ALTERNATIVE to SQL, but as a FOUNDATION
for SQL, EXPRESS, and everything else. The main objection to SQL is
not with what it lacks, but with what it contains. We are primarily
interested in SUBTRACTING the implementation dependencies (which
constitute 90% of the SQL definition and 99% of SQL2).
> 1. It is easier to get international approval for revisions to an
> existing standard than to a brand new standard. Moreover, our reading
> of the ISO SC21 community is that such a suggestion would be well
First-order logic has been a de facto standard for 112 years. That is
what we are proposing extensions to. Although the database group in
ANSI is very committed to SQL, the communications people (X3H2) have
not the slightest interest in accepting it as a basis for the conceptual
schema. On the contrary, Maurice Smith is very supportive of a logic
based approach -- as is Robert Meersman and many others who will be at
Renesse in March.
> 2. It is often easier to get consensus within particular communities to
> adopt an external standard (assuming it can be shown to be technically
> adequate) than to adopt the work of a subgroup. I worry that internecine
> squabbling among the knowledge sharing community will prevent the kind
> of consensus we need. I also worry that that community is applying
> criteria to the knowledge exchange language that are appropriate only
> for the languages that drive particular tools. For example, performance
> is not an issue for an exchange language. Nor is its "intuitive"
> support for expression; that's an issue for the user interface.
I agree with this point, and I recommend that we adopt the following
statement: "Symbolic logic is the foundation for all representations
for information interchange. We propose a logic-based standard that
will support SQL, EXPRESS, and other representations and that will
provide a clean, solid foundation for future extensions."
> 3. The migration path for the vast majority of industrial knowledge to
> an SQL-based standard is much simpler than to a LISP-based standard.
> Moreover, far more industrial knowledge could be brought into the
> ballpark with such a standard.
First of all, there is no migration path to SQL2 because it is
unimplemented and unimplementable. But I agree that we should pay
enough lip service to SQL2 to give the SQL2 proponents enough rope
to hang themselves. After they have been securely hanged, we can
stop worrying about them. (Note: "hang" has different past tenses
for its different meanings.)
Nobody is talking about a LISP-based standard. Some AI groups use
LISP notation. But that is only for the machine interface. We will
support graphic notations and others as long as they conform to the
logic-based semantics. We could even offer a very clean, very simple
subset of SQL notation with the implementation dependencies removed.
But I agree with Chris Date that it would be a disaster to accept
SQL2 or even the old SQL as a standard for information interchange.
> I'm not saying that the task would be easy, nor that we will be able
> to negotiate in one fell swoop all the enhancements that we would agree
> are needed. But I do believe that this approach is more likely to bring
> more players into consensus than any other, and that it should be explored
> in detail before being rejected.
We should separate the political issues from the technical ones.
Technically, SQL2 would be a disaster. Technically, we are all very
close to a consensus on a logic-based approach. Politically, we have to
assure people that we will not abandon their grungy old implementations
and that we will provide a growth path to a shining new future.