>I would favor parsing only the highest level (depth = 1) directory. Would >that speed things up? It seems to me that parsing depth = 3 or more would >give you much more to parse, and it would be done everytime a new directory is >opened. I changed it to only parse to directory level 1 and it does speed things up "a bit." Part of the slowdown is also due to the fact that I'm taking the effort to print things out nice, so that requires two extra walks through the dom tree, one to strip the whitespace at the beginning, and one to add the beautifying whitespace at the end. Also, I really don't think my code is very optimal for making the DOM tree from the filesystem info is very optimal. I'm still trying to think up a quicker solution. >> >> directories -> main databases >> xml files -> sub-databases within the main database >> info in xml files -> the column/row info within the sub-database > >Looks good. But we wouldn't use the fuilesystem as an intermediate, right? Right! I'm just thinking of the filesystem as a model of the database, until a database becomes available. >The Workspace/Desktop will be a 'thin-client, frontend' process that >communicates with the middleware via a high-level API. (So, about half of >your work will eventually run from separate processes, Brad.) This is something I *tried* to do in my current code. All of my xml processing code is separate from the workspace and the actual changes I made to workspace.py are very small (only a few lines of code calling the xml functions). Some of it is dependent on the Gtk interface, but I don't think that would be too difficult to change. > >For the sake of allowing other frontends to be used with Loci (for example, a >Web interface), the API will be a 'dialog' between the processes, where the >frontend requests that the middleware do something, and the middleware >responds to that request. For example: > Makes sense. So then when the user is ready to execute a workspace script, the middleware (xml) will be parsed and used to generate code for interfacing with the backendware (the programs)? Am I thinking along the right lines? Brad