project page
mailing list
Enzyme, simply put, is an engine for storing structured data for structured searching.

Under the umbrella of this simple idea, the Enzyme project consists of several subprojects.

  1. The first is the original student profile management system which was developed at Catalyst Recruiting. This is a fully operational, release-stage MySQL-backed PHP application. Students can register and enter all of their profile information using the Profile Builder. Potential employers can search the profiles by specific criteria using the Profile Search form. There is some documentation and a demo.
  2. The second is the Enzyme Modules which consist of the different components that make up the student profile system, broken down into separate packages. The reason for this is that in a given application you may not need or want to build a full-fledged structured storage, search and display system--you may only need certain components of the system. Also, these modules are intended to generalize to any type of structured data system, not just student profiles. The modules are:
    • EnzymeTemplates -- the template system for displaying structured data.
    • SQL Abstraction Layer (SAL) -- a class for handling and generating complex SQL queries.
    • OOHFORMS-extra -- enhancements to the PHPLIB oohforms library for generating validated, database-backed form elements.
    • SearchForms -- the form system for the search side, for doing structured searches.
  3. Third is the XML-based Enzyme, also known as enXyme. The goal of this project is essentially to be able to map an arbitrary DTD (or XML schema) into a fully-featured Enzyme system. To call it vaporware is a little harsh, but it is under heavy development right now, so some of the features described here are goals. If you are interested in joining the development effort, we sure could use you. Contact me, Clark Freifeld. This project consists of a few modules:
    • XMLschemaParser -- this is really the heart of enXyme: if it does its job correctly, we can then apply any or all of the Enzyme Modules to the relational database schema that the XMLschemaParser generates. What this does is take an XML schema (which describes a hierarchical data structure, a class of XML documents) and generate four things: 1) set of enzyme-compatible database tables 2) form objects for gather and search 3) the appropriate PHP object hierarchy necessary to the EnzymeTemplates module 4) the generic, XML only, template files for regenerating the XML instance documents from the database.
    • InstanceParser -- this takes the PHP object hierarchy and uses it as a guide for parsing XML instance documents into the database.

The system has a wide range of potential applications:

  • Recipes: on the gather-side, you enter a bunch of data for the recipe, say, type of dish (main/side/appetizer), cooking time, ingredients, the procedure, etc. Then on the search side, one can say "show me all recipes that are main dishes, cooking time less than 30 minutes, that contain pork."

  • Dating: on the gather side, people enter their personal data: gender seeking gender, age, hair color, hobbies, etc. The on the search side, one can say "show me all men seeking women, older than 32, who enjoy skiing."

  • Apartments: you enter the number of bedrooms, size, location, rent, etc. For the search, you can say "show me all one-bedroom apartments in the Boston area costing between $500 and $1000 per month."

The list is endless. Of course, many existing web sites do these things, but why reinvent the wheel every time? Our goal is to abstract the process into a core engine and a set of tools so that you can have a basically functioning gather+search site of any kind up and running in minutes. We have all the code for the CatalystRecruiting site, but it is very much specific to the needs of that particular application. We are looking for developers experienced in PHP and SQL (or willing to learn by doing) to help us turn this code into something useful. We are of course also looking for people to do testing, documentation, design, etc. We're wide open.

hits since May 16, 2001.