[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lojban] tersmu 0.2



I am pleased to announce a new release of tersmu, a semantic parser for
lojban.

Some of you may remember a preliminary release I made towards the end of 2011;
I picked up the project again a few months ago, and have reworked and
significantly extended it. The project is not complete, but it has reached a
natural point for a release.

It now accepts almost arbitrary grammatical lojban, and translates the input
to a predicate logic form. It currently mostly ignores indicators and frees,
even those which arguably should be rendered in the logic, but otherwise
implements every construction bar a handful of obscure or difficult cases
(detailed in the file BUGS in the source tree).

Its primary purpose, at least in its current incarnation, is to implement a
comprehensive set of rules to handle the interactions between the various
logical features of lojban - such as the variously positioned connectives,
embedded quantifiers and modal operators, sumti and bridi anaphora, and so on.

You can test it without installing, either by talking to the bot 'tersmus' on
irc (#lojban on irc.freenode.net), or by sshing to thegonz.net with username
'tersmu', password 'tersmu'.

The source (GPLv3; written in haskell) is here:
    http://gitorious.org/tersmu

If you have cabal, the haskell package management system, tersmu can be
installed with "cabal update && cabal install tersmu".

Some examples:
    examples from CLL:
	https://gitorious.org/tersmu/tersmu/raw/examples/16.loj
	(that's chapter 16; change the number for other chapters)
    alis (by paragraph):
	https://gitorious.org/tersmu/tersmu/raw/alis:examples/alis.loj 


I have attempted to implement baseline lojban, CLL+xorlo, where possible.

I should probably briefly mention here where I have seemed obliged to depart
from this baseline. Despite extensive attempts, I could not find reasonable
comprehensive rules which incorporate CLL's account of {na} as a selbri tag,
nor CLL's rules on scope of variables outside of a prenex. Instead, I treat
bare {na} as identical to {naku}, and (roughly) unprenexed variables as
scoping only over the remainder of the sentence in which they appear. I also
ignore CLL's rules on rebinding bound variables and on "simultaneous
quantification" in termsets, since neither fits with the idea that {PA da}
should introduce a quantifier in the usual sense of predicate logic.

There are also many cases, too numerous to list here, where baseline
documentation is not detailed enough to completely determine the
transformation rules. {go'i} is a good example. In these cases, I have been
guided by the BPFK pages in the first instance, and then by parsimony, general
logical and lojbanic intuition, usage, and in some cases simply what fits best
with the rest of the algorithm. The writings of xorxes, on the BPFK sections
and elsewhere, clarified many points; discussions on irc and/or this list were
valuable in clarifying others. Many of the decisions are however certainly
questionable, and I'm willing to be convinced that they are wrong!

In many cases I have avoided making any questionable decisions at all by
simply copying lojbanic constructs into the logic. So, for example, the logic
allows for non-logically connected propositions precisely analogous to
lojban's non-logically connected sentences. So what I'm calling a "logic"
doesn't even have an obvious semantics, so arguably isn't worthy of the term;
there's plenty of room here for future work.

Martin

Attachment: signature.asc
Description: Digital signature