SCL

SCL is a simplified version of the Common Logic project @@, which in turn is a proposal to define a 'standard' uniform notation for first-order logic suitable for use as a common notation for a variety of ontology efforts, to facilitate information exchange and interoperability. CL began as an outgrowth of the now somewhat venerable KIF@@ effort, differing from KIF in several respects: a simplified syntax; a more sophisticated semantics; and, by differentiating abstract syntax from concrete syntaxes, providing for a wider range of interoperabilty by linking a variety of existing surface syntactic standards, in particular Concept Graphs@@. SCL attempts to retain these advantages of CL while being somewhat less ambitious, and is consciously intended to also provide a logical notation oriented towards the needs of the emerging Semantic Web@@ effort. In many ways, SCL is nearer in scope to the original KIF.

The 'core' of SCL is presented as an abstract syntax of a rather general logical language with an attached model theory. This core provides the basis for several other aspects of the proposal.

Special cases of the language, which roughly correspond to several known use cases of familiar logical notations, are defined by restricting the syntax in various ways. Syntactically defined sublanguages are referred to as dialects of SCL.

Concrete syntaxes are defined by mapping the abstract syntax into some surface form. These include an S-expression syntax similar to the original KIF@@ notation, an XML-based@@ syntax, a 'classical' infix notation in terms of character strings, a CG@@ version, and a mapping into RDF triples @@. It is anticipated that other concrete syntaxes for SCL and sublanguages will be defined in the future. Concrete surface syntaxes are referred to as syntactic forms.

Extensions of SCL may be defined in many ways, of course, but some particular ways of extending the language by adding new domains with associated lexical forms are defined. This is intended to provide a way of linking SCL with a variety of existing and future efforts on standardizing datatypes@@ of various kinds. Such extensions are referred to as domain extensions.

These are orthogonal, in that any of the dialects can be combined with any domain extension, and the result can be expressed in any of the syntactic forms. However, certain combinations are particularly relevant to some communities in that they closely correspond to existing formalisms and existing 'styles' of formalization, and have been given appropriate names in order to provide some familiar anchoring points for stating conformance conditions.

All the dialects and syntactic forms inherit the model theory of the core language in a uniform way, so that translators between notations can use the abstract syntax as a guide and also as an interlingua for comparing meanings across the various surface notations.

Core SCL

Throughout this section, "SCL" is used to refer to the core language.

Semantic background and motivation.

SCL is a first-order language with a relatively unrestricted syntax which makes no distinction between relation and individual names, and allows quantification over relations. Since this combination is somewhat unusual, we begin with some motivation and analysis.

It is conventional to define a first-order logic so that the syntax distinguishes between relation symbols and individual symbols, and allows relation symbols to be applied only to individual symbols. This 'layered syntax' is often asserted to reflect the fact that a first-order theory cannot refer to relations; but that is an error. The semantics of first-order logic impose no constraint on the nature of the individuals in an interpretation, so there is no prohibition against a first-order language referring to relations, even to the relations which are denoted by the relation symbols of that language. This can be seen by the widespread convention whereby users of a conventional first-order syntax use a dummy relation to imitate what is often referred to as "higher-order" syntax by bringing relations into the domain of discourse. Using this convention, one represents an atomic assertion such as R(a,b) by writing instead Holds(R,a,b) where the relation symbol has been translated into a constant symbol. The use of a 'holds predicate' in this way has several problems, however, the chief one being that it requires users to distinguish syntactically between a relation named by a relation symbol and the same relation named by a constant symbol. Some implementors have allowed languages in which the same symbol may be used in both senses, but in order to map this into a conventional first-order syntax, and to interpret it in a conventional model theory based on Zermelo-Fraenkel set theory, it is necessary to regard this as a form of 'punning', ie to treat the two uses of the same symbol as having distinct denotations, in order to avoid an interpretation in which a relation is applied to itself, a condition which would violate the ZF axiom of foundation.

The axiom of foundation, which requires sets to have a finitely deep layered hierarchical structure of subsets, was imposed within axiomatic set theory in part as a response to the Russell paradox. It reflected a constructivist view of legitimacy in mathematical structures which was suspicious of any forms of construction which could not be rooted in finitely describable However, recent work @@ in set theories, inspired in part by computational considerations, has shown that, contrary to the previously accepted view in philosophy of mathematics, the axiom of foundation is not required in order to have a coherent theory of sets, and that a wider range of set theories which include the possibility of an 'anti-foundation' axiom are all relatively consistent with ZF set theory. Applied to the basic set-theoretic framework of model theory, this opens up new possibilities for overcoming the expressive awkwardness which has long been a regrettable side-effect of the 'layered' syntax of conventional first-order logic. SCL syntax takes advantage of this flexibility by allowing complete flexibility in using a symbol to denote a relation which is both an entity in the domain of quantification and a relation defined over that domain, thereby obviating the need for the use of tricks like the Holds predicate. Although this flexibility is innovative, the resulting language is still first-order in the conventional sense, and as we will show, conventional inference systems can be adapted to SCL with minimal changes. The conventional layered first-order syntax is a dialect of SCL.

