The Third Manifesto

List of Projects

TTM home

Below is a list of projects related to TTM that have come to our attention.  See also Implementers' Reflections for further information from the authors of some of these projects.

Contents:  Rel     Duro     D4     Muldis Rosetta     Db ("D flat")     Opus     CsiDB     MighTyD     Web Relational Blocks    Dee   Ph.D. thesis by Erki Eessaar   TclRAL  RAQUEL Ingres Project D SIRA_PRISE Relational Etudes Alf

If you would like to propose a TTM-related project for inclusion in the list, click here.

Project Name

Link

Description

Rel http://dbappbuilder.sourceforge.net/Rel.html An implementation of Tutorial D, pretty much "by the book", developed by Dave Voorhis.  Rel is a continuous work-in-progress; for the current limitations, please see <http://dbappbuilder.sourceforge.net/Rel.html#Limitations>  Hugh Darwen had no difficulty in installing Rel and getting it running on Windows XP Pro and Windows Vista, in spite of having to install Java first.  Rel is used by students at Warwick University, UK on Hugh Darwen's  course on relational theory <http://www.dcs.warwick.ac.uk/~hugh/> and on Dave Voorhis's "Multi-User Database Systems" course at the University of Derby, UK.

 

Duro

Release 0.13 available (March, 2008) with a new Tutorial D interpreter.
http://duro.sourceforge.net A project by René Hartmann, whose original aim was to create a relational database library based on TTM, written in C.  It provides a relational algebra and transactions, and is implemented using Berkeley DB.  Duro now includes a Tcl interface that supports Tutorial D expressions (but not statements).  Now with an interpreter that supports Tutorial D statements, it is moving towards being an RDBMS and not just a library.
D4 http://www.alphora.com The first known attempt at a commercial implementation of TTM.  Syntax similar to Tutorial D.  Alas, Alphora eventually found it necessary to add "support" for SQL-style nulls, finding a conflict here between TTM and their primary design goal of automating application development.  Nevertheless, D4 conforms in many other respects and its authors say that TTM "ideas ... have helped us achieve a level of automation that we never dreamed possible when we first set out to build the product."  An early version included type inheritance with specialization by constraint, but this  eventually had to be withdrawn.

 

Muldis Rosetta http://www.muldis.com/ Currently in the pre-alpha implementation phase, Muldis Rosetta is a rigorously defined attempt to completely and uncompromisingly implement all of TTM and its related articles, and to provide an effective solution for cross-DBMS portability; its core is an API definition, that interchangeable back-ends implement.  It is being written in correspondingly pure Perl 6 and Perl 5 versions, and for the former it might become the very first native database solution.  Muldis Rosetta is implemented as a virtual machine, and has its own new "D" language named "Muldis D".  Muldis D is syntactically simpler than the average general purpose language and is partly intended for use as an intermediate language over which other D languages or API wrappers can be implemented.  It takes the Perl 6 language as one of its main influences. Muldis Rosetta is a free/liberated and open source project, which is intended to become industrial strength, and be commercially supported.

 

Db ("D flat") Db description Final year project by UMIST student Peter Nicol.
Opus Link no longer available (01 June 2007) Solo effort by David Cauz, in the syntactic style of C, claiming conformance to much of TTM.  Work in progress.
CsiDB

Some information about CsiDB

CsiDb is a C++ library developed internally by an international corporation, and used in a general bookkeeping and accounting application. The application is complex and database-intensive, accommodating a wide array of bookkeeping practices. CsiDb is an ongoing attempt to simplify interaction between the application and the database by providing a native C++ interface to a back-end DBMS. The interface allows users to easily build relational query expressions which are eventually translated into SQL. The interface is modelled closely on the semantics of Tutorial D and the other concepts in The Third Manifesto. The library has been under sporadic development since 1999, by a single developer. As of mid-2004, it provides a robust and fairly complete query capability, but only rudimentary functionality for database updates. It has been successfully used to simplify and speed up significant portions of the application, replacing or supplementing an in-house object/database mapping layer.
MighTyD

http://sourceforge.net/projects/mightyd

