[Top] [All Lists]

[ontolog-forum] Common Logic Controlled English (CLCE)

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: "John F. Sowa" <sowa@xxxxxxxxxxx>
Date: Sat, 17 Mar 2007 10:36:09 -0500
Message-id: <45FC0AE9.3000905@xxxxxxxxxxx>
Paola,    (01)

I changed the title of this thread, since I'll address
the linguistic issues in mapping CLCE to logic.    (02)

 > Surely I can follow the example below, but can the words
 > be mapped to their mathematical representation somewhere?    (03)

There's an old specification for CLCE on my web site,
which I'm now completely rewriting with major extensions.
But Section 1 is still useful as an overview:    (04)

    Common Logic Controlled English    (05)

Following is an example in the old version of CLCE:    (06)

    Lewis Carroll's Grocer Puzzle    (07)

The new syntax is an upward compatible extension of the
old syntax with revisions that make it more readable:    (08)

    http://www.jfsowa.com/clce/clce07.htm    (09)

This version includes features that support the IKL
extensions to Common Logic:    (010)

    http://nrrc.mitre.org/NRRC/Docs_Data/ikris/IKLspec.pdf    (011)

The method of writing declarations for linking CLCE to
other notations has also been completely rewritten.  The
employee.txt file shows the new style of declarations:    (012)

    Ontology of managers and employees    (013)

First, type hierarchies are expressed by the "<" symbol:    (014)

     CEO < Manager < Employee < Person.    (015)

This says that CEO is a subtype of Manager, which is a
subtype of Employee, which is a subtype of Person.    (016)

For nouns, verbs, and adjectives, the default type label
is the word with the first letter capitalized.  But any
label can be used:    (017)

    CEO; noun, plural -s, functional; type CEO.    (018)

    chief executive officer; noun, plural -s, functional; type CEO.    (019)

The word "CEO" is defined as a functional noun.  That means it
can be used in a phrase of the form "the CEO of a company", which
means that there is a function from companies to entities of
type CEO.  The three-word phrase "chief executive officer" is
treated as a single word, which has exactly the same type.
Therefore, one could write "the chief executive officer of IBM"
with exactly the same meaning as "the CEO of IBM".    (020)

In most domains, many common words are used in phrases with
special meanings.  Such meanings can be declared as follows:    (021)

    DottedLine < Relationship.    (022)

    dotted line; noun, plural -s; type DottedLine.    (023)

This means that the type DottedLine is a subtype of Relationship,
and the phrase "dotted line" is treated as a noun whose type
is DottedLine.  This is a kind of jargon for a relationship that
crosses the managerial hierarchy of a company.  It allows some
employee to report to someone other than that person's manager.    (024)

To goal of CLCE is to allow people who are not linguists to
specify type constraints without learning any special notation.
In the employee.txt file, those constraints are expressed by
patterns of the following form:    (025)

    An employee of a company.    (026)

    A manager in a company.    (027)

    An employee works for a company.    (028)

These patterns specify the semantic constraints that determine
which syntactic combinations are permissible.  These patterns
are essential for showing which prepositions are used with which
combinations of nouns, verbs, adjectives, and adverbs.  For
example, the following would be semantically incorrect:    (029)

    A company works for an employee.    (030)

But since the type hierarchy specifies CEO < Manager < Employee,
the following phrases would be semantically acceptible:    (031)

    A manager works for a company.    (032)

    A CEO works for a company.    (033)

Each of those patterns has a mapping to CGIF (Conceptual Graph
Interchange Format), which is determined by the CLCE syntax
and by a lexicon of common words in English, which specify
some basic syntax and semantics.  For example, the pattern    (034)

    An employee directly reports to a manager.    (035)

would be translated to the following CGIF:    (036)

    [Employee *g_1] [Direct *g_2] [Report *g_3] [Manager *g_4]
    (Agnt ?g_3 ?g_1) (Manr ?g_3 ?g_2) (To ?g_3 ?g_4)    (037)

This can be translated to CLIF (Common Logic Interchange Format):    (038)

    (exists ((g_1 Employee)(g_2 Direct)(g_3 Report)(g_4 Manager))
       (and (Agnt g_3 g_1) (Manr g_3 g_2) (To g_3 g_4)))    (039)

However, it is more common for people who write in CLIF and
other versions of logic to omit the thematic roles that are
used in linguistics.  Therefore, CLCE declarations of the
following form can be used:    (040)

    Define x directly reports to y = (DirectlyReportTo x y).    (041)

With this definition, the translation from CGIF to CLIF
woud produce the following:    (042)

   (exists ((g_1 Employee)(g_4 Manager)) (DirectlyReportTo g_1 g_4))    (043)

The advantage of the thematic roles is that they simplify the
translations from CLCE to CGIF and from CGIF to CLCE.  Therefore,
automatic translations in both directions are possible.    (044)

Since statements written directly in CLIF or OWL or most other
versions of logic do not use the thematic roles, it is not,
in general, possible to translate them to CLCE.    (045)

However, the declarations that specify how CGIF maps to CLIF
can be used in *both* directions.  If such declarations are
stated, then it becomes possible to translate from those
languages without thematic roles to CGIF with thematic roles
and then to CLCE.    (046)

 > Anyway I'll need to catch up with reading the subject
 > (mathematical logic) from scratch so that I enjoy the stuff
 > on this thread a bit.    (047)

There's a tutorial on math and logic on my web site, which
has a brief introduction:    (048)

    http://www.jfsowa.com/logic/math.htm    (049)

It's not necessary to read all the sections in the order
written.  You can skip to Sections 8, 9, and 10 on logic.
Section 13 has a brief introduction to model theory, which
is another topic that is often mentioned on this list.    (050)

John    (051)

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    (052)

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