About the Nenok Project

The Nenok project was developed as a PhD thesis in computer science by Marc Pouly an the research group for Theoretical Computer Science at the University of Fribourg (Switzerland). The project was guided by Prof. Dr. J. Kohlas and has been started as a master thesis in 2003.

Why Nenok ?

The Nenok framework is based on an abstract concept called valuation algebra (see here). This abstract groundwork was the cardinal influence on the naming of the Nenok software project. The word Nenok comes from Persian mythology and appoints the "perfect, spiritual world of being". Its contrary, the "real, concrete world of being" is called Geti.

Project Versioning

The Nenok 1.0 version was developed in the field of a master's thesis. Its main purpose was to propose a prototype of a generic framework for local computation which could later be extended to a complete workbench. This version was never published but inspired later versions exceedingly. Its main contribution was to study different concepts of modern software development in order to realize an algebraic framework based on object-oriented programming techniques. Already from the very first beginning, local computation algorithms were described as message passing schemes that work on physically distributed data. The key motivation behind the development of Nenok 1.1 was therefore to take this distributed nature of data into consideration. Nenok has been equipped by a Jini communication layer which allows valuation objects to be distributed over different hosts in a common network. Nenok 1.2 completed these ambitions by adding transparency such that local as well as remote data is processed indistinguishably. Further, the development of a graphical user interface (GUI) took central stage. The Nenok 1.3 release is rather an ambition for performance and usability. Most features of the foregoing versions have been improved - predominantly the performance of the local computation framework. Additionally, the GUI was extended by many new features as for example the various import possibilities. All graphical features became multi-threaded and a suitable representation of valuation networks was added. Many new features on the algorithmic level was brought along by the Nenok 1.4 release that also attended the end of the author's PhD thesis. This release includes a generic representation of the semiring framework and a first implementation of the dynamic programming scheme. Nenok 1.5 was released during the author's postdoc time at the Cork Constraint Computation Center in Ireland. The main focus of this release is on generic constructions: the semiring framework was improved using Java 1.5 generics, and a second construction called Kleene valuation algebras for the solution of path problems by local computation was added.