[SCL] A few questions about the new SCL version
Christopher Menzel
cmenzel at tamu.edu
Mon May 26 19:23:32 CDT 2003
On Monday, May 26, 2003, at 03:16 AM, Tanel Tammet wrote:
> ...
> Great! Looked through the new version, and it seems to be significantly
> clearer and - for several parts - easier to understand. The new feature
> that the traditional FOL is an OK SCL language - semantics preserved -
> is extremely nice, IMHO.
I agree!
> However, in the light of the goals of SCL, the previous versions of SCL
> and all the discussions, I am unsure whether I understand some
> important
> parts of
> the paper correctly though. So I'll simply ask for clarifications for
> two questions in the rest of this email, without trying to say
> what would be IMHO good or bad.
>
> The first question: variables at the predicate position allowed
> or not?
In full CL, yes; not in SCL.
> You write in the paper:
>
> "For this we simply require that there be a one-to-one function
> Pred on (PredCon × Trm*) ∪ (Con × Trm* × SeqVar); that is,
> given a constant, n terms, and ― optionally ― a sequence variable,
> Pred returns a unique formula."
>
> Does this mean that a formula like
> forall x,y. x(y)
> where a quantified variable x is used in the predicate position
> is not legal in SCL, or have I misunderstood the paper?
You have not misunderstood.
> It seems to me that unless one can use a quantified variable in the
> predicate position, there is no point in allowing I and R
> domains to overlap: cannot use the statements like "Commutative(P)"
> for anything useful unless we can axiomatise
> forall x,y,z. (Commutative(z) => (z(x,y) <=> z(y,x))).
Well, I disagree that there is no reason to allow overlap. It is very
useful to be able to ascribe properties to particular relations in
one's ontology. That said, I think I agree with you. Being able to
quantify directly over relations is very useful, and it would be
trivial to add this functionality to SCL without altering its
fundamental formal properties; notably, SCL languages with such
"higher-order" quantifiers and no seq variables would still be
semantically fully first-order. We'd have to implement things a bit
differently than you suggest, though. Since we have a class of
predicates, we would simply add predicate variables rather than allow
individual variables to occur in predicate position, which wouldn't
have the right semantics, since they range over everything. We would
want variables that only range over relations.
One of the design goals of SCL was to scale back on some of the more
foreign features of full CL, and quantification into predicate position
was among those. But it is not really quantification into predicate
position that is foreign in CL, but the fact that there is only one
type of variable for quantifying into any position. Given that we have
reinstated the distinction between predicate constants and individual
constants, it is a pretty easy conceptual step to introduce predicate
variables.
Here's the proposal then:
1. Introduce predicate variables. The range of such variables is the
set R of relations.
2. Predicate variables can *only* occur in predicate position. The
reason for this is that not all relations need be considered
individuals; in fact, in some interpretations, none of them are. I
don't think this will lead to expressive limitations, but I feel
vaguely uneasy about this, a sense that we haven't quite yet hit on
exactly the right middle ground between FOL and full CL.
> The second question: different SCL languages in practice.
>
> How does one in practice say whether we use a traditional FOL semantics
> or free semantics. Ie, if we take the same example
>
> (***) (forall x. P(x) & -Q(x)) & (forall x,y. x=y)
>
> and now want to interpret it in the nonstandard way that P and Q
> are in the set I of ordinary objects, quantified over (as it seems
> to be the natural way for RDF).
This is a good question that I'm not sure I'm qualified to answer.
Presumably there is header information of some ilk that identifies the
signature of a language? Is that too much to expect?
> We should then say that the predicate
> domain R is a subset of the domain I of individual constants. But
> how exactly do we say that in some particular concrete syntax?
>
> Perhaps the seqvars have to be used to get the App/Pred
> semantics?
>
> If we could get the nontraditional semantics without seqvars,
> then the question remains:
>
> It seems that we could define different concrete languages with
> concrete syntaxes on top of SCL. One language, say, "traditional"
> would have a traditional semantics, while another language,
> say, "RDFSplus" would have the I=R semantics.
Remember I=R is just a special case. That aside, this seems plausible
to me (but again I'm not the guy to ask).
> Did you have something like this in mind?
Now I do! ;-)
> Alternatively, one could imagine that we assume that
> an implementation looks at the actual formulas it gets.
> It can easily detect whether some lexical entity is
> used both in a predicate position and as argument
> to some predicate/function, or a quantified variable
> is used in the predicate/function position.
Yes, but a lexical entity might be intended to be *usable* in argument
position without actually being used in the given piece of whatever
ontology we are looking at. A more reliable mechanism seems to be
needed.
> If it notices this nonstandard use of the lexicon, it
> will use either I=R (or a partial overlap between I and R),
> otherwise it will assume that I is distinct from R.
Hm, maybe that will be good enough in practice. But I'm uneasy.
> Let me bring some examples to make my question
> about the implementation-detected semantics option clearer:
>
> Given
> (***) (forall x. P(x) & -Q(x)) & (forall x,y. x=y)
> the implementation would determine that traditional semantics
> is used and (***) is satisfiable.
>
> Given
> (****) R(P) & R(Q) & (forall x. P(x) & -Q(x)) & (forall x,y. x=y)
> it will detect that nontraditional semantics is used
> and (****) is NOT satisfiable.
>
> Again, which approach did you have in mind?
The best one! :-) This is an issue for group discussion/decision.
-chris
More information about the Scl
mailing list