Re: PowerLoom's BNF usage

Robert Goldman <[email protected]> Wed, 09 Jul 2008 12:16:10 -0500
Newsgroups gmane.comp.ai.powerloom
Message-ID <[email protected]>
Rich Morin wrote:
> At 21:59 -0700 7/7/08, Hans Chalupsky wrote:
>> Cameron,
>>
>> thanks for the pointer.  It definitely make sense to relate PL-KIF to
>> CLIF and align them as much as possible.  PowerLoom was intended to
>> support multiple logic dialects (thus the "in-dialect" construct).  If
>> we can't reasonably make PL-KIF a superset of CLIF, we should at least
>> be able to support them as alternative input language variants.
>> Given that Common Logic is an actual ISO standard now, we have some
>> motivation to attempt this fairly soon.
> 
> At 22:15 -0700 7/7/08, Hans Chalupsky wrote:
>> ...  As I said in a previous message, given that Common
>> Logic is a bonafide standard now, we'll work on making the
>> relationship between Common Logic and PL-KIF more precise.
> 
> +1
> 
> 
> Full disclosure: I sat in on the Common Logic email list, asked some
> questions, sent in copy edits, and helped write the Wikipedia entry.
> So, I'm pretty familiar with the project, but nowhere near being an
> expert on the standard's finer technical points.  For that, you'll
> want to rope in some of the standard's authors (eg, Delaguch, Hays,
> Menzel, Sowa).  A note to the mailing list ([email protected])
> would probably be a Good Idea, as someone might offer to help.
> 
> 
> One of the really interesting things about Common Logic is that it
> defines semantic capabilities, but not syntax.  Sort of "duck typing,
> applied to language definition".  If a syntax can be mechanically
> translated to/from another Common Logic representation, it qualifies
> as a Common Logic dialect.  The Wikipedia entry, more formally, says:
> 
>   Common Logic (CL) is a framework for a family of logic languages,
>   based on first-order logic, intended to facilitate the exchange
>   and transmission of knowledge in computer-based systems.  The CL
>   definition permits and encourages the development of a variety of
>   different syntactic forms, called "dialects."  A dialect may use
>   any desired syntax, but it must be possible to demonstrate precisely
>   how the concrete syntax of a dialect conforms to the abstract CL
>   semantics, which are based on a model theoretic interpretation.
>   Each dialect may be then treated as a formal language.
> 
>   Once syntactic conformance is established, a dialect gets the CL
>   semantics for free, as they are specified relative to the abstract
>   syntax only, and hence are inherited by any conformant dialect.
>   In addition, all CL dialects are equivalent (i.e., can be
>   mechanically translated to each other), although some may be more
>   expressive than others.  In general, a less expressive subset of
>   CL may be translated to a more expressive version of CL, but the
>   reverse translation is only defined on a subset of the larger
>   language.
> 
>     http://en.wikipedia.org/wiki/Common_logic
> 
> 
> As a result, there are several Common Logic dialects, including:
> 
>   Conceptual Graph Interchange Format (CGIF)
> 
>   Common Logic Controlled English (CLCE)
>   http://www.jfsowa.com/clce/specs.htm
> 
>   Common Logic Interchange Format (CLIF)
> 
>   eXtended Common Logic Markup Language (XCL)
> 
> 
> As Hans notes, there are several approaches to PL supporting CL.
> All of them require "making the relationship between Common Logic
> and PL-KIF more precise".  However, the devil is in the details.
> 
>   *  "make PL-KIF a superset of CLIF" - Given CL's goals and
>      approach, I would be amazed if PL critically needs anything
>      that CL doesn't handle.  However, the relationship needs to
>      be made precise enough to enable mechanical translation.
> 
>   *  Supporting CL as an alternative input language variant isn't
>      really enough.  In order to be a full player (not to mention
>      having a way to test things out), PL will need translation
>      both to and from a CL dialect (presumably, CLIF).
> 
> 
> With these things in place, however, PL stands to gain greatly
> from becoming a participant in the standard.  PL's users would be
> able to import and export assorted KBs, then compare and contrast
> the capabilities of different systems in making queries, etc.
> 
> If the translation were performed to (John Sowa's) Conceptual
> Graphs (CGIF) and Controlled English (CLCE) dialects, PL would
> gain new ways for users to view and edit statements, queries,
> etc.  Both seasoned and naive users would benefit from having
> these dialects available.

Does the following correctly summarize what would happen if 
CLIF-compliance is achieved:

1.  One would have to provide translations back and forth for one's dialect;

2.  Because of 1, if one is compliant, one is automagically able to 
translate one's code into the other dialects?

I think part of this question is "what does it mean to provide a 
translation?"  does it mean one has to provide publicly usable code, or 
just an algorithm specification?

Also, what if one has a language with, say, some second-order features 
(which I am just assuming are not included in Common Logic)?  Does one 
define a subset of one's language which permits translation back and forth?

Thanks,
r