XML linking (my draft comments)

I'm putting typos and a few textual corrections at the bottom, in case the
editors care.

Before I start being grumpy let me say that this is a great start!


Link formatting and link behaviors considered harmful.

We may need to tell people that they can use link types, and pinter roles
to determine processing (for rendering or user-interaction), but we do not
need a separate way to do this. If we split these out, then for the spec to
be effective, we need to describe exactly what behaviors can be specified
(or maybe require a Java interpreter, and then specify an
applet<->XML-processor exection interface). We also need to describe how to
resolve conflicts among the 3 things. For instance, if the style sheet
specifies a behaviour that conflicts with the behavior attribute, who wins?
Or what are the ground rules under which they duke it out. If those
behaviors change the formatting of the data, does the link-formatting spec
win, the link behaviour code win, or the link behavior code chosen based on
the linktype win?

And are all these options so valuable that we need to waste any time
thinking about the questions above.

State that the type can be used to choose behaviors. Let people use the
names of java applets as link types if they want to, but we don't need to
get into the additional hell of trying to specify behaviors and rules for
adjudicating among multiple hebavioral specs.

   The attribute should be -XML-XHL or maybe -XHL-FORM for consistency with
our reserved name strategy. Even -XHL- is more consistent, although the
ugliest kitten of this rather unattactive litter.

Link recognition by element type is something that I pretty much hate. But
I think we may need it, and I agree that -XML- is the syntax we agreed to
use, but it kind of loses the point of making things easy on people, if we
make them use a name that is so fundamentally hideous.

I think requiring PIs to declare elements for linking is better.

This should be deleted. XML linking shoudl define a particular semantics.
If it's not enough, you can use XML and your ingenuity to devise something
better. I should be able to author a document and know that there's a test
that will ensure that it _should_ work with other XML link processors, and
that when it doesn't it is due to a bug, and not a "customization option".

ALINK bodies should be an implied endpoint of their links. If we make a
generalized option for allowing _any_ 1 pointer of a link to be an implicit
refrence to the link element itself, we're back down to one kind of link,
and we get more useful MLINKS, too.

If we can't make this easy to understand, though, we should forgo the
elegant generality though, and make ALINKS into a special case.

The set of link-types should be non-mandatory, if we don't just gove up on
it. I think we may end up givin up on it, just because deciding what they
should be will be so taxing.

Same for link-end roles (pointer roles, as I suggest we call them).

BEHAVIOR and RENDER should be deleted.
I've already argued this in other posts. If we keep them we need to define
the difference between them, and give a list of the rendering and bahaviors
that XML linking supports. An undefined, open list of behaviors in an
undefined notation is not nearly as useful as such an undefined, open list
of types.


Why are linkends sub-elements? I had just gotten used to Eliot's multiple
attribute proposal, and it's much more compact, and doesn't require any
mucking with the content model of the link element. The only thing I'd like
to see inside of the link would be the explainers, as I can easily imagine
that the user would want to use markup in explainers. If you can't use
markup in epxlainers, I'm actually not sure how useful they are.

A further advantage of having each linkend be an attribute, is that it
looks like HTML.

Someone also pointed out the lack of REV and REL attributes. At least one
of these could be fused with the ANCHROLES attribute (maybe even renamed to
REL?) that lists the attributes that point to the link referents. So we'd
have REL="foorole barrole" and then, designating those elements. For

<dgdlink -xml-xhl="MLINK" linkends="foo bar" rel="Incoming Outgoing"
    foo="http://platoon.com/" bar="http://usa.org/home.xml">

In the special case of the A tag, we'd get:
<a REL="footnote" footnote="http://trivia.org/43343/fn/2">

The above is in pidgin HyTime, but I just don't see what separate elements
really buys us, especially if we do the _right thing_ and define a way to
embed the 3 kinds of link we need into a single attribute value.

I suggest:
  + type 1 (normal URLs):

  + type 2 (SGML URLs):

  + type 3 (TEI URLs):
an option to allow for future expansion womight be:

now the need to hang all those attributes off a linkend element is gone:

ROLE moves into the renamed anchroles attribute.
HREF moves into the link itself with a different syntax for each kind of
HRTYPE moves into the syntax for the references itself.
BEHAVIOR and RENDER are gone for other reasons.
TITLE is not explained in the spec, but appears to be the explainer -- it
should move into an element, or be left for style/behavior designers to

Section 4.2 should be firmed up based on the final list of addressing
schemes chosen. The process of stating concrete requirements on conrete
addressing formats should also clarify this section.

4.3, 4.4, 4.5 These are the right list of addressing modes. I think we
should close the list. If we're wrong, users can extend, and we can make
XML-link 2.0, but these modes already provide a staggering amount of power,
so we may not have to rush.

point 2.

Why eliminate links to spans? I want to be able to link even to
brain-damaged text files! It's not hard to implement, and it makes linking
so much better.
all other numbered points seem acceptable, though the loss of regexp is a shame.

exntedable addressing schemes should not be a goal of XML linking at this time.
Last paragraph. Bad idea. We should rule indirection along pointer chains,
in or out. I say we eliminate it, or strictly restrict it to one step of


This whole section needs rework.

I don't see any benefit (other than ruling out the use of mlinks for
parallel texts (which I would like) and for graphic callouts (which would
be very popular).

The extended link groups are underspecified. What happens if the documents
I include have extended link groups in them? They should be recursive as
well, so that we can meet the document management needs that Martin brought
up. The current solution does not allow very much flexibility.

The proposal of a specific element that the user mus include in their DTD
is the most egregious case of namespace stomping that I've seen proposed.

What happens if I have a LINKS element that does not meet this spec? Is it
a reportable error (which means legitimate DTDs will become illegal), or a
silently ignored one (which means that people using it will get
hard-to-detect erroneous behavior)?

What is the justiofication for restricting MLINKS in this way? Why is it so
hard to detect them in the text?

Appendix A.
(did not really read. Remove stuff that will not be part of XML linking).


Change the sentence
Not all relationships are links: the relationship of a chapter.. ..next, or
any non-explicit relationship[s], are not considered links here.


Not all relationships are links: any non-explicit relationships, such as
the relationship of a chapter.. ..next, are not considered links here.

1.1 XHA->XHL (or whatever)

sect 4.2 para 1.
change "effects" to "affects"

I am not a number. I am an undefined character.
David Durand              dgd@cs.bu.edu  \  david@dynamicDiagrams.com
Boston University Computer Science        \  Sr. Analyst
http://www.cs.bu.edu/students/grads/dgd/   \  Dynamic Diagrams
--------------------------------------------\  http://dynamicDiagrams.com/
MAPA: mapping for the WWW                    \__________________________