Mark Tarver
6/18/2015 10:49:00 AM
On Friday, June 12, 2015 at 5:52:43 PM UTC+1, juniama...@iftm.edu.br wrote:
> Dear members of this Lisp discussion group.
>
> In order to carry out a large engineering project, one needs the colloborative work from a large body of experts. When it comes to software, this means libraries and compilers without bugs, and continually updated. There are a few examples in Lisp where this is true. To cite two instances of well maintained projects: maxima and the sbcl compiler. Unhappily the quantity of libraries and applications that are left unfinished, poorly documented or crawling with bugs amply surpass the well supported systems. Let me give a few references of important libraries that one may wish to deploy, but are virtually unusable due to their not being well documented, or not robust enough.
In my experience, working with buggy ill/undocumented code is a time sink and you're better off writing code yourself. If you're doing NLP, then Shen-YACC (runs under CLisp and SBCL) may provide a short-cut because you can enter CF grammars directly.
(defcc <sent>
<np> <vp>;)
(defc <np>
<det> <n>;) ....etc.
and its very fast (it is used to specify the Shen reader).
Weird error message like "The variable CONTENTS is unbound." and "NIL is not a real" etc. often disappear when you are working with the benefit of static type checking which Shen supplies.
Re binary trees; Justin Grant wrote a program in Shen which is used in the standard Shen test suite but whether it is suitable for you or not, I cannot tell.
Re needing it for yesterday; understood. Powerful as Shen is we have yet to make time flow backwards.
Mark
>
> Before that let me give you my background. I work with natural language processing. People in this area are sure of only one thing: they will fall short of their goal. The perspective is even bleaker if they cannot rely on previous work. After this short note, let us proceed to theme of this posting.
>
> People need persistent objects. I could not find anything wrong in rucksack, except for the poor documentation. There is Brad Beveridge's tutorial that, as said in common-lisp.net, is a good place to get started. However, I miss examples showing the incorporated btree to obtain sorted output. Another thing that should be exemplified is how to code a persistent unique id. Here is how the id is created in Dr. Beveridge's tutorial:
>
> (defvar *unique-id* 0)
>
> (defmethod initialize-instance :after ((obj contact-details) &key)
> (setf (unique-id-of obj) (incf *unique-id*)))
>
> Of course, after exiting the program, the state of the id creator is lost.. One could answer to the request for better documentation with the quotation by Christopher Faylor: "Somebody Has To Do It(tm). Are you volunteering?" - Well, yes, I am volunteering, if Brad (can we be on first name basis?) accepts my collaboration. To summarize, the tutorial should give a btree sorted answer to a query and a persistent unique id.
>
> The hh-redblack tree library case is worse than the simple lack of examples and tutorials. To a tyro, it seems that this library has a bug, that the test unit misses. If one starts with an existing persistence file, she receives the following error message.
>
> The variable CONTENTS is unbound.
>
> I invite Phil Hargett to address the issue as soon as possible. I need that library badly. I need it for yesterday. I have an accepted paper that uses it.
>
> I could substitute cl-btree for Phil Hargett's library. However, cl-btree is in even worse shape. When I try it, I get a message stating that the value 83 is not of type CHARACTER.
>
> Enough for persistence. In a future article posting, I will make myself busy finding more things to complain about. Be ready!