>>>>>For example, you may have two contexts c1 and c2 such that (= (tnb
>>>>>'name') name) evaluates to true in both of them
>>>>That is meaningless in IKL. Contexts are objects in the domain,
>>>>not entities in which sentences are evaluated. You are talking
>>>>'context logic' style. IMO context logic is a dead end. One of
>>>>John McCarthy's rare blunders.
>>>I was thinking about syntactic contexts, syntactic closures, as
>>Well, Im not sure what you mean by this terminology. The word
>>"context" is, unfortunately, very dependent on the context for its
>>meaning. It sounds as though you mean the scope of a syntactic
>>binder such as a quantifier, is that correct?
>Not necessarily a quantifier. Perhaps mislead by the syntactic
>similarity of IKL (and KIF, for that matter), I was thinking in
>terms of LISP (Scheme, for that matter). Then, a syntactic binder
>is not necessarily a quantifier, as in a do-loop, it can be a lambda
>expression, or the syntactic sugar let:
>(let ((x 1))
> (= (tnb 'x') x))
>(let ((x 2))
> (= (tnb 'x') x))
>though 'x' does not denote the same object in the whole scope. (01)
That is what I meant, yes. But in normal assertional logic, the
quantifiers are the only such name-binding operators. Of course all
these languages can be rendered down into functors applied to a
single binder, usually lambda. (02)
BUt contexts in context logic play a rather different role: in
particular, there is no explicit name binding syntax, only the notion
that a name may (or may not) denote differently when asserted
relative to a context. Contextual assertion is more like inclusion
inside a modal operator than being in a syntactic binding scope.
>I am not quite familiar with IKL, and it seems that you do not have
>such syntactic scoping there. (03)
Only the usual quantifiers, yes. (04)
>>> Within each closure, clearly, 'x' (a name) means x (the
>>>denotation of 'x' in that context).
>>In IKL, every *use* of a name, anywhere in the language, means the
>>same thing. There is no idea of a use of a name 'within' anything.
>>Hence the entire language is referentially transparent.
>You can have referential transparence with lexical scoping. The
>point is not to have dynamic scoping. A purely functional language
>is referentially transparent, though names have meanings dependent
>on the context (the environment). (05)
Free names do not, though. In context logic, even free names may
change their contextual referents. (06)
>'Referential transparence' may be an ambiguous term.
>>> Across closures, though, the meaning of 'x' may be different.
>>>In this sense, your (tnb name context) is equivalent to looking up
>>>the specified closure for the name's entry, and (tnb name) is
>>>implicitly using the closest closure
>>Hmm, I have no idea what 'closest' could mean.
>Another import from lisp. Inessential here.
>>>(do you allow hierarchically nested contexts?)
>>Contexts have whatever structure ones axioms describe them to have.
>>They are simply entities in the domain of discourse, and have no
>>particular logical role.
>Since we were talking about an artificial language which has to have
>some means for binding identifiers with semantic objects, I was
>thinking of a context as of an environment, which provides bindings
>for identifiers. In lisp (scheme, at least), environments are
>hierarchical, and the referent of an identifier is looked up in the
>current environment of the computation, if not found there, there in
>the next enclosing environment, and so on, until the global one, if
>Apparently in IKL contexts are whatever one wishes them to be. I
>guess my dog might be a context in IKL, it seems. Do you have any
>definition of context there? (07)
No definition, no. Following McCarthy, we say that context is
whatever satisfies ones axioms which purport to describe contexts.
Yes, your dog could be a context, for example for a learned
discussion between two veterinary surgeons, where one says "the liver
appears to be inflamed" , meaning (but without explicitly saying) the
liver *of this dog we are looking at*. McCarthys example is a surgeon
saying to his assistant, "scalpel", with the contextual meaning,
"Pass me the scalpel that I need at this point, by putting it, handle
first, into my outstretched hand." (08)
>>>Whatever the relation to McCarthy's dead idea, let it be.
>>McCarthy is widely credited with the idea of introducing contexts to logic.
>>>>>, 'name' as in c1 =
>>>>>'name' as in c2 (trivially), yet name as in c1 != name as in c2.
>>>>(not (= (tnb s context1) (tnb s context2)))
>>>>where s is 'name'. Indeed, this situation can arise. But there
>>>>are types of 'context', such as times and locations - parts of
>>>>the 'real world' - which do not affect the meanings of names. In
>>>>IKL these can be defined axiomatically:
>>>>(forall (x) (iff (transparentContext x)
>>>> (forall ((s charseq))(= (tnb s)(tnb s x)))
>>>Yes, if (tnb s) is equivalent to (tnb s the-global-context), with
>>>the-global-context being the global context
>>Well, there is no global context as such in IKL, any more than
>>there is in, say, first-order logic.
>OK. Then what does (tnb s) actually mean? (09)
Remember s is a character string. It means, whatever that string
would denote, if you were to use it as a name. In fact, the 'tnb' is
unnecessary: it is sufficient to simply call the string as a function
with no arguments: (s) (010)
> And what does (tnb s x) actually mean? (011)
That has no predefined logical meaning, but you can use the form to
assign a meaning to it by writing appropriate axioms. You have to do
this for contextual meanings anyway: there is no *logical* reason why
they should mean anything in particular or that it should be related
in any systematic way to their simple (non-contextual) meaning. (012)
> (I guess I'd better consult the documentation.) (013)
IHMC (850)434 8903 or (650)494 3973 home
40 South Alcaniz St. (850)202 4416 office
Pensacola (850)202 4440 fax
FL 32502 (850)291 0667 cell
phayesAT-SIGNihmc.us http://www.ihmc.us/users/phayes (015)
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx (016)