ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] Ontology, Information Models and the 'Real World'

To: Waclaw Kusnierczyk <Waclaw.Marcin.Kusnierczyk@xxxxxxxxxxx>
Cc: Ontolog Forum <ontolog-forum@xxxxxxxxxxxxxxxx>
From: Pat Hayes <phayes@xxxxxxx>
Date: Mon, 16 Apr 2007 16:13:28 -0500
Message-id: <p06230908c2498daaa0ab@[10.100.0.26]>
>>>>>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 
>>>first-class objects.
>>
>>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))
>
>=> true
>=> true
>
>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 
>needed.
>
>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.
>>>>
>>>>In IKL:
>>>>(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)

http://www.ihmc.us:16080/users/phayes/IKL/GUIDE/guide.html    (014)

Pat
-- 
---------------------------------------------------------------------
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/  
Subscribe/Config: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (016)

<Prev in Thread] Current Thread [Next in Thread>