I've been watching people hack DITA for years trying to deal with product and sometimes feature names in a consistent XML-like way.
Prior to DITA, I worked on a similar XML architecture (concept/task/reference) with a custom processing kit. With numerous product names and feature names in an almost continual state of flux, we decided to treat product names and feature names as global variables
with a mapping file for the literal strings (in English). The literal product and feature names were then inserted at build time and appeared in the output. (We used editor maps to virtually display the same content in the authoring editor for the convenience
The inherent problem with this approach is that the mapped strings must be translatable. As products and features can have plurals and possessives, these must also be handled in the mapping file and accounted for in the variable element.
It is not permissible for instance to have a construct like: <varProduct>s or <varProduct>'s appear in the XML content as translators will translate the mapping file elsewhere and not be able to easily reconcile the plurals and possessives in the content itself.
(I think these were the only variations we had to worry about, but it's been a while I admit.)
So we expanded the variables schema to include attributes for plurals and possessives in the variable elements themselves, which the writers selected at authoring time. This required some training as the process is a little abstract. You do not for instance
add an apostrophe to the product XML element when building a possessive, but select an attribute in the editor and let the build do it.
The mapping file then contained base product and feature names plus their plural and possessive forms.
A build engineer maintained the mapping files and creation of new variable codes supporting first instance of new features and product names. We had workflow where writers would contact the engineer when needing a new variable value that was not already covered,
though most were set up at the beginning of a release with the identification of new products and features.
The upside of this approach is that the output for product or feature names was entirely automated. If feature or product names changed late, as often happens in the software industry, we tweaked the mapping file at build time and the writers didn't have to
do anything at all.
As far as graphics and special formatting in some product and feature names went, we handled this purely at build time with special processing instructions for the applicable variables. Otherwise, we're really talking about desktop publishing practices in XML
and I'm not sure if DITA should inherently support this or if those features should be handled with a custom processing chain for those particular elements. Strictly speaking, formatting and graphics are a rendering operation during build time. In XML, writers
shouldn't have to care about how to format a product name or add special graphics to it. That's my philosophy as an anti-DTP guy.
I'm sure there are other ways to accomplish the same thing, but this global mapping architecture worked really well, saved a lot of time, and was just generally really convenient all around for everybody once implemented.
In short, I inherently think of product and feature names as variables and whatever architecture handles and processes them must be able to address the issues of variables in text.
Manager & Information Architect
On 1/14/2013 1:43 PM, Kristen James Eberlein wrote:
A thread about difficulty in reusing products names has cropped up on the dita-users list.
1) Information architects or editors design a reuse strategy that revolves around using the <ph> element to hold product names. They then discover that they cannot put a <ph> element within any of the following elements:
2) Another team decides to use <keyword> to hold their product names -- better choice -- but they also discover that they cannot put a keyword element within a <wintitle> element;
they have to duplicate their product names within <text> elements for use within <wintitle> elements. And the <tm> element is not available within <text>.
3) Yet another team is stymied because their product name contains typographic formatting (superscript, subscript, bold or italic formatting, an inline image) that cannot be contained
in either the <keyword> or <text> element. And while the text element can nest, the @outputclass attribute is not available.
Architects and the writers are caught between a strong desire to reuse content and ensure that product names are consistently used, and a need to have their company's name render
Thoughts about how we might try to address this problem? And sense about how big (or small) this problem is?