Manuel Carro <boris(a)aaron.ls.fi.upm.es> wrote: I find it of interest that you are transforming xml datasets into prolog with xsl... specifically the reason your snippet caught my eye is I'm about to try out some previous work with Topic Navigation Maps with Prolog (which is new to me), well basically to see what fits well and what doesn't. I note that SWI Prolog comes with an SGML parser which supports XML, including XML namespaces. This package has particular support for RDF. I don't know whether Ciao's and SWI's licences are compatible, but it might be worth looking into. I'm told that SWI Prolog is being used to process 90MB RDF files.
I also note that Prolog is vastly more convenient for XML processing than XSLT is. Prolog "Document Value Model" data structures for representing XML are pretty much bound to be much cheaper than the "Document Object Model" data structures used by most XSLT processors, if you have a reasonably compact representation for text. (SWI Prolog uses garbage-collected atoms for this.)
My own experience is that having Prolog, Scheme, and Haskell available it'll take a gun pointed at my head or an extremely large bribe to make me use XSLT for anything.
I suspect that the fundamental problem is with the representation that is being generated as the output of the XSLT processing step.
Is there any redundant information? Is there information which is seldom needed, so it could be loaded on demand? Could the information be put into a CDB file and Ciao's memory be used as a cache?