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 | 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 | 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.
|
| 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 following features are considered the most important by the author (and are also what makes SIRA_PRISE noteworthy in his opinion):
The following features are on the author's wish-list but not yet implemented :
|
| 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)
|
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