Print

Print


First, let me say, that what I propose is not an EAD standard, just one
interpretation based on the XLink specification.  But the fact that EAD
aligned itself more with the requirements for XLink in Version 2002
specifically by moving the Behavior attributes "show" and "actuate" out of
locator elements such as <daoloc> into the <arc> element means, IMO, that
we need to follow the structure for XLink if we want to use those
attributes.  And to correctly utilize <arc> in extended elements, you need
to create "traversal pairs" of resources.

Let's dissect this a little bit.

Let's say we have this type of standard hyperlink:

<a href="document.html" target="_blank">click here</a>

The "traversal pair" here is:

1) the text you click on to initiate the link: "click here"
2) the remote resource that you are traversing to: "document.html"

If you just have two traversal pairs, you can just use a "simple-type"
linking element such as <extref> to create this link in EAD:

<extref href="document.html" actuate="onrequest" show="new">click
here</extref>

If you prefer to utilize an "extended-type" linking element to create this
same link, things are broken out more into separate elements:

The <resource> element is used as a way for the user to initiate the link.
Remember that in extended-type elements, such as <daogrp>, the locator
element <daoloc> does not "...constitute a link just because it has a
locator (href) attribute; unlike a simple-type element, it does not create
an XLink-governed association between itself and the referenced resource."
(XLink 1.0 section 5.1.2 Note).  So we need a way for the user to be able
to initiate the link.

So in this instance, the text "click here" is used.

<linkgrp>
<resource label="start">click here</resource>

or

<daogrp>
<resource label="start">click here</resource>

A "label" attribute is required so that an <arc> element can reference it
when creating links.

If the remote resource you refer to in your locator element (<daoloc>,
etc.) is going to be embedded when the document loads, then the user
doesn't need any text or icon to click on.  It this case, the <resource>
element would be empty, but it is still needed to follow specifications,
because you still need a "traversal pair".

<daogrp>
<resource label="start"></resource>

Now if you wanted to generate some type of icon instead or text that users
would click on, you would set your "actuate" attribute in your <arc>
element to "onrequest".  This would indicate to an XSLT style sheet (or
another transformation engine) that it would need to generate some type of
content for the user to click on when no textual data is provided.
(XLink 1.0 sect. 5.1.1).

The remote resource is pretty straightforward.  We just need to be sure to
give it a value in the "label" attribute so that the <arc> element can
refer to it.

Let's put it all together:

<daogrp>
<resource label="start"></resource>
<daoloc label="image" href="image.jpg" role="image/jpeg"/>
<arc from="start" to="image" show="embed" actuate="onload"/>
</daogrp>

This would theoretically embed an image in your document at the location
of this code when the document loads.  No user intervention would be
required.  Let me show some other scenarios.

<daogrp>
<resource label="start"></resource>
<daoloc label="image" href="image.jpg" role="image/jpeg"/>
<arc from="start" to="image" show="new" actuate="onrequest"/>
</daogrp>

This markup would generate an icon that the user would click on to open
the remote resource.  (Note use of actuate="onrequest" instead of
"embed".  This means that user interaction is required).

<daogrp>
<resource label="start">click here</resource>
<daoloc label="image" href="image.jpg" role="image/jpeg"/>
<arc from="start" to="image" show="embed" actuate="onload"/>
</daogrp>

This markup would generate the text "click here" that the user would click
on to open the link.  The same actuate="onload" is used, except that since
<resource> actually contains text, that text is used to generate a link
instead of an icon being generated.

Let me move on to the "3 traversal pairs" model with two <arc> elements.
This is as far as we can really go in a single unidirectional link.  It
also requires the first traversal to be embedded in the current document.
This type of link occurs in this scenario in HTML:

<a href="largeimage.jpg" target="_blank">
<img src="smallimage.jpg" alt="image"/>
</a>

As I stated previously, I don't believe you can create this type of dual
linking using only simple-type linking elements such as <extptr> or
<extref>.  For demonstration purposes, let's just encode this as a single
embedded image first:

<daogrp>
<resource label="start"></resource>
<daoloc label="image1" href="smallimage.jpg" role="image/jpeg"/>
<arc from="start" to="image1" show="embed" actuate="onload"/>
</daogrp>

This embeds our first image when the documents loads.  The same as just
using an <img> element.

Moving one step further, we now just want to create another traversal from
the first image to the second image.  The "traversal pair" will be "from"
the first image "to" the second image, represented like this:

