POET - The Object Database Company

Web Resources for POETs

Over the last year, the amount of information available on the web has exploded. Most software companies have web pages, and many research projects also present information on the web. But it is easy to spend lots of time trying to find things on the web if you don't know where to look! This document is intended as an index to web pages that may be useful for POET employees and users, and it contains anchors to the web pages I mention. I intend to maintain this index, so please tell me if you know of sites that should be added or removed; just send mail to jonathan@poet.com

Don't forget to check out POET's web site, which contains a lot of information, a free downloadable version of the POET object database, extensive documentation, example programs, etc.

This page avoids evaluating our competitors. Since I work for POET Software, I'm not necessarily objective, and I hate to see vendors bad-mouthing each other, so I don't want to post criticism here. Opinions expressed on this page are mine, not those of POET Software.

Happy surfing!

Jonathan!


POET's Web site

POET Software has a web site which contains marketing materials, technical overviews, and a downloads page. The POET tutorial is available on this site, including source code for the programs that were used for the tutorial.


Object oriented databases

ODMG is the standards committee for object databases. Almost all commercial vendors who have real object databases are ODMG members -- this site has a complete list of member companies.

University/research projects:

The source code for these systems is available via anonymous ftp. There are lots more that I have not listed here -- I know that the ones I have listed are pretty good, and really are object oriented databases. I don't know about all the others.

SHORE has been used to create a GIS system called Paradise.


Object relational databases

Object relational databases are similar to object databases, but they use a different approach: instead of adding database functionality to objects, they extend SQL to make it more object oriented. They do not give you integration with the objects you use in your OO programming languages.

University/research projects:

Postgres is the predecessor of Illustra, and is available in source code. There is also lots of tech documentation on this system.

One of the most interesting things available on this site is the query optimizer for Postgres. Like most modern query optimizers, it is rule based and easily modified. Their query optimizer is written in LISP.


Distributed objects and ORBs

OMG is the standards committee for CORBA. For more information on CORBA, see the Iona home page.

PostModern Computing has written an ORB in JAVA. You can download this from their web site.


Database researchers and research groups:

These groups are doing interesting database research. They are not all object oriented or object relational. Alas, these links keep changing on me, so some of them may be out of date.

Industry research groups:

IBM's Starburst query optimizer seems to be well regarded. For references on Starburst, look at this.

University research groups, individual researchers:

Akmal's home page has been very popular in the ODBMS community. It includes information on benchmarking.

There is also a searchable bibliography for database-related papers.

Michael Ley also has a Bibliography Server on Database Systems and Logic Programming which contains, among other things, a bibliography on the Volcano query optimizer.

The University of Wisconsin has created the oo7 benchmark for object databases.


The C++ programming language

The C++ Standard is available online in .PDF format. This draft is from the April working papers. The September working papers are available in .HTML format. You can find them here.

A good starting point for C++ resources is available on Yahoo's C++ reference page. If you are new to the C++ programming language, you may want to take a look at the C++ FAQ.


STL

Hewlett-Packard's official STL ftp directory contains the original implementation of STL, which is free, fascinating, and buggy. Want something reliable? Take a look at the ObjectSpace STL<ToolKit>, a commercial product which is much better tested, and runs on lots of platforms.

Rogue Wave has implemented STL as part of its Standard C++ Library. You might want to take a look at this program excerpt for an excellent example of how STL can simplify programming.

There are two useful tutorials for STL. D.R.Musser's STL Tutorial gives lots of links to other information and is well written. Mumit's STL Newbie Tutorial has lots of useful examples, and shows you how to avoid some common problems.


Object oriented design

Here are some good starting points for info on OO design. Conspicuously absent is a good design patterns web site. I have looked at several patterns sites, but haven't found one I like yet. There must be one out there, so please let me know where it is!

Design freaks may also enjoy looking at the design of Fresco, a large project which uses the Design Patterns approach.


Cool web technology

The web seems to be driving a lot of the most interesting new ideas in computer science. Suddenly, you easily can make information available to the whole world, and the web has become a huge network of loosely related content. The challenge is to organize it, to coordinate it, to make it searchable, to create active objects. I believe that object oriented databases can play an important role in this.

For general technical information on the web, my favorite starting place is The Web Developer's Virtual Library. This is the place to look for info on CGI interfaces, the HTML language, programming tools, etc. Of course, another important starting point is the NetScape home page which changes constantly and always has cool stuff. (How can one company produce so many good things? And it all works!)

Java is an object oriented programming language for the web. Java syntax looks a lot like C++, but the type system is not as ugly, and it does not have pointers. Java lets you develop small Applets, which are programs which can be easily downloaded and validated to ensure that they do not contain viruses. Your web browser can execute these programs if it supports Java. Don't confuse Java with JavaScript, which is simply a new name for NetScape's LiveScript. JavaScript is not object oriented, but it is becoming an industry standard, so it is also worth knowing about. In some ways, JavaScript is to Java as C++ is to C. The two languages have similar type systems. Conveniently, Java has metainformation for objects and classes, has a type system that is very similar to C++, and has a similar syntax for class declarations.

Lotus and IBM have created the InterNotes Web Publisher, which lets you create an interactive web site by converting Notes documents, forms, views, and attachments into HTML. The workflow aspects of this product are extremely interesting -- it lets you use Lotus Notes to coordinate and collect web information from many sources throughout your organization, then translates the documents and views into a series of HTML pages. But work groups on the web are hot these days, and Lotus has strong competition in Collabra.

The Excite Center has a NetScape plugin which lets you use OLE controls as though they were Applets. Their web site has some really cool demos.

EBT (Electronic Books Technology) is a company that specializes in SGML and HTML technologies. They have developed DynaWeb, a web server which not only performs full text searches, but maintains the structure of the document in the results. For instance, a search might return the names of books. If you select a book, you can see which chapters contained hits. To see this in action, look at Novell's publications server, which uses DynaWeb. I find this much more useful than the search results provided by most web search engines. When you use this, think about it from a database standpoint. POET is going to be supporting full text search, and we are doing a project which involves SGML import for a client, so the technologies used for DynaWeb may not be that far removed from what POET will be able to do in the near future.

Need to parse HTML or SGML? You need SP. Need to validate HTML or SGML documents? You need NSGML/S or SPAM. Both are available from James Clark. Be persistent -- his site is often hard to connect to. This software is free, well written, and it works (Java has an HTML parser, but rumor has it that it doesn't work that well). You will also need a DTD. The one I am using was written by Dave Raggett <dsr@hplb.hpl.hp.com>. For good general information on the HTML language, I also like Dave Raggett's home page. I also like HTML Working and Background Materials.

Need to write web documents? Please use a real HTML editor, like HotMeTaL from SoftQuad. You can download an evaluation copy for free, and it will validate your web pages to make sure that they are correct. You can also get a list of extensions that have been used in web pages so that you know which web browsers will be able to read them. About 50% of the web pages I have seen written without validating HTML editors have errors, so I highly recommend using a real HTML editor.


POET Home | About POET | Products & Services
Download Software | Partner Program | About Object Database | Contact POET


Copyright 1996 by POET Software.
Information: info@poet.com
Technical support: support@poet.com
Web page comments: webmaster@poet.com
Internet and web consulting provided by TriNet Services, Inc..