Some background on some of the discussions we've been having recently (and a hint of why things are sometimes slow!). Below is a note I sent earlier today to some of the Sun developers working on SW, XML and OpenDocument. Unfortunately, I learned yesterday that Daniel (Vogelheim) recently left Sun, which is a big loss. In any case, this gives a sense of the technical direction that we hope to take. Daniel's a sharp guy, and we were in complete agreement on all this.

Peter, I presume the glue code that Daniel mentions towards the end could also be done in Python ...

Begin forwarded message:

Am still hoping for responses from Sun people to my list posting on SW/XML dev. I suppose I'm leaning toward the notion of not worrying about adapting CSL to OD, and maybe later thinking about import/export support. But whatever the case may be, there needs to be changes somewhere in OD to make the functionality we want possible, and we need to make some progress on figuring them out.

BTW, am looking through some emails from Daniel earlier. A few relevant excerpts:

First, about OD; on notion of embedding bib metadata in wrapper (this when we were earlier thinking of using MODS; RDF changes this, but the same idea):

Thinking farther out, how do we imagine including the bib data source? I could see embedding a bibliography.xml file in the wrapper optionally. If yes, does that in any way get controlled?

We're wanting to use MODS, of course, and there would be value in standardization.

Full agreement on the bibliography.xml stream in the wrapper. And yes, for interoperability this should be standardized as well. Since I don't really know about bibliography data, I'm fine with MODS. I'm sure the TC would go along as well, since MODS is standardized.

To me is this is the most important issue to tackle now, and this is OD territory. WRT to the RDF question, I would say RDF is also standardized (as a model).

On details of integration (from last August; Oliver mentioned something like this more recently):

To go back to this subject -- how the actual formatting might happen -- what's your perspective now?

The same, really. As I've mentioned in another mail, the part that reads the bibliography entry and stores it in the document does not yet exist.

There's semi-good news on that part, in that I brought the subject up with another Writer developer (who's got more say than I do). He agreed on the approach, and essentially said we'd need such a mechanism anyway for all sorts of extensions. So there's a good chance we'll do that eventually. It will likely be in the help-to-self-help form, in that we'll provide some kind of mechanism for external components to hook into writer and be responsible for certain kinds of embedded data. Such components would still need to be written by non-Sun people. The bad part is that the chances we do this now are close to zero.

I ask because I've decided to start working on my own solution using XSLT 2.0. The stuff could probably be ported back to 1.0, but it turns out to be rather complicated problems that need to be solved. For example, to get this rendering is deceptively complex, and involved create a virtual tree of the entire bibliography:

    (Doe, 1999a, 1999c)

Sounds fine. Since right now full runtime integration isn't likely to happen, I don't see any problem in using XSLT 2.0. I would hope that in the next version (OOo 2.1 or something) XSLT 2.0 would be available. But that of course depends on the adoption of XSLT 2.0 by other parties. We just hook into other people's XSLT processors.

Note: on above, there's a developer in Australia looking at porting citeproc to Python + XSLT 1.0, so that may be a possibility.

Later, on possible glue to integrate citeproc-like XSLT processing:

To provide a straw-man of what I *hope* it would look like: There is some OOo glue (C++, Java, StarBasic) which would basically look something like this:
xBibs = new com.sun.star.xml.dom.XDocument
xFields = xDoc.getFields.getEnumeration
while( xFields.hasMoreElements )
  xField = xFields.nextElement
  if( xField is bibliographic field )
    xBibs.appendNode( xField.content )
' now we have a DOM tree with all bibliographic reference
call XSLT-processor on xBibs
' now write back results
xFields = xDoc.getFields.getEnumeration
while( xFields.hasMoreElements )
  xField = xFields.nextElement
  if( xField is bibliographic field )
    xNode = find-proper-node( xBibs )
    xField.representation = set representation from xNode

How that makes any sense to you... The acutal work would be in the 'call XSLT-Processor' line. The remainder would be the OOo-specific glue. I don't think we'd get by without it completely. Ideally, with some care, the same XSLT could be used for off-line processing, i.e.:
unzip -p bla.sxw content.xml | xsltproc bib.xslt > content.xml

This just gives a hint of what I've been saying: I've gone over and over this for the past two years, and I'm tired. I want to start making some progress, and the most likely place to do that is to figure out how to integrate the bib metadata and citation solution in the context of the metadata-in-RDF discussion. The stuff that Andreas and Oliver do will have to wait, but those are implementation details.

Bruce


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to