[SCL] Proposed additions to the SCL draft standard

pat hayes phayes at ai.uwf.edu
Mon May 26 16:30:00 CDT 2003


>Hi,
>
>Before additional work on the XML concrete syntax I thought
>that it would be more important to put some new features
>into SCL proper. These "new" features have been discussed a lot
>on the SCL list, but they are not present in Chris's
>minimalistic SCL draft.
>
>If we do not have these features in SCL proper (the
>abstract syntax and semantics), it would not be suitable
>to put them into the XML concrete syntax: the latter
>has to reflect the SCL abstract syntax, not extend it.
>
>I took Chris Menzel's SCL draft from
>http://cl.tamu.edu/docs/scl-latest.html at 24 May
>and added a number of PROPOSED modifications directly
>to it.
>
>Attached please find the modified SCL draft, as
>a zip file (sent a message with unzipped html before,
>but this was too big for the list program).
>
>The additions introduced are proposals. I have colored
>the background of all the additions green, so that it
>would be easier to follow (tested the Amaya editor
>while writing the additions).
>
>Please have a look at the additions and decide whether
>some of them or all of them are in principle worth
>keeping. Once the list of OK additions is decided,
>further modifications to the presentation would
>be suitable.

I am rather unhappy with these multiple 'levels' being in the core. 
They make the presentation much too complex. Let us decide what the 
language is, define it, and then restrict it in various ways to give 
the levels. They will be sublanguages of SCL, in fact, which was 
always the preferred design.  But this is purely a matter of 
presentation; the substantive aspects of your changes I largely agree 
with.

I would prefer to allow arbitrary expressions (including legal SCL) 
as annotations, rather than requiring them to be strings. Strings are 
one option, but I would suggest that we handle this option by 
allowing strings as a syntactic form in the entire language, along 
with numerals, with a distinctive 'recognizing' predicate in a 
special family scl:string, scl:number, so that
|=  scl:string("any character string").


>Found a few parts of the SCL draft which contained
>errors or were in obvious need for further details.
>More about this after the list of proposed additions.
>
>The following is a list of the additions in the
>SCL draft html file along with motivations:
>
>
>- SCL standard is split into four levels or layers.
>
>   Motivation: it is easier to implement a smaller standard
>   than a larger standard. Fancier parts of SCL might
>   be hard to implement/understand for users. It would
>   be good to indicate that even partial implementations
>   may correspond to an identified subset of a standard,
>   if done properly. Othwerwise we stand the serious risk of
>   partial implementations claiming to be SCL, while
>   nobody really knows which parts are implemented and which
>   not (or we stand the risk that very few people take up courage
>   to implement and use SCL at all).

Agreed.

>
>- Annotations (might be called also comments or documentation
>   strings). Free text (strings) may be attached to terms
>   and formulas.
>
>   Motivations:
>    - Obvious need for documentation. Most probably will
>      be implemented in concrete syntaxes. Hence it would be
>      good to define in the abstract syntax, so that different
>      concrete syntaxes would be intertranslatable.
>    - Possibility to encode additional (nonlogical) information
>      for specialised systems in annotation strings.
>      For example, in the automated
>      theorem proving (ATP) context it is really crucial to identify
>      that some parts of the formula stem from general axioms
>      while some parts stem from a specification of a system
>      explored while yet others stem from a query asked.
>      This is absolutely unavoidable for practical ATP needs.
>      And we DO NOT want to go into serius metalogic in the SCL
>      context in order to attack this everyday necessity.
>
>- Integers and bounded existential quantifications (a possibility
>   to say that there exist exactly N objects with some property P).
>   By 'integers' I mean the use of numerals with a predefined
>   property that all lexically different numerals map to
>   different elements of the domain. Ie, not(id(4,7)) holds,
>   no need for a user to define this.
>
>   I have NOT defined the semantics of integer-bounded
>   existential quantifier in the text, since the predicate-bounded
>   existential quantifier was not defined either (see later in
>   the 'omissions' section).

Hmm, I think we need to do both of these. We can show that they are 
eliminable, but that is a separate issue.

