[SCL] SCL spec

pat hayes phayes at ai.uwf.edu
Tue May 13 16:56:58 CDT 2003


>I've put an SCL spec on the web: http://cl.tamu.edu/docs/scl.html .
>It is not highly polished, but it will do as a start to get ideas fixed.
>
>Features (all negotiable):
>
>* No distinction between predicates and individual constants.

For the record, I would prefer that we do make such a distinction in 
the abstract syntax, with appropriate (and conventional) assignments 
to the various parts of the term and atom syntax, and conventional 
semantic requirements expressed using extension mappings (ie function 
symbols have functional extensions, relation symbols have relational 
extensions);  but not require that these categories are disjoint in 
any concrete syntax. This keeps the exposition maximally 
conventional-seeming.

The MT should assign a functional extension (set of pairs of tuples 
and things) to every function symbol and a relational extension (set 
of tuples, a different mapping!) to each relation symbol.   Then 
there is a separate question, of how  to relate the extensions of a 
symbol with two extensions (ie which is both a relation and a 
function). Different sublanguages can approach this differently, eg a 
conventional Principa syntax could allow this kind of overloading but 
give it no semantic significance whatever. A more KIFish version 
could allow it and require that the relational extension of a symbol 
with a functional extension be related in one of the obvious ways. 
One of these (<<...> a> = <a ...>) can be axiomatized:
(?x (?x @y) @y)
The other obvious one breaks the @ syntax, ho hum. But whatever, we 
at least keep the core free of arbitrary conventions about which 
people might be inclined to fight.

>* Hence, no syntactic notion of arity (though arity could be enforced
>   axiomatically for any given constant).

Some thoughts on arity arising from todays telecon.

There are two different notions of what it means to say that a 
predicate symbol R  has an arity. On one view, it means that any 
atomic expression using R which has a different number of arguments 
is ill-formed, a syntactic error; on the other view, it means that 
any such expression is logically false.  Call these respectively 
syntactic and semantic arities.

It is relatively easy to introduce semantic arity into SCL: it is 
simply a predicate on predicates. If we have numerals in the language 
than it is trivial to write such a predicate as a relation between 
predicates and numbers, and define it by using a recursively defined 
function which counts the number of arguments:

LengthOfTuple(0) and (LengthOfTuple(n, at x) implies 
LengthOfTuple(+1(n), ?y, @x) )

Arity(?x, n) iff ( ?x(@y) implies LengthOfTuple(n, @y) )

(This gives the universally false predicate every possible arity, so 
might need to be tweaked slightly)

If we want to have syntactic arity, however, then we need something 
which we do not have at present, which is some principled way to 
state a syntactic constraint on an SCL language. Syntactic 
constraints have to be superficial  - they cannot require the 
exercise of semantic deductions in order to reveal their truth, and 
must be checkable by a parser. So the question arises, what 
computational abilities can be reasonably assumed of a parser which 
is expected to process these constraints? For example, the very idea 
of having arity as a constraint seems to suppose that a parser can be 
expected to be able to count the number of items of a certain 
syntactic category occurring in a span of a document defined by some 
other category. This is not a trivial ability: a parser based 
entirely on matching regular expressions would be unable to check it, 
for example. If we were to contemplate more elaborate syntactic 
constraints - say, having a sorted syntax with a sort hierarchy 
defined by declarations - then the burden on a parser could get 
considerably greater.

Let me propose that as a fallback position we simply rely in the core 
on semantic arity, and meanwhile discuss whether we wish to try to 
define a systematic notion of a syntactic constraint on an SCL 
language, and if so how it can be described.


>* Semantically there is a distinction between individuals and relations,

Well, some individuals are relations, right? Or do you mean 
'individual' to exclude relations by definition?

>   but nothing prevents the class of relations from overlapping or being
>   included in the class of individuals.

Apparently not.

>* Relations do not come with fixed arities (though of course nothing
>   prevents introducing such relations).
>* There is a separate class of function symbols.
>* Function symbols are variably polyadic.

As far as adicity goes I don't see that we need to treat functions 
differently from relations (? Am I missing something here?)

>* Sequence variables can only occur in tail position in function terms
>   and atomic formulas.

Right, I guess. Im still a bit worried about that tail position 
thing, but I will worry in private :-).

>* Sequence variables never explicitly quantified; semantically, they are
>   implicitly universally quantified by quantifiers with widest possible
>   scope.

Right.

>
>Comments/criticism/discussion/correction welcome.
>
>-chris
>
>_______________________________________________
>SCL mailing list
>SCL at philebus.tamu.edu
>http://philebus.tamu.edu/mailman/listinfo/scl


-- 
---------------------------------------------------------------------
IHMC					(850)434 8903 or (650)494 3973   home
40 South Alcaniz St.			(850)202 4416   office
Pensacola              			(850)202 4440   fax
FL 32501           				(850)291 0667    cell
phayes at ai.uwf.edu	          http://www.coginst.uwf.edu/~phayes
s.pam at ai.uwf.edu   for spam




More information about the Scl mailing list