Higher-precedence Grouping with {bo} Is Impossible for TAG Sentence Connectives

33 views
Skip to first unread message

Jacob Errington

unread,
May 11, 2013, 9:37:42 PM5/11/13
to loj...@googlegroups.com
The title says it all; the following won't parse:

{.i broda .ija'ebo brode .iseri'abobo brodi}

Semantically, it should parse meaning that {.i brode .iseri'abo brodi} is the right-hand operand of {.ija'ebo}.

On a related note, even-higher-precedence grouping with bo is not possible for ijeks; the following won't parse:

.i (broda .ijebo (brode .ijebo ((brodi .ijebobo brodo) .ijebo brodu)))

Parentheses show intended parse.

Furthermore, multiple {bo} are not allowed in tanru groupings:

{.i (broda bo ((brode bo bo brodi) bo brodo))}

It just seems like multiple {bo} is illegal across the board. Bug or feature? Could this even be implemented? If it can, should we?

.i mi'e la tsani mu'o

John E Clifford

unread,
May 11, 2013, 10:30:26 PM5/11/13
to loj...@googlegroups.com
In a spoken language, such degrees of complexity are very unlikely and will be worked around if the need ever actually were to arise.  In a written language as used by a certain kind of pedant, they are possible -- even likely -- and something must be designed to save them!  Not!



From: Jacob Errington <nict...@gmail.com>
To: "loj...@googlegroups.com" <loj...@googlegroups.com>
Sent: Saturday, May 11, 2013 8:37 PM
Subject: [lojban] Higher-precedence Grouping with {bo} Is Impossible for TAG Sentence Connectives

--
You received this message because you are subscribed to the Google Groups "lojban" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lojban+un...@googlegroups.com.
To post to this group, send email to loj...@googlegroups.com.
Visit this group at http://groups.google.com/group/lojban?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 


Betsemes

unread,
May 12, 2013, 10:35:24 AM5/12/13
to loj...@googlegroups.com
On Sat, May 11, 2013 at 10:30 PM, John E Clifford <kali9...@yahoo.com> wrote:
> In a spoken language, such degrees of complexity are very unlikely and will
> be worked around if the need ever actually were to arise. In a written
> language as used by a certain kind of pedant, they are possible -- even
> likely -- and something must be designed to save them! Not!

Speaking as a computer programmer, I had complained many times
whenever a language won't allow something I want to do and I must look
for a workaround. Fortunately, Lojban doesn't rely on a compiler for
it to work and the human brain is far more flexible. So, if the parser
won't allow it, but the intended audience would understand, then BREAK
THE MABLA RULES!!!!

mu'o mi'e betsemes

Jorge Llambías

unread,
May 12, 2013, 11:30:32 AM5/12/13
to loj...@googlegroups.com
On Sat, May 11, 2013 at 10:37 PM, Jacob Errington <nict...@gmail.com> wrote:

It just seems like multiple {bo} is illegal across the board. Bug or feature? Could this even be implemented? If it can, should we?


I can see two ways of implementing it in PEG (or BNF):

(1) Define an upper limit on the number of grouping precedences you would allow. Then it's just a matter of adding a new rule for each level you want for each type of connective. If you decide 100 bo is the maximum then 101 bo will be ungrammatical.

(2) Require of the parser that it just tells you whether the text is grammatical or not, but not ask that it return the "right" parse tree. Then you can allow as many bo as you want, but the parse won't always give the correct grouping.

Neither of the two seem worth it for a feature that would probably never be used in any case.

mu'o mi'e xorxes

Bob LeChevalier, President and Founder - LLG

unread,
May 12, 2013, 12:56:21 PM5/12/13
to loj...@googlegroups.com
The first problem is that the parser does not allow multiple "bo"s.
That is why it won't parse. Additional bos would have no meaning,
grammatical or otherwise.

If you use only one bo in each .i compound, then all of them will group
pairwise STRICTLY from the right. So

.i broda .ija'e brode .iseri'abo brodi

groups

.i broda .i(ja'e brode .iseri'abo brodi)


Note that you don't need a bo at all before the brode.



For your second example, this results:

.i broda .ije( brode .ijebo( brodi .ijebo( brodo .ijebo brodu)))

There is no provision using bo to make something other than the
rightmost group first.