A final year project by undergraduate students at the University of Warwick, UK, 2005-6.  MighTyD (get it?) is a prototype implementation of Tutorial D with some of the extensions proposed for temporal database support proposed by Date, Darwen, and Lorentzos in Temporal Data and The Relational Model.

Supports scalar operators involving intervals and relational operators PACK, UNPACK, and most of the U_ operators.  Intended for teaching purposes and for further extension by anybody who might be so inclined.

The project was highly acclaimed by the assessors at Warwick University.  The team: Rachel Bowers, Adrian Hudnott, Sergey Petrov, Tom Pick, Issam Souilah.  Hugh Darwen was their appointed "customer".

Web Relational Blocks http://services.alphaworks.ibm.com/webrb/ Relational Blocks is a visual language for constructing enterprise applications (an enterprise application is one whose GUI drives transactional access to database tables with non-trivial business logic).  WebRB is an implementation of the Relational Blocks language as a software-service that runs in a standard browser. Although WebRB is not a DBMS nor does it directly expose a database language, it is influenced by TTM in two ways. First, relations are the only data-type which flows between components of the system (relvars, widgets, and algebra blocks), although of course strings, integers, doubles, etc. are supported as attribute types. Second, WebRB uses relational algebra (specifically the relational algebra, named A, that is given in Databases, Types and the Relational Model, Third Edition, Appendix A) rather than SQL. These characteristics enable the visual language to suffice without developers adding any imperative code.

 

Dee http://www.quicksort.co.uk An implementation of a D as an extension to Python. It is built on the relational algebra operators and aims to meet all of The Third Manifesto's RM and OO requirements. From the developers of ThinkSQL.

 

Relational and Object-Relational Database Management Systems as Platforms for Managing Software Engineering Artifacts http://digi.lib.ttu.ee/i/?85&ref=7 A Ph.D. thesis by Erki Eessaar, Tallinn University of Technology.

"The main areas of this study are relational and object-relational data models and their suitability in the systems that help to manage software engineering artifacts."

Much of the thesis is devoted to a comparative study of SQL's versus The Third Manifesto's "object-relational" data models.

 

TclRAL http://tclral.sourceforge.net/ TclRAL is an implementation of the relational algebra concepts in TTM as an extension of the Tcl language. It does not attempt to mimic the syntax of Tutorial D, but does implement a complete set of relational operations in a manner that is adapted to the Tcl programming environment.

Raquel Database System Open Source Project http://computing.unn.ac.uk/raquelDBsystem/ A prototype of a DBMS that executes statements in the RAQUEL notation has been published on the Internet.  RAQUEL is designed to qualify as a valid D and express the relational model defined in The Third Manifesto.  RAQUEL has been developed at Northumbria University to reflect the concepts of the relational model in a way that maximises their functionality and minimises their complexity.  Information about the Raquel Database System is available from http://computing.unn.ac.uk/raquelDBsystem/ .
As a DBMS needs a ‘driver application’ to supply it with statements to execute and to receive the consequences of their execution, a prototype GUI Frontend has also been published that is designed to help create statements in RAQUEL and receive error messages and query results.
The prototype is the start of an Open Source project to evolve the DBMS into a commercial product.  The prototype software runs on Linux.  The source code of both the DBMS and the GUI can be downloaded from SourceForge at http://sourceforge.net/projects/raqueldbsystem/files/ .
The DBMS prototype implements Project and Restrict operators, and a range of related Natural Join and Generalised Join operators; plus assignments for Retrieving query data, Inserting and Deleting relvalues, and creating Real (or Base) relvars; the scalar types implemented are the Truth, Number and Text types.
As a prototype, the DBMS is still too limited to be of real practical use.  Its biggest limitation is that the ability to create/remove relvars can only be done by manipulating the storage of the relevant Meta DB relvars.  Implementing create/remove assignments is the next priority.
Ingres Project D http://community.ingres.com/wiki/Project_D
Ingres home page
E-mail: adrianh who is at 
dcs.warwick.ac.uk
Ingres Project D is a project to add support for the Tutorial D language to Ingres Database server. Ingres Database server already has two data definition and manipulation languages, SQL and QUEL, where the latter originates from the tuple relational calculus. Project D will enable database development using a fully compliant D development environment consisting of Ingres Database server and a superset of Tutorial D, with supporting tools. It will succeed where QUEL succumbed to SQL, and in doing so rejuvenate the original Ingres vision of a high performance relational DBMS and at the same time augment it to include the more recent work of Date and Darwen. It will deliver an industrial strength DBMS that will eventually implement everything in The Third Manifesto and Temporal Data and the Relational Model.