There is a general issue here, in fact. There are several cases where 
some sublanguage of SCL is equi-expressive with the whole language, 
in that there is a systematic translation of SCL into a theory of the 
sublanguage which preserves entailment; examples include the 
sublanguages without restricted quantifiers, numerical quantifiers, 
and the conventional FOL syntax (using the holds/app translation). 
There are also others, of course, which eliminate connectives or one 
of the quantifiers in the usual ways. Maybe it would be discussing 
these all together and giving a general account of this kind of 
'expressing in a sublanguage' idea. It occurs to me that taking a 
very simple SCL expression and showing what it looks like in, say, 
the holds/app translation using only and, not and exists, might be an 
instructive exercise for some readers.

>
>   Motivations:
>     - OWL Full contains bounded existential quantification.
>       While this can be encoded in plain FOL (or SCL), it is
>       pretty cumbersome. Would be more convenient to use integers
>       in the language.
>       Once we do allow to use bounded existential quantification,
>       it would be a bit weird not to allow integers in general.

Agreed. Integers (well, numerals) were always on the table.

>     - Integers and integer arithmetic is, not surprisingly, very
>       important in many practical ATP fields, like verification.
>       Essentially, you have to build in integers and arithmetic
>       for doing practical verification of hardware (electronics,
>       railroads, etc). You have to build in integers for creating
>       e-commerce system rules, etc (think prices, quantities of goods,
>       etc).
>     - Integers are not just syntactic sugar. It is not enough to
>       decide that, say, let us use 0 to denote 0, s(0) to denote
>       1, s(s(0)) to denote 2, etc.
>       The crucial issue is that you need to define that 1 is not equal
>       to 2, 3 is not equal to 7, etc for all pairs of integers.

I think you need the ordering and we also need a built-in connection 
with the length of a sequence. This actually gives the language 
considerable expressive power, since it effectively builds-in 
numerical induction.

>       As we know, this CANNOT BE DONE IN FOL.

Its not clear if it can be done in SCL with seqvars, however.

>This can be done
>       only using induction. However, it is easy to PREDEFINE that
>       different numerals map to different integers in the domain,
>       essentially building in the infinite list of disequalities
>       (similar to the equality predicate, which also cannot be defined
>        in pure FOL).

Right.

>     - Once we have integers in the language, we could in principle
>       (if we want to) encode strings and string equalities as
>       integers (for example, by using ascii or utf) along with
>       the ascii or utf string type constuctor taking an integer as
>       an argument. Strictly speaking we would not need to extend
>       the core language to encode strings (or any other datatypes,
>       for that matter: integers suffice, at least theoretically).

Yes, but the same convenience arguments apply. After all, we could 
axiomatize arithmetic if we really wanted to. Strings are extremely 
useful in a number of application areas.

>Small errors and omissions found:
>
>- In the early part of text the name of the identity function
>   used was Ind, not Id as later.
>- The semantics of quantifiers bounded by predicates was IMHO
>   not defined. This needs to be done. Once it is defined, the
>   definition can be extended to the existential quantifier bound by an
>   integer (not done in the proposed additions).
>- XML DTD was IMHO not complete: again, the possibility for
>   bounded quantifiers was not there in the DTD. Hence I have not
>   put in the integer-bounded quantifier into the DTD either.
>
>
>Some serious extension possibilities worth considering (not introduced
>as proposals in the attached text):
>
>- Identity (equality) on the object level.
>
>   Chris mentioned that once we encode predicates using the App/Pred
>   functions, the formula (forall x. P(x) & -Q(x)) & (forall x,y. x=y) is
>   NOT valid, while it IS valid in the standard, non-app/pred semantics
>   of FOL.
>
>   This means that it is very hard to use SCL for encoding
>   standard logical problems, including a large part of the
>   thousands of problems in TPTP, used extensively in the
>   ATP community. People cannot use Id in these contexts:
>   they'd have to define their own equality not present
>   in SCL and not axiomatisable in pure SCL alone.

All we need to do is to restrict the quantifiers to the subuniverse 
of non-relations, by adding scl:relation(?x) to every clause for each 
variable in the clause. The same equality predicate works.

