2 - Design Features in WebLinker
WebLinker needs to use information from the original non-HTML document so that it knows what information it must update in the infostructure. This needs to be translated into HTML in a uniform manner by the document converters. It should be relatively easy for this information to be added by hand to a HTML document, so that legacy documents can use WebLinker as well.
WebLinker defines the format in which such information should be presented inside the HTML document.
<A URN="Games#Basketball">the game of basketball</A>This is converted to a physical reference in the form of a LRN, which is inserted into the HREF attribute of the anchor, for example:
<A URN="Games#Basketball" href="http://www.games.com/lrn/Games/ball_games.html#3">the game of basketball</A>Currently a table of LIN to LRN mappings is used; this is created manually by the local infostructure maintainer. It contains entries of the form:
Games http://www.games.com/lrn/Games/Overview.htmlOne enhancement is a resolution daemon which handles some form of LIN to LRN conversion (See Section 4.2 for more details). This would even allow these external references to be resolved at the time of traversal of the link.
When the fragment identifier is placed in the non-HTML document, it is given a unique logical name. Thus, a
<A NAME="Frag-Id">...</A>is inserted into the HTML with the NAME tag containing the fragment identifier. Also, a
<META NAME="WebLinkerPublic" CONTENTS="Frag-Id">element is added into the header to distinguish this from a normal internal cross-reference tag that is generated for navigation purposes. For example in the section of HTML in Section 2.3.3, the line
<META NAME="WebLinkerPublic" CONTENTS="Pastimes">is generated to signify that the anchor with the NAME="Pastimes" attribute is an infostructure fragment identifier. These fragment identifiers are resolved at the time the link to them is traversed; thus we can rebuild the document, changing the location of any fragment identifier, and the corresponding LRN remains the same.
<HEAD> <META NAME="WebLinkerPublic" CONTENTS="Pastimes"> <TITLE>Bolivian Sheep Farmers</TITLE> </HEAD> <BODY> <A NAME="farming_33_start"></A> <H1><A NAME="PASTIMES">Pastimes of sheep farmers</A></H1> <P>Many people believe the health of Bolivian Sheep Farmers is due to the amount of <A URN="Games#Basketball">Basketball</A> that they play. </BODY>Then consider what happens to this when we traverse it with WebLinker. The <A NAME="Pastimes"> element, along with corresponding META element, would mean that an entry in the internal mappings file would be generated:
Pastimes farming_33.html#PASTIMESNote that the
<A NAME="farming_33_start">element does not generate an entry since there is no corresponding entry. This is an internal cross-reference marker, generated automatically by the converter.
Also, the
<A URN="Games#Basketball">element means that an external reference is required, so the resolution service is called to return an absolute URL which is added into the HREF attribute of this element:
<A URN="Games#Basketball" href="http://www.games.com/lrn/Games/ball_games.html#3">
Generated with WebMaker