If you want to mix left and right grouping, you need tu'e/tu'u
forethought to mark the left groupings. See CLL chapter 14 section 8
example 8.3 through 8.6, which has good discussion of the whys and
wherefores. The notes after 8.6 specificall say that afterthought
connectives with bo are primarily for simple expression of the special
case of right grouping. Anything really complex needs the bracketing
that is possible with forethought connection (and I observe that human
beings don't generally formulate complex groupings in afterthought).

i broda .ije brode .ijetu'e brodi .ije brodo tu'u .ijebo brodu

gives the bracketing you showed, with the brodi/brodo pair grouping
left, marked by tu'e/tu'u. If you only used bo then you would
parenthesize sentences from the right (and again you don't need a bo
before the brode).

Sentence logical connection is a difficult problem, especially when you
try to account for logical scope, so it is designed to be less flexible.

More broadly, really complex constructs are more easily expressed using
gi'ebo/gi'eke for right and left grouping in afterthought, and ga/gi for
forethought. Since these constructs connect multiple "bridi-tails"
(selbri plus trailing sumti) within one .i sentence, for maximal
flexibility, you have to but all the sumti including x1 after the
selbri. These are also described in that same chapter of CLL.

lojbab
--
Bob LeChevalier loj...@lojban.org www.lojban.org
President and Founder, The Logical Language Group, Inc.

Pierre Abbat

unread,
May 13, 2013, 10:15:59 PM5/13/13
to loj...@googlegroups.com
(Resending; it didn't come back the first time.)
On Saturday, May 11, 2013 21:37:42 Jacob Errington wrote:
> The title says it all; the following won't parse:
>
> {.i broda .ija'ebo brode .iseri'abobo brodi}
>
> It just seems like multiple {bo} is illegal across the board. Bug or
> feature? Could this even be implemented? If it can, should we?

There's only one level of precedence with "bo". If you want more, use "ke".
".i broda .ija'eke brode .iseri'abo brodi" parses, but "ke" is implicitly
terminated just after "brode". I suggest ".ikeja'e", which currently doesn't
parse.

Pierre
--
sei do'anai mi'a djuno puze'e noroi nalselganse srera

Pierre Abbat

unread,
May 12, 2013, 12:26:33 AM5/12/13
to loj...@googlegroups.com
On Saturday, May 11, 2013 21:37:42 Jacob Errington wrote:
> The title says it all; the following won't parse:
>
> {.i broda .ija'ebo brode .iseri'abobo brodi}
>
> It just seems like multiple {bo} is illegal across the board. Bug or
> feature? Could this even be implemented? If it can, should we?

Jacob Errington

unread,
May 14, 2013, 10:06:56 AM5/14/13
to loj...@googlegroups.com
On 12 May 2013 12:56, Bob LeChevalier, President and Founder - LLG <loj...@lojban.org> wrote:
Jacob Errington wrote:
The title says it all; the following won't parse:

{.i broda .ija'ebo brode .iseri'abobo brodi}

Semantically, it should parse meaning that {.i brode .iseri'abo brodi}
is the right-hand operand of {.ija'ebo}.

On a related note, even-higher-precedence grouping with bo is not
possible for ijeks; the following won't parse:

.i (broda .ijebo (brode .ijebo ((brodi .ijebobo brodo) .ijebo brodu)))

Parentheses show intended parse.

Furthermore, multiple {bo} are not allowed in tanru groupings:

{.i (broda bo ((brode bo bo brodi) bo brodo))}

It just seems like multiple {bo} is illegal across the board. Bug or
feature? Could this even be implemented? If it can, should we?

.i mi'e la tsani mu'o


The first problem is that the parser does not allow multiple "bo"s. That is why it won't parse.  Additional bos would have no meaning, grammatical or otherwise.

If you use only one bo in each .i compound, then all of them will group pairwise STRICTLY from the right.  So

 .i broda .ija'e brode .iseri'abo brodi

groups

.i broda .i(ja'e brode .iseri'abo brodi)


Note that you don't need a bo at all before the brode.



Actually, the {bo} is required before the {brode}; that's how TAG sentence connectives are constructed {.i TAG bo}, else the tag would simply attach to the selbri. Consider {.i pu broda} and{.i pu bo broda}.
 

For your second example, this results:

.i broda .ije( brode .ijebo( brodi .ijebo( brodo .ijebo brodu)))

There is no provision using bo to make something other than the rightmost group first.


Yes. I don't want to achieve non-right grouping with bo. I'm just looking to increase the  precedence
 
If you want to mix left and right grouping, you need tu'e/tu'u forethought to mark the left groupings.  See CLL chapter 14 section 8 example 8.3 through 8.6, which has good discussion of the whys and wherefores.  The notes after 8.6 specificall say that afterthought connectives with bo are primarily for simple expression of the special case of right grouping.  Anything really complex needs the bracketing that is possible with forethought connection (and I observe that human beings don't generally formulate complex groupings in afterthought).

i  broda  .ije brode .ijetu'e brodi .ije brodo tu'u .ijebo brodu

gives the bracketing you showed, with the brodi/brodo pair grouping left, marked by tu'e/tu'u.  If you only used bo then you would parenthesize sentences from the right (and again you don't need a bo before the brode).

Sentence logical connection is a difficult problem, especially when you try to account for logical scope, so it is designed to be less flexible.

More broadly, really complex constructs are more easily expressed using gi'ebo/gi'eke for right and left grouping in afterthought, and ga/gi for forethought.  Since these constructs connect multiple "bridi-tails" (selbri plus trailing sumti) within one .i sentence, for maximal flexibility, you have to but all the sumti including x1 after the selbri.  These are also described in that same chapter of CLL.

Yes, there're other ways of logical connection, including tu'e..tu'u and ke..ke'e brackets, but I was just a bit surprised that multiple bo weren't a feature of the language.
 

lojbab
--
Bob LeChevalier    loj...@lojban.org    www.lojban.org
President and Founder, The Logical Language Group, Inc.
--
You received this message because you are subscribed to the Google Groups "lojban" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lojban+unsubscribe@googlegroups.com.

Jacob Errington

unread,
May 14, 2013, 10:10:33 AM5/14/13
to loj...@googlegroups.com
On 13 May 2013 22:15, Pierre Abbat <ph...@bezitopo.org> wrote:
(Resending; it didn't come back the first time.)
On Saturday, May 11, 2013 21:37:42 Jacob Errington wrote:
> The title says it all; the following won't parse:
>
> {.i broda .ija'ebo brode .iseri'abobo brodi}
>
> It just seems like multiple {bo} is illegal across the board. Bug or
> feature? Could this even be implemented? If it can, should we?

There's only one level of precedence with "bo". If you want more, use "ke".
".i broda .ija'eke brode .iseri'abo brodi" parses, but "ke" is implicitly
terminated just after "brode". I suggest ".ikeja'e", which currently doesn't
parse.


And your first suggestion doesn't give the desired parse. It has ja'e as a tag in front of a selbri (thus the ku doesn't appear as elided) and ke simply acting as a tanru-bracket.

In the case of sentence-connectives, the brackets are tu'u..tu'e.

Jacob Errington

unread,
May 14, 2013, 10:21:35 AM5/14/13
to loj...@googlegroups.com
On 12 May 2013 12:56, Bob LeChevalier, President and Founder - LLG <loj...@lojban.org> wrote:
More broadly, really complex constructs are more easily expressed using gi'ebo/gi'eke for right and left grouping in afterthought, and ga/gi for forethought.  Since these constructs connect multiple "bridi-tails" (selbri plus trailing sumti) within one .i sentence, for maximal flexibility, you have to but all the sumti including x1 after the selbri.  These are also described in that same chapter of CLL.

Furthermore, which I didn't realize earlier, the gi'eke construct is in my opinion unintuitive because it breaks the ordinary rules of ke..ke'e brackets:

{.i broda gi'eke brode ke'e brode gi'e brodu} doesn't parse, even though {ke brode ke'e brode} does outside of a gihek. This makes it impossible to achieve in a gihek the tanru parse {(broda brode) (brodi (brodo brodu))} which would be done with a combination of ke..ke'e and bo as such: {.i ke broda brode ke'e bo brodo bo brodu}

My suggestion would be to remoke gi'eke brackets altogether because they cause unexpected behaviour and limit the possibilities of our speech more than anything. They also have presumably little to no usage.

.i mi'e la tsani mu'o
 
lojbab
--
Bob LeChevalier    loj...@lojban.org    www.lojban.org
President and Founder, The Logical Language Group, Inc.

Ian Johnson

unread,
May 14, 2013, 11:00:42 AM5/14/13
to loj...@googlegroups.com
On Tue, May 14, 2013 at 10:21 AM, Jacob Errington <nict...@gmail.com> wrote:
On 12 May 2013 12:56, Bob LeChevalier, President and Founder - LLG <loj...@lojban.org> wrote:
More broadly, really complex constructs are more easily expressed using gi'ebo/gi'eke for right and left grouping in afterthought, and ga/gi for forethought.  Since these constructs connect multiple "bridi-tails" (selbri plus trailing sumti) within one .i sentence, for maximal flexibility, you have to but all the sumti including x1 after the selbri.  These are also described in that same chapter of CLL.

Furthermore, which I didn't realize earlier, the gi'eke construct is in my opinion unintuitive because it breaks the ordinary rules of ke..ke'e brackets:

{.i broda gi'eke brode ke'e brode gi'e brodu} doesn't parse, even though {ke brode ke'e brode} does outside of a gihek. This makes it impossible to achieve in a gihek the tanru parse {(broda brode) (brodi (brodo brodu))} which would be done with a combination of ke..ke'e and bo as such: {.i ke broda brode ke'e bo brodo bo brodu}

My suggestion would be to remoke gi'eke brackets altogether because they cause unexpected behaviour and limit the possibilities of our speech more than anything. They also have presumably little to no usage.
.i mi'e la tsani mu'o
 
{bo} is hackish, but its meaning is at least determined by the grammar. Grammatically the worst thing about it is failure to elide certain terminators. For example, if {I TAG BO} were instead {I TAG BOhOI} or something, {.i fi'o broda fe'u bo} could be {.i fi'o broda bo'oi} with the {fe'u} elided. This isn't that bad, however, all things said; I wouldn't say it's worth having its own cmavo. Incidentally, why is it that the PEG can't make {.i fi'o broda bo mi brode} parse correctly, whereas it can fix things like JOI connecting LE-sumti without {ku}?

Evidently {ke} is actually even worse, since you can't coerce {GIhA KE SELBRI} to not make a gihe-kek. Why were these designed to be so awkwardly general purpose?

mi'e la latro'a mu'o


To unsubscribe from this group and stop receiving emails from it, send an email to lojban+un...@googlegroups.com.

Bob LeChevalier, President and Founder - LLG

unread,
May 14, 2013, 1:39:21 PM5/14/13
to loj...@googlegroups.com
Ian Johnson wrote:
> {bo} is hackish, but its meaning is at least determined by the grammar.
> Grammatically the worst thing about it is failure to elide certain
> terminators. For example, if {I TAG BO} were instead {I TAG BOhOI} or
> something, {.i fi'o broda fe'u bo} could be {.i fi'o broda bo'oi} with
> the {fe'u} elided. This isn't that bad, however, all things said; I
> wouldn't say it's worth having its own cmavo. Incidentally, why is it
> that the PEG can't make {.i fi'o broda bo mi brode} parse correctly,
> whereas it can fix things like JOI connecting LE-sumti without {ku}?
>
> Evidently {ke} is actually even worse, since you can't coerce {GIhA KE
> SELBRI} to not make a gihe-kek. Why were these designed to be so
> awkwardly general purpose?

I'm not sure I understand your question. one point to note is that TLI
Loglan grammar was originally designed with no formal parser analysis at
all, and this history has driven the subsequent Lojban effort.

a) JCB discovered the works of Victor Yngve sometime in the 60s or early
70s, and therefore got the idea of codifying the grammar in a set of
rules. He also conceived of several goals for this codified grammar
which I don't remember very well. But he was unable to achieve these
goals, whatever they were, though they were associated with encoding
what JCB understood as the "human grammar"
b} Around 1976-78, the effort changed to using a YACC LALR-1 grammar as
a standard for codifying the grammar because several people knew how to
use YACC. Much of the grammar was encoded, but it seemed to be
impossible to get the "machine grammar" to parse things quite the same
as the "human grammar" did.
c) The problem was solved around 1980, I believe by Jeff Prothero, then
a student at the University of Washington, to use elidable terminators
to bracket constructs, which elisions YACC would supply using its error
processing. It took until around 1982-1983 to actually achieve a
complete YACC grammar for the language, using error correction.

When we started redeveloping Lojban, the intent was to retain the Loglan
grammar in its entirety, changing only the words. Thus we were bound by
the design limitations of the original language. JCB attempted to play
copyright games with the formal grammar (as he had with the words of the
language), but he was on impossible legal ground given that so much of
the work had been done by Prothero and others, along with known legal
issues in copyrighting a computer algorithm.

But we had reinvented the cmavo lexicon, and we wanted to include
grammar components for tense and MEX that JCB had never managed. Thus,
initially with the help of Prothero and a guy named Jeff Taylor and
others who knew YACC, I attempted to reimplement the YACC grammar from
scratch, but not really trying to reinvent any wheels. In 1991, Cowan
took over what I had done, and cleaned it up considerably, eventually
achieving the baseline grammar listed in CLL (which is still the
official grammar). But the grammar was still a YACC grammar, with all
its limitations.

Attempts to create a PEG grammar remain unofficial, and frankly I've
never looked at the PEG grammar and probably wouldn't understand it if I
did. YACC was hard enough for me, and having learned the YACC grammar
for Lojban, I never managed to fluently use the supposedly simpler E-BNF
grammar (even though I had learned a couple of computer languages using
BNF).

Thus the long answer to your question, as I understand it is that the
grammar was always intended to be as general purpose as possible.
Elidability of terminators wasn't a high priority in general, though
certain ones were desirable; there was nothing more obnoxious that
trying to figure out what was and was not terminated when you expressed
a string like kukukeiku. (JCB's language used gu instead of ku, and
thus it sounded a lot like baby talk. Lojban with full terminators, is
simply kuku.)

Some of the non-general purpose constructs arose because they couldn't
get YACC to work with fully general constructs, or they required too
much use of obnoxious terminators. Hence the plethora of different
families of logical connectives, each linking a different type of
construct. Those decisions generally dated from the JCB era, though we
added some new things that were connectable (such as relative clauses),
and hence some new families, most of which eventually went away (leaving
for example zi'e which no longer is the basis for a family of logical
connectives). We also abandoned the effort to impose a formal grammar
on PA and UI compounds, so that there are strings of each of those cmavo
that are technically grammatical but make no sense:
pi'epaime'ipipi'e. But for the most part, the fundamental language
grammar remains that of JCB's pre-formal language, with elidable
terminator constructs added where they could enable useful and yet
syntactically unambigious constructs.

John E Clifford

unread,
May 14, 2013, 2:15:55 PM5/14/13
to loj...@googlegroups.com
Or, in short, while Lojban could use full FOPL (augmented, to be sure) to cover every possible situation, the results are too ugly to even consider as a language to speak or write.  Hence, the project is to find the way to take away the maximum of the preciding features of Logic without losing the precision.  To some extent, this is trial and error, but, given that no significant changes have been made in the overall underlying logic, Lojban has done a rather good job of it.  At some point we will get to the aesthetics of whether what we have is really a language, but the vector of progress has generally been that way.



From: "Bob LeChevalier, President and Founder - LLG" <loj...@lojban.org>
To: loj...@googlegroups.com
Sent: Tuesday, May 14, 2013 12:39 PM
Subject: Re: [lojban] Higher-precedence Grouping with {bo} Is Impossible for TAG Sentence Connectives
-- You received this message because you are subscribed to the Google Groups "lojban" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lojban+unsub...@googlegroups.com.

Jorge Llambías

unread,
May 14, 2013, 6:44:07 PM5/14/13
to loj...@googlegroups.com


On Tue, May 14, 2013 at 12:00 PM, Ian Johnson <blindb...@gmail.com> wrote:
 
Incidentally, why is it that the PEG can't make {.i fi'o broda bo mi brode} parse correctly, whereas it can fix things like JOI connecting LE-sumti without {ku}?

I don't think PEG has a problem with it.

Ian Johnson

unread,
May 14, 2013, 11:44:18 PM5/14/13
to loj...@googlegroups.com
.i drani cu'u la camxes .i .u'u mi bebna 
Reply all
Reply to author
Forward
0 new messages