To address your concern about efficient data import: both the java and perl programs have options to generate flat-file representations of the tables for native table loaders.
Some other points about the BioText parsemedline.pl program:
- as with the java program, it is unnecessarily database-specific (although only in a very minor way compared with the java code);
- it was written without the strict or warnings pragmas, and as a result, there are actual (minor) bugs in it due to misspelling of the lengthy variable names;
- Medline keeps changing its DTDs, so to capture all the data in the 2005 release of Medline requires some tedious changes to the SQL table definitions and code.
Question: I know this is not necessarily a good idea for performance reasons, both in loading and querying, but ... is it possible to automatically translate DTD descriptions into SQL DDL and corresponding code to parse the XML and load the data? (Ignoring the complication of data types).