It is possible to give SCL a conventional model theory which is indistinguishable from the usual textbook model theory, provided that one understands the set-theoretic constructions as described using a non-well-founded set theory. Since this is likely to be a rather radical move for many readers, we have chosen instead to provide a slightly modified model theory which is based on conventional ZF set theory. By imposing an intensional interpretation on relations, this model theory has other expressive advantages in any case. In later sections we discuss the relationships between these two model theories in more detail.

Variadicity and row variables

The other unusual feature of SCL is its inclusion of a special category of variables called row variables. This is an inheritance from KIF, but the treatment has been made more systematic in SCL. The reason for including row variables is to allow users to take advantage of the possibility in SCL of having variadic relations, ie relations which can be true of different numbers of arguments. It is usual for logical languages to require relations to have a fixed number of arguments, often called the arity of the relation; but SCL does not require this, and treats a relation in general as any set of n-tuples. This provides a useful degree of expressive power for many applications, and avoids the awkward use of explicit argument lists and similar constructions (eg the use of explicit lists in translating between OWL and RDF, c.f. @@). It does however pose something of a challenge for the language, which can be illustrated by an assertion that one relation R entails another, Q. If the relations were binary, this could be expressed by saying that for any x and y, if R holds between x and y then Q holds between them. If they were three-argument relations, a similar

 

One can give a succinct characterization of SCL as a logic of relations. It assumes that there is a universe of things over which the quantifiers range, that relations - sets of n-tuples - are defined over the universe, and that the basic atomic assertion is that a relation holds between some things in the universe. The design of the language follows from taking this description exactly at face value, and trying to impose no other constraints or restrictions on what can be said in the language.

Core SCL Syntax

A vocabulary is a set of names, which are distinct syntactic entities. SCL also uses primitive symbols called variables and row-variables. The abstract syntax assumes that names, variables and row variables are disjoint sets, although particular syntactic forms may allow them to be lexically identical.

We state the abstract syntax using an algebraic variation of EBNF, in which a particular syntactic construction is indicated by listing the immediate components of the expression separated by commas. The ordering of these items serves only to distinguish the components and should not be taken as indicating any lexical order in a particular surface syntax. The only ordering contruction used in the syntax is the notion of a row, which is a finite sequence of terms. Alternatives are indicated by | , and brackets '(', ')' are used for grouping. * indicates an arbitrary number, + an arbitrary nonzero number, as usual.

row ::= term*

term ::= name | variable | term, (row | row, row-variable )

atom ::= name | term, (row | row, row-variable )

sentence ::= atom | boolean-sentence | quantified-sentence

boolean-sentence ::= negation | conjunction | disjunction | conditional | biconditional

negation ::= sentence

conjunction ::= sentence*

disjunction ::= sentence*

conditional ::= sentence, sentence

biconditional ::= sentence, sentence

quantified-sentence ::= universal-quantified-sentence | existential-quantified-sentence

universal-quantified-sentence ::= (variable | variable, sentence)+ , sentence

existential-quantified-sentence ::= (variable | variable, sentence)+ , sentence

 

This syntax is fairly conventional. It allows restrictions on quantifiers and a full range of boolean forms as a convenience. The unusual features include the absence of any syntactic distinction between individual and relational names, and the corresponding lack of any prohibition against general terms appearing in relation position of atomic sentences, and allowing row variables in atoms and terms.

SCL also allows wrappers, which are semantically empty forms which allow comments or other external text to be attached to SCL expressions. Technically, any wrapper has two components, one of which is a unicode character string called the comment and the other may be an SCL expression. A wrapper is treated logically by SCL as being identical in meaning to the enclosed SCL expression, and is considered to have the same syntactic type as that expression, so that a wrapper of a name is a name, of a term is a term, and so on. Particular SCL dialects may use different ways of indicating wrappers and may also restrict the range of unicode characters in the comment, or may require comments to conform to some other grammatical conventions. Wrappers with no enclosed SCL expression are simply called comments. Comments are are considered to be syntactically legal SCL expressions but cannot appear as subexpressions of any other SCL syntax, and have no model-theoretic content.

To illustrate the use of an abstract syntax, we sketch two very different concrete syntaxes for this language which are both realizations of the same abstract syntax. The first uses a conventional linear notation in which atoms and terms are indicated by writing the relational or function name followed by the argument row enclosed in brackets, and the type of a boolean sentence is indicated by inserting a suitable connective name between the subcomponents. The other syntax, inspired by C.S.Peirce's 18@@ notation, is diagrammatic. Here, an atom is indicated by a labelled graph consisting of the relation name linked to the argument nodes by arcs labelled with integers which show the ordering of the argument row; conjunctions are formed by graph union, negations by an enclosing loop, and other boolean combinations are mapped to their conjunctive-negation equivalents; and quantifiers are indicated by placing the variable nodes in suitable places in the nested negation loops. To emphasise, these are in some important sense the same expression, in spite of their different forms; an observation whnich can be characaterized by saying that they have the same abstract syntactic description.

@@ insert diagram using example.

Model theory