<daogrp>
<resource label="start"></resource>
<daoloc label="image1" href="smallimage.jpg" role="image/jpeg"/>
<daoloc label="image2" href="largeimage.jpg" role="image/jpeg"/>
<arc from="start" to="image1" show="embed" actuate="onload"/>
<arc from="image1" to="image2" show="new" actuate="onrequest"/>
</daogrp>

No other value other than show="embed" is valid in the first <arc>
element, because once you traverse away from the current document, you
have completed your unidirectional link.  The original document is no
longer held in memory from which to create additional links.

If you are using XSLT to process your XML document, then all you need to
worry about at most (in a unidirectional linking scenario such as this)
is two <arc> elements.  I use the MIME types in the "role" attribute of
the locator element to indicate to the style sheet what type of linking
element to use to display the resource.  You may want to embed an image,
in which case, image/jpeg would indicate that the <img> element is to be
used in an HTML output.  If you wanted to embed a sound file, you might
use "audio/mpeg" which would trigger the style sheet to use the <object>
element instead.  For style sheet processing, you basically match each
<arc> element and then check to see what else is required to create the
link based on the "behavior" attributes in that element.

The "from" attribute in first <arc> matches or points to the "label"
attribute of your starting resource <resource>: how the user initiates the
link (or doesn't, depending on the "actuate" attribute set in the <arc>
element).  This is the "starting" resource.

The "to" attribute in <arc> points to the "label" attribute of the remote
resource you are traversing to <daoloc>, etc.  This is the "ending"
resource.

Similarly, in a second <arc> element, the "from" and "to" attribute values
point to the elements that have those same values in the "label"
attribute.

To demonstrate:

"click here" --> image 1 opens


image 1 (already open) --> image 2 opens


starting resource "from" --> ending resource "to"

I hope this has clarified things a bit more.  It is rather complex, but
once you get the hang of it, it seems to fit together rather nicely, I
think.

Mark




On Thu, 23 Sep 2004, Hyslop, John wrote:

