This document is obsolete. Please see install page instead.
The Trio system is implemented in the Python programming language and layered on top of the PostgreSQL open-source DBMS. The system comes shipped with two user interfaces: trioplus
, a command-line interface (CLI), and TrioExplorer
, a web-based GUI with user-friendly control features, help pages, and some sample applications and queries. Trio also includes a basic Application Programming Interface (API) similar to the Python DB-API specification, on which the user interfaces are built.
The complete Trio functionality is available through the Python implementation, including a TriQL grammar parser and a hierarchical rewriting architecture that creates standard SQL queries from TriQL, which are then executed over a relational encoding of our data structures. Only a few complex operations such as on-demand lineage traversal and confidence computation are implemented as stored procedures.
The core functionality such as data-intensive fetch operations and cursor management are implemented redundantly in Python and a precompiled C-code library extension using the PostgreSQL-specific Server Programing Interface (SPI) to achieve better performance under PostgreSQL when the SPI option in trio.cfg
is enabled. If you are interested in porting Trio to another DBMS, please contact us!
In its default configuration, the Trio system requires the following software packages:
trioplus
and TrioExplorer
.TrioExplorer
.TrioExplorer
is built.Currently we are running the system successfully on Linux, Mac OS X, and Windows XP.
Since Trio is deployed on top of the above packages, we suggest to install them one by one in the order as given below with respect to some dependencies among the different packages. For convenience, most of the required Python modules (Pylons, PyGreSQL, etc.) can be installed via ''Easy Install'' for both the Linux and Windows platforms.
If you can’t use Easy Install
for some reason (e.g., due to your firewall constraints), stop by the Python Cheese Shop, which is a comprehensive software repository for Python, where you should also be able to download the required Python packages and then install them manually. For Mac users, ''Darwinports'' is an alternative package manager. For Linux, any package manager should do just fine.
Install the packages in the following order:
plpgsql
is enabled (check so when asked by the installer).plpgsql
language support anytime and make it the default extension for newly created databases by adding it to PostgreSQL’s template database using ‘createlang -d template1 plpgsql’.bin
directory is in your PATH
environment (i.e., the libpq
library for client connections can be found by Python). spi/triospi_win32.dll
to PostgreSQL’s lib
directory (e.g., C:\Program Files\PostgreSQL\8.1\lib
) renamed as triospi.dll
spi/triospi_linux_x86_32.so
to PostgreSQL’s lib
directory renamed as triospi.so
spi/triospi_macosx.so
to PostgreSQL’s lib
directory renamed as triospi.so
TrioExplorer
paster
binary is not already in your PATH
environment, you might want to edit explorer/start_te_server.sh
such that the shell variable PASTER
points to the paster program, which is a tiny Web Server that comes with the Pylons package.paster
executable is not already in your PATH
environment, you might want to edit explorer/start_te_server.bat
such that the variable PASTER
points to the paster command that is installed with Pylons.TrioEplorer
to create new user roles and database instances.TrioExplorer
should now be reachable from your browser, e.g., using http://localhost:8080/
. We recommend using Internet Explorer
, which seems to be a little faster than some others.
Preparing trioplus
for its first use requires a new user role and database instance be installed manually (denoted in the following as ‘foo’ and ‘bar’), which should be different from the default PostgreSQL instance, and which requires logging in onto the PostgreSQL server with admin privileges (denoted in the following by the admin user name ‘postgres’).
If you already have created a user login and database instance under TrioExplorer
, you may just skip this step and directly jump to the last bullet, i.e., run ‘python trioplus.py -u foo -d bar -p’.