OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

dita message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: runtime vs build time and navref

Both the architecture spec and language reference use the terms 
"runtime" and "build time" (also found one occurrence of "build-time" in 
the language reference).

However, these terms do not appear to be defined anywhere and it's not 
entirely clear what they mean, at least not in all cases.

This is important because the processing and behaviors of some elements 
are defined in terms of "runtime" or "build time" behavior, for example 
the navref element, which is "resolved a runtime". Since runtime and 
build time could be different for different types of outputs, there is 
significant potential ambiguity in what the implications are for a given 
element in a given output or processing context.

I think the intent is to distinguish the processing of DITA source into 
some rendered form (build time) and the access or delivery of that 
rendered form (and, of course, the direct access and delivery of 
unmodified DITA content), but it's not always clear what that other 
processing is and is it being applied to DITA files or to some rendition 
of the DITA files.

For example, if I transform DITA files into a package of Windows help, 
is that run time or build time? I think the intent is that it is build 
time, but then there is no (DITA-specifiable) runtime behavior because 
the result of the build process is not DITA. That is, the DITA spec can 
only directly define the processing applied to DITA data, not to data 
generated from DITA content. What we can do is define the *intended* 
behavior (not processing) of the rendered result, without specifying 
when or how that behavior is achieved (which is what talking about 
things like "runtime" and "build time" is doing).

In the case of navref, which is where I started to notice this issue, 
the text says:

"The <navref> element references a map file from within a map file. The 
reference is resolved at runtime, typically to pull together the 
navigation for multiple components into a product navigation."

What does "resolved at runtime mean" (and what does "product navigation" 
mean)? Does it mean that the rendered result, in whatever is doing the 
rendered (e.g., Eclipse help) presents what appears to be a single set 
of topic heads and topic references or does it mean that the rendered 
result presents a navigable link from one navigation context to another?

Instead of saying "resolved at runtime", the spec should say what the 
presentation and interaction behavior expectation is and, if it can 
vary, under what conditions does it vary.

For example, I assumed on first reading that when generating HTML or 
PDF, navref would have the effect of creating a "compound map" that is 
processed equivalently to the same map held in a single documentd. But 
clearly that is not the intent, at least of the Toolkit implementors, 
who have not implemented navref for HTML or PDF processing.

On second reading, it's still not clear to me whether or not treating 
navref as a transform-time include is appropriate behavior for navref. 
That is, is navref closer in semantics to a conref to a map (in order to 
use all its contained topicheads and topicrefs) or is it closer in 
semantics to a topicref, which simply creates a link to the topic 
referenced? Upon reflection I think it's the latter, but it's not clear 
from the text that that's the case.

While it would be ideal to clean up all the places where runtime and 
build time are used and replace them with more declarative definitions, 
I know that's not practical for 1.1. However, I think we do need clear 
and formal definitions of the terms "runtime" and "build time" and what 
they mean for different well-established rendition types (HTML, PDF, 
help, etc.).

[As a side note: I have something of an issue with the mention of 
Eclipse-specific behavior as anything other than examples--however it's 
clear that a lot of the spec reflects things that were done specifically 
for Eclipse that and, at least today, only have meaning there and are 
defined in terms of Eclipse behavior. I don't think that's appropriate 
for a general standard. I don't expect it to be addressed in 
1.1--there's not time. But it needs to be addressed in 1.2. If I was 
Sun, for example, I'd be rather upset that my competitor's IDE had 
privledged status in this otherwise general standard.]


W. Eliot Kimber
Professional Services
Innodata Isogen
8500 N. Mopac, Suite 402
Austin, TX 78759
(214) 954-5198


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]