Ingres Project D is being constructed as a collaboration between Ingres Corporation, Adrian Hudnott, who is a PhD student at the University of Warwick in the UK, and Kai-Uwe Sattler's research group at Technische Universität Ilmenau in Germany. Original research is being carried out to support development of the following features for Project D.

  • Enforcement of complex data integrity constraints with only a very low impact on performance for most constraints
  • Materialized views/virtual relvars
  • Semantic optimization of relational expressions
  • Efficient multiple simultaneous assignment
  • Temporal database optimization
  • Specialization by Constraint
  • Unrestricted updates to virtual relvars (where possible)
  • Self-organizing physical storage structures ("autonomous DBMS")
 
SIRA_PRISE http://shark.armchair.mb.ca/~erwin. SIRA_PRISE is an effort started by Erwin Smout to build a usable TRDBMS.

The following characteristics distinguish SIRA_PRISE from most of the other TTM projects mentioned on this page :

  • The engine is stand-alone and needs no other external software than a Java VM to run in.
  • It deliberately does not try to create a full-blown D as its language. This makes SIRA_PRISE (and its DML language) behave more like a "traditional" data sublanguage than like a D.

The following features are considered the most important by the author (and are also what makes SIRA_PRISE noteworthy in his opinion):

  • Efficient enforcement of data integrity constraints of arbitrary complexity.
  • Support for multiple assignment, albeit not exactly and entirely the TTM kind.
  • Support for Temporal data through support for interval types.
  • Support for plug-in types and operators (User-Defined types and operators using a user-provided Java implementation).
  • Clean separation between the logical design and the physical design of a database.

The following features are on the author's wish-list but not yet implemented :

  • Support for Specialization by constraint
  • Support for distributed databases
  • Support for TTM-style UDTs (i.e. without requiring a user-provided java implementation)
re: Relational Etudes  https://code.google.com/p/re-relational-etudes/ re is an implementation of the Relational Model by Eugim B. Migue. Specifically, it tries to implement the ideas presented in Date and Darwen's book, titled Databases, Types and the Relational Model (The Third Manifesto) and is based quite closely on Tutorial D

re is implemented using PHP; thus, re can also be called as a "PHP API", or a "PHP Framework"/"PHP Library". But whatever fashionable name re might be generalised to, it must be understood that re's basis is a rigorous scientific theory. PHP was chosen as the implementing language for a variety of reasons. First, PHP is popular enough. For this reason, this project hopes that a useful and foundational theory can be used (even if not to its full potential) and appreciated by a wider audience. Another is that PHP has certain features which allow for a more "straightforward approach" on some implementation-related considerations.

Alf
 https://github.com/blambeau/alf 
(source code)

http://rubydoc.info/github/blambeau/alf/master/frames 
(documentation)

 

Alf is a pragmatic tool that, among other things, provides the relational algebra in a shell. It provides a (straightforward but useful) implementation of almost all Tutorial D relational algebra operators. Each of them comes as single shell command taking relation operands from SQL tables, CSV files or other Alf commands. 
 
Alf also provides a functional domain specific language (DSL) for evaluating relational queries directly in Ruby, the programming language in which it is implemented. 
 
Under the covers, Alf aims at bringing together the agile, pragmatic and test-driven oriented programming of the Ruby world and the sound and powerful approach to relational theory offered by TTM and related research. In that respect,  Alf also aims at becoming an educational and research tool.

 

© Hugh Darwen, C.J. Date 2006

Date last modified: 21 July, 2011