[SCL] CL Controlled English (CLCE)

pat hayes phayes at ihmc.us
Sun Dec 21 12:16:25 CST 2003


>Bill,
>
>Re global replacement for "ontology":  I would be
>happy with either "theory" or "module".
>
>Re grammar for CLCE:  What I've written so far is
>at the end of this note. I'll post a more complete
>version on my web site after I get more comments
>and flack.
>
>Following is the general outline:

Possible renderings as SCL header content interposed.

>
>  1. Monadic relations, such as red(x) or cat(x),
>     may be declared as either adjectives or nouns:
>
>     Declare red(x) as adjective.

adjective(red)

>
>     Declare cat(x) as noun.

noun(cat)

>
>  2. Relations with two or more arguments may be
>     declared as relational nouns, functional
>     nouns, verbs, or prepositions:
>
>     Declare child(x,y) as noun with focus x.

noun(child)
child(x y) implies focus(x child)

>
>     Declare mother(x,y) as functional noun
>        with focus x.
>
>     Declare give(x,y,z) as verb with
>        preposition "to" y.

verb(give)
give(x y  z) implies to(z give)

>
>     Declare between(x,y,z) as preposition.

preposition(between)
scl:arity(between)=3

>
>     Restriction:  The arguments of a relational
>     or functional noun are written as the object(s)
>     of the preposition "of".  No verb may have a
>     preposition spelled "of".

not verb(of)

>
>  3. Functions or relations that may have a
>     variable number of arguments are declared
>     with three dots in the last argument place:
>
>     Declare set(x,y,...) as functional noun
>        with focus x.

noun(set)
set(x y @z) implies focus(x set)

>  4. Any functional or relational noun can also
>     be used as a monadic relation that is true
>     of anything of the same type as its focus.
>     For example, mother(x) is true if and only if
>     there exists a y such that mother(x,y) is true.

Might be better to use the role-set syntax, then, since this is 
open-ended in this way.
mother{x} iff exists (y)( mother(x) &

>  5. The name of a function or relation does not
>     have to be the same as the word used in CLCE:
>
>     Declare "+"(x,y,z) as functional noun "sum"
>        with focus z.

+ = sum
(correct SCL, but yech!!)

>
>  6. There are no pronouns.  Instead there are
>     variables, which consist of one of the three
>     letters "x", "y", or "z" followed by an optional
>     string of digits.  Anyone who prefers "readable"
>     names can write "every cat x" to inroduce a
>     variable and "the cat x" to refer to it later.

Hmm. Its hard to express new syntax in SCL

>  7. A list of noun phrases must be enclosed in
>     parentheses to distinguish it from a conjunction
>     of sentences.  Otherwise, all sentences in CLCE
>     are punctuated as they would normally be in English.
>
>Examples of CLCE sentences with their translations to
>predicate calculus notation:
>
>  1.  Every cat is on a mat.
>
>      (A x:cat)(E y:mat)on(x,y).

How did you get the quantifier scopes to work out right?

>
>  2.  Some person is between (a rock and a hard place).
>
>      (E x:person, y:rock, z:place)(hard(z) & between(x,y,z)).

Consider the English:

There is a rock in the living room. Some person is between the rock 
and a hard place.

Can you get 'the rock' to bind to the rock mentioned in the first sentence?


>
>  3.  If some person x is the mother of a child y,
>      then y is a child of x.
>
>      ~((E x:person, y:child)(mother(x,y) & ~child(y,x))).
>
>  4.  Every person x has a person y as mother.
>
>      (A x:person)(E y:person)mother(y,x).
>
>  5.  If x is the set of (a cat, a dog, and an elephant),
>      then the cat is an element of x, the dog is an
>      element of x, and the elephant is an element of x.
>
>      ~((E x0, x1:cat, x2:dog, x3:elephant)(set(x0,x1,x2,x3)
>         & ~(element(x0,x) & (element(x1,x) & element(x2,x)
>               & element(x3,x)))).

I'd like to see an exact statement of the rules for handling 'the' 
and 'a'. I suspect this is going to get very tricky.

>
>  6. For every prime number x, there exists a prime number y
>     such that y is greater than x.
>
>     (A x:number)(prime(x) => (E y:number)(prime(y) & y>x)).
>
>Following are the grammar rules I've written so far.  I don't
>expect the final version to be much longer than this, but
>there may be more revisions and qualifications.
>
>John
>_____________________________________________________________
>
>CompleteSentence  ::=  Sentence (";" Sentence)* "."
>
>Sentence  ::=  NounPhrase VerbPhrase
>             |  "if" Sentence ", then" Sentence
>             |  Sentence ("," Sentence)* ","? "and" Sentence
>             |  "either" Sentence "or" Sentence ("or" Sentence)*
>             |  Sentence "if and only if" Sentence
>             |  "for" UniversalNP "," Sentence
>             |  "there" ("is" | "exists") ExistentialNP "such that"
>             |  "it is false that" Sentence
>
>NounPhrase  ::=  ExistentialNP
>               |  UniversalNP
>               |  FunctionalNP
>               |  ReferentialNP
>
>ExistentialNP  ::=  ("a" | "an" | "some") Adjective* Noun
>                     Variable? Postmodifier?
>
>UniversalNP    ::=  ("every" | "no") Adjective* Noun
>                     Variable? Postmodifier?
>
>FunctionalNP   ::=  "the" FunctionalNoun Variable?
>                     "of" (NounPhrase | List)
>
>ReferentialNP  ::=  ("the" Noun)? (Variable | Name)
>                  |  "the Noun"
>
>Note:  The scope of a name includes an entire module.
>The scope of a variable in a "for" or "there is"
>prefix extends to the period at the end of a complete
>sentence.  The scope of other variables is no farther
>than the nearest ";" or ".", but the next version of
>the grammar will be more explicit.
>
>A referential NP may only occur within the scope of
>the variable or name.  The variable or name may be
>omitted if there is only one noun with the same
>spelling within the scope.
>
>List  ::=  "(" NounPhrase ("," NounPhrase) ","?
>            "and" NounPhrase ")"
>
>Postmodifer  ::=  "of" (NounPhrase | List)
>                |  "that" VerbPhrase
>                |  Comparative "than" NounPhrase
>
>VerbPhrase  ::=  "does not"? Verb (NounPhrase | List)?
>                  PrepositionalPhrase*
>               |  "is" "not"? (Adjective | NounPhrase |
>                  PrepositionalPhrase |
>                  Comparative "than" NounPhrase)
>               |  ("has" | "does not have") NounPhrase
>                   "as" (RelationalNoun | FunctionalNoun)
>
>PrepositionalPhrase  ::=  Preposition (NounPhrase | List)
>
>Variable  ::=  ("x" | "y" | "z") Digit*
>
>_______________________________________________
>SCL mailing list
>SCL at philebus.tamu.edu
>http://philebus.tamu.edu/mailman/listinfo/scl


-- 
---------------------------------------------------------------------
IHMC	(850)434 8903 or (650)494 3973   home
40 South Alcaniz St.	(850)202 4416   office
Pensacola			(850)202 4440   fax
FL 32501			(850)291 0667    cell
phayes at ihmc.us       http://www.ihmc.us/users/phayes



More information about the SCL mailing list