> After the WC3 recommendation for XML Linking Language (XLink) Version 1.0
> http://www.w3.org/TR/xlink/, Mark's proposal seems to be appropriate for us.
>
>
> The division is encoding a finding aid that describes a collection of
> images.  We'd like to have a thumbnail of the image embedded in the finding
> aid and have the user be able to see a larger version of the image.  I think
> I understand how most of the <daogrp> element works.  I don't understand the
> <resource> element and the FROM and TO attributes.
>
> John Hyslop
> Assistant Division Manager
> Long Island Division
> Queens Borough Public Library
> 89-11 Merrick Boulevard
> Jamaica, New York 11432
> (718)990-0770
>
> These opinions are my own and not those of the Queens Borough Public Library
>
>
> -----Original Message-----
> From: Mark Carlson [mailto:[log in to unmask]]
> Sent: Wednesday, September 22, 2004 7:30 PM
> To: [log in to unmask]
> Subject: Re: daoloc attribute
>
> I realized after I sent off that example, that in the current environment,
> where you would have at most two traversals for a unidirectional link (an
> embedded resource and a resource that links away from the current page),
> that it would have been better to put each image in its own <daogrp>
> element.  That means you would have, at most, two <arc> elements using
> this model.  This is much easier to deal with.  Here's how I would have
> revised what I sent:
>
> <daogrp>
> <resource label="start"/>
> <daoloc label="image" role="image/jpeg" href="firstimage.jpg"/>
> <arc from="start" to="image" show="embed" actuate="onload"/>
> </daogrp>
>
> <daogrp>
> <resource label="start"/>
> <daoloc label="image" role="image/jpeg" href="secondimage.jpg"/>
> <daoloc label="image2" role="image/jpeg" href="linkout2.jpg"/>
> <arc from="start" to="image" show="embed" actuate="onload"/>
> <arc from="image" to="image2" show="new" actuate="onrequest"/>
> </daogrp>
>
> <daogrp>
> <resource label="start"/>
> <daoloc label="image" role="image/jpeg" href="thirdimage.jpg"/>
> <arc from="start" to="image" show="embed" actuate="onload"/>
> </daogrp>
>
> This also means that it is much easier to handle in XSLT, because you will
> have, at most, two <arc> elements and if you had two <arc> elements, one
> of them would have to be embedded.
>
> Mark
>
> On Tue, 21 Sep 2004, André Kahle wrote:
>
> > But then, what XSL is needed to transform this example into HTML?
> >
> > Andre Kahle
> > SHLM & INFOKA
> >
> > A 11:18 2004/09/21 -0700, vous avez écrit :
> > >I would argue that it is very difficult to create anything but a single
> > >hyperlink with a simple-type linking element such as <extptr> or <extref>
> > >because you can't create or establish any real *relationship* between the
> > >elements because they are siblings.  How could you represent this type of
> > >link using simple-type elements?
> > >
> > ><a href="largeimage.jpg" target="_blank">
> > ><img src="smallimage.jpg" alt="image"/>
> > ></a>
> > >
> > >You could use a combination of <extptr>/<extref> (etc.) elements, one
> > >element set to show="embed" (I suppose this could imply that this is the
> > ><img> element in HTML) and another set to show="new" (or "replace").
> > >
> > >However, what about the scenario where you want the first element to just
> > >be an embedded image, and the second element doesn't have any connection
> > >to the first element?  You would need some type of term that identifies
> > >(or disassociates) this relationship.  So I think it could be just as
> > >cumbersome to do this as to use an extended-type linking element where
> you
> > >can establish the relationship between resources, even with single,
> > >uni-directional outbound links.
> > >
> > >In fact, using this scenario, you could create any number of embedded
> > >images and link out from any selected number of them using an <arc>
> > >element to establish to relationship between resources.  In this example,
> > >the first and third images are just embedded images, while the second
> > >image is embedded and also links out to another image.
> > >
> > ><img src="firstimage.jpg" alt="image"/>
> > >
> > ><a href="linkout1.jpg"><img src="secondimage.jpg" alt="image"/></a>
> > >
> > ><img src="thirdimage.jpg" alt="image"/>
> > >
> > >So we only want to link out from the second image.  We could represent
> > >that like this:
> > >
> > >
> > >This may seem needlessly complex, but the trade-off is that we have now
> > >established the exact relationship between resources.  There is no
> > >question as to which links belong together and how each is to be
> > >traversed.
> > >
> > >If you never need to get any more complex that creating a single embedded
> > >image or a single hyperlink, then I agree that this is way more work than
> > >it is worth.  But if you want to go beyond the basics and really extend
> > >the capabilities of EAD and XML, then I think my ideas are worth
> > >considering, even in the present environment.
> > >
> > >Mark
> > >
> > >On Mon, 20 Sep 2004, Fox, Michael wrote:
> > >
> > >> Mark,
> > >>    Thank you for sharing this interesting document.  I have several
> > >> comments in response to the useful issue you raise.
> > >>
> > >> 1.  While it is both true that XLink is the linking mechanism for XML
> > >> and that it can be used for simple and extended links, the truth is
> that
> > >> the environment in which we are now working is actually a mixture of
> XML
> > >> and HTML and that the linking capability we have is limited to the
> > >> simple links now possible in HTML.  I am still waiting to see an all
> XML
> > >> environment where XLink actually functions in a global way and
> extended,
> > >> bi-directional links are possible.
> > >>
> > >> 2.  If this is the case, the use of XLink syntax to generate simple,
> > >> uni-directional HTML links is needlessly complex and unnecessary.  It
> is
> > >> hardly necessary to generate the proper HTML output that would result
> > >> from a transformation.  Theoretically interesting to be sure.  Am I
> > >> missing something here?
> > >>
> > >> 3.  Your chart associates <extref> solely with the HTML <a> element but
> > >> it might also need to generate an <img> element where the text in
> > >> <extref> is used to produce a caption for an external image rather than
> > >> the link text in an <a>.  The differentiation of these two possible
> > >> outcomes, an HTML <a> or an HTML <img> in an HTML transformation, is
> the
> > >> reason why one needs the embed and new values in the show attribute
> with
> > >> <extptr>.
> > >>
> > >> Michael Fox
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >> -----Original Message-----
> > >> From: Encoded Archival Description List [mailto:[log in to unmask]]On Behalf
> Of
> > >> Mark Carlson
> > >> Sent: Friday, September 17, 2004 8:03 PM
> > >> To: [log in to unmask]
> > >> Subject: Re: daoloc attribute
> > >>
> > >>
> > >> I don't believe this is true.  XLink forms the basis for all linking
> > >> elements in XML, both simple (extptr, etc.) and extended (daogrp,
> linkgrp,
> > >> etc.).  In the XLink specification, section 2.1, it states that "one of
> > >> the common uses of XLink is to create hyperlinks".  A standard <A>
> > >> hyperlink is called an "outbound" link in XLink and that type of link
> can
> > >> be created with a simple-type linking element or, as per section 5.2
> > >> states, using as extended link to create simple link functionality (see
> > >> example in this section "Simple Link Functionality Done with an
> Extended
> > >> Link").  But using an extended link in this way requires additional
> > >> elements since the "behavior" attributes are contained in the <arc>
> > >> element in EAD.  (Section 5).
> > >>
> > >> A document I'm working on presents one interpretation for how this
> could
> > >> be implementated using today's tools (for simple outbound links, that
> > >> is).
> > >>
> > >> I would be interested in comments.
> > >>
> > >> http://staff.washington.edu/carlsonm/XLinkToEAD.pdf
> > >>
> > >> Mark
> > >>
> > >>   On Fri, 17 Sep 2004, Fox, Michael wrote:
> > >>
> > >> > I have been intrigued by this thread with respect to the <daoloc>
> > element.    It is my understanding that this element is applicable only as
> > part of an implementation of bi-directional links within an XLink-enabled
> > technology and I was unaware of any broadly based implementation of same.
> > If someone is using it, I would appreciate a pointer to the application as
> > I've always wondered how this standard would play out in real life.
> > >> >
> > >> > Michael
> > >> > -----Original Message-----
> > >> > From: Encoded Archival Description List [mailto:[log in to unmask]]On Behalf
> > Of Druscie Simpson
> > >> > Sent: Friday, September 17, 2004 1:13 PM
> > >> > To: [log in to unmask]
> > >> > Subject: Re: daoloc attributes
> > >> >
> > >> >
> > >> > Dietra,
> > >> >
> > >> > Ashley is working on this as well.  She received some code from Kathy
> > Wisser, but, while it works just fine on Kathy's PC, it doesn't work on
> > Ashley's!  Check with Ashley on Monday to see where she is on this.
> > >> >
> > >> > Druscie
> > >> > _____________________________________________________________
> > >> > Druscilla R. Simpson
> > >> > Head, Information Technology Branch
> > >> > N.C. State Archives
> > >> > (919) 807-7319 (voice)
> > >> > (919) 733-1354 (fax)
> > >> > [log in to unmask]
> > >> >
> > >> > Opinions expressed in this message may not represent the policy of
> this
> > >> > agency.  E-Mail to and from me, in connection with the transaction of
> > public
> > >> > business, is subject to the North Carolina Public Records Law and may
> be
> > >> > disclosed to third parties.
> > >> >
> > >> > ----- Original Message -----
> > >> > From: Dietra Stanley <mailto:[log in to unmask]>
> > >> > To: [log in to unmask]
> > >> > Sent: Friday, September 17, 2004 12:11 PM
> > >> > Subject: Re: daoloc attributes
> > >> >
> > >> > Hey John can you please forward me his reply...I am having
> significant
> > difficulty in adding dao's into my document also.
> > >> >
> > >> > Do you have a copy of what code i need to add to the style sheet and
> > the dtd files in order for them to recognize i am inserting a dao into my
> xml.
> > >> >
> > >> > gee thanx for any help
> > >> >
> > >> > dietra lynn
> > >> > ----- Original Message -----
> > >> > From: Hyslop, John <mailto:[log in to unmask]>
> > >> > To: [log in to unmask]
> > >> > Sent: Friday, September 17, 2004 11:34 AM
> > >> > Subject: Re: daoloc attributes
> > >> >
> > >> > Thanks to Nick Mangine my confusion has been cleared up.
> > >> >
> > >> > John Hyslop
> > >> > Assistant Division Manager
> > >> > Long Island Division
> > >> > Queens Borough Public Library
> > >> > 89-11 Merrick Boulevard
> > >> > Jamaica, New York 11432
> > >> > (718)990-0770
> > >> >
> > >> > These opinions are my own and not those of the Queens Borough Public
> > Library
> > >> >
> > >> > -----Original Message-----
> > >> > From: Hyslop, John [mailto:[log in to unmask]]
> > >> > Sent: Friday, September 17, 2004 10:17 AM
> > >> > To: [log in to unmask]
> > >> > Subject: daoloc attributes
> > >> >
> > >> > I'm a bit confused and a novice so bear with me.  In the EAD
> > Application Guidelines Version 1.0, Figure 7.6c page 230 shows the daoloc
> > element having the actuate and show attributes.  However the EAD DTD
> > doesn't allow them and the Tag Library doesn't list them.  Why?
> > >> >
> > >> >
> > >> > John Hyslop
> > >> > Assistant Division Manager
> > >> > Long Island Division
> > >> > Queens Borough Public Library
> > >> > 89-11 Merrick Boulevard
> > >> > Jamaica, New York 11432
> > >> > (718)990-0770
> > >> >
> > >> > These opinions are my own and not those of the Queens Borough Public
> > Library
> > >> >
> > >> >
> > >>
> > >
> >
>