Author Archives: admin

XML Prague 2013

Somewhat surprisingly, the XML Prague 2013 paper I mentioned in an earlier post was accepted. Considering how little time I had to write it (“writing” is probably a bit of a stretch, “drafting” is more to the point), I have to say I’m extremely pleased. I’m very much looking forward to presenting it.

I’m going to talk about the eXist-based publishing solution I’ve been busy doing for a client. It began as a humble PDF-on-demand service but came to include a lot of stuff I find cool in and slightly outside the world of XML. There’s XProc, XQuery, RelaxNG, the process XML abstraction I have been working on, XML authoring, nightly mirroring from SQL databases to eXist, and more. And it all seems to come together quite well. I’ve had fun working with all this so I’m hoping it might be of interest to others, too.

XML Prague, of course, is worth a visit regardless. Think of it as an XML weekend about cool new things frequently starting with an “X”, interesting people, Czech hospitality (including Czech beer), and one of my favourite cities, Prague.

XML Prague Whitepaper Woes

Why is it that every year, I promise myself to finish my (XML Prague and otherwise) whitepapers early in order to avoid spending the last few nights before a deadline writing furiously but always end up doing just that, very frequently having to share whatever little time that remains with customer projects, family engagements and various Christmas preparations, seeing that yes, Christmas arrives at around the same time this year as every other?

Processing XML with Process XML

I presented my ideas on processing XML using XML at Balisage, earlier this year. While there I actually demo’d converting my Process XML draft to a FreeMind-based user interface at the MarkLogic-sponsored demo jam. Well, it wasn’t as much a user interface as it was a representation of the XML that might be used to create a user interface with, but it was a start and today I’ve finally taken it a few steps further.

Um, that’s not exactly true either. I’ve worked on my Process XML some more during the last few weeks, because I’m using it for a customer project. What started out as a DTD is now a RelaxNG compact schema that uses xml:base to ease processing, covers most of the current Calabash version (1.0.3-94, as I write this), and is actually useful.

But today I wrote “live” Process XML, XSLT and pipelines that will make it a reality. The GUI will not happen for some time yet, because there is no need for one in the current implementation, but it’s going to be used for describing various XML-related processes that include XProc pipelines on an ​eXist​ server handling on-demand publishing.

And it’s very cool.

eXistential Issues

I’ve been toying with eXist with increasing fascination, lately. I’ve even been wishing I was more of a programmer, reading up on http, REST, and other stuff somewhat related to running an XML database on the web. I’ve been actively trying to find out what server(s) to use to run my blog in parallel to an eXist setup.

It’s got to be some kind of crisis and I am going to seek help.

Topic-based

I recently held a two-day workshop on topic-based information for a client faced with moving from paper-based documentation to multiple outputs in multiple media, especially in “smartphones”. Now, before drawing conclusions, you should know that this particular client does have a reasonably mature process supported by a reasonably mature system. They already produce in XML, they translate their content to multiple languages, and they already publish automatically.

Their information is very much “book-oriented”, however. It’s sequential and it has interdependencies all over the documentation.

They were suggested “topic-based information” as means to an end, and my task, therefore, became to educate them about what is meant by topic-based information, what the intended advantages and frequent challenges are, what standards there are out there to support the concepts, and how it alls relates to their situation today. And of course, I needed to tell them about DITA because while DITA equals neither topic-based nor multi-channel publishing per se, it has become something of a de facto standard for topic-based information and there is a lot to be learned from it.

I remained largely neutral concerning DITA throughout the workshops, but nevertheless, I was forced to reconsider and, in some cases, re-evaluate some of my opinions. DITA is what it is, it is widespread and it is constantly being developed, and it cannot be ignored if discussing topic-based information solutions.

Take the strict topic orientation as a primitive example. One task, one topic. No dependencies, no context or hierarchy linking the topic to others from within the topic itself, no broken cross-references, et cetera. I have frequently dismissed parts of this as the inevitable consequences of ill-designed systems, but as I was highlighting practical examples from my client’s current information, I did see the value of the concept of a single, isolated task beyond mere system limitations. See, while a system does help if implemented properly, any dependencies in the information will nevertheless make it more difficult to maintain and update if used in several different contexts. I could clearly see this happen with my client’s documentation, and while I’m not at liberty to discuss any specifics, theirs was a very good case for minimalism.

More obvious, perhaps, were the strategies implied by DITA concerning online documentation. If publishing for a smartphone, for example, it is obvious that size does matter. There is no room for large overviews or tables, nor is there a place for long narratives. There is no way to know how the reader arrived at the current topic so there is no way to give that narrative, or a longer list of contents or a list of related topics that aren’t essential but nice to have, etc. There are obvious implications on large content, including eliminating those pesky overviews, but also on how to present single, self-sufficient topics.

You have to make every such topic completely independent from the next or the previous ones, because there is no way to know what the next or previous ones were about. The limited space needs to focus on solving the task at hand so giving references and links is tricky at best.

As the topic is included in a publication later on, in DITA maps, and always in a specific context, the target format is only known when creating the publication, and therefore DITA maps are the logical place to include any such references in. Maps provide a logical place to address anything context-related, including hierarchies, references, etc.

DITA is certainly not the only way to achieve strict topic orientation, but it is relatively unique in offering a comprehensive method for achieving it, including minimalist concepts, online documentation requirements, etc, in one place. One could argue the merits of something like S1000D for purpose-filled topical documentation, but while S1000D is many things, I doubt it will ever be accused of minimalism. And these days, DITA is expanding outside its original box within software documentation and, increasingly, solving problems in new domains.

DITA brings with it a number of challenges (that’s the same as “problems” but in presales-speak), of which many have to do with how to restore some of the inherent readability of sequential content meant for paper-based books, and I remain unconvinced in this regard. Markup-wise, the DTD leaves room for improvement, and I think there are better ways to design linking mechanisms (even though DITA includes some clever ID-related tricks). I think specialisation suffers because the original DTD suffers, and I think DITA struggles when it comes to profiling information.

But just as DITA is not the only XML-related standard to offer topic orientation and reuse, it is not the only one with problems. It is perhaps too easy for a grumpy old XML guy like me to dismiss DITA because I find problems in its execution, because there is a lot of good things in it, too, and this blog entry is my way of saying that I am reconsidering.

Who says you can’t teach old dogs new tricks? Next I’ll be embracing Java.

Jaguar Meetup

Went to a Jaguar meetup today. For those of you not in the know, the meetups are mostly about middle-aged men looking under the hoods of each other’s cars and occasionally about hot dogs and Cokes, but always very much about enthusiasts. They are about confirmation, about you not being alone in at least one of your obsessions, and about venerable British cars of which some are modern and reliable but most, um, charming.

In short, if you don’t know what I’m on about, skip to the next blog. Actually, skip to the next one anyway because I’m done for now.

Going to Do DITA

I have a new client and I’m going to do DITA and topic-based information for them. For some reason, all I can think of is Al Pacino and that memorable scene in Godfather III, “just when I thought I was out, they pull me back in.”

Steve Jobs Is Guilty

Writing this on my daughter’s MacBook. Um, actually it’s mine. I’m in need of a new laptop and she’s got a newer MacBook now, and this was the most economical solution, all things considered.

I have to say I rather like it.