============ ============ Prolog: ============= As I work on my dissertation I have 1) citations in the text 2) a list of sources 3) A master bibliography It would be ideal to drop the text and master bibliography into an engine that would produce a properly formatted list of sources. This would require treating the master bibliography as a querable knowledge base. ========= The rest of this has nothing to do with that. ======== It seems evident that automatically building a traditional relational schema for a DTD is not very easy to do. Instances of *most* document types are better represented as trees. It seems to follow from this that if you wanted to implement a *general* database that would store XML data automatically it should treat a document type as the rough equivalent of a schema as its default behavior. Its next default behavior would be to accession/store a document of a given type as an item (row) in the document-default-heap (the equivalent of a table.) Queries might often take forms like this: Return all documents where John Doe is or Return all $synthetic-document-id, $handle(parent ) from %default-document-heap such-that the document (contains $leaf-content "xml") ================= Of course, if you are going to have to transform serial XML strings into trees to search them then you might as well just store the document in tree form straight away. And if you are going to search document trees you might as well go ahead and build HyTime GROVEs. Having built the document GROVE you might as well go ahead as store that as the tree-form document representation. ================ ================ Questions ================= ================= Are there any generic XML databases like this? That is I give it a DTD. Then I try to insert an instance of that DT and it automatically stores it. Later I can query the document base using set logic over node and string regular expressions. (Based on those queries I can probably also delete and update the document base) If there are such document bases, how (if at all) do they use GROVEs? ================== What, exactly, is dbXML supposed to do?