Linker logo

Linker Systems' JCB Grammar

Below, the grammar is explained from the top-level down to the lowest level. The top-level grammar item is a transmission. Each time you click on the Submit button, JCB expects to see one legal JCB transmission.

A note on the notation: { thing }... means that the specified thing may occur one or more times. [ thing ] means that the thing may or may not appear.

Note that in the descriptions below, the following words are still in development, and are either not yet present, or not yet present in all situations: a, also, an, century, decade, eight, eighteen, eighty, eleven, fifteen, fifty, five, forty, four, fourteen, half, millenium, nine, nineteen, ninety, one, seven, seventeen, seventy, six, sixteen, sixty, ten, the, thirteen, thirty, three, twelve, twenty, two, and who.

Transmission

Each transmission contains one or more utterances. If there is more than one utterance, then those utterances are separated with the word execute. As you might imagine, execute executes what has been said up to that point, as if in a separate transmission. You'll get all the output in a batch.

Format:  { utterance execute }... utterance

Utterance

Each utterance is either a command, a predication (sentence or query), or a direct question.

Format 1:  command
Format 2:  predication
Format 3:  question

Question

A question asks whether a predication is true or false.

Format 1:  is predication true
Format 2:  is predication false

Predication

There are a wide variety of predication forms. A predication most closely matches an English sentence. The simplest form, format 1, is a trivial predication, which states itself to be true or false. A simple predication, shown in format 2, is a predication-word (a verb, more or less), optionally followed by one or more arguments. The predication word is preceeded by an asterisk (unless it's obvious that it's a predication), and followed by a slash (unless it's obvious that the predication has ended). When in doubt, put in the * and the /, although in most cases it's not needed. When using a word as a predication, you must decide on your own what the arguments mean. For instance, will go x y z mean that X goes to Y over route Z? In the future, we'll be publishing a list of such predications in the form of a dictionary. For now, you'll just have to be consistant in your usage. Predications can also be preceeded with one or more tenses, as shown in format 3. Note that JCB-English tenses include what English includes as tenses, plus what a number of other languages include as tenses. Note, too, that this recursive definition means that any number of tenses can appear before a predication. Format 4 shows the question form of the same thing. By replacing the predication-word with blank, we are asking which word would make the predication true. An adjective may be applied to a predication as shown in format 5. Formats 6 through 13 show various logical constructions. Note that both and jointly have subtle differences. The predication take i an adjectcive both red and blue affects ball means that I take a red ball and a blue ball. The predication take i an adjective jointly red and blue affects ball means that I take a ball which is jointly red-and-blue. A swirl, perhaps. Formats 14 through 18 involve slightly more complicated logical constructions.

Format 1:  true-or-false
Format 2:  *word { argument }... /
Format 3:  tense predication
Format 4:  blank predication
Format 5:  adjective predication affects predication
Format 6:  both predication and predication
Format 7:  either predication or predication
Format 8:  neither predication nor predication
Format 9:  the statement predication is implied by predication
Format 10:  if [ and only if ] predication then predication
Format 11:  exclusively predication or predication
Format 12:  it is not the case that predication is true
Format 13:  jointly predication and predication
Format 14:  for all { variable }... predication
Format 15:  there exists { variable }... such that predication
Format 16:  there exists [ at least ] number variable such that predication
Format 17:  there exists at most number variable such that predication
Format 18:  there does not exist variable such that predication

Argument

In English, an argument would be the subject or an object of the sentence. Here, they are undistinguished, and may appear without separators. For instance, I go to the library would translate as go i the library. In format 1, double quotes are used to signify a name. For instance, Bob Smith would translate as "bob smith". Inside quotes, spacing and capitalization are irrelevant, so " Bob   Smith " would not be a different name. Of a similar nature is format 2, in which we specify literal text as an argument. For instance, 'bob smith' represents the literal text "bob smith", which is different from a string in which we change capitalization or spacing. Simple pronouns appear as formats 3 through 5. You can use a variable as a pronoun, as shown in format 6. You can make a question using an argument, by using a question-word, as shown in formats 7 through 9. Formats 10 & 11 show possessive pronouns. As in predications, logical constructions can be made on arguments. This is shown in formats 12 through 17. An argument may be quantified, as if format 18, or specified as a class, as in format 19. The usage here is important. "Fifty dogs" would translate as 50 dog. That's simple. But, "all dogs" would translate as all of the class dog. Be careful here, as all of dog translates back as "one entire dog", rather than "all dogs". In formats 20 & 21, predications can be used as events and properties. In format 22, numbers can be used as arguments. In format 23, a predication can be, in effect, and adjectival phrase. Arguments can be skipped (explicitly) by specifying anything for an argument, as in format 24. When a predication is used to modify another, and the adjectival predication uses more than one argument, it is assumed that the first argument slot carries the emphasis. For instance, one way to say that someone as an interest in going would be to say that he is interested in a "go" or "leave" sort of way. Since "go" naturally takes arguments of From, To, and Path, we could use adjective go modifies interest. But, what if someone is interested in coming? For this, we need to put the emphasis on the second argument of "go". We do this by specifying an argument list, and using the word emphasis, so the interest in coming could be adjective go anything emphasis modifies interest. This is shown in format 25.

Format 1:  " name "
Format 2:  ' text '
Format 3:  me
Format 4:  i
Format 5:  you
Format 6:  variable
Format 7:  what
Format 8:  which
Format 9:  who
Format 10:  my argument
Format 11:  your argument
Format 12:  both argument and argument
Format 13:  either argument or argument
Format 14:  neither predication nor predication
Format 15:  the item argument is implied by argument
Format 16:  if [ and only if ] argument then argument
Format 17:  exclusively argument or argument
Format 18:  quantifier predication
Format 19:  [ quantifier ] the class predication
Format 20:  the event predication
Format 21:  the property predication
Format 22:  the number number
Format 23:  the item argument with property predication
Format 24:  anything
Format 24:  emphasis

Quantifier

Arguments can be quantified with specific numbers, or with general numbers.

Format 1:  all [ of ]
Format 2:  most [ of ]
Format 3:  some [ of ]
Format 4:  little [ of ]
Format 5:  number [ of ]

Number

Numbers can be simple numbers, such as 1, 2.5, or 0.6. They can also be single-word numbers, such as fifty or half. a, an, and the all mean 1. Calculated numbers can also be used.

Format 1:  number
Format 2:  half
Format 3:  one

Format 21:  nineteen
Format 22:  twenty

Format 29:  ninety
Format 30:  a[n]
Format 31:  the
Format 32:  the sum of number and number
Format 33:  the difference between number and number
Format 34:  the product of number and number
Format 35:  the quotient of number and number

Variable

A variable in JCB-English is the same as a variable in logic. It's a place-holder that represents something else, to be determined through logical operation of a sentence. For instance, in the English sentence, "Bob loves all" would be rendered for all x love bob x in JCB-English. In both cases, X is a variable. Variables may be subscripted.

Format:  letter [ sub number ]

Tense

Tenses can be English-like time tenses, as appear in formats 1 through 7. There's a timeless, tense, potentially, too. A predication can also be inflected for certainty, as shown in formats 9 through 14. Formats 15 through 19 show distance tensing. You can substitute a question word for a tense, as shown in formats 20 through 22, and make the predication a query.

Format 1:  at time-reference
Format 2:  after time
Format 3:  on [ or after ] time
Format 4:  beginning [ after ] time
Format 5:  [ on or ] before time
Format 6:  ending [ before ] time
Format 7:  during time
Format 8:  potentially
Format 9:  certainly
Format 10:  on good authority
Format 11:  likely
Format 12:  as a belief
Format 13:  as a guess
Format 14:  according to argument
Format 15:  located at [ a distance of [ up to ] number meter[s] from ] argument
Format 16:  located at a distance of at least number meter[s] from argument
Format 17:  located at a range of number meter[s] to number meter[s] from argument
Format 18:  near argument
Format 19:  far from argument
Format 20:  when
Format 21:  where
Format 22:  tense

Time reference

Time references refer either to a specific time, or a range of times.

Format 1:  time-spec
Format 2:  time through time

Time spec

A time specification is either a simple time, or an offset before or after a simple time.

Format 1:  [ offset { number time-type }... from ] simple-time
Format 2:  offset { number time-type }... before simple-time

Time type

A time type specifies the type of time interval, between seconds and millenia.

Format 1:  second[s]
Format 2:  minute[s]
Format 3:  hour[s]
Format 4:  day[s]
Format 5:  week[s]
Format 6:  month[s]
Format 7:  year[s]
Format 8:  decade[s]
Format 9:  century
Format 10:  centuries
Format 11:  millenium
Format 12:  millenia

Simple time

A simple time designator is a date and/or time, or a quick time reference.

Format 1:  date [ time ]
Format 2:  time
Format 3:  now
Format 4:  today
Format 5:  tomorrow
Format 6:  yesterday
Format 7:  this time-type
Format 8:  last time-type
Format 9:  next time-type

Date

Dates can either be in YYYY-MM-DD form, a month name, or a day name.

Format 1:  year-month-day [ bce ]
Format 2:  january

Format 13:  december
Format 14:  sunday

Format 20:  saturday

Time

Times can be in HH:MM:SS or HH:MM format, or as noon or midnight.

Format 1:  hour:minute[:second] [ am ]
Format 2:  hour:minute[:second] pm
Format 3:  noon
Format 4:  midnight