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: RE: [dita] ITEM: Cross-references to Topicheads and Implicit Title-only Topics

I'm not able to follow all this.  It's sure sounding complicated.

We're not talking about adding anything to DITA 1.2 here, are we?


> -----Original Message-----
> From: Eliot Kimber [mailto:ekimber@reallysi.com] 
> Sent: Sunday, 2009 March 29 8:58
> To: Michael Priestley
> Cc: dita
> Subject: Re: [dita] ITEM: Cross-references to Topicheads and 
> Implicit Title-only Topics
> On 3/28/09 1:37 PM, "Michael Priestley" <mpriestl@ca.ibm.com> wrote:
> > Great write up, and thanks for doing the research. I for 
> one would be
> > interested in seeing the table you put together.
> I will post it separately.
> > One thing that makes me uncomfortable in this is the 
> requirement to treat
> > an xref to a topichead as being equivalent to an explicit 
> request to chunk
> > the topichead. That means for example that we get quite 
> different output
> > behavior depending on things that might be buried in 
> content and under
> > various sorts of conditions. In other words, we wouldn't 
> know whether to
> > chunk the topichead or not until we had parsed every piece 
> of content, and
> > doing something like conditionally processing an xref in or 
> out (which is
> > pretty common) would result in the topichead being chunked 
> or not, which
> > isn't an intuitive side-effect.
> Good point. I think you're right: chunking should be 
> determined entirely by
> information in the map. Thus an xref to a non-chunking 
> topichead would not
> result in a chunk.
> In light of this, I think that processors should *not* be 
> allowed to do
> chunking of topicheads by default, since that could lead to 
> unexpected and
> surprising behavior from two different output processors for 
> the same input
> data set. I think. Need to think about the practical 
> implications of that
> more, especially in the case where you want to share map 
> components between
> an HTML-specific map and a PDF-specific map and might naturally want
> different chunking implications for topicheads. It would 
> definitely be a
> burden to have duplicate map structures that differed only in 
> the chunk=
> values on topicheads. But it may be that setting chunk= on 
> the root map
> element solves the problem--not sure I fully understand the defaulting
> implications in that case.
> >   And what happens with keyrefs, which might
> > legitimately be pulling in just the text of the topichead 
> and not want a
> > link?
> Removing the requirement for implicit chunking on xref should 
> avoid this
> ambiguity, yes?
> > Speaking of keyrefs makes me wonder about the general 
> practice of linking
> > to a topicref as a way of linking to the resource the 
> topicref points to.
> > It's using the topicref as an indirection mechanism, which 
> is fine when
> > we're using keyref (because it's an explicit, designed 
> redirection system
> > - it always means "point to the thing this points to"), but 
> this seems to
> > be adding another level of indirection beyond keyref and I think it
> > creates ambiguity (do I want to point to the thing - the 
> nav point - or
> > the thing it points to - the potentially generated header topic?).
> > You've taken the chunk attribute to-content or to-nav 
> values as way to
> > disambiguate, but what if someone wants to do both? For 
> example, someone
> > is reusing a set of topics - so they organize the topics in 
> a map, add
> > their own headings to act as organizers for the new groupings, and
> > generate both new navigation files and new header topics 
> based on the new
> > organization.
> > 
> > Keyref vs topicref-ref:
> > 
> > <keyword keyref="blat"/>
> >         pointing to a topicref that points to a topic, 
> becomes an xref to
> > that topic
> >         pointing to a topicref with no href, becomes just the text
> >         pointing to a topichead that gets explicitly 
> chunked out, becomes
> > an xref to that topic
> >         pointing a topichead that isn't explicitly chunked 
> out - does it
> > become the text, or a request to chunk?
> > 
> > Now how about:
> > 
> > <xref href="mymap.ditamap#blatid"/>
> >         what is pointing to the topicref buying us that 
> pointing by keyref
> > wouldn't?
> > 
> > Net: could we simplify the problem by using keyref as our explicit
> > redirector? 
> Hmm--I'm not sure I fully understand your point about "doing 
> both"--what
> would it mean, practically, to have a link that points to 
> both a navigation
> artifact and a topic?
> But in any case, I think you ask a good question: given the 
> existence of
> keyref does it make sense to allow an href= pointer to a 
> topicref also do
> indirection?
> My initial answer is driven by a basic principle of hypertext 
> systems: the
> nature of the address should *never* affect the semantics of 
> the link that
> uses the address. This principle is explicit in the W3C's 
> addressing and
> linking standards (HTTP, URIs, etc.).
> Or said another way: you should *always* be able to change one form of
> address to another equivalent form and get the same 
> processing result. This
> is certainly the principle defined by the W3C for Web 
> technologies (e.g., it
> doesn't matter what form of URI you use to get to a resource, 
> it's the same
> resource and the processing result is always the same).
> The indirection mechanism in DITA is not keyref but 
> topicrefs. Pointing to a
> topicref, by any means of address, is pointing to a topicref and the
> semantics of that pointing are determined by the nature of 
> the topicref and
> the nature of the linking element, not the syntax chosen for 
> addressing.
> What keyref provides is a late-bound addressing mechanism that makes
> pointers context dependent. That is a necessary feature of DITA (and
> hyperdocument management systems in general) but it doesn't change the
> semantics of the resulting relationships thereby created.
> Note that DITA could have *always* allowed href= on elements 
> that 1.2 is
> allowing keyref= on (e.g., term) and the processing results 
> would have been
> the same as for keyref. DITA didn't because we realized that it was
> impractical to have hard (early bound) links to things from 
> topic content
> (and implicitly or explicitly indicated that xrefs, while a practical
> necessity, should be avoided for topic-to-topic links as much 
> as possible in
> the absence of late-bound addresses).
> Keyref makes topic-to-topic links *practical* because of the 
> late binding of
> initial addresses to ultimate targets but it doesn't change 
> the meaning of
> the relationships established.
> Thus, I would expect the processing result for xrefs to 
> topicrefs to be the
> same whether done via keyref or href=. Of course, having said 
> that, I would
> at the same time say "you should always use keyref" for the 
> simple reason
> that it's generally reliable and manageable whereas direct 
> href= is not. But
> we still have legacy content where href-based xrefs are made 
> to topicheads
> and topicrefs and therefore we have to define clearly what that means.
> The following is my attempt to enumerate all the possible interesting
> combinations of xref and topicref configuration. In this discussion
> "topicref" means a topicref element that ultimately points to a topic,
> "topichead" means a topicref element with only a navigation 
> title, "textref"
> means a topicref element with only a linktext element. 
> Topicrefs that use
> navtitle or linktext and topicheads that include linktext 
> shouldn't change
> the nature of the relationships established between xrefs and 
> topics or
> navigation artifacts.
> 1. xref to topicref: effective link is to the topic(s) 
> ultimately addressed.
> 2. xref to topichead:
>    - If chunk has no effective value, xref is to the 
> navigation artifact
>    - If chunk has the effective value "to-content", the xref 
> is to the topic
> implied by the topichead (per my proposal as modified below to require
> explicit chunk= specification in this case)
>    - If chunk has the value "to-navigation", the xref is to 
> the navigation
> artifact
> 3. xref to textref: This is effectively an error condition 
> because there is
> no explicit or implicit target for the xref, only text, and should be
> treated the same as any other unresolvable pointer (e.g., an 
> href= to a
> missing resource or a keyref to an undefined key).
> Given the above, I modify my proposal as follows:
> Item (B) should now read:
> B. For topicheads that are the targets of xrefs, if the 
> chunk= value is
> Unspecified or "to-navigation" the resulting link is to the navigation
> artifact in the rendition, if any. If the chunk= value is 
> "to-content" then
> the xref is to the generated topic as defined in item (A).
> My first item (C) is deleted (there should be no allowed 
> processor-provided
> default chunking of topicheads).
> Cheers,
> Eliot
> ----
> Eliot Kimber | Senior Solutions Architect | Really Strategies, Inc.
> email:  ekimber@reallysi.com <mailto:ekimber@reallysi.com>
> office: 610.631.6770 | cell: 512.554.9368
> 2570 Boulevard of the Generals | Suite 213 | Audubon, PA 19403
> www.reallysi.com <http://www.reallysi.com>  | http://blog.reallysi.com
> <http://blog.reallysi.com> | www.rsuitecms.com 
> <http://www.rsuitecms.com> 
> ---------------------------------------------------------------------
> To unsubscribe from this mail list, you must leave the OASIS TC that
> generates this mail.  Follow this link to all your TCs in OASIS at:
> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgr
> oups.php 

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