Copyright (c) 2001 Massimo Zaniboni, e-mail: zanibonim@users.sourceforge.org
Jude is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
Jude is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Jude; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
Jude uses different libraries and tools. See the distribuition package for more info about their license.
All the documentation is under the terms of GNU Free Documentation License.
Jude project is part of Massimo Zaniboni degree thesis for Department of Computer Science, University of Bologna, Italy. Relatore: Prof. Paolo Ciancarini, Correlatore Prof. Dario Braga.
Jude is a rapid application development tool that permits to formalize a problem and then obtain a full featured and easy to use data management, workgroup application that can be further adapted implementing specific agents.
Jude is based on a knowledge-base with an object-oriented structure on the server side and a compound-document, agent-based user interface on the client side.
Relational database, Object-Oriented database, document-management systems, XML documents, compound-documents, declarative programming, agent-based systems and Java are well understood technologies but when you use them alone in order to build data-management applications you encounter many problems. For example relational databases management systems cannot support new data types and for some applications the allowed data are not sufficient. They lack support for long-transactions. The development of an application using object-oriented database management systems encourages procedural coding over declarative coding and this tends to produce code hard to maintain because there are many relationships between different parts of the program. Jude tries to join all benefits of these technologies in a coherent application framework.
Jude permits developers to specify an abstract, simplified view of the world we wish to represent using an high-level, declarative, object-oriented language and then to obtain a full functional work-group application. Jude try to join in a simple but powerful way many powerful programming paradigms: object-oriented, declarative, agent-based and compound-document. Developers can extend application functionalities adding new agents to the system. Developers can reuse already specified knowledge-base clusters (there are already clusters related to physics, organization relationships, chemical). Developers can reuse already specified agents, in particular agents related to user interface.
Jude permits users to manage (view, edit, retrieve) documents and structured informations using a coherent and simple to grasp environment based on Java and Swing library.
This is a presentation of Jude system.
These are screenshots of Jude in action.
This is a detailed description of Jude. At the moment the document is written in a bad english and is a work in progress. If you want to help me, you can fix some problems reading directly from the lyx version and correcting all bad chapters.
This is the Jude framework documentation extracts from JavaDoc comments. It is avaible only off-line (using "make doc" command) because it is bad written, change often and is huge to upload on SourceForge site.
These are the Java class resulting from the conversion of the SimpleLogic class specified in the knowledge-base. It is avaible only off-line (using "make doc" command). However the best source of information is the direct navigation in knowledge-base using Jude user interface.
At the moment Jude is in alpha state. It is only a prototype. Its scope is to test pro and cons of underlying ideas. It doesn't implement yet all the mechanisms described in this paper and also the implemented mechanisms aren't real-world usage ready. Source code and documentation contains comments about the many things to do.
Jude is under the GNU public license, so you can improve it. This is the main page of Jude project at SourceForge site. In this page you can download it or found all current information about the project (last packages, last news, bugs, news groups etc.) If you want to partecipate actively at Jude project you are welcome !
If you are interested there are software metrics about Jude .
At Jude page on SourceForge site you can download latest released packages (stable version) or latest development releases directly from CVS.
I have developed Jude in order to make a workgroup application for Crystal Engineering Laboratory (Rieducational Lab for friends :-) at Bologna (Italy). The work at laboratory is wonderful thanks to spontaneity and happiness of Dario, Fabrizia, Lucia, Marco, Francesca, Chiara, Laura, Demis, Alex and all others boys. They give me many suggestions and motivations and I give them some worries for my endless degree thesis. :-) Thanks to Alessandro Ronchi, who has helped me particularly during the last month before thesis dissertation, when my energies were low but there were many thinks to do! But the most important thanks are for my family that doesn't know informatics but has believed in me!
Do you like to see your name ? First put your work ! :-)
In order to build the first version of Jude I have used many useful free tools. Some of them are:
Linux, KDE, Gnome and all programs of Mandrake distribution: any comment is superflous
IceWm: a nice windows-manager that uses a little amount of memory.
Jikes: impressively fast compiler donated from IBM to GNU Community.
Fastjar: a replacement for slow jar tools.
Icons in directory org.jude.client.editor.resource.20x20: they are created from Dean S. Jones and are under his Copyright. Beautiful Iconsthat anyone can use with the only burdens of mention the author.
Grasp: a nice editor with CSD diagram support.
Emacs: a powerful editor, highly configurable, but requires some time to configure it.
Jde: a good IDE for Java under Emacs.
SourceNavigator: a rather memory consuming development environment but with advanced source code navigation utility, this was my final choice after month of development with each of other editors.
Gimp: it permit to me to build a decent logo for Jude in ten minutes.
XSB: a deductive database under the GNU license with an active support of their authors (they answered to my questions in less than a day... better than a commercial products !).
Eiffel: my preferred object-oriented language and probably the best designed, my source of inspiration !
Lyx: I have used it to write this documentation, better than Microsoft Word for technical documentation.
Latex: the tool that make the formatting work for Lyx. It permit to produce documentation that look very professional.
html2latex: the tool that translates the documentation from Latex format to Html.
Dia: a simple to use but powerfull diagram editor.
KTimeclock: a time tracker utility that support an unlimited hierarchy of projects, sub projects and tasks
citeseer.nj.nec.com: a wonderful search engine for technical reports
babytrans: permit to translate a lot of English terms to Italian.
www.extremeprogramming.org: useful hints
mmake: a utility that build for me a decent Makefile for my Java project
log4j: a beautiful logging statement utility for Java from Jakarta group.
Jmol: a good 3d Molecule viewer.
www.javaworld.com: a good sites containing a lot of documentation about Java programming.
Graph program - Copyright (C) 1995, 1996 Leigh Brookshaw under GNU License was adapted to Jude needs.
JavaNCSS: a Source Measurement Suite for Java
Artistic Style: permit to indent Java source files.
gPhoto: permit to build in a flash a screenshot gallery.
Tips about all aspects of pulling off a successful presentation!
Source Forge : host Jude project giving an impressive amount of services for workgroup developement.