>
>   This might be survivable, but is really
>   unpleasant, since it unnecessarily limits
>   or confuses our audience.
>
>   We could use the App/Pred-based SCL for standard FOL problems
>   IF:
>    - we explicitly identify a "simple" subclass of SCL where any first
>      arguments of App and Pred are constants. This subclass
>      can be trivially mapped to non-App/Pred, classical
>      semantics (just drop the App and Pred and lift the first
>      argument to the function/predicate symbol position: validity
>      of formulas is not changed by this transformation).

Yes, we intend to do that: that is one of the primary SCL 
sublanguages and it has a 'special' model theory in which the 
extension mappings are all identity mappings.

>
>     The "simple" subclass can be extended, of course, allowing
>     cases where a variable is used in the first argument: the
>     mapping will be harder, though.
>
>   - We do provide an equality predicate on the individual
>     constants only: ie, not usable on predicate/function name
>     constants.

In this sublanguage, the restriction to non-relations can be limited 
to the identity. This can be viewed as a different identity, but I 
think it is actually clearer and simpler to keep this understood as a 
quantifier restriction.

>
>   Observe that the current Id predicate is NOT such an
>   individual-constants only predicate.
>
>   Also, the current
>   SCL does explicitly differentiate between object constants
>   and function/predicate constants, simplifying the introduction
>   of the second equality predicate.

Yes, that was the primary purpose of that change.

>
>   Hence I suggest to:
>   - write a chapter identifying the "simple" subclass of SCL
>     and properties of its semantics,
>    - introduce the second equality predicate, different from
>      Id, defined only on the object constants.
>
>
>- Including other text.
>
>   Both in the semantic web context and "ordinary" ATP it is
>   important to import other files or parts of other files into
>   the formula.
>
>   If we want to put this into SCL (and why shouldn't we?) we
>   do need an "include" operation. Include should IMHO take an
>   URI as an argument and return the text at the URI.

Hmm..text?? What if the text found there is, say, OWL-DL rendered in 
RDF written in XML. It would be a lot more use to use for the URL to 
dereference to a standard SCL translation of the 'logical form' of 
this, than to the raw text.

Suggestion: (ambitious?) : have a 'web SCL ontology' which has 
special built-in vocabulary which maps between forms of ontologies, 
eg at(..) is a function from a URL to the text found there, as you 
suggest (though see later), Is-RDF(..) is true of a string which is a 
legal XML encoding of RDF, XML-to-RDF is a function from such strings 
to RDF  graphs (ie a parsing function), similarly RDF-to-OWL parses 
an RDF graph into OWL, and so on. Then we can write things like
Is-RDF(at(?x)) and Is-OWL(RDF-to-OWL(XML-to-RDF(at(?x)))
implies
trans(?x) = OWL-to-SCL(RDF-to-OWL(to-RDF(at(?x))))

and subsequently use trans to 'import' an ontology.

>In case
>   namespaces or any external links are used in the text referred
>   by our URI, these namespaces and/or links should be resolved
>   before including the text (a simple recursive process).
>
>   If we do NOT put "include" into SCL, then inevitably people using
>   SCL would have to construct their own inclusion constructions,
>   different for different concrete syntaxes and users.

Yes, but on the other hand, take a look at the OWL mess to see how 
complicated this gets, with 'deprecated symbols' and so on.

>
>   Observe that the XML concrete syntax would not automatically
>   introduce the linking possibility. Pure XML provides us with
>   namespaces, but does not provide including text. We could
>   try to use additional XML-based languages like XLINK, but
>   these are highly complex. IMHO it would be better to put
>   text inclusion into SCL directly, as an additional layer.

I basically agree. The key point is that we need to provide some 
syntactic way of distinguishing a URIref used simply as a logical 
constant, and a URI (maybe also a URI ref) used as a Web identifier 
of a page of hypertext. The use of 'at' above kind of glosses over 
this by making that function use the latter sense by magic, but it 
would be better to have a more principled way to make the distinction.

I think we are unlikely to have time to get this finally right; it 
isn't even clear what it means to quote hypertext, in fact. The best 
we will be able to do is to provide a useful 'hook' for a more 
ambitious later project.  BUt that would be well worth trying to do.

Pat


-- 
---------------------------------------------------------------------
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