Abstract syntax

sowa@ranch.poly.edu (John F. Sowa)
Date: Wed, 24 Aug 94 14:43:14 -0400
From: sowa@ranch.poly.edu (John F. Sowa)
Message-id: <9408241843.AA10770@ranch.poly.edu>
To: ansi@t.uoregon.edu
Subject: Abstract syntax
Cc: sowa@ranch.poly.edu
Sender: owner-srkb@cs.umbc.edu
Precedence: bulk
ANSI and ISO standards are normally defined in an abstract syntax,
where the terminal symbols are independent of any particular encoding,
including ASCII.  LaTeX would never be used as a basis for defining a
standard, since LaTeX itself is not a standard.

In any case, the requirements for a conceptual schema language
include the ability to support a large number of currently existing
languages, such as SQL, EXPRESS, and many others with very different
external syntax and formatting requirements.  Therefore, the desire
to support conventional mathematical notation should be considered
as one of the formatting requirements -- we must be able to support
a good external syntax for mathematical applications, but the syntax
is a secondary issue.

One of the primary reasons for proposing both KIF and CGs in parallel
is to demonstrate the independence of our logical foundations from
any particular syntax.  There is a great deal of resistance from the
practing programmers towards anything that looks "mathematical".

Our strategy is to demonstrate a linear language KIF, which is easily
parsable, and a graphic language CGs, which are more palatable to many
users, but which are both able to support exactly the same semantics.
We are encouraging anyone else who has a pet language of their own,
such as SQL, EXPRESS, or whatever, to develop a syntax in their
favorite style which could support the same semantics.

The dependence of KIF on the Common LISP parser was a shortcut
that was taken for historical reasons, and it will not be part
of the proposed standard.  The grammar of KIF will be essentially
the same as in the current  version, but it will be defined on
its own without reference to LISP.

Re sorted or typed logic:  That is an issue that has been discussed
many times in the past couple of years.  Genesereth and Fikes have
promised to support types syntactically, but semantically, they
will be defined as synonyms for monadic predicates.  Conceptual graphs
have always been a typed logic, but we have agreed to adopt the KIF
semantics, which would define the types in terms of monadic predicates.

Re contexts and modules:  CGs have a context structure, which I have
been defining in terms of quoted expressions in KIF.  Modules go beyond
contexts in what they include.  I agree that they are important, and
we should make sure that the context mechanism is capable of supporting
modules.  Whether any particular module structure is part of the
initial proposal is an open question.  It may be better to propose
a mechanism that can be used to define modules and then explore
various possible definitions.

John Sowa