Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Parser & analyser for Lojban
C Perl C++

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
contrib
dfasyn
rtg
testing
tests
.gitignore
COPYING
LICINS
Makefile.dos
Makefile.in
NEWS
README
README.DOS
README.GIT
README.PLIST
action.perl
add_trace_to_tabc.pl
bccheck.c
bccheck.h
bctables.in
build_kit
canonluj.c
canonluj.h
canonluj.pl
categ.c
cm.h
cm_gather.c
cm_main.c
cm_output.c
cm_scan.l
cm_translate.c
cmafihe.1
cmavotab.c
cmavotab.h
config.pl
configure
connect.c
conversion.c
dict2inc.pl
dictaccs.c
dictaccs.h
doskit.be
doskit.fe
elide.c
elide.h
erasure.c
errorscan.c
extradict
functions.c
functions.h
htmlout.c
jbofihe.1
jvocuhadju.1
jvocuhadju.c
latex.c
latex.h
latexblk.c
lex1.c
lex2.c
lujvod.pl
lujvofns.c
lujvofns.h
main.c
make_release.pl
memory.c
minitouch.c
mk_enctab.pl
mk_fetab.pl
mk_vfetab.pl
mkdict.pl
morf.c
morf.h
morf_dfa.h
morf_nfa.in
nodes.h
noralujv.pl
output.c
output.h
output2elide.pl
output2table.pl
patterns
places.dat
places.pl
properties.c
reduced_cmavo
reduced_gismu
relative.c
rpc2x.y
smujajgau.1
smujajgau.c
stag_dfa.h
stag_nfa.in
tenses.c
terminator.pl
terms.c
textblk.c
textout.c
tracebk.c
translate.c
tree.c
uncom.l
version.txt
vlatai.1

README

################################################################################
$Header$
################################################################################

First : The author can be reached at  :  rc@rc0.org.uk

Second : My web-page for jbofihe is
           http://www.rc0.org.uk/jbofihe

Third : For some years now, I have had no further interest in this software, or
for that matter in Lojban.  I have done a one-off CVS->GIT conversion in April
2010, followed by minimal fixes to get it to compile again, so I could publish
the history on github and hopefully prevent it getting lost.  However, I have
no further plans to work on the software, provide support, accept patches or
make releases.  I continue to hope that somebody in the Lojban community might
take this software over.

================
WHAT IS JBOFIHE?
================

jbofihe is a command-line driven program with the following functions :

- checking grammatical correctness of Lojban text
- displaying successfully analysed text with nesting of grammatical constructs
  shown (either inline or as a tree)
- displaying approximate word-for-word English translations of the Lojban
  words, with some limited 'part-of-speech' adjustment of the English forms.
- showing which sumti fill each of the places of each selbri

Bundled with jbofihe are 4 other programs :

- cmafihe is a cut-down jbofihe which has no grammar checking (so it's
  particularly useful for getting an initial word look-up on badly formed
  texts)
- smujajgau builds the pre-sorted binary format Lojban->English word database
  that jbofihe and cmafihe use
- jvocuhadju determines the optimal lujvo for a given tanru input to it as
  command line arguments.
- vlatai analyses a Lojban word for syntactic correctness, determines the type
  of word (gismu, cmene, lujvo, fu'ivla etc), and reports whether there are any
  cmavo prefixed to it.  (It is the really the testbench for part of jbofihe,
  but it is sufficiently useful that it is bundled as a program in its own
  right.)

=========
COMPILING
=========

The build sequence looks like this (assuming you want to install under
/usr/local)

perl config.pl --prefix=/usr/local
make all
make install

The config.pl script takes these additional (optional) arguments :
--debug to compile with debug instead of optimisation
--installprog=<name> to specify an alternative installation program.
--nommap to use fread() rather than mmap() to access the dictionary
                  (use this on non-Posix systems)
--embded to build a minimal (gismu+cmavo) dictionary into the executable
  (rather than requiring a dictionary database separately at runtime)

There are some pre-requisites for compiling.  You need the following
tools/libraries installed to have a hope of building the software :

- bison (yacc probably OK, edit the makefile)
- flex (lex probably OK, ditto)
- an ANSI C compiler (gcc recommended)
- perl
- make (GNU make recommended)

It should be possible to compile and run the software on Unix and on Win32
systems (cygwin).  For reference, the software was developed on Linux on a
486/120 with 32Mb of RAM.  As of version 0.35, I have ported the software to
MS-DOS, using the DJGCC compiler.  The DOS version should run in Windows DOS
boxes too.  It requires some form of DPMI server; one is bundled for use on
bare MS-DOS systems.

The following tools are recommended but not essential to support some of the
output formats:
- LaTeX (to format the highest quality outputs from the s/w)
- a web browser (to display the intermediate quality output)

As from version 0.35, minimal word-lists (gismu and cmavo) are bundled with the
source.  You can download lujvo lists separately from
ftp://xiron.pc.helsinki.fi/pub/lojban/wordlists.  If either (or both) of the
files lujvo-list and/or NORALUJV.txt is found at build time, it/they will be
included into the glossing dictionary that jbofihe and cmafihe use.  Otherwise,
only gismu & cmavo will be included.  (Any lujvo will then be glossed by
breaking it into individual rafsi and glossing those.)

The file sizes in bytes of the versions I'm using are as follows

 808959 NORALUJV.txt
 292281 lujvo-list

and their md5 checksums are

d750de398740a2ba701422a466ddbeab  NORALUJV.txt
dbd82f42f4156a2a1801e2a5ec1e551e  lujvo-list

=======
RUNNING
=======

If your compiled dictionary is not in the default location (i.e. you are not
installing properly or want to use a private local dictionary), set the
JBOFIHE_DICTIONARY environment variable to where you have installed
smujmaji.dat

The command line is documented in the manual pages.  Some brief examples follow :

Suppose your Lojban text is in the file sample.txt, containing

  mi klama le zarci

jbofihe -x -b sample.txt gives :
    [ ( mi                )            << klama  >> ( le                      
    [ ( I, me             ) [is, does] << go-ing >> ( the                     
    [ ( klama1 (go-er(s)) )            <<        >> ( klama2 (destination(s)) 
    1 2                   2            3         3  4                         

    zarci            ) ] 
    trading place(s) ) ] 
                     ) ] 
                     4 1 

jbofihe -k sample.txt gives :
    Token list before preprocessing

    CMV : mi [me]
    BRV : klama
    CMV : le [the described]
    BRV : zarci

    ------------------------------
    Token list after preprocessing

    CMV : mi [me]
    BRV : klama
    CMV : le [the described]
    BRV : zarci

    (0[mi {klama <le zarci>}])0

jbofihe -t sample.txt gives :
    | +-CMAVO : mi
    | | +-BRIVLA : klama
    | | | +-CMAVO : le
    | | | +-BRIVLA : zarci
    | | +-SUMTI_6
    | +-BRIDI_TAIL_3
    +-NO_CU_SENTENCE
    CHUNKS

cmafihe sample.txt gives :
    mi <KOhA3> [I, me] klama <BRIVLA> [come] le <LE> [the] zarci <BRIVLA> [market]

cmafihe -b sample.txt gives :
    mi    klama  le  zarci  
    KOhA3 BRIVLA LE  BRIVLA 
    I, me come   the market 

'jvocuhadju gerku zdani' gives :
    Possible rafsi for input words :
    ger ge'u 
    zda 
    --------------------
     Score  Lujvo
    --------------------
      5878 gerzda
      6367 ge'uzda

Something went wrong with that request. Please try again.