The genesis of LGI is the 1991 IEEE TSE paper "The Imposition of Protocols Over Open Distributed Systems", which proposed its basic idea (under a different name), but without the benefit of implementation. The implementation, and further refinement of LGI did not start until 1996, by several graduate students.
The first implementation was due to Junbiao Zhang, who implemented some aspects of the 1991 paper. Next, Victoria Ungureanu produced a complete implementation of a prototype of LGI, called Moses, with several conceptual enhancements.
Xuhui Ao, Takahiro Murata and Mihail Ionescu made many important contribution to LGI and its implementation, including the concept of law-hierarchy due to Ao, which is not included in this release.
Finally, Constantine Serban built a new, cleaner, and much more efficient implementation of Moses, and added to it the Java-based language for writing laws, as well as the support for synchronous communication---this implementation has been tested extensively by by Wenxuan Zhang, with the help of Yingying Chen.
Moses toolkit is implemented entirely in Java. As such, it is supposed to bring about system portability. In practice, however, various components of Java are platform dependent, thus restricting the portability of Moses. Initially, Moses has been developed on Solaris using java 1.2. After a brief stage on java 1.3, most of the functionality has been tested and verified with java 1.4. Later versions were developed to support other Unix and Windows OS mostly using java 1.4.
| Operating System/platform | java 1.2 | java 1.3 | java 1.4 |
|---|---|---|---|
| Solaris/Ultra | Ok/supported | Ok/supported | Ok/supported |
| Linux/Pentium | Not tested | OK/supported | Ok/supported |
| HP-UX | Not tested | OK/summary test | OK/supported |
| Windows NT/2000/XP | Partially (unsuported c-to-c communication) |
Partially (unsuported c-to-c communication) |
OK/supported |
The following is a list of components their development status and support:
| Component/ subcomponent |
Developer | Status | Current support | Notes and comments |
|---|---|---|---|---|
| Controller | Constantin Serban | Release 1 | Constantin Serban | After a number of implementations, it has been redesigned and reimplemented by Constantin Serban 2003-2005 |
| Controller Prolog Support |
Xuhui Ao/Constantin Serban | Release 1 | Constantin Serban | Initially implemented with binProlog and supported by Xuhui Ao. In 2004 Constantin Serban migrated it to Jinni Prolog in order to achieve portability (but at the expense of functionality -- the controller handles a single prolog law) |
| User Interface | Takahiro Murata | Release 1 | - | Most of the implementation of the current applet/UI release is due to Takahiro Murata who also implemented the controller support for the adjacent testing/reflective functionality. Developed mostly in 2002-2003, UI is released without support. |
| Law Server | Constantin Serban | Release 1 | Constantin Serban | Initially Part of the so-called "Controller Server" it has become a component in its own in 2002 by Constantin Serban based on an earlier version by Victoria Ungureanu. The current version (with Windows support)has been developed in 2002 and 2005. |
| Law Tester | Wenxuan Zhang | Release 1 | Wenxuan Zhang | This is a recent component that assists in the development of laws -- especially useful for Prolog laws. It has been developed in 2005 by Bill Zhang who currently supports it. |
| Controller Manager | Constantin Serban/Yingying Chen | Release 1 | Constantin Serban | The actual form of this component has been developed by Constantin Serban in 2002 -2004 and improved, readapted and repackaged by Yingying Chen in 2004-2005. The current support is provided jointly by Constantin Serban and Yingying Chen. |
| Examples and testcase suits | Wenxuan Zhang/Yingying Chen | Release 1 | Wenxuan Zhang | The bulk of examples and testcases have been developed by Bill Zhang. The comprehensive "marketplace" example had been developed by Yingying Chen. 2004-2005 |
| Hierarchies of Laws | Xuhui Ao/Wenxuan Zhang | Alpha Version/ Subsequent Release |
Wenxuan Zhang | Xuhui Ao initially provided Prolog support for hierarchies in a previous version of the controller (2002-2003). In 2005 Bill Zhang has built Java support for hierarchies in the new controller. His next step is to support hierarchies with Jinni Prolog. |
| RMI Laws | Constantin Serban | Beta Version/ Subsequent Release |
Constantin Serban | Developed in 2002-2004 , now it is in the process of optimization and re-packaging for a subsequent release. |