[Top] [All Lists]

Re: [ontolog-forum] Requirements of computer language semantics

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: Ed Barkmeyer <edbark@xxxxxxxx>
Date: Thu, 19 Mar 2009 12:31:03 -0400
Message-id: <49C27347.8070704@xxxxxxxx>
John F. Sowa wrote:    (01)

> I agree with the technical points you made, but the judgment
> about what makes "more sense" is debatable:
> CM> Other things being equal, it makes a great deal more sense
>  > to provide a semantics for L1 directly [than to define the
>  > semantics by translation to a previously defined language L2].
> Interoperability is always a major practical concern in comp. sci.,
> and a translation from a new language L1 to a previously defined
> and analyzed language L2 can help answer many important questions:    (02)

And raise new ones.  The problem, as Adrian pointed out, is that 
'translation to L2' is a mapping from sentences of L1 to sentences of 
L2.  And that mapping typically takes the form of mapping terminal and 
non-terminal elements of L1 to constructs of L2, on an 
element-by-element basis.  When L2 has no semantic equivalent for an L1 
element per se, the mapping may be an embedding, with the consequence 
that some semantic restrictions of L1 are removed in the L2 image, or it 
may be an "interpretation" -- a circumlocution in L2 that achieves what 
is understood to be the intended semantics.  Even more complexity arises 
when the mapping is pattern to pattern (context sensitive, if you will). 
  In general, when the mapping is not semantically 1-to-1 at the 
language element level, it is very difficult to determine the 
relationship between the semantics of L1 and the semantics of L2 -- you 
are now talking about proving the equivalence of the systems.  And if L1 
is short on formal semantics in the first place, how would you go about 
such a proof?    (03)

>   1. Are they logically equivalent or can one be mapped to a subset
>      of the other?    (04)

See above.  How do you determine 'logically equivalent'?  And is the 
subset of L2 faithful to the semantic intent of L1?  (One of the common 
problems of embeddings is unexpected failures of the pigeonhole principle.)    (05)

>   2. If the answer to #1 is no, then is there some subset L1' of L1
>      and L2' of L2 such that L1' and L2' are logically equivalent?
>      Are those subsets L1' and L2' big enough to be useful?
>   3. Which reasoning engines already available for L2 can be
>      be used for L1 or some subset of L1?    (06)

This is the most common reason for performing such a mapping -- it 
creates supporting engines much more rapidly.  And we know for a fact 
that this is a reason for the success of OWL.  Many existing DL engines 
(and several others) were able to map OWL into the language they supported.    (07)

> If the model theory of L2 is defined independently of L1, it is
> much harder to answer these questions.    (08)

I believe the 90s expression was "Well, duh!"    (09)

> For a previously unanalyzed language such as mKR, many of us
> have little or no confidence in its consistency.  It's quite
> possible that if Dick (or one of his colleagues) tried to
> map mKR expressions to a previously defined language, they
> might encounter some serious difficulties.  Therefore, they
> might choose to redefine the troublesome features of mKR
> in a way that simplifies the translation.    (010)

I would say that it might result in some of the features being carefully 
defined instead of sketched.    (011)

> So I would argue for the following procedure:
>     Other things being equal, it makes more sense to try
>     to map a new language L1 to some previously defined
>     and analyzed language than to try to define the
>     semantics for L1 from scratch.    (012)

And, like Chris, I would argue just the opposite.  Getting the semantics 
of language constructs clear is indeed about rigour, but it is not 
necessarily about the mathematical rigour that Richard despises.
The basic concepts in a Tarski-style semantic model are clear, and they 
are not that hard to do for your language.  If you understand the 
semantics of your language, you can make a decent semantic model with a 
1/2-day tutorial on Tarski semantics.  Yes, the process may require you 
to specify things you forgot to say, or thought could be more general 
than you realize you can define, but achieving that realization is part 
of the reason for making semantic models.  If you are inexperienced, the 
result will not be of the Chris Menzel quality, for sure, and it may not 
have the required mathematical symbols to please some journal editor, 
but it will be very useful to anyone who wants to use the language, and 
to anyone who wants to map it into his own favorite tongue.    (013)

-Ed    (014)

P.S. I think the fear of Tarski semantics is ill-founded.  It results 
from having to read papers that are thick with mathematical notation and 
thin on presenting the relatively simple and intuitive concepts behind 
it.  There are five concepts:  things, relations, functions, 
connectives, and sentences.  And all you are specifying is how instances 
of these concepts appear in your language and how the constructs relate 
to true/false.  It is just hard to see that elephant with a mathematical 
microscope.    (015)

Edward J. Barkmeyer                        Email: edbark@xxxxxxxx
National Institute of Standards & Technology
Manufacturing Systems Integration Division
100 Bureau Drive, Stop 8263                Tel: +1 301-975-3528
Gaithersburg, MD 20899-8263                FAX: +1 301-975-4694    (016)

"The opinions expressed above do not reflect consensus of NIST,
  and have not been reviewed by any Government authority."    (017)

Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Config Subscr: 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 join